@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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/animations'), require('@angular/material/divider'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/router'), require('@angular/platform-browser'), require('@angular/common/http'), require('ngx-color-picker'), require('@ionic-native/native-audio/ngx'), require('@ionic-native/vibration/ngx'), require('@ionic-native/audio-management/ngx'), require('@ionic-native/native-audio/ngx/index'), require('@ionic-native/vibration/ngx/index'), require('@ionic-native/audio-management/ngx/index'), require('uuid/v4'), require('@angular/cdk/drag-drop'), require('ngx-markdown'), require('tweetnacl'), require('@ionic/storage'), require('zone.js/dist/zone-error'), require('@ionic-native/splash-screen/ngx'), require('@ionic-native/network/ngx'), require('ionic-cache'), require('ionic-cache/dist/cache.service'), require('@ionic-native/network/ngx/index'), require('@ionic-native/splash-screen/ngx/index'), require('@ionic-native/status-bar/ngx'), require('@angular/cdk/platform'), require('@ionic-native/in-app-browser/ngx'), require('@apollo/client/core'), require('apollo-angular'), require('@apollo/client/link/ws'), require('@apollo/client/utilities'), require('@apollo/client/link/retry'), require('apollo-link-queue'), require('apollo-link-serialize'), require('apollo-link-logger'), require('apollo-angular/http'), require('apollo3-cache-persist'), require('@ionic-native/downloader/ngx'), require('@ionic-native/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@ionic-native/downloader/ngx/index'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
3
3
  typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/animations', '@angular/material/divider', '@angular/material/tooltip', '@angular/material/chips', '@angular/router', '@angular/platform-browser', '@angular/common/http', 'ngx-color-picker', '@ionic-native/native-audio/ngx', '@ionic-native/vibration/ngx', '@ionic-native/audio-management/ngx', '@ionic-native/native-audio/ngx/index', '@ionic-native/vibration/ngx/index', '@ionic-native/audio-management/ngx/index', 'uuid/v4', '@angular/cdk/drag-drop', 'ngx-markdown', 'tweetnacl', '@ionic/storage', 'zone.js/dist/zone-error', '@ionic-native/splash-screen/ngx', '@ionic-native/network/ngx', 'ionic-cache', 'ionic-cache/dist/cache.service', '@ionic-native/network/ngx/index', '@ionic-native/splash-screen/ngx/index', '@ionic-native/status-bar/ngx', '@angular/cdk/platform', '@ionic-native/in-app-browser/ngx', '@apollo/client/core', 'apollo-angular', '@apollo/client/link/ws', '@apollo/client/utilities', '@apollo/client/link/retry', 'apollo-link-queue', 'apollo-link-serialize', 'apollo-link-logger', 'apollo-angular/http', 'apollo3-cache-persist', '@ionic-native/downloader/ngx', '@ionic-native/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@ionic-native/downloader/ngx/index', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global["ngx-translate"].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global["ionic-native"].keyboard.ngx, global["angular2-text-mask"], global["ngx-material-timepicker"], global.ng.material.datepicker, global.ng.animations, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global["ngx-color-picker"], global["ionic-native"]["native-audio"].ngx, global["ionic-native"].vibration.ngx, global["ionic-native"]["audio-management"].ngx, global["ionic-native"]["native-audio"].ngx.index, global["ionic-native"].vibration.ngx.index, global["ionic-native"]["audio-management"].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global["ngx-markdown"], global.tweetnacl, global.ionic.storage, null, global["ionic-native"]["splash-screen"].ngx, global["ionic-native"].network.ngx, global["ionic-cache"], global["ionic-cache/dist/cache"].service, global["ionic-native"].network.ngx.index, global["ionic-native"]["splash-screen"].ngx.index, global["ionic-native"]["status-bar"].ngx, global.ng.cdk.platform, global["ionic-native"]["in-app-browser"].ngx, global.apollo.client.core, global["apollo-angular"], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global["apollo-link-queue"], global["apollo-link-serialize"], global["apollo-link-logger"], global["apollo-angular"].http, global["apollo3-cache-persist"], global["ionic-native"].downloader.ngx, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global["ionic-native"].downloader.ngx.index, global["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"]));
5
- })(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, animations, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sumaris-net'] = global['sumaris-net'] || {}, global['sumaris-net']['ngx-components'] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global['ngx-translate'].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global['ionic-native'].keyboard.ngx, global['angular2-text-mask'], global['ngx-material-timepicker'], global.ng.material.datepicker, global.ng.animations, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global['ngx-color-picker'], global['ionic-native']['native-audio'].ngx, global['ionic-native'].vibration.ngx, global['ionic-native']['audio-management'].ngx, global['ionic-native']['native-audio'].ngx.index, global['ionic-native'].vibration.ngx.index, global['ionic-native']['audio-management'].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global['ngx-markdown'], global.tweetnacl, global.ionic.storage, null, global['ionic-native']['splash-screen'].ngx, global['ionic-native'].network.ngx, global['ionic-cache'], global['ionic-cache/dist/cache'].service, global['ionic-native'].network.ngx.index, global['ionic-native']['splash-screen'].ngx.index, global['ionic-native']['status-bar'].ngx, global.ng.cdk.platform, global['ionic-native']['in-app-browser'].ngx, global.apollo.client.core, global['apollo-angular'], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global['apollo-link-queue'], global['apollo-link-serialize'], global['apollo-link-logger'], global['apollo-angular'].http, global['apollo3-cache-persist'], global['ionic-native'].downloader.ngx, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global['ionic-native'].downloader.ngx.index, global['e-is']['ngx-material-table'], global.ng.cdk.collections, global['ngx-jdenticon']));
5
+ }(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, animations, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -15,45 +15,22 @@
15
15
  var d = Object.getOwnPropertyDescriptor(e, k);
16
16
  Object.defineProperty(n, k, d.get ? d : {
17
17
  enumerable: true,
18
- get: function () { return e[k]; }
18
+ get: function () {
19
+ return e[k];
20
+ }
19
21
  });
20
22
  }
21
23
  });
22
24
  }
23
- n["default"] = e;
25
+ n['default'] = e;
24
26
  return Object.freeze(n);
25
27
  }
26
28
 
27
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
- var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
29
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
30
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
31
- var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
32
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
33
- var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
34
29
  var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
35
- var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
36
- var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
37
- var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
38
- var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
39
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
40
- var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
41
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
42
30
  var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
43
- var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
44
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
45
- var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
46
- var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
47
- var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
48
- var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
49
31
  var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
50
32
  var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
51
33
  var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
52
- var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
53
- var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
54
- var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
55
- var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
56
- var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
57
34
 
58
35
  var ENVIRONMENT = new i0.InjectionToken('ENV');
59
36
  var Environment = /** @class */ (function () {
@@ -1278,14 +1255,14 @@
1278
1255
  };
1279
1256
  return MatAutocompleteConfigHolder;
1280
1257
  }());
