@sumaris-net/ngx-components 1.22.12 → 1.23.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/animations'), 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/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('rxjs/internal/operators'), 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('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs'), require('moment-timezone')) :
3
3
  typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/animations', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@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', 'rxjs/internal/operators', '@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', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs', 'moment-timezone'], 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.ng.animations, 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.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.rxjs['internal/operators'], global.ng.cdk.dragDrop, global['ngx-markdown'], global.tweetnacl, global.ionic.storage, null, global['ionic-native']['splash-screen'].ngx, global['ionic-native'].network.ngx, global['ionic-cache'], global['ionic-cache/dist/cache'].service, global['ionic-native'].network.ngx.index, global['ionic-native']['splash-screen'].ngx.index, global['ionic-native']['status-bar'].ngx, global.ng.cdk.platform, global['ionic-native']['in-app-browser'].ngx, global.apollo.client.core, global['apollo-angular'], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global['apollo-link-queue'], global['apollo-link-serialize'], global['apollo-link-logger'], global['apollo-angular'].http, global['apollo3-cache-persist'], global['ionic-native'].downloader.ngx, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global['ionic-native'].downloader.ngx.index, global.ng.cdk.textField, global['e-is']['ngx-material-table'], global.ng.cdk.collections, global['ngx-jdenticon'], null, null, null, global['moment-timezone']));
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, animations, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, operators$1, 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, textField, ngxMaterialTable, collections, ngxJdenticon, tweetnaclUtil, scryptAsync, hammerjs, momentTZImported) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.animations, 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.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.rxjs["internal/operators"], global.ng.cdk.dragDrop, global["ngx-markdown"], global.tweetnacl, global.ionic.storage, null, global["ionic-native"]["splash-screen"].ngx, global["ionic-native"].network.ngx, global["ionic-cache"], global["ionic-cache/dist/cache"].service, global["ionic-native"].network.ngx.index, global["ionic-native"]["splash-screen"].ngx.index, global["ionic-native"]["status-bar"].ngx, global.ng.cdk.platform, global["ionic-native"]["in-app-browser"].ngx, global.apollo.client.core, global["apollo-angular"], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global["apollo-link-queue"], global["apollo-link-serialize"], global["apollo-link-logger"], global["apollo-angular"].http, global["apollo3-cache-persist"], global["ionic-native"].downloader.ngx, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global["ionic-native"].downloader.ngx.index, global.ng.cdk.textField, global["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"], null, null, null, global["moment-timezone"]));
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, animations, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, operators$1, 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, textField, ngxMaterialTable, collections, ngxJdenticon, tweetnaclUtil, scryptAsync, hammerjs, momentTZImported) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -15,22 +15,45 @@
15
15
  var d = Object.getOwnPropertyDescriptor(e, k);
16
16
  Object.defineProperty(n, k, d.get ? d : {
17
17
  enumerable: true,
18
- get: function () {
19
- return e[k];
20
- }
18
+ get: function () { return e[k]; }
21
19
  });
22
20
  }
23
21
  });
24
22
  }
25
- n['default'] = e;
23
+ n["default"] = e;
26
24
  return Object.freeze(n);
27
25
  }
28
26
 
27
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
29
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
30
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
31
+ var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
32
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
33
+ var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
29
34
  var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
35
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
36
+ var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
37
+ var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
38
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
39
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
40
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
41
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
42
  var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
43
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
44
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
45
+ var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
46
+ var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
47
+ var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
48
+ var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
31
49
  var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
32
50
  var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
33
51
  var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
52
+ var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
53
+ var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
54
+ var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
55
+ var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
56
+ var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
34
57
  var momentTZImported__namespace = /*#__PURE__*/_interopNamespace(momentTZImported);
35
58
 
36
59
  var ENVIRONMENT = new i0.InjectionToken('ENV');
@@ -747,6 +770,7 @@
747
770
  }
748
771
  return false;
749
772
  }
773
+ // @dynamic
750
774
  var Beans = /** @class */ (function () {
751
775
  function Beans() {
752
776
  }
@@ -782,6 +806,15 @@
782
806
  return isNotNil(value);
783
807
  }) === -1;
784
808
  };
809
+ Beans.collectById = function (array) {
810
+ return this.collectByProperty(array, 'id');
811
+ };
812
+ Beans.collectByProperty = function (array, propertyName) {
813
+ return (array || []).reduce(function (res, item) {
814
+ res['' + propertyName] = item;
815
+ return res;
816
+ }, {});
817
+ };
785
818
  return Beans;
786
819
  }());
787
820
 
@@ -1320,7 +1353,7 @@
1320
1353
  }
1321
1354
  return false;
1322
1355
  };
1323
- var ɵ0 = isIpad;
1356
+ var ɵ0$c = isIpad;
1324
1357
  var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
1325
1358
  var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
1326
1359
  var isCordova = function (win) {
@@ -1459,14 +1492,14 @@
1459
1492
  };
1460
1493
  return MatAutocompleteFieldUtils;
1461
1494
  }());
1462
- var noop = function (_) { };
1463
- var ɵ0$1 = noop;
1495
+ var noop$8 = function (_) { };
1496
+ var ɵ0$b = noop$8;
1464
1497
  var MatAutocompleteField = /** @class */ (function () {
1465
1498
  function MatAutocompleteField(cd, formGroupDir) {
1466
1499
  this.cd = cd;
1467
1500
  this.formGroupDir = formGroupDir;
1468
- this._onChangeCallback = noop;
1469
- this._onTouchedCallback = noop;
1501
+ this._onChangeCallback = noop$8;
1502
+ this._onTouchedCallback = noop$8;
1470
1503
  this.logPrefix = '[mat-autocomplete] ';
1471
1504
  this.formControlName = null;
1472
1505
  this.required = false;
@@ -2317,7 +2350,7 @@
2317
2350
  };
2318
2351
  return DateFormatPipe;
2319
2352
  }());
