@sumaris-net/ngx-components 2.0.0-rc21 → 2.0.0-rc23
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/services/local-settings.service.mjs +5 -7
- package/esm2020/src/app/core/services/platform.service.mjs +6 -7
- package/esm2020/src/app/shared/dates.mjs +27 -10
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +2 -4
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +2 -4
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +2 -4
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -5
- package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +4 -5
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -5
- package/esm2020/src/app/shared/testing/observable.test.mjs +3 -5
- package/esm2020/src/app/shared/validator/validators.mjs +3 -2
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +9 -8
- package/esm2020/src/app/social/user-event/user-event.service.mjs +3 -3
- package/fesm2015/sumaris-net.ngx-components.mjs +179 -172
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +179 -172
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/dates.d.ts +7 -0
|
@@ -66,8 +66,8 @@ 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
|
|
70
|
-
import { isMoment } from 'moment';
|
|
69
|
+
import * as momentNamespace from 'moment';
|
|
70
|
+
import { isMoment, locale } from 'moment';
|
|
71
71
|
import * as i1 from '@angular/material-moment-adapter';
|
|
72
72
|
import { MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
73
73
|
import 'moment-timezone';
|
|
@@ -2543,7 +2543,153 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
2543
2543
|
type: Input
|
|
2544
2544
|
}] } });
|
|
2545
2545
|
|
|
2546
|
-
const
|
|
2546
|
+
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2547
|
+
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2548
|
+
const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
|
|
2549
|
+
class DateUtils {
|
|
2550
|
+
static isEsModule(value) {
|
|
2551
|
+
return value && value['__esModule'] === true;
|
|
2552
|
+
}
|
|
2553
|
+
static get moment() {
|
|
2554
|
+
if (this.__momentResolved)
|
|
2555
|
+
return this.__momentResolved;
|
|
2556
|
+
if (this.isEsModule(momentNamespace)) {
|
|
2557
|
+
this.__momentResolved = momentNamespace.default;
|
|
2558
|
+
return this.__momentResolved;
|
|
2559
|
+
}
|
|
2560
|
+
if (typeof moment$3['isMoment'] === 'function') {
|
|
2561
|
+
this.__momentResolved = momentNamespace;
|
|
2562
|
+
return this.__momentResolved;
|
|
2563
|
+
}
|
|
2564
|
+
throw Error('Cannot find a valid \'moment\' namespace');
|
|
2565
|
+
}
|
|
2566
|
+
static min(date1, date2) {
|
|
2567
|
+
return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
|
|
2568
|
+
}
|
|
2569
|
+
static max(date1, date2) {
|
|
2570
|
+
return date1 && (!date2 || date1.isSameOrAfter(date2)) ? date1 : date2;
|
|
2571
|
+
}
|
|
2572
|
+
static equals(date1, date2) {
|
|
2573
|
+
return DateUtils.isSame(date1, date2);
|
|
2574
|
+
}
|
|
2575
|
+
static isSame(date1, date2, granularity) {
|
|
2576
|
+
const d1 = fromDateISOString(date1);
|
|
2577
|
+
const d2 = fromDateISOString(date2);
|
|
2578
|
+
return (!d1 && !d2) || d1.isSame(d2, granularity);
|
|
2579
|
+
}
|
|
2580
|
+
/**
|
|
2581
|
+
* Create a copy of a date, without time fields (always return a new Moment object, or undefined).
|
|
2582
|
+
* Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
|
|
2583
|
+
* @param value
|
|
2584
|
+
* @param timezone a timezone (see https://momentjs.com/timezone/)
|
|
2585
|
+
* @param keepLocalTime if true, only the timezone (and offset) is updated, keeping the local time same. Consequently, it will now point to a different point in time if the offset has changed.
|
|
2586
|
+
*/
|
|
2587
|
+
static resetTime(value, timezone, keepLocalTime) {
|
|
2588
|
+
if (!value)
|
|
2589
|
+
return undefined;
|
|
2590
|
+
const date = fromDateISOString(value);
|
|
2591
|
+
// No timezone
|
|
2592
|
+
if (!timezone) {
|
|
2593
|
+
return date.clone().startOf('day');
|
|
2594
|
+
}
|
|
2595
|
+
// Use timezone
|
|
2596
|
+
return date.clone() // clone the original date
|
|
2597
|
+
.tz(timezone, keepLocalTime)
|
|
2598
|
+
.startOf('day');
|
|
2599
|
+
}
|
|
2600
|
+
static markNoTime(value) {
|
|
2601
|
+
if (!value)
|
|
2602
|
+
return undefined;
|
|
2603
|
+
value[MOMENT_NO_TIME_PROPERTY] = true;
|
|
2604
|
+
return value;
|
|
2605
|
+
}
|
|
2606
|
+
static isNoTime(value) {
|
|
2607
|
+
return (value === null || value === void 0 ? void 0 : value[MOMENT_NO_TIME_PROPERTY]) === true;
|
|
2608
|
+
}
|
|
2609
|
+
/**
|
|
2610
|
+
* Test if a date is on the given day of week
|
|
2611
|
+
* @param date
|
|
2612
|
+
* @param weekday
|
|
2613
|
+
* @param timezone
|
|
2614
|
+
*/
|
|
2615
|
+
static isAtDay(date, weekday, timezone) {
|
|
2616
|
+
let momentDate = date && fromDateISOString(date);
|
|
2617
|
+
if (!momentDate)
|
|
2618
|
+
return null;
|
|
2619
|
+
if (timezone)
|
|
2620
|
+
momentDate = momentDate.clone().tz(timezone).startOf('day');
|
|
2621
|
+
return momentDate.day() === weekday;
|
|
2622
|
+
}
|
|
2623
|
+
}
|
|
2624
|
+
DateUtils.toDateISOString = toDateISOString;
|
|
2625
|
+
DateUtils.fromDateISOString = fromDateISOString;
|
|
2626
|
+
DateUtils.toDuration = toDuration;
|
|
2627
|
+
function toDateISOString(value) {
|
|
2628
|
+
if (!value)
|
|
2629
|
+
return undefined;
|
|
2630
|
+
// Already a valid ISO date time string (without timezone): use it
|
|
2631
|
+
if (typeof value === 'string'
|
|
2632
|
+
&& value.indexOf('+') === -1
|
|
2633
|
+
&& value.lastIndexOf('Z') === value.length - 1) {
|
|
2634
|
+
return value;
|
|
2635
|
+
}
|
|
2636
|
+
// Make sure to have a Moment object
|
|
2637
|
+
const date = fromDateISOString(value);
|
|
2638
|
+
if (!date)
|
|
2639
|
+
return undefined;
|
|
2640
|
+
return DateUtils.isNoTime(date)
|
|
2641
|
+
? date.toISOString(true /* important ! */).substr(0, 10)
|
|
2642
|
+
: date.toISOString();
|
|
2643
|
+
}
|
|
2644
|
+
function fromDateISOString(value) {
|
|
2645
|
+
// Already a moment object: use it
|
|
2646
|
+
if (!value || isMoment(value))
|
|
2647
|
+
return value;
|
|
2648
|
+
if (typeof value === 'string' && value.length === 10) {
|
|
2649
|
+
// Parse the input value, as a date only
|
|
2650
|
+
const dateOnly = DateUtils.moment(value, DATE_PATTERN);
|
|
2651
|
+
if (dateOnly.isValid())
|
|
2652
|
+
return DateUtils.markNoTime(dateOnly);
|
|
2653
|
+
}
|
|
2654
|
+
// Parse the input value, as a ISO date time
|
|
2655
|
+
const date = DateUtils.moment(value, DATE_ISO_PATTERN);
|
|
2656
|
+
if (date.isValid())
|
|
2657
|
+
return date;
|
|
2658
|
+
// Not valid: trying to convert from unix timestamp
|
|
2659
|
+
if (typeof value === 'string') {
|
|
2660
|
+
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2661
|
+
if (value.length === 10) {
|
|
2662
|
+
return DateUtils.moment(value, DATE_UNIX_TIMESTAMP);
|
|
2663
|
+
}
|
|
2664
|
+
else if (value.length === 13) {
|
|
2665
|
+
return DateUtils.moment(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2666
|
+
}
|
|
2667
|
+
}
|
|
2668
|
+
console.warn('Unable to parse date: ' + value);
|
|
2669
|
+
return undefined;
|
|
2670
|
+
}
|
|
2671
|
+
function fromUnixTimestamp(timeInSec) {
|
|
2672
|
+
return DateUtils.moment(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2673
|
+
}
|
|
2674
|
+
function fromUnixMsTimestamp(timeInMs) {
|
|
2675
|
+
return DateUtils.moment(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2676
|
+
}
|
|
2677
|
+
function toDuration(value, unit) {
|
|
2678
|
+
if (!value)
|
|
2679
|
+
return undefined;
|
|
2680
|
+
const duration = DateUtils.moment.duration(value, unit);
|
|
2681
|
+
// fix 990+ ms
|
|
2682
|
+
if (duration.milliseconds() >= 990) {
|
|
2683
|
+
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
2684
|
+
}
|
|
2685
|
+
// fix 59 s
|
|
2686
|
+
if (duration.seconds() >= 59) {
|
|
2687
|
+
duration.add(60 - duration.seconds(), 's');
|
|
2688
|
+
}
|
|
2689
|
+
return duration;
|
|
2690
|
+
}
|
|
2691
|
+
const moment$3 = DateUtils.moment;
|
|
2692
|
+
|
|
2547
2693
|
class DateDiffDurationPipe {
|
|
2548
2694
|
constructor(dateAdapter, translate) {
|
|
2549
2695
|
this.dateAdapter = dateAdapter;
|
|
@@ -2559,11 +2705,11 @@ class DateDiffDurationPipe {
|
|
|
2559
2705
|
return this.format(startDate, endDate, args);
|
|
2560
2706
|
}
|
|
2561
2707
|
format(startDate, endDate, args) {
|
|
2562
|
-
const duration = moment
|
|
2708
|
+
const duration = DateUtils.moment.duration(endDate.diff(startDate));
|
|
2563
2709
|
if (duration.asMinutes() < 0)
|
|
2564
2710
|
return '';
|
|
2565
2711
|
const withSeconds = args === null || args === void 0 ? void 0 : args.seconds;
|
|
2566
|
-
const timeDuration = moment
|
|
2712
|
+
const timeDuration = DateUtils.moment(0)
|
|
2567
2713
|
.hour(duration.hours())
|
|
2568
2714
|
.minute(duration.minutes());
|
|
2569
2715
|
if (withSeconds) {
|
|
@@ -2998,137 +3144,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
2998
3144
|
args: [{ name: 'fileSize' }]
|
|
2999
3145
|
}] });
|
|
3000
3146
|
|
|
3001
|
-
const moment$b = momentImported;
|
|
3002
|
-
const DATE_UNIX_TIMESTAMP = 'X';
|
|
3003
|
-
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
3004
|
-
const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
|
|
3005
|
-
class DateUtils {
|
|
3006
|
-
static min(date1, date2) {
|
|
3007
|
-
return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
|
|
3008
|
-
}
|
|
3009
|
-
static max(date1, date2) {
|
|
3010
|
-
return date1 && (!date2 || date1.isSameOrAfter(date2)) ? date1 : date2;
|
|
3011
|
-
}
|
|
3012
|
-
static equals(date1, date2) {
|
|
3013
|
-
return DateUtils.isSame(date1, date2);
|
|
3014
|
-
}
|
|
3015
|
-
static isSame(date1, date2, granularity) {
|
|
3016
|
-
const d1 = fromDateISOString(date1);
|
|
3017
|
-
const d2 = fromDateISOString(date2);
|
|
3018
|
-
return (!d1 && !d2) || d1.isSame(d2, granularity);
|
|
3019
|
-
}
|
|
3020
|
-
/**
|
|
3021
|
-
* Create a copy of a date, without time fields (always return a new Moment object, or undefined).
|
|
3022
|
-
* Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
|
|
3023
|
-
* @param value
|
|
3024
|
-
* @param timezone a timezone (see https://momentjs.com/timezone/)
|
|
3025
|
-
* @param keepLocalTime if true, only the timezone (and offset) is updated, keeping the local time same. Consequently, it will now point to a different point in time if the offset has changed.
|
|
3026
|
-
*/
|
|
3027
|
-
static resetTime(value, timezone, keepLocalTime) {
|
|
3028
|
-
if (!value)
|
|
3029
|
-
return undefined;
|
|
3030
|
-
const date = fromDateISOString(value);
|
|
3031
|
-
// No timezone
|
|
3032
|
-
if (!timezone) {
|
|
3033
|
-
return date.clone().startOf('day');
|
|
3034
|
-
}
|
|
3035
|
-
// Use timezone
|
|
3036
|
-
return date.clone() // clone the original date
|
|
3037
|
-
.tz(timezone, keepLocalTime)
|
|
3038
|
-
.startOf('day');
|
|
3039
|
-
}
|
|
3040
|
-
static markNoTime(value) {
|
|
3041
|
-
if (!value)
|
|
3042
|
-
return undefined;
|
|
3043
|
-
value[MOMENT_NO_TIME_PROPERTY] = true;
|
|
3044
|
-
return value;
|
|
3045
|
-
}
|
|
3046
|
-
static isNoTime(value) {
|
|
3047
|
-
return (value === null || value === void 0 ? void 0 : value[MOMENT_NO_TIME_PROPERTY]) === true;
|
|
3048
|
-
}
|
|
3049
|
-
/**
|
|
3050
|
-
* Test if a date is on the given day of week
|
|
3051
|
-
* @param date
|
|
3052
|
-
* @param weekday
|
|
3053
|
-
* @param timezone
|
|
3054
|
-
*/
|
|
3055
|
-
static isAtDay(date, weekday, timezone) {
|
|
3056
|
-
let momentDate = date && fromDateISOString(date);
|
|
3057
|
-
if (!momentDate)
|
|
3058
|
-
return null;
|
|
3059
|
-
if (timezone)
|
|
3060
|
-
momentDate = momentDate.clone().tz(timezone).startOf('day');
|
|
3061
|
-
return momentDate.day() === weekday;
|
|
3062
|
-
}
|
|
3063
|
-
}
|
|
3064
|
-
DateUtils.toDateISOString = toDateISOString;
|
|
3065
|
-
DateUtils.fromDateISOString = fromDateISOString;
|
|
3066
|
-
DateUtils.toDuration = toDuration;
|
|
3067
|
-
function toDateISOString(value) {
|
|
3068
|
-
if (!value)
|
|
3069
|
-
return undefined;
|
|
3070
|
-
// Already a valid ISO date time string (without timezone): use it
|
|
3071
|
-
if (typeof value === 'string'
|
|
3072
|
-
&& value.indexOf('+') === -1
|
|
3073
|
-
&& value.lastIndexOf('Z') === value.length - 1) {
|
|
3074
|
-
return value;
|
|
3075
|
-
}
|
|
3076
|
-
// Make sure to have a Moment object
|
|
3077
|
-
const date = fromDateISOString(value);
|
|
3078
|
-
if (!date)
|
|
3079
|
-
return undefined;
|
|
3080
|
-
return DateUtils.isNoTime(date)
|
|
3081
|
-
? date.toISOString(true /* important ! */).substr(0, 10)
|
|
3082
|
-
: date.toISOString();
|
|
3083
|
-
}
|
|
3084
|
-
function fromDateISOString(value) {
|
|
3085
|
-
// Already a moment object: use it
|
|
3086
|
-
if (!value || isMoment(value))
|
|
3087
|
-
return value;
|
|
3088
|
-
if (typeof value === 'string' && value.length === 10) {
|
|
3089
|
-
// Parse the input value, as a date only
|
|
3090
|
-
const dateOnly = moment$b(value, DATE_PATTERN);
|
|
3091
|
-
if (dateOnly.isValid())
|
|
3092
|
-
return DateUtils.markNoTime(dateOnly);
|
|
3093
|
-
}
|
|
3094
|
-
// Parse the input value, as a ISO date time
|
|
3095
|
-
const date = moment$b(value, DATE_ISO_PATTERN);
|
|
3096
|
-
if (date.isValid())
|
|
3097
|
-
return date;
|
|
3098
|
-
// Not valid: trying to convert from unix timestamp
|
|
3099
|
-
if (typeof value === 'string') {
|
|
3100
|
-
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
3101
|
-
if (value.length === 10) {
|
|
3102
|
-
return moment$b(value, DATE_UNIX_TIMESTAMP);
|
|
3103
|
-
}
|
|
3104
|
-
else if (value.length === 13) {
|
|
3105
|
-
return moment$b(value, DATE_UNIX_MS_TIMESTAMP);
|
|
3106
|
-
}
|
|
3107
|
-
}
|
|
3108
|
-
console.warn('Unable to parse date: ' + value);
|
|
3109
|
-
return undefined;
|
|
3110
|
-
}
|
|
3111
|
-
function fromUnixTimestamp(timeInSec) {
|
|
3112
|
-
return moment$b(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
3113
|
-
}
|
|
3114
|
-
function fromUnixMsTimestamp(timeInMs) {
|
|
3115
|
-
return moment$b(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
3116
|
-
}
|
|
3117
|
-
function toDuration(value, unit) {
|
|
3118
|
-
if (!value)
|
|
3119
|
-
return undefined;
|
|
3120
|
-
const duration = moment$b.duration(value, unit);
|
|
3121
|
-
// fix 990+ ms
|
|
3122
|
-
if (duration.milliseconds() >= 990) {
|
|
3123
|
-
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
3124
|
-
}
|
|
3125
|
-
// fix 59 s
|
|
3126
|
-
if (duration.seconds() >= 59) {
|
|
3127
|
-
duration.add(60 - duration.seconds(), 's');
|
|
3128
|
-
}
|
|
3129
|
-
return duration;
|
|
3130
|
-
}
|
|
3131
|
-
|
|
3132
3147
|
class DurationPipe {
|
|
3133
3148
|
constructor(translate) {
|
|
3134
3149
|
this.translate = translate;
|
|
@@ -3393,7 +3408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
3393
3408
|
type: Injectable
|
|
3394
3409
|
}] });
|
|
3395
3410
|
|
|
3396
|
-
const moment$
|
|
3411
|
+
const moment$2 = momentNamespace;
|
|
3397
3412
|
// @dynamic
|
|
3398
3413
|
class SharedValidators {
|
|
3399
3414
|
static getDoubleRegexp(maxDecimals) {
|
|
@@ -3474,7 +3489,7 @@ class SharedValidators {
|
|
|
3474
3489
|
}
|
|
3475
3490
|
static validDate(control) {
|
|
3476
3491
|
const value = control.value;
|
|
3477
|
-
const date = !value ||
|
|
3492
|
+
const date = !value || isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
|
|
3478
3493
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3479
3494
|
return { validDate: true };
|
|
3480
3495
|
}
|
|
@@ -5711,7 +5726,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
5711
5726
|
}]
|
|
5712
5727
|
}] });
|
|
5713
5728
|
|
|
5714
|
-
const moment$9 = momentImported;
|
|
5715
5729
|
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
5716
5730
|
provide: NG_VALUE_ACCESSOR,
|
|
5717
5731
|
useExisting: forwardRef(() => MatDate),
|
|
@@ -5893,7 +5907,7 @@ class MatDate {
|
|
|
5893
5907
|
// No value, but mobile mode: use the current date
|
|
5894
5908
|
if (!value && this.mobile) {
|
|
5895
5909
|
this._writing = true;
|
|
5896
|
-
value = DateUtils.resetTime(moment
|
|
5910
|
+
value = DateUtils.resetTime(DateUtils.moment().locale(this.locale), this.timezone);
|
|
5897
5911
|
this.formControl.setValue(value, { emitEvent: false });
|
|
5898
5912
|
this.markForCheck();
|
|
5899
5913
|
this._writing = false;
|
|
@@ -6072,7 +6086,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
6072
6086
|
args: ['matInput', { static: false }]
|
|
6073
6087
|
}] } });
|
|
6074
6088
|
|
|
6075
|
-
const moment$8 = momentImported;
|
|
6076
6089
|
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
6077
6090
|
provide: NG_VALUE_ACCESSOR,
|
|
6078
6091
|
useExisting: forwardRef(() => MatDateTime),
|
|
@@ -6267,7 +6280,7 @@ class MatDateTime {
|
|
|
6267
6280
|
// No value, but mobile mode: use the current date
|
|
6268
6281
|
if (!value && this.mobile) {
|
|
6269
6282
|
this._writing = true;
|
|
6270
|
-
value = DateUtils.resetTime(moment
|
|
6283
|
+
value = DateUtils.resetTime(DateUtils.moment().locale(this.locale));
|
|
6271
6284
|
this.formControl.setValue(value, { emitEvent: false });
|
|
6272
6285
|
this.markForCheck();
|
|
6273
6286
|
this._writing = false;
|
|
@@ -13126,7 +13139,6 @@ Peer = Peer_1 = __decorate([
|
|
|
13126
13139
|
EntityClass({ typename: 'PeerVO' })
|
|
13127
13140
|
], Peer);
|
|
13128
13141
|
|
|
13129
|
-
const moment$7 = momentImported;
|
|
13130
13142
|
const SETTINGS_STORAGE_KEY = 'settings';
|
|
13131
13143
|
const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
13132
13144
|
// fixme: this constant points to static environment
|
|
@@ -13364,11 +13376,11 @@ class LocalSettingsService extends StartableService {
|
|
|
13364
13376
|
if (!feature) {
|
|
13365
13377
|
feature = {
|
|
13366
13378
|
name: featureName.toLowerCase(),
|
|
13367
|
-
lastSyncDate: moment
|
|
13379
|
+
lastSyncDate: DateUtils.moment().toISOString()
|
|
13368
13380
|
};
|
|
13369
13381
|
}
|
|
13370
13382
|
else {
|
|
13371
|
-
feature.lastSyncDate = moment
|
|
13383
|
+
feature.lastSyncDate = DateUtils.moment().toISOString();
|
|
13372
13384
|
}
|
|
13373
13385
|
this.saveOfflineFeature(feature);
|
|
13374
13386
|
}
|
|
@@ -13529,7 +13541,7 @@ class LocalSettingsService extends StartableService {
|
|
|
13529
13541
|
if (!page || !page.title || !page.path)
|
|
13530
13542
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
13531
13543
|
// Set time
|
|
13532
|
-
page.time = page.time || moment
|
|
13544
|
+
page.time = page.time || DateUtils.moment();
|
|
13533
13545
|
// Clean the title (remove <small> tags)
|
|
13534
13546
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
13535
13547
|
const tagIndex = page.title.indexOf('</small>');
|
|
@@ -17573,7 +17585,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
17573
17585
|
}] }];
|
|
17574
17586
|
} });
|
|
17575
17587
|
|
|
17576
|
-
const moment$6 = momentImported;
|
|
17577
17588
|
const AndroidOsEnvironment = Object.freeze({
|
|
17578
17589
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17579
17590
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads', // Old name, for older Android version
|
|
@@ -17853,16 +17864,16 @@ class PlatformService extends StartableService {
|
|
|
17853
17864
|
}
|
|
17854
17865
|
// config moment lib
|
|
17855
17866
|
try {
|
|
17856
|
-
|
|
17867
|
+
locale(event.lang);
|
|
17857
17868
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
17858
17869
|
}
|
|
17859
17870
|
// If error, fallback to en
|
|
17860
17871
|
catch (err) {
|
|
17861
|
-
|
|
17862
|
-
console.warn('[platform] Unknown
|
|
17872
|
+
locale('en');
|
|
17873
|
+
console.warn('[platform] Unknown locale for moment lib. Using default [en]');
|
|
17863
17874
|
}
|
|
17864
17875
|
// Config date adapter
|
|
17865
|
-
this.dateAdapter.setLocale(
|
|
17876
|
+
this.dateAdapter.setLocale(locale());
|
|
17866
17877
|
}
|
|
17867
17878
|
});
|
|
17868
17879
|
this.settings.onChange.subscribe(data => {
|
|
@@ -29014,7 +29025,7 @@ const SocialErrorCodes = {
|
|
|
29014
29025
|
SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
|
|
29015
29026
|
};
|
|
29016
29027
|
|
|
29017
|
-
const moment$
|
|
29028
|
+
const moment$1 = momentNamespace;
|
|
29018
29029
|
const APP_USER_EVENT_SERVICE = new InjectionToken('UserEventService');
|
|
29019
29030
|
class AbstractUserEventService extends BaseGraphqlService {
|
|
29020
29031
|
constructor(graphql, accountService, network, translate, options) {
|
|
@@ -29390,7 +29401,7 @@ class AbstractUserEventService extends BaseGraphqlService {
|
|
|
29390
29401
|
}
|
|
29391
29402
|
resetCount() {
|
|
29392
29403
|
this._countSubject.next(undefined);
|
|
29393
|
-
this.resetCountDate = moment
|
|
29404
|
+
this.resetCountDate = DateUtils.moment();
|
|
29394
29405
|
// restart listening count changes
|
|
29395
29406
|
this.startListenCountChanges();
|
|
29396
29407
|
}
|
|
@@ -29449,7 +29460,7 @@ class AbstractUserEventService extends BaseGraphqlService {
|
|
|
29449
29460
|
if (!userEvents.length)
|
|
29450
29461
|
return;
|
|
29451
29462
|
// set read date
|
|
29452
|
-
userEvents.forEach(userEvent => userEvent.readDate = moment
|
|
29463
|
+
userEvents.forEach(userEvent => userEvent.readDate = DateUtils.moment());
|
|
29453
29464
|
// split local/remote entities
|
|
29454
29465
|
const localEntities = userEvents.filter(EntityUtils.isLocal);
|
|
29455
29466
|
const remoteEntities = userEvents.filter(EntityUtils.isRemote);
|
|
@@ -31301,13 +31312,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
31301
31312
|
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" }]
|
|
31302
31313
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
|
|
31303
31314
|
|
|
31304
|
-
const moment$4 = momentImported;
|
|
31305
31315
|
class SwipeTestPage {
|
|
31306
31316
|
constructor(formBuilder, dateFormatPipe) {
|
|
31307
31317
|
this.formBuilder = formBuilder;
|
|
31308
31318
|
this.dateFormatPipe = dateFormatPipe;
|
|
31309
31319
|
this.$dates = new BehaviorSubject(undefined);
|
|
31310
|
-
this._today = moment
|
|
31320
|
+
this._today = DateUtils.moment().startOf('day');
|
|
31311
31321
|
this.form = formBuilder.group({
|
|
31312
31322
|
empty: [null, Validators.required],
|
|
31313
31323
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -31320,7 +31330,7 @@ class SwipeTestPage {
|
|
|
31320
31330
|
ngOnInit() {
|
|
31321
31331
|
const dates = [];
|
|
31322
31332
|
for (let d = 0; d < 7; d++) {
|
|
31323
|
-
dates[d] = moment
|
|
31333
|
+
dates[d] = DateUtils.moment(this._today).add(d - 3, 'day');
|
|
31324
31334
|
}
|
|
31325
31335
|
this.$dates.next(dates);
|
|
31326
31336
|
this.loadData();
|
|
@@ -31357,7 +31367,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
31357
31367
|
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" }]
|
|
31358
31368
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: DateFormatPipe }]; } });
|
|
31359
31369
|
|
|
31360
|
-
const moment$3 = momentImported;
|
|
31361
31370
|
class DateTimeTestPage {
|
|
31362
31371
|
constructor(platform, formBuilder, cd) {
|
|
31363
31372
|
this.platform = platform;
|
|
@@ -31391,7 +31400,7 @@ class DateTimeTestPage {
|
|
|
31391
31400
|
// Load the form with data
|
|
31392
31401
|
loadData() {
|
|
31393
31402
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31394
|
-
const now = moment
|
|
31403
|
+
const now = DateUtils.moment();
|
|
31395
31404
|
const data = {
|
|
31396
31405
|
empty: null,
|
|
31397
31406
|
emptyRequired: null,
|
|
@@ -31631,7 +31640,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
31631
31640
|
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" }]
|
|
31632
31641
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
|
|
31633
31642
|
|
|
31634
|
-
const moment$2 = momentImported;
|
|
31635
31643
|
class DateTestPage {
|
|
31636
31644
|
constructor(formBuilder, cd) {
|
|
31637
31645
|
this.formBuilder = formBuilder;
|
|
@@ -31664,7 +31672,7 @@ class DateTestPage {
|
|
|
31664
31672
|
// Load the form with data
|
|
31665
31673
|
loadData() {
|
|
31666
31674
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31667
|
-
const now = moment
|
|
31675
|
+
const now = DateUtils.moment();
|
|
31668
31676
|
const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
31669
31677
|
const data = {
|
|
31670
31678
|
empty: null,
|
|
@@ -31727,7 +31735,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
31727
31735
|
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" }]
|
|
31728
31736
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }]; } });
|
|
31729
31737
|
|
|
31730
|
-
const moment$1 = momentImported;
|
|
31731
31738
|
class ObservableTestPage {
|
|
31732
31739
|
constructor() {
|
|
31733
31740
|
this._stopSubject = new Subject();
|
|
@@ -31795,7 +31802,7 @@ class ObservableTestPage {
|
|
|
31795
31802
|
this._stopSubject.next();
|
|
31796
31803
|
}
|
|
31797
31804
|
log(message, ...args) {
|
|
31798
|
-
let fullMessage = `${toDateISOString(moment
|
|
31805
|
+
let fullMessage = `${toDateISOString(DateUtils.moment())} - ${message}`;
|
|
31799
31806
|
if (args === null || args === void 0 ? void 0 : args.length) {
|
|
31800
31807
|
fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
|
|
31801
31808
|
}
|
|
@@ -33230,7 +33237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
33230
33237
|
}] }];
|
|
33231
33238
|
} });
|
|
33232
33239
|
|
|
33233
|
-
const moment =
|
|
33240
|
+
const moment = momentNamespace;
|
|
33234
33241
|
class UserEventTestingPage {
|
|
33235
33242
|
constructor(userEventService, router, alertController, translateService) {
|
|
33236
33243
|
this.userEventService = userEventService;
|
|
@@ -33291,7 +33298,7 @@ class UserEventTestingPage {
|
|
|
33291
33298
|
type: 'message',
|
|
33292
33299
|
level: 'INFO',
|
|
33293
33300
|
message: 'message test message test message test message test message test message test message test message test',
|
|
33294
|
-
creationDate: moment(),
|
|
33301
|
+
creationDate: DateUtils.moment(),
|
|
33295
33302
|
}));
|
|
33296
33303
|
}
|
|
33297
33304
|
addError() {
|
|
@@ -33301,7 +33308,7 @@ class UserEventTestingPage {
|
|
|
33301
33308
|
type: 'upload',
|
|
33302
33309
|
level: 'ERROR',
|
|
33303
33310
|
message: 'message error',
|
|
33304
|
-
creationDate: moment(),
|
|
33311
|
+
creationDate: DateUtils.moment(),
|
|
33305
33312
|
}));
|
|
33306
33313
|
}
|
|
33307
33314
|
addWarning() {
|
|
@@ -33311,7 +33318,7 @@ class UserEventTestingPage {
|
|
|
33311
33318
|
type: 'download',
|
|
33312
33319
|
level: 'WARNING',
|
|
33313
33320
|
message: 'message warning',
|
|
33314
|
-
creationDate: moment(),
|
|
33321
|
+
creationDate: DateUtils.moment(),
|
|
33315
33322
|
}));
|
|
33316
33323
|
}
|
|
33317
33324
|
addDebug() {
|
|
@@ -33321,7 +33328,7 @@ class UserEventTestingPage {
|
|
|
33321
33328
|
type: 'debug',
|
|
33322
33329
|
level: 'DEBUG',
|
|
33323
33330
|
message: 'message DEBUG',
|
|
33324
|
-
creationDate: moment(),
|
|
33331
|
+
creationDate: DateUtils.moment(),
|
|
33325
33332
|
}));
|
|
33326
33333
|
}
|
|
33327
33334
|
addNotificationWithLink() {
|
|
@@ -33331,7 +33338,7 @@ class UserEventTestingPage {
|
|
|
33331
33338
|
type: 'message',
|
|
33332
33339
|
level: 'INFO',
|
|
33333
33340
|
message: 'message with link',
|
|
33334
|
-
creationDate: moment(),
|
|
33341
|
+
creationDate: DateUtils.moment(),
|
|
33335
33342
|
actions: [{
|
|
33336
33343
|
name: 'click here',
|
|
33337
33344
|
iconRef: {
|
|
@@ -33348,7 +33355,7 @@ class UserEventTestingPage {
|
|
|
33348
33355
|
type: 'message',
|
|
33349
33356
|
level: 'INFO',
|
|
33350
33357
|
message: 'message with action',
|
|
33351
|
-
creationDate: moment(),
|
|
33358
|
+
creationDate: DateUtils.moment(),
|
|
33352
33359
|
actions: [
|
|
33353
33360
|
{
|
|
33354
33361
|
name: 'click here',
|
|
@@ -33420,7 +33427,7 @@ class UserEventTestingPage {
|
|
|
33420
33427
|
type: 'message',
|
|
33421
33428
|
level: 'INFO',
|
|
33422
33429
|
message: 'message with action',
|
|
33423
|
-
creationDate: moment(),
|
|
33430
|
+
creationDate: DateUtils.moment(),
|
|
33424
33431
|
actions: [
|
|
33425
33432
|
{
|
|
33426
33433
|
default: true,
|
|
@@ -33572,5 +33579,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
33572
33579
|
* Generated bundle index. Do not edit.
|
|
33573
33580
|
*/
|
|
33574
33581
|
|
|
33575
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_STORAGE, APP_TESTING_PAGES, APP_USER_EVENT_SERVICE, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AnimationState, AppAboutModalModule, AppAccountModule, AppAuthForm, AppAuthModal, AppAuthModule, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormButtonsBarModule, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppRegisterModule, AppSelectPeerModule, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ED25519_SEED_LENGTH, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments, GalleryTestPage, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBooleanField, MatChipsField, MatColorPipe, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, NumpadTestPage, ObservableTestPage, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, SCRYPT_PARAMS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageService, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEventModule, UserEventNotificationIcon, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UsersPage, ZERO_PLACEHOLDER_CHAR, accountToString, adaptValueToControl, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isCapacitor, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, patchValueInArray, propertiesPathComparator, propertyComparator, propertyPathComparator, pushValueInArray, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
33582
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_STORAGE, APP_TESTING_PAGES, APP_USER_EVENT_SERVICE, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AnimationState, AppAboutModalModule, AppAccountModule, AppAuthForm, AppAuthModal, AppAuthModule, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormButtonsBarModule, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppRegisterModule, AppSelectPeerModule, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ED25519_SEED_LENGTH, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments, GalleryTestPage, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBooleanField, MatChipsField, MatColorPipe, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, NumpadTestPage, ObservableTestPage, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, SCRYPT_PARAMS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageService, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEventModule, UserEventNotificationIcon, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UsersPage, ZERO_PLACEHOLDER_CHAR, accountToString, adaptValueToControl, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isCapacitor, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moment$3 as moment, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, patchValueInArray, propertiesPathComparator, propertyComparator, propertyPathComparator, pushValueInArray, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
33576
33583
|
//# sourceMappingURL=sumaris-net.ngx-components.mjs.map
|