1281
- var noop$8 = function (_) { };
1282
- var ɵ0$b = noop$8;
1258
+ var noop = function (_) { };
1259
+ var ɵ0 = noop;
1283
1260
  var MatAutocompleteField = /** @class */ (function () {
1284
1261
  function MatAutocompleteField(cd, formGroupDir) {
1285
1262
  this.cd = cd;
1286
1263
  this.formGroupDir = formGroupDir;
1287
- this._onChangeCallback = noop$8;
1288
- this._onTouchedCallback = noop$8;
1264
+ this._onChangeCallback = noop;
1265
+ this._onTouchedCallback = noop;
1289
1266
  this.logPrefix = '[mat-autocomplete] ';
1290
1267
  this.formControlName = null;
1291
1268
  this.required = false;
@@ -1995,7 +1972,7 @@
1995
1972
  { type: i0.Component, args: [{
1996
1973
  // eslint-disable-next-line @angular-eslint/component-selector
1997
1974
  selector: 'mat-autocomplete-field',
1998
- 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",
1975
+ 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",
1999
1976
  providers: [{
2000
1977
  provide: i1.NG_VALUE_ACCESSOR,
2001
1978
  multi: true,
@@ -2078,7 +2055,7 @@
2078
2055
  };
2079
2056
  return DateFormatPipe;
2080
2057
  }());
2081
- DateFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
2058
+ DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
2082
2059
  DateFormatPipe.decorators = [
2083
2060
  { type: i0.Pipe, args: [{
2084
2061
  name: 'dateFormat'
@@ -2090,7 +2067,7 @@
2090
2067
  { type: i1$2.TranslateService }
2091
2068
  ]; };
2092
2069
 
2093
- var moment$6 = momentImported__namespace;
2070
+ var moment = momentImported__namespace;
2094
2071
  var DateDiffDurationPipe = /** @class */ (function () {
2095
2072
  function DateDiffDurationPipe(dateAdapter, translate) {
2096
2073
  var _this = this;
@@ -2107,10 +2084,10 @@
2107
2084
  return this.format(startDate, endDate);
2108
2085
  };
2109
2086
  DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
2110
- var duration = moment$6.duration(endDate.diff(startDate));
2087
+ var duration = moment.duration(endDate.diff(startDate));
2111
2088
  if (duration.asMinutes() < 0)
2112
2089
  return '';
2113
- var timeDuration = moment$6(0)
2090
+ var timeDuration = moment(0)
2114
2091
  .hour(duration.hours())
2115
2092
  .minute(duration.minutes());
2116
2093
  var days = Math.floor(duration.asDays());
@@ -2118,7 +2095,7 @@
2118
2095
  };
2119
2096
  return DateDiffDurationPipe;
2120
2097
  }());
2121
- DateDiffDurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0__namespace.ɵɵinject(i1__namespace$2.DateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
2098
+ DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$3.DateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
2122
2099
  DateDiffDurationPipe.decorators = [
2123
2100
  { type: i0.Pipe, args: [{
2124
2101
  name: 'dateDiffDuration'
@@ -2140,7 +2117,7 @@
2140
2117
  };
2141
2118
  return DateFromNowPipe;
2142
2119
  }());
2143
- DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
2120
+ DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
2144
2121
  DateFromNowPipe.decorators = [
2145
2122
  { type: i0.Pipe, args: [{
2146
2123
  name: 'dateFromNow'
@@ -2209,7 +2186,7 @@
2209
2186
  value *= -1;
2210
2187
  }
2211
2188
  }
2212
- var degrees = roundFloat$1(value, opts.maxDecimals).toString();
2189
+ var degrees = roundFloat(value, opts.maxDecimals).toString();
2213
2190
  // Add sign
2214
2191
  var sign = negative ? '-' : '+';
2215
2192
  if (opts.placeholderChar) {
@@ -2260,7 +2237,7 @@
2260
2237
  }
2261
2238
  var degrees = Math.trunc(value);
2262
2239
  var minutes = Math.trunc((value - degrees) * 60);
2263
- var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2240
+ var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2264
2241
  while (seconds >= 60) {
2265
2242
  seconds -= 60;
2266
2243
  minutes += 1;
@@ -2328,7 +2305,7 @@
2328
2305
  }
2329
2306
  }
2330
2307
  var degrees = Math.trunc(value);
2331
- var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
2308
+ var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
2332
2309
  while (minutes >= 60) {
2333
2310
  minutes -= 60;
2334
2311
  degrees += 1;
@@ -2379,15 +2356,15 @@
2379
2356
  return NaN;
2380
2357
  }
2381
2358
  if (pattern === 'DD')
2382
- return roundFloat$1(degrees, maxDecimals);
2359
+ return roundFloat(degrees, maxDecimals);
2383
2360
  var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2384
2361
  var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2385
2362
  var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2386
2363
  var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2387
2364
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2388
- return roundFloat$1(degrees, maxDecimals);
2365
+ return roundFloat(degrees, maxDecimals);
2389
2366
  }
2390
- function roundFloat$1(input, maxDecimals) {
2367
+ function roundFloat(input, maxDecimals) {
2391
2368
  if (maxDecimals > 0) {
2392
2369
  var powDecimal = Math.pow(10, maxDecimals);
2393
2370
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2410,7 +2387,7 @@
2410
2387
  };
2411
2388
  return LatLongFormatPipe;
2412
2389
  }());
2413
- LatLongFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2390
+ LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2414
2391
  LatLongFormatPipe.decorators = [
2415
2392
  { type: i0.Pipe, args: [{
2416
2393
  name: 'latLongFormat'
@@ -2423,7 +2400,7 @@
2423
2400
  }
2424
2401
  return LatitudeFormatPipe;
2425
2402
  }());
2426
- LatitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2403
+ LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2427
2404
  LatitudeFormatPipe.decorators = [
2428
2405
  { type: i0.Pipe, args: [{
2429
2406
  name: 'latitudeFormat'
@@ -2436,7 +2413,7 @@
2436
2413
  }
2437
2414
  return LongitudeFormatPipe;
2438
2415
  }());
2439
- LongitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2416
+ LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2440
2417
  LongitudeFormatPipe.decorators = [
2441
2418
  { type: i0.Pipe, args: [{
2442
2419
  name: 'longitudeFormat'
@@ -2459,7 +2436,7 @@
2459
2436
  };
2460
2437
  return NumberFormatPipe;
2461
2438
  }());
2462
- NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2439
+ NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2463
2440
  NumberFormatPipe.decorators = [
2464
2441
  { type: i0.Pipe, args: [{
2465
2442
  name: 'numberFormat'
@@ -2502,7 +2479,7 @@
2502
2479
  };
2503
2480
  return HighlightPipe;
2504
2481
  }());
2505
- HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2482
+ HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2506
2483
  HighlightPipe.decorators = [
2507
2484
  { type: i0.Pipe, args: [{
2508
2485
  name: 'highlight'
@@ -2570,7 +2547,7 @@
2570
2547
  { type: i0.Pipe, args: [{ name: 'fileSize' },] }
2571
2548
  ];
2572
2549
 
2573
- var moment$5 = momentImported__namespace;
2550
+ var moment$1 = momentImported__namespace;
2574
2551
  var DATE_UNIX_TIMESTAMP = 'X';
2575
2552
  var DATE_UNIX_MS_TIMESTAMP = 'x';
2576
2553
  var DateUtils = /** @class */ (function () {
@@ -2613,32 +2590,32 @@
2613
2590
  if (!value || momentImported.isMoment(value))
2614
2591
  return value;
2615
2592
  // Parse the input value, as a ISO date time
2616
- var date = moment$5(value, DATE_ISO_PATTERN);
2593
+ var date = moment$1(value, DATE_ISO_PATTERN);
2617
2594
  if (date.isValid())
2618
2595
  return date;
2619
2596
  // Not valid: trying to convert from unix timestamp
2620
2597
  if (typeof value === 'string') {
2621
2598
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2622
2599
  if (value.length === 10) {
2623
- return moment$5(value, DATE_UNIX_TIMESTAMP);
2600
+ return moment$1(value, DATE_UNIX_TIMESTAMP);
2624
2601
  }
2625
2602
  else if (value.length === 13) {
2626
- return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2603
+ return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2627
2604
  }
2628
2605
  }
2629
2606
  console.warn('Unable to parse date: ' + value);
2630
2607
  return undefined;
2631
2608
  }
2632
2609
  function fromUnixTimestamp(timeInSec) {
2633
- return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2610
+ return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2634
2611
  }
2635
2612
  function fromUnixMsTimestamp(timeInMs) {
2636
- return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2613
+ return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2637
2614
  }
2638
2615
  function toDuration(value, unit) {
2639
2616
  if (!value)
2640
2617
  return undefined;
2641
- var duration = moment$5.duration(value, unit);
2618
+ var duration = moment$1.duration(value, unit);
2642
2619
  // fix 990+ ms
2643
2620
  if (duration.milliseconds() >= 990) {
2644
2621
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2668,7 +2645,7 @@
2668
2645
  };
2669
2646
  return DurationPipe;
2670
2647
  }());
2671
- DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2648
+ DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2672
2649
  DurationPipe.decorators = [
2673
2650
  { type: i0.Pipe, args: [{
2674
2651
  name: 'duration'
@@ -2692,7 +2669,7 @@
2692
2669
  };
2693
2670
  return MathAbsPipe;
2694
2671
  }());
2695
- MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2672
+ MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2696
2673
  MathAbsPipe.decorators = [
2697
2674
  { type: i0.Pipe, args: [{
2698
2675
  name: 'mathAbs'
@@ -2707,7 +2684,7 @@
2707
2684
  };
2708
2685
  return EvenPipe;
2709
2686
  }());
2710
- EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2687
+ EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2711
2688
  EvenPipe.decorators = [
2712
2689
  { type: i0.Pipe, args: [{
2713
2690
  name: 'even'
@@ -2722,7 +2699,7 @@
2722
2699
  };
2723
2700
  return OddPipe;
2724
2701
  }());
2725
- OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2702
+ OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2726
2703
  OddPipe.decorators = [
2727
2704
  { type: i0.Pipe, args: [{
2728
2705
  name: 'odd'
@@ -2854,7 +2831,7 @@
2854
2831
  };
2855
2832
  return MapGetPipe;
2856
2833
  }());
2857
- MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2834
+ MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2858
2835
  MapGetPipe.decorators = [
2859
2836
  { type: i0.Pipe, args: [{
2860
2837
  name: 'mapGet'
@@ -2871,7 +2848,7 @@
2871
2848
  };
2872
2849
  return MapKeysPipe;
2873
2850
  }());
2874
- MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2851
+ MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2875
2852
  MapKeysPipe.decorators = [
2876
2853
  { type: i0.Pipe, args: [{
2877
2854
  name: 'mapKeys'
@@ -2888,7 +2865,7 @@
2888
2865
  };
2889
2866
  return MapValuesPipe;
2890
2867
  }());
2891
- MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2868
+ MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2892
2869
  MapValuesPipe.decorators = [
2893
2870
  { type: i0.Pipe, args: [{
2894
2871
  name: 'mapValues'
@@ -2904,7 +2881,7 @@
2904
2881
  };
2905
2882
  return IsNotNilOrBlankPipe;
2906
2883
  }());
2907
- IsNotNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2884
+ IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2908
2885
  IsNotNilOrBlankPipe.decorators = [
2909
2886
  { type: i0.Pipe, args: [{
2910
2887
  name: 'isNotNilOrBlank'
@@ -2919,7 +2896,7 @@
2919
2896
  };
2920
2897
  return IsNilOrBlankPipe;
2921
2898
  }());
2922
- IsNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2899
+ IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2923
2900
  IsNilOrBlankPipe.decorators = [
2924
2901
  { type: i0.Pipe, args: [{
2925
2902
  name: 'isNilOrBlank'
@@ -2934,7 +2911,7 @@
2934
2911
  };
2935
2912
  return ToStringPipe;
2936
2913
  }());
2937
- ToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2914
+ ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2938
2915
  ToStringPipe.decorators = [
2939
2916
  { type: i0.Pipe, args: [{
2940
2917
  name: 'toString'
@@ -2949,7 +2926,7 @@
2949
2926
  };
2950
2927
  return StrLengthPipe;
2951
2928
  }());
2952
- StrLengthPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2929
+ StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2953
2930
  StrLengthPipe.decorators = [
2954
2931
  { type: i0.Pipe, args: [{
2955
2932
  name: 'strLength'
@@ -3040,7 +3017,7 @@
3040
3017
  };
3041
3018
  return TranslateContextService;
3042
3019
  }());
3043
- TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
3020
+ TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
3044
3021
  TranslateContextService.decorators = [
3045
3022
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
3046
3023
  ];
@@ -3097,7 +3074,7 @@
3097
3074
  };
3098
3075
  return PropertyGetPipe;
3099
3076
  }());
3100
- PropertyGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
3077
+ PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
3101
3078
  PropertyGetPipe.decorators = [
3102
3079
  { type: i0.Pipe, args: [{
3103
3080
  name: 'propertyGet'
@@ -3123,7 +3100,7 @@
3123
3100
  ngInit: [{ type: i0.Output }]
3124
3101
  };
3125
3102
 
3126
- var moment$4 = momentImported__namespace;
3103
+ var moment$2 = momentImported__namespace;
3127
3104
  // @dynamic
3128
3105
  var SharedValidators = /** @class */ (function () {
3129
3106
  function SharedValidators() {
@@ -3142,7 +3119,7 @@
3142
3119
  };
3143
3120
  SharedValidators.validDate = function (control) {
3144
3121
  var value = control.value;
3145
- var date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
3122
+ var date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
3146
3123
  if (date && (!date.isValid() || date.year() < 1970)) {
3147
3124
  return { validDate: true };
3148
3125
  }
@@ -4308,7 +4285,7 @@
4308
4285
  };
4309
4286
  return FormErrorTranslator;
4310
4287
  }());
4311
- FormErrorTranslator.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
4288
+ FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
4312
4289
  FormErrorTranslator.decorators = [
4313
4290
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
4314
4291
  ];
@@ -4679,9 +4656,9 @@
4679
4656
  var hour = parseInt(durationParts[0] || '0');
4680
4657
  var minute = parseInt(durationParts[1] || '0');
4681
4658
  var value = hour + (minute + 0.5) / 60;
4682
- return roundFloat(value, maxDecimals);
4659
+ return roundFloat$1(value, maxDecimals);
4683
4660
  }
4684
- function roundFloat(input, maxDecimals) {
4661
+ function roundFloat$1(input, maxDecimals) {
4685
4662
  if (maxDecimals > 0) {
4686
4663
  var powDecimal = Math.pow(10, maxDecimals);
4687
4664
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -4705,9 +4682,9 @@
4705
4682
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
4706
4683
  }
4707
4684
  };
4708
- var noop$7 = function () {
4685
+ var noop$1 = function () {
4709
4686
  };
4710
- var ɵ0$a = noop$7;
4687
+ var ɵ0$1 = noop$1;
4711
4688
  var MatLatLongField = /** @class */ (function () {
4712
4689
  function MatLatLongField(platform, translate, formBuilder, cd, formGroupDir) {
4713
4690
  this.platform = platform;
@@ -4715,8 +4692,8 @@
4715
4692
  this.formBuilder = formBuilder;
4716
4693
  this.cd = cd;
4717
4694
  this.formGroupDir = formGroupDir;
4718
- this._onChangeCallback = noop$7;
4719
- this._onTouchedCallback = noop$7;
4695
+ this._onChangeCallback = noop$1;
4696
+ this._onTouchedCallback = noop$1;
4720
4697
  this._subscription = new rxjs.Subscription();
4721
4698
  this.disabling = false;
4722
4699
  this.writing = false;
@@ -5068,14 +5045,14 @@
5068
5045
  },] }
5069
5046
  ];
5070
5047
 
5071
- var DEFAULT_VALUE_ACCESSOR$5 = {
5048
+ var DEFAULT_VALUE_ACCESSOR = {
5072
5049
  provide: i1.NG_VALUE_ACCESSOR,
5073
5050
  useExisting: i0.forwardRef(function () { return MatDate; }),
5074
5051
  multi: true
5075
5052
  };
5076
- var DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
5077
- var noop$6 = function () { };
5078
- var ɵ0$9 = noop$6;
5053
+ var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
5054
+ var noop$2 = function () { };
5055
+ var ɵ0$2 = noop$2;
5079
5056
  var MatDate = /** @class */ (function () {
5080
5057
  function MatDate(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5081
5058
  this.dateAdapter = dateAdapter;
@@ -5084,12 +5061,12 @@
5084
5061
  this.cd = cd;
5085
5062
  this.keyboard = keyboard;
5086
5063
  this.formGroupDir = formGroupDir;
5087
- this._onChangeCallback = noop$6;
5088
- this._onTouchedCallback = noop$6;
5064
+ this._onChangeCallback = noop$2;
5065
+ this._onTouchedCallback = noop$2;
5089
5066
  this._subscription = new rxjs.Subscription();
5090
5067
  this.writing = true;
5091
5068
  this.disabling = false;
5092
- this.dayMask = DAY_MASK$2;
5069
+ this.dayMask = DAY_MASK;
5093
5070
  this.disabled = false;
5094
5071
  this.floatLabel = 'auto';
5095
5072
  this.readonly = false;
@@ -5358,7 +5335,7 @@
5358
5335
  selector: 'mat-date-field',
5359
5336
  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",
5360
5337
  providers: [
5361
- DEFAULT_VALUE_ACCESSOR$5,
5338
+ DEFAULT_VALUE_ACCESSOR,
5362
5339
  ],
5363
5340
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
5364
5341
  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%}"]
@@ -5391,17 +5368,17 @@
5391
5368
  matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
5392
5369
  };
5393
5370
 
5394
- var DEFAULT_VALUE_ACCESSOR$4 = {
5371
+ var DEFAULT_VALUE_ACCESSOR$1 = {
5395
5372
  provide: i1.NG_VALUE_ACCESSOR,
5396
5373
  useExisting: i0.forwardRef(function () { return MatDateTime; }),
5397
5374
  multi: true
5398
5375
  };
5399
5376
  var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
5400
5377
  var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
5401
- var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
5402
- var noop$5 = function () {
5378
+ var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
5379
+ var noop$3 = function () {
5403
5380
  };
5404
- var ɵ0$8 = noop$5;
5381
+ var ɵ0$3 = noop$3;
5405
5382
  var MatDateTime = /** @class */ (function () {
5406
5383
  function MatDateTime(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5407
5384
  this.platform = platform;
@@ -5411,14 +5388,14 @@
5411
5388
  this.cd = cd;
5412
5389
  this.keyboard = keyboard;
5413
5390
  this.formGroupDir = formGroupDir;
5414
- this._onChangeCallback = noop$5;
5415
- this._onTouchedCallback = noop$5;
5391
+ this._onChangeCallback = noop$3;
5392
+ this._onTouchedCallback = noop$3;
5416
5393
  this._subscription = new rxjs.Subscription();
5417
5394
  this.writing = true;
5418
5395
  this.disabling = false;
5419
5396
  this._readonly = false;
5420
5397
  this.dayMask = DAY_MASK$1;
5421
- this.hourMask = HOUR_MASK$1;
5398
+ this.hourMask = HOUR_MASK;
5422
5399
  this.floatLabel = 'auto';
5423
5400
  this.compact = false;
5424
5401
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -5775,7 +5752,7 @@
5775
5752
  selector: 'mat-date-time-field',
5776
5753
  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",
5777
5754
  providers: [
5778
- DEFAULT_VALUE_ACCESSOR$4,
5755
+ DEFAULT_VALUE_ACCESSOR$1,
5779
5756
  ],
5780
5757
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
5781
5758
  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%}"]
@@ -5809,15 +5786,15 @@
5809
5786
  matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
5810
5787
  };
5811
5788
 
5812
- var DEFAULT_VALUE_ACCESSOR$3 = {
5789
+ var DEFAULT_VALUE_ACCESSOR$2 = {
5813
5790
  provide: i1.NG_VALUE_ACCESSOR,
5814
5791
  useExisting: i0.forwardRef(function () { return MatDateShort; }),
5815
5792
  multi: true
5816
5793
  };
5817
- var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
5794
+ var DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
5818
5795
  var noop$4 = function () {
5819
5796
  };
5820
- var ɵ0$7 = noop$4;
5797
+ var ɵ0$4 = noop$4;
5821
5798
  var MatDateShort = /** @class */ (function () {
5822
5799
  function MatDateShort(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5823
5800
  this.dateAdapter = dateAdapter;
@@ -5830,7 +5807,7 @@
5830
5807
  this._onTouchedCallback = noop$4;
5831
5808
  this.writing = true;
5832
5809
  this.disabling = false;
5833
- this.dayMask = DAY_MASK;
5810
+ this.dayMask = DAY_MASK$2;
5834
5811
  this.disabled = false;
5835
5812
  this.floatLabel = 'auto';
5836
5813
  this.readonly = false;
@@ -6107,7 +6084,7 @@
6107
6084
  selector: 'mat-date-short-field',
6108
6085
  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",
6109
6086
  providers: [
6110
- DEFAULT_VALUE_ACCESSOR$3,
6087
+ DEFAULT_VALUE_ACCESSOR$2,
6111
6088
  ],
6112
6089
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6113
6090
  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%}"]
@@ -6178,16 +6155,16 @@
6178
6155
  },] }
6179
6156
  ];
6180
6157
 
6181
- var DEFAULT_VALUE_ACCESSOR$2 = {
6158
+ var DEFAULT_VALUE_ACCESSOR$3 = {
6182
6159
  provide: i1.NG_VALUE_ACCESSOR,
6183
6160
  useExisting: i0.forwardRef(function () { return MatDuration; }),
6184
6161
  multi: true
6185
6162
  };
6186
6163
  var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
6187
- var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
6188
- var noop$3 = function () {
6164
+ var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
6165
+ var noop$5 = function () {
6189
6166
  };
6190
- var ɵ0$6 = noop$3;
6167
+ var ɵ0$5 = noop$5;
6191
6168
  var MatDuration = /** @class */ (function () {
6192
6169
  function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
6193
6170
  this.dateAdapter = dateAdapter;
@@ -6196,11 +6173,11 @@
6196
6173
  this.cd = cd;
6197
6174
  this.formGroupDir = formGroupDir;
6198
6175
  this._subscription = new rxjs.Subscription();
6199
- this._onChangeCallback = noop$3;
6200
- this._onTouchedCallback = noop$3;
6176
+ this._onChangeCallback = noop$5;
6177
+ this._onTouchedCallback = noop$5;
6201
6178
  this.writing = true;
6202
6179
  this.disabling = false;
6203
- this.hourMask = HOUR_MASK;
6180
+ this.hourMask = HOUR_MASK$1;
6204
6181
  this.disabled = false;
6205
6182
  this.floatLabel = 'auto';
6206
6183
  this.readonly = false;
@@ -6393,7 +6370,7 @@
6393
6370
  selector: 'mat-duration-field',
6394
6371
  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",
6395
6372
  providers: [
6396
- DEFAULT_VALUE_ACCESSOR$2,
6373
+ DEFAULT_VALUE_ACCESSOR$3,
6397
6374
  ],
6398
6375
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6399
6376
  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%}"]
@@ -6453,22 +6430,22 @@
6453
6430
  },] }
6454
6431
  ];
6455
6432
 
6456
- var DEFAULT_VALUE_ACCESSOR$1 = {
6433
+ var DEFAULT_VALUE_ACCESSOR$4 = {
6457
6434
  provide: i1.NG_VALUE_ACCESSOR,
6458
6435
  useExisting: i0.forwardRef(function () { return MatBooleanField; }),
6459
6436
  multi: true
6460
6437
  };
6461
- var noop$2 = function () {
6438
+ var noop$6 = function () {
6462
6439
  };
6463
- var ɵ0$5 = noop$2;
6440
+ var ɵ0$6 = noop$6;
6464
6441
  var MatBooleanField = /** @class */ (function () {
6465
6442
  function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
6466
6443
  this.translate = translate;
6467
6444
  this.formBuilder = formBuilder;
6468
6445
  this.cd = cd;
6469
6446
  this.formGroupDir = formGroupDir;
6470
- this._onChangeCallback = noop$2;
6471
- this._onTouchedCallback = noop$2;
6447
+ this._onChangeCallback = noop$6;
6448
+ this._onTouchedCallback = noop$6;
6472
6449
  this._writing = false;
6473
6450
  this.showRadio = false;
6474
6451
  this.disabled = false;
@@ -6643,7 +6620,7 @@
6643
6620
  selector: 'mat-boolean-field',
6644
6621
  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>&nbsp;\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>&nbsp;</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",
6645
6622
  providers: [
6646
- DEFAULT_VALUE_ACCESSOR$1
6623
+ DEFAULT_VALUE_ACCESSOR$4
6647
6624
  ],
6648
6625
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6649
6626
  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}"]
@@ -6730,7 +6707,6 @@
6730
6707
  return MatNumpadEvent;
6731
6708
  }(KeyboardEvent));
6732
6709
 
6733
- exports.AnimationState = void 0;
6734
6710
  (function (AnimationState) {
6735
6711
  AnimationState["ENTER"] = "enter";
6736
6712
  AnimationState["ENTER_INPUT"] = "enter-input";
@@ -6898,7 +6874,7 @@
6898
6874
  };
6899
6875
  return MatNumpadDomService;
6900
6876
  }());
6901
- MatNumpadDomService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0__namespace.ɵɵinject(i0__namespace.ComponentFactoryResolver), i0__namespace.ɵɵinject(i0__namespace.ApplicationRef), i0__namespace.ɵɵinject(i0__namespace.INJECTOR), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
6877
+ MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$4.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
6902
6878
  MatNumpadDomService.decorators = [
6903
6879
  { type: i0.Injectable, args: [{
6904
6880
  providedIn: 'root'
@@ -7304,7 +7280,7 @@
7304
7280
  },] }
7305
7281
  ];
7306
7282
 
7307
- var DEFAULT_VALUE_ACCESSOR = {
7283
+ var DEFAULT_VALUE_ACCESSOR$5 = {
7308
7284
  provide: i1.NG_VALUE_ACCESSOR,
7309
7285
  useExisting: i0.forwardRef(function () { return MatSwipeField; }),
7310
7286
  multi: true
@@ -7624,7 +7600,7 @@
7624
7600
  { type: i0.Component, args: [{
7625
7601
  selector: 'mat-swipe-field',
7626
7602
  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",
7627
- providers: [DEFAULT_VALUE_ACCESSOR],
7603
+ providers: [DEFAULT_VALUE_ACCESSOR$5],
7628
7604
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
7629
7605
  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}"]
7630
7606
  },] }
@@ -7685,14 +7661,14 @@
7685
7661
  },] }
7686
7662
  ];
7687
7663
 
7688
- var noop$1 = function () { };
7689
- var ɵ0$4 = noop$1;
7664
+ var noop$7 = function () { };
7665
+ var ɵ0$7 = noop$7;
7690
7666
  var MatChipsField = /** @class */ (function () {
7691
7667
  function MatChipsField(cd, formGroupDir) {
7692
7668
  this.cd = cd;
7693
7669
  this.formGroupDir = formGroupDir;
7694
- this._onChangeCallback = noop$1;
7695
- this._onTouchedCallback = noop$1;
7670
+ this._onChangeCallback = noop$7;
7671
+ this._onTouchedCallback = noop$7;
7696
7672
  this.logPrefix = '[mat-chips] ';
7697
7673
  this.formControlName = null;
7698
7674
  this.required = false;
@@ -8660,7 +8636,7 @@
8660
8636
  };
8661
8637
  return ProgressBarService;
8662
8638
  }());
8663
- ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
8639
+ ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
8664
8640
  ProgressBarService.decorators = [
8665
8641
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
8666
8642
  ];
@@ -8707,7 +8683,7 @@
8707
8683
  };
8708
8684
  return AppGestureConfig;
8709
8685
  }(i1$6.HammerGestureConfig));
8710
- AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
8686
+ AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
8711
8687
  AppGestureConfig.decorators = [
8712
8688
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
8713
8689
  ];
@@ -8974,7 +8950,7 @@
8974
8950
  };
8975
8951
  return MatPaginatorI18n;
8976
8952
  }(paginator.MatPaginatorIntl));
8977
- MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8953
+ MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8978
8954
  MatPaginatorI18n.decorators = [
8979
8955
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
8980
8956
  ];
@@ -9066,17 +9042,17 @@
9066
9042
  return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
9067
9043
  }
9068
9044
 
9069
- var noop = function () {
9045
+ var noop$8 = function () {
9070
9046
  };
9071
- var ɵ0$3 = noop;
9047
+ var ɵ0$8 = noop$8;
9072
9048
  var AppFormField = /** @class */ (function () {
9073
9049
  function AppFormField(translate, cd, injector, formGroupDir) {
9074
9050
  this.translate = translate;
9075
9051
  this.cd = cd;
9076
9052
  this.injector = injector;
9077
9053
  this.formGroupDir = formGroupDir;
9078
- this._onChangeCallback = noop;
9079
- this._onTouchedCallback = noop;
9054
+ this._onChangeCallback = noop$8;
9055
+ this._onTouchedCallback = noop$8;
9080
9056
  this.readonly = false;
9081
9057
  this.compact = false;
9082
9058
  this.floatLabel = 'auto';
@@ -9631,7 +9607,7 @@
9631
9607
  };
9632
9608
  return AudioProvider;
9633
9609
  }(StartableService));
9634
- AudioProvider.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace.NativeAudio, 8), i0__namespace.ɵɵinject(i3__namespace.Vibration, 8), i0__namespace.ɵɵinject(i4__namespace.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
9610
+ AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$2.NativeAudio, 8), i0.ɵɵinject(i3$1.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
9635
9611
  AudioProvider.decorators = [
9636
9612
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
9637
9613
  ];
@@ -9731,7 +9707,7 @@
9731
9707
  };
9732
9708
  return Hotkeys;
9733
9709
  }());
9734
- Hotkeys.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0__namespace.ɵɵinject(i1__namespace$5.EventManager), i0__namespace.ɵɵinject(i2__namespace$1.MatDialog), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
9710
+ Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$6.EventManager), i0.ɵɵinject(i2.MatDialog), i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.ModalController)); }, token: Hotkeys, providedIn: "root" });
9735
9711
  Hotkeys.decorators = [
9736
9712
  { type: i0.Injectable, args: [{
9737
9713
  providedIn: 'root'
@@ -9935,7 +9911,7 @@
9935
9911
  return Base64ImageReader;
9936
9912
  }());
9937
9913
 
9938
- var uuidv4$1 = uuidv4Imported__namespace;
9914
+ var uuidv4 = uuidv4Imported__namespace;
9939
9915
  var FileService = /** @class */ (function () {
9940
9916
  function FileService(platform,
9941
9917
  //private transfer: FileTransfer,
@@ -9981,7 +9957,7 @@
9981
9957
  lastSlashIndex = source.lastIndexOf('/');
9982
9958
  if (lastSlashIndex === -1)
9983
9959
  throw new Error('Invalid URL: ' + source);
9984
- fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
9960
+ fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
9985
9961
  if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
9986
9962
  console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
9987
9963
  targetFilePath = this._imageDirectory + fileName;
@@ -10044,7 +10020,7 @@
10044
10020
  };
10045
10021
  return FileService;
10046
10022
  }());
10047
- FileService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
10023
+ FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
10048
10024
  FileService.decorators = [
10049
10025
  { type: i0.Injectable, args: [{
10050
10026
  providedIn: 'root',
@@ -10211,7 +10187,7 @@
10211
10187
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
10212
10188
 
10213
10189
  var scrypt = require('scrypt-async');
10214
- var sha256$1 = require('hash.js/lib/hash/sha/256');
10190
+ var sha256 = require('hash.js/lib/hash/sha/256');
10215
10191
  var sha512 = require('hash.js/lib/hash/sha/512');
10216
10192
  var nacl = {
10217
10193
  sign: tweetnacl.sign,
@@ -10317,7 +10293,7 @@
10317
10293
  * Hash (using SHA256) a message
10318
10294
  */
10319
10295
  CryptoService.prototype.sha256 = function (message) {
10320
- return sha256$1().update(message).digest('hex');
10296
+ return sha256().update(message).digest('hex');
10321
10297
  };
10322
10298
  /**
10323
10299
  * Hash (using SHA512) a message
@@ -10331,7 +10307,7 @@
10331
10307
  };
10332
10308
  return CryptoService;
10333
10309
  }());
10334
- CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
10310
+ CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
10335
10311
  CryptoService.decorators = [
10336
10312
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
10337
10313
  ];
@@ -11760,7 +11736,7 @@
11760
11736
  };
11761
11737
  return LocalSettingsService;
11762
11738
  }(StartableService));
11763
- LocalSettingsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
11739
+ LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
11764
11740
  LocalSettingsService.decorators = [
11765
11741
  { type: i0.Injectable, args: [{
11766
11742
  providedIn: 'root',
@@ -12563,7 +12539,7 @@
12563
12539
  };
12564
12540
  return NetworkService;
12565
12541
  }(StartableService));
12566
- NetworkService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i9__namespace.Network, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService, 8), i0__namespace.ɵɵinject(i1__namespace$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
12542
+ NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
12567
12543
  NetworkService.decorators = [
12568
12544
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
12569
12545
  ];
@@ -12583,7 +12559,7 @@
12583
12559
  { type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
12584
12560
  ]; };
12585
12561
 
12586
- var ErrorCodes$2 = {
12562
+ var ErrorCodes = {
12587
12563
  UNKNOWN_ERROR: 0,
12588
12564
  LOAD_ACCOUNT_ERROR: 1,
12589
12565
  BAD_PASSWORD: 2,
@@ -13000,7 +12976,7 @@
13000
12976
  case 13:
13001
12977
  err_1 = _b.sent();
13002
12978
  console.error(err_1);
13003
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
12979
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
13004
12980
  case 14:
13005
12981
  // Emit update event
13006
12982
  if (!opts || opts.emitEvent !== false) {
@@ -13777,7 +13753,7 @@
13777
13753
  }(StartableService));
13778
13754
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
13779
13755
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
13780
- EntitiesStorage.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(ProgressBarService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
13756
+ EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
13781
13757
  EntitiesStorage.decorators = [
13782
13758
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
13783
13759
  ];
@@ -13933,10 +13909,10 @@
13933
13909
  function referentialsToString(values, properties, separator) {
13934
13910
  return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
13935
13911
  }
13936
- var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
13912
+ var ɵ0$9 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
13937
13913
  var StatusList = Object.freeze([
13938
13914
  {
13939
- id: ɵ0$2,
13915
+ id: ɵ0$9,
13940
13916
  icon: 'checkmark',
13941
13917
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
13942
13918
  },
@@ -14239,7 +14215,7 @@
14239
14215
  (data.lastName || '')) || '';
14240
14216
  }
14241
14217
 
14242
- var uuidv4 = uuidv4Imported__namespace;
14218
+ var uuidv4$1 = uuidv4Imported__namespace;
14243
14219
  var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
14244
14220
  var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
14245
14221
  /**
@@ -14283,7 +14259,7 @@
14283
14259
  // Skip if not tracked
14284
14260
  if (!context || !context.tracked)
14285
14261
  return forward(operation);
14286
- var id = context.serializationKey || uuidv4();
14262
+ var id = context.serializationKey || uuidv4$1();
14287
14263
  console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
14288
14264
  // Clean context, before calling JSON.stringify (remove unused attributes)
14289
14265
  var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -14916,14 +14892,14 @@
14916
14892
  mutationLinks = void 0;
14917
14893
  // Add queue to store tracked queries, when offline
14918
14894
  if (enableTrackMutationQueries) {
14919
- serializingLink = new SerializingLink__default["default"]();
14895
+ serializingLink = new SerializingLink__default['default']();
14920
14896
  trackerLink = createTrackerLink({
14921
14897
  storage: storage,
14922
14898
  onNetworkStatusChange: this._networkStatusChanged$,
14923
14899
  debounce: 1000,
14924
14900
  debug: true
14925
14901
  });
14926
- queueLink_1 = new QueueLink__default["default"]();
14902
+ queueLink_1 = new QueueLink__default['default']();
14927
14903
  this.registerSubscription(this._networkStatusChanged$
14928
14904
  .subscribe(function (type) {
14929
14905
  // Network is offline: start buffering into queue
@@ -14938,7 +14914,7 @@
14938
14914
  }
14939
14915
  }));
14940
14916
  mutationLinks = [
14941
- loggerLink__default["default"],
14917
+ loggerLink__default['default'],
14942
14918
  queueLink_1,
14943
14919
  trackerLink,
14944
14920
  queueLink_1,
@@ -15045,7 +15021,7 @@
15045
15021
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
15046
15022
  || this.toAppError(err.networkError)
15047
15023
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
15048
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
15024
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
15049
15025
  // If graphQL: try to convert the first error found
15050
15026
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
15051
15027
  || this.toAppError(err)
@@ -15053,7 +15029,7 @@
15053
15029
  || (err.graphQLErrors && err.graphQLErrors[0])
15054
15030
  || err;
15055
15031
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
15056
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
15032
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
15057
15033
  console.error('[graphql] original error: ' + err.networkError.message);
15058
15034
  this.onNetworkError.next(error);
15059
15035
  }
@@ -15089,7 +15065,7 @@
15089
15065
  return 'ERROR.UNAUTHORIZED';
15090
15066
  case ServerErrorCodes.FORBIDDEN:
15091
15067
  return 'ERROR.FORBIDDEN';
15092
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
15068
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
15093
15069
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
15094
15070
  case ServerErrorCodes.BAD_UPDATE_DATE:
15095
15071
  return 'ERROR.BAD_UPDATE_DATE';
@@ -15121,7 +15097,7 @@
15121
15097
  };
15122
15098
  return GraphqlService;
15123
15099
  }(StartableService));
15124
- GraphqlService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$3.Apollo), i0__namespace.ɵɵinject(i3__namespace$2.HttpLink), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
15100
+ GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$3.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
15125
15101
  GraphqlService.decorators = [
15126
15102
  { type: i0.Injectable, args: [{
15127
15103
  providedIn: 'root'
@@ -15138,7 +15114,7 @@
15138
15114
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
15139
15115
  ]; };
15140
15116
 
15141
- var sha256 = require('hash.js/lib/hash/sha/256');
15117
+ var sha256$1 = require('hash.js/lib/hash/sha/256');
15142
15118
  var BaseGraphqlServiceOptions = /** @class */ (function () {
15143
15119
  function BaseGraphqlServiceOptions() {
15144
15120
  }
@@ -15308,8 +15284,8 @@
15308
15284
  };
15309
15285
  /* -- protected methods -- */
15310
15286
  BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
15311
- var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
15312
- var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
15287
+ var queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
15288
+ var variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
15313
15289
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
15314
15290
  };
15315
15291
  BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
@@ -15378,19 +15354,19 @@
15378
15354
  /* ------------------------------------
15379
15355
  * GraphQL queries
15380
15356
  * ------------------------------------*/
15381
- var Fragments$1 = {
15382
- account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
15383
- settings: core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
15357
+ var Fragments = {
15358
+ account: core.gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
15359
+ settings: core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
15384
15360
  };
15385
15361
  // Load account query
15386
- var LoadQuery$1 = core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments$1.account, Fragments$1.settings);
15362
+ var LoadQuery = core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments.account, Fragments.settings);
15387
15363
  // Check email query
15388
- var IsEmailExistsQuery = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
15364
+ var IsEmailExistsQuery = core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
15389
15365
  // Save (create or update) account mutation
15390
15366
  var AccountMutations = {
15391
- save: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
15392
- create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
15393
- saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments$1.settings)
15367
+ save: core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
15368
+ create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
15369
+ saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments.settings)
15394
15370
  };
15395
15371
  // Sent confirmation email
15396
15372
  var SendConfirmEmailMutation = core.gql(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"], ["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"])));
@@ -15752,7 +15728,7 @@
15752
15728
  error_3 = _b.sent();
15753
15729
  console.error(error_3);
15754
15730
  this.resetData();
15755
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
15731
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
15756
15732
  case 4:
15757
15733
  // Store pubkey+keypair
15758
15734
  this._cache.pubkey = Base58.encode(keypair.publicKey);
@@ -15788,7 +15764,7 @@
15788
15764
  return [3 /*break*/, 18];
15789
15765
  case 11:
15790
15766
  err_1 = _b.sent();
15791
- if (!(err_1 && +(err_1.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
15767
+ if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
15792
15768
  if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
15793
15769
  isEmailExists = void 0;
15794
15770
  _b.label = 12;
@@ -15804,12 +15780,12 @@
15804
15780
  case 15:
15805
15781
  // Email not exists (no account)
15806
15782
  if (!isEmailExists) {
15807
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
15783
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
15808
15784
  }
15809
15785
  _b.label = 16;
15810
15786
  case 16:
15811
15787
  // Email exists, so error = 'bad password'
15812
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
15788
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
15813
15789
  case 17: throw err_1; // resend the first error
15814
15790
  case 18:
15815
15791
  _b.trys.push([18, 20, , 21]);
@@ -15981,8 +15957,8 @@
15981
15957
  _b.label = 3;
15982
15958
  case 3: return [3 /*break*/, 6];
15983
15959
  case 4: return [4 /*yield*/, this.graphql.query({
15984
- query: LoadQuery$1,
15985
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
15960
+ query: LoadQuery,
15961
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
15986
15962
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
15987
15963
  })];
15988
15964
  case 5:
@@ -16020,7 +15996,7 @@
16020
15996
  case 1:
16021
15997
  isEmailExists = _b.sent();
16022
15998
  if (isEmailExists) {
16023
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
15999
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
16024
16000
  }
16025
16001
  return [2 /*return*/];
16026
16002
  }
@@ -16070,7 +16046,7 @@
16070
16046
  locale: locale
16071
16047
  },
16072
16048
  error: {
16073
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
16049
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
16074
16050
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
16075
16051
  }
16076
16052
  })];
@@ -16093,7 +16069,7 @@
16093
16069
  code: code
16094
16070
  },
16095
16071
  error: {
16096
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
16072
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
16097
16073
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
16098
16074
  }
16099
16075
  })];
@@ -16116,7 +16092,7 @@
16116
16092
  interval: 10
16117
16093
  },
16118
16094
  error: {
16119
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
16095
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
16120
16096
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
16121
16097
  }
16122
16098
  }).subscribe({
@@ -16256,7 +16232,7 @@
16256
16232
  throw error_6;
16257
16233
  console.error(error_6);
16258
16234
  throw {
16259
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
16235
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
16260
16236
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
16261
16237
  };
16262
16238
  case 6: return [2 /*return*/];
@@ -16465,7 +16441,7 @@
16465
16441
  case 1:
16466
16442
  existingAccount = _b.sent();
16467
16443
  if (!existingAccount || !existingAccount.updateDate) {
16468
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
16444
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
16469
16445
  }
16470
16446
  this.copyIdAndUpdateDate(existingAccount, account);
16471
16447
  _b.label = 2;
@@ -16477,7 +16453,7 @@
16477
16453
  mutation: isNew ? AccountMutations.create : AccountMutations.save,
16478
16454
  variables: { data: json },
16479
16455
  error: {
16480
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
16456
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
16481
16457
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
16482
16458
  }
16483
16459
  })];
@@ -16511,7 +16487,7 @@
16511
16487
  mutation: AccountMutations.saveSettings,
16512
16488
  variables: { data: json },
16513
16489
  error: {
16514
- code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
16490
+ code: ErrorCodes.SAVE_SETTINGS_ERROR,
16515
16491
  message: 'ERROR.SAVE_SETTINGS_ERROR'
16516
16492
  }
16517
16493
  })];
@@ -16542,7 +16518,7 @@
16542
16518
  if (counter > 4) {
16543
16519
  if (this._debug)
16544
16520
  console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
16545
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
16521
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
16546
16522
  }
16547
16523
  if (!token) return [3 /*break*/, 2];
16548
16524
  return [4 /*yield*/, this.graphql.query({
@@ -16551,7 +16527,7 @@
16551
16527
  token: token
16552
16528
  },
16553
16529
  error: {
16554
- code: ErrorCodes$2.UNAUTHORIZED,
16530
+ code: ErrorCodes.UNAUTHORIZED,
16555
16531
  message: 'ERROR.UNAUTHORIZED'
16556
16532
  },
16557
16533
  fetchPolicy: 'no-cache'
@@ -16568,7 +16544,7 @@
16568
16544
  _b.label = 2;
16569
16545
  case 2:
16570
16546
  challengeError = {
16571
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
16547
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
16572
16548
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
16573
16549
  };
16574
16550
  return [4 /*yield*/, this.graphql.query({
@@ -16615,7 +16591,7 @@
16615
16591
  };
16616
16592
  return AccountService;
16617
16593
  }(BaseGraphqlService));
16618
- AccountService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
16594
+ AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
16619
16595
  AccountService.decorators = [
16620
16596
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
16621
16597
  ];
@@ -16628,7 +16604,7 @@
16628
16604
  { type: FileService },
16629
16605
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
16630
16606
  ]; };
16631
- var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
16607
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
16632
16608
 
16633
16609
  var Software_1, Configuration_1;
16634
16610
  // @dynamic
@@ -16880,18 +16856,18 @@
16880
16856
  /* ------------------------------------
16881
16857
  * GraphQL queries
16882
16858
  * ------------------------------------*/
16883
- var Fragments = {
16884
- config: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "], ["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "])))
16859
+ var Fragments$1 = {
16860
+ config: core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "], ["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "])))
16885
16861
  };
16886
- var LoadQuery = core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments.config);
16862
+ var LoadQuery$1 = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments$1.config);
16887
16863
  // Save (create or update) account mutation
16888
- var SaveMutation = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments.config);
16889
- var ClearCache = core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
16864
+ var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments$1.config);
16865
+ var ClearCache = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
16890
16866
  var CacheStatistics = core.gql(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n query CacheStatistics {\n cacheStatistics\n }\n"], ["\n query CacheStatistics {\n cacheStatistics\n }\n"])));
16891
16867
  var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
16892
16868
  var ConfigService = /** @class */ (function (_super) {
16893
16869
  __extends(ConfigService, _super);
16894
- function ConfigService(platform, graphql, storage, network, file, toastController, translate, environment, defaultOptionsMap) {
16870
+ function ConfigService(platform, graphql, storage, network, file, toastController, translate, accountService, environment, defaultOptionsMap) {
16895
16871
  var _this = _super.call(this, graphql, environment) || this;
16896
16872
  _this.platform = platform;
16897
16873
  _this.graphql = graphql;
@@ -16900,6 +16876,7 @@
16900
16876
  _this.file = file;
16901
16877
  _this.toastController = toastController;
16902
16878
  _this.translate = translate;
16879
+ _this.accountService = accountService;
16903
16880
  _this.environment = environment;
16904
16881
  _this.$data = new rxjs.BehaviorSubject(null);
16905
16882
  _this._debug = !environment.production;
@@ -16945,12 +16922,12 @@
16945
16922
  case 0:
16946
16923
  now = Date.now();
16947
16924
  console.debug('[config] Loading Pod configuration...');
16948
- query = opts && opts.query || LoadQuery;
16925
+ query = opts && opts.query || LoadQuery$1;
16949
16926
  variables = opts && opts.variables || undefined;
16950
16927
  return [4 /*yield*/, this.graphql.query({
16951
16928
  query: query,
16952
16929
  variables: variables,
16953
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
16930
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
16954
16931
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
16955
16932
  })];
16956
16933
  case 1:
@@ -16970,6 +16947,9 @@
16970
16947
  });
16971
16948
  });
16972
16949
  };