2320
- 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" });
2353
+ 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" });
2321
2354
  DateFormatPipe.decorators = [
2322
2355
  { type: i0.Pipe, args: [{
2323
2356
  name: 'dateFormat'
@@ -2329,7 +2362,7 @@
2329
2362
  { type: i1$2.TranslateService }
2330
2363
  ]; };
2331
2364
 
2332
- var moment = momentImported__namespace;
2365
+ var moment$a = momentImported__namespace;
2333
2366
  var DateDiffDurationPipe = /** @class */ (function () {
2334
2367
  function DateDiffDurationPipe(dateAdapter, translate) {
2335
2368
  var _this = this;
@@ -2346,11 +2379,11 @@
2346
2379
  return this.format(startDate, endDate, args);
2347
2380
  };
2348
2381
  DateDiffDurationPipe.prototype.format = function (startDate, endDate, args) {
2349
- var duration = moment.duration(endDate.diff(startDate));
2382
+ var duration = moment$a.duration(endDate.diff(startDate));
2350
2383
  if (duration.asMinutes() < 0)
2351
2384
  return '';
2352
2385
  var withSeconds = args === null || args === void 0 ? void 0 : args.seconds;
2353
- var timeDuration = moment(0)
2386
+ var timeDuration = moment$a(0)
2354
2387
  .hour(duration.hours())
2355
2388
  .minute(duration.minutes());
2356
2389
  if (withSeconds) {
@@ -2361,7 +2394,7 @@
2361
2394
  };
2362
2395
  return DateDiffDurationPipe;
2363
2396
  }());
2364
- 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" });
2397
+ 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" });
2365
2398
  DateDiffDurationPipe.decorators = [
2366
2399
  { type: i0.Pipe, args: [{
2367
2400
  name: 'dateDiffDuration'
@@ -2383,7 +2416,7 @@
2383
2416
  };
2384
2417
  return DateFromNowPipe;
2385
2418
  }());
2386
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
2419
+ DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
2387
2420
  DateFromNowPipe.decorators = [
2388
2421
  { type: i0.Pipe, args: [{
2389
2422
  name: 'dateFromNow'
@@ -2452,7 +2485,7 @@
2452
2485
  value *= -1;
2453
2486
  }
2454
2487
  }
2455
- var degrees = roundFloat(value, opts.maxDecimals).toString();
2488
+ var degrees = roundFloat$1(value, opts.maxDecimals).toString();
2456
2489
  // Add sign
2457
2490
  var sign = negative ? '-' : '+';
2458
2491
  if (opts.placeholderChar) {
@@ -2503,7 +2536,7 @@
2503
2536
  }
2504
2537
  var degrees = Math.trunc(value);
2505
2538
  var minutes = Math.trunc((value - degrees) * 60);
2506
- var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2539
+ var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
2507
2540
  while (seconds >= 60) {
2508
2541
  seconds -= 60;
2509
2542
  minutes += 1;
@@ -2571,7 +2604,7 @@
2571
2604
  }
2572
2605
  }
2573
2606
  var degrees = Math.trunc(value);
2574
- var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
2607
+ var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
2575
2608
  while (minutes >= 60) {
2576
2609
  minutes -= 60;
2577
2610
  degrees += 1;
@@ -2622,15 +2655,15 @@
2622
2655
  return NaN;
2623
2656
  }
2624
2657
  if (pattern === 'DD')
2625
- return roundFloat(degrees, maxDecimals);
2658
+ return roundFloat$1(degrees, maxDecimals);
2626
2659
  var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2627
2660
  var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2628
2661
  var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2629
2662
  var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2630
2663
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2631
- return roundFloat(degrees, maxDecimals);
2664
+ return roundFloat$1(degrees, maxDecimals);
2632
2665
  }
2633
- function roundFloat(input, maxDecimals) {
2666
+ function roundFloat$1(input, maxDecimals) {
2634
2667
  if (maxDecimals > 0) {
2635
2668
  var powDecimal = Math.pow(10, maxDecimals);
2636
2669
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2699,7 +2732,7 @@
2699
2732
  };
2700
2733
  return NumberFormatPipe;
2701
2734
  }());
2702
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2735
+ NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2703
2736
  NumberFormatPipe.decorators = [
2704
2737
  { type: i0.Pipe, args: [{
2705
2738
  name: 'numberFormat'
@@ -2742,7 +2775,7 @@
2742
2775
  };
2743
2776
  return HighlightPipe;
2744
2777
  }());
2745
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2778
+ HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2746
2779
  HighlightPipe.decorators = [
2747
2780
  { type: i0.Pipe, args: [{
2748
2781
  name: 'highlight'
@@ -2810,7 +2843,7 @@
2810
2843
  { type: i0.Pipe, args: [{ name: 'fileSize' },] }
2811
2844
  ];
2812
2845
 
2813
- var moment$1 = momentImported__namespace;
2846
+ var moment$9 = momentImported__namespace;
2814
2847
  var DATE_UNIX_TIMESTAMP = 'X';
2815
2848
  var DATE_UNIX_MS_TIMESTAMP = 'x';
2816
2849
  var MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
@@ -2902,37 +2935,37 @@
2902
2935
  return value;
2903
2936
  if (typeof value === 'string' && value.length === 10) {
2904
2937
  // Parse the input value, as a date only
2905
- var dateOnly = moment$1(value, DATE_PATTERN);
2938
+ var dateOnly = moment$9(value, DATE_PATTERN);
2906
2939
  if (dateOnly.isValid())
2907
2940
  return DateUtils.markNoTime(dateOnly);
2908
2941
  }
2909
2942
  // Parse the input value, as a ISO date time
2910
- var date = moment$1(value, DATE_ISO_PATTERN);
2943
+ var date = moment$9(value, DATE_ISO_PATTERN);
2911
2944
  if (date.isValid())
2912
2945
  return date;
2913
2946
  // Not valid: trying to convert from unix timestamp
2914
2947
  if (typeof value === 'string') {
2915
2948
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2916
2949
  if (value.length === 10) {
2917
- return moment$1(value, DATE_UNIX_TIMESTAMP);
2950
+ return moment$9(value, DATE_UNIX_TIMESTAMP);
2918
2951
  }
2919
2952
  else if (value.length === 13) {
2920
- return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2953
+ return moment$9(value, DATE_UNIX_MS_TIMESTAMP);
2921
2954
  }
2922
2955
  }
2923
2956
  console.warn('Unable to parse date: ' + value);
2924
2957
  return undefined;
2925
2958
  }
2926
2959
  function fromUnixTimestamp(timeInSec) {
2927
- return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2960
+ return moment$9(timeInSec, DATE_UNIX_TIMESTAMP);
2928
2961
  }
2929
2962
  function fromUnixMsTimestamp(timeInMs) {
2930
- return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2963
+ return moment$9(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2931
2964
  }
2932
2965
  function toDuration(value, unit) {
2933
2966
  if (!value)
2934
2967
  return undefined;
2935
- var duration = moment$1.duration(value, unit);
2968
+ var duration = moment$9.duration(value, unit);
2936
2969
  // fix 990+ ms
2937
2970
  if (duration.milliseconds() >= 990) {
2938
2971
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2962,7 +2995,7 @@
2962
2995
  };
2963
2996
  return DurationPipe;
2964
2997
  }());
2965
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2998
+ DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2966
2999
  DurationPipe.decorators = [
2967
3000
  { type: i0.Pipe, args: [{
2968
3001
  name: 'duration'
@@ -2986,7 +3019,7 @@
2986
3019
  };
2987
3020
  return MathAbsPipe;
2988
3021
  }());
2989
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
3022
+ MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2990
3023
  MathAbsPipe.decorators = [
2991
3024
  { type: i0.Pipe, args: [{
2992
3025
  name: 'mathAbs'
@@ -3001,7 +3034,7 @@
3001
3034
  };
3002
3035
  return EvenPipe;
3003
3036
  }());
3004
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
3037
+ EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
3005
3038
  EvenPipe.decorators = [
3006
3039
  { type: i0.Pipe, args: [{
3007
3040
  name: 'even'
@@ -3016,7 +3049,7 @@
3016
3049
  };
3017
3050
  return OddPipe;
3018
3051
  }());
3019
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
3052
+ OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
3020
3053
  OddPipe.decorators = [
3021
3054
  { type: i0.Pipe, args: [{
3022
3055
  name: 'odd'
@@ -3148,7 +3181,7 @@
3148
3181
  };
3149
3182
  return MapGetPipe;
3150
3183
  }());
3151
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
3184
+ MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
3152
3185
  MapGetPipe.decorators = [
3153
3186
  { type: i0.Pipe, args: [{
3154
3187
  name: 'mapGet'
@@ -3165,7 +3198,7 @@
3165
3198
  };
3166
3199
  return MapKeysPipe;
3167
3200
  }());
3168
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
3201
+ MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
3169
3202
  MapKeysPipe.decorators = [
3170
3203
  { type: i0.Pipe, args: [{
3171
3204
  name: 'mapKeys'
@@ -3182,7 +3215,7 @@
3182
3215
  };
3183
3216
  return MapValuesPipe;
3184
3217
  }());
3185
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
3218
+ MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
3186
3219
  MapValuesPipe.decorators = [
3187
3220
  { type: i0.Pipe, args: [{
3188
3221
  name: 'mapValues'
@@ -3339,7 +3372,7 @@
3339
3372
  };
3340
3373
  return TranslateContextService;
3341
3374
  }());
3342
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
3375
+ TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
3343
3376
  TranslateContextService.decorators = [
3344
3377
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
3345
3378
  ];
@@ -3402,7 +3435,7 @@
3402
3435
  ngInit: [{ type: i0.Output }]
3403
3436
  };
3404
3437
 
3405
- var moment$2 = momentImported__namespace;
3438
+ var moment$8 = momentImported__namespace;
3406
3439
  // @dynamic
3407
3440
  var SharedValidators = /** @class */ (function () {
3408
3441
  function SharedValidators() {
@@ -3485,7 +3518,7 @@
3485
3518
  };
3486
3519
  SharedValidators.validDate = function (control) {
3487
3520
  var value = control.value;
3488
- var date = !value || moment$2.isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
3521
+ var date = !value || moment$8.isMoment(value) ? value : moment$8(value, DATE_ISO_PATTERN);
3489
3522
  if (date && (!date.isValid() || date.year() < 1970)) {
3490
3523
  return { validDate: true };
3491
3524
  }
@@ -4705,7 +4738,7 @@
4705
4738
  };
4706
4739
  return FormErrorTranslator;
4707
4740
  }());
4708
- FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
4741
+ FormErrorTranslator.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
4709
4742
  FormErrorTranslator.decorators = [
4710
4743
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
4711
4744
  ];
@@ -4996,7 +5029,7 @@
4996
5029
  });
4997
5030
  return PropertyFormatPipe;
4998
5031
  }());
4999
- PropertyFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyFormatPipe_Factory() { return new PropertyFormatPipe(i0.ɵɵinject(DateFormatPipe), i0.ɵɵinject(i1$2.TranslateService)); }, token: PropertyFormatPipe, providedIn: "root" });
5032
+ PropertyFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyFormatPipe_Factory() { return new PropertyFormatPipe(i0__namespace.ɵɵinject(DateFormatPipe), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: PropertyFormatPipe, providedIn: "root" });
5000
5033
  PropertyFormatPipe.decorators = [
5001
5034
  { type: i0.Pipe, args: [{
5002
5035
  name: 'propertyFormat'
@@ -5380,9 +5413,9 @@
5380
5413
  var hour = parseInt(durationParts[0] || '0');
5381
5414
  var minute = parseInt(durationParts[1] || '0');
5382
5415
  var value = hour + (minute + 0.5) / 60;
5383
- return roundFloat$1(value, maxDecimals);
5416
+ return roundFloat(value, maxDecimals);
5384
5417
  }
5385
- function roundFloat$1(input, maxDecimals) {
5418
+ function roundFloat(input, maxDecimals) {
5386
5419
  if (maxDecimals > 0) {
5387
5420
  var powDecimal = Math.pow(10, maxDecimals);
5388
5421
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -5406,16 +5439,16 @@
5406
5439
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
5407
5440
  }
5408
5441
  };
5409
- var noop$1 = function () {
5442
+ var noop$7 = function () {
5410
5443
  };
5411
- var ɵ0$2 = noop$1;
5444
+ var ɵ0$a = noop$7;
5412
5445
  var MatLatLongField = /** @class */ (function () {
5413
5446
  function MatLatLongField(formBuilder, cd, formGroupDir) {
5414
5447
  this.formBuilder = formBuilder;
5415
5448
  this.cd = cd;
5416
5449
  this.formGroupDir = formGroupDir;
5417
- this._onChangeCallback = noop$1;
5418
- this._onTouchedCallback = noop$1;
5450
+ this._onChangeCallback = noop$7;
5451
+ this._onTouchedCallback = noop$7;
5419
5452
  this._subscription = new rxjs.Subscription();
5420
5453
  this._disabling = false;
5421
5454
  this._writing = false;
@@ -5775,14 +5808,14 @@
5775
5808
  },] }
5776
5809
  ];
5777
5810
 
5778
- var DEFAULT_VALUE_ACCESSOR = {
5811
+ var DEFAULT_VALUE_ACCESSOR$5 = {
5779
5812
  provide: i1.NG_VALUE_ACCESSOR,
5780
5813
  useExisting: i0.forwardRef(function () { return MatDate; }),
5781
5814
  multi: true
5782
5815
  };
5783
5816
  var TEXT_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
5784
- var noop$2 = function () { };
5785
- var ɵ0$3 = noop$2;
5817
+ var noop$6 = function () { };
5818
+ var ɵ0$9 = noop$6;
5786
5819
  var MatDate = /** @class */ (function () {
5787
5820
  function MatDate(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5788
5821
  this.dateAdapter = dateAdapter;
@@ -5791,8 +5824,8 @@
5791
5824
  this.cd = cd;
5792
5825
  this.keyboard = keyboard;
5793
5826
  this.formGroupDir = formGroupDir;
5794
- this._onChangeCallback = noop$2;
5795
- this._onTouchedCallback = noop$2;
5827
+ this._onChangeCallback = noop$6;
5828
+ this._onTouchedCallback = noop$6;
5796
5829
  this._subscription = new rxjs.Subscription();
5797
5830
  this._writing = true;
5798
5831
  this._disabling = false;
@@ -6133,7 +6166,7 @@
6133
6166
  selector: 'mat-date-field',
6134
6167
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: datePattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: mask, 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]=\"textControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <!-- errors -->\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\" [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </mat-error>\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 </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"\n ></mat-datepicker>\n\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
6135
6168
  providers: [
6136
- DEFAULT_VALUE_ACCESSOR,
6169
+ DEFAULT_VALUE_ACCESSOR$5,
6137
6170
  ],
6138
6171
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6139
6172
  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%}"]
@@ -6168,16 +6201,16 @@
6168
6201
  matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
6169
6202
  };
6170
6203
 
6171
- var DEFAULT_VALUE_ACCESSOR$1 = {
6204
+ var DEFAULT_VALUE_ACCESSOR$4 = {
6172
6205
  provide: i1.NG_VALUE_ACCESSOR,
6173
6206
  useExisting: i0.forwardRef(function () { return MatDateTime; }),
6174
6207
  multi: true
6175
6208
  };
6176
- var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
6209
+ var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
6177
6210
  var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
6178
- var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
6179
- var noop$3 = function () { };
6180
- var ɵ0$4 = noop$3;
6211
+ var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
6212
+ var noop$5 = function () { };
6213
+ var ɵ0$8 = noop$5;
6181
6214
  var MatDateTime = /** @class */ (function () {
6182
6215
  function MatDateTime(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
6183
6216
  this.dateAdapter = dateAdapter;
@@ -6186,14 +6219,14 @@
6186
6219
  this.cd = cd;
6187
6220
  this.keyboard = keyboard;
6188
6221
  this.formGroupDir = formGroupDir;
6189
- this._onChangeCallback = noop$3;
6190
- this._onTouchedCallback = noop$3;
6222
+ this._onChangeCallback = noop$5;
6223
+ this._onTouchedCallback = noop$5;
6191
6224
  this._subscription = new rxjs.Subscription();
6192
6225
  this._writing = true;
6193
6226
  this._disabling = false;
6194
6227
  this._readonly = false;
6195
- this.dayMask = DAY_MASK;
6196
- this.hourMask = HOUR_MASK;
6228
+ this.dayMask = DAY_MASK$1;
6229
+ this.hourMask = HOUR_MASK$1;
6197
6230
  this.floatLabel = 'auto';
6198
6231
  this.compact = false;
6199
6232
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -6558,7 +6591,7 @@
6558
6591
  selector: 'mat-date-time-field',
6559
6592
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding mat-form-field-{{appearance}}\">\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 [appearance]=\"appearance\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"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 input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"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=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</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 [appearance]=\"appearance\"\n [class.mat-form-field-invalid]=\"formControl.touched && (hourControl.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]=\"hourControl\"\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]=\"hourControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"hourControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
6560
6593
  providers: [
6561
- DEFAULT_VALUE_ACCESSOR$1,
6594
+ DEFAULT_VALUE_ACCESSOR$4,
6562
6595
  ],
6563
6596
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6564
6597
  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}.mat-form-field-outline ion-col.day{min-width:153px}.mat-form-field-outline ion-col.hour{min-width:100px;max-width:110px}.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%}"]
@@ -6593,15 +6626,15 @@
6593
6626
  matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
6594
6627
  };
6595
6628
 
6596
- var DEFAULT_VALUE_ACCESSOR$2 = {
6629
+ var DEFAULT_VALUE_ACCESSOR$3 = {
6597
6630
  provide: i1.NG_VALUE_ACCESSOR,
6598
6631
  useExisting: i0.forwardRef(function () { return MatDateShort; }),
6599
6632
  multi: true
6600
6633
  };
6601
- var DAY_MASK$1 = [/\d/, /\d/, /\d/, /\d/];
6634
+ var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
6602
6635
  var noop$4 = function () {
6603
6636
  };
6604
- var ɵ0$5 = noop$4;
6637
+ var ɵ0$7 = noop$4;
6605
6638
  var MatDateShort = /** @class */ (function () {
6606
6639
  function MatDateShort(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
6607
6640
  this.dateAdapter = dateAdapter;
@@ -6614,7 +6647,7 @@
6614
6647
  this._onTouchedCallback = noop$4;
6615
6648
  this.writing = true;
6616
6649
  this.disabling = false;
6617
- this.dayMask = DAY_MASK$1;
6650
+ this.dayMask = DAY_MASK;
6618
6651
  this.disabled = false;
6619
6652
  this.floatLabel = 'auto';
6620
6653
  this.readonly = false;
@@ -6891,7 +6924,7 @@
6891
6924
  selector: 'mat-date-short-field',
6892
6925
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\" [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
6893
6926
  providers: [
6894
- DEFAULT_VALUE_ACCESSOR$2,
6927
+ DEFAULT_VALUE_ACCESSOR$3,
6895
6928
  ],
6896
6929
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
6897
6930
  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%}"]
@@ -6963,16 +6996,16 @@
6963
6996
  },] }
6964
6997
  ];
6965
6998
 
6966
- var DEFAULT_VALUE_ACCESSOR$3 = {
6999
+ var DEFAULT_VALUE_ACCESSOR$2 = {
6967
7000
  provide: i1.NG_VALUE_ACCESSOR,
6968
7001
  useExisting: i0.forwardRef(function () { return MatDuration; }),
6969
7002
  multi: true
6970
7003
  };
6971
7004
  var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
6972
- var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
6973
- var noop$5 = function () {
7005
+ var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
7006
+ var noop$3 = function () {
6974
7007
  };
6975
- var ɵ0$6 = noop$5;
7008
+ var ɵ0$6 = noop$3;
6976
7009
  var MatDuration = /** @class */ (function () {
6977
7010
  function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
6978
7011
  this.dateAdapter = dateAdapter;
@@ -6981,11 +7014,11 @@
6981
7014
  this.cd = cd;
6982
7015
  this.formGroupDir = formGroupDir;
6983
7016
  this._subscription = new rxjs.Subscription();
6984
- this._onChangeCallback = noop$5;
6985
- this._onTouchedCallback = noop$5;
7017
+ this._onChangeCallback = noop$3;
7018
+ this._onTouchedCallback = noop$3;
6986
7019
  this.writing = true;
6987
7020
  this.disabling = false;
6988
- this.hourMask = HOUR_MASK$1;
7021
+ this.hourMask = HOUR_MASK;
6989
7022
  this.disabled = false;
6990
7023
  this.floatLabel = 'auto';
6991
7024
  this.readonly = false;
@@ -7178,7 +7211,7 @@
7178
7211
  selector: 'mat-duration-field',
7179
7212
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\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 [appearance]=\"appearance\"\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",
7180
7213
  providers: [
7181
- DEFAULT_VALUE_ACCESSOR$3,
7214
+ DEFAULT_VALUE_ACCESSOR$2,
7182
7215
  ],
7183
7216
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
7184
7217
  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%}"]
@@ -7239,22 +7272,22 @@
7239
7272
  },] }
7240
7273
  ];
7241
7274
 
7242
- var DEFAULT_VALUE_ACCESSOR$4 = {
7275
+ var DEFAULT_VALUE_ACCESSOR$1 = {
7243
7276
  provide: i1.NG_VALUE_ACCESSOR,
7244
7277
  useExisting: i0.forwardRef(function () { return MatBooleanField; }),
7245
7278
  multi: true
7246
7279
  };
7247
- var noop$6 = function () {
7280
+ var noop$2 = function () {
7248
7281
  };
7249
- var ɵ0$7 = noop$6;
7282
+ var ɵ0$5 = noop$2;
7250
7283
  var MatBooleanField = /** @class */ (function () {
7251
7284
  function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
7252
7285
  this.translate = translate;
7253
7286
  this.formBuilder = formBuilder;
7254
7287
  this.cd = cd;
7255
7288
  this.formGroupDir = formGroupDir;
7256
- this._onChangeCallback = noop$6;
7257
- this._onTouchedCallback = noop$6;
7289
+ this._onChangeCallback = noop$2;
7290
+ this._onTouchedCallback = noop$2;
7258
7291
  this._writing = false;
7259
7292
  this.showRadio = false;
7260
7293
  this.disabled = false;
@@ -7429,7 +7462,7 @@
7429
7462
  selector: 'mat-boolean-field',
7430
7463
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(value == null ? 'COMMON.EMPTY_OPTION' : (value === true ? yesLabel : noLabel)) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&nbsp;</ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===null\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n [appearance]=\"appearance\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
7431
7464
  providers: [
7432
- DEFAULT_VALUE_ACCESSOR$4
7465
+ DEFAULT_VALUE_ACCESSOR$1
7433
7466
  ],
7434
7467
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
7435
7468
  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}"]
@@ -7517,6 +7550,7 @@
7517
7550
  return MatNumpadEvent;
7518
7551
  }(KeyboardEvent));
7519
7552
 
7553
+ exports.AnimationState = void 0;
7520
7554
  (function (AnimationState) {
7521
7555
  AnimationState["ENTER"] = "enter";
7522
7556
  AnimationState["ENTER_INPUT"] = "enter-input";
@@ -7684,7 +7718,7 @@
7684
7718
  };
7685
7719
  return MatNumpadDomService;
7686
7720
  }());
7687
- 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" });
7721
+ 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" });
7688
7722
  MatNumpadDomService.decorators = [
7689
7723
  { type: i0.Injectable, args: [{
7690
7724
  providedIn: 'root'
@@ -8090,7 +8124,7 @@
8090
8124
  },] }
8091
8125
  ];
8092
8126
 
8093
- var DEFAULT_VALUE_ACCESSOR$5 = {
8127
+ var DEFAULT_VALUE_ACCESSOR = {
8094
8128
  provide: i1.NG_VALUE_ACCESSOR,
8095
8129
  useExisting: i0.forwardRef(function () { return MatSwipeField; }),
8096
8130
  multi: true
@@ -8410,7 +8444,7 @@
8410
8444
  { type: i0.Component, args: [{
8411
8445
  selector: 'mat-swipe-field',
8412
8446
  template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [appearance]=\"appearance\"\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",
8413
- providers: [DEFAULT_VALUE_ACCESSOR$5],
8447
+ providers: [DEFAULT_VALUE_ACCESSOR],
8414
8448
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
8415
8449
  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}"]
8416
8450
  },] }
@@ -8472,14 +8506,14 @@
8472
8506
  },] }
8473
8507
  ];
8474
8508
 
8475
- var noop$7 = function () { };
8476
- var ɵ0$8 = noop$7;
8509
+ var noop$1 = function () { };
8510
+ var ɵ0$4 = noop$1;
8477
8511
  var MatChipsField = /** @class */ (function () {
8478
8512
  function MatChipsField(cd, formGroupDir) {
8479
8513
  this.cd = cd;
8480
8514
  this.formGroupDir = formGroupDir;
8481
- this._onChangeCallback = noop$7;
8482
- this._onTouchedCallback = noop$7;
8515
+ this._onChangeCallback = noop$1;
8516
+ this._onTouchedCallback = noop$1;
8483
8517
  this.logPrefix = '[mat-chips] ';
8484
8518
  this.formControlName = null;
8485
8519
  this.required = false;
@@ -9450,7 +9484,7 @@
9450
9484
  };
9451
9485
  return ProgressBarService;
9452
9486
  }());
9453
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
9487
+ ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
9454
9488
  ProgressBarService.decorators = [
9455
9489
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
9456
9490
  ];
@@ -9497,7 +9531,7 @@
9497
9531
  };
9498
9532
  return AppGestureConfig;
9499
9533
  }(i1$6.HammerGestureConfig));
9500
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
9534
+ AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
9501
9535
  AppGestureConfig.decorators = [
9502
9536
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
9503
9537
  ];
@@ -9781,7 +9815,7 @@
9781
9815
  };
9782
9816
  return MatPaginatorI18n;
9783
9817
  }(paginator.MatPaginatorIntl));
9784
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
9818
+ MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
9785
9819
  MatPaginatorI18n.decorators = [
9786
9820
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
9787
9821
  ];
@@ -9873,17 +9907,17 @@
9873
9907
  return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
9874
9908
  }
9875
9909
 
9876
- var noop$8 = function () {
9910
+ var noop = function () {
9877
9911
  };
9878
- var ɵ0$9 = noop$8;
9912
+ var ɵ0$3 = noop;
9879
9913
  var AppFormField = /** @class */ (function () {
9880
9914
  function AppFormField(translate, cd, injector, formGroupDir) {
9881
9915
  this.translate = translate;
9882
9916
  this.cd = cd;
9883
9917
  this.injector = injector;
9884
9918
  this.formGroupDir = formGroupDir;
9885
- this._onChangeCallback = noop$8;
9886
- this._onTouchedCallback = noop$8;
9919
+ this._onChangeCallback = noop;
9920
+ this._onTouchedCallback = noop;
9887
9921
  this.readonly = false;
9888
9922
  this.compact = false;
9889
9923
  this.floatLabel = 'auto';
@@ -10441,7 +10475,7 @@
10441
10475
  };
10442
10476
  return AudioProvider;
10443
10477
  }(StartableService));
10444
- 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" });
10478
+ 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" });
10445
10479
  AudioProvider.decorators = [
10446
10480
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
10447
10481
  ];
@@ -10551,7 +10585,7 @@
10551
10585
  };
10552
10586
  return Hotkeys;
10553
10587
  }());
