@sumaris-net/ngx-components 0.23.2-beta → 0.24.2

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
- 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/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
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/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/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']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].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$6, i2$4, ngx$7, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, i14, i15, i17, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
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
+ 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.ngx$6, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global.i18, 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
 
@@ -26,11 +26,36 @@
26
26
  return Object.freeze(n);
27
27
  }
28
28
 
29
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
30
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
31
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
32
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
33
+ var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
34
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
35
+ var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
29
36
  var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
37
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
38
+ var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
39
+ var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
40
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
41
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
42
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
43
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
44
  var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
45
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
46
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
47
+ var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
48
+ var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
49
+ var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
50
+ var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
31
51
  var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
32
52
  var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
33
53
  var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
54
+ var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
55
+ var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
56
+ var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
57
+ var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
58
+ var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
34
59
 
35
60
  var ENVIRONMENT = new i0.InjectionToken('ENV');
36
61
  var Environment = /** @class */ (function () {
@@ -513,10 +538,6 @@
513
538
  }
514
539
  // Sort
515
540
  items = items.sort(propertiesPathComparator(keys));
516
- // const sortAttribute = keys && keys[0]
517
- // if (sortAttribute) {
518
- // items = sort(items, sortAttribute);
519
- // }
520
541
  // Truncate if need
521
542
  var total = (items === null || items === void 0 ? void 0 : items.length) || 0;
522
543
  if (opts) {
@@ -586,16 +607,15 @@
586
607
  // Stop if not equals, otherwise continue with the next key
587
608
  .find(function (res) { return res !== 0; }) || 0; };
588
609
  }
589
- function sort(array, attribute) {
610
+ function sort(array, attribute, opts) {
590
611
  if (isEmptyArray(array))
591
612
  return array;
613
+ var compareFn = opts
614
+ ? new Intl.Collator(undefined, opts).compare
615
+ : function (v1, v2) { return v1 === v2 ? 0 : v1 > v2 ? 1 : -1; };
592
616
  return array
593
617
  .slice() // copy
594
- .sort(function (a, b) {
595
- var valueA = a[attribute];
596
- var valueB = b[attribute];
597
- return valueA === valueB ? 0 : (valueA > valueB ? 1 : -1);
598
- });
618
+ .sort(function (a, b) { return compareFn(a[attribute], b[attribute]); });
599
619
  }
600
620
  var INTEGER_REGEXP = /^[-]?\d+$/;
601
621
  function isInt(value) {
@@ -1139,19 +1159,19 @@
1139
1159
  };
1140
1160
  return MatAutocompleteConfigHolder;
1141
1161
  }());
1142
- var DEFAULT_VALUE_ACCESSOR = {
1162
+ var DEFAULT_VALUE_ACCESSOR$6 = {
1143
1163
  provide: i1.NG_VALUE_ACCESSOR,
1144
1164
  useExisting: i0.forwardRef(function () { return MatAutocompleteField; }),
1145
1165
  multi: true
1146
1166
  };
1147
- var noop = function () { };
1148
- var ɵ0 = noop;
1167
+ var noop$7 = function () { };
1168
+ var ɵ0$a = noop$7;
1149
1169
  var MatAutocompleteField = /** @class */ (function () {
1150
1170
  function MatAutocompleteField(cd, formGroupDir) {
1151
1171
  this.cd = cd;
1152
1172
  this.formGroupDir = formGroupDir;
1153
- this._onChangeCallback = noop;
1154
- this._onTouchedCallback = noop;
1173
+ this._onChangeCallback = noop$7;
1174
+ this._onTouchedCallback = noop$7;
1155
1175
  this._subscription = new rxjs.Subscription();
1156
1176
  this._filter$ = new rxjs.BehaviorSubject(undefined);
1157
1177
  this._reload$ = new rxjs.Subject();
@@ -1808,7 +1828,7 @@
1808
1828
  // eslint-disable-next-line @angular-eslint/component-selector
1809
1829
  selector: 'mat-autocomplete-field',
1810
1830
  template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"_readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <ng-template #writable>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n </ng-template>\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\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 </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
1811
- providers: [DEFAULT_VALUE_ACCESSOR],
1831
+ providers: [DEFAULT_VALUE_ACCESSOR$6],
1812
1832
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1813
1833
  styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
1814
1834
  },] }
@@ -1886,7 +1906,7 @@
1886
1906
  };
1887
1907
  return DateFormatPipe;
1888
1908
  }());