16950
+ ConfigService.prototype.canUserWrite = function (data, opts) {
16951
+ return this.accountService.isAdmin();
16952
+ };
16973
16953
  /**
16974
16954
  * Save a configuration
16975
16955
  *
@@ -16989,7 +16969,7 @@
16989
16969
  data: json
16990
16970
  },
16991
16971
  error: {
16992
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
16972
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
16993
16973
  message: 'ERROR.SAVE_CONFIG_ERROR'
16994
16974
  }
16995
16975
  })];
@@ -17024,7 +17004,7 @@
17024
17004
  return [4 /*yield*/, this.graphql.query({
17025
17005
  query: CacheStatistics,
17026
17006
  variables: null,
17027
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
17007
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
17028
17008
  fetchPolicy: 'network-only'
17029
17009
  })];
17030
17010
  case 1:
@@ -17048,7 +17028,7 @@
17048
17028
  return [4 /*yield*/, this.graphql.query({
17049
17029
  query: ClearCache,
17050
17030
  variables: variables,
17051
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
17031
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
17052
17032
  fetchPolicy: 'network-only'
17053
17033
  })];
17054
17034
  case 1:
@@ -17248,7 +17228,7 @@
17248
17228
  };
17249
17229
  return ConfigService;
17250
17230
  }(BaseGraphqlService));
