@acorex/core 19.12.0 → 19.13.0-next.1
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/date-time/index.d.ts +5 -5
- package/date-time/lib/calendar.service.d.ts +8 -3
- package/date-time/lib/dateTime.config.d.ts +1 -1
- package/date-time/lib/datetime.pipe.d.ts +2 -1
- package/date-time/lib/{datetime.class.d.ts → datetime.types.d.ts} +2 -2
- package/date-time/lib/formatters/date.formatter.d.ts +12 -0
- package/date-time/lib/formatters/{datetime-formatter.d.ts → datetime.formatter.d.ts} +3 -1
- package/date-time/lib/formatters/time.formatter.d.ts +12 -0
- package/date-time/lib/{georgian.calendar.d.ts → gregorian.calendar.d.ts} +2 -2
- package/date-time/lib/{jalali.calendar.d.ts → solar-hijri.calendar.d.ts} +8 -8
- package/events/index.d.ts +0 -1
- package/fesm2022/acorex-core-components.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-date-time.mjs +282 -119
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +4 -10
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-format.mjs +78 -63
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs +64 -0
- package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs.map +1 -0
- package/fesm2022/acorex-core-locale.mjs +341 -0
- package/fesm2022/acorex-core-locale.mjs.map +1 -0
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-translation.mjs +246 -206
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +143 -18
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/format/index.d.ts +2 -2
- package/format/lib/format.directive.d.ts +1 -1
- package/format/lib/format.module.d.ts +3 -3
- package/format/lib/format.service.d.ts +8 -7
- package/locale/README.md +3 -0
- package/locale/index.d.ts +8 -0
- package/locale/lib/formatters/currency.formatter.d.ts +10 -0
- package/locale/lib/locale-profile-provider.service.d.ts +24 -0
- package/locale/lib/locale.config.d.ts +5 -0
- package/locale/lib/locale.module.d.ts +7 -0
- package/locale/lib/locale.service.d.ts +20 -0
- package/locale/lib/locale.types.d.ts +61 -0
- package/locale/lib/profiles/en-AU.profile.d.ts +2 -0
- package/locale/lib/profiles/en-US.profile.d.ts +2 -0
- package/locale/lib/profiles/fa-IR.profile.d.ts +2 -0
- package/package.json +5 -1
- package/translation/index.d.ts +1 -1
- package/translation/lib/translation-loader.service.d.ts +20 -0
- package/translation/lib/translation.config.d.ts +19 -6
- package/translation/lib/translation.loader.d.ts +2 -2
- package/translation/lib/translation.parser.d.ts +7 -0
- package/translation/lib/translation.resolver.d.ts +9 -0
- package/translation/lib/translation.service.d.ts +12 -31
- package/translation/lib/translation.types.d.ts +8 -2
- package/translation/lib/translator.pipe.d.ts +0 -2
- package/types/README.md +2 -2
- package/utils/index.d.ts +6 -5
- package/utils/lib/execution.utils.d.ts +33 -0
- package/utils/lib/string.utils.d.ts +4 -0
- package/events/lib/event.type.d.ts +0 -5
- package/i18n/en/common.json +0 -191
- package/i18n/fa/common.json +0 -190
- package/utils/lib/string-util.d.ts +0 -6
- /package/date-time/lib/formatters/{time-duration-formatter.d.ts → time-duration.formatter.d.ts} +0 -0
- /package/date-time/lib/formatters/{timeleft-formatter.d.ts → timeleft.formatter.d.ts} +0 -0
- /package/format/lib/formatters/{number-formatter.d.ts → number.formatter.d.ts} +0 -0
- /package/format/lib/formatters/{string-formatter.d.ts → string.formatter.d.ts} +0 -0
- /package/utils/lib/{color-util.d.ts → color.utils.d.ts} +0 -0
- /package/utils/lib/{drawing-util.d.ts → drawing.utils.d.ts} +0 -0
- /package/utils/lib/{html-util.d.ts → html-utils.d.ts} +0 -0
- /package/utils/lib/{auto-unsubscribe.d.ts → lifecycle-helpers.utils.d.ts} +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { AXEventService } from '@acorex/core/events';
|
2
2
|
import * as i0 from '@angular/core';
|
3
3
|
import { InjectionToken, inject, Injectable, Pipe, NgModule } from '@angular/core';
|
4
4
|
import { BehaviorSubject, Subject } from 'rxjs';
|
@@ -6,8 +6,9 @@ import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
|
|
6
6
|
import { defaults, orderBy, set, isNil } from 'lodash-es';
|
7
7
|
import { isBrowser } from '@acorex/core/platform';
|
8
8
|
import { translateSync } from '@acorex/core/translation';
|
9
|
+
import { AXLocaleEvents, AXLocaleService } from '@acorex/core/locale';
|
9
10
|
import * as i1 from '@acorex/core/format';
|
10
|
-
import { AXFormatModule } from '@acorex/core/format';
|
11
|
+
import { AXFormatService, AXFormatModule } from '@acorex/core/format';
|
11
12
|
|
12
13
|
class AXCalendar {
|
13
14
|
/**
|
@@ -19,9 +20,9 @@ class AXCalendar {
|
|
19
20
|
get weekend() {
|
20
21
|
return this._config.weekend;
|
21
22
|
}
|
22
|
-
get formats() {
|
23
|
-
|
24
|
-
}
|
23
|
+
// public get formats(): AXDateTimeDisplayFormats {
|
24
|
+
// return this._config.formats;
|
25
|
+
// }
|
25
26
|
get weekdays() {
|
26
27
|
return this._config.weekdays;
|
27
28
|
}
|
@@ -36,38 +37,74 @@ class AXDateTime {
|
|
36
37
|
constructor(value, calendar) {
|
37
38
|
//TODO: remove unused items
|
38
39
|
this._formatKeys = {
|
39
|
-
|
40
|
+
// 0 1 ... 58 59
|
40
41
|
s: () => this.date.getSeconds().toString(),
|
41
|
-
//
|
42
|
-
|
42
|
+
// 00 01 ... 58 59
|
43
|
+
ss: () => this.pad(this.date.getSeconds(), 2),
|
44
|
+
// 0 1 ... 5 6 day of week ***
|
45
|
+
d: () => (this.calendar.dayOfWeek(this.date) - 1).toString(),
|
46
|
+
// Su Mo ... Fr Sa ***
|
47
|
+
dd: () => translateSync(`dateTime.weekdays.short.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
|
48
|
+
ddd: () => translateSync(`dateTime.weekdays.short.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
|
49
|
+
// Sunday Monday ... Friday Saturday
|
50
|
+
dddd: () => translateSync(`dateTime.weekdays.long.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
|
51
|
+
// 1 2 ... 30 31
|
52
|
+
D: () => this.calendar.dayOfMonth(this.date).toString(),
|
53
|
+
// 01 02 ... 30 31 day of month
|
43
54
|
DD: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
//
|
49
|
-
|
50
|
-
|
55
|
+
// 1 2 ... 364 365
|
56
|
+
DDD: () => this.calendar.dayOfYear(this.date).toString(),
|
57
|
+
// 001 002 ... 364 365 day of year
|
58
|
+
DDDD: () => this.pad(this.calendar.dayOfYear(this.date), 3),
|
59
|
+
// 1 2 ... 52 53
|
60
|
+
w: () => this.calendar.weekOfYear(this.date).toString(),
|
61
|
+
// 01 02 ... 52 53
|
62
|
+
ww: () => this.pad(this.calendar.weekOfYear(this.date), 2),
|
63
|
+
// 1 2 ... 11 12
|
64
|
+
M: () => this.calendar.monthOfYear(this.date).toString(),
|
65
|
+
// 01 02 ... 11 12
|
51
66
|
MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
67
|
+
// Jan Feb ... Nov Dec
|
68
|
+
MMM: () => translateSync(`dateTime.months.${this.calendar.name()}.short.${this.calendar.monthOfYear(this.date) - 1}`),
|
69
|
+
// January February ... November December
|
70
|
+
MMMM: () => translateSync(`dateTime.months.${this.calendar.name()}.long.${this.calendar.monthOfYear(this.date) - 1}`),
|
71
|
+
// 1 2 ... 7
|
72
|
+
E: () => this.calendar.dayOfWeek(this.date).toString(),
|
73
|
+
// 01 02 ... 07
|
74
|
+
EE: () => this.pad(this.calendar.dayOfWeek(this.date), 2),
|
75
|
+
// Sun Mon ... Sat
|
76
|
+
EEE: () => translateSync(`dateTime.weekdays.short.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
|
77
|
+
// Sunday Monday ... Saturday
|
78
|
+
EEEE: () => translateSync(`dateTime.weekdays.long.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
|
79
|
+
// 1 2 ... 2020 ...
|
80
|
+
y: () => this.calendar.year(this.date).toString(),
|
81
|
+
// 70 71 ... 29 30
|
60
82
|
yy: () => this.pad(this.calendar.year(this.date), 4).substring(2),
|
61
83
|
YY: () => this.pad(this.calendar.year(this.date), 4).substring(2),
|
62
|
-
//
|
63
|
-
|
64
|
-
|
65
|
-
//
|
66
|
-
|
84
|
+
// 1970 1971 ... 2029 2030
|
85
|
+
yyyy: () => this.pad(this.calendar.year(this.date), 4),
|
86
|
+
YYYY: () => this.pad(this.calendar.year(this.date), 4),
|
87
|
+
// 0 1 ... 58 59
|
88
|
+
m: () => this.date.getMinutes().toString(),
|
89
|
+
// 00 01 ... 58 59
|
90
|
+
mm: () => this.pad(this.date.getMinutes(), 2),
|
91
|
+
// 0 1 ... 11 12
|
67
92
|
h: () => (this.date.getHours() % 12 || 12).toString(),
|
93
|
+
// 00 01 ... 11 12
|
94
|
+
hh: () => this.pad(this.date.getHours() % 12 || 12, 2),
|
95
|
+
// 0 1 ... 23 24
|
96
|
+
H: () => this.date.getHours().toString(),
|
97
|
+
// 00 01 ... 23 24
|
98
|
+
HH: () => this.pad(this.date.getHours(), 2),
|
99
|
+
// TODO: i18n
|
100
|
+
// AM PM
|
101
|
+
A: () => (this.date.getHours() < 12 ? 'AM' : 'PM').toUpperCase(),
|
102
|
+
// am pm
|
103
|
+
a: () => (this.date.getHours() < 12 ? 'am' : 'pm').toLowerCase(),
|
104
|
+
// TODO: review
|
105
|
+
Z: () => '',
|
106
|
+
ZZZZ: () => '',
|
68
107
|
//
|
69
|
-
A: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
|
70
|
-
a: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
|
71
108
|
date: (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortDate')),
|
72
109
|
shortDate: (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortDate')),
|
73
110
|
longDate: (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'longDate')),
|
@@ -78,7 +115,7 @@ class AXDateTime {
|
|
78
115
|
//
|
79
116
|
datetime: (options) => this.format('date time', { locale: options.locale }),
|
80
117
|
};
|
81
|
-
this._language = () => (isBrowser() ? navigator.language : 'en-
|
118
|
+
this._language = () => (isBrowser() ? navigator.language : 'en-US');
|
82
119
|
this._calendar = calendar;
|
83
120
|
this._date = value;
|
84
121
|
}
|
@@ -140,8 +177,11 @@ class AXDateTime {
|
|
140
177
|
const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');
|
141
178
|
return format.replace(re, (matched) => {
|
142
179
|
const f = this._formatKeys[matched];
|
143
|
-
|
144
|
-
|
180
|
+
if (f && typeof f === 'function') {
|
181
|
+
const r = f(effectiveOptions);
|
182
|
+
return r;
|
183
|
+
}
|
184
|
+
return matched;
|
145
185
|
});
|
146
186
|
}
|
147
187
|
getDateTimeFormatByLocale(locale, style) {
|
@@ -353,7 +393,7 @@ class AXDateTimeRange {
|
|
353
393
|
}
|
354
394
|
}
|
355
395
|
|
356
|
-
class
|
396
|
+
class AXGregorianCalendar extends AXCalendar {
|
357
397
|
/**
|
358
398
|
* @ignore
|
359
399
|
*/
|
@@ -364,7 +404,7 @@ class GeorgianCalendar extends AXCalendar {
|
|
364
404
|
return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this);
|
365
405
|
}
|
366
406
|
name() {
|
367
|
-
return '
|
407
|
+
return 'gregorian';
|
368
408
|
}
|
369
409
|
dayOfMonth(date) {
|
370
410
|
return date.getDate();
|
@@ -550,14 +590,14 @@ class GeorgianCalendar extends AXCalendar {
|
|
550
590
|
}
|
551
591
|
}
|
552
592
|
|
553
|
-
class
|
593
|
+
class AXSolarHijriCalendar extends AXCalendar {
|
554
594
|
/**
|
555
595
|
* @ignore
|
556
596
|
*/
|
557
597
|
constructor(config) {
|
558
598
|
super(config);
|
559
599
|
/*
|
560
|
-
|
600
|
+
SolarHijri years starting the 33-year rule.
|
561
601
|
*/
|
562
602
|
this.breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];
|
563
603
|
}
|
@@ -566,13 +606,13 @@ class JalaliCalendar extends AXCalendar {
|
|
566
606
|
return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this);
|
567
607
|
}
|
568
608
|
name() {
|
569
|
-
return '
|
609
|
+
return 'solar-hijri';
|
570
610
|
}
|
571
611
|
dayOfMonth(date) {
|
572
|
-
return this.
|
612
|
+
return this.toSolarHijri(date).day;
|
573
613
|
}
|
574
614
|
dayOfYear(date) {
|
575
|
-
const j = this.
|
615
|
+
const j = this.toSolarHijri(date);
|
576
616
|
return (j.month <= 6 ? (j.month - 1) * 31 : 6 * 31 + (j.month - 7) * 30) + j.day;
|
577
617
|
}
|
578
618
|
dayOfWeek(date) {
|
@@ -584,10 +624,10 @@ class JalaliCalendar extends AXCalendar {
|
|
584
624
|
return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
|
585
625
|
}
|
586
626
|
year(date) {
|
587
|
-
return this.
|
627
|
+
return this.toSolarHijri(date).year;
|
588
628
|
}
|
589
629
|
monthOfYear(date) {
|
590
|
-
return this.
|
630
|
+
return this.toSolarHijri(date).month;
|
591
631
|
}
|
592
632
|
add(date, unit, amount) {
|
593
633
|
let value = date.valueOf();
|
@@ -631,7 +671,7 @@ class JalaliCalendar extends AXCalendar {
|
|
631
671
|
const tempDate = this.toGregorian(jy, newMonth, 1);
|
632
672
|
const gregorianDate = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());
|
633
673
|
// Adjust the day to either the original day or the last day of the new month, whichever is smaller
|
634
|
-
const lastDayOfNewMonth = this.
|
674
|
+
const lastDayOfNewMonth = this.SolarHijriMonthLength(jy, newMonth); // Implement this method to find the last day in a Jalali month
|
635
675
|
jd = Math.min(jd, lastDayOfNewMonth);
|
636
676
|
const finalDate = this.toGregorian(jy, newMonth, jd);
|
637
677
|
gregorianDate.setFullYear(finalDate.getFullYear());
|
@@ -663,7 +703,7 @@ class JalaliCalendar extends AXCalendar {
|
|
663
703
|
}
|
664
704
|
set(date, unit, value) {
|
665
705
|
const clone = new Date(date.valueOf());
|
666
|
-
const jDate = this.
|
706
|
+
const jDate = this.toSolarHijri(clone);
|
667
707
|
switch (unit) {
|
668
708
|
case 'second':
|
669
709
|
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
@@ -748,13 +788,13 @@ class JalaliCalendar extends AXCalendar {
|
|
748
788
|
case 'month': {
|
749
789
|
const jy = this.year(date);
|
750
790
|
const jm = this.monthOfYear(date);
|
751
|
-
const jd = this.
|
791
|
+
const jd = this.SolarHijriMonthLength(jy, jm);
|
752
792
|
const gDate = this.toGregorian(jy, jm, jd);
|
753
793
|
return new AXDateTime(gDate, this).endOf('day');
|
754
794
|
}
|
755
795
|
case 'year': {
|
756
796
|
const jy = this.year(date);
|
757
|
-
const gDate = this.toGregorian(jy, 12, this.
|
797
|
+
const gDate = this.toGregorian(jy, 12, this.SolarHijriMonthLength(jy, 12));
|
758
798
|
return new AXDateTime(gDate, this).endOf('day');
|
759
799
|
}
|
760
800
|
}
|
@@ -773,9 +813,9 @@ class JalaliCalendar extends AXCalendar {
|
|
773
813
|
return new AXDateTime(date, this);
|
774
814
|
}
|
775
815
|
/*
|
776
|
-
Converts a Gregorian date to
|
816
|
+
Converts a Gregorian date to SolarHijri.
|
777
817
|
*/
|
778
|
-
|
818
|
+
toSolarHijri(date) {
|
779
819
|
const gd = date.getDate();
|
780
820
|
const gm = date.getMonth() + 1;
|
781
821
|
const gy = date.getFullYear();
|
@@ -787,47 +827,47 @@ class JalaliCalendar extends AXCalendar {
|
|
787
827
|
};
|
788
828
|
}
|
789
829
|
/*
|
790
|
-
Converts a
|
830
|
+
Converts a SolarHijri date to Gregorian.
|
791
831
|
*/
|
792
832
|
toGregorian(jy, jm, jd) {
|
793
833
|
const g = this.d2g(this.j2d(jy, jm, jd));
|
794
834
|
return new Date(g.gy, g.gm - 1, g.gd);
|
795
835
|
}
|
796
836
|
/*
|
797
|
-
Checks whether a
|
837
|
+
Checks whether a SolarHijri date is valid or not.
|
798
838
|
*/
|
799
|
-
|
800
|
-
return jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= this.
|
839
|
+
isValidSolarHijriDate(jy, jm, jd) {
|
840
|
+
return jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= this.SolarHijriMonthLength(jy, jm);
|
801
841
|
}
|
802
842
|
/*
|
803
843
|
Is this a leap year or not?
|
804
844
|
*/
|
805
|
-
|
845
|
+
isLeapSolarHijriYear(jy) {
|
806
846
|
return this.jalCalLeap(jy) === 0;
|
807
847
|
}
|
808
848
|
/*
|
809
|
-
Number of days in a given month in a
|
849
|
+
Number of days in a given month in a SolarHijri year.
|
810
850
|
*/
|
811
|
-
|
851
|
+
SolarHijriMonthLength(jy, jm) {
|
812
852
|
if (jm <= 6)
|
813
853
|
return 31;
|
814
854
|
if (jm <= 11)
|
815
855
|
return 30;
|
816
|
-
if (this.
|
856
|
+
if (this.isLeapSolarHijriYear(jy))
|
817
857
|
return 30;
|
818
858
|
return 29;
|
819
859
|
}
|
820
860
|
/*
|
821
|
-
This determines if the
|
861
|
+
This determines if the SolarHijri (Persian) year is
|
822
862
|
leap (366-day long) or is the common year (365 days)
|
823
863
|
|
824
|
-
@param jy
|
864
|
+
@param jy SolarHijri calendar year (-61 to 3177)
|
825
865
|
@returns number of years since the last leap year (0 to 4)
|
826
866
|
*/
|
827
867
|
jalCalLeap(jy) {
|
828
868
|
let bl = this.breaks.length, jp = this.breaks[0], jm, jump, leap, n, i;
|
829
869
|
if (jy < jp || jy >= this.breaks[bl - 1])
|
830
|
-
throw new Error('Invalid
|
870
|
+
throw new Error('Invalid SolarHijri year ' + jy);
|
831
871
|
for (i = 1; i < bl; i += 1) {
|
832
872
|
jm = this.breaks[i];
|
833
873
|
jump = jm - jp;
|
@@ -847,8 +887,8 @@ class JalaliCalendar extends AXCalendar {
|
|
847
887
|
jalCal(jy, withoutLeap) {
|
848
888
|
let bl = this.breaks.length, gy = jy + 621, leapJ = -14, jp = this.breaks[0], jm, jump, leap, leapG, march, n, i;
|
849
889
|
if (jy < jp || jy >= this.breaks[bl - 1])
|
850
|
-
throw new Error('Invalid
|
851
|
-
// Find the limiting years for the
|
890
|
+
throw new Error('Invalid SolarHijri year ' + jy);
|
891
|
+
// Find the limiting years for the SolarHijri year jy.
|
852
892
|
for (i = 1; i < bl; i += 1) {
|
853
893
|
jm = this.breaks[i];
|
854
894
|
jump = jm - jp;
|
@@ -859,7 +899,7 @@ class JalaliCalendar extends AXCalendar {
|
|
859
899
|
}
|
860
900
|
n = jy - jp;
|
861
901
|
// Find the number of leap years from AD 621 to the beginning
|
862
|
-
// of the current
|
902
|
+
// of the current SolarHijri year in the Persian calendar.
|
863
903
|
leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4);
|
864
904
|
if (this.mod(jump, 33) === 4 && jump - n === 4)
|
865
905
|
leapJ += 1;
|
@@ -909,7 +949,7 @@ class JalaliCalendar extends AXCalendar {
|
|
909
949
|
}
|
910
950
|
}
|
911
951
|
else {
|
912
|
-
// Previous
|
952
|
+
// Previous SolarHijri year.
|
913
953
|
jy -= 1;
|
914
954
|
k += 179;
|
915
955
|
if (r.leap === 1)
|
@@ -942,8 +982,8 @@ class JalaliCalendar extends AXCalendar {
|
|
942
982
|
gd: gd,
|
943
983
|
};
|
944
984
|
}
|
945
|
-
|
946
|
-
let dayOfWeek = this.
|
985
|
+
SolarHijriWeek(jy, jm, jd) {
|
986
|
+
let dayOfWeek = this.SolarHijriToDateObject(jy, jm, jd, 0, 0, 0, 0).getDay();
|
947
987
|
let startDayDifference = dayOfWeek == 6 ? 0 : -(dayOfWeek + 1);
|
948
988
|
let endDayDifference = 6 + startDayDifference;
|
949
989
|
return {
|
@@ -951,7 +991,7 @@ class JalaliCalendar extends AXCalendar {
|
|
951
991
|
friday: this.d2j(this.j2d(jy, jm, jd + endDayDifference)),
|
952
992
|
};
|
953
993
|
}
|
954
|
-
|
994
|
+
SolarHijriToDateObject(jy, jm, jd, h = 0, m = 0, s = 0, ms = 0) {
|
955
995
|
let gregorianCalenderDate = this.toGregorian(jy, jm, jd);
|
956
996
|
return new Date(gregorianCalenderDate.getFullYear(), gregorianCalenderDate.getMonth() - 1, gregorianCalenderDate.getDate(), h || 0, m || 0, s || 0, ms || 0);
|
957
997
|
}
|
@@ -975,31 +1015,15 @@ const AX_DATETIME_CONFIG = new InjectionToken('AX_DATETIME_CONFIG', {
|
|
975
1015
|
},
|
976
1016
|
});
|
977
1017
|
const AXDateTimeDefaultConfig = {
|
978
|
-
calendar: '
|
1018
|
+
calendar: 'gregorian',
|
979
1019
|
calendars: {
|
980
|
-
|
1020
|
+
gregorian: new AXGregorianCalendar({
|
981
1021
|
weekdays: [0, 1, 2, 3, 4, 5, 6],
|
982
|
-
weekend: [5, 6]
|
983
|
-
formats: {
|
984
|
-
dateInput: 'yyyy/MM/dd',
|
985
|
-
timeInput: 'HH:mm',
|
986
|
-
dateTimeInput: 'yyyy/MM/dd HH:mm',
|
987
|
-
dateDisplay: 'DDDD, d MMM yyyy',
|
988
|
-
timeDisplay: 'HH:mm',
|
989
|
-
dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',
|
990
|
-
},
|
1022
|
+
weekend: [5, 6]
|
991
1023
|
}),
|
992
|
-
|
1024
|
+
"solar-hijri": new AXSolarHijriCalendar({
|
993
1025
|
weekdays: [6, 0, 1, 2, 3, 4, 5],
|
994
1026
|
weekend: [6],
|
995
|
-
formats: {
|
996
|
-
dateInput: 'yyyy/MM/dd',
|
997
|
-
timeInput: 'HH:mm',
|
998
|
-
dateTimeInput: 'yyyy/MM/dd HH:mm',
|
999
|
-
dateDisplay: 'DDDD, d MMM yyyy',
|
1000
|
-
timeDisplay: 'HH:mm',
|
1001
|
-
dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',
|
1002
|
-
},
|
1003
1027
|
}),
|
1004
1028
|
},
|
1005
1029
|
};
|
@@ -1038,7 +1062,7 @@ class AXCalendarService {
|
|
1038
1062
|
const calendar = this.resolveCalendar(name);
|
1039
1063
|
this.activeCalendar.next(calendar);
|
1040
1064
|
this.eventService.emitEvent({
|
1041
|
-
type:
|
1065
|
+
type: AXLocaleEvents.AXCalendarChanged,
|
1042
1066
|
payload: this.getActiveCalendar(),
|
1043
1067
|
});
|
1044
1068
|
}
|
@@ -1050,11 +1074,19 @@ class AXCalendarService {
|
|
1050
1074
|
this.config = inject(AX_DATETIME_CONFIG);
|
1051
1075
|
this._holidaysLoader = inject(AX_DATETIME_HOLIDAYS_LOADER);
|
1052
1076
|
this.eventService = inject(AXEventService);
|
1077
|
+
this.formatService = inject(AXFormatService);
|
1078
|
+
this.localeService = inject(AXLocaleService);
|
1053
1079
|
this.activeCalendar = new BehaviorSubject(this.getDefaultCalendar());
|
1054
1080
|
this.calendarChanges$ = this.activeCalendar.asObservable();
|
1055
1081
|
this.onHolidaysChanged = new Subject();
|
1056
1082
|
this._holidays = [];
|
1057
1083
|
this.loadHolidays();
|
1084
|
+
//
|
1085
|
+
this.localeService.profileChanged$.subscribe((locale) => {
|
1086
|
+
if (locale?.calendar?.system) {
|
1087
|
+
this.setActiveCalendar(locale.calendar.system);
|
1088
|
+
}
|
1089
|
+
});
|
1058
1090
|
}
|
1059
1091
|
loadHolidays(options) {
|
1060
1092
|
return this._holidaysLoader.getHolidays(options).then((value) => {
|
@@ -1062,11 +1094,15 @@ class AXCalendarService {
|
|
1062
1094
|
this.onHolidaysChanged.next(this._holidays);
|
1063
1095
|
});
|
1064
1096
|
}
|
1065
|
-
|
1097
|
+
isValidDate(value) {
|
1066
1098
|
try {
|
1067
1099
|
if (!value) {
|
1068
1100
|
return false;
|
1069
1101
|
}
|
1102
|
+
//
|
1103
|
+
if (value instanceof AXDateTime) {
|
1104
|
+
return true;
|
1105
|
+
}
|
1070
1106
|
// Check if it's a Date object
|
1071
1107
|
if (value instanceof Date) {
|
1072
1108
|
return !isNaN(value.getTime());
|
@@ -1093,10 +1129,13 @@ class AXCalendarService {
|
|
1093
1129
|
create(value, calendarName) {
|
1094
1130
|
try {
|
1095
1131
|
const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;
|
1096
|
-
if (!this.
|
1132
|
+
if (!this.isValidDate(value)) {
|
1097
1133
|
throw new Error(`Invalid Date value: ${value}`);
|
1098
1134
|
}
|
1099
|
-
if (
|
1135
|
+
if (value instanceof AXDateTime) {
|
1136
|
+
return value;
|
1137
|
+
}
|
1138
|
+
else if (typeof value === 'string') {
|
1100
1139
|
return new AXDateTime(new Date(value), calendar);
|
1101
1140
|
}
|
1102
1141
|
else if (value instanceof Date) {
|
@@ -1141,10 +1180,17 @@ class AXCalendarService {
|
|
1141
1180
|
const date = value instanceof AXDateTime ? value.date : value;
|
1142
1181
|
return new AXDateTime(date, calendar);
|
1143
1182
|
}
|
1144
|
-
|
1145
|
-
|
1183
|
+
format(value, format, options) {
|
1184
|
+
const calendar = options?.calendar ? this.resolveCalendar(options.calendar) : this.calendar;
|
1185
|
+
return this.formatService.format(value, 'datetime', {
|
1186
|
+
format: format,
|
1187
|
+
calendar: calendar.name(),
|
1188
|
+
});
|
1189
|
+
}
|
1190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1191
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
|
1146
1192
|
}
|
1147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCalendarService, decorators: [{
|
1148
1194
|
type: Injectable,
|
1149
1195
|
args: [{ providedIn: 'root' }]
|
1150
1196
|
}], ctorParameters: () => [] });
|
@@ -1155,6 +1201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
1155
1201
|
class AXDateTimePipe {
|
1156
1202
|
constructor() {
|
1157
1203
|
this._calendarService = inject(AXCalendarService);
|
1204
|
+
this.formatService = inject(AXFormatService);
|
1158
1205
|
}
|
1159
1206
|
transform(value, format, calendarName) {
|
1160
1207
|
if (value == null) {
|
@@ -1165,24 +1212,32 @@ class AXDateTimePipe {
|
|
1165
1212
|
calendar = this._calendarService.resolveCalendar(calendarName);
|
1166
1213
|
}
|
1167
1214
|
const val = this._calendarService.convert(value, calendar.name());
|
1168
|
-
return
|
1215
|
+
return this.formatService.format(val, 'datetime', format);
|
1169
1216
|
}
|
1170
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
1171
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
1217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
1218
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimePipe, isStandalone: true, name: "axDate" }); }
|
1172
1219
|
}
|
1173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimePipe, decorators: [{
|
1174
1221
|
type: Pipe,
|
1175
1222
|
args: [{ name: 'axDate' }]
|
1176
1223
|
}] });
|
1177
1224
|
|
1178
1225
|
class AXDateTimeFormatter {
|
1179
1226
|
constructor() {
|
1227
|
+
this.localeService = inject(AXLocaleService);
|
1180
1228
|
this.calendarService = inject(AXCalendarService);
|
1181
1229
|
}
|
1182
1230
|
get name() {
|
1183
1231
|
return 'datetime';
|
1184
1232
|
}
|
1185
1233
|
format(value, options) {
|
1234
|
+
if (isNil(value)) {
|
1235
|
+
return '';
|
1236
|
+
}
|
1237
|
+
//
|
1238
|
+
if (!this.calendarService.isValidDate(value))
|
1239
|
+
return 'Invalid date';
|
1240
|
+
//
|
1186
1241
|
const effectiveOptions = typeof options == 'object'
|
1187
1242
|
? {
|
1188
1243
|
format: options.format ?? 'date',
|
@@ -1193,20 +1248,34 @@ class AXDateTimeFormatter {
|
|
1193
1248
|
format: options,
|
1194
1249
|
calendar: this.calendarService.calendar.name(),
|
1195
1250
|
};
|
1196
|
-
const date = (value instanceof Date) ? value :
|
1197
|
-
(typeof value == "number" || typeof value == "string" ? new Date(value) : null);
|
1198
1251
|
//
|
1199
|
-
|
1200
|
-
|
1252
|
+
const formats = this.localeService.activeProfile().formats;
|
1253
|
+
const map = {
|
1254
|
+
longDate: formats.date.long,
|
1255
|
+
shortDate: formats.date.short,
|
1256
|
+
mediumDate: formats.date.medium,
|
1257
|
+
date: formats.date.short,
|
1258
|
+
//
|
1259
|
+
longTime: formats.time.long,
|
1260
|
+
shortTime: formats.time.short,
|
1261
|
+
mediumTime: formats.time.medium,
|
1262
|
+
time: formats.time.short,
|
1263
|
+
//
|
1264
|
+
long: formats.datetime.long,
|
1265
|
+
short: formats.datetime.short,
|
1266
|
+
medium: formats.datetime.medium,
|
1267
|
+
full: formats.datetime.full,
|
1268
|
+
};
|
1269
|
+
const format = map[effectiveOptions.format] ?? effectiveOptions.format ?? map['date'];
|
1201
1270
|
//
|
1202
1271
|
return this.calendarService
|
1203
|
-
.
|
1204
|
-
.format(
|
1272
|
+
.convert(value, effectiveOptions.calendar)
|
1273
|
+
.format(format, { locale: effectiveOptions.locale });
|
1205
1274
|
}
|
1206
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
1207
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
1275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1276
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeFormatter }); }
|
1208
1277
|
}
|
1209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
|
1210
1279
|
type: Injectable
|
1211
1280
|
}] });
|
1212
1281
|
|
@@ -1253,10 +1322,10 @@ class AXTimeDurationFormatter {
|
|
1253
1322
|
// Join the parts according to the format
|
1254
1323
|
return formattedTime.join(format.includes('ms') || format.includes('MS') ? ':' : ':');
|
1255
1324
|
}
|
1256
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
1257
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
1325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeDurationFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1326
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeDurationFormatter }); }
|
1258
1327
|
}
|
1259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeDurationFormatter, decorators: [{
|
1260
1329
|
type: Injectable
|
1261
1330
|
}] });
|
1262
1331
|
|
@@ -1340,26 +1409,120 @@ class AXTimeLeftFormatter {
|
|
1340
1409
|
return 'Invalid format';
|
1341
1410
|
}
|
1342
1411
|
}
|
1343
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
1344
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
1412
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1413
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeLeftFormatter }); }
|
1414
|
+
}
|
1415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
|
1416
|
+
type: Injectable
|
1417
|
+
}] });
|
1418
|
+
|
1419
|
+
class AXDateFormatter {
|
1420
|
+
constructor() {
|
1421
|
+
this.calendarService = inject(AXCalendarService);
|
1422
|
+
this.localeService = inject(AXLocaleService);
|
1423
|
+
}
|
1424
|
+
get name() {
|
1425
|
+
return 'date';
|
1426
|
+
}
|
1427
|
+
format(value, options) {
|
1428
|
+
if (isNil(value)) {
|
1429
|
+
return "";
|
1430
|
+
}
|
1431
|
+
//
|
1432
|
+
if (!this.calendarService.isValidDate(value))
|
1433
|
+
return "Invalid date";
|
1434
|
+
//
|
1435
|
+
const effectiveOptions = typeof options == 'object'
|
1436
|
+
? {
|
1437
|
+
format: options.format ?? 'short',
|
1438
|
+
locale: options.locale,
|
1439
|
+
calendar: options.calendar ?? this.calendarService.calendar.name(),
|
1440
|
+
}
|
1441
|
+
: {
|
1442
|
+
format: options,
|
1443
|
+
calendar: this.calendarService.calendar.name(),
|
1444
|
+
};
|
1445
|
+
//
|
1446
|
+
const formats = this.localeService.activeProfile().formats;
|
1447
|
+
const map = {
|
1448
|
+
"short": formats.date.short,
|
1449
|
+
"medium": formats.date.medium,
|
1450
|
+
"long": formats.date.long,
|
1451
|
+
"full": formats.date.full,
|
1452
|
+
};
|
1453
|
+
const format = map[effectiveOptions.format] ?? effectiveOptions.format ?? map['short'];
|
1454
|
+
//
|
1455
|
+
return this.calendarService
|
1456
|
+
.convert(value, effectiveOptions.calendar)
|
1457
|
+
.format(format, { locale: effectiveOptions.locale });
|
1458
|
+
}
|
1459
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1460
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateFormatter }); }
|
1461
|
+
}
|
1462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateFormatter, decorators: [{
|
1463
|
+
type: Injectable
|
1464
|
+
}] });
|
1465
|
+
|
1466
|
+
class AXTimeFormatter {
|
1467
|
+
constructor() {
|
1468
|
+
this.calendarService = inject(AXCalendarService);
|
1469
|
+
this.localeService = inject(AXLocaleService);
|
1470
|
+
}
|
1471
|
+
get name() {
|
1472
|
+
return 'time';
|
1473
|
+
}
|
1474
|
+
format(value, options) {
|
1475
|
+
if (isNil(value)) {
|
1476
|
+
return '';
|
1477
|
+
}
|
1478
|
+
//
|
1479
|
+
if (!this.calendarService.isValidDate(value))
|
1480
|
+
return 'Invalid date';
|
1481
|
+
//
|
1482
|
+
const effectiveOptions = typeof options == 'object'
|
1483
|
+
? {
|
1484
|
+
format: options.format ?? 'short',
|
1485
|
+
locale: options.locale,
|
1486
|
+
calendar: options.calendar ?? this.calendarService.calendar.name(),
|
1487
|
+
}
|
1488
|
+
: {
|
1489
|
+
format: options,
|
1490
|
+
calendar: this.calendarService.calendar.name(),
|
1491
|
+
};
|
1492
|
+
//
|
1493
|
+
const formats = this.localeService.activeProfile().formats;
|
1494
|
+
const map = {
|
1495
|
+
short: formats.time.short,
|
1496
|
+
medium: formats.time.medium,
|
1497
|
+
long: formats.time.long,
|
1498
|
+
full: formats.time.full,
|
1499
|
+
};
|
1500
|
+
const format = map[effectiveOptions.format] ?? effectiveOptions.format ?? map['short'];
|
1501
|
+
//
|
1502
|
+
return this.calendarService
|
1503
|
+
.convert(value, effectiveOptions.calendar)
|
1504
|
+
.format(format, { locale: effectiveOptions.locale });
|
1505
|
+
}
|
1506
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1507
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeFormatter }); }
|
1345
1508
|
}
|
1346
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1509
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXTimeFormatter, decorators: [{
|
1347
1510
|
type: Injectable
|
1348
1511
|
}] });
|
1349
1512
|
|
1350
1513
|
class AXDateTimeModule {
|
1351
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
1352
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
1353
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
1354
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1514
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1515
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeModule, imports: [i1.AXFormatModule, AXDateTimePipe], exports: [AXDateTimePipe] }); }
|
1516
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule.forChild({
|
1517
|
+
formatters: [AXDateTimeFormatter, AXDateFormatter, AXTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1355
1518
|
})] }); }
|
1356
1519
|
}
|
1357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
1520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
1358
1521
|
type: NgModule,
|
1359
1522
|
args: [{
|
1360
1523
|
imports: [
|
1361
1524
|
AXFormatModule.forChild({
|
1362
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1525
|
+
formatters: [AXDateTimeFormatter, AXDateFormatter, AXTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1363
1526
|
}),
|
1364
1527
|
AXDateTimePipe,
|
1365
1528
|
],
|
@@ -1371,5 +1534,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
1371
1534
|
* Generated bundle index. Do not edit.
|
1372
1535
|
*/
|
1373
1536
|
|
1374
|
-
export { AXCalendar, AXCalendarMonth, AXCalendarService, AXDateTime, AXDateTimeDefaultConfig, AXDateTimeFormatter, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXHolidaysLoaderDefault, AXTimeLeftFormatter, AX_DATETIME_CONFIG, AX_DATETIME_HOLIDAYS_LOADER,
|
1537
|
+
export { AXCalendar, AXCalendarMonth, AXCalendarService, AXDateTime, AXDateTimeDefaultConfig, AXDateTimeFormatter, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXGregorianCalendar, AXHolidaysLoaderDefault, AXSolarHijriCalendar, AXTimeLeftFormatter, AX_DATETIME_CONFIG, AX_DATETIME_HOLIDAYS_LOADER, dateTimeConfig };
|
1375
1538
|
//# sourceMappingURL=acorex-core-date-time.mjs.map
|