1889
- 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" });
1909
+ 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" });
1890
1910
  DateFormatPipe.decorators = [
1891
1911
  { type: i0.Pipe, args: [{
1892
1912
  name: 'dateFormat'
@@ -1898,7 +1918,7 @@
1898
1918
  { type: i1$2.TranslateService }
1899
1919
  ]; };
1900
1920
 
1901
- var moment = momentImported__namespace;
1921
+ var moment$6 = momentImported__namespace;
1902
1922
  var DateDiffDurationPipe = /** @class */ (function () {
1903
1923
  function DateDiffDurationPipe(dateAdapter, translate) {
1904
1924
  var _this = this;
@@ -1915,10 +1935,10 @@
1915
1935
  return this.format(startDate, endDate);
1916
1936
  };
1917
1937
  DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
1918
- var duration = moment.duration(endDate.diff(startDate));
1938
+ var duration = moment$6.duration(endDate.diff(startDate));
1919
1939
  if (duration.asMinutes() < 0)
1920
1940
  return '';
1921
- var timeDuration = moment(0)
1941
+ var timeDuration = moment$6(0)
1922
1942
  .hour(duration.hours())
1923
1943
  .minute(duration.minutes());
1924
1944
  var days = Math.floor(duration.asDays());
@@ -1926,7 +1946,7 @@
1926
1946
  };
1927
1947
  return DateDiffDurationPipe;
1928
1948
  }());
1929
- 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" });
1949
+ 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" });
1930
1950
  DateDiffDurationPipe.decorators = [
1931
1951
  { type: i0.Pipe, args: [{
1932
1952
  name: 'dateDiffDuration'
@@ -1948,7 +1968,7 @@
1948
1968
  };
1949
1969
  return DateFromNowPipe;
1950
1970
  }());
1951
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1971
+ DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1952
1972
  DateFromNowPipe.decorators = [
1953
1973
  { type: i0.Pipe, args: [{
1954
1974
  name: 'dateFromNow'
@@ -2017,7 +2037,7 @@
2017
2037
  value *= -1;
2018
2038
  }
2019
2039
  }
2020
- var degrees = roundFloat(value, opts.maxDecimals).toString();
2040
+ var degrees = roundFloat$1(value, opts.maxDecimals).toString();
2021
2041
  // Add sign
2022
2042
  var sign = negative ? '-' : '+';
2023
2043
  if (opts.placeholderChar) {
@@ -2068,7 +2088,7 @@
2068
2088
  }
2069
2089
  var degrees = Math.trunc(value);
2070
2090
  var minutes = Math.trunc((value - degrees) * 60);
2071
- var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2091
+ var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2072
2092
  while (seconds >= 60) {
2073
2093
  seconds -= 60;
2074
2094
  minutes += 1;
@@ -2136,7 +2156,7 @@
2136
2156
  }
2137
2157
  }
2138
2158
  var degrees = Math.trunc(value);
2139
- var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
2159
+ var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
2140
2160
  while (minutes >= 60) {
2141
2161
  minutes -= 60;
2142
2162
  degrees += 1;
@@ -2187,15 +2207,15 @@
2187
2207
  return NaN;
2188
2208
  }
2189
2209
  if (pattern === 'DD')
2190
- return roundFloat(degrees, maxDecimals);
2210
+ return roundFloat$1(degrees, maxDecimals);
2191
2211
  var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2192
2212
  var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2193
2213
  var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2194
2214
  var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2195
2215
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2196
- return roundFloat(degrees, maxDecimals);
2216
+ return roundFloat$1(degrees, maxDecimals);
2197
2217
  }
2198
- function roundFloat(input, maxDecimals) {
2218
+ function roundFloat$1(input, maxDecimals) {
2199
2219
  if (maxDecimals > 0) {
2200
2220
  var powDecimal = Math.pow(10, maxDecimals);
2201
2221
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2218,7 +2238,7 @@
2218
2238
  };
2219
2239
  return LatLongFormatPipe;
2220
2240
  }());
2221
- LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2241
+ LatLongFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2222
2242
  LatLongFormatPipe.decorators = [
2223
2243
  { type: i0.Pipe, args: [{
2224
2244
  name: 'latLongFormat'
@@ -2231,7 +2251,7 @@
2231
2251
  }
2232
2252
  return LatitudeFormatPipe;
2233
2253
  }());
2234
- LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2254
+ LatitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2235
2255
  LatitudeFormatPipe.decorators = [
2236
2256
  { type: i0.Pipe, args: [{
2237
2257
  name: 'latitudeFormat'
@@ -2244,7 +2264,7 @@
2244
2264
  }
2245
2265
  return LongitudeFormatPipe;
2246
2266
  }());
2247
- LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2267
+ LongitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2248
2268
  LongitudeFormatPipe.decorators = [
2249
2269
  { type: i0.Pipe, args: [{
2250
2270
  name: 'longitudeFormat'
@@ -2267,7 +2287,7 @@
2267
2287
  };
2268
2288
  return NumberFormatPipe;
2269
2289
  }());
2270
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2290
+ NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2271
2291
  NumberFormatPipe.decorators = [
2272
2292
  { type: i0.Pipe, args: [{
2273
2293
  name: 'numberFormat'
@@ -2310,7 +2330,7 @@
2310
2330
  };
2311
2331
  return HighlightPipe;
2312
2332
  }());
2313
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2333
+ HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2314
2334
  HighlightPipe.decorators = [
2315
2335
  { type: i0.Pipe, args: [{
2316
2336
  name: 'highlight'
@@ -2378,7 +2398,7 @@
2378
2398
  { type: i0.Pipe, args: [{ name: 'fileSize' },] }
2379
2399
  ];
2380
2400
 
2381
- var moment$1 = momentImported__namespace;
2401
+ var moment$5 = momentImported__namespace;
2382
2402
  var DATE_UNIX_TIMESTAMP = 'X';
2383
2403
  var DATE_UNIX_MS_TIMESTAMP = 'x';
2384
2404
  var DateUtils = /** @class */ (function () {
@@ -2413,32 +2433,32 @@
2413
2433
  if (!value || momentImported.isMoment(value))
2414
2434
  return value;
2415
2435
  // Parse the input value, as a ISO date time
2416
- var date = moment$1(value, DATE_ISO_PATTERN);
2436
+ var date = moment$5(value, DATE_ISO_PATTERN);
2417
2437
  if (date.isValid())
2418
2438
  return date;
2419
2439
  // Not valid: trying to convert from unix timestamp
2420
2440
  if (typeof value === 'string') {
2421
2441
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2422
2442
  if (value.length === 10) {
2423
- return moment$1(value, DATE_UNIX_TIMESTAMP);
2443
+ return moment$5(value, DATE_UNIX_TIMESTAMP);
2424
2444
  }
2425
2445
  else if (value.length === 13) {
2426
- return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2446
+ return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2427
2447
  }
2428
2448
  }
2429
2449
  console.warn('Unable to parse date: ' + value);
2430
2450
  return undefined;
2431
2451
  }
2432
2452
  function fromUnixTimestamp(timeInSec) {
2433
- return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2453
+ return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2434
2454
  }
2435
2455
  function fromUnixMsTimestamp(timeInMs) {
2436
- return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2456
+ return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2437
2457
  }
2438
2458
  function toDuration(value, unit) {
2439
2459
  if (!value)
2440
2460
  return undefined;
2441
- var duration = moment$1.duration(value, unit);
2461
+ var duration = moment$5.duration(value, unit);
2442
2462
  // fix 990+ ms
2443
2463
  if (duration.milliseconds() >= 990) {
2444
2464
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2468,7 +2488,7 @@
2468
2488
  };
2469
2489
  return DurationPipe;
2470
2490
  }());
2471
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2491
+ DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2472
2492
  DurationPipe.decorators = [
2473
2493
  { type: i0.Pipe, args: [{
2474
2494
  name: 'duration'
@@ -2492,7 +2512,7 @@
2492
2512
  };
2493
2513
  return MathAbsPipe;
2494
2514
  }());
2495
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2515
+ MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2496
2516
  MathAbsPipe.decorators = [
2497
2517
  { type: i0.Pipe, args: [{
2498
2518
  name: 'mathAbs'
@@ -2507,7 +2527,7 @@
2507
2527
  };
2508
2528
  return EvenPipe;
2509
2529
  }());
2510
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2530
+ EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2511
2531
  EvenPipe.decorators = [
2512
2532
  { type: i0.Pipe, args: [{
2513
2533
  name: 'even'
@@ -2522,7 +2542,7 @@
2522
2542
  };
2523
2543
  return OddPipe;
2524
2544
  }());
2525
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2545
+ OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2526
2546
  OddPipe.decorators = [
2527
2547
  { type: i0.Pipe, args: [{
2528
2548
  name: 'odd'
@@ -2654,7 +2674,7 @@
2654
2674
  };
2655
2675
  return MapGetPipe;
2656
2676
  }());
2657
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2677
+ MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2658
2678
  MapGetPipe.decorators = [
2659
2679
  { type: i0.Pipe, args: [{
2660
2680
  name: 'mapGet'
@@ -2671,7 +2691,7 @@
2671
2691
  };
2672
2692
  return MapKeysPipe;
2673
2693
  }());
2674
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2694
+ MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2675
2695
  MapKeysPipe.decorators = [
2676
2696
  { type: i0.Pipe, args: [{
2677
2697
  name: 'mapKeys'
@@ -2688,7 +2708,7 @@
2688
2708
  };
2689
2709
  return MapValuesPipe;
2690
2710
  }());
2691
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2711
+ MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2692
2712
  MapValuesPipe.decorators = [
2693
2713
  { type: i0.Pipe, args: [{
2694
2714
  name: 'mapValues'
@@ -2704,7 +2724,7 @@
2704
2724
  };
2705
2725
  return IsNotNilOrBlankPipe;
2706
2726
  }());
2707
- IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2727
+ IsNotNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2708
2728
  IsNotNilOrBlankPipe.decorators = [
2709
2729
  { type: i0.Pipe, args: [{
2710
2730
  name: 'isNotNilOrBlank'
@@ -2719,7 +2739,7 @@
2719
2739
  };
2720
2740
  return IsNilOrBlankPipe;
2721
2741
  }());
2722
- IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2742
+ IsNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2723
2743
  IsNilOrBlankPipe.decorators = [
2724
2744
  { type: i0.Pipe, args: [{
2725
2745
  name: 'isNilOrBlank'
@@ -2734,7 +2754,7 @@
2734
2754
  };
2735
2755
  return ToStringPipe;
2736
2756
  }());
2737
- ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2757
+ ToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2738
2758
  ToStringPipe.decorators = [
2739
2759
  { type: i0.Pipe, args: [{
2740
2760
  name: 'toString'
@@ -2749,7 +2769,7 @@
2749
2769
  };
2750
2770
  return StrLengthPipe;
2751
2771
  }());
2752
- StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2772
+ StrLengthPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2753
2773
  StrLengthPipe.decorators = [
2754
2774
  { type: i0.Pipe, args: [{
2755
2775
  name: 'strLength'
@@ -2802,7 +2822,7 @@
2802
2822
  };
2803
2823
  return TranslateContextService;
2804
2824
  }());
2805
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2825
+ TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2806
2826
  TranslateContextService.decorators = [
2807
2827
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
2808
2828
  ];
@@ -2819,7 +2839,7 @@
2819
2839
  };
2820
2840
  return TranslateContextPipe;
2821
2841
  }());
2822
- TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2842
+ TranslateContextPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0__namespace.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2823
2843
  TranslateContextPipe.decorators = [
2824
2844
  { type: i0.Pipe, args: [{
2825
2845
  name: 'translateContext'
@@ -2839,7 +2859,7 @@
2839
2859
  };
2840
2860
  return TranslatablePipe;
2841
2861
  }());
2842
- TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2862
+ TranslatablePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2843
2863
  TranslatablePipe.decorators = [
2844
2864
  { type: i0.Pipe, args: [{
2845
2865
  name: 'translatable'
@@ -2859,7 +2879,7 @@
2859
2879
  };
2860
2880
  return PropertyGetPipe;
2861
2881
  }());
2862
- PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2882
+ PropertyGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2863
2883
  PropertyGetPipe.decorators = [
2864
2884
  { type: i0.Pipe, args: [{
2865
2885
  name: 'propertyGet'
@@ -3116,14 +3136,14 @@
3116
3136
  },] }
3117
3137
  ];
3118
3138
 
3119
- var moment$2 = momentImported__namespace;
3139
+ var moment$4 = momentImported__namespace;
3120
3140
  // @dynamic
3121
3141
  var SharedValidators = /** @class */ (function () {
3122
3142
  function SharedValidators() {
3123
3143
  }
3124
3144
  SharedValidators.validDate = function (control) {
3125
3145
  var value = control.value;
3126
- var date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
3146
+ var date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
3127
3147
  if (date && (!date.isValid() || date.year() < 1970)) {
3128
3148
  return { validDate: true };
3129
3149
  }
@@ -3594,9 +3614,9 @@
3594
3614
  var hour = parseInt(durationParts[0] || '0');
3595
3615
  var minute = parseInt(durationParts[1] || '0');
3596
3616
  var value = hour + (minute + 0.5) / 60;
3597
- return roundFloat$1(value, maxDecimals);
3617
+ return roundFloat(value, maxDecimals);
3598
3618
  }
3599
- function roundFloat$1(input, maxDecimals) {
3619
+ function roundFloat(input, maxDecimals) {
3600
3620
  if (maxDecimals > 0) {
3601
3621
  var powDecimal = Math.pow(10, maxDecimals);
3602
3622
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -3620,9 +3640,9 @@
3620
3640
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
3621
3641
  }
3622
3642
  };
3623
- var noop$1 = function () {
3643
+ var noop$6 = function () {
3624
3644
  };
3625
- var ɵ0$1 = noop$1;
3645
+ var ɵ0$9 = noop$6;
3626
3646
  var MatLatLongField = /** @class */ (function () {
3627
3647
  function MatLatLongField(platform, translate, formBuilder, cd, formGroupDir) {
3628
3648
  this.platform = platform;
@@ -3630,8 +3650,8 @@
3630
3650
  this.formBuilder = formBuilder;
3631
3651
  this.cd = cd;
3632
3652
  this.formGroupDir = formGroupDir;
3633
- this._onChangeCallback = noop$1;
3634
- this._onTouchedCallback = noop$1;
3653
+ this._onChangeCallback = noop$6;
3654
+ this._onTouchedCallback = noop$6;
3635
3655
  this._subscription = new rxjs.Subscription();
3636
3656
  this.disabling = false;
3637
3657
  this.writing = false;
@@ -3984,14 +4004,14 @@
3984
4004
  },] }
3985
4005
  ];
3986
4006
 
3987
- var DEFAULT_VALUE_ACCESSOR$1 = {
4007
+ var DEFAULT_VALUE_ACCESSOR$5 = {
3988
4008
  provide: i1.NG_VALUE_ACCESSOR,
3989
4009
  useExisting: i0.forwardRef(function () { return MatDate; }),
3990
4010
  multi: true
3991
4011
  };
3992
- var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
3993
- var noop$2 = function () { };
3994
- var ɵ0$2 = noop$2;
4012
+ var DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4013
+ var noop$5 = function () { };
4014
+ var ɵ0$8 = noop$5;
3995
4015
  var MatDate = /** @class */ (function () {
3996
4016
  function MatDate(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
3997
4017
  this.dateAdapter = dateAdapter;
@@ -4000,12 +4020,12 @@
4000
4020
  this.cd = cd;
4001
4021
  this.keyboard = keyboard;
4002
4022
  this.formGroupDir = formGroupDir;
4003
- this._onChangeCallback = noop$2;
4004
- this._onTouchedCallback = noop$2;
4023
+ this._onChangeCallback = noop$5;
4024
+ this._onTouchedCallback = noop$5;
4005
4025
  this._subscription = new rxjs.Subscription();
4006
4026
  this.writing = true;
4007
4027
  this.disabling = false;
4008
- this.dayMask = DAY_MASK;
4028
+ this.dayMask = DAY_MASK$2;
4009
4029
  this.disabled = false;
4010
4030
  this.floatLabel = 'auto';
4011
4031
  this.readonly = false;
@@ -4274,7 +4294,7 @@
4274
4294
  selector: 'mat-date-field',
4275
4295
  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",
4276
4296
  providers: [
4277
- DEFAULT_VALUE_ACCESSOR$1,
4297
+ DEFAULT_VALUE_ACCESSOR$5,
4278
4298
  ],
4279
4299
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
4280
4300
  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%}"]
@@ -4307,17 +4327,17 @@
4307
4327
  matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
4308
4328
  };
4309
4329
 
4310
- var DEFAULT_VALUE_ACCESSOR$2 = {
4330
+ var DEFAULT_VALUE_ACCESSOR$4 = {
4311
4331
  provide: i1.NG_VALUE_ACCESSOR,
4312
4332
  useExisting: i0.forwardRef(function () { return MatDateTime; }),
4313
4333
  multi: true
4314
4334
  };
4315
4335
  var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4316
4336
  var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4317
- var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4318
- var noop$3 = function () {
4337
+ var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4338
+ var noop$4 = function () {
4319
4339
  };
4320
- var ɵ0$3 = noop$3;
4340
+ var ɵ0$7 = noop$4;
4321
4341
  var MatDateTime = /** @class */ (function () {
4322
4342
  function MatDateTime(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
4323
4343
  this.platform = platform;
@@ -4327,14 +4347,14 @@
4327
4347
  this.keyboard = keyboard;
4328
4348
  this.cd = cd;
4329
4349
  this.formGroupDir = formGroupDir;
4330
- this._onChangeCallback = noop$3;
4331
- this._onTouchedCallback = noop$3;
4350
+ this._onChangeCallback = noop$4;
4351
+ this._onTouchedCallback = noop$4;
4332
4352
  this._subscription = new rxjs.Subscription();
4333
4353
  this.writing = true;
4334
4354
  this.disabling = false;
4335
4355
  this._onDestroy = new i0.EventEmitter();
4336
4356
  this.dayMask = DAY_MASK$1;
4337
- this.hourMask = HOUR_MASK;
4357
+ this.hourMask = HOUR_MASK$1;
4338
4358
  this.floatLabel = 'auto';
4339
4359
  this.readonly = false;
4340
4360
  this.compact = false;
@@ -4681,7 +4701,7 @@
4681
4701
  selector: 'mat-date-time-field',
4682
4702
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\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><ng-content select=\"[matPrefix]\"></ng-content></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",
4683
4703
  providers: [
4684
- DEFAULT_VALUE_ACCESSOR$2,
4704
+ DEFAULT_VALUE_ACCESSOR$4,
4685
4705
  ],
4686
4706
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
4687
4707
  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%}"]
@@ -4720,10 +4740,10 @@
4720
4740
  useExisting: i0.forwardRef(function () { return MatDateShort; }),
4721
4741
  multi: true
4722
4742
  };
4723
- var DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
4724
- var noop$4 = function () {
4743
+ var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
4744
+ var noop$3 = function () {
4725
4745
  };
4726
- var ɵ0$4 = noop$4;
4746
+ var ɵ0$6 = noop$3;
4727
4747
  var MatDateShort = /** @class */ (function () {
4728
4748
  function MatDateShort(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4729
4749
  this.dateAdapter = dateAdapter;
@@ -4732,11 +4752,11 @@
4732
4752
  this.cd = cd;
4733
4753
  this.keyboard = keyboard;
4734
4754
  this.formGroupDir = formGroupDir;
4735
- this._onChangeCallback = noop$4;
4736
- this._onTouchedCallback = noop$4;
4755
+ this._onChangeCallback = noop$3;
4756
+ this._onTouchedCallback = noop$3;
4737
4757
  this.writing = true;
4738
4758
  this.disabling = false;
4739
- this.dayMask = DAY_MASK$2;
4759
+ this.dayMask = DAY_MASK;
4740
4760
  this.disabled = false;
4741
4761
  this.floatLabel = 'auto';
4742
4762
  this.readonly = false;
@@ -5084,16 +5104,16 @@
5084
5104
  },] }
5085
5105
  ];
5086
5106
 
5087
- var DEFAULT_VALUE_ACCESSOR$4 = {
5107
+ var DEFAULT_VALUE_ACCESSOR$2 = {
5088
5108
  provide: i1.NG_VALUE_ACCESSOR,
5089
5109
  useExisting: i0.forwardRef(function () { return MatDuration; }),
5090
5110
  multi: true
5091
5111
  };
5092
5112
  var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5093
- var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5094
- var noop$5 = function () {
5113
+ var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5114
+ var noop$2 = function () {
5095
5115
  };
5096
- var ɵ0$5 = noop$5;
5116
+ var ɵ0$5 = noop$2;
5097
5117
  var MatDuration = /** @class */ (function () {
5098
5118
  function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5099
5119
  this.dateAdapter = dateAdapter;
@@ -5102,11 +5122,11 @@
5102
5122
  this.cd = cd;
5103
5123
  this.formGroupDir = formGroupDir;
5104
5124
  this._subscription = new rxjs.Subscription();
5105
- this._onChangeCallback = noop$5;
5106
- this._onTouchedCallback = noop$5;
5125
+ this._onChangeCallback = noop$2;
5126
+ this._onTouchedCallback = noop$2;
5107
5127
  this.writing = true;
5108
5128
  this.disabling = false;
5109
- this.hourMask = HOUR_MASK$1;
5129
+ this.hourMask = HOUR_MASK;
5110
5130
  this.disabled = false;
5111
5131
  this.floatLabel = 'auto';
5112
5132
  this.readonly = false;
@@ -5299,7 +5319,7 @@
5299
5319
  selector: 'mat-duration-field',
5300
5320
  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",
5301
5321
  providers: [
5302
- DEFAULT_VALUE_ACCESSOR$4,
5322
+ DEFAULT_VALUE_ACCESSOR$2,
5303
5323
  ],
5304
5324
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
5305
5325
  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%}"]
@@ -5359,22 +5379,22 @@
5359
5379
  },] }
5360
5380
  ];
5361
5381
 
5362
- var DEFAULT_VALUE_ACCESSOR$5 = {
5382
+ var DEFAULT_VALUE_ACCESSOR$1 = {
5363
5383
  provide: i1.NG_VALUE_ACCESSOR,
5364
5384
  useExisting: i0.forwardRef(function () { return MatBooleanField; }),
5365
5385
  multi: true
5366
5386
  };
5367
- var noop$6 = function () {
5387
+ var noop$1 = function () {
5368
5388
  };
5369
- var ɵ0$6 = noop$6;
5389
+ var ɵ0$4 = noop$1;
5370
5390
  var MatBooleanField = /** @class */ (function () {
5371
5391
  function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
5372
5392
  this.translate = translate;
5373
5393
  this.formBuilder = formBuilder;
5374
5394
  this.cd = cd;
5375
5395
  this.formGroupDir = formGroupDir;
5376
- this._onChangeCallback = noop$6;
5377
- this._onTouchedCallback = noop$6;
5396
+ this._onChangeCallback = noop$1;
5397
+ this._onTouchedCallback = noop$1;
5378
5398
  this._writing = false;
5379
5399
  this.showRadio = false;
5380
5400
  this.disabled = false;
@@ -5560,10 +5580,10 @@
5560
5580
  selector: 'mat-boolean-field',
5561
5581
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&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 <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
5562
5582
  providers: [
5563
- DEFAULT_VALUE_ACCESSOR$5
5583
+ DEFAULT_VALUE_ACCESSOR$1
5564
5584
  ],
5565
5585
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
5566
- 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}"]
5586
+ 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:calc(min(var(--flex-basis), 150px));white-space:normal;padding:0 2px;height:40px}"]
5567
5587
  },] }
5568
5588
  ];
5569
5589
  MatBooleanField.ctorParameters = function () { return [
@@ -5649,6 +5669,7 @@
5649
5669
  return MatNumpadEvent;
5650
5670
  }(KeyboardEvent));
5651
5671
 
5672
+ exports.AnimationState = void 0;
5652
5673
  (function (AnimationState) {
5653
5674
  AnimationState["ENTER"] = "enter";
5654
5675
  AnimationState["ENTER_INPUT"] = "enter-input";
@@ -5816,7 +5837,7 @@
5816
5837
  };
5817
5838
  return MatNumpadDomService;
5818
5839
  }());
5819
- 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" });
5840
+ 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" });
5820
5841
  MatNumpadDomService.decorators = [
5821
5842
  { type: i0.Injectable, args: [{
5822
5843
  providedIn: 'root'
@@ -6222,7 +6243,7 @@
6222
6243
  },] }
6223
6244
  ];
6224
6245
 
6225
- var DEFAULT_VALUE_ACCESSOR$6 = {
6246
+ var DEFAULT_VALUE_ACCESSOR = {
6226
6247
  provide: i1.NG_VALUE_ACCESSOR,
6227
6248
  useExisting: i0.forwardRef(function () { return MatSwipeField; }),
6228
6249
  multi: true
@@ -6542,7 +6563,7 @@
6542
6563
  { type: i0.Component, args: [{
6543
6564
  selector: 'mat-swipe-field',
6544
6565
  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",
6545
- providers: [DEFAULT_VALUE_ACCESSOR$6],
6566
+ providers: [DEFAULT_VALUE_ACCESSOR],
6546
6567
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6547
6568
  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}"]
6548
6569
  },] }
@@ -7100,7 +7121,7 @@
7100
7121
  };
7101
7122
  return ProgressBarService;
7102
7123
  }());
7103
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7124
+ ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7104
7125
  ProgressBarService.decorators = [
7105
7126
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
7106
7127
  ];
@@ -7147,7 +7168,7 @@
7147
7168
  };
7148
7169
  return AppGestureConfig;
7149
7170
  }(i1$6.HammerGestureConfig));
7150
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7171
+ AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7151
7172
  AppGestureConfig.decorators = [
7152
7173
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
7153
7174
  ];
@@ -7412,7 +7433,7 @@
7412
7433
  };
7413
7434
  return MatPaginatorI18n;
7414
7435
  }(paginator.MatPaginatorIntl));
7415
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7436
+ MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7416
7437
  MatPaginatorI18n.decorators = [
7417
7438
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
7418
7439
  ];
@@ -7504,17 +7525,17 @@
7504
7525
  return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
7505
7526
  }
7506
7527
 
7507
- var noop$7 = function () {
7528
+ var noop = function () {
7508
7529
  };
7509
- var ɵ0$7 = noop$7;
7530
+ var ɵ0$3 = noop;
7510
7531
  var AppFormField = /** @class */ (function () {
7511
7532
  function AppFormField(translate, cd, injector, formGroupDir) {
7512
7533
  this.translate = translate;
7513
7534
  this.cd = cd;
7514
7535
  this.injector = injector;
7515
7536
  this.formGroupDir = formGroupDir;
7516
- this._onChangeCallback = noop$7;
7517
- this._onTouchedCallback = noop$7;
7537
+ this._onChangeCallback = noop;
7538
+ this._onTouchedCallback = noop;
7518
7539
  this.readonly = false;
7519
7540
  this.compact = false;
7520
7541
  this.floatLabel = 'auto';
@@ -7973,7 +7994,7 @@
7973
7994
  };
7974
7995
  return AudioProvider;
7975
7996
  }());
7976
- 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" });
7997
+ 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" });
7977
7998
  AudioProvider.decorators = [
7978
7999
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
7979
8000
  ];
@@ -8073,7 +8094,7 @@
8073
8094
  };
8074
8095
  return Hotkeys;
8075
8096
  }());
8076
- 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" });
8097
+ 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" });
8077
8098
  Hotkeys.decorators = [
8078
8099
  { type: i0.Injectable, args: [{
8079
8100
  providedIn: 'root'
@@ -8277,7 +8298,7 @@
8277
8298
  return Base64ImageReader;
8278
8299
  }());
8279
8300
 
8280
- var uuidv4 = uuidv4Imported__namespace;
8301
+ var uuidv4$1 = uuidv4Imported__namespace;
8281
8302
  var FileService = /** @class */ (function () {
8282
8303
  function FileService(platform,
8283
8304
  //private transfer: FileTransfer,
@@ -8323,7 +8344,7 @@
8323
8344
  lastSlashIndex = source.lastIndexOf('/');
8324
8345
  if (lastSlashIndex === -1)
8325
8346
  throw new Error('Invalid URL: ' + source);
8326
- fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8347
+ fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8327
8348
  if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
8328
8349
  console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
8329
8350
  targetFilePath = this._imageDirectory + fileName;
@@ -8386,7 +8407,7 @@
8386
8407
  };
8387
8408
  return FileService;
8388
8409
  }());
8389
- 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" });
8410
+ 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" });
8390
8411
  FileService.decorators = [
8391
8412
  { type: i0.Injectable, args: [{
8392
8413
  providedIn: 'root',
@@ -8549,7 +8570,7 @@
8549
8570
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
8550
8571
 
8551
8572
  var scrypt = require('scrypt-async');
8552
- var sha256 = require('hash.js/lib/hash/sha/256');
8573
+ var sha256$1 = require('hash.js/lib/hash/sha/256');
8553
8574
  var sha512 = require('hash.js/lib/hash/sha/512');
8554
8575
  var nacl = {
8555
8576
  sign: tweetnacl.sign,
@@ -8655,7 +8676,7 @@
8655
8676
  * Hash (using SHA256) a message
8656
8677
  */
8657
8678
  CryptoService.prototype.sha256 = function (message) {
8658
- return sha256().update(message).digest('hex');
8679
+ return sha256$1().update(message).digest('hex');
8659
8680
  };
8660
8681
  /**
8661
8682
  * Hash (using SHA512) a message
@@ -8669,7 +8690,7 @@
8669
8690
  };
8670
8691
  return CryptoService;
8671
8692
  }());
8672
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8693
+ CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8673
8694
  CryptoService.decorators = [
8674
8695
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
8675
8696
  ];
@@ -10082,7 +10103,7 @@
10082
10103
  };
10083
10104
  return LocalSettingsService;
10084
10105
  }());
10085
- 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" });
10106
+ 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" });
10086
10107
  LocalSettingsService.decorators = [
10087
10108
  { type: i0.Injectable, args: [{
10088
10109
  providedIn: 'root',
@@ -10927,7 +10948,7 @@
10927
10948
  };
10928
10949
  return NetworkService;
10929
10950
  }());
10930
- 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" });
10951
+ 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" });
10931
10952
  NetworkService.decorators = [
10932
10953
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
10933
10954
  ];
@@ -10947,7 +10968,7 @@
10947
10968
  { type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
10948
10969
  ]; };
10949
10970
 
10950
- var ErrorCodes = {
10971
+ var ErrorCodes$2 = {
10951
10972
  UNKNOWN_ERROR: 0,
10952
10973
  LOAD_ACCOUNT_ERROR: 1,
10953
10974
  BAD_PASSWORD: 2,
@@ -11355,7 +11376,7 @@
11355
11376
  case 13:
11356
11377
  err_1 = _a.sent();
11357
11378
  console.error(err_1);
11358
- throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
11379
+ throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
11359
11380
  case 14:
11360
11381
  // Emit update event
11361
11382
  if (!opts || opts.emitEvent !== false) {
@@ -12115,7 +12136,7 @@
12115
12136
  }());
12116
12137
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
12117
12138
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
12118
- 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" });
12139
+ 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" });
12119
12140
  EntitiesStorage.decorators = [
12120
12141
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
12121
12142
  ];
@@ -12232,10 +12253,10 @@
12232
12253
  function referentialsToString(values, properties, separator) {
12233
12254
  return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
12234
12255
  }
12235
- var ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12256
+ var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12236
12257
  var StatusList = Object.freeze([
12237
12258
  {
12238
- id: ɵ0$8,
12259
+ id: ɵ0$2,
12239
12260
  icon: 'checkmark',
12240
12261
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
12241
12262
  },
@@ -12538,7 +12559,7 @@
12538
12559
  (data.lastName || '')) || '';
12539
12560
  }
12540
12561
 
12541
- var uuidv4$1 = uuidv4Imported__namespace;
12562
+ var uuidv4 = uuidv4Imported__namespace;
12542
12563
  var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
12543
12564
  var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
12544
12565
  /**
@@ -12582,7 +12603,7 @@
12582
12603
  // Skip if not tracked
12583
12604
  if (!context || !context.tracked)
12584
12605
  return forward(operation);
12585
- var id = context.serializationKey || uuidv4$1();
12606
+ var id = context.serializationKey || uuidv4();
12586
12607
  console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
12587
12608
  // Clean context, before calling JSON.stringify (remove unused attributes)
12588
12609
  var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -13393,7 +13414,7 @@
13393
13414
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
13394
13415
  || this.toAppError(err.networkError)
13395
13416
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
13396
- || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
13417
+ || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
13397
13418
  // If graphQL: try to convert the first error found
13398
13419
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
13399
13420
  || this.toAppError(err)
@@ -13401,7 +13422,7 @@
13401
13422
  || (err.graphQLErrors && err.graphQLErrors[0])
13402
13423
  || err;
13403
13424
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
13404
- if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13425
+ if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13405
13426
  console.error('[graphql] original error: ' + err.networkError.message);
13406
13427
  this.onNetworkError.next(error);
13407
13428
  }
@@ -13437,7 +13458,7 @@
13437
13458
  return 'ERROR.UNAUTHORIZED';
13438
13459
  case ServerErrorCodes.FORBIDDEN:
13439
13460
  return 'ERROR.FORBIDDEN';
13440
- case ErrorCodes.UNKNOWN_NETWORK_ERROR:
13461
+ case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
13441
13462
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
13442
13463
  case ServerErrorCodes.BAD_UPDATE_DATE:
13443
13464
  return 'ERROR.BAD_UPDATE_DATE';
@@ -13482,7 +13503,7 @@
13482
13503
  };
13483
13504
  return GraphqlService;
13484
13505
  }());
13485
- 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" });
13506
+ 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" });
13486
13507
  GraphqlService.decorators = [
13487
13508
  { type: i0.Injectable, args: [{
13488
13509
  providedIn: 'root'
@@ -13499,7 +13520,7 @@
13499
13520
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
13500
13521
  ]; };
13501
13522
 
13502
- var sha256$1 = require('hash.js/lib/hash/sha/256');
13523
+ var sha256 = require('hash.js/lib/hash/sha/256');
13503
13524
  var BaseGraphqlServiceOptions = /** @class */ (function () {
13504
13525
  function BaseGraphqlServiceOptions() {
13505
13526
  }
@@ -13666,8 +13687,8 @@
13666
13687
  };
13667
13688
  /* -- protected methods -- */
13668
13689
  BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
13669
- var queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13670
- var variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13690
+ var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13691
+ var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13671
13692
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
13672
13693
  };
13673
13694
  BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
@@ -13733,17 +13754,17 @@
13733
13754
  /* ------------------------------------
13734
13755
  * GraphQL queries
13735
13756
  * ------------------------------------*/
13736
- var Fragments = {
13737
- 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 id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\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 id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "])))
13757
+ var Fragments$1 = {
13758
+ 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 id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\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 id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "])))
13738
13759
  };
13739
13760
  // Load account query
13740
- var LoadQuery = core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
13761
+ var LoadQuery$1 = core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
13741
13762
  // Check email query
13742
- var IsEmailExistsQuery = core.gql(templateObject_3 || (templateObject_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"])));
13763
+ var IsEmailExistsQuery = core.gql(templateObject_3$3 || (templateObject_3$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"])));
13743
13764
  // Save (create or update) account mutation
13744
- var SaveMutation = core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
13765
+ var SaveMutation$1 = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
13745
13766
  // Create account mutation
13746
- var CreateMutation = core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
13767
+ var CreateMutation = core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
13747
13768
  // Sent confirmation email
13748
13769
  var SendConfirmEmailMutation = core.gql(templateObject_6 || (templateObject_6 = __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"])));
13749
13770
  // Confirm account email
@@ -14142,7 +14163,7 @@
14142
14163
  error_3 = _b.sent();
14143
14164
  console.error(error_3);
14144
14165
  this.resetData();
14145
- throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14166
+ throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14146
14167
  case 4:
14147
14168
  // Store pubkey+keypair
14148
14169
  this.data.pubkey = Base58.encode(keypair.publicKey);
@@ -14178,7 +14199,7 @@
14178
14199
  return [3 /*break*/, 18];
14179
14200
  case 11:
14180
14201
  err_1 = _b.sent();
14181
- if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
14202
+ if (!(err_1 && +(err_1.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
14182
14203
  if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
14183
14204
  isEmailExists = void 0;
14184
14205
  _b.label = 12;
@@ -14194,12 +14215,12 @@
14194
14215
  case 15:
14195
14216
  // Email not exists (no account)
14196
14217
  if (!isEmailExists) {
14197
- throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14218
+ throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14198
14219
  }
14199
14220
  _b.label = 16;
14200
14221
  case 16:
14201
14222
  // Email exists, so error = 'bad password'
14202
- throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14223
+ throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14203
14224
  case 17: throw err_1; // resend the first error
14204
14225
  case 18:
14205
14226
  _b.trys.push([18, 20, , 21]);
@@ -14371,8 +14392,8 @@
14371
14392
  _b.label = 3;
14372
14393
  case 3: return [3 /*break*/, 6];
14373
14394
  case 4: return [4 /*yield*/, this.graphql.query({
14374
- query: LoadQuery,
14375
- error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14395
+ query: LoadQuery$1,
14396
+ error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14376
14397
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
14377
14398
  })];
14378
14399
  case 5:
@@ -14410,7 +14431,7 @@
14410
14431
  case 1:
14411
14432
  isEmailExists = _b.sent();
14412
14433
  if (isEmailExists) {
14413
- throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14434
+ throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14414
14435
  }
14415
14436
  return [2 /*return*/];
14416
14437
  }
@@ -14460,7 +14481,7 @@
14460
14481
  locale: locale
14461
14482
  },
14462
14483
  error: {
14463
- code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
14484
+ code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
14464
14485
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
14465
14486
  }
14466
14487
  })];
@@ -14483,7 +14504,7 @@
14483
14504
  code: code
14484
14505
  },
14485
14506
  error: {
14486
- code: ErrorCodes.CONFIRM_EMAIL_FAILED,
14507
+ code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
14487
14508
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
14488
14509
  }
14489
14510
  })];
@@ -14505,7 +14526,7 @@
14505
14526
  interval: 10
14506
14527
  },
14507
14528
  error: {
14508
- code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
14529
+ code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
14509
14530
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
14510
14531
  }
14511
14532
  }).subscribe({
@@ -14651,7 +14672,7 @@
14651
14672
  throw error_6;
14652
14673
  console.error(error_6);
14653
14674
  throw {
14654
- code: ErrorCodes.LOAD_ACCOUNT_ERROR,
14675
+ code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
14655
14676
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
14656
14677
  };
14657
14678
  case 4: return [2 /*return*/];
@@ -14825,7 +14846,7 @@
14825
14846
  case 1:
14826
14847
  existingAccount = _b.sent();
14827
14848
  if (!existingAccount || !existingAccount.updateDate) {
14828
- throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14849
+ throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14829
14850
  }
14830
14851
  this.copyIdAndUpdateDate(existingAccount, account);
14831
14852
  _b.label = 2;
@@ -14834,10 +14855,10 @@
14834
14855
  // User not allow to change his profiles
14835
14856
  delete json.profiles;
14836
14857
  return [4 /*yield*/, this.graphql.mutate({
14837
- mutation: isNew ? CreateMutation : SaveMutation,
14858
+ mutation: isNew ? CreateMutation : SaveMutation$1,
14838
14859
  variables: { data: json },
14839
14860
  error: {
14840
- code: ErrorCodes.SAVE_ACCOUNT_ERROR,
14861
+ code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
14841
14862
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
14842
14863
  }
14843
14864
  })];
@@ -14865,7 +14886,7 @@
14865
14886
  if (counter > 4) {
14866
14887
  if (this._debug)
14867
14888
  console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
14868
- throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14889
+ throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14869
14890
  }
14870
14891
  if (!token) return [3 /*break*/, 2];
14871
14892
  return [4 /*yield*/, this.graphql.query({
@@ -14874,7 +14895,7 @@
14874
14895
  token: token
14875
14896
  },
14876
14897
  error: {
14877
- code: ErrorCodes.UNAUTHORIZED,
14898
+ code: ErrorCodes$2.UNAUTHORIZED,
14878
14899
  message: 'ERROR.UNAUTHORIZED'
14879
14900
  },
14880
14901
  fetchPolicy: 'no-cache'
@@ -14891,7 +14912,7 @@
14891
14912
  _b.label = 2;
14892
14913
  case 2:
14893
14914
  challengeError = {
14894
- code: ErrorCodes.AUTH_CHALLENGE_ERROR,
14915
+ code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
14895
14916
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
14896
14917
  };
14897
14918
  return [4 /*yield*/, this.graphql.query({
@@ -14933,7 +14954,7 @@
14933
14954
  };
14934
14955
  return AccountService;
14935
14956
  }(BaseGraphqlService));
14936
- 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" });
14957
+ 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" });
14937
14958
  AccountService.decorators = [
14938
14959
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
14939
14960
  ];
@@ -14946,7 +14967,7 @@
14946
14967
  { type: FileService },
14947
14968
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
14948
14969
  ]; };
14949
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
14970
+ 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;
14950
14971
 
14951
14972
  var Software_1, Configuration_1;
14952
14973
  // @dynamic
@@ -15198,13 +15219,13 @@
15198
15219
  /* ------------------------------------
15199
15220
  * GraphQL queries
15200
15221
  * ------------------------------------*/
15201
- var Fragments$1 = {
15202
- 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 "])))
15222
+ var Fragments = {
15223
+ 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 "])))
15203
15224
  };
15204
- 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);
15225
+ 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);
15205
15226
  // Save (create or update) account mutation
15206
- var SaveMutation$1 = 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);
15207
- 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"])));
15227
+ 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);
15228
+ 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"])));
15208
15229
  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"])));
15209
15230
  var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
15210
15231
  var ConfigService = /** @class */ (function (_super) {
@@ -15297,12 +15318,12 @@
15297
15318
  case 0:
15298
15319
  now = Date.now();
15299
15320
  console.debug('[config] Loading Pod configuration...');
15300
- query = opts && opts.query || LoadQuery$1;
15321
+ query = opts && opts.query || LoadQuery;
15301
15322
  variables = opts && opts.variables || undefined;
15302
15323
  return [4 /*yield*/, this.graphql.query({
15303
15324
  query: query,
15304
15325
  variables: variables,
15305
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15326
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15306
15327
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
15307
15328
  })];
15308
15329
  case 1:
@@ -15336,12 +15357,12 @@
15336
15357
  console.debug('[config] Saving Pod configuration...', config);
15337
15358
  json = config.asObject();
15338
15359
  return [4 /*yield*/, this.graphql.mutate({
15339
- mutation: SaveMutation$1,
15360
+ mutation: SaveMutation,
15340
15361
  variables: {
15341
15362
  data: json
15342
15363
  },
15343
15364
  error: {
15344
- code: ErrorCodes.SAVE_CONFIG_ERROR,
15365
+ code: ErrorCodes$2.SAVE_CONFIG_ERROR,
15345
15366
  message: 'ERROR.SAVE_CONFIG_ERROR'
15346
15367
  }
15347
15368
  })];
@@ -15376,7 +15397,7 @@
15376
15397
  return [4 /*yield*/, this.graphql.query({
15377
15398
  query: CacheStatistics,
15378
15399
  variables: null,
15379
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15400
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15380
15401
  fetchPolicy: 'network-only'
15381
15402
  })];
15382
15403
  case 1:
@@ -15400,7 +15421,7 @@
15400
15421
  return [4 /*yield*/, this.graphql.query({
15401
15422
  query: ClearCache,
15402
15423
  variables: variables,
15403
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15424
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15404
15425
  fetchPolicy: 'network-only'
15405
15426
  })];
15406
15427
  case 1:
@@ -15601,7 +15622,7 @@
15601
15622
  };
15602
15623
  return ConfigService;
15603
15624
  }(BaseGraphqlService));
15604
- 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(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
15625
+ 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" });
15605
15626
  ConfigService.decorators = [
15606
15627
  { type: i0.Injectable, args: [{
15607
15628
  providedIn: 'root',
@@ -15619,11 +15640,11 @@
15619
15640
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
15620
15641
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
15621
15642
  ]; };
15622
- var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
15643
+ var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$1;
15623
15644
 
15624
- var moment$4 = momentImported__namespace;
15645
+ var moment$2 = momentImported__namespace;
15625
15646
  var PlatformService = /** @class */ (function () {
15626
- function PlatformService(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser) {
15647
+ function PlatformService(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
15627
15648
  this.platform = platform;
15628
15649
  this.cdkPlatform = cdkPlatform;
15629
15650
  this.toastController = toastController;
@@ -15642,6 +15663,7 @@
15642
15663
  this.keyboard = keyboard;
15643
15664
  this.splashScreen = splashScreen;
15644
15665
  this.browser = browser;
15666
+ this.downloader = downloader;
15645
15667
  this._started = false;
15646
15668
  this._debug = !environment.production;
15647
15669
  if (this._debug)
@@ -15672,6 +15694,9 @@
15672
15694
  PlatformService.prototype.isWebOrDesktop = function () {
15673
15695
  return !this.platform.is('mobile') || this.platform.is('mobileweb');
15674
15696
  };
15697
+ PlatformService.prototype.isAndroidCordova = function () {
15698
+ return this._android && this._cordova;
15699
+ };
15675
15700
  PlatformService.prototype.width = function () {
15676
15701
  return this.platform.width();
15677
15702
  };
@@ -15691,6 +15716,8 @@
15691
15716
  this._startPromise = this.platform.ready()
15692
15717
  .then(function () {
15693
15718
  _this._mobile = _this.platform.is('mobile');
15719
+ _this._cordova = _this.platform.is('cordova');
15720
+ _this._android = _this.platform.is('android');
15694
15721
  _this.configureCordovaPlugins(_this._mobile);
15695
15722
  _this.touchUi = _this._mobile || _this.platform.is('tablet') || _this.platform.is('phablet');
15696
15723
  // Force mobile in settings
@@ -15752,6 +15779,7 @@
15752
15779
  operators.filter(function () { return _this._started; }), operators.first()).toPromise();
15753
15780
  };
15754
15781
  PlatformService.prototype.open = function (url, target, features, replace) {
15782
+ console.info("[platform] Opening link: " + url);
15755
15783
  if (this.browser && this._mobile) {
15756
15784
  this.browser.create(url, target, features).show();
15757
15785
  }
@@ -15759,10 +15787,20 @@
15759
15787
  window.open(url, target, features, replace);
15760
15788
  }
15761
15789
  };
15762
- /*
15763
- chooseFile(): Promise<> {
15764
-
15765
- }*/
15790
+ PlatformService.prototype.download = function (request) {
15791
+ if (!request || !request.uri)
15792
+ throw new Error('Missing argument \'request\' or \'request.uri\'');
15793
+ if (this._android && this._cordova) {
15794
+ request = Object.assign(Object.assign({ visibleInDownloadsUi: true, notificationVisibility: ngx$6.NotificationVisibility.VisibleNotifyCompleted, title: request.filename || '' }, request), { destinationInExternalFilesDir: Object.assign({ dirType: 'Downloads', subPath: request.filename || request.title || '' }, request.destinationInExternalFilesDir) });
15795
+ this.downloader.download(request)
15796
+ .then(function (location) { return console.info('[platform] File successfully downloaded at:' + location); })
15797
+ .catch(function (error) { return console.error(error); });
15798
+ }
15799
+ // Web mode: open URI using the browser
15800
+ else {
15801
+ this.open(request.uri, '_system', 'location=yes');
15802
+ }
15803
+ };
15766
15804
  /* -- protected methods -- */
15767
15805
  PlatformService.prototype.configureCordovaPlugins = function (mobile) {
15768
15806
  console.info('[platform] Configuring Cordova plugins...');
@@ -15797,16 +15835,16 @@
15797
15835
  }
15798
15836
  // config moment lib
15799
15837
  try {
15800
- moment$4.locale(event.lang);
15838
+ moment$2.locale(event.lang);
15801
15839
  console.debug('[platform] Use locale {' + event.lang + '}');
15802
15840
  }
15803
15841
  // If error, fallback to en
15804
15842
  catch (err) {
15805
- moment$4.locale('en');
15843
+ moment$2.locale('en');
15806
15844
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
15807
15845
  }
15808
15846
  // Config date adapter
15809
- _this.dateAdapter.setLocale(moment$4.locale());
15847
+ _this.dateAdapter.setLocale(moment$2.locale());
15810
15848
  }
15811
15849
  });
15812
15850
  this.settings.onChange.subscribe(function (data) {
@@ -15991,7 +16029,7 @@
15991
16029
  };
15992
16030
  return PlatformService;
15993
16031
  }());
15994
- 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)); }, token: PlatformService, providedIn: "root" });
16032
+ 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" });
15995
16033
  PlatformService.decorators = [
15996
16034
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
15997
16035
  ];
@@ -16010,10 +16048,11 @@
16010
16048
  { type: i3$2.Storage },
16011
16049
  { type: AudioProvider },
16012
16050
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
16013
- { type: ngx$6.StatusBar, decorators: [{ type: i0.Optional }] },
16051
+ { type: ngx$7.StatusBar, decorators: [{ type: i0.Optional }] },
16014
16052
  { type: ngx.Keyboard, decorators: [{ type: i0.Optional }] },
16015
16053
  { type: ngx$5.SplashScreen, decorators: [{ type: i0.Optional }] },
16016
- { type: ngx$7.InAppBrowser, decorators: [{ type: i0.Optional }] }
16054
+ { type: ngx$8.InAppBrowser, decorators: [{ type: i0.Optional }] },
16055
+ { type: ngx$6.Downloader, decorators: [{ type: i0.Optional }] }
16017
16056
  ]; };
16018
16057
 
16019
16058
  var AppHelpModal = /** @class */ (function () {
@@ -16088,7 +16127,7 @@
16088
16127
  };
16089
16128
  return MatStepperI18n;
16090
16129
  }(stepper.MatStepperIntl));
16091
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16130
+ MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16092
16131
  MatStepperI18n.decorators = [
16093
16132
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
16094
16133
  ];
@@ -17280,7 +17319,7 @@
17280
17319
  return 1;
17281
17320
  }
17282
17321
  }
17283
- var ɵ0$9 = function (defaultStateSize) { return [
17322
+ var ɵ0$1 = function (defaultStateSize) { return [
17284
17323
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
17285
17324
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
17286
17325
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -17288,7 +17327,7 @@
17288
17327
  var SCALE_OPTIONS_DEFAULT = {
17289
17328
  startColor: rgbArrayMap.red,
17290
17329
  startStates: [0, 2, 3],
17291
- startStepsFn: ɵ0$9
17330
+ startStepsFn: ɵ0$1
17292
17331
  };
17293
17332
  /**
17294
17333
  * Internal function, that create a colors scale, using iteration
@@ -17380,24 +17419,24 @@
17380
17419
  return result;
17381
17420
  }
17382
17421
 
17383
- var EntityTestClass = /** @class */ (function () {
17422
+ var EntityTestClass$1 = /** @class */ (function () {
17384
17423
  function EntityTestClass() {
17385
17424
  }
17386
17425
  return EntityTestClass;
17387
17426
  }());
17388
- var FAKE_ENTITIES = [
17427
+ var FAKE_ENTITIES$1 = [
17389
17428
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
17390
17429
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
17391
17430
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
17392
17431
  ];
17393
- function deepCopy(values, size) {
17432
+ function deepCopy$1(values, size) {
17394
17433
  if (isNil(size)) {
17395
- return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
17434
+ return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
17396
17435
  }
17397
17436
  var result = [];
17398
17437
  var i = 1;
17399
17438
  while (result.length < size) {
17400
- result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
17439
+ result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
17401
17440
  var name = entity.name + ' #' + i;
17402
17441
  return Object.assign(Object.assign({}, entity), { id: i++, name: name });
17403
17442
  }));
@@ -17407,7 +17446,7 @@
17407
17446
  var AutocompleteTestPage = /** @class */ (function () {
17408
17447
  function AutocompleteTestPage(formBuilder) {
17409
17448
  this.formBuilder = formBuilder;
17410
- this._items = deepCopy(FAKE_ENTITIES, 100);
17449
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
17411
17450
  this.$items = new rxjs.BehaviorSubject(undefined);
17412
17451
  this.autocompleteFields = new MatAutocompleteConfigHolder();
17413
17452
  this.memoryHide = false;
@@ -17452,7 +17491,7 @@
17452
17491
  });
17453
17492
  // From items
17454
17493
  this.autocompleteFields.add('entity-items-large', {
17455
- items: FAKE_ENTITIES.slice(),
17494
+ items: FAKE_ENTITIES$1.slice(),
17456
17495
  attributes: ['label', 'name', 'description', 'comments'],
17457
17496
  displayWith: this.entityToString
17458
17497
  });
@@ -17465,12 +17504,12 @@
17465
17504
  var _this = this;
17466
17505
  return __generator(this, function (_a) {
17467
17506
  data = {
17468
- entity: deepCopy(FAKE_ENTITIES)[0],
17507
+ entity: deepCopy$1(FAKE_ENTITIES$1)[0],
17469
17508
  // This item is NOT in the items list => i should be displayed anyway
17470
17509
  missingEntity: {
17471
17510
  id: -1, label: '??', name: 'Missing item'
17472
17511
  },
17473
- disableEntity: deepCopy(FAKE_ENTITIES)[2]
17512
+ disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
17474
17513
  };
17475
17514
  this.form.setValue(data);
17476
17515
  // Load observables
@@ -17668,13 +17707,13 @@
17668
17707
  { type: Array, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_TESTING_PAGES,] }] }
17669
17708
  ]; };
17670
17709
 
17671
- var moment$5 = momentImported__namespace;
17710
+ var moment$1 = momentImported__namespace;
17672
17711
  var SwipeTestPage = /** @class */ (function () {
17673
17712
  function SwipeTestPage(formBuilder, dateFormatPipe) {
17674
17713
  this.formBuilder = formBuilder;
17675
17714
  this.dateFormatPipe = dateFormatPipe;
17676
17715
  this.$dates = new rxjs.BehaviorSubject(undefined);
17677
- this._today = moment$5().startOf('day');
17716
+ this._today = moment$1().startOf('day');
17678
17717
  this.form = formBuilder.group({
17679
17718
  empty: [null, i1.Validators.required],
17680
17719
  date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
@@ -17688,7 +17727,7 @@
17688
17727
  var _this = this;
17689
17728
  var dates = [];
17690
17729
  for (var d = 0; d < 7; d++) {
17691
- dates[d] = moment$5(this._today).add(d - 3, 'day');
17730
+ dates[d] = moment$1(this._today).add(d - 3, 'day');
17692
17731
  }
17693
17732
  this.$dates.next(dates);
17694
17733
  this.loadData();
@@ -18371,7 +18410,7 @@
18371
18410
  return FormArrayHelper;
18372
18411
  }());
18373
18412
 
18374
- var moment$6 = momentImported__namespace;
18413
+ var moment = momentImported__namespace;
18375
18414
  var DateTimeTestPage = /** @class */ (function () {
18376
18415
  function DateTimeTestPage(platform, formBuilder, cd) {
18377
18416
  this.platform = platform;
@@ -18406,7 +18445,7 @@
18406
18445
  var now, data;
18407
18446
  var _this = this;
18408
18447
  return __generator(this, function (_a) {
18409
- now = moment$6();
18448
+ now = moment();
18410
18449
  data = {
18411
18450
  empty: toDateISOString(now.clone().add(2, 'hours')),
18412
18451
  enable: toDateISOString(now),
@@ -18470,23 +18509,23 @@
18470
18509
  { type: i0.ChangeDetectorRef }
18471
18510
  ]; };
18472
18511
 
18473
- var EntityTestClass$1 = /** @class */ (function () {
18512
+ var EntityTestClass = /** @class */ (function () {
18474
18513
  function EntityTestClass() {
18475
18514
  }
18476
18515
  return EntityTestClass;
18477
18516
  }());
18478
- var FAKE_ENTITIES$1 = [
18517
+ var FAKE_ENTITIES = [
18479
18518
  { id: 1, label: 'AAA', name: 'Item A' },
18480
18519
  { id: 2, label: 'BBB', name: 'Item B' },
18481
18520
  { id: 3, label: 'CCC', name: 'Item C' }
18482
18521
  ];
18483
- function deepCopy$1(values) {
18484
- return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
18522
+ function deepCopy(values) {
18523
+ return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
18485
18524
  }
18486
18525
  var ChipsTestPage = /** @class */ (function () {
18487
18526
  function ChipsTestPage(formBuilder) {
18488
18527
  this.formBuilder = formBuilder;
18489
- this._items = deepCopy$1(FAKE_ENTITIES$1);
18528
+ this._items = deepCopy(FAKE_ENTITIES);
18490
18529
  this._$items = new rxjs.BehaviorSubject(undefined);
18491
18530
  this.autocompleteFields = new MatAutocompleteConfigHolder();
18492
18531
  this.form = formBuilder.group({
@@ -18506,7 +18545,7 @@
18506
18545
  });
18507
18546
  // From items
18508
18547
  this.autocompleteFields.add('entity-items', {
18509
- items: FAKE_ENTITIES$1.slice(),
18548
+ items: FAKE_ENTITIES.slice(),
18510
18549
  attributes: ['label', 'name'],
18511
18550
  displayWith: this.entityToString
18512
18551
  });
@@ -18529,8 +18568,8 @@
18529
18568
  data = {
18530
18569
  entity: [],
18531
18570
  // THis item is NOT in the items list => i should be displayed anyway
18532
- entityInitial: FAKE_ENTITIES$1.slice(1, 2),
18533
- disableEntity: FAKE_ENTITIES$1.slice(1, 2)
18571
+ entityInitial: FAKE_ENTITIES.slice(1, 2),
18572
+ disableEntity: FAKE_ENTITIES.slice(1, 2)
18534
18573
  };
18535
18574
  this.form.setValue(data);
18536
18575
  return [2 /*return*/];
@@ -18540,7 +18579,7 @@
18540
18579
  ChipsTestPage.prototype.loadItems = function () {
18541
18580
  return __awaiter(this, void 0, void 0, function () {
18542
18581
  return __generator(this, function (_a) {
18543
- this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
18582
+ this._$items.next(deepCopy(FAKE_ENTITIES));
18544
18583
  return [2 /*return*/];
18545
18584
  });
18546
18585
  });
@@ -18577,7 +18616,7 @@
18577
18616
  { type: i1.FormBuilder }
18578
18617
  ]; };
18579
18618
 
18580
- var routes = [
18619
+ var routes$1 = [
18581
18620
  {
18582
18621
  path: '',
18583
18622
  pathMatch: 'full',
@@ -18627,7 +18666,7 @@
18627
18666
  i1.ReactiveFormsModule,
18628
18667
  SharedMaterialModule,
18629
18668
  i1$2.TranslateModule.forChild(),
18630
- i3.RouterModule.forChild(routes)
18669
+ i3.RouterModule.forChild(routes$1)
18631
18670
  ],
18632
18671
  declarations: [
18633
18672
  MaterialTestingPage,
@@ -19745,7 +19784,7 @@
19745
19784
  };
19746
19785
  return UserSettingsValidatorService;
19747
19786
  }(AppValidatorService));
19748
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
19787
+ UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
19749
19788
  UserSettingsValidatorService.decorators = [
19750
19789
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
19751
19790
  ];
@@ -19793,7 +19832,7 @@
19793
19832
  };
19794
19833
  return AccountValidatorService;
19795
19834
  }(AppValidatorService));
19796
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
19835
+ 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" });
19797
19836
  AccountValidatorService.decorators = [
19798
19837
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
19799
19838
  ];
@@ -20390,7 +20429,7 @@
20390
20429
  };
20391
20430
  return LocalSettingsValidatorService;
20392
20431
  }(AppValidatorService));
20393
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
20432
+ 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" });
20394
20433
  LocalSettingsValidatorService.decorators = [
20395
20434
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
20396
20435
  ];
@@ -21174,7 +21213,7 @@
21174
21213
  };
21175
21214
  return IsOnFieldModePipe;
21176
21215
  }());
21177
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
21216
+ IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
21178
21217
  IsOnFieldModePipe.decorators = [
21179
21218
  { type: i0.Pipe, args: [{
21180
21219
  name: 'isOnField'
@@ -21189,7 +21228,7 @@
21189
21228
  };
21190
21229
  return IsNotOnFieldModePipe;
21191
21230
  }());
21192
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
21231
+ IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
21193
21232
  IsNotOnFieldModePipe.decorators = [
21194
21233
  { type: i0.Pipe, args: [{
21195
21234
  name: 'isNotOnField'
@@ -21207,7 +21246,7 @@
21207
21246
  };
21208
21247
  return PersonToStringPipe;
21209
21248
  }());
21210
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
21249
+ PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
21211
21250
  PersonToStringPipe.decorators = [
21212
21251
  { type: i0.Pipe, args: [{
21213
21252
  name: 'personToString'
@@ -21215,6 +21254,9 @@
21215
21254
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
21216
21255
  ];
21217
21256
 
21257
+ var MimeTypes = Object.freeze({
21258
+ ANDROID_APK: 'application/vnd.android.package-archive'
21259
+ });
21218
21260
  var AppInstallUpgradeCard = /** @class */ (function () {
21219
21261
  function AppInstallUpgradeCard(modalCtrl, configService, platform, cd, network, environment) {
21220
21262
  this.modalCtrl = modalCtrl;
@@ -21231,6 +21273,7 @@
21231
21273
  this.showOfflineWarning = true;
21232
21274
  this.showInstallButton = false;
21233
21275
  this.onUpdateOfflineModeClick = new i0.EventEmitter();
21276
+ this.isAndroidCordova = platform.isAndroidCordova();
21234
21277
  }
21235
21278
  Object.defineProperty(AppInstallUpgradeCard.prototype, "showUpdateOfflineFeature", {
21236
21279
  get: function () {
@@ -21286,15 +21329,14 @@
21286
21329
  AppInstallUpgradeCard.prototype.ngOnDestroy = function () {
21287
21330
  this._subscription.unsubscribe();
21288
21331
  };
21289
- AppInstallUpgradeCard.prototype.openDownloadLink = function (event, url) {
21290
- if (!url)
21332
+ AppInstallUpgradeCard.prototype.downloadLink = function (event, link) {
21333
+ if (!link || !link.url)
21291
21334
  return; // Skip
21292
- if (event) {
21293
- event.preventDefault();
21294
- }
21295
- console.info("[install] Opening App download link: " + url);
21296
- this.platform.open(url, '_system', 'location=yes');
21297
- return false;
21335
+ this.platform.download({
21336
+ uri: link.url,
21337
+ filename: link.downloadFilename,
21338
+ mimeType: link.mimeType
21339
+ });
21298
21340
  };
21299
21341
  AppInstallUpgradeCard.prototype.tryOnline = function () {
21300
21342
  var _this = this;
@@ -21320,10 +21362,10 @@
21320
21362
  return '';
21321
21363
  }
21322
21364
  };
21323
- AppInstallUpgradeCard.prototype.getAppFileName = function () {
21324
- return;
21365
+ AppInstallUpgradeCard.prototype.asLink = function (value) {
21366
+ return value;
21325
21367
  };
21326
- /* -- protected method -- */
21368
+ /* -- private method -- */
21327
21369
  AppInstallUpgradeCard.prototype.getCompatibleInstallLinks = function (installLinks) {
21328
21370
  // Cordova already running: not need to install
21329
21371
  if (this.platform.is('cordova'))
@@ -21361,11 +21403,14 @@
21361
21403
  if (url) {
21362
21404
  var downloadFilename = void 0;
21363
21405
  var version = void 0;
21406
+ var mimeType = void 0;
21364
21407
  // Get file name
21365
21408
  var filename = this.getFilename(url);
21366
21409
  version = config.getProperty(CORE_CONFIG_OPTIONS.APP_MIN_VERSION);
21367
21410
  // OK, this is a downloadable APK file (e.g. NOT a link to a playstore)
21368
21411
  if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.apk')) {
21412
+ // Define mime type
21413
+ mimeType = MimeTypes.ANDROID_APK;
21369
21414
  // Get the file version (if any)
21370
21415
  var versionMatches = /-v([1-9][0-9]*\.[0-9]+\.(:?(:?alpha|beta|rc)?[0-9]*))/i.exec(filename);
21371
21416
  version = versionMatches && versionMatches[1] || version;
@@ -21382,7 +21427,7 @@
21382
21427
  }
21383
21428
  }
21384
21429
  }
21385
- result.push({ name: name, url: url, platform: 'android', version: version, downloadFilename: downloadFilename });
21430
+ result.push({ name: name, url: url, platform: 'android', version: version, downloadFilename: downloadFilename, mimeType: mimeType });
21386
21431
  }
21387
21432
  }
21388
21433
  // iOS - TODO
@@ -21411,7 +21456,7 @@
21411
21456
  AppInstallUpgradeCard.decorators = [
21412
21457
  { type: i0.Component, args: [{
21413
21458
  selector: 'app-install-upgrade-card',
21414
- template: "\n\n<!-- Offline mode card-->\n<ion-card *ngIf=\"showOfflineWarning && (!loading && offline || waitingNetwork)\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" *ngIf=\"!waitingNetwork; else waitingNetworkText\">\n <h4>\n <b *ngIf=\"isLogin; else notLogin\" [innerHTML]=\"'NETWORK.INFO.OFFLINE_OR_UNAUTHORIZED'| translate\"></b>\n <ng-template #notLogin>\n <b [innerHTML]=\"'NETWORK.INFO.OFFLINE'| translate\"></b>\n </ng-template>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.OFFLINE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n <ng-template #waitingNetworkText>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"'NETWORK.INFO.RETRY_TO_CONNECT'| translate\"></ion-text>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button *ngIf=\"!waitingNetwork; else waitingSpinner\" color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"tryOnline()\">\n <span translate>NETWORK.BTN_CHECK_ALIVE</span>\n </ion-button>\n\n <!-- Waiting spinner -->\n <ng-template #waitingSpinner>\n <ion-spinner *ngIf=\"waitingNetwork\" color=\"light\"></ion-spinner>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Upgrade links -->\n<ion-card *ngIf=\"showUpgradeWarning && !loading && !offline && updateLinks\"\n color=\"accent\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of updateLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3>\n <span *ngIf=\"link.version\" [innerHTML]=\"'INFO.UPDATE_APP_TO_VERSION'| translate: link\"></span>\n <span *ngIf=\"!link.version\" [innerHTML]=\"'INFO.UPDATE_APP'| translate: link\"></span>\n </h3>\n <h4>\n <small *ngIf=\"last\" [innerHTML]=\"'INFO.UPDATE_APP_HELP'|translate\"></small>\n </h4>\n </ion-text>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <!-- Download button -->\n <ion-button *ngIf=\"link.downloadFilename; else redirectButton\"\n [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Install links -->\n<ion-card *ngIf=\"showInstallButton && !loading && !offline && installLinks\"\n color=\"secondary\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of installLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3 [innerHTML]=\"'INFO.DOWNLOAD_APP_TITLE'| translate: {name: link.name, platform: getPlatformName(link.platform) }\"></h3>\n <h4><small *ngIf=\"last\" [innerHTML]=\"'INFO.DOWNLOAD_APP_HELP'|translate\"></small></h4>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Download button -->\n <ion-button *ngIf=\"link.downloadFilename; else redirectButton\"\n [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Update offline feature card-->\n<ion-card *ngIf=\"showUpdateOfflineFeature && !loading && !offline\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateOfflineModeClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n",
21459
+ template: "\n\n<!-- Offline mode card-->\n<ion-card *ngIf=\"showOfflineWarning && (!loading && offline || waitingNetwork)\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" *ngIf=\"!waitingNetwork; else waitingNetworkText\">\n <h4>\n <b *ngIf=\"isLogin; else notLogin\" [innerHTML]=\"'NETWORK.INFO.OFFLINE_OR_UNAUTHORIZED'| translate\"></b>\n <ng-template #notLogin>\n <b [innerHTML]=\"'NETWORK.INFO.OFFLINE'| translate\"></b>\n </ng-template>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.OFFLINE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n <ng-template #waitingNetworkText>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"'NETWORK.INFO.RETRY_TO_CONNECT'| translate\"></ion-text>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button *ngIf=\"!waitingNetwork; else waitingSpinner\" color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"tryOnline()\">\n <span translate>NETWORK.BTN_CHECK_ALIVE</span>\n </ion-button>\n\n <!-- Waiting spinner -->\n <ng-template #waitingSpinner>\n <ion-spinner *ngIf=\"waitingNetwork\" color=\"light\"></ion-spinner>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Upgrade links -->\n<ion-card *ngIf=\"showUpgradeWarning && !loading && !offline && updateLinks\"\n color=\"accent\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of updateLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3>\n <span *ngIf=\"link.version\" [innerHTML]=\"'INFO.UPDATE_APP_TO_VERSION'| translate: link\"></span>\n <span *ngIf=\"!link.version\" [innerHTML]=\"'INFO.UPDATE_APP'| translate: link\"></span>\n </h3>\n <h4>\n <small *ngIf=\"last\" [innerHTML]=\"'INFO.UPDATE_APP_HELP'|translate\"></small>\n </h4>\n </ion-text>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <!-- Download button -->\n <ion-button *ngIf=\"link.downloadFilename; else redirectButton\"\n [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Install links -->\n<ion-card *ngIf=\"showInstallButton && !loading && !offline && installLinks\"\n color=\"secondary\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of installLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3 [innerHTML]=\"'INFO.DOWNLOAD_APP_TITLE'| translate: {name: link.name, platform: getPlatformName(link.platform) }\"></h3>\n <h4><small *ngIf=\"last\" [innerHTML]=\"'INFO.DOWNLOAD_APP_HELP'|translate\"></small></h4>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngTemplateOutlet=\"downloadButton; context: { $implicit: link }\"></ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Update offline feature card-->\n<ion-card *ngIf=\"showUpdateOfflineFeature && !loading && !offline\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateOfflineModeClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Display a download button, depending on the link URL, and the device platform -->\n<ng-template #downloadButton let-link>\n\n <ng-container *ngIf=\"link.downloadFilename; else redirectButton\">\n\n <!-- Cordova download button -->\n <ion-button *ngIf=\"isAndroidCordova; else webDownloadButton\"\n (click)=\"downloadLink($event, asLink(link))\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Web download button -->\n <ng-template #webDownloadButton>\n <ion-button [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n </ng-template>\n </ng-container>\n\n <!-- Web redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n</ng-template>\n",
21415
21460
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
21416
21461
  animations: [slideUpDownAnimation],
21417
21462
  styles: ["ion-text small{font-size:85%}"]
@@ -21442,7 +21487,7 @@
21442
21487
  };
21443
21488
  return IsLoginAccountPipe;
21444
21489
  }());
21445
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
21490
+ IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
21446
21491
  IsLoginAccountPipe.decorators = [
21447
21492
  { type: i0.Pipe, args: [{
21448
21493
  name: 'isLogin'
@@ -21457,7 +21502,7 @@
21457
21502
  };
21458
21503
  return AccountToStringPipe;
21459
21504
  }());
21460
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
21505
+ AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
21461
21506
  AccountToStringPipe.decorators = [
21462
21507
  { type: i0.Pipe, args: [{
21463
21508
  name: 'accountToString'
@@ -21475,7 +21520,7 @@
21475
21520
  };
21476
21521
  return DepartmentToStringPipe;
21477
21522
  }());
21478
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
21523
+ DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
21479
21524
  DepartmentToStringPipe.decorators = [
21480
21525
  { type: i0.Pipe, args: [{
21481
21526
  name: 'departmentToString'
@@ -21510,7 +21555,7 @@
21510
21555
  };
21511
21556
  return MenuService;
21512
21557
  }());
21513
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
21558
+ MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
21514
21559
  MenuService.decorators = [
21515
21560
  { type: i0.Injectable, args: [{
21516
21561
  providedIn: 'root'
@@ -22089,7 +22134,7 @@
22089
22134
  };
22090
22135
  return AuthGuardService;
22091
22136
  }());
22092
- 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" });
22137
+ 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" });
22093
22138
  AuthGuardService.decorators = [
22094
22139
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
22095
22140
  ];
@@ -22140,7 +22185,7 @@
22140
22185
  query: query,
22141
22186
  variables: { id: id },
22142
22187
  fetchPolicy: opts && opts.fetchPolicy || undefined,
22143
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
22188
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
22144
22189
  })
22145
22190
  .pipe(operators.map(function (_b) {
22146
22191
  var data = _b.data;
@@ -22162,7 +22207,7 @@
22162
22207
  query: query,
22163
22208
  variables: { id: id },
22164
22209
  fetchPolicy: opts && opts.fetchPolicy || undefined,
22165
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
22210
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
22166
22211
  })];
22167
22212
  case 1:
22168
22213
  data = (_b.sent()).data;
@@ -22198,7 +22243,7 @@
22198
22243
  totalFieldName: withTotal ? 'total' : undefined,
22199
22244
  insertFilterFn: filter && filter.asFilterFn(),
22200
22245
  variables: variables,
22201
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
22246
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
22202
22247
  fetchPolicy: opts && opts.fetchPolicy || undefined
22203
22248
  })
22204
22249
  .pipe(operators.map(function (_b) {
@@ -22240,7 +22285,7 @@
22240
22285
  return [4 /*yield*/, this.graphql.query({
22241
22286
  query: query,
22242
22287
  variables: variables,
22243
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
22288
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
22244
22289
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
22245
22290
  })];
22246
22291
  case 1:
@@ -22288,7 +22333,7 @@
22288
22333
  variables: {
22289
22334
  filter: filter && filter.asPodObject()
22290
22335
  },
22291
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
22336
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
22292
22337
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
22293
22338
  })];
22294
22339
  case 3:
@@ -22330,7 +22375,7 @@
22330
22375
  variables: {
22331
22376
  data: json
22332
22377
  },
22333
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
22378
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
22334
22379
  update: function (proxy, _b) {
22335
22380
  var data = _b.data;
22336
22381
  var savedEntities = data && data.data;
@@ -22397,7 +22442,7 @@
22397
22442
  variables: {
22398
22443
  data: json
22399
22444
  },
22400
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
22445
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
22401
22446
  update: function (cache, _b) {
22402
22447
  var data = _b.data;
22403
22448
  // Update entity
@@ -22455,7 +22500,7 @@
22455
22500
  refetchQueries: this.getRefetchQueriesForMutation(opts),
22456
22501
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
22457
22502
  variables: { ids: ids },
22458
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
22503
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
22459
22504
  update: function (cache, res) {
22460
22505
  // Remove from cache
22461
22506
  if (_this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -22508,7 +22553,7 @@
22508
22553
  refetchQueries: this.getRefetchQueriesForMutation(opts),
22509
22554
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
22510
22555
  variables: { id: id },
22511
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
22556
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
22512
22557
  update: function (proxy, res) {
22513
22558
  // Remove from cache
22514
22559
  if (_this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -22547,7 +22592,7 @@
22547
22592
  query: opts && opts.query || this.subscriptions.listenChanges,
22548
22593
  variables: variables,
22549
22594
  error: {
22550
- code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
22595
+ code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
22551
22596
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
22552
22597
  }
22553
22598
  })
@@ -22756,7 +22801,7 @@
22756
22801
  if (this._debug)
22757
22802
  invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
22758
22803
  // Stop with an error
22759
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22804
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22760
22805
  }
22761
22806
  this._editingRowCount = 0;
22762
22807
  data = void 0;
@@ -23712,14 +23757,14 @@
23712
23757
  case 0:
23713
23758
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
23714
23759
  if (this.readOnly) {
23715
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
23760
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
23716
23761
  }
23717
23762
  this.resetError();
23718
23763
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
23719
23764
  this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
23720
23765
  previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
23721
23766
  if (!this.confirmEditCreate()) {
23722
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
23767
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
23723
23768
  }
23724
23769
  // Mark as saving
23725
23770
  this.markAsSaving();
@@ -23872,7 +23917,7 @@
23872
23917
  switch (_d.label) {
23873
23918
  case 0:
23874
23919
  if (this.readOnly) {
23875
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
23920
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
23876
23921
  }
23877
23922
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
23878
23923
  return [2 /*return*/, 0]; // SKip
@@ -25568,7 +25613,7 @@
25568
25613
  case 4:
25569
25614
  data = _b.sent();
25570
25615
  if (!data)
25571
- throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
25616
+ throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
25572
25617
  this._usageMode = this.computeUsageMode(data);
25573
25618
  return [4 /*yield*/, this.onEntityLoaded(data, opts)];
25574
25619
  case 5:
@@ -26298,10 +26343,10 @@
26298
26343
  exports.UserEventFilter = __decorate([
26299
26344
  EntityClass({ typename: 'UserEventVO' })
26300
26345
  ], exports.UserEventFilter);
26301
- 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);
26302
- 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);
26303
- 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"])));
26304
- 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);
26346
+ 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);
26347
+ 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);
26348
+ 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"])));
26349
+ 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);
26305
26350
  var UserEventService = /** @class */ (function (_super) {
26306
26351
  __extends(UserEventService, _super);
26307
26352
  function UserEventService(graphql, accountService, network, translate, toastController, environment) {
@@ -26622,7 +26667,7 @@
26622
26667
  };
26623
26668
  return UserEventService;
26624
26669
  }(BaseGraphqlService));
26625
- 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" });
26670
+ 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" });
26626
26671
  UserEventService.decorators = [
26627
26672
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
26628
26673
  ];
@@ -26634,7 +26679,7 @@
26634
26679
  { type: i1$5.ToastController },
26635
26680
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
26636
26681
  ]; };
26637
- var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2;
26682
+ var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1;
26638
26683
 
26639
26684
  var ICONS_MAP = {
26640
26685
  DEBUG_DATA: { matIcon: 'bug_report' },
@@ -26859,6 +26904,7 @@
26859
26904
  this.userProfiles = source.userProfiles;
26860
26905
  this.excludedIds = source.excludedIds;
26861
26906
  this.searchAttribute = source.searchAttribute;
26907
+ this.searchAttributes = source.searchAttributes;
26862
26908
  };
26863
26909
  PersonFilter.prototype.asObject = function (opts) {
26864
26910
  var target = _super.prototype.asObject.call(this, opts);
@@ -26869,6 +26915,7 @@
26869
26915
  target.userProfiles = this.userProfiles;
26870
26916
  target.excludedIds = this.excludedIds;
26871
26917
  target.searchAttribute = this.searchAttribute;
26918
+ target.searchAttributes = this.searchAttributes;
26872
26919
  return target;
26873
26920
  };
26874
26921
  PersonFilter.prototype.buildFilter = function () {
@@ -26883,7 +26930,7 @@
26883
26930
  filterFns.push(function (e) { return isNil(e.id) || !_this.excludedIds.includes(e.id); });
26884
26931
  }
26885
26932
  // Search text
26886
- var searchTextFilter = EntityUtils.searchTextFilter(this.searchAttribute || ['lastName', 'firstName', 'department.name'], this.searchText);
26933
+ var searchTextFilter = EntityUtils.searchTextFilter(this.searchAttribute || this.searchAttributes || ['lastName', 'firstName', 'department.name'], this.searchText);
26887
26934
  if (searchTextFilter)
26888
26935
  filterFns.push(searchTextFilter);
26889
26936
  return filterFns;
@@ -26895,16 +26942,16 @@
26895
26942
  ], exports.PersonFilter);
26896
26943
 
26897
26944
  var PersonFragments = {
26898
- 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 }"])))
26945
+ 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 }"])))
26899
26946
  };
26900
26947
  // Load persons query
26901
26948
  var PersonQueries = {
26902
- 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),
26903
- 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)
26949
+ 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),
26950
+ 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)
26904
26951
  };
26905
26952
  var PersonMutations = {
26906
- 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),
26907
- 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 }"])))
26953
+ 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),
26954
+ 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 }"])))
26908
26955
  };
26909
26956
  var PersonService = /** @class */ (function (_super_1) {
26910
26957
  __extends(PersonService, _super_1);
@@ -26966,13 +27013,14 @@
26966
27013
  });
26967
27014
  });
26968
27015
  };
26969
- PersonService.prototype.suggest = function (value, filter) {
27016
+ PersonService.prototype.suggest = function (value, filter, sortBy, sortDirection) {
26970
27017
  return __awaiter(this, void 0, void 0, function () {
26971
27018
  return __generator(this, function (_a) {
26972
27019
  if (ReferentialUtils.isNotEmpty(value))
26973
27020
  return [2 /*return*/, { data: [value] }];
26974
27021
  value = (typeof value === 'string' && value !== '*') && value || undefined;
26975
- return [2 /*return*/, this.loadAll(0, !value ? 30 : 10, undefined, undefined, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ })];
27022
+ sortBy = sortBy || filter.searchAttribute || (filter.searchAttributes && filter.searchAttributes[0]);
27023
+ return [2 /*return*/, this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ })];
26976
27024
  });
26977
27025
  });
26978
27026
  };
@@ -27027,7 +27075,7 @@
27027
27075
  };
27028
27076
  return PersonService;
27029
27077
  }(BaseEntityService));
27030
- 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" });
27078
+ 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" });
27031
27079
  PersonService.decorators = [
27032
27080
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
27033
27081
  ];
@@ -27037,7 +27085,7 @@
27037
27085
  { type: NetworkService },
27038
27086
  { type: EntitiesStorage }
27039
27087
  ]; };