17251
- ConfigService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
17231
+ ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
17252
17232
  ConfigService.decorators = [
17253
17233
  { type: i0.Injectable, args: [{
17254
17234
  providedIn: 'root',
@@ -17263,12 +17243,13 @@
17263
17243
  { type: FileService },
17264
17244
  { type: i1$5.ToastController },
17265
17245
  { type: i1$2.TranslateService },
17246
+ { type: AccountService },
17266
17247
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
17267
17248
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
17268
17249
  ]; };
17269
- var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$1;
17250
+ var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
17270
17251
 
17271
- var moment$2 = momentImported__namespace;
17252
+ var moment$4 = momentImported__namespace;
17272
17253
  var PlatformService = /** @class */ (function (_super) {
17273
17254
  __extends(PlatformService, _super);
17274
17255
  function PlatformService(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
@@ -17507,16 +17488,16 @@
17507
17488
  }
17508
17489
  // config moment lib
17509
17490
  try {
17510
- moment$2.locale(event.lang);
17491
+ moment$4.locale(event.lang);
17511
17492
  console.debug('[platform] Use locale {' + event.lang + '}');
17512
17493
  }
17513
17494
  // If error, fallback to en
17514
17495
  catch (err) {
17515
- moment$2.locale('en');
17496
+ moment$4.locale('en');
17516
17497
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
17517
17498
  }
17518
17499
  // Config date adapter
17519
- _this.dateAdapter.setLocale(moment$2.locale());
17500
+ _this.dateAdapter.setLocale(moment$4.locale());
17520
17501
  }
17521
17502
  });
17522
17503
  this.settings.onChange.subscribe(function (data) {
@@ -17697,7 +17678,7 @@
17697
17678
  };
17698
17679
  return PlatformService;
17699
17680
  }(StartableService));
