@sumaris-net/ngx-components 2.0.0-rc20 → 2.0.0-rc21

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.
@@ -66,7 +66,7 @@ import { Capacitor } from '@capacitor/core';
66
66
  import { Keyboard } from '@capacitor/keyboard';
67
67
  import * as i1$1 from '@ngx-translate/core';
68
68
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
69
- import * as moment from 'moment';
69
+ import * as momentImported from 'moment';
70
70
  import { isMoment } from 'moment';
71
71
  import * as i1 from '@angular/material-moment-adapter';
72
72
  import { MatMomentDateModule } from '@angular/material-moment-adapter';
@@ -92,7 +92,7 @@ import { Haptics } from '@capacitor/haptics';
92
92
  import { NativeAudio } from '@capacitor-community/native-audio';
93
93
  import * as i1$4 from '@angular/platform-browser';
94
94
  import { HammerGestureConfig, HammerModule } from '@angular/platform-browser';
95
- import * as uuidv4 from 'uuid/v4';
95
+ import * as uuidv4Imported from 'uuid/v4';
96
96
  import { DragDropModule } from '@angular/cdk/drag-drop';
97
97
  import * as i6$4 from 'ngx-markdown';
98
98
  import { MarkdownModule } from 'ngx-markdown';
@@ -2543,6 +2543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
2543
2543
  type: Input
2544
2544
  }] } });
2545
2545
 
2546
+ const moment$c = momentImported;
2546
2547
  class DateDiffDurationPipe {
2547
2548
  constructor(dateAdapter, translate) {
2548
2549
  this.dateAdapter = dateAdapter;
@@ -2558,11 +2559,11 @@ class DateDiffDurationPipe {
2558
2559
  return this.format(startDate, endDate, args);
2559
2560
  }
2560
2561
  format(startDate, endDate, args) {
2561
- const duration = moment.duration(endDate.diff(startDate));
2562
+ const duration = moment$c.duration(endDate.diff(startDate));
2562
2563
  if (duration.asMinutes() < 0)
2563
2564
  return '';
2564
2565
  const withSeconds = args === null || args === void 0 ? void 0 : args.seconds;
2565
- const timeDuration = moment(0)
2566
+ const timeDuration = moment$c(0)
2566
2567
  .hour(duration.hours())
2567
2568
  .minute(duration.minutes());
2568
2569
  if (withSeconds) {
@@ -2997,6 +2998,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
2997
2998
  args: [{ name: 'fileSize' }]
2998
2999
  }] });
2999
3000
 
3001
+ const moment$b = momentImported;
3000
3002
  const DATE_UNIX_TIMESTAMP = 'X';
3001
3003
  const DATE_UNIX_MS_TIMESTAMP = 'x';
3002
3004
  const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
@@ -3085,37 +3087,37 @@ function fromDateISOString(value) {
3085
3087
  return value;
3086
3088
  if (typeof value === 'string' && value.length === 10) {
3087
3089
  // Parse the input value, as a date only
3088
- const dateOnly = moment(value, DATE_PATTERN);
3090
+ const dateOnly = moment$b(value, DATE_PATTERN);
3089
3091
  if (dateOnly.isValid())
3090
3092
  return DateUtils.markNoTime(dateOnly);
3091
3093
  }
3092
3094
  // Parse the input value, as a ISO date time
3093
- const date = moment(value, DATE_ISO_PATTERN);
3095
+ const date = moment$b(value, DATE_ISO_PATTERN);
3094
3096
  if (date.isValid())
3095
3097
  return date;
3096
3098
  // Not valid: trying to convert from unix timestamp
3097
3099
  if (typeof value === 'string') {
3098
3100
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
3099
3101
  if (value.length === 10) {
3100
- return moment(value, DATE_UNIX_TIMESTAMP);
3102
+ return moment$b(value, DATE_UNIX_TIMESTAMP);
3101
3103
  }
3102
3104
  else if (value.length === 13) {
3103
- return moment(value, DATE_UNIX_MS_TIMESTAMP);
3105
+ return moment$b(value, DATE_UNIX_MS_TIMESTAMP);
3104
3106
  }
3105
3107
  }
3106
3108
  console.warn('Unable to parse date: ' + value);
3107
3109
  return undefined;
3108
3110
  }