27040
- var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2;
27088
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
27041
27089
 
27042
27090
  var PersonValidatorService = /** @class */ (function () {
27043
27091
  function PersonValidatorService(formBuilder, accountValidatorService) {
@@ -27060,7 +27108,7 @@
27060
27108
  };
27061
27109
  return PersonValidatorService;
27062
27110
  }());
27063
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
27111
+ 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" });
27064
27112
  PersonValidatorService.decorators = [
27065
27113
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
27066
27114
  ];
@@ -27232,7 +27280,7 @@
27232
27280
  ],
27233
27281
  animations: [slideUpDownAnimation],
27234
27282
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
27235
- styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:100%}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
27283
+ styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:calc(100%)}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
27236
27284
  },] }
27237
27285
  ];
27238
27286
  UsersPage.ctorParameters = function () { return [
@@ -27281,16 +27329,16 @@
27281
27329
  ];
27282
27330
  AdminModule.ctorParameters = function () { return []; };
27283
27331
 
27284
- var ɵ0$a = {
27332
+ var ɵ0 = {
27285
27333
  profile: 'ADMIN'
27286
27334
  };
27287
- var routes$1 = [
27335
+ var routes = [
27288
27336
  {
27289
27337
  path: 'users',
27290
27338
  pathMatch: 'full',
27291
27339
  component: UsersPage,
27292
27340
  canActivate: [AuthGuardService],
27293
- data: ɵ0$a
27341
+ data: ɵ0
27294
27342
  }
27295
27343
  ];
27296
27344
  var AdminRoutingModule = /** @class */ (function () {
@@ -27303,13 +27351,13 @@
27303
27351
  imports: [
27304
27352
  SharedRoutingModule,
27305
27353
  AdminModule,
27306
- i3.RouterModule.forChild(routes$1)
27354
+ i3.RouterModule.forChild(routes)
27307
27355
  ],
27308
27356
  exports: [i3.RouterModule]
27309
27357
  },] }
27310
27358
  ];
27311
27359
 
27312
- var ErrorCodes$2 = {
27360
+ var ErrorCodes = {
27313
27361
  LOAD_PERSONS_ERROR: 100,
27314
27362
  SAVE_PERSONS_ERROR: 101,
27315
27363
  DELETE_PERSONS_ERROR: 102,
@@ -27418,7 +27466,7 @@
27418
27466
  exports.EntityStore = EntityStore;
27419
27467
  exports.EntityUtils = EntityUtils;
27420
27468
  exports.Environment = Environment;
27421
- exports.ErrorCodes = ErrorCodes$2;
27469
+ exports.ErrorCodes = ErrorCodes;
27422
27470
  exports.EvenPipe = EvenPipe;
27423
27471
  exports.FileService = FileService;
27424
27472
  exports.FileSizePipe = FileSizePipe;
@@ -27426,7 +27474,7 @@
27426
27474
  exports.FormButtonsBarComponent = FormButtonsBarComponent;
27427
27475
  exports.FormButtonsBarToken = FormButtonsBarToken;
27428
27476
  exports.FormFieldValuesHolder = FormFieldValuesHolder;
27429
- exports.Fragments = Fragments$1;
27477
+ exports.Fragments = Fragments;
27430
27478
  exports.GraphqlService = GraphqlService;
27431
27479
  exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
27432
27480
  exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;