17700
- PlatformService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(EntitiesStorage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(ConfigService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(AudioProvider), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i14__namespace.StatusBar, 8), i0__namespace.ɵɵinject(i15__namespace.Keyboard, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i17__namespace.InAppBrowser, 8), i0__namespace.ɵɵinject(i18__namespace.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
17681
+ PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
17701
17682
  PlatformService.decorators = [
17702
17683
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
17703
17684
  ];
@@ -17795,7 +17776,7 @@
17795
17776
  };
17796
17777
  return MatStepperI18n;
17797
17778
  }(stepper.MatStepperIntl));
17798
- MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
17779
+ MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
17799
17780
  MatStepperI18n.decorators = [
17800
17781
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
17801
17782
  ];
@@ -18997,7 +18978,7 @@
18997
18978
  return 1;
18998
18979
  }
18999
18980
  }
19000
- var ɵ0$1 = function (defaultStateSize) { return [
18981
+ var ɵ0$a = function (defaultStateSize) { return [
19001
18982
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
19002
18983
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
19003
18984
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -19005,7 +18986,7 @@
19005
18986
  var SCALE_OPTIONS_DEFAULT = {
19006
18987
  startColor: rgbArrayMap.red,
19007
18988
  startStates: [0, 2, 3],
19008
- startStepsFn: ɵ0$1
18989
+ startStepsFn: ɵ0$a
19009
18990
  };
19010
18991
  /**
19011
18992
  * Internal function, that create a colors scale, using iteration
@@ -19097,24 +19078,24 @@
19097
19078
  return result;
19098
19079
  }
19099
19080
 
19100
- var EntityTestClass$1 = /** @class */ (function () {
19081
+ var EntityTestClass = /** @class */ (function () {
19101
19082
  function EntityTestClass() {
19102
19083
  }
19103
19084
  return EntityTestClass;
19104
19085
  }());
19105
- var FAKE_ENTITIES$1 = [
19086
+ var FAKE_ENTITIES = [
19106
19087
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
19107
19088
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
19108
19089
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
19109
19090
  ];
19110
- function deepCopy$1(values, size) {
19091
+ function deepCopy(values, size) {
19111
19092
  if (isNil(size)) {
19112
- return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
19093
+ return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
19113
19094
  }
19114
19095
  var result = [];
19115
19096
  var i = 1;
19116
19097
  while (result.length < size) {
19117
- result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
19098
+ result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
19118
19099
  var name = entity.name + ' #' + i;
19119
19100
  return Object.assign(Object.assign({}, entity), { id: i++, name: name });
19120
19101
  }));
@@ -19124,7 +19105,7 @@
19124
19105
  var AutocompleteTestPage = /** @class */ (function () {
19125
19106
  function AutocompleteTestPage(formBuilder) {
19126
19107
  this.formBuilder = formBuilder;
19127
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
19108
+ this._items = deepCopy(FAKE_ENTITIES, 100);
19128
19109
  this._$items = new rxjs.BehaviorSubject(undefined);
19129
19110
  this.autocompleteFields = new MatAutocompleteConfigHolder();
19130
19111
  this.memoryHide = false;
@@ -19169,7 +19150,7 @@
19169
19150
  });
19170
19151
  // From items
19171
19152
  this.autocompleteFields.add('entity-items-large', {
19172
- items: FAKE_ENTITIES$1.slice(),
19153
+ items: FAKE_ENTITIES.slice(),
19173
19154
  attributes: ['label', 'name', 'description', 'comments'],
19174
19155
  displayWith: this.entityToString
19175
19156
  });
@@ -19182,12 +19163,12 @@
19182
19163
  var _this = this;
19183
19164
  return __generator(this, function (_a) {
19184
19165
  data = {
19185
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
19166
+ entity: deepCopy(FAKE_ENTITIES)[0],
19186
19167
  // This item is NOT in the items list => i should be displayed anyway
19187
19168
  missingEntity: {
19188
19169
  id: -1, label: '??', name: 'Missing item'
19189
19170
  },
19190
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
19171
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
19191
19172
  };
19192
19173
  this.form.setValue(data);
19193
19174
  // Load observables
@@ -19385,13 +19366,13 @@
19385
19366
  { type: Array, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_TESTING_PAGES,] }] }
19386
19367
  ]; };
19387
19368
 
19388
- var moment$1 = momentImported__namespace;
19369
+ var moment$5 = momentImported__namespace;
19389
19370
  var SwipeTestPage = /** @class */ (function () {
19390
19371
  function SwipeTestPage(formBuilder, dateFormatPipe) {
19391
19372
  this.formBuilder = formBuilder;
19392
19373
  this.dateFormatPipe = dateFormatPipe;
19393
19374
  this.$dates = new rxjs.BehaviorSubject(undefined);
19394
- this._today = moment$1().startOf('day');
19375
+ this._today = moment$5().startOf('day');
19395
19376
  this.form = formBuilder.group({
19396
19377
  empty: [null, i1.Validators.required],
19397
19378
  date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
@@ -19405,7 +19386,7 @@
19405
19386
  var _this = this;
19406
19387
  var dates = [];
19407
19388
  for (var d = 0; d < 7; d++) {
19408
- dates[d] = moment$1(this._today).add(d - 3, 'day');
19389
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
19409
19390
  }
19410
19391
  this.$dates.next(dates);
19411
19392
  this.loadData();
@@ -19452,7 +19433,7 @@
19452
19433
  { type: DateFormatPipe }
19453
19434
  ]; };
19454
19435
 
19455
- var moment = momentImported__namespace;
19436
+ var moment$6 = momentImported__namespace;
19456
19437
  var DateTimeTestPage = /** @class */ (function () {
19457
19438
  function DateTimeTestPage(platform, formBuilder, cd) {
19458
19439
  this.platform = platform;
@@ -19488,7 +19469,7 @@
19488
19469
  var now, data;
19489
19470
  var _this = this;
19490
19471
  return __generator(this, function (_a) {
19491
- now = moment();
19472
+ now = moment$6();
19492
19473
  data = {
19493
19474
  empty: toDateISOString(now.clone().add(2, 'hours')),
19494
19475
  enable: toDateISOString(now),
@@ -19553,12 +19534,12 @@
19553
19534
  { type: i0.ChangeDetectorRef }
19554
19535
  ]; };
19555
19536
 
19556
- var EntityTestClass = /** @class */ (function () {
19537
+ var EntityTestClass$1 = /** @class */ (function () {
19557
19538
  function EntityTestClass() {
19558
19539
  }
19559
19540
  return EntityTestClass;
19560
19541
  }());
19561
- var FAKE_ENTITIES = [
19542
+ var FAKE_ENTITIES$1 = [
19562
19543
  { id: 1, label: 'AAA', name: 'Item A' },
19563
19544
  { id: 2, label: 'BBB', name: 'Item B' },
19564
19545
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -19567,14 +19548,14 @@
19567
19548
  { id: 6, label: 'FFF', name: 'Item F' },
19568
19549
  { id: 7, label: 'GGG', name: 'Item G' }
19569
19550
  ];
19570
- function deepCopy(values, size) {
19551
+ function deepCopy$1(values, size) {
19571
19552
  if (isNil(size)) {
19572
- return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
19553
+ return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
19573
19554
  }
19574
19555
  var result = [];
19575
19556
  var i = 1;
19576
19557
  while (result.length < size) {
19577
- result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
19558
+ result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
19578
19559
  var name = entity.name + ' #' + i;
19579
19560
  return Object.assign(Object.assign({}, entity), { id: i++, name: name });
19580
19561
  }));
@@ -19584,7 +19565,7 @@
19584
19565
  var ChipsTestPage = /** @class */ (function () {
19585
19566
  function ChipsTestPage(formBuilder) {
19586
19567
  this.formBuilder = formBuilder;
19587
- this._items = deepCopy(FAKE_ENTITIES, 100);
19568
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
19588
19569
  this._$items = new rxjs.BehaviorSubject(undefined);
19589
19570
  this.autocompleteFields = new MatAutocompleteConfigHolder();
19590
19571
  this.form = formBuilder.group({
@@ -19627,7 +19608,7 @@
19627
19608
  var items, data;
19628
19609
  var _this = this;
19629
19610
  return __generator(this, function (_a) {
19630
- items = deepCopy(FAKE_ENTITIES);
19611
+ items = deepCopy$1(FAKE_ENTITIES$1);
19631
19612
  data = {
19632
19613
  entity: items.slice(0, 1),
19633
19614
  entityInitial: items.slice(1, 2),
@@ -19719,7 +19700,7 @@
19719
19700
  },] }
19720
19701
  ];
19721
19702
 
19722
- var routes$1 = [
19703
+ var routes = [
19723
19704
  {
19724
19705
  path: '',
19725
19706
  pathMatch: 'full',
@@ -19774,7 +19755,7 @@
19774
19755
  i1.ReactiveFormsModule,
19775
19756
  SharedMaterialModule,
19776
19757
  i1$2.TranslateModule.forChild(),
19777
- i3.RouterModule.forChild(routes$1)
19758
+ i3.RouterModule.forChild(routes)
19778
19759
  ],
19779
19760
  declarations: [
19780
19761
  MaterialTestingPage,
@@ -20979,7 +20960,7 @@
20979
20960
  };
20980
20961
  return UserSettingsValidatorService;
20981
20962
  }(AppValidatorService));
20982
- UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
20963
+ UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
20983
20964
  UserSettingsValidatorService.decorators = [
20984
20965
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
20985
20966
  ];
@@ -21027,7 +21008,7 @@
21027
21008
  };
21028
21009
  return AccountValidatorService;
21029
21010
  }(AppValidatorService));
21030
- AccountValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
21011
+ AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
21031
21012
  AccountValidatorService.decorators = [
21032
21013
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
21033
21014
  ];
@@ -21658,7 +21639,7 @@
21658
21639
  };
21659
21640
  return LocalSettingsValidatorService;
21660
21641
  }(AppValidatorService));
21661
- LocalSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
21642
+ LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
21662
21643
  LocalSettingsValidatorService.decorators = [
21663
21644
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
21664
21645
  ];
@@ -22438,7 +22419,7 @@
22438
22419
  };
22439
22420
  return IsOnFieldModePipe;
22440
22421
  }());
22441
- IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
22422
+ IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
22442
22423
  IsOnFieldModePipe.decorators = [
22443
22424
  { type: i0.Pipe, args: [{
22444
22425
  name: 'isOnField'
@@ -22453,7 +22434,7 @@
22453
22434
  };
22454
22435
  return IsNotOnFieldModePipe;
22455
22436
  }());
22456
- IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
22437
+ IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
22457
22438
  IsNotOnFieldModePipe.decorators = [
22458
22439
  { type: i0.Pipe, args: [{
22459
22440
  name: 'isNotOnField'
@@ -22471,7 +22452,7 @@
22471
22452
  };
22472
22453
  return PersonToStringPipe;
22473
22454
  }());
22474
- PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
22455
+ PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
22475
22456
  PersonToStringPipe.decorators = [
22476
22457
  { type: i0.Pipe, args: [{
22477
22458
  name: 'personToString'
@@ -22935,7 +22916,7 @@
22935
22916
  };
22936
22917
  return IsLoginAccountPipe;
22937
22918
  }());
22938
- IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
22919
+ IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
22939
22920
  IsLoginAccountPipe.decorators = [
22940
22921
  { type: i0.Pipe, args: [{
22941
22922
  name: 'isLogin'
@@ -22950,7 +22931,7 @@
22950
22931
  };
22951
22932
  return AccountToStringPipe;
22952
22933
  }());
22953
- AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
22934
+ AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
22954
22935
  AccountToStringPipe.decorators = [
22955
22936
  { type: i0.Pipe, args: [{
22956
22937
  name: 'accountToString'
@@ -22968,7 +22949,7 @@
22968
22949
  };
22969
22950
  return DepartmentToStringPipe;
22970
22951
  }());
22971
- DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
22952
+ DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
22972
22953
  DepartmentToStringPipe.decorators = [
22973
22954
  { type: i0.Pipe, args: [{
22974
22955
  name: 'departmentToString'
@@ -23003,7 +22984,7 @@
23003
22984
  };
23004
22985
  return MenuService;
23005
22986
  }());
23006
- MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
22987
+ MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
23007
22988
  MenuService.decorators = [
23008
22989
  { type: i0.Injectable, args: [{
23009
22990
  providedIn: 'root'
@@ -23617,7 +23598,7 @@
23617
23598
  };
23618
23599
  return AuthGuardService;
23619
23600
  }());
23620
- AuthGuardService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(i3__namespace$3.Router), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
23601
+ AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(i3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
23621
23602
  AuthGuardService.decorators = [
23622
23603
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
23623
23604
  ];
@@ -23662,7 +23643,7 @@
23662
23643
  query: query,
23663
23644
  variables: { id: id },
23664
23645
  fetchPolicy: opts && opts.fetchPolicy || undefined,
23665
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
23646
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
23666
23647
  })
23667
23648
  .pipe(operators.map(function (_b) {
23668
23649
  var data = _b.data;
@@ -23684,7 +23665,7 @@
23684
23665
  query: query,
23685
23666
  variables: { id: id },
23686
23667
  fetchPolicy: opts && opts.fetchPolicy || undefined,
23687
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
23668
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
23688
23669
  })];
23689
23670
  case 1:
23690
23671
  data = (_b.sent()).data;
@@ -23720,7 +23701,7 @@
23720
23701
  totalFieldName: withTotal ? 'total' : undefined,
23721
23702
  insertFilterFn: filter && filter.asFilterFn(),
23722
23703
  variables: variables,
23723
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
23704
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
23724
23705
  fetchPolicy: opts && opts.fetchPolicy || undefined
23725
23706
  })
23726
23707
  .pipe(operators.map(function (_b) {
@@ -23762,7 +23743,7 @@
23762
23743
  return [4 /*yield*/, this.graphql.query({
23763
23744
  query: query,
23764
23745
  variables: variables,
23765
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
23746
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
23766
23747
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
23767
23748
  })];
23768
23749
  case 1:
@@ -23810,7 +23791,7 @@
23810
23791
  variables: {
23811
23792
  filter: filter && filter.asPodObject()
23812
23793
  },
23813
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
23794
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
23814
23795
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
23815
23796
  })];
23816
23797
  case 3:
@@ -23820,6 +23801,9 @@
23820
23801
  });
23821
23802
  });
23822
23803
  };
23804
+ BaseEntityService.prototype.canUserWrite = function (data, opts) {
23805
+ return !!data;
23806
+ };
23823
23807
  BaseEntityService.prototype.saveAll = function (entities, opts) {
23824
23808
  return __awaiter(this, void 0, void 0, function () {
23825
23809
  var hasNewEntities, json, now;
@@ -23852,7 +23836,7 @@
23852
23836
  variables: {
23853
23837
  data: json
23854
23838
  },
23855
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
23839
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
23856
23840
  update: function (proxy, _b) {
23857
23841
  var data = _b.data;
23858
23842
  var savedEntities = data && data.data;
@@ -23919,7 +23903,7 @@
23919
23903
  variables: {
23920
23904
  data: json
23921
23905
  },
23922
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
23906
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
23923
23907
  update: function (cache, _b) {
23924
23908
  var data = _b.data;
23925
23909
  // Update entity
@@ -23977,7 +23961,7 @@
23977
23961
  refetchQueries: this.getRefetchQueriesForMutation(opts),
23978
23962
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
23979
23963
  variables: { ids: ids },
23980
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
23964
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
23981
23965
  update: function (cache, res) {
23982
23966
  // Remove from cache
23983
23967
  if (_this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -24030,7 +24014,7 @@
24030
24014
  refetchQueries: this.getRefetchQueriesForMutation(opts),
24031
24015
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
24032
24016
  variables: { id: id },
24033
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
24017
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
24034
24018
  update: function (proxy, res) {
24035
24019
  // Remove from cache
24036
24020
  if (_this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -24069,7 +24053,7 @@
24069
24053
  query: opts && opts.query || this.subscriptions.listenChanges,
24070
24054
  variables: variables,
24071
24055
  error: {
24072
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
24056
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
24073
24057
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
24074
24058
  }
24075
24059
  })
@@ -24292,7 +24276,7 @@
24292
24276
  if (this._debug)
24293
24277
  invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
24294
24278
  // Stop with an error
24295
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
24279
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
24296
24280
  }
24297
24281
  this._editingRowCount = 0;
24298
24282
  data = void 0;
@@ -25296,7 +25280,7 @@
25296
25280
  return true;
25297
25281
  };
25298
25282
  AppTable.prototype.save = function (opts) {
25299
- var _a, _b;
25283
+ var _a, _b, _c;
25300
25284
  return __awaiter(this, void 0, void 0, function () {
25301
25285
  var previouslyEditedData, isOK, err_1;
25302
25286
  return __generator(this, function (_d) {
@@ -25304,14 +25288,14 @@
25304
25288
  case 0:
25305
25289
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
25306
25290
  if (this.readOnly) {
25307
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
25291
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
25308
25292
  }
25309
25293
  this.resetError();
25310
25294
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
25311
- this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
25312
- previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
25295
+ 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));
25296
+ previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_c = this.singleSelectedRow) === null || _c === void 0 ? void 0 : _c.currentData);
25313
25297
  if (!this.confirmEditCreate()) {
25314
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
25298
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
25315
25299
  }
25316
25300
  // Mark as saving
25317
25301
  this.markAsSaving();
@@ -25466,7 +25450,7 @@
25466
25450
  switch (_d.label) {
25467
25451
  case 0:
25468
25452
  if (this.readOnly) {
25469
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
25453
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
25470
25454
  }
25471
25455
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
25472
25456
  return [2 /*return*/, 0]; // SKip
@@ -27311,7 +27295,7 @@
27311
27295
  case 8:
27312
27296
  data = _b.sent();
27313
27297
  if (!data)
27314
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
27298
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
27315
27299
  this._usageMode = this.computeUsageMode(data);
27316
27300
  return [4 /*yield*/, this.onEntityLoaded(data, opts)];
27317
27301
  case 9:
@@ -27734,6 +27718,10 @@
27734
27718
  if (!opts || opts.emitEvent !== false)
27735
27719
  this.markForCheck();
27736
27720
  };
27721
+ /* -- public abstract methods (to override) -- */
27722
+ AppEntityEditor.prototype.canUserWrite = function (data, opts) {
27723
+ return this.dataService.canUserWrite(data, opts);
27724
+ };
27737
27725
  /* -- protected methods -- */
27738
27726
  /**
27739
27727
  * Return undefined to keep same tab
@@ -28073,10 +28061,10 @@
28073
28061
  exports.UserEventFilter = __decorate([
28074
28062
  EntityClass({ typename: 'UserEventVO' })
28075
28063
  ], exports.UserEventFilter);
28076
- var SaveQuery = core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
28077
- var LoadAllQuery = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"], ["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"])), SocialFragments.lightUserEvent);
28078
- var DeleteByIdsMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"])));
28079
- var LoadAllWithContentQuery = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
28064
+ var SaveQuery = core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
28065
+ var LoadAllQuery = core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"], ["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"])), SocialFragments.lightUserEvent);
28066
+ var DeleteByIdsMutation = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"])));
28067
+ var LoadAllWithContentQuery = core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
28080
28068
  var UserEventService = /** @class */ (function (_super) {
28081
28069
  __extends(UserEventService, _super);
28082
28070
  function UserEventService(graphql, accountService, network, translate, toastController, environment) {
@@ -28397,7 +28385,7 @@
28397
28385
  };
28398
28386
  return UserEventService;
28399
28387
  }(BaseGraphqlService));
28400
- UserEventService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
28388
+ UserEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(AccountService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
28401
28389
  UserEventService.decorators = [
28402
28390
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
28403
28391
  ];
@@ -28409,7 +28397,7 @@
28409
28397
  { type: i1$5.ToastController },
28410
28398
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
28411
28399
  ]; };
28412
- var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1;
28400
+ var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2;
28413
28401
 
28414
28402
  var ICONS_MAP = {
28415
28403
  DEBUG_DATA: { matIcon: 'bug_report' },
@@ -28672,16 +28660,16 @@
28672
28660
  ], exports.PersonFilter);
28673
28661
 
28674
28662
  var PersonFragments = {
28675
- person: core.gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"], ["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"])))
28663
+ person: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"], ["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"])))
28676
28664
  };
28677
28665
  // Load persons query
28678
28666
  var PersonQueries = {
28679
- loadAll: core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""], ["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
28680
- loadAllWithTotal: core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""], ["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""])), PersonFragments.person)
28667
+ loadAll: core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""], ["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
28668
+ loadAllWithTotal: core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""], ["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""])), PersonFragments.person)
28681
28669
  };
28682
28670
  var PersonMutations = {
28683
- saveAll: core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""], ["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
28684
- deleteAll: core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
28671
+ saveAll: core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""], ["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
28672
+ deleteAll: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
28685
28673
  };
28686
28674
  var PersonService = /** @class */ (function (_super_1) {
28687
28675
  __extends(PersonService, _super_1);
@@ -28805,7 +28793,7 @@
28805
28793
  };
28806
28794
  return PersonService;
28807
28795
  }(BaseEntityService));
28808
- PersonService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(PlatformService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
28796
+ PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
28809
28797
  PersonService.decorators = [
28810
28798
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
28811
28799
  ];
@@ -28815,7 +28803,7 @@
28815
28803
  { type: NetworkService },
28816
28804
  { type: EntitiesStorage }
28817
28805
  ]; };
28818
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
28806
+ var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2;
28819
28807
 
28820
28808
  var PersonValidatorService = /** @class */ (function () {
28821
28809
  function PersonValidatorService(formBuilder, accountValidatorService) {
@@ -28838,7 +28826,7 @@
28838
28826
  };
28839
28827
  return PersonValidatorService;
28840
28828
  }());
28841
- PersonValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
28829
+ PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
28842
28830
  PersonValidatorService.decorators = [
28843
28831
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
28844
28832
  ];
@@ -29061,16 +29049,16 @@
29061
29049
  ];
29062
29050
  AdminModule.ctorParameters = function () { return []; };
29063
29051
 
29064
- var ɵ0 = {
29052
+ var ɵ0$b = {
29065
29053
  profile: 'ADMIN'
29066
29054
  };
29067
- var routes = [
29055
+ var routes$1 = [
29068
29056
  {
29069
29057
  path: 'users',
29070
29058
  pathMatch: 'full',
29071
29059
  component: UsersPage,
29072
29060
  canActivate: [AuthGuardService],
29073
- data: ɵ0
29061
+ data: ɵ0$b
29074
29062
  }
29075
29063
  ];
29076
29064
  var AdminRoutingModule = /** @class */ (function () {
@@ -29083,13 +29071,13 @@
29083
29071
  imports: [
29084
29072
  SharedRoutingModule,
29085
29073
  AdminModule,
29086
- i3.RouterModule.forChild(routes)
29074
+ i3.RouterModule.forChild(routes$1)
29087
29075
  ],
29088
29076
  exports: [i3.RouterModule]
29089
29077
  },] }
29090
29078
  ];
29091
29079
 
29092
- var ErrorCodes = {
29080
+ var ErrorCodes$2 = {
29093
29081
  LOAD_PERSONS_ERROR: 100,
29094
29082
  SAVE_PERSONS_ERROR: 101,
29095
29083
  DELETE_PERSONS_ERROR: 102,
@@ -29200,7 +29188,7 @@
29200
29188
  exports.EntityStore = EntityStore;
29201
29189
  exports.EntityUtils = EntityUtils;
29202
29190
  exports.Environment = Environment;
29203
- exports.ErrorCodes = ErrorCodes;
29191
+ exports.ErrorCodes = ErrorCodes$2;
29204
29192
  exports.EvenPipe = EvenPipe;
29205
29193
  exports.FileService = FileService;
29206
29194
  exports.FileSizePipe = FileSizePipe;
@@ -29210,7 +29198,7 @@
29210
29198
  exports.FormErrorTranslatePipe = FormErrorTranslatePipe;
29211
29199
  exports.FormErrorTranslator = FormErrorTranslator;
29212
29200
  exports.FormFieldValuesHolder = FormFieldValuesHolder;
29213
- exports.Fragments = Fragments;
29201
+ exports.Fragments = Fragments$1;
29214
29202
  exports.GraphqlService = GraphqlService;
29215
29203
  exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
29216
29204
  exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
@@ -29463,20 +29451,20 @@
29463
29451
  exports.waitForTrue = waitForTrue;
29464
29452
  exports.waitIdle = waitIdle;
29465
29453
  exports.waitWhilePending = waitWhilePending;
29466
- exports["ɵa"] = CustomReuseStrategy;
29467
- exports["ɵb"] = MatNumpadDomService;
29468
- exports["ɵc"] = SharedMatBadgeIconModule;
29469
- exports["ɵd"] = MatBadgeIconDirective;
29470
- exports["ɵe"] = isFocusableElement;
29471
- exports["ɵf"] = MatBadgeIconTestPage;
29472
- exports["ɵg"] = RegisterForm;
29473
- exports["ɵh"] = AccountValidatorService;
29474
- exports["ɵi"] = RegisterModal;
29475
- exports["ɵj"] = UserSettingsValidatorService;
29476
- exports["ɵk"] = LocalSettingsValidatorService;
29477
- exports["ɵl"] = AppIconComponent;
29454
+ exports.ɵa = CustomReuseStrategy;
29455
+ exports.ɵb = MatNumpadDomService;
29456
+ exports.ɵc = SharedMatBadgeIconModule;
29457
+ exports.ɵd = MatBadgeIconDirective;
29458
+ exports.ɵe = isFocusableElement;
29459
+ exports.ɵf = MatBadgeIconTestPage;
29460
+ exports.ɵg = RegisterForm;
29461
+ exports.ɵh = AccountValidatorService;
29462
+ exports.ɵi = RegisterModal;
29463
+ exports.ɵj = UserSettingsValidatorService;
29464
+ exports.ɵk = LocalSettingsValidatorService;
29465
+ exports.ɵl = AppIconComponent;
29478
29466
 
29479
29467
  Object.defineProperty(exports, '__esModule', { value: true });
29480
29468
 
29481
- }));
29469
+ })));
29482
29470
  //# sourceMappingURL=sumaris-net.ngx-components.umd.js.map