3109
3111
  function fromUnixTimestamp(timeInSec) {
3110
- return moment(timeInSec, DATE_UNIX_TIMESTAMP);
3112
+ return moment$b(timeInSec, DATE_UNIX_TIMESTAMP);
3111
3113
  }
3112
3114
  function fromUnixMsTimestamp(timeInMs) {
3113
- return moment(timeInMs, DATE_UNIX_MS_TIMESTAMP);
3115
+ return moment$b(timeInMs, DATE_UNIX_MS_TIMESTAMP);
3114
3116
  }
3115
3117
  function toDuration(value, unit) {
3116
3118
  if (!value)
3117
3119
  return undefined;
3118
- const duration = moment.duration(value, unit);
3120
+ const duration = moment$b.duration(value, unit);
3119
3121
  // fix 990+ ms
3120
3122
  if (duration.milliseconds() >= 990) {
3121
3123
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -3391,6 +3393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
3391
3393
  type: Injectable
3392
3394
  }] });
3393
3395
 
3396
+ const moment$a = momentImported;
3394
3397
  // @dynamic
3395
3398
  class SharedValidators {
3396
3399
  static getDoubleRegexp(maxDecimals) {
@@ -3471,7 +3474,7 @@ class SharedValidators {
3471
3474
  }
3472
3475
  static validDate(control) {
3473
3476
  const value = control.value;
3474
- const date = !value || moment.isMoment(value) ? value : moment(value, DATE_ISO_PATTERN);
3477
+ const date = !value || moment$a.isMoment(value) ? value : moment$a(value, DATE_ISO_PATTERN);
3475
3478
  if (date && (!date.isValid() || date.year() < 1970)) {
3476
3479
  return { validDate: true };
3477
3480
  }
@@ -5708,6 +5711,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
5708
5711
  }]
5709
5712
  }] });
5710
5713
 
5714
+ const moment$9 = momentImported;
5711
5715
  const DEFAULT_VALUE_ACCESSOR$5 = {
5712
5716
  provide: NG_VALUE_ACCESSOR,
5713
5717
  useExisting: forwardRef(() => MatDate),
@@ -5889,7 +5893,7 @@ class MatDate {
5889
5893
  // No value, but mobile mode: use the current date
5890
5894
  if (!value && this.mobile) {
5891
5895
  this._writing = true;
5892
- value = DateUtils.resetTime(moment().locale(this.locale), this.timezone);
5896
+ value = DateUtils.resetTime(moment$9().locale(this.locale), this.timezone);
5893
5897
  this.formControl.setValue(value, { emitEvent: false });
5894
5898
  this.markForCheck();
5895
5899
  this._writing = false;
@@ -6068,6 +6072,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
6068
6072
  args: ['matInput', { static: false }]
6069
6073
  }] } });
6070
6074
 
