@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
|
@@ -65,8 +65,8 @@ import { Capacitor } from '@capacitor/core';
|
|
|
65
65
|
import { Keyboard } from '@capacitor/keyboard';
|
|
66
66
|
import * as i1$1 from '@ngx-translate/core';
|
|
67
67
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
68
|
-
import * as
|
|
69
|
-
import { isMoment } from 'moment';
|
|
68
|
+
import * as momentNamespace from 'moment';
|
|
69
|
+
import { isMoment, locale } from 'moment';
|
|
70
70
|
import * as i1 from '@angular/material-moment-adapter';
|
|
71
71
|
import { MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
72
72
|
import 'moment-timezone';
|
|
@@ -2530,7 +2530,153 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
2530
2530
|
type: Input
|
|
2531
2531
|
}] } });
|
|
2532
2532
|
|
|
2533
|
-
const
|
|
2533
|
+
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2534
|
+
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2535
|
+
const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
|
|
2536
|
+
class DateUtils {
|
|
2537
|
+
static isEsModule(value) {
|
|
2538
|
+
return value && value['__esModule'] === true;
|
|
2539
|
+
}
|
|
2540
|
+
static get moment() {
|
|
2541
|
+
if (this.__momentResolved)
|
|
2542
|
+
return this.__momentResolved;
|
|
2543
|
+
if (this.isEsModule(momentNamespace)) {
|
|
2544
|
+
this.__momentResolved = momentNamespace.default;
|
|
2545
|
+
return this.__momentResolved;
|
|
2546
|
+
}
|
|
2547
|
+
if (typeof moment$3['isMoment'] === 'function') {
|
|
2548
|
+
this.__momentResolved = momentNamespace;
|
|
2549
|
+
return this.__momentResolved;
|
|
2550
|
+
}
|
|
2551
|
+
throw Error('Cannot find a valid \'moment\' namespace');
|
|
2552
|
+
}
|
|
2553
|
+
static min(date1, date2) {
|
|
2554
|
+
return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
|
|
2555
|
+
}
|
|
2556
|
+
static max(date1, date2) {
|
|
2557
|
+
return date1 && (!date2 || date1.isSameOrAfter(date2)) ? date1 : date2;
|
|
2558
|
+
}
|
|
2559
|
+
static equals(date1, date2) {
|
|
2560
|
+
return DateUtils.isSame(date1, date2);
|
|
2561
|
+
}
|
|
2562
|
+
static isSame(date1, date2, granularity) {
|
|
2563
|
+
const d1 = fromDateISOString(date1);
|
|
2564
|
+
const d2 = fromDateISOString(date2);
|
|
2565
|
+
return (!d1 && !d2) || d1.isSame(d2, granularity);
|
|
2566
|
+
}
|
|
2567
|
+
/**
|
|
2568
|
+
* Create a copy of a date, without time fields (always return a new Moment object, or undefined).
|
|
2569
|
+
* Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
|
|
2570
|
+
* @param value
|
|
2571
|
+
* @param timezone a timezone (see https://momentjs.com/timezone/)
|
|
2572
|
+
* @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.
|
|
2573
|
+
*/
|
|
2574
|
+
static resetTime(value, timezone, keepLocalTime) {
|
|
2575
|
+
if (!value)
|
|
2576
|
+
return undefined;
|
|
2577
|
+
const date = fromDateISOString(value);
|
|
2578
|
+
// No timezone
|
|
2579
|
+
if (!timezone) {
|
|
2580
|
+
return date.clone().startOf('day');
|
|
2581
|
+
}
|
|
2582
|
+
// Use timezone
|
|
2583
|
+
return date.clone() // clone the original date
|
|
2584
|
+
.tz(timezone, keepLocalTime)
|
|
2585
|
+
.startOf('day');
|
|
2586
|
+
}
|
|
2587
|
+
static markNoTime(value) {
|
|
2588
|
+
if (!value)
|
|
2589
|
+
return undefined;
|
|
2590
|
+
value[MOMENT_NO_TIME_PROPERTY] = true;
|
|
2591
|
+
return value;
|
|
2592
|
+
}
|
|
2593
|
+
static isNoTime(value) {
|
|
2594
|
+
return value?.[MOMENT_NO_TIME_PROPERTY] === true;
|
|
2595
|
+
}
|
|
2596
|
+
/**
|
|
2597
|
+
* Test if a date is on the given day of week
|
|
2598
|
+
* @param date
|
|
2599
|
+
* @param weekday
|
|
2600
|
+
* @param timezone
|
|
2601
|
+
*/
|
|
2602
|
+
static isAtDay(date, weekday, timezone) {
|
|
2603
|
+
let momentDate = date && fromDateISOString(date);
|
|
2604
|
+
if (!momentDate)
|
|
2605
|
+
return null;
|
|
2606
|
+
if (timezone)
|
|
2607
|
+
momentDate = momentDate.clone().tz(timezone).startOf('day');
|
|
2608
|
+
return momentDate.day() === weekday;
|
|
2609
|
+
}
|
|
2610
|
+
}
|
|
2611
|
+
DateUtils.toDateISOString = toDateISOString;
|
|
2612
|
+
DateUtils.fromDateISOString = fromDateISOString;
|
|
2613
|
+
DateUtils.toDuration = toDuration;
|
|
2614
|
+
function toDateISOString(value) {
|
|
2615
|
+
if (!value)
|
|
2616
|
+
return undefined;
|
|
2617
|
+
// Already a valid ISO date time string (without timezone): use it
|
|
2618
|
+
if (typeof value === 'string'
|
|
2619
|
+
&& value.indexOf('+') === -1
|
|
2620
|
+
&& value.lastIndexOf('Z') === value.length - 1) {
|
|
2621
|
+
return value;
|
|
2622
|
+
}
|
|
2623
|
+
// Make sure to have a Moment object
|
|
2624
|
+
const date = fromDateISOString(value);
|
|
2625
|
+
if (!date)
|
|
2626
|
+
return undefined;
|
|
2627
|
+
return DateUtils.isNoTime(date)
|
|
2628
|
+
? date.toISOString(true /* important ! */).substr(0, 10)
|
|
2629
|
+
: date.toISOString();
|
|
2630
|
+
}
|
|
2631
|
+
function fromDateISOString(value) {
|
|
2632
|
+
// Already a moment object: use it
|
|
2633
|
+
if (!value || isMoment(value))
|
|
2634
|
+
return value;
|
|
2635
|
+
if (typeof value === 'string' && value.length === 10) {
|
|
2636
|
+
// Parse the input value, as a date only
|
|
2637
|
+
const dateOnly = DateUtils.moment(value, DATE_PATTERN);
|
|
2638
|
+
if (dateOnly.isValid())
|
|
2639
|
+
return DateUtils.markNoTime(dateOnly);
|
|
2640
|
+
}
|
|
2641
|
+
// Parse the input value, as a ISO date time
|
|
2642
|
+
const date = DateUtils.moment(value, DATE_ISO_PATTERN);
|
|
2643
|
+
if (date.isValid())
|
|
2644
|
+
return date;
|
|
2645
|
+
// Not valid: trying to convert from unix timestamp
|
|
2646
|
+
if (typeof value === 'string') {
|
|
2647
|
+
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2648
|
+
if (value.length === 10) {
|
|
2649
|
+
return DateUtils.moment(value, DATE_UNIX_TIMESTAMP);
|
|
2650
|
+
}
|
|
2651
|
+
else if (value.length === 13) {
|
|
2652
|
+
return DateUtils.moment(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
console.warn('Unable to parse date: ' + value);
|
|
2656
|
+
return undefined;
|
|
2657
|
+
}
|
|
2658
|
+
function fromUnixTimestamp(timeInSec) {
|
|
2659
|
+
return DateUtils.moment(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2660
|
+
}
|
|
2661
|
+
function fromUnixMsTimestamp(timeInMs) {
|
|
2662
|
+
return DateUtils.moment(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2663
|
+
}
|
|
2664
|
+
function toDuration(value, unit) {
|
|
2665
|
+
if (!value)
|
|
2666
|
+
return undefined;
|
|
2667
|
+
const duration = DateUtils.moment.duration(value, unit);
|
|
2668
|
+
// fix 990+ ms
|
|
2669
|
+
if (duration.milliseconds() >= 990) {
|
|
2670
|
+
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
2671
|
+
}
|
|
2672
|
+
// fix 59 s
|
|
2673
|
+
if (duration.seconds() >= 59) {
|
|
2674
|
+
duration.add(60 - duration.seconds(), 's');
|
|
2675
|
+
}
|
|
2676
|
+
return duration;
|
|
2677
|
+
}
|
|
2678
|
+
const moment$3 = DateUtils.moment;
|
|
2679
|
+
|
|
2534
2680
|
class DateDiffDurationPipe {
|
|
2535
2681
|
constructor(dateAdapter, translate) {
|
|
2536
2682
|
this.dateAdapter = dateAdapter;
|
|
@@ -2546,11 +2692,11 @@ class DateDiffDurationPipe {
|
|
|
2546
2692
|
return this.format(startDate, endDate, args);
|
|
2547
2693
|
}
|
|
2548
2694
|
format(startDate, endDate, args) {
|
|
2549
|
-
const duration = moment
|
|
2695
|
+
const duration = DateUtils.moment.duration(endDate.diff(startDate));
|
|
2550
2696
|
if (duration.asMinutes() < 0)
|
|
2551
2697
|
return '';
|
|
2552
2698
|
const withSeconds = args?.seconds;
|
|
2553
|
-
const timeDuration = moment
|
|
2699
|
+
const timeDuration = DateUtils.moment(0)
|
|
2554
2700
|
.hour(duration.hours())
|
|
2555
2701
|
.minute(duration.minutes());
|
|
2556
2702
|
if (withSeconds) {
|
|
@@ -2991,137 +3137,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
2991
3137
|
args: [{ name: 'fileSize' }]
|
|
2992
3138
|
}] });
|
|
2993
3139
|
|
|
2994
|
-
const moment$b = momentImported;
|
|
2995
|
-
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2996
|
-
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2997
|
-
const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
|
|
2998
|
-
class DateUtils {
|
|
2999
|
-
static min(date1, date2) {
|
|
3000
|
-
return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
|
|
3001
|
-
}
|
|
3002
|
-
static max(date1, date2) {
|
|
3003
|
-
return date1 && (!date2 || date1.isSameOrAfter(date2)) ? date1 : date2;
|
|
3004
|
-
}
|
|
3005
|
-
static equals(date1, date2) {
|
|
3006
|
-
return DateUtils.isSame(date1, date2);
|
|
3007
|
-
}
|
|
3008
|
-
static isSame(date1, date2, granularity) {
|
|
3009
|
-
const d1 = fromDateISOString(date1);
|
|
3010
|
-
const d2 = fromDateISOString(date2);
|
|
3011
|
-
return (!d1 && !d2) || d1.isSame(d2, granularity);
|
|
3012
|
-
}
|
|
3013
|
-
/**
|
|
3014
|
-
* Create a copy of a date, without time fields (always return a new Moment object, or undefined).
|
|
3015
|
-
* Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
|
|
3016
|
-
* @param value
|
|
3017
|
-
* @param timezone a timezone (see https://momentjs.com/timezone/)
|
|
3018
|
-
* @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.
|
|
3019
|
-
*/
|
|
3020
|
-
static resetTime(value, timezone, keepLocalTime) {
|
|
3021
|
-
if (!value)
|
|
3022
|
-
return undefined;
|
|
3023
|
-
const date = fromDateISOString(value);
|
|
3024
|
-
// No timezone
|
|
3025
|
-
if (!timezone) {
|
|
3026
|
-
return date.clone().startOf('day');
|
|
3027
|
-
}
|
|
3028
|
-
// Use timezone
|
|
3029
|
-
return date.clone() // clone the original date
|
|
3030
|
-
.tz(timezone, keepLocalTime)
|
|
3031
|
-
.startOf('day');
|
|
3032
|
-
}
|
|
3033
|
-
static markNoTime(value) {
|
|
3034
|
-
if (!value)
|
|
3035
|
-
return undefined;
|
|
3036
|
-
value[MOMENT_NO_TIME_PROPERTY] = true;
|
|
3037
|
-
return value;
|
|
3038
|
-
}
|
|
3039
|
-
static isNoTime(value) {
|
|
3040
|
-
return value?.[MOMENT_NO_TIME_PROPERTY] === true;
|
|
3041
|
-
}
|
|
3042
|
-
/**
|
|
3043
|
-
* Test if a date is on the given day of week
|
|
3044
|
-
* @param date
|
|
3045
|
-
* @param weekday
|
|
3046
|
-
* @param timezone
|
|
3047
|
-
*/
|
|
3048
|
-
static isAtDay(date, weekday, timezone) {
|
|
3049
|
-
let momentDate = date && fromDateISOString(date);
|
|
3050
|
-
if (!momentDate)
|
|
3051
|
-
return null;
|
|
3052
|
-
if (timezone)
|
|
3053
|
-
momentDate = momentDate.clone().tz(timezone).startOf('day');
|
|
3054
|
-
return momentDate.day() === weekday;
|
|
3055
|
-
}
|
|
3056
|
-
}
|
|
3057
|
-
DateUtils.toDateISOString = toDateISOString;
|
|
3058
|
-
DateUtils.fromDateISOString = fromDateISOString;
|
|
3059
|
-
DateUtils.toDuration = toDuration;
|
|
3060
|
-
function toDateISOString(value) {
|
|
3061
|
-
if (!value)
|
|
3062
|
-
return undefined;
|
|
3063
|
-
// Already a valid ISO date time string (without timezone): use it
|
|
3064
|
-
if (typeof value === 'string'
|
|
3065
|
-
&& value.indexOf('+') === -1
|
|
3066
|
-
&& value.lastIndexOf('Z') === value.length - 1) {
|
|
3067
|
-
return value;
|
|
3068
|
-
}
|
|
3069
|
-
// Make sure to have a Moment object
|
|
3070
|
-
const date = fromDateISOString(value);
|
|
3071
|
-
if (!date)
|
|
3072
|
-
return undefined;
|
|
3073
|
-
return DateUtils.isNoTime(date)
|
|
3074
|
-
? date.toISOString(true /* important ! */).substr(0, 10)
|
|
3075
|
-
: date.toISOString();
|
|
3076
|
-
}
|
|
3077
|
-
function fromDateISOString(value) {
|
|
3078
|
-
// Already a moment object: use it
|
|
3079
|
-
if (!value || isMoment(value))
|
|
3080
|
-
return value;
|
|
3081
|
-
if (typeof value === 'string' && value.length === 10) {
|
|
3082
|
-
// Parse the input value, as a date only
|
|
3083
|
-
const dateOnly = moment$b(value, DATE_PATTERN);
|
|
3084
|
-
if (dateOnly.isValid())
|
|
3085
|
-
return DateUtils.markNoTime(dateOnly);
|
|
3086
|
-
}
|
|
3087
|
-
// Parse the input value, as a ISO date time
|
|
3088
|
-
const date = moment$b(value, DATE_ISO_PATTERN);
|
|
3089
|
-
if (date.isValid())
|
|
3090
|
-
return date;
|
|
3091
|
-
// Not valid: trying to convert from unix timestamp
|
|
3092
|
-
if (typeof value === 'string') {
|
|
3093
|
-
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
3094
|
-
if (value.length === 10) {
|
|
3095
|
-
return moment$b(value, DATE_UNIX_TIMESTAMP);
|
|
3096
|
-
}
|
|
3097
|
-
else if (value.length === 13) {
|
|
3098
|
-
return moment$b(value, DATE_UNIX_MS_TIMESTAMP);
|
|
3099
|
-
}
|
|
3100
|
-
}
|
|
3101
|
-
console.warn('Unable to parse date: ' + value);
|
|
3102
|
-
return undefined;
|
|
3103
|
-
}
|
|
3104
|
-
function fromUnixTimestamp(timeInSec) {
|
|
3105
|
-
return moment$b(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
3106
|
-
}
|
|
3107
|
-
function fromUnixMsTimestamp(timeInMs) {
|
|
3108
|
-
return moment$b(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
3109
|
-
}
|
|
3110
|
-
function toDuration(value, unit) {
|
|
3111
|
-
if (!value)
|
|
3112
|
-
return undefined;
|
|
3113
|
-
const duration = moment$b.duration(value, unit);
|
|
3114
|
-
// fix 990+ ms
|
|
3115
|
-
if (duration.milliseconds() >= 990) {
|
|
3116
|
-
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
3117
|
-
}
|
|
3118
|
-
// fix 59 s
|
|
3119
|
-
if (duration.seconds() >= 59) {
|
|
3120
|
-
duration.add(60 - duration.seconds(), 's');
|
|
3121
|
-
}
|
|
3122
|
-
return duration;
|
|
3123
|
-
}
|
|
3124
|
-
|
|
3125
3140
|
class DurationPipe {
|
|
3126
3141
|
constructor(translate) {
|
|
3127
3142
|
this.translate = translate;
|
|
@@ -3385,7 +3400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
3385
3400
|
type: Injectable
|
|
3386
3401
|
}] });
|
|
3387
3402
|
|
|
3388
|
-
const moment$
|
|
3403
|
+
const moment$2 = momentNamespace;
|
|
3389
3404
|
// @dynamic
|
|
3390
3405
|
class SharedValidators {
|
|
3391
3406
|
static getDoubleRegexp(maxDecimals) {
|
|
@@ -3466,7 +3481,7 @@ class SharedValidators {
|
|
|
3466
3481
|
}
|
|
3467
3482
|
static validDate(control) {
|
|
3468
3483
|
const value = control.value;
|
|
3469
|
-
const date = !value ||
|
|
3484
|
+
const date = !value || isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
|
|
3470
3485
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3471
3486
|
return { validDate: true };
|
|
3472
3487
|
}
|
|
@@ -5723,7 +5738,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
5723
5738
|
}]
|
|
5724
5739
|
}] });
|
|
5725
5740
|
|
|
5726
|
-
const moment$9 = momentImported;
|
|
5727
5741
|
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
5728
5742
|
provide: NG_VALUE_ACCESSOR,
|
|
5729
5743
|
useExisting: forwardRef(() => MatDate),
|
|
@@ -5905,7 +5919,7 @@ class MatDate {
|
|
|
5905
5919
|
// No value, but mobile mode: use the current date
|
|
5906
5920
|
if (!value && this.mobile) {
|
|
5907
5921
|
this._writing = true;
|
|
5908
|
-
value = DateUtils.resetTime(moment
|
|
5922
|
+
value = DateUtils.resetTime(DateUtils.moment().locale(this.locale), this.timezone);
|
|
5909
5923
|
this.formControl.setValue(value, { emitEvent: false });
|
|
5910
5924
|
this.markForCheck();
|
|
5911
5925
|
this._writing = false;
|
|
@@ -6083,7 +6097,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
6083
6097
|
args: ['matInput', { static: false }]
|
|
6084
6098
|
}] } });
|
|
6085
6099
|
|
|
6086
|
-
const moment$8 = momentImported;
|
|
6087
6100
|
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
6088
6101
|
provide: NG_VALUE_ACCESSOR,
|
|
6089
6102
|
useExisting: forwardRef(() => MatDateTime),
|
|
@@ -6278,7 +6291,7 @@ class MatDateTime {
|
|
|
6278
6291
|
// No value, but mobile mode: use the current date
|
|
6279
6292
|
if (!value && this.mobile) {
|
|
6280
6293
|
this._writing = true;
|
|
6281
|
-
value = DateUtils.resetTime(moment
|
|
6294
|
+
value = DateUtils.resetTime(DateUtils.moment().locale(this.locale));
|
|
6282
6295
|
this.formControl.setValue(value, { emitEvent: false });
|
|
6283
6296
|
this.markForCheck();
|
|
6284
6297
|
this._writing = false;
|
|
@@ -13005,7 +13018,6 @@ Peer = Peer_1 = __decorate([
|
|
|
13005
13018
|
EntityClass({ typename: 'PeerVO' })
|
|
13006
13019
|
], Peer);
|
|
13007
13020
|
|
|
13008
|
-
const moment$7 = momentImported;
|
|
13009
13021
|
const SETTINGS_STORAGE_KEY = 'settings';
|
|
13010
13022
|
const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
13011
13023
|
// fixme: this constant points to static environment
|
|
@@ -13233,11 +13245,11 @@ class LocalSettingsService extends StartableService {
|
|
|
13233
13245
|
if (!feature) {
|
|
13234
13246
|
feature = {
|
|
13235
13247
|
name: featureName.toLowerCase(),
|
|
13236
|
-
lastSyncDate: moment
|
|
13248
|
+
lastSyncDate: DateUtils.moment().toISOString()
|
|
13237
13249
|
};
|
|
13238
13250
|
}
|
|
13239
13251
|
else {
|
|
13240
|
-
feature.lastSyncDate = moment
|
|
13252
|
+
feature.lastSyncDate = DateUtils.moment().toISOString();
|
|
13241
13253
|
}
|
|
13242
13254
|
this.saveOfflineFeature(feature);
|
|
13243
13255
|
}
|
|
@@ -13392,7 +13404,7 @@ class LocalSettingsService extends StartableService {
|
|
|
13392
13404
|
if (!page || !page.title || !page.path)
|
|
13393
13405
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
13394
13406
|
// Set time
|
|
13395
|
-
page.time = page.time || moment
|
|
13407
|
+
page.time = page.time || DateUtils.moment();
|
|
13396
13408
|
// Clean the title (remove <small> tags)
|
|
13397
13409
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
13398
13410
|
const tagIndex = page.title.indexOf('</small>');
|
|
@@ -17309,7 +17321,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
17309
17321
|
args: [APP_CONFIG_OPTIONS]
|
|
17310
17322
|
}] }]; } });
|
|
17311
17323
|
|
|
17312
|
-
const moment$6 = momentImported;
|
|
17313
17324
|
const AndroidOsEnvironment = Object.freeze({
|
|
17314
17325
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17315
17326
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads', // Old name, for older Android version
|
|
@@ -17595,16 +17606,16 @@ class PlatformService extends StartableService {
|
|
|
17595
17606
|
}
|
|
17596
17607
|
// config moment lib
|
|
17597
17608
|
try {
|
|
17598
|
-
|
|
17609
|
+
locale(event.lang);
|
|
17599
17610
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
17600
17611
|
}
|
|
17601
17612
|
// If error, fallback to en
|
|
17602
17613
|
catch (err) {
|
|
17603
|
-
|
|
17604
|
-
console.warn('[platform] Unknown
|
|
17614
|
+
locale('en');
|
|
17615
|
+
console.warn('[platform] Unknown locale for moment lib. Using default [en]');
|
|
17605
17616
|
}
|
|
17606
17617
|
// Config date adapter
|
|
17607
|
-
this.dateAdapter.setLocale(
|
|
17618
|
+
this.dateAdapter.setLocale(locale());
|
|
17608
17619
|
}
|
|
17609
17620
|
});
|
|
17610
17621
|
this.settings.onChange.subscribe(data => {
|
|
@@ -28383,7 +28394,7 @@ const SocialErrorCodes = {
|
|
|
28383
28394
|
SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
|
|
28384
28395
|
};
|
|
28385
28396
|
|
|
28386
|
-
const moment$
|
|
28397
|
+
const moment$1 = momentNamespace;
|
|
28387
28398
|
const APP_USER_EVENT_SERVICE = new InjectionToken('UserEventService');
|
|
28388
28399
|
class AbstractUserEventService extends BaseGraphqlService {
|
|
28389
28400
|
constructor(graphql, accountService, network, translate, options) {
|
|
@@ -28743,7 +28754,7 @@ class AbstractUserEventService extends BaseGraphqlService {
|
|
|
28743
28754
|
}
|
|
28744
28755
|
resetCount() {
|
|
28745
28756
|
this._countSubject.next(undefined);
|
|
28746
|
-
this.resetCountDate = moment
|
|
28757
|
+
this.resetCountDate = DateUtils.moment();
|
|
28747
28758
|
// restart listening count changes
|
|
28748
28759
|
this.startListenCountChanges();
|
|
28749
28760
|
}
|
|
@@ -28795,7 +28806,7 @@ class AbstractUserEventService extends BaseGraphqlService {
|
|
|
28795
28806
|
if (!userEvents.length)
|
|
28796
28807
|
return;
|
|
28797
28808
|
// set read date
|
|
28798
|
-
userEvents.forEach(userEvent => userEvent.readDate = moment
|
|
28809
|
+
userEvents.forEach(userEvent => userEvent.readDate = DateUtils.moment());
|
|
28799
28810
|
// split local/remote entities
|
|
28800
28811
|
const localEntities = userEvents.filter(EntityUtils.isLocal);
|
|
28801
28812
|
const remoteEntities = userEvents.filter(EntityUtils.isRemote);
|
|
@@ -30600,13 +30611,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
30600
30611
|
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" }]
|
|
30601
30612
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
|
|
30602
30613
|
|
|
30603
|
-
const moment$4 = momentImported;
|
|
30604
30614
|
class SwipeTestPage {
|
|
30605
30615
|
constructor(formBuilder, dateFormatPipe) {
|
|
30606
30616
|
this.formBuilder = formBuilder;
|
|
30607
30617
|
this.dateFormatPipe = dateFormatPipe;
|
|
30608
30618
|
this.$dates = new BehaviorSubject(undefined);
|
|
30609
|
-
this._today = moment
|
|
30619
|
+
this._today = DateUtils.moment().startOf('day');
|
|
30610
30620
|
this.form = formBuilder.group({
|
|
30611
30621
|
empty: [null, Validators.required],
|
|
30612
30622
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -30619,7 +30629,7 @@ class SwipeTestPage {
|
|
|
30619
30629
|
ngOnInit() {
|
|
30620
30630
|
const dates = [];
|
|
30621
30631
|
for (let d = 0; d < 7; d++) {
|
|
30622
|
-
dates[d] = moment
|
|
30632
|
+
dates[d] = DateUtils.moment(this._today).add(d - 3, 'day');
|
|
30623
30633
|
}
|
|
30624
30634
|
this.$dates.next(dates);
|
|
30625
30635
|
this.loadData();
|
|
@@ -30654,7 +30664,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
30654
30664
|
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" }]
|
|
30655
30665
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: DateFormatPipe }]; } });
|
|
30656
30666
|
|
|
30657
|
-
const moment$3 = momentImported;
|
|
30658
30667
|
class DateTimeTestPage {
|
|
30659
30668
|
constructor(platform, formBuilder, cd) {
|
|
30660
30669
|
this.platform = platform;
|
|
@@ -30687,7 +30696,7 @@ class DateTimeTestPage {
|
|
|
30687
30696
|
}
|
|
30688
30697
|
// Load the form with data
|
|
30689
30698
|
async loadData() {
|
|
30690
|
-
const now = moment
|
|
30699
|
+
const now = DateUtils.moment();
|
|
30691
30700
|
const data = {
|
|
30692
30701
|
empty: null,
|
|
30693
30702
|
emptyRequired: null,
|
|
@@ -30921,7 +30930,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
30921
30930
|
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" }]
|
|
30922
30931
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }]; } });
|
|
30923
30932
|
|
|
30924
|
-
const moment$2 = momentImported;
|
|
30925
30933
|
class DateTestPage {
|
|
30926
30934
|
constructor(formBuilder, cd) {
|
|
30927
30935
|
this.formBuilder = formBuilder;
|
|
@@ -30953,7 +30961,7 @@ class DateTestPage {
|
|
|
30953
30961
|
}
|
|
30954
30962
|
// Load the form with data
|
|
30955
30963
|
async loadData() {
|
|
30956
|
-
const now = moment
|
|
30964
|
+
const now = DateUtils.moment();
|
|
30957
30965
|
const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
30958
30966
|
const data = {
|
|
30959
30967
|
empty: null,
|
|
@@ -31015,7 +31023,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
31015
31023
|
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" }]
|
|
31016
31024
|
}], ctorParameters: function () { return [{ type: i1$2.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }]; } });
|
|
31017
31025
|
|
|
31018
|
-
const moment$1 = momentImported;
|
|
31019
31026
|
class ObservableTestPage {
|
|
31020
31027
|
constructor() {
|
|
31021
31028
|
this._stopSubject = new Subject();
|
|
@@ -31083,7 +31090,7 @@ class ObservableTestPage {
|
|
|
31083
31090
|
this._stopSubject.next();
|
|
31084
31091
|
}
|
|
31085
31092
|
log(message, ...args) {
|
|
31086
|
-
let fullMessage = `${toDateISOString(moment
|
|
31093
|
+
let fullMessage = `${toDateISOString(DateUtils.moment())} - ${message}`;
|
|
31087
31094
|
if (args?.length) {
|
|
31088
31095
|
fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
|
|
31089
31096
|
}
|
|
@@ -32511,7 +32518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
32511
32518
|
args: [ENVIRONMENT]
|
|
32512
32519
|
}] }]; } });
|
|
32513
32520
|
|
|
32514
|
-
const moment =
|
|
32521
|
+
const moment = momentNamespace;
|
|
32515
32522
|
class UserEventTestingPage {
|
|
32516
32523
|
constructor(userEventService, router, alertController, translateService) {
|
|
32517
32524
|
this.userEventService = userEventService;
|
|
@@ -32572,7 +32579,7 @@ class UserEventTestingPage {
|
|
|
32572
32579
|
type: 'message',
|
|
32573
32580
|
level: 'INFO',
|
|
32574
32581
|
message: 'message test message test message test message test message test message test message test message test',
|
|
32575
|
-
creationDate: moment(),
|
|
32582
|
+
creationDate: DateUtils.moment(),
|
|
32576
32583
|
}));
|
|
32577
32584
|
}
|
|
32578
32585
|
addError() {
|
|
@@ -32582,7 +32589,7 @@ class UserEventTestingPage {
|
|
|
32582
32589
|
type: 'upload',
|
|
32583
32590
|
level: 'ERROR',
|
|
32584
32591
|
message: 'message error',
|
|
32585
|
-
creationDate: moment(),
|
|
32592
|
+
creationDate: DateUtils.moment(),
|
|
32586
32593
|
}));
|
|
32587
32594
|
}
|
|
32588
32595
|
addWarning() {
|
|
@@ -32592,7 +32599,7 @@ class UserEventTestingPage {
|
|
|
32592
32599
|
type: 'download',
|
|
32593
32600
|
level: 'WARNING',
|
|
32594
32601
|
message: 'message warning',
|
|
32595
|
-
creationDate: moment(),
|
|
32602
|
+
creationDate: DateUtils.moment(),
|
|
32596
32603
|
}));
|
|
32597
32604
|
}
|
|
32598
32605
|
addDebug() {
|
|
@@ -32602,7 +32609,7 @@ class UserEventTestingPage {
|
|
|
32602
32609
|
type: 'debug',
|
|
32603
32610
|
level: 'DEBUG',
|
|
32604
32611
|
message: 'message DEBUG',
|
|
32605
|
-
creationDate: moment(),
|
|
32612
|
+
creationDate: DateUtils.moment(),
|
|
32606
32613
|
}));
|
|
32607
32614
|
}
|
|
32608
32615
|
addNotificationWithLink() {
|
|
@@ -32612,7 +32619,7 @@ class UserEventTestingPage {
|
|
|
32612
32619
|
type: 'message',
|
|
32613
32620
|
level: 'INFO',
|
|
32614
32621
|
message: 'message with link',
|
|
32615
|
-
creationDate: moment(),
|
|
32622
|
+
creationDate: DateUtils.moment(),
|
|
32616
32623
|
actions: [{
|
|
32617
32624
|
name: 'click here',
|
|
32618
32625
|
iconRef: {
|
|
@@ -32629,7 +32636,7 @@ class UserEventTestingPage {
|
|
|
32629
32636
|
type: 'message',
|
|
32630
32637
|
level: 'INFO',
|
|
32631
32638
|
message: 'message with action',
|
|
32632
|
-
creationDate: moment(),
|
|
32639
|
+
creationDate: DateUtils.moment(),
|
|
32633
32640
|
actions: [
|
|
32634
32641
|
{
|
|
32635
32642
|
name: 'click here',
|
|
@@ -32699,7 +32706,7 @@ class UserEventTestingPage {
|
|
|
32699
32706
|
type: 'message',
|
|
32700
32707
|
level: 'INFO',
|
|
32701
32708
|
message: 'message with action',
|
|
32702
|
-
creationDate: moment(),
|
|
32709
|
+
creationDate: DateUtils.moment(),
|
|
32703
32710
|
actions: [
|
|
32704
32711
|
{
|
|
32705
32712
|
default: true,
|
|
@@ -32849,5 +32856,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
32849
32856
|
* Generated bundle index. Do not edit.
|
|
32850
32857
|
*/
|
|
32851
32858
|
|
|
32852
|
-
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 };
|
|
32859
|
+
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 };
|
|
32853
32860
|
//# sourceMappingURL=sumaris-net.ngx-components.mjs.map
|