@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.
- package/esm2020/src/app/core/graphql/graphql.utils.mjs +3 -2
- package/esm2020/src/app/core/services/local-settings.service.mjs +3 -2
- package/esm2020/src/app/core/services/platform.service.mjs +3 -2
- package/esm2020/src/app/shared/dates.mjs +3 -2
- package/esm2020/src/app/shared/file/file.service.mjs +3 -2
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +3 -2
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -2
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -2
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -2
- package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -2
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +3 -2
- package/esm2020/src/app/shared/testing/observable.test.mjs +3 -2
- package/esm2020/src/app/shared/validator/validators.mjs +3 -2
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +3 -2
- package/esm2020/src/app/social/user-event/user-event.service.mjs +3 -2
- package/fesm2015/sumaris-net.ngx-components.mjs +43 -28
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +43 -28
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/dates.d.ts +0 -1
- package/src/app/shared/validator/validators.d.ts +0 -1
|
@@ -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
|
|
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
|
|
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;
|