6075
+ const moment$8 = momentImported;
6071
6076
  const DEFAULT_VALUE_ACCESSOR$4 = {
6072
6077
  provide: NG_VALUE_ACCESSOR,
6073
6078
  useExisting: forwardRef(() => MatDateTime),
@@ -6262,7 +6267,7 @@ class MatDateTime {
6262
6267
  // No value, but mobile mode: use the current date
6263
6268
  if (!value && this.mobile) {
6264
6269
  this._writing = true;
6265
- value = DateUtils.resetTime(moment().locale(this.locale));
6270
+ value = DateUtils.resetTime(moment$8().locale(this.locale));
6266
6271
  this.formControl.setValue(value, { emitEvent: false });
6267
6272
  this.markForCheck();
6268
6273
  this._writing = false;
@@ -10522,6 +10527,7 @@ class ImagesUtils {
10522
10527
  }
10523
10528
  }
10524
10529
 
10530
+ const uuidv4$1 = uuidv4Imported;
10525
10531
  class FileService {
10526
10532
  constructor(platform,
10527
10533
  //private transfer: FileTransfer,
@@ -10558,7 +10564,7 @@ class FileService {
10558
10564
  const lastSlashIndex = fileUrl.lastIndexOf('/');
10559
10565
  if (lastSlashIndex === -1)
10560
10566
  throw new Error('Invalid URL: ' + fileUrl);
10561
- const fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4();
10567
+ const fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4$1();
10562
10568
  // Download into the file system
10563
10569
  if (outputType === 'fileUrl' && this.canUseFileSystem) {
10564
10570
  console.warn(`WARN: [file] Downloading image {${fileUrl}} in local filesystem...`);
@@ -13120,6 +13126,7 @@ Peer = Peer_1 = __decorate([
13120
13126
  EntityClass({ typename: 'PeerVO' })
13121
13127
  ], Peer);
13122
13128
 
13129
+ const moment$7 = momentImported;
13123
13130
  const SETTINGS_STORAGE_KEY = 'settings';
13124
13131
  const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
13125
13132
  // fixme: this constant points to static environment
@@ -13357,11 +13364,11 @@ class LocalSettingsService extends StartableService {
13357
13364
  if (!feature) {
13358
13365
  feature = {
13359
13366
  name: featureName.toLowerCase(),
13360
- lastSyncDate: moment().toISOString()
13367
+ lastSyncDate: moment$7().toISOString()
13361
13368
  };
13362
13369
  }
13363
13370
  else {
13364
- feature.lastSyncDate = moment().toISOString();
13371
+ feature.lastSyncDate = moment$7().toISOString();
13365
13372
  }
13366
13373
  this.saveOfflineFeature(feature);
13367
13374
  }
@@ -13522,7 +13529,7 @@ class LocalSettingsService extends StartableService {
13522
13529
  if (!page || !page.title || !page.path)
13523
13530
  throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
13524
13531
  // Set time
13525
- page.time = page.time || moment();
13532
+ page.time = page.time || moment$7();
13526
13533
  // Clean the title (remove <small> tags)
13527
13534
  if (!opts || opts.removeTitleSmallTag !== false) {
13528
13535
  const tagIndex = page.title.indexOf('</small>');
@@ -14966,6 +14973,7 @@ function accountToString(data) {
14966
14973
  (data.lastName || '')) || '';
14967
14974
  }
14968
14975
 
14976
+ const uuidv4 = uuidv4Imported;
14969
14977
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
14970
14978
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
14971
14979
  /**
@@ -17565,6 +17573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
17565
17573
  }] }];
17566
17574
  } });
17567
17575
 
17576
+ const moment$6 = momentImported;
17568
17577
  const AndroidOsEnvironment = Object.freeze({
17569
17578
  DIRECTORY_DOWNLOADS: 'Download',
17570
17579
  DIRECTORY_DOWNLOADS_OLD: 'Downloads', // Old name, for older Android version
@@ -17844,16 +17853,16 @@ class PlatformService extends StartableService {
17844
17853
  }
17845
17854
  // config moment lib
17846
17855
  try {
17847
- moment.locale(event.lang);
17856
+ moment$6.locale(event.lang);
17848
17857
  console.debug('[platform] Use locale {' + event.lang + '}');
17849
17858
  }
17850
17859
  // If error, fallback to en
17851
17860
  catch (err) {
17852
- moment.locale('en');
17861
+ moment$6.locale('en');
17853
17862
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
17854
17863
  }
17855
17864
  // Config date adapter
17856
- this.dateAdapter.setLocale(moment.locale());
17865
+ this.dateAdapter.setLocale(moment$6.locale());
17857
17866
  }
17858
17867
  });
17859
17868
  this.settings.onChange.subscribe(data => {
@@ -29005,6 +29014,7 @@ const SocialErrorCodes = {
29005
29014
  SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
29006
29015
  };
29007
29016
 
29017
+ const moment$5 = momentImported;
29008
29018
  const APP_USER_EVENT_SERVICE = new InjectionToken('UserEventService');
29009
29019
  class AbstractUserEventService extends BaseGraphqlService {
29010
29020
  constructor(graphql, accountService, network, translate, options) {
@@ -29380,7 +29390,7 @@ class AbstractUserEventService extends BaseGraphqlService {
29380
29390
  }
29381
29391
  resetCount() {
29382
29392
  this._countSubject.next(undefined);
29383
- this.resetCountDate = moment();
29393
+ this.resetCountDate = moment$5();
29384
29394
  // restart listening count changes
29385
29395
  this.startListenCountChanges();
29386
29396
  }
@@ -29439,7 +29449,7 @@ class AbstractUserEventService extends BaseGraphqlService {
29439
29449
  if (!userEvents.length)
29440
29450
  return;
29441
29451
  // set read date
29442
- userEvents.forEach(userEvent => userEvent.readDate = moment());
29452
+ userEvents.forEach(userEvent => userEvent.readDate = moment$5());
29443
29453
  // split local/remote entities
29444
29454
  const localEntities = userEvents.filter(EntityUtils.isLocal);
29445
29455
  const remoteEntities = userEvents.filter(EntityUtils.isRemote);
@@ -31291,12 +31301,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
31291
31301
  args: [{ selector: 'app-latlong-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Lat/Long field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!-- Empty value -->\n <form *ngIf=\"form|formGetGroup:'empty' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Empty, with defaults</h4></ion-text></ion-col></ion-row>\n\n <ion-row >\n\n <!-- DD Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD, defaultSign '-'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button matSuffix mat-icon-button (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n defaultSign=\"-\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMM Default sign -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM, defaultSign '+'\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Latitude\">\n\n <mat-icon matPrefix >room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n defaultSign=\"+\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n </form>\n\n <form *ngIf=\"form|formGetGroup:'enable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <!-- With value -->\n <ion-row><ion-col><ion-text><h4>With value</h4></ion-text></ion-col></ion-row>\n\n <ion-row>\n\n <!-- DD -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DD\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DD\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DD\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMM\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n\n <!-- DDMMSS -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Format DDMMSS\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Latitude\">\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMMSS\"\n placeholder=\"Longitude\">\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <!-- Disable -->\n <form *ngIf=\"form|formGetGroup:'disable' as formGroup\" [formGroup]=\"formGroup\">\n <ion-grid>\n <ion-row><ion-col><ion-text><h4>Disabled control</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(formGroup.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field formControlName=\"latitude\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n <ion-col>\n <mat-latlong-field formControlName=\"longitude\"\n type=\"longitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Longitude\">\n <mat-icon matPrefix>room</mat-icon>\n <button type=\"button\" mat-icon-button matSuffix\n (click)=\"geoPosition($event)\">\n <mat-icon>gps_fixed</mat-icon>\n </button>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly (control is enable)\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n </mat-checkbox>\n\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-latlong-field #readonlyField [formControl]=\"form|formGetControl: 'enable.latitude'\"\n type=\"latitude\"\n latLongPattern=\"DDMM\"\n placeholder=\"Latitude\"\n [readonly]=\"true\">\n <mat-icon matPrefix>room</mat-icon>\n <mat-icon matSuffix>gps_fixed</mat-icon>\n </mat-latlong-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n </form>\n\n</ion-content>\n" }]
31292
31302
  }], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
31293
31303
 
31304
+ const moment$4 = momentImported;
31294
31305
  class SwipeTestPage {
31295
31306
  constructor(formBuilder, dateFormatPipe) {
31296
31307
  this.formBuilder = formBuilder;
31297
31308
  this.dateFormatPipe = dateFormatPipe;
31298
31309
  this.$dates = new BehaviorSubject(undefined);
31299
- this._today = moment().startOf('day');
31310
+ this._today = moment$4().startOf('day');
31300
31311
  this.form = formBuilder.group({
31301
31312
  empty: [null, Validators.required],
31302
31313
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -31309,7 +31320,7 @@ class SwipeTestPage {
31309
31320
  ngOnInit() {
31310
31321
  const dates = [];
31311
31322
  for (let d = 0; d < 7; d++) {
31312
- dates[d] = moment(this._today).add(d - 3, 'day');
31323
+ dates[d] = moment$4(this._today).add(d - 3, 'day');
31313
31324
  }
31314
31325
  this.$dates.next(dates);
31315
31326
  this.loadData();
@@ -31346,6 +31357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
31346
31357
  args: [{ selector: 'app-swipe-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Swipe test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Swipe page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <!-- empty -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"empty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [tabindex]=\"1\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- date -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"date\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"2\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled empty\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledEmpty\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"3\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n<!-- read-only-->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled with date\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-swipe-field formControlName=\"disabledDate\"\n placeholder=\"placeholder\"\n [items]=\"$dates\"\n [displayWith]=\"displayDate()\"\n [equals]=\"compareDate()\"\n [clearable]=\"true\"\n [tabindex]=\"4\"\n [debug]=\"true\"\n >\n </mat-swipe-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n" }]
31347
31358
  }], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: DateFormatPipe }]; } });
31348
31359
 
31360
+ const moment$3 = momentImported;
31349
31361
  class DateTimeTestPage {
31350
31362
  constructor(platform, formBuilder, cd) {
31351
31363
  this.platform = platform;
@@ -31379,7 +31391,7 @@ class DateTimeTestPage {
31379
31391
  // Load the form with data
31380
31392
  loadData() {
31381
31393
  return __awaiter(this, void 0, void 0, function* () {
31382
- const now = moment();
31394
+ const now = moment$3();
31383
31395
  const data = {
31384
31396
  empty: null,
31385
31397
  emptyRequired: null,
@@ -31619,6 +31631,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
31619
31631
  args: [{ selector: 'app-numpad-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Numeric pad test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <h1>Numpad test page:</h1>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Decimal field, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"empty\" placeholder=\"Empty decimal field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDecimal\"\n readonly>\n <mat-numpad [decimal]=\"true\" #numpadDecimal></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- filled -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Integer field\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"integer\" placeholder=\"Filled integer field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadInteger\">\n <mat-numpad #numpadInteger [decimal]=\"false\"></mat-numpad>\n\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- append to input -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Attach to input, readonly\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"text\" formControlName=\"integer\" placeholder=\"A number\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadAppendToInput\"\n readonly>\n <mat-numpad #numpadAppendToInput [appendToInput]=\"true\"></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field >\n <input matInput type=\"number\" formControlName=\"disable\" placeholder=\"Disabled field\"\n autocomplete=\"off\"\n [matNumpad]=\"numpadDisabled\">\n <mat-numpad #numpadDisabled></mat-numpad>\n </mat-form-field>\n\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n <!-- Other field (for comparision) -->\n <ion-row><ion-col><ion-text><h4>Other field type (for style comparision)</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Mat date time\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-date-time-field formControlName=\"datetime\" placeholder=\"Date/Time field (desktop)\">\n </mat-date-time-field>\n\n <mat-date-time-field formControlName=\"datetime\"\n placeholder=\"Date/Time field (mobile)\"\n [mobile]=\"true\">\n </mat-date-time-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n" }]
31620
31632
  }], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
31621
31633
 
31634
+ const moment$2 = momentImported;
31622
31635
  class DateTestPage {
31623
31636
  constructor(formBuilder, cd) {
31624
31637
  this.formBuilder = formBuilder;
@@ -31651,7 +31664,7 @@ class DateTestPage {
31651
31664
  // Load the form with data
31652
31665
  loadData() {
31653
31666
  return __awaiter(this, void 0, void 0, function* () {
31654
- const now = moment();
31667
+ const now = moment$2();
31655
31668
  const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
31656
31669
  const data = {
31657
31670
  empty: null,
@@ -31714,6 +31727,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
31714
31727
  args: [{ selector: 'app-data-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Date field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n\n <ion-grid>\n\n <!-- debugging memory leak -->\n <ion-row><ion-col><ion-text><h4>Debug memory leak</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col size=\"auto\">\n <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\">Start timer</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\">Stop timer</ion-button>\n </ion-col>\n <ion-col size=\"4\">\n <mat-form-field floatLabel=\"never\">\n <input matInput type=\"text\" hidden>\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [checked]=\"memoryMobile\">\n Mobile ?\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n <ion-col>\n <mat-date-field formControlName=\"empty\"\n *ngIf=\"!memoryHide\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"memoryMobile\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-col>\n </ion-row>\n\n <!-- Mobile mode -->\n <ion-row><ion-col><ion-text><h4>Mobile mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value (required)\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.emptyRequired.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"emptyRequired\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value=\"{{stringify(form.controls.timezone.value)}}\"</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"true\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Readonly -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly toggle\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.readonly.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-checkbox (change)=\"mobileReadonlyField.readonly=$event.checked\" [checked]=\"mobileReadonlyField.readonly\">\n </mat-checkbox>\n\n <mat-date-field #mobileReadonlyField formControlName=\"readonly\"\n placeholder=\"Date\"\n [readonly]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n <!-- debug console -->\n <ion-row>\n <!-- buttons -->\n <ion-col size=\"2\">\n <!-- submit form -->\n <ion-button (click)=\"doSubmit($event)\"\n fill=\"outline\">\n <ion-icon name=\"checkmark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n\n <!-- clear log -->\n <ion-button (click)=\"clearLogPanel()\"\n fill=\"outline\">\n <ion-icon name=\"trash\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"10\" *ngIf=\"showLogPanel\">\n <ion-text color=\"primary\">Log:<br/></ion-text>\n <div class=\"ion-padding-start\">\n <ion-text color=\"medium\">\n <small [innerHTML]=\"logContent\"></small>\n </ion-text>\n </div>\n </ion-col>\n </ion-row>\n\n <hr/>\n\n <!-- Desktop mode -->\n <ion-row><ion-col><ion-text><h4>Desktop mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value (required)\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.emptyRequired.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"emptyRequired\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value={{stringify(form.controls.timezone.value)}}</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"false\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Readonly -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly toggle\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.readonly.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-checkbox (change)=\"desktopReadonlyField.readonly=$event.checked\" [checked]=\"desktopReadonlyField.readonly\">\n </mat-checkbox>\n\n <mat-date-field #desktopReadonlyField formControlName=\"readonly\"\n placeholder=\"Date\"\n [readonly]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n\n </form>\n</ion-content>\n" }]
31715
31728
  }], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }]; } });
31716
31729
 
31730
+ const moment$1 = momentImported;
31717
31731
  class ObservableTestPage {
31718
31732
  constructor() {
31719
31733
  this._stopSubject = new Subject();
@@ -31781,7 +31795,7 @@ class ObservableTestPage {
31781
31795
  this._stopSubject.next();
31782
31796
  }
31783
31797
  log(message, ...args) {
31784
- let fullMessage = `${toDateISOString(moment())} - ${message}`;
31798
+ let fullMessage = `${toDateISOString(moment$1())} - ${message}`;
31785
31799
  if (args === null || args === void 0 ? void 0 : args.length) {
31786
31800
  fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
31787
31801
  }
@@ -33216,6 +33230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
33216
33230
  }] }];
33217
33231
  } });
33218
33232
 
33233
+ const moment = momentImported;
33219
33234
  class UserEventTestingPage {
33220
33235
  constructor(userEventService, router, alertController, translateService) {
33221
33236
  this.userEventService = userEventService;