10554
- 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), i0.ɵɵinject(i1$5.PopoverController)); }, token: Hotkeys, providedIn: "root" });
10588
+ 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), i0__namespace.ɵɵinject(i1__namespace$4.PopoverController)); }, token: Hotkeys, providedIn: "root" });
10555
10589
  Hotkeys.decorators = [
10556
10590
  { type: i0.Injectable, args: [{
10557
10591
  providedIn: 'root'
@@ -10801,7 +10835,7 @@
10801
10835
  return ImagesUtils;
10802
10836
  }());
10803
10837
 
10804
- var uuidv4 = uuidv4Imported__namespace;
10838
+ var uuidv4$1 = uuidv4Imported__namespace;
10805
10839
  var FileService = /** @class */ (function () {
10806
10840
  function FileService(platform,
10807
10841
  //private transfer: FileTransfer,
@@ -10847,7 +10881,7 @@
10847
10881
  lastSlashIndex = fileUrl.lastIndexOf('/');
10848
10882
  if (lastSlashIndex === -1)
10849
10883
  throw new Error('Invalid URL: ' + fileUrl);
10850
- fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4();
10884
+ fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4$1();
10851
10885
  if (!(outputType === 'fileUrl' && this.canUseFileSystem)) return [3 /*break*/, 4];
10852
10886
  console.warn("WARN: [file] Downloading image {" + fileUrl + "} in local filesystem...");
10853
10887
  targetFilePath = this._imageDirectory + fileName;
@@ -10910,7 +10944,7 @@
10910
10944
  };
10911
10945
  return FileService;
10912
10946
  }());
10913
- 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" });
10947
+ 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" });
10914
10948
  FileService.decorators = [
10915
10949
  { type: i0.Injectable, args: [{
10916
10950
  providedIn: 'root',
@@ -11077,7 +11111,7 @@
11077
11111
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
11078
11112
 
11079
11113
  var scrypt = require('scrypt-async');
11080
- var sha256 = require('hash.js/lib/hash/sha/256');
11114
+ var sha256$1 = require('hash.js/lib/hash/sha/256');
11081
11115
  var sha512 = require('hash.js/lib/hash/sha/512');
11082
11116
  var nacl = {
11083
11117
  sign: tweetnacl.sign,
@@ -11183,7 +11217,7 @@
11183
11217
  * Hash (using SHA256) a message
11184
11218
  */
11185
11219
  CryptoService.prototype.sha256 = function (message) {
11186
- return sha256().update(message).digest('hex');
11220
+ return sha256$1().update(message).digest('hex');
11187
11221
  };
11188
11222
  /**
11189
11223
  * Hash (using SHA512) a message
@@ -11197,7 +11231,7 @@
11197
11231
  };
11198
11232
  return CryptoService;
11199
11233
  }());
11200
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
11234
+ CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
11201
11235
  CryptoService.decorators = [
11202
11236
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
11203
11237
  ];
@@ -12069,7 +12103,7 @@
12069
12103
  onRefresh: [{ type: i0.Input }]
12070
12104
  };
12071
12105
 
12072
- var moment$3 = momentImported__namespace;
12106
+ var moment$7 = momentImported__namespace;
12073
12107
  var SETTINGS_STORAGE_KEY = 'settings';
12074
12108
  var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
12075
12109
  // fixme: this constant points to static environment
@@ -12137,7 +12171,7 @@
12137
12171
  var _a;
12138
12172
  if (isNil((_a = this._data) === null || _a === void 0 ? void 0 : _a.mobile)) {
12139
12173
  console.warn("[settings] Accessing to property 'mobile' BEFORE service started! Please use ready()");
12140
- return isMobile(window);
12174
+ this._data.mobile = isMobile(window);
12141
12175
  }
12142
12176
  return this._data.mobile;
12143
12177
  },
@@ -12371,11 +12405,11 @@
12371
12405
  if (!feature) {
12372
12406
  feature = {
12373
12407
  name: featureName.toLowerCase(),
12374
- lastSyncDate: moment$3().toISOString()
12408
+ lastSyncDate: moment$7().toISOString()
12375
12409
  };
12376
12410
  }
12377
12411
  else {
12378
- feature.lastSyncDate = moment$3().toISOString();
12412
+ feature.lastSyncDate = moment$7().toISOString();
12379
12413
  }
12380
12414
  this.saveOfflineFeature(feature);
12381
12415
  };
@@ -12569,7 +12603,7 @@
12569
12603
  if (!page || !page.title || !page.path)
12570
12604
  throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
12571
12605
  // Set time
12572
- page.time = page.time || moment$3();
12606
+ page.time = page.time || moment$7();
12573
12607
  // Clean the title (remove <small> tags)
12574
12608
  if (!opts || opts.removeTitleSmallTag !== false) {
12575
12609
  var tagIndex = page.title.indexOf('</small>');
@@ -12586,7 +12620,7 @@
12586
12620
  };
12587
12621
  return LocalSettingsService;
12588
12622
  }(StartableService));
12589
- 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" });
12623
+ 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" });
12590
12624
  LocalSettingsService.decorators = [
12591
12625
  { type: i0.Injectable, args: [{
12592
12626
  providedIn: 'root'
@@ -13467,7 +13501,7 @@
13467
13501
  };
13468
13502
  return NetworkService;
13469
13503
  }(StartableService));
13470
- 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" });
13504
+ 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" });
13471
13505
  NetworkService.decorators = [
13472
13506
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
13473
13507
  ];
@@ -14691,7 +14725,7 @@
14691
14725
  }(StartableService));
14692
14726
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
14693
14727
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
14694
- 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" });
14728
+ 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" });
14695
14729
  EntitiesStorage.decorators = [
14696
14730
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
14697
14731
  ];
@@ -14847,10 +14881,10 @@
14847
14881
  function referentialsToString(values, properties, separator) {
14848
14882
  return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
14849
14883
  }
14850
- var ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
14884
+ var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
14851
14885
  var StatusList = Object.freeze([
14852
14886
  {
14853
- id: ɵ0$a,
14887
+ id: ɵ0$2,
14854
14888
  icon: 'checkmark',
14855
14889
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
14856
14890
  },
@@ -15153,7 +15187,7 @@
15153
15187
  (data.lastName || '')) || '';
15154
15188
  }
15155
15189
 
15156
- var uuidv4$1 = uuidv4Imported__namespace;
15190
+ var uuidv4 = uuidv4Imported__namespace;
15157
15191
  var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
15158
15192
  var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
15159
15193
  /**
@@ -15197,7 +15231,7 @@
15197
15231
  // Skip if not tracked
15198
15232
  if (!context || !context.tracked)
15199
15233
  return forward(operation);
15200
- var id = context.serializationKey || uuidv4$1();
15234
+ var id = context.serializationKey || uuidv4();
15201
15235
  console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
15202
15236
  // Clean context, before calling JSON.stringify (remove unused attributes)
15203
15237
  var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -15830,14 +15864,14 @@
15830
15864
  mutationLinks = void 0;
15831
15865
  // Add queue to store tracked queries, when offline
15832
15866
  if (enableTrackMutationQueries) {
15833
- serializingLink = new SerializingLink__default['default']();
15867
+ serializingLink = new SerializingLink__default["default"]();
15834
15868
  trackerLink = createTrackerLink({
15835
15869
  storage: storage,
15836
15870
  onNetworkStatusChange: this._networkStatusChanged$,
15837
15871
  debounce: 1000,
15838
15872
  debug: true
15839
15873
  });
15840
- queueLink_1 = new QueueLink__default['default']();
15874
+ queueLink_1 = new QueueLink__default["default"]();
15841
15875
  this.registerSubscription(this._networkStatusChanged$
15842
15876
  .subscribe(function (type) {
15843
15877
  // Network is offline: start buffering into queue
@@ -15852,7 +15886,7 @@
15852
15886
  }
15853
15887
  }));
15854
15888
  mutationLinks = [
15855
- loggerLink__default['default'],
15889
+ loggerLink__default["default"],
15856
15890
  queueLink_1,
15857
15891
  trackerLink,
15858
15892
  queueLink_1,
@@ -16035,7 +16069,7 @@
16035
16069
  };
16036
16070
  return GraphqlService;
16037
16071
  }(StartableService));
16038
- 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" });
16072
+ 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" });
16039
16073
  GraphqlService.decorators = [
16040
16074
  { type: i0.Injectable, args: [{
16041
16075
  providedIn: 'root'
@@ -16052,7 +16086,7 @@
16052
16086
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
16053
16087
  ]; };
16054
16088
 
16055
- var sha256$1 = require('hash.js/lib/hash/sha/256');
16089
+ var sha256 = require('hash.js/lib/hash/sha/256');
16056
16090
  var BaseGraphqlServiceOptions = /** @class */ (function () {
16057
16091
  function BaseGraphqlServiceOptions() {
16058
16092
  }
@@ -16222,8 +16256,8 @@
16222
16256
  };
16223
16257
  /* -- protected methods -- */
16224
16258
  BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
16225
- var queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
16226
- var variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
16259
+ var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
16260
+ var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
16227
16261
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
16228
16262
  };
16229
16263
  BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
@@ -16296,19 +16330,19 @@
16296
16330
  /* ------------------------------------
16297
16331
  * GraphQL queries
16298
16332
  * ------------------------------------*/
16299
- var Fragments = {
16300
- account: core.gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
16301
- settings: core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
16333
+ var Fragments$1 = {
16334
+ account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
16335
+ settings: core.gql(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
16302
16336
  };
16303
16337
  // Load account query
16304
- var LoadQuery = core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments.account, Fragments.settings);
16338
+ var LoadQuery$1 = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments$1.account, Fragments$1.settings);
16305
16339
  // Check email query
16306
- var IsEmailExistsQuery = core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
16340
+ var IsEmailExistsQuery = core.gql(templateObject_4$2 || (templateObject_4$2 = __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"])));
16307
16341
  // Save (create or update) account mutation
16308
16342
  var AccountMutations = {
16309
- save: core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
16310
- create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
16311
- saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments.settings)
16343
+ save: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
16344
+ create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
16345
+ saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments$1.settings)
16312
16346
  };
16313
16347
  // Sent confirmation email
16314
16348
  var SendConfirmEmailMutation = core.gql(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"], ["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"])));
@@ -16929,7 +16963,7 @@
16929
16963
  _b.label = 3;
16930
16964
  case 3: return [3 /*break*/, 6];
16931
16965
  case 4: return [4 /*yield*/, this.graphql.query({
16932
- query: LoadQuery,
16966
+ query: LoadQuery$1,
16933
16967
  error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
16934
16968
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
16935
16969
  })];
@@ -17575,7 +17609,7 @@
17575
17609
  };
17576
17610
  return AccountService;
17577
17611
  }(BaseGraphqlService));
17578
- 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(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
17612
+ 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(i1__namespace$1.TranslateService, 8), i0__namespace.ɵɵinject(i1__namespace$4.ToastController, 8), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
17579
17613
  AccountService.decorators = [
17580
17614
  { type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
17581
17615
  ];
@@ -17590,7 +17624,7 @@
17590
17624
  { type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
17591
17625
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
17592
17626
  ]; };
17593
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
17627
+ var templateObject_1$4, templateObject_2$2, templateObject_3$2, templateObject_4$2, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
17594
17628
 
17595
17629
  var Software_1, Configuration_1;
17596
17630
  // @dynamic
@@ -17848,12 +17882,12 @@
17848
17882
  /* ------------------------------------
17849
17883
  * GraphQL queries
17850
17884
  * ------------------------------------*/
17851
- var Fragments$1 = {
17852
- 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 "])))
17885
+ var Fragments = {
17886
+ 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 "])))
17853
17887
  };
17854
- 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);
17888
+ var LoadQuery = 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.config);
17855
17889
  // Save (create or update) account mutation
17856
- var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments$1.config);
17890
+ var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments.config);
17857
17891
  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"])));
17858
17892
  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"])));
17859
17893
  var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
@@ -17914,7 +17948,7 @@
17914
17948
  case 0:
17915
17949
  now = Date.now();
17916
17950
  console.debug('[config] Loading Pod configuration...');
17917
- query = opts && opts.query || LoadQuery$1;
17951
+ query = opts && opts.query || LoadQuery;
17918
17952
  variables = opts && opts.variables || undefined;
17919
17953
  return [4 /*yield*/, this.graphql.query({
17920
17954
  query: query,
@@ -18220,7 +18254,7 @@
18220
18254
  };
18221
18255
  return ConfigService;
18222
18256
  }(BaseGraphqlService));
18223
- ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
18257
+ 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(AccountService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
18224
18258
  ConfigService.decorators = [
18225
18259
  { type: i0.Injectable, args: [{
18226
18260
  providedIn: 'root',
@@ -18239,7 +18273,7 @@
18239
18273
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
18240
18274
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
18241
18275
  ]; };
18242
- var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
18276
+ var templateObject_1$3, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
18243
18277
 
18244
18278
  var UploadFilePopover = /** @class */ (function () {
18245
18279
  function UploadFilePopover(popoverController, translate, cd) {
@@ -18517,7 +18551,7 @@
18517
18551
  return UriUtils;
18518
18552
  }());
18519
18553
 
18520
- var moment$4 = momentImported__namespace;
18554
+ var moment$6 = momentImported__namespace;
18521
18555
  var AndroidOsEnvironment = Object.freeze({
18522
18556
  DIRECTORY_DOWNLOADS: 'Download',
18523
18557
  DIRECTORY_DOWNLOADS_OLD: 'Downloads',
@@ -18554,6 +18588,8 @@
18554
18588
  PlatformService.prototype.is = function (platformName) {
18555
18589
  switch (platformName) {
18556
18590
  case 'mobile':
18591
+ // Exclude Windows touch screens - see sumaris-app issues #323 and #346
18592
+ return isMobile(window);
18557
18593
  case 'mobileweb':
18558
18594
  // Exclude Windows touch screens - see sumaris-app issues #323 and #346
18559
18595
  return this.platform.is(platformName) && !isWindows(window);
@@ -18815,16 +18851,16 @@
18815
18851
  }
18816
18852
  // config moment lib
18817
18853
  try {
18818
- moment$4.locale(event.lang);
18854
+ moment$6.locale(event.lang);
18819
18855
  console.debug('[platform] Use locale {' + event.lang + '}');
18820
18856
  }
18821
18857
  // If error, fallback to en
18822
18858
  catch (err) {
18823
- moment$4.locale('en');
18859
+ moment$6.locale('en');
18824
18860
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
18825
18861
  }
18826
18862
  // Config date adapter
18827
- _this.dateAdapter.setLocale(moment$4.locale());
18863
+ _this.dateAdapter.setLocale(moment$6.locale());
18828
18864
  }
18829
18865
  });
18830
18866
  this.settings.onChange.subscribe(function (data) {
@@ -19076,7 +19112,7 @@
19076
19112
  };
19077
19113
  return PlatformService;
19078
19114
  }(StartableService));
19079
- PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
19115
+ 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" });
19080
19116
  PlatformService.decorators = [
19081
19117
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
19082
19118
  ];
@@ -19168,7 +19204,7 @@
19168
19204
  };
19169
19205
  return MatStepperI18n;
19170
19206
  }(stepper.MatStepperIntl));
19171
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
19207
+ MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
19172
19208
  MatStepperI18n.decorators = [
19173
19209
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
19174
19210
  ];
@@ -20839,43 +20875,44 @@
20839
20875
  }
20840
20876
  this.dirty = false;
20841
20877
  };
20842
- InMemoryEntitiesService.prototype.watchAll = function (offset, size, sortBy, sortDirection, filterData, options) {
20843
- var _this = this;
20844
- offset = offset >= 0 ? offset : 0;
20845
- size = size >= 0 ? size : -1;
20846
- if (!this.data) {
20847
- console.warn('[memory-data-service] Waiting value to be set...');
20848
- }
20849
- return this._onChange
20850
- .pipe(operators.filter(isNotNil), operators.mergeMap(function (_) { return waitFor(function () { return !_this._saving; }); }), operators.mergeMap(function (_) { return __awaiter(_this, void 0, void 0, function () {
20851
- var excludedDataByFilter, excludedDataByPagination, data, promiseOrData, _b, total;
20852
- return __generator(this, function (_c) {
20853
- switch (_c.label) {
20878
+ InMemoryEntitiesService.prototype.loadAll = function (offset, size, sortBy, sortDirection, filter, opts) {
20879
+ return __awaiter(this, void 0, void 0, function () {
20880
+ var excludedDataByFilter, excludedDataByPagination, data, total, res, nextOffset_1;
20881
+ var _this = this;
20882
+ return __generator(this, function (_b) {
20883
+ switch (_b.label) {
20854
20884
  case 0:
20855
- excludedDataByFilter = [];
20856
- _c.label = 1;
20885
+ offset = offset >= 0 ? offset : 0;
20886
+ size = size >= 0 ? size : -1;
20887
+ if (!!this.data) return [3 /*break*/, 2];
20888
+ console.warn('[memory-data-service] Waiting value to be set...');
20889
+ return [4 /*yield*/, firstNotNilPromise(this._onChange)];
20857
20890
  case 1:
20858
- _c.trys.push([1, , 6, 7]);
20859
- if (isEmptyArray(this.data)) {
20860
- return [2 /*return*/, { data: [], total: 0 }];
20861
- }
20862
- data = this._sortFn(this.data || [], sortBy, sortDirection);
20863
- if (!this._onLoad) return [3 /*break*/, 5];
20864
- promiseOrData = this._onLoad(data);
20865
- if (!((promiseOrData instanceof Promise))) return [3 /*break*/, 3];
20866
- return [4 /*yield*/, promiseOrData];
20891
+ _b.sent();
20892
+ _b.label = 2;
20867
20893
  case 2:
20868
- _b = _c.sent();
20869
- return [3 /*break*/, 4];
20894
+ if (!this._saving) return [3 /*break*/, 4];
20895
+ return [4 /*yield*/, waitFor(function () { return !_this._saving; })];
20870
20896
  case 3:
20871
- _b = promiseOrData;
20872
- _c.label = 4;
20897
+ _b.sent();
20898
+ _b.label = 4;
20873
20899
  case 4:
20874
- data = _b;
20875
- _c.label = 5;
20900
+ excludedDataByFilter = [];
20901
+ _b.label = 5;
20876
20902
  case 5:
20903
+ _b.trys.push([5, , 8, 9]);
20904
+ if (!this.data.length) {
20905
+ return [2 /*return*/, { data: [], total: 0 }];
20906
+ }
20907
+ data = this._sortFn(this.data || [], sortBy, sortDirection);
20908
+ if (!this._onLoad) return [3 /*break*/, 7];
20909
+ return [4 /*yield*/, this._onLoad(data)];
20910
+ case 6:
20911
+ data = _b.sent();
20912
+ _b.label = 7;
20913
+ case 7:
20877
20914
  // Apply filter (will update hiddenData)
20878
- data = this.filter(data, filterData, excludedDataByFilter);
20915
+ data = this.filter(data, filter, excludedDataByFilter);
20879
20916
  total = data.length;
20880
20917
  // If page size=0 (e.g. only need total)
20881
20918
  if (size === 0) {
@@ -20916,15 +20953,40 @@
20916
20953
  if (data === this.data) {
20917
20954
  data = data.slice();
20918
20955
  }
20919
- return [2 /*return*/, { data: data, total: total }];
20920
- case 6:
20956
+ res = { data: data, total: total };
20957
+ nextOffset_1 = (offset || 0) + size;
20958
+ if (nextOffset_1 < total) {
20959
+ res.fetchMore = function () { return _this.loadAll(nextOffset_1, size, sortBy, sortDirection, filter, opts)
20960
+ .then(function (res) {
20961
+ var _a;
20962
+ // Update hidden data (remove new fetched item)
20963
+ if ((_a = res.data) === null || _a === void 0 ? void 0 : _a.length) {
20964
+ _this._hiddenData = _this._hiddenData.filter(function (item) { return !res.data.includes(item); });
20965
+ }
20966
+ return res;
20967
+ }); };
20968
+ }
20969
+ return [2 /*return*/, res];
20970
+ case 8:
20921
20971
  // Remember hidden data
20922
- this._hiddenData = !excludedDataByPagination ? excludedDataByFilter : excludedDataByFilter.concat.apply(excludedDataByFilter, __spread(excludedDataByPagination));
20972
+ if (offset === 0) {
20973
+ this._hiddenData = !excludedDataByPagination ? excludedDataByFilter : excludedDataByFilter.concat.apply(excludedDataByFilter, __spread(excludedDataByPagination));
20974
+ }
20923
20975
  return [7 /*endfinally*/];
20924
- case 7: return [2 /*return*/];
20976
+ case 9: return [2 /*return*/];
20925
20977
  }
20926
20978
  });
20927
- }); }));
20979
+ });
20980
+ };
20981
+ InMemoryEntitiesService.prototype.watchAll = function (offset, size, sortBy, sortDirection, filterData, options) {
20982
+ var _this = this;
20983
+ offset = offset >= 0 ? offset : 0;
20984
+ size = size >= 0 ? size : -1;
20985
+ if (!this.data) {
20986
+ console.warn('[memory-data-service] Waiting value to be set...');
20987
+ }
20988
+ return this._onChange
20989
+ .pipe(operators.filter(isNotNil), operators.mergeMap(function (_) { return _this.loadAll(offset, size, sortBy, sortDirection, filterData, options); }));
20928
20990
  };
20929
20991
  InMemoryEntitiesService.prototype.saveAll = function (data, options) {
20930
20992
  return __awaiter(this, void 0, void 0, function () {
@@ -21432,7 +21494,7 @@
21432
21494
  return 1;
21433
21495
  }
21434
21496
  }
21435
- var ɵ0$b = function (defaultStateSize) { return [
21497
+ var ɵ0$1 = function (defaultStateSize) { return [
21436
21498
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
21437
21499
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
21438
21500
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -21440,7 +21502,7 @@
21440
21502
  var SCALE_OPTIONS_DEFAULT = {
21441
21503
  startColor: rgbArrayMap.red,
21442
21504
  startStates: [0, 2, 3],
21443
- startStepsFn: ɵ0$b
21505
+ startStepsFn: ɵ0$1
21444
21506
  };
21445
21507
  /**
21446
21508
  * Internal function, that create a colors scale, using iteration
@@ -22397,7 +22459,7 @@
22397
22459
  };
22398
22460
  return UserSettingsValidatorService;
22399
22461
  }(AppValidatorService));
22400
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
22462
+ UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
22401
22463
  UserSettingsValidatorService.decorators = [
22402
22464
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
22403
22465
  ];
@@ -22445,7 +22507,7 @@
22445
22507
  };
22446
22508
  return AccountValidatorService;
22447
22509
  }(AppValidatorService));
22448
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
22510
+ 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" });
22449
22511
  AccountValidatorService.decorators = [
22450
22512
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
22451
22513
  ];
@@ -22792,7 +22854,7 @@
22792
22854
  };
22793
22855
  return MenuService;
22794
22856
  }());
22795
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
22857
+ MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
22796
22858
  MenuService.decorators = [
22797
22859
  { type: i0.Injectable, args: [{
22798
22860
  providedIn: 'root'
@@ -23158,7 +23220,7 @@
23158
23220
  };
23159
23221
  return LocalSettingsValidatorService;
23160
23222
  }(AppValidatorService));
23161
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
23223
+ 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" });
23162
23224
  LocalSettingsValidatorService.decorators = [
23163
23225
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
23164
23226
  ];
@@ -23938,7 +24000,7 @@
23938
24000
  };
23939
24001
  return IsOnFieldModePipe;
23940
24002
  }());
23941
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
24003
+ IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
23942
24004
  IsOnFieldModePipe.decorators = [
23943
24005
  { type: i0.Pipe, args: [{
23944
24006
  name: 'isOnField'
@@ -23953,7 +24015,7 @@
23953
24015
  };
23954
24016
  return IsNotOnFieldModePipe;
23955
24017
  }());
23956
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
24018
+ IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
23957
24019
  IsNotOnFieldModePipe.decorators = [
23958
24020
  { type: i0.Pipe, args: [{
23959
24021
  name: 'isNotOnField'
@@ -23971,7 +24033,7 @@
23971
24033
  };
23972
24034
  return PersonToStringPipe;
23973
24035
  }());
23974
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
24036
+ PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
23975
24037
  PersonToStringPipe.decorators = [
23976
24038
  { type: i0.Pipe, args: [{
23977
24039
  name: 'personToString'
@@ -24399,7 +24461,7 @@
24399
24461
  };
24400
24462
  return IsLoginAccountPipe;
24401
24463
  }());
24402
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
24464
+ IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
24403
24465
  IsLoginAccountPipe.decorators = [
24404
24466
  { type: i0.Pipe, args: [{
24405
24467
  name: 'isLogin'
@@ -24414,7 +24476,7 @@
24414
24476
  };
24415
24477
  return AccountToStringPipe;
24416
24478
  }());
24417
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
24479
+ AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
24418
24480
  AccountToStringPipe.decorators = [
24419
24481
  { type: i0.Pipe, args: [{
24420
24482
  name: 'accountToString'
@@ -24432,7 +24494,7 @@
24432
24494
  };
24433
24495
  return DepartmentToStringPipe;
24434
24496
  }());
24435
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
24497
+ DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
24436
24498
  DepartmentToStringPipe.decorators = [
24437
24499
  { type: i0.Pipe, args: [{
24438
24500
  name: 'departmentToString'
@@ -25198,7 +25260,7 @@
25198
25260
  };
25199
25261
  return AuthGuardService;
25200
25262
  }());
25201
- 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" });
25263
+ 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" });
25202
25264
  AuthGuardService.decorators = [
25203
25265
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
25204
25266
  ];
@@ -25749,11 +25811,6 @@
25749
25811
  return AppTableUtils;
25750
25812
  }());
25751
25813
 
25752
- var AppTableDataSourceOptions = /** @class */ (function () {
25753
- function AppTableDataSourceOptions() {
25754
- }
25755
- return AppTableDataSourceOptions;
25756
- }());
25757
25814
  // @dynamic
25758
25815
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
25759
25816
  var EntitiesTableDataSource = /** @class */ (function (_super_1) {
@@ -25767,36 +25824,24 @@
25767
25824
  * @param validatorService Service that create instances of the FormGroup used to validate row fields.
25768
25825
  * @param config Additional configuration for table.
25769
25826
  */
25770
- function EntitiesTableDataSource(dataType, dataService, validatorService, config) {
25771
- var _this = _super_1.call(this, [], dataType, validatorService, config) || this;
25827
+ function EntitiesTableDataSource(dataType, dataService, validatorService, options) {
25828
+ var _this = _super_1.call(this, [], dataType, validatorService, Object.assign({ dataServiceOptions: {}, debug: (options === null || options === void 0 ? void 0 : options.suppressErrors) === false, keepOriginalDataAfterConfirm: false }, options)) || this;
25772
25829
  _this.dataService = dataService;
25773
25830
  _this._creating = false;
25774
25831
  _this._saving = false;
25775
- _this._useValidator = false;
25776
25832
  _this._stopWatching$ = new rxjs.Subject();
25777
25833
  _this._editingRowCount = 0;
25778
25834
  _this._fetchMoreFn = null;
25779
25835
  _this.loadingSubject = new rxjs.BehaviorSubject(undefined);
25780
- _this._options = Object.assign({ dataServiceOptions: {}, debug: config && config.suppressErrors === false, keepOriginalDataAfterConfirm: false }, config);
25781
- _this._useValidator = isNotNil(validatorService);
25782
- _this._logTypeName = removeEnd((new dataType()).__typename || 'UnknownVO', 'VO');
25783
- // For DEV ONLY
25784
- _this._debug = _this._options.debug === true;
25836
+ _this._entityName = removeEnd((new dataType()).__typename || 'UnknownVO', 'VO');
25785
25837
  return _this;
25786
25838
  }
25787
25839
  Object.defineProperty(EntitiesTableDataSource.prototype, "serviceOptions", {
25788
25840
  get: function () {
25789
- return this._options.dataServiceOptions;
25841
+ return this.config.dataServiceOptions;
25790
25842
  },
25791
25843
  set: function (value) {
25792
- this._options.dataServiceOptions = value;
25793
- },
25794
- enumerable: false,
25795
- configurable: true
25796
- });
25797
- Object.defineProperty(EntitiesTableDataSource.prototype, "options", {
25798
- get: function () {
25799
- return this._options;
25844
+ this.config.dataServiceOptions = value;
25800
25845
  },
25801
25846
  enumerable: false,
25802
25847
  configurable: true
@@ -25831,10 +25876,10 @@
25831
25876
  return this.dataService.watchAll(offset, size, sortBy, sortDirection, filter, this.serviceOptions)
25832
25877
  .pipe(operators.catchError(function (err) { return _this.handleError(err, 'ERROR.LOAD_DATA_ERROR'); }), operators.map(function (res) {
25833
25878
  if (_this._saving) {
25834
- console.info("[table-datasource] Received " + _this._logTypeName + " data (from service), but still saving: skip");
25879
+ console.info("[table-datasource] Received " + _this._entityName + " data (from service), but still saving: skip");
25835
25880
  }
25836
25881
  else if (_this._editingRowCount > 0) {
25837
- console.warn("[table-datasource] Received " + _this._logTypeName + " data, while " + _this._editingRowCount + " rows still editing: skip; Please check save() implementation in the table!");
25882
+ console.warn("[table-datasource] Received " + _this._entityName + " data, while " + _this._editingRowCount + " rows still editing: skip; Please check save() implementation in the table!");
25838
25883
  }
25839
25884
  else {
25840
25885
  _this.updateDatasource((res.data || []));
@@ -25847,12 +25892,24 @@
25847
25892
  // ⚠ Notice: Don't put any operator after takeUntil to avoid potential subscription leaks
25848
25893
  );
25849
25894
  };
25895
+ EntitiesTableDataSource.prototype.updateDatasourceFromRows = function (rows) {
25896
+ var _a;
25897
+ // Avoid to update dataSourceSubject, when not need
25898
+ if ((_a = this.datasourceSubject.observers) === null || _a === void 0 ? void 0 : _a.length) {
25899
+ if (!this.config.suppressErrors)
25900
+ console.warn('[table-datasource] Update datasource subject. Please prefer using \'rowsSubject\' instead of \'datasourceSubject\'');
25901
+ _super_1.prototype.updateDatasourceFromRows.call(this, rows);
25902
+ }
25903
+ else {
25904
+ console.debug('[table-datasource] Skipping datasourceSubject update (not used yet).');
25905
+ }
25906
+ };
25850
25907
  EntitiesTableDataSource.prototype.save = function () {
25851
25908
  return __awaiter(this, void 0, void 0, function () {
25852
25909
  var onlyDirtyRows, rows, invalidRows, data, dataToSave_1, error_1;
25853
25910
  var _this = this;
25854
- return __generator(this, function (_a) {
25855
- switch (_a.label) {
25911
+ return __generator(this, function (_b) {
25912
+ switch (_b.label) {
25856
25913
  case 0:
25857
25914
  if (toBoolean(this.serviceOptions.readOnly, false)) {
25858
25915
  console.error('[table-datasource] Enable to save, because serviceOptions.readOnly=true');
@@ -25860,32 +25917,30 @@
25860
25917
  }
25861
25918
  // Saving twice (should never occur)
25862
25919
  if (this._saving) {
25863
- console.warn("[table-datasource] Trying to save " + this._logTypeName + " rows twice. Skip");
25920
+ console.warn("[table-datasource] Trying to save " + this._entityName + " rows twice. Skip");
25864
25921
  return [2 /*return*/, false];
25865
25922
  }
25866
25923
  this._saving = true;
25867
25924
  this.markAsLoading();
25868
25925
  onlyDirtyRows = toBoolean(this.serviceOptions.saveOnlyDirtyRows, false);
25869
- _a.label = 1;
25926
+ _b.label = 1;
25870
25927
  case 1:
25871
- _a.trys.push([1, 4, 5, 6]);
25872
- if (this._debug)
25873
- console.debug("[table-datasource] Saving " + this._logTypeName + " rows... {onlyDirty: " + onlyDirtyRows + "}");
25874
- return [4 /*yield*/, this.getRows()];
25875
- case 2:
25876
- rows = _a.sent();
25928
+ _b.trys.push([1, 3, 4, 5]);
25929
+ if (this.config.debug)
25930
+ console.debug("[table-datasource] Saving " + this._entityName + " rows... {onlyDirty: " + onlyDirtyRows + "}");
25931
+ rows = this.getRows();
25877
25932
  invalidRows = rows.filter(function (row) { return row.editing && !row.confirmEditCreate(); });
25878
25933
  // Cannot finish some rows: error
25879
25934
  if (invalidRows.length) {
25880
25935
  // log errors
25881
- if (this._debug)
25882
- invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
25936
+ if (this.config.debug)
25937
+ invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._entityName + " row #" + row.id); });
25883
25938
  // Stop with an error
25884
25939
  throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
25885
25940
  }
25886
25941
  this._editingRowCount = 0;
25887
25942
  data = void 0;
25888
- if (this._useValidator) {
25943
+ if (this.validatorService) {
25889
25944
  dataToSave_1 = [];
25890
25945
  data = rows.map(function (row) {
25891
25946
  var currentData = new _this.dataConstructor();
@@ -25906,46 +25961,42 @@
25906
25961
  }
25907
25962
  // If no data to save: exit
25908
25963
  if (onlyDirtyRows && !dataToSave_1.length) {
25909
- if (this._debug)
25910
- console.debug("[table-datasource] No " + this._logTypeName + " data to save. Skip");
25964
+ if (this.config.debug)
25965
+ console.debug("[table-datasource] No " + this._entityName + " data to save. Skip");
25911
25966
  return [2 /*return*/, false];
25912
25967
  }
25913
- if (this._debug)
25914
- console.debug("[table-datasource] Asking service to save this " + this._logTypeName + " data:", dataToSave_1);
25968
+ if (this.config.debug)
25969
+ console.debug("[table-datasource] Asking service to save this " + this._entityName + " data:", dataToSave_1);
25915
25970
  return [4 /*yield*/, this.dataService.saveAll(dataToSave_1, this.serviceOptions)];
25916
- case 3:
25917
- _a.sent();
25918
- if (this._debug)
25919
- console.debug("[table-datasource] Saving " + this._logTypeName + " data [OK]");
25971
+ case 2:
25972
+ _b.sent();
25973
+ if (this.config.debug)
25974
+ console.debug("[table-datasource] Saving " + this._entityName + " data [OK]");
25920
25975
  // LP 23/03/2021: update datasource is necessary but can be changed to a refetch() on QueryRef (must be created and registered in GraphqlService.watchQuery)
25921
25976
  this.updateDatasource(data, { emitEvent: false });
25922
25977
  return [2 /*return*/, true];
25923
- case 4:
25924
- error_1 = _a.sent();
25925
- if (this._debug)
25978
+ case 3:
25979
+ error_1 = _b.sent();
25980
+ if (this.config.debug)
25926
25981
  console.error('[table-datasource] Error while saving: ' + error_1 && error_1.message || error_1);
25927
25982
  throw error_1;
25928
- case 5:
25983
+ case 4:
25929
25984
  this._saving = false;
25930
25985
  this.markAsLoaded();
25931
25986
  return [7 /*endfinally*/];
25932
- case 6: return [2 /*return*/];
25987
+ case 5: return [2 /*return*/];
25933
25988
  }
25934
25989
  });
25935
25990
  });
25936
25991
  };
25937
25992
  EntitiesTableDataSource.prototype.updateDatasource = function (data, opts) {
25938
- if (this._debug)
25993
+ if (this.config.debug)
25939
25994
  console.debug("[table-datasource] Updating datasource with data:", data);
25940
25995
  _super_1.prototype.updateDatasource.call(this, data, opts);
25941
25996
  if (!opts || opts.emitEvent !== false) {
25942
25997
  this.markAsLoaded();
25943
25998
  }
25944
25999
  };
25945
- // Overwrite default signature
25946
- EntitiesTableDataSource.prototype.createNew = function (insertAt) {
25947
- this.asyncCreateNew(insertAt);
25948
- };
25949
26000
  EntitiesTableDataSource.prototype.connect = function (collectionViewer) {
25950
26001
  // DEBUG console.debug("[entities-datasource] connect");
25951
26002
  return _super_1.prototype.connect.call(this, collectionViewer);
@@ -25967,38 +26018,37 @@
25967
26018
  console.warn('[table-datasource] Row still has {editing: true} after confirmCreate()! Force editing to false');
25968
26019
  row.validator.disable({ onlySelf: true, emitEvent: false });
25969
26020
  }
26021
+ this._editingRowCount--;
25970
26022
  return true;
25971
26023
  };
25972
26024
  EntitiesTableDataSource.prototype.confirmEdit = function (row) {
25973
26025
  if (!_super_1.prototype.confirmEdit.call(this, row))
25974
26026
  return false;
25975
26027
  if (row.editing && row.validator) {
25976
- console.warn('[table-datasource] Row still has {editing: true} after confirmCreate()! Force editing to false');
26028
+ console.warn('[table-datasource] Row still has {editing: true} after confirmEdit()! Force editing to false');
25977
26029
  row.validator.disable({ onlySelf: true, emitEvent: false });
25978
26030
  }
26031
+ this._editingRowCount--;
25979
26032
  return true;
25980
26033
  };
25981
26034
  EntitiesTableDataSource.prototype.startEdit = function (row) {
25982
- if (this._debug)
25983
- console.debug('[table-datasource] Start to edit row', row);
25984
- row.startEdit();
26035
+ if (!_super_1.prototype.startEdit.call(this, row))
26036
+ return false;
26037
+ if (!row.editing && row.validator) {
26038
+ console.warn('[table-datasource] Row still has {editing: false} after startEdit()! Force editing');
26039
+ row.validator.enable({ onlySelf: true, emitEvent: false });
26040
+ }
25985
26041
  this._editingRowCount++;
25986
26042
  };
25987
- EntitiesTableDataSource.prototype.cancelOrDelete = function (row) {
25988
- if (this._debug)
25989
- console.debug('[table-datasource] Cancelling or deleting row', row);
25990
- row.cancelOrDelete();
25991
- this._editingRowCount--;
25992
- };
25993
26043
  EntitiesTableDataSource.prototype.handleError = function (error, message) {
25994
26044
  var errorMsg = error && error.message || error;
25995
- console.error("[table-datasource] Service " + this._logTypeName + " sent error: " + errorMsg, error);
26045
+ console.error("[table-datasource] Service " + this._entityName + " sent error: " + errorMsg, error);
25996
26046
  this.markAsLoaded();
25997
26047
  throw new Error(message || errorMsg);
25998
26048
  };
25999
- EntitiesTableDataSource.prototype.handleErrorPromise = function (error) {
26049
+ EntitiesTableDataSource.prototype.handleServiceError = function (error) {
26000
26050
  var errorMsg = error && error.message || error;
26001
- console.error("[table-datasource] Service " + this._logTypeName + " sent error: " + errorMsg, error);
26051
+ console.error("[table-datasource] Service " + this._entityName + " sent error: " + errorMsg, error);
26002
26052
  this.markAsLoaded();
26003
26053
  throw error;
26004
26054
  };
@@ -26013,9 +26063,11 @@
26013
26063
  console.error("[table-datasource] Row to delete with id=" + id + " not found");
26014
26064
  return;
26015
26065
  }
26066
+ if (row.editing)
26067
+ this._editingRowCount--;
26016
26068
  this.loadingSubject.next(true);
26017
26069
  this.dataService.deleteAll([row.currentData], this.serviceOptions)
26018
- .catch(function (err) { return _this.handleErrorPromise(err); })
26070
+ .catch(function (err) { return _this.handleServiceError(err); })
26019
26071
  .then(function () {
26020
26072
  setTimeout(function () {
26021
26073
  // make sure row has been deleted (because GrapQHl cache remove can failed)
@@ -26027,112 +26079,128 @@
26027
26079
  });
26028
26080
  };
26029
26081
  EntitiesTableDataSource.prototype.deleteAll = function (rows) {
26030
- var _this = this;
26031
- this.markAsLoading();
26032
- var data = rows.map(function (r) { return r.currentData; });
26033
- var rowsById = rows.reduce(function (res, row) {
26034
- res[row.id] = row;
26035
- return res;
26036
- }, {});
26037
- var self = this;
26038
- var selfDelete = _super_1.prototype.delete;
26039
- return this.dataService.deleteAll(data, this.serviceOptions)
26040
- .catch(function (err) { return _this.handleErrorPromise(err); })
26041
- .then(function () {
26042
- // Workaround, to be sure all rows has been deleted
26043
- // Sometimes, the service miss deletion, or GrapQHl cache remove failed
26044
- var rowNotDeleted = Object.getOwnPropertyNames(rowsById).reduce(function (res, id) {
26045
- var row = rowsById[id];
26046
- var present = self.getRow(+id) === row;
26047
- return present ? res.concat(row) : res;
26048
- }, []).sort(function (a, b) { return a.id > b.id ? -1 : 1; });
26049
- // Apply missing deletion
26050
- if (isNotEmptyArray(rowNotDeleted)) {
26051
- console.warn("[table-datasource] Force deletion of " + rowNotDeleted.length + " rows (Is service applying deletion to observable ?)");
26052
- rowNotDeleted.forEach(function (r) { return selfDelete.call(self, r.id); });
26053
- }
26054
- _this.loadingSubject.next(false);
26082
+ var _super = Object.create(null, {
26083
+ delete: { get: function () { return _super_1.prototype.delete; } }
26084
+ });
26085
+ return __awaiter(this, void 0, void 0, function () {
26086
+ var data, rowsById, rowNotDeleted, err_1;
26087
+ var _this = this;
26088
+ return __generator(this, function (_b) {
26089
+ switch (_b.label) {
26090
+ case 0:
26091
+ this.markAsLoading();
26092
+ data = this.getDataFromRows(rows);
26093
+ rowsById = Beans.collectById(rows);
26094
+ _b.label = 1;
26095
+ case 1:
26096
+ _b.trys.push([1, 3, 4, 5]);
26097
+ // Call service deletion
26098
+ return [4 /*yield*/, this.dataService.deleteAll(data, this.serviceOptions)];
26099
+ case 2:
26100
+ // Call service deletion
26101
+ _b.sent();
26102
+ rowNotDeleted = this.getRows().map(function (row) { return rows.find(function (r) { return r === row; }); });
26103
+ // Apply missing deletion
26104
+ if (isNotEmptyArray(rowNotDeleted)) {
26105
+ console.warn("[table-datasource] Force deletion of " + rowNotDeleted.length + " rows (Is service update the cache ?)");
26106
+ rowNotDeleted
26107
+ // Start from the end
26108
+ .sort(function (a, b) { return a.id > b.id ? -1 : 1; })
26109
+ .forEach(function (r) { return _super.delete.call(_this, r.id); });
26110
+ }
26111
+ return [3 /*break*/, 5];
26112
+ case 3:
26113
+ err_1 = _b.sent();
26114
+ // Handle sservice error
26115
+ this.handleServiceError(err_1);
26116
+ return [3 /*break*/, 5];
26117
+ case 4:
26118
+ this.loadingSubject.next(false);
26119
+ return [7 /*endfinally*/];
26120
+ case 5: return [2 /*return*/];
26121
+ }
26122
+ });
26055
26123
  });
26056
26124
  };
26057
26125
  EntitiesTableDataSource.prototype.getRows = function () {
26058
- return firstNotNilPromise(this.connect(null));
26126
+ return this.rowsSubject.getValue();
26059
26127
  };
26060
- EntitiesTableDataSource.prototype.asyncCreateNew = function (insertAt) {
26128
+ EntitiesTableDataSource.prototype.createNew = function (insertAt) {
26061
26129
  var _super = Object.create(null, {
26062
26130
  createNew: { get: function () { return _super_1.prototype.createNew; } }
26063
26131
  });
26132
+ var _a;
26064
26133
  return __awaiter(this, void 0, void 0, function () {
26065
- var row, res, err_1;
26066
- return __generator(this, function (_a) {
26067
- switch (_a.label) {
26134
+ var row, err_2;
26135
+ return __generator(this, function (_b) {
26136
+ switch (_b.label) {
26068
26137
  case 0:
26069
26138
  if (this._creating)
26070
26139
  return [2 /*return*/]; // Avoid multiple call (should never occur)
26071
26140
  this._creating = true;
26072
- _super.createNew.call(this, insertAt);
26073
- row = this.getRow(-1);
26074
- if (!(row && this._options && this._options.onRowCreated)) return [3 /*break*/, 4];
26075
- res = this._options.onRowCreated(row);
26076
- if (!(res instanceof Promise)) return [3 /*break*/, 4];
26077
- _a.label = 1;
26141
+ _b.label = 1;
26078
26142
  case 1:
26079
- _a.trys.push([1, 3, , 4]);
26080
- return [4 /*yield*/, res];
26143
+ _b.trys.push([1, , 7, 8]);
26144
+ return [4 /*yield*/, _super.createNew.call(this, insertAt)];
26081
26145
  case 2:
26082
- _a.sent();
26083
- return [3 /*break*/, 4];
26146
+ row = _b.sent();
26147
+ if (!row)
26148
+ return [2 /*return*/];
26149
+ if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.onRowCreated)) return [3 /*break*/, 6];
26150
+ _b.label = 3;
26084
26151
  case 3:
26085
- err_1 = _a.sent();
26086
- console.error(err_1 && err_1.message || err_1, err_1);
26087
- return [3 /*break*/, 4];
26152
+ _b.trys.push([3, 5, , 6]);
26153
+ return [4 /*yield*/, this.config.onRowCreated(row)];
26088
26154
  case 4:
26155
+ _b.sent();
26156
+ return [3 /*break*/, 6];
26157
+ case 5:
26158
+ err_2 = _b.sent();
26159
+ // Log, then continue
26160
+ console.error(err_2 && err_2.message || err_2, err_2);
26161
+ return [3 /*break*/, 6];
26162
+ case 6:
26089
26163
  this._editingRowCount++;
26164
+ return [2 /*return*/, row];
26165
+ case 7:
26090
26166
  this._creating = false;
26091
- return [2 /*return*/];
26167
+ return [7 /*endfinally*/];
26168
+ case 8: return [2 /*return*/];
26092
26169
  }
26093
26170
  });
26094
26171
  });
26095
26172
  };
26096
26173
  EntitiesTableDataSource.prototype.getData = function () {
26097
- return __awaiter(this, void 0, void 0, function () {
26098
- var rows;
26099
- return __generator(this, function (_a) {
26100
- switch (_a.label) {
26101
- case 0: return [4 /*yield*/, this.getRows()];
26102
- case 1:
26103
- rows = _a.sent();
26104
- return [2 /*return*/, this.getDataFromRows(rows)];
26105
- }
26106
- });
26107
- });
26174
+ var rows = this.getRows();
26175
+ return this.getDataFromRows(rows);
26108
26176
  };
26109
26177
  EntitiesTableDataSource.prototype.fetchMore = function (opts) {
26110
26178
  var _super = Object.create(null, {
26111
26179
  updateDatasource: { get: function () { return _super_1.prototype.updateDatasource; } }
26112
26180
  });
26113
26181
  return __awaiter(this, void 0, void 0, function () {
26114
- var fetchMoreFn, res, existingData;
26115
- return __generator(this, function (_a) {
26116
- switch (_a.label) {
26182
+ var fetchMoreFn, res;
26183
+ var _b;
26184
+ return __generator(this, function (_c) {
26185
+ switch (_c.label) {
26117
26186
  case 0:
26118
26187
  if (!this._fetchMoreFn)
26119
26188
  return [2 /*return*/, false]; // Avoid multiple call
26120
26189
  if (this._editingRowCount > 0) {
26121
- console.warn('Cannot fetch more because still editing row');
26190
+ console.warn("Cannot fetch more " + this._entityName + " because " + this._editingRowCount + " row(s) still editing");
26122
26191
  return [2 /*return*/];
26123
26192
  }
26193
+ console.debug("Will fetching more row(s) still...");
26124
26194
  fetchMoreFn = this._fetchMoreFn;
26125
26195
  this._fetchMoreFn = null;
26126
26196
  return [4 /*yield*/, fetchMoreFn()];
26127
26197
  case 1:
26128
- res = _a.sent();
26198
+ res = _c.sent();
26129
26199
  // Skip if empty (no more data)
26130
- if (isNotEmptyArray(res === null || res === void 0 ? void 0 : res.data))
26200
+ if (isEmptyArray(res === null || res === void 0 ? void 0 : res.data))
26131
26201
  return [2 /*return*/, false];
26132
- return [4 /*yield*/, this.getData()];
26133
- case 2:
26134
- existingData = _a.sent();
26135
- _super.updateDatasource.call(this, existingData.concat.apply(existingData, __spread(res.data)), opts);
26202
+ // Update the data source
26203
+ _super.updateDatasource.call(this, (_b = (this.currentData || [])).concat.apply(_b, __spread(res.data)), opts);
26136
26204
  // Remember fetchMore
26137
26205
  this._fetchMoreFn = res.fetchMore;
26138
26206
  return [2 /*return*/, true];
@@ -26159,8 +26227,8 @@
26159
26227
  EntitiesTableDataSource.ctorParameters = function () { return [
26160
26228
  { type: Function },
26161
26229
  { type: undefined },
26162
- { type: ngxMaterialTable.ValidatorService },
26163
- { type: AppTableDataSourceOptions }
26230
+ { type: undefined },
26231
+ { type: undefined }
26164
26232
  ]; };
26165
26233
 
26166
26234
  var SETTINGS_DISPLAY_COLUMNS = 'displayColumns';
@@ -27709,7 +27777,7 @@
27709
27777
  case 0:
27710
27778
  this.focusFirstColumn = true;
27711
27779
  this.focusColumn = (opts === null || opts === void 0 ? void 0 : opts.focusColumn) || this.firstUserColumn;
27712
- return [4 /*yield*/, this._dataSource.asyncCreateNew(insertAt)];
27780
+ return [4 /*yield*/, this._dataSource.createNew(insertAt)];
27713
27781
  case 1:
27714
27782
  _e.sent();
27715
27783
  this.editedRow = this._dataSource.getRow(-1);
@@ -27909,7 +27977,7 @@
27909
27977
  return __generator(this, function (_e) {
27910
27978
  switch (_e.label) {
27911
27979
  case 0:
27912
- markRowAsPristine = ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.options.keepOriginalDataAfterConfirm) === true;
27980
+ markRowAsPristine = ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.config.restoreOriginalDataOnCancel) === true;
27913
27981
  if (!markRowAsPristine) return [3 /*break*/, 2];
27914
27982
  (_b = row.validator) === null || _b === void 0 ? void 0 : _b.markAsPristine();
27915
27983
  if (!(!opts || opts.onlySelf !== true)) return [3 /*break*/, 2];
@@ -30284,7 +30352,7 @@
30284
30352
  { type: Function },
30285
30353
  { type: InMemoryEntitiesService },
30286
30354
  { type: ngxMaterialTable.ValidatorService },
30287
- { type: AppTableDataSourceOptions },
30355
+ { type: undefined },
30288
30356
  { type: undefined }
30289
30357
  ]; };
30290
30358
  AppInMemoryTable.propDecorators = {
@@ -30301,7 +30369,7 @@
30301
30369
  SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
30302
30370
  };
30303
30371
 
30304
- var moment$6 = momentImported__namespace;
30372
+ var moment$4 = momentImported__namespace;
30305
30373
  var USER_EVENT_SERVICE = new i0.InjectionToken('UserEventService');
30306
30374
  var AbstractUserEventService = /** @class */ (function (_super) {
30307
30375
  __extends(AbstractUserEventService, _super);
@@ -30823,7 +30891,7 @@
30823
30891
  };
30824
30892
  AbstractUserEventService.prototype.resetCount = function () {
30825
30893
  this._countSubject.next(undefined);
30826
- this.resetCountDate = moment$6();
30894
+ this.resetCountDate = moment$4();
30827
30895
  // restart listening count changes
30828
30896
  this.startListenCountChanges();
30829
30897
  };
@@ -30927,7 +30995,7 @@
30927
30995
  if (!userEvents.length)
30928
30996
  return [2 /*return*/];
30929
30997
  // set read date
30930
- userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$6(); });
30998
+ userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$4(); });
30931
30999
  localEntities = userEvents.filter(function (userEvent) { return !userEvent.id || userEvent.id < 0; });
30932
31000
  remoteEntities = userEvents.filter(function (userEvent) { return userEvent.id > 0; });
30933
31001
  // save local entities
@@ -31973,7 +32041,7 @@
31973
32041
  ];
31974
32042
 
31975
32043
  var Mutations = {
31976
- send: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
32044
+ send: core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
31977
32045
  };
31978
32046
  var MessageService = /** @class */ (function (_super) {
31979
32047
  __extends(MessageService, _super);
@@ -32047,7 +32115,7 @@
32047
32115
  };
32048
32116
  return MessageService;
32049
32117
  }(BaseGraphqlService));
32050
- MessageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(ENVIRONMENT, 8)); }, token: MessageService, providedIn: "root" });
32118
+ MessageService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(ENVIRONMENT, 8)); }, token: MessageService, providedIn: "root" });
32051
32119
  MessageService.decorators = [
32052
32120
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
32053
32121
  ];
@@ -32057,7 +32125,7 @@
32057
32125
  { type: i1$5.ToastController },
32058
32126
  { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
32059
32127
  ]; };
32060
- var templateObject_1$3;
32128
+ var templateObject_1$1;
32061
32129
 
32062
32130
  var PersonFilter_1;
32063
32131
  // @dynamic
@@ -32116,16 +32184,16 @@
32116
32184
  ], exports.PersonFilter);
32117
32185
 
32118
32186
  var PersonFragments = {
32119
- 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 }"])))
32187
+ 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 }"])))
32120
32188
  };
32121
32189
  // Load persons query
32122
32190
  var PersonQueries = {
32123
- loadAll: core.gql(templateObject_2$2 || (templateObject_2$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),
32124
- loadAllWithTotal: core.gql(templateObject_3$2 || (templateObject_3$2 = __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)
32191
+ 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),
32192
+ 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)
32125
32193
  };
32126
32194
  var PersonMutations = {
32127
- saveAll: core.gql(templateObject_4$2 || (templateObject_4$2 = __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),
32128
- 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 }"])))
32195
+ 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),
32196
+ 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 }"])))
32129
32197
  };
32130
32198
  var PersonService = /** @class */ (function (_super_1) {
32131
32199
  __extends(PersonService, _super_1);
@@ -32246,7 +32314,7 @@
32246
32314
  };
32247
32315
  return PersonService;
32248
32316
  }(BaseEntityService));
32249
- 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" });
32317
+ 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" });
32250
32318
  PersonService.decorators = [
32251
32319
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
32252
32320
  ];
@@ -32256,7 +32324,7 @@
32256
32324
  { type: NetworkService },
32257
32325
  { type: EntitiesStorage }
32258
32326
  ]; };
32259
- var templateObject_1$4, templateObject_2$2, templateObject_3$2, templateObject_4$2, templateObject_5$2;
32327
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
32260
32328
 
32261
32329
  var PersonValidatorService = /** @class */ (function () {
32262
32330
  function PersonValidatorService(formBuilder, accountValidatorService) {
@@ -32279,7 +32347,7 @@
32279
32347
  };
32280
32348
  return PersonValidatorService;
32281
32349
  }());
32282
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
32350
+ 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" });
32283
32351
  PersonValidatorService.decorators = [
32284
32352
  { type: i0.Injectable, args: [{ providedIn: 'root' },] }
32285
32353
  ];
@@ -32542,17 +32610,17 @@
32542
32610
  ];
32543
32611
  AdminModule.ctorParameters = function () { return []; };
32544
32612
 
32545
- var ɵ0$c = {
32613
+ var ɵ0 = {
32546
32614
  profile: 'ADMIN'
32547
32615
  };
32548
- var routes = [
32616
+ var routes$6 = [
32549
32617
  {
32550
32618
  path: 'users',
32551
32619
  pathMatch: 'full',
32552
32620
  component: UsersPage,
32553
32621
  canActivate: [AuthGuardService],
32554
32622
  canDeactivate: [ComponentDirtyGuard],
32555
- data: ɵ0$c
32623
+ data: ɵ0
32556
32624
  }
32557
32625
  ];
32558
32626
  var AdminRoutingModule = /** @class */ (function () {
@@ -32565,30 +32633,30 @@
32565
32633
  imports: [
32566
32634
  SharedRoutingModule,
32567
32635
  AdminModule,
32568
- i3.RouterModule.forChild(routes)
32636
+ i3.RouterModule.forChild(routes$6)
32569
32637
  ],
32570
32638
  exports: [i3.RouterModule]
32571
32639
  },] }
32572
32640
  ];
32573
32641
 
32574
- var EntityTestClass = /** @class */ (function () {
32642
+ var EntityTestClass$1 = /** @class */ (function () {
32575
32643
  function EntityTestClass() {
32576
32644
  }
32577
32645
  return EntityTestClass;
32578
32646
  }());
32579
- var FAKE_ENTITIES = [
32647
+ var FAKE_ENTITIES$1 = [
32580
32648
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
32581
32649
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
32582
32650
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
32583
32651
  ];
32584
- function deepCopy(values, size) {
32652
+ function deepCopy$1(values, size) {
32585
32653
  if (isNil(size)) {
32586
- return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
32654
+ return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
32587
32655
  }
32588
32656
  var result = [];
32589
32657
  var i = 1;
32590
32658
  while (result.length < size) {
32591
- result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
32659
+ result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
32592
32660
  var name = entity.name + ' #' + i;
32593
32661
  return Object.assign(Object.assign({}, entity), { id: i++, name: name });
32594
32662
  }));
@@ -32598,7 +32666,7 @@
32598
32666
  var AutocompleteTestPage = /** @class */ (function () {
32599
32667
  function AutocompleteTestPage(formBuilder) {
32600
32668
  this.formBuilder = formBuilder;
32601
- this._items = deepCopy(FAKE_ENTITIES, 100);
32669
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
32602
32670
  this._$items = new rxjs.BehaviorSubject(undefined);
32603
32671
  this.autocompleteFields = new MatAutocompleteConfigHolder();
32604
32672
  this.memoryHide = false;
@@ -32644,7 +32712,7 @@
32644
32712
  });
32645
32713
  // From items
32646
32714
  this.autocompleteFields.add('entity-items-large', {
32647
- items: FAKE_ENTITIES.slice(),
32715
+ items: FAKE_ENTITIES$1.slice(),
32648
32716
  attributes: ['label', 'name', 'description', 'comments'],
32649
32717
  displayWith: this.entityToString
32650
32718
  });
@@ -32680,14 +32748,14 @@
32680
32748
  var _this = this;
32681
32749
  return __generator(this, function (_a) {
32682
32750
  data = {
32683
- entity: deepCopy(FAKE_ENTITIES)[0],
32684
- farEntity: deepCopy(FAKE_ENTITIES)[2],
32751
+ entity: deepCopy$1(FAKE_ENTITIES$1)[0],
32752
+ farEntity: deepCopy$1(FAKE_ENTITIES$1)[2],
32685
32753
  // This item is NOT in the items list => i should be displayed anyway
32686
32754
  missingEntity: {
32687
32755
  id: -1, label: '??', name: 'Missing item'
32688
32756
  },
32689
- disableEntity: deepCopy(FAKE_ENTITIES)[2],
32690
- entities: deepCopy(FAKE_ENTITIES)
32757
+ disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2],
32758
+ entities: deepCopy$1(FAKE_ENTITIES$1)
32691
32759
  };
32692
32760
  this.form.setValue(data);
32693
32761
  // Load observables
@@ -32859,13 +32927,13 @@
32859
32927
  { type: i1.FormBuilder }
32860
32928
  ]; };
32861
32929
 
32862
- var moment$7 = momentImported__namespace;
32930
+ var moment$3 = momentImported__namespace;
32863
32931
  var SwipeTestPage = /** @class */ (function () {
32864
32932
  function SwipeTestPage(formBuilder, dateFormatPipe) {
32865
32933
  this.formBuilder = formBuilder;
32866
32934
  this.dateFormatPipe = dateFormatPipe;
32867
32935
  this.$dates = new rxjs.BehaviorSubject(undefined);
32868
- this._today = moment$7().startOf('day');
32936
+ this._today = moment$3().startOf('day');
32869
32937
  this.form = formBuilder.group({
32870
32938
  empty: [null, i1.Validators.required],
32871
32939
  date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
@@ -32879,7 +32947,7 @@
32879
32947
  var _this = this;
32880
32948
  var dates = [];
32881
32949
  for (var d = 0; d < 7; d++) {
32882
- dates[d] = moment$7(this._today).add(d - 3, 'day');
32950
+ dates[d] = moment$3(this._today).add(d - 3, 'day');
32883
32951
  }
32884
32952
  this.$dates.next(dates);
32885
32953
  this.loadData();
@@ -32926,7 +32994,7 @@
32926
32994
  { type: DateFormatPipe }
32927
32995
  ]; };
32928
32996
 
32929
- var moment$8 = momentImported__namespace;
32997
+ var moment$2 = momentImported__namespace;
32930
32998
  var DateTimeTestPage = /** @class */ (function () {
32931
32999
  function DateTimeTestPage(platform, formBuilder, cd) {
32932
33000
  this.platform = platform;
@@ -32964,7 +33032,7 @@
32964
33032
  var now, data;
32965
33033
  var _this = this;
32966
33034
  return __generator(this, function (_a) {
32967
- now = moment$8();
33035
+ now = moment$2();
32968
33036
  data = {
32969
33037
  empty: null,
32970
33038
  emptyRequired: null,
@@ -33034,12 +33102,12 @@
33034
33102
  { type: i0.ChangeDetectorRef }
33035
33103
  ]; };
33036
33104
 
33037
- var EntityTestClass$1 = /** @class */ (function () {
33105
+ var EntityTestClass = /** @class */ (function () {
33038
33106
  function EntityTestClass() {
33039
33107
  }
33040
33108
  return EntityTestClass;
33041
33109
  }());
33042
- var FAKE_ENTITIES$1 = [
33110
+ var FAKE_ENTITIES = [
33043
33111
  { id: 1, label: 'AAA', name: 'Item A' },
33044
33112
  { id: 2, label: 'BBB', name: 'Item B' },
33045
33113
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -33048,14 +33116,14 @@
33048
33116
  { id: 6, label: 'FFF', name: 'Item F' },
33049
33117
  { id: 7, label: 'GGG', name: 'Item G' }
33050
33118
  ];
33051
- function deepCopy$1(values, size) {
33119
+ function deepCopy(values, size) {
33052
33120
  if (isNil(size)) {
33053
- return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
33121
+ return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
33054
33122
  }
33055
33123
  var result = [];
33056
33124
  var i = 1;
33057
33125
  while (result.length < size) {
33058
- result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
33126
+ result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
33059
33127
  var name = entity.name + ' #' + i;
33060
33128
  return Object.assign(Object.assign({}, entity), { id: i++, name: name });
33061
33129
  }));
@@ -33065,7 +33133,7 @@
33065
33133
  var ChipsTestPage = /** @class */ (function () {
33066
33134
  function ChipsTestPage(formBuilder) {
33067
33135
  this.formBuilder = formBuilder;
33068
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
33136
+ this._items = deepCopy(FAKE_ENTITIES, 100);
33069
33137
  this._$items = new rxjs.BehaviorSubject(undefined);
33070
33138
  this.autocompleteFields = new MatAutocompleteConfigHolder();
33071
33139
  this.appearance = 'legacy';
@@ -33109,7 +33177,7 @@
33109
33177
  var items, data;
33110
33178
  var _this = this;
33111
33179
  return __generator(this, function (_a) {
33112
- items = deepCopy$1(FAKE_ENTITIES$1);
33180
+ items = deepCopy(FAKE_ENTITIES);
33113
33181
  data = {
33114
33182
  entity: items.slice(0, 1),
33115
33183
  entityInitial: items.slice(1, 2),
@@ -33246,7 +33314,7 @@
33246
33314
  { type: i1.FormBuilder }
33247
33315
  ]; };
33248
33316
 
33249
- var moment$9 = momentImported__namespace;
33317
+ var moment$1 = momentImported__namespace;
33250
33318
  var DateTestPage = /** @class */ (function () {
33251
33319
  function DateTestPage(formBuilder, cd) {
33252
33320
  this.formBuilder = formBuilder;
@@ -33283,7 +33351,7 @@
33283
33351
  var now, nowAtMahe, data;
33284
33352
  var _this = this;
33285
33353
  return __generator(this, function (_a) {
33286
- now = moment$9();
33354
+ now = moment$1();
33287
33355
  nowAtMahe = now.clone().tz(this.timezone).startOf('day');
33288
33356
  data = {
33289
33357
  empty: null,
@@ -33365,7 +33433,7 @@
33365
33433
  { label: 'Shared directives', divider: true },
33366
33434
  { label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
33367
33435
  ];
33368
- var routes$1 = [
33436
+ var routes$5 = [
33369
33437
  {
33370
33438
  path: '',
33371
33439
  pathMatch: 'full',
@@ -33425,7 +33493,7 @@
33425
33493
  i1.ReactiveFormsModule,
33426
33494
  SharedMaterialModule,
33427
33495
  i1$2.TranslateModule.forChild(),
33428
- i3.RouterModule.forChild(routes$1)
33496
+ i3.RouterModule.forChild(routes$5)
33429
33497
  ],
33430
33498
  declarations: [
33431
33499
  DateTimeTestPage,
@@ -33487,7 +33555,7 @@
33487
33555
  { type: i1$2.TranslateService }
33488
33556
  ]; };
33489
33557
 
33490
- var routes$2 = [
33558
+ var routes$4 = [
33491
33559
  {
33492
33560
  path: 'toast',
33493
33561
  pathMatch: 'full',
@@ -33505,7 +33573,7 @@
33505
33573
  i1$4.CommonModule,
33506
33574
  i1$5.IonicModule,
33507
33575
  i1$2.TranslateModule.forChild(),
33508
- i3.RouterModule.forChild(routes$2)
33576
+ i3.RouterModule.forChild(routes$4)
33509
33577
  ],
33510
33578
  declarations: [
33511
33579
  ToastTestingPage
@@ -33831,26 +33899,33 @@
33831
33899
  console.debug('[test-table] Updating data...');
33832
33900
  this.markAsLoading();
33833
33901
  if (isNil(this.data)) {
33834
- this.data = this.generateData(0, this.enableInfiniteScroll ? this.defaultPageSize : TableTestPage.maxRowCount);
33902
+ this.data = this.generateData(0, TableTestPage.maxRowCount);
33835
33903
  }
33836
33904
  this.dataService.setValue(this.data, { emitEvent: false });
33837
33905
  this.onRefresh.emit();
33838
- if (this.infiniteScroll) {
33839
- this.infiniteScroll.disabled = !this.infiniteScroll || this.data.length >= TableTestPage.maxRowCount;
33840
- }
33841
33906
  };
33842
- TableTestPage.prototype.loadMore = function (event) {
33843
- var _this = this;
33844
- console.debug('[table-test] Loading more...', event);
33845
- setTimeout(function () {
33846
- _this.data = __spread(_this.data, _this.generateData(_this.data.length, 20));
33847
- _this.dataService.setValue(_this.data, { emitEvent: false });
33848
- _this.defaultPageSize = _this.data.length;
33849
- _this.infiniteScroll.disabled = _this.data.length >= 100;
33850
- _this.doRefresh(event);
33851
- }, 500);
33907
+ TableTestPage.prototype.fetchMore = function (event) {
33908
+ return __awaiter(this, void 0, void 0, function () {
33909
+ var fetched;
33910
+ return __generator(this, function (_a) {
33911
+ switch (_a.label) {
33912
+ case 0:
33913
+ console.debug('[table-test] Loading more...', event);
33914
+ return [4 /*yield*/, this._dataSource.fetchMore()];
33915
+ case 1:
33916
+ fetched = _a.sent();
33917
+ if (!(fetched && (event === null || event === void 0 ? void 0 : event.target) && event.target.complete)) return [3 /*break*/, 3];
33918
+ return [4 /*yield*/, this.waitIdle()];
33919
+ case 2:
33920
+ _a.sent();
33921
+ event.target.complete();
33922
+ _a.label = 3;
33923
+ case 3: return [2 /*return*/];
33924
+ }
33925
+ });
33926
+ });
33852
33927
  };
33853
- TableTestPage.prototype.save = function () {
33928
+ TableTestPage.prototype.save = function (opts) {
33854
33929
  var _super = Object.create(null, {
33855
33930
  save: { get: function () { return _super_1.prototype.save; } }
33856
33931
  });
@@ -33858,7 +33933,7 @@
33858
33933
  var saved;
33859
33934
  return __generator(this, function (_a) {
33860
33935
  switch (_a.label) {
33861
- case 0: return [4 /*yield*/, _super.save.call(this)];
33936
+ case 0: return [4 /*yield*/, _super.save.call(this, opts)];
33862
33937
  case 1:
33863
33938
  saved = _a.sent();
33864
33939
  if (saved) {
@@ -33930,7 +34005,7 @@
33930
34005
  TableTestPage.decorators = [
33931
34006
  { type: i0.Component, args: [{
33932
34007
  selector: 'app-table-testing',
33933
- template: "<app-toolbar color=\"primary\" [canGoBack]=\"true\" [backHref]=\"'/testing'\">\n <ion-buttons slot=\"end\">\n\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n\n <!-- start/stop timer to auto-load data -->\n <ion-button *ngIf=\"!timer\" (click)=\"startTimer()\">Start reload</ion-button>\n <ion-button *ngIf=\"timer\" (click)=\"stopTimer()\" color=\"accent\">Stop reload</ion-button>\n </ng-container>\n\n <!-- if row selection -->\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button\n *ngIf=\"canEdit\" [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- duplicate -->\n <button mat-icon-button\n *ngIf=\"canEdit && selection.selected | isArrayLength: {equals: 1}\"\n [title]=\"'COMMON.BTN_DUPLICATE'|translate\"\n (click)=\"duplicateRow($event, selection.selected[0])\">\n <mat-icon>file_copy</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n<ion-content class=\"ion-no-padding\">\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- error -->\n <ion-item *ngIf=\"mobile && error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding-top\" [formGroup]=\"filterForm\" (ngSubmit)=\"applyFilterAndClosePanel($event)\">\n\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search text -->\n <mat-form-field>\n <ion-icon matPrefix name=\"search\"></ion-icon>\n <input matInput\n formControlName=\"searchText\"\n autocomplete=\"off\"\n [placeholder]=\"'TABLE.TESTING.SEARCH_TEXT'|translate\">\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- table -->\n <div [class.table-container]=\"!enableInfiniteScroll\">\n <table #table mat-table matSort matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\">\n\n <!-- group header cells -->\n\n <ng-container matColumnDef=\"top-start\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\" [attr.colspan]=\"2\">\n <!-- start spacer -->\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"group-1\">\n <th mat-header-cell *matHeaderCellDef [attr.colspan]=\"3\" style=\"background-color: whitesmoke; margin-bottom: -1px;\">\n <ion-label translate>{{i18nColumnPrefix + 'GROUP_1'}}</ion-label>\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"group-2\">\n <th mat-header-cell *matHeaderCellDef [attr.colspan]=\"3\">\n <ion-label translate>{{i18nColumnPrefix + 'GROUP_2'}}</ion-label>\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"top-end\" >\n <th mat-header-cell *matHeaderCellDef>\n <!-- end spacer -->\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\" [class.mat-column-sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\" [class.mat-column-sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData?.id }}</td>\n </ng-container>\n\n <!-- Label column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.LABEL</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['label']\"\n [placeholder]=\"'TABLE.TESTING.LABEL'|translate\"\n [appAutofocus]=\"row.editing && focusColumn === 'label'\"\n [readonly]=\"!row.editing\">\n <mat-error *ngIf=\"row.validator.controls['label'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Name column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.NAME</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator?.controls.name\" [placeholder]=\"'TABLE.TESTING.NAME'|translate\"\n [readonly]=\"!row.editing\">\n <mat-error *ngIf=\"row.validator?.controls.name.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Level column -->\n <ng-container matColumnDef=\"levelId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.LEVEL_ID</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-autocomplete-field floatLabel=\"never\"\n [formControl]=\"row.validator.controls.levelId\"\n [config]=\"autocompleteFields.level\"\n [readonly]=\"!row.editing\"\n required>\n </mat-autocomplete-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"statusId\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value &gt;=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\" [placeholder]=\"i18nColumnPrefix + 'STATUS_ID'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value &gt;=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n\n <!-- Creation date column -->\n <ng-container matColumnDef=\"updateDate\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.UPDATE_DATE</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"mat-form-field-disabled\">\n <ion-text class=\"ion-text-end\" color=\"medium\" *ngIf=\"row.id!==-1\">\n <small [matTooltip]=\"'TABLE.TESTING.CREATION_DATE'|translate\" *ngIf=\"row.currentData.creationDate; let creationDate\">\n <ion-icon name=\"calendar\"></ion-icon>\n {{ creationDate | dateFormat: {time: true} }}\n </small><br/>\n <small [matTooltip]=\"'TABLE.TESTING.UPDATE_DATE'|translate\" *ngIf=\"row.currentData.updateDate; let updateDate\">\n <ion-icon name=\"time-outline\"></ion-icon>\n {{ updateDate | dateFormat: {time: true} }}\n </small>\n </ion-text>\n </td>\n </ng-container>\n\n <!-- Comment column -->\n <ng-container matColumnDef=\"comments\">\n <th mat-header-cell *matHeaderCellDef>\n <ion-label translate>TABLE.TESTING.COMMENTS</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-form-field floatLabel=\"never\" *ngIf=\"row.editing; else iconComment\">\n <!--<textarea matInput [formControl]=\"row.validator?.controls.comments\"\n [placeholder]=\"'TABLE.TESTING.COMMENTS'|translate\"\n [readonly]=\"!row.editing\"></textarea>-->\n\n <input type=\"text\" matInput [formControl]=\"row.validator?.controls.comments\"\n [placeholder]=\"'TABLE.TESTING.COMMENTS'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn === 'comments'\">\n </mat-form-field>\n\n <ng-template #iconComment>\n <mat-icon class=\"comment\"\n *ngIf=\"row.validator?.controls.comments.value\"\n [title]=\"row.validator?.controls.comments.value\"></mat-icon>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"true\" [canCancel]=\"false\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [cellTemplate]=\"cellInjection\">\n\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <span *ngIf=\"row.editing && !row.validator.dirty\">-</span>\n </ng-template>\n\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"groupColumns;\" class=\"mat-toolbar\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-disabled]=\"!row.editing\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n\n <ion-infinite-scroll *ngIf=\"enableInfiniteScroll\"\n [threshold]=\"mobile ? '10%' : '2%'\" position=\"bottom\"\n (ionInfinite)=\"loadMore($event)\">\n <ion-infinite-scroll-content\n loadingSpinner=\"circles\"\n [loadingText]=\"'COMMON.LOADING_DOTS'|translate\">\n </ion-infinite-scroll-content>\n </ion-infinite-scroll>\n </div>\n</ion-content>\n\n<ion-footer>\n <!-- Paginator -->\n <mat-paginator *ngIf=\"!enableInfiniteScroll\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\" [pageSizeOptions]=\"defaultPageSizeOptions\"\n class=\"mat-paginator-footer\"\n showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"canEdit && !mobile\"\n (onCancel)=\"load()\"\n (onSave)=\"save()\" [disabled]=\"(loadingSubject|async) || !dirty\">\n <!-- error -->\n <ion-item *ngIf=\"error$|async\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"canEdit && mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow($event)\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
34008
+ template: "<app-toolbar color=\"primary\" [canGoBack]=\"true\"\n [hasValidate]=\"!(loadingSubject|async) && dirty\"\n (onValidate)=\"save()\"\n [backHref]=\"'/testing'\">\n <ion-buttons slot=\"end\">\n\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n\n <!-- start/stop timer to auto-load data -->\n <ion-button *ngIf=\"!timer\" (click)=\"startTimer()\">Start reload</ion-button>\n <ion-button *ngIf=\"timer\" (click)=\"stopTimer()\" color=\"accent\">Stop reload</ion-button>\n </ng-container>\n\n <!-- if row selection -->\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button\n *ngIf=\"canEdit\" [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- duplicate -->\n <button mat-icon-button\n *ngIf=\"canEdit && selection.selected | isArrayLength: {equals: 1}\"\n [title]=\"'COMMON.BTN_DUPLICATE'|translate\"\n (click)=\"duplicateRow($event, selection.selected[0])\">\n <mat-icon>file_copy</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n<ion-content class=\"ion-no-padding\">\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- error -->\n <ion-item *ngIf=\"mobile && error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding-top\" [formGroup]=\"filterForm\" (ngSubmit)=\"applyFilterAndClosePanel($event)\">\n\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search text -->\n <mat-form-field>\n <ion-icon matPrefix name=\"search\"></ion-icon>\n <input matInput\n formControlName=\"searchText\"\n autocomplete=\"off\"\n [placeholder]=\"'TABLE.TESTING.SEARCH_TEXT'|translate\">\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- table -->\n <div [class.table-container]=\"!enableInfiniteScroll\">\n <table #table mat-table matSort matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\">\n\n <!-- group header cells -->\n\n <ng-container matColumnDef=\"top-start\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\" [attr.colspan]=\"2\">\n <!-- start spacer -->\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"group-1\">\n <th mat-header-cell *matHeaderCellDef [attr.colspan]=\"3\" style=\"background-color: whitesmoke; margin-bottom: -1px;\">\n <ion-label translate>{{i18nColumnPrefix + 'GROUP_1'}}</ion-label>\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"group-2\">\n <th mat-header-cell *matHeaderCellDef [attr.colspan]=\"3\">\n <ion-label translate>{{i18nColumnPrefix + 'GROUP_2'}}</ion-label>\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"top-end\" >\n <th mat-header-cell *matHeaderCellDef>\n <!-- end spacer -->\n </th>\n </ng-container>\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\" [class.mat-column-sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\" [class.mat-column-sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData?.id }}</td>\n </ng-container>\n\n <!-- Label column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.LABEL</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['label']\"\n [placeholder]=\"'TABLE.TESTING.LABEL'|translate\"\n [appAutofocus]=\"row.editing && focusColumn === 'label'\"\n [readonly]=\"!row.editing\">\n <mat-error *ngIf=\"row.validator.controls['label'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Name column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.NAME</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator?.controls.name\" [placeholder]=\"'TABLE.TESTING.NAME'|translate\"\n [readonly]=\"!row.editing\">\n <mat-error *ngIf=\"row.validator?.controls.name.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Level column -->\n <ng-container matColumnDef=\"levelId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.LEVEL_ID</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-autocomplete-field floatLabel=\"never\"\n [formControl]=\"row.validator.controls.levelId\"\n [config]=\"autocompleteFields.level\"\n [readonly]=\"!row.editing\"\n required>\n </mat-autocomplete-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"statusId\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.mat-form-field-disabled]=\"!row.editing\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value &gt;=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\" [placeholder]=\"i18nColumnPrefix + 'STATUS_ID'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value &gt;=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n\n <!-- Creation date column -->\n <ng-container matColumnDef=\"updateDate\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>TABLE.TESTING.UPDATE_DATE</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"mat-form-field-disabled\">\n <ion-text class=\"ion-text-end\" color=\"medium\" *ngIf=\"row.id!==-1\">\n <small [matTooltip]=\"'TABLE.TESTING.CREATION_DATE'|translate\" *ngIf=\"row.currentData.creationDate; let creationDate\">\n <ion-icon name=\"calendar\"></ion-icon>\n {{ creationDate | dateFormat: {time: true} }}\n </small><br/>\n <small [matTooltip]=\"'TABLE.TESTING.UPDATE_DATE'|translate\" *ngIf=\"row.currentData.updateDate; let updateDate\">\n <ion-icon name=\"time-outline\"></ion-icon>\n {{ updateDate | dateFormat: {time: true} }}\n </small>\n </ion-text>\n </td>\n </ng-container>\n\n <!-- Comment column -->\n <ng-container matColumnDef=\"comments\">\n <th mat-header-cell *matHeaderCellDef>\n <ion-label translate>TABLE.TESTING.COMMENTS</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-form-field floatLabel=\"never\" *ngIf=\"row.editing; else iconComment\">\n <!--<textarea matInput [formControl]=\"row.validator?.controls.comments\"\n [placeholder]=\"'TABLE.TESTING.COMMENTS'|translate\"\n [readonly]=\"!row.editing\"></textarea>-->\n\n <input type=\"text\" matInput [formControl]=\"row.validator?.controls.comments\"\n [placeholder]=\"'TABLE.TESTING.COMMENTS'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn === 'comments'\">\n </mat-form-field>\n\n <ng-template #iconComment>\n <mat-icon class=\"comment\"\n *ngIf=\"row.validator?.controls.comments.value\"\n [title]=\"row.validator?.controls.comments.value\"></mat-icon>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"true\" [canCancel]=\"false\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [cellTemplate]=\"cellInjection\">\n\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <span *ngIf=\"row.editing && !row.validator.dirty\">-</span>\n </ng-template>\n\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"groupColumns;\" class=\"mat-toolbar\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-disabled]=\"!row.editing\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n\n <ion-infinite-scroll *ngIf=\"enableInfiniteScroll\"\n [threshold]=\"mobile ? '10%' : '2%'\" position=\"bottom\"\n (ionInfinite)=\"fetchMore($event)\">\n <ion-infinite-scroll-content\n loadingSpinner=\"circles\"\n [loadingText]=\"'COMMON.LOADING_DOTS'|translate\">\n </ion-infinite-scroll-content>\n </ion-infinite-scroll>\n </div>\n</ion-content>\n\n<ion-footer>\n <!-- Paginator -->\n <mat-paginator *ngIf=\"!enableInfiniteScroll\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\" [pageSizeOptions]=\"defaultPageSizeOptions\"\n class=\"mat-paginator-footer\"\n showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"canEdit && !mobile\"\n (onCancel)=\"load()\"\n (onSave)=\"save()\"\n [disabled]=\"(loadingSubject|async) || !dirty\">\n <!-- error -->\n <ion-item *ngIf=\"error$|async\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n </app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"canEdit && mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow($event)\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
33934
34009
  providers: [
33935
34010
  {
33936
34011
  provide: AppValidatorService,
@@ -34027,7 +34102,7 @@
34027
34102
  { type: i1$5.PopoverController }
34028
34103
  ]; };
34029
34104
 
34030
- var routes$4 = [
34105
+ var routes$2 = [
34031
34106
  {
34032
34107
  path: 'text-popover',
34033
34108
  pathMatch: 'full',
@@ -34045,7 +34120,7 @@
34045
34120
  i1$4.CommonModule,
34046
34121
  i1$5.IonicModule,
34047
34122
  i1$2.TranslateModule.forChild(),
34048
- i3.RouterModule.forChild(routes$4)
34123
+ i3.RouterModule.forChild(routes$2)
34049
34124
  ],
34050
34125
  declarations: [
34051
34126
  TextPopoverTestingPage
@@ -34062,7 +34137,7 @@
34062
34137
  { label: 'Table', page: '/testing/core/table' },
34063
34138
  { label: 'Text popover', page: '/testing/core/text-popover' }
34064
34139
  ];
34065
- var routes$5 = [
34140
+ var routes$1 = [
34066
34141
  {
34067
34142
  path: '',
34068
34143
  pathMatch: 'full',
@@ -34089,7 +34164,7 @@
34089
34164
  imports: [
34090
34165
  i1$4.CommonModule,
34091
34166
  i1$2.TranslateModule.forChild(),
34092
- i3.RouterModule.forChild(routes$5),
34167
+ i3.RouterModule.forChild(routes$1),
34093
34168
  // Sub modules
34094
34169
  TableTestingModule,
34095
34170
  TextPopoverTestingModule
@@ -34444,7 +34519,7 @@
34444
34519
  { type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
34445
34520
  ]; };
34446
34521
 
34447
- var moment$a = momentImported__namespace;
34522
+ var moment = momentImported__namespace;
34448
34523
  var UserEventTestingPage = /** @class */ (function () {
34449
34524
  function UserEventTestingPage(userEventService, router, alertController, translateService) {
34450
34525
  var _this = this;
@@ -34510,7 +34585,7 @@
34510
34585
  type: 'message',
34511
34586
  level: 'INFO',
34512
34587
  message: 'message test message test message test message test message test message test message test message test',
34513
- creationDate: moment$a(),
34588
+ creationDate: moment(),
34514
34589
  }));
34515
34590
  };
34516
34591
  UserEventTestingPage.prototype.addError = function () {
@@ -34520,7 +34595,7 @@
34520
34595
  type: 'upload',
34521
34596
  level: 'ERROR',
34522
34597
  message: 'message error',
34523
- creationDate: moment$a(),
34598
+ creationDate: moment(),
34524
34599
  }));
34525
34600
  };
34526
34601
  UserEventTestingPage.prototype.addWarning = function () {
@@ -34530,7 +34605,7 @@
34530
34605
  type: 'download',
34531
34606
  level: 'WARNING',
34532
34607
  message: 'message warning',
34533
- creationDate: moment$a(),
34608
+ creationDate: moment(),
34534
34609
  }));
34535
34610
  };
34536
34611
  UserEventTestingPage.prototype.addDebug = function () {
@@ -34540,7 +34615,7 @@
34540
34615
  type: 'debug',
34541
34616
  level: 'DEBUG',
34542
34617
  message: 'message DEBUG',
34543
- creationDate: moment$a(),
34618
+ creationDate: moment(),
34544
34619
  }));
34545
34620
  };
34546
34621
  UserEventTestingPage.prototype.addNotificationWithLink = function () {
@@ -34551,7 +34626,7 @@
34551
34626
  type: 'message',
34552
34627
  level: 'INFO',
34553
34628
  message: 'message with link',
34554
- creationDate: moment$a(),
34629
+ creationDate: moment(),
34555
34630
  actions: [{
34556
34631
  name: 'click here',
34557
34632
  iconRef: {
@@ -34569,7 +34644,7 @@
34569
34644
  type: 'message',
34570
34645
  level: 'INFO',
34571
34646
  message: 'message with action',
34572
- creationDate: moment$a(),
34647
+ creationDate: moment(),
34573
34648
  actions: [
34574
34649
  {
34575
34650
  name: 'click here',
@@ -34643,7 +34718,7 @@
34643
34718
  type: 'message',
34644
34719
  level: 'INFO',
34645
34720
  message: 'message with action',
34646
- creationDate: moment$a(),
34721
+ creationDate: moment(),
34647
34722
  actions: [
34648
34723
  {
34649
34724
  default: true,
@@ -34701,7 +34776,7 @@
34701
34776
  { label: 'User event', page: '/testing/social/user-event' },
34702
34777
  { label: 'Job progression', page: '/testing/social/job-progression' }
34703
34778
  ];
34704
- var routes$6 = [
34779
+ var routes = [
34705
34780
  {
34706
34781
  path: 'job-progression',
34707
34782
  pathMatch: 'full',
@@ -34723,7 +34798,7 @@
34723
34798
  imports: [
34724
34799
  i1$4.CommonModule,
34725
34800
  i1$2.TranslateModule.forChild(),
34726
- i3.RouterModule.forChild(routes$6),
34801
+ i3.RouterModule.forChild(routes),
34727
34802
  JobTestingModule,
34728
34803
  UserEventTestingModule
34729
34804
  ],
@@ -34783,7 +34858,6 @@
34783
34858
  exports.AppTabEditor = AppTabEditor;
34784
34859
  exports.AppTabEditorOptions = AppTabEditorOptions;
34785
34860
  exports.AppTable = AppTable;
34786
- exports.AppTableDataSourceOptions = AppTableDataSourceOptions;
34787
34861
  exports.AppTableUtils = AppTableUtils;
34788
34862
  exports.AppUserEventNotificationIcon = AppUserEventNotificationIcon;
34789
34863
  exports.AppValidatorService = AppValidatorService;
@@ -34867,7 +34941,7 @@
34867
34941
  exports.FormGetGroupPipe = FormGetGroupPipe;
34868
34942
  exports.FormGetPipe = FormGetPipe;
34869
34943
  exports.FormGetValuePipe = FormGetValuePipe;
34870
- exports.Fragments = Fragments$1;
34944
+ exports.Fragments = Fragments;
34871
34945
  exports.GraphqlService = GraphqlService;
34872
34946
  exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
34873
34947
  exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
@@ -35185,25 +35259,25 @@
35185
35259
  exports.waitForTrue = waitForTrue;
35186
35260
  exports.waitIdle = waitIdle;
35187
35261
  exports.waitWhilePending = waitWhilePending;
35188
- exports0 = ɵ0;
35189
- exports.ɵa = CustomReuseStrategy;
35190
- exports.ɵb = MatNumpadDomService;
35191
- exports.ɵc = isFocusableElement;
35192
- exports.ɵd = RegisterForm;
35193
- exports.ɵe = AccountValidatorService;
35194
- exports.ɵf = RegisterModal;
35195
- exports.ɵg = UserSettingsValidatorService;
35196
- exports.ɵh = LocalSettingsValidatorService;
35197
- exports.ɵi = AppUpdateOfflineModeCard;
35198
- exports.ɵj = UserEventNotificationList;
35199
- exports.ɵk = JobProgressionList;
35200
- exports.ɵl = DateTestPage;
35201
- exports.ɵm = NumpadTestPage;
35202
- exports.ɵn = MatBadgeIconTestPage;
35203
- exports.ɵo = ToastTestingModule;
35204
- exports.ɵp = ToastTestingPage;
35262
+ exports["ɵ0"] = ɵ0$c;
35263
+ exports["ɵa"] = CustomReuseStrategy;
35264
+ exports["ɵb"] = MatNumpadDomService;
35265
+ exports["ɵc"] = isFocusableElement;
35266
+ exports["ɵd"] = RegisterForm;
35267
+ exports["ɵe"] = AccountValidatorService;
35268
+ exports["ɵf"] = RegisterModal;
35269
+ exports["ɵg"] = UserSettingsValidatorService;
35270
+ exports["ɵh"] = LocalSettingsValidatorService;
35271
+ exports["ɵi"] = AppUpdateOfflineModeCard;
35272
+ exports["ɵj"] = UserEventNotificationList;
35273
+ exports["ɵk"] = JobProgressionList;
35274
+ exports["ɵl"] = DateTestPage;
35275
+ exports["ɵm"] = NumpadTestPage;
35276
+ exports["ɵn"] = MatBadgeIconTestPage;
35277
+ exports["ɵo"] = ToastTestingModule;
35278
+ exports["ɵp"] = ToastTestingPage;
35205
35279
 
35206
35280
  Object.defineProperty(exports, '__esModule', { value: true });
35207
35281
 
35208
- })));
35282
+ }));
35209
35283
  //# sourceMappingURL=sumaris-net.ngx-components.umd.js.map