@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.
Files changed (75) hide show
  1. package/date-time/index.d.ts +5 -5
  2. package/date-time/lib/calendar.service.d.ts +8 -3
  3. package/date-time/lib/dateTime.config.d.ts +1 -1
  4. package/date-time/lib/datetime.pipe.d.ts +2 -1
  5. package/date-time/lib/{datetime.class.d.ts → datetime.types.d.ts} +2 -2
  6. package/date-time/lib/formatters/date.formatter.d.ts +12 -0
  7. package/date-time/lib/formatters/{datetime-formatter.d.ts → datetime.formatter.d.ts} +3 -1
  8. package/date-time/lib/formatters/time.formatter.d.ts +12 -0
  9. package/date-time/lib/{georgian.calendar.d.ts → gregorian.calendar.d.ts} +2 -2
  10. package/date-time/lib/{jalali.calendar.d.ts → solar-hijri.calendar.d.ts} +8 -8
  11. package/events/index.d.ts +0 -1
  12. package/fesm2022/acorex-core-components.mjs +3 -3
  13. package/fesm2022/acorex-core-config.mjs +3 -3
  14. package/fesm2022/acorex-core-date-time.mjs +282 -119
  15. package/fesm2022/acorex-core-date-time.mjs.map +1 -1
  16. package/fesm2022/acorex-core-events.mjs +4 -10
  17. package/fesm2022/acorex-core-events.mjs.map +1 -1
  18. package/fesm2022/acorex-core-file.mjs +10 -10
  19. package/fesm2022/acorex-core-format.mjs +78 -63
  20. package/fesm2022/acorex-core-format.mjs.map +1 -1
  21. package/fesm2022/acorex-core-image.mjs +3 -3
  22. package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs +64 -0
  23. package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs.map +1 -0
  24. package/fesm2022/acorex-core-locale.mjs +341 -0
  25. package/fesm2022/acorex-core-locale.mjs.map +1 -0
  26. package/fesm2022/acorex-core-network.mjs +3 -3
  27. package/fesm2022/acorex-core-pipes.mjs +3 -3
  28. package/fesm2022/acorex-core-platform.mjs +3 -3
  29. package/fesm2022/acorex-core-storage.mjs +9 -9
  30. package/fesm2022/acorex-core-translation.mjs +246 -206
  31. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  32. package/fesm2022/acorex-core-utils.mjs +143 -18
  33. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  34. package/fesm2022/acorex-core-validation.mjs +40 -40
  35. package/format/index.d.ts +2 -2
  36. package/format/lib/format.directive.d.ts +1 -1
  37. package/format/lib/format.module.d.ts +3 -3
  38. package/format/lib/format.service.d.ts +8 -7
  39. package/locale/README.md +3 -0
  40. package/locale/index.d.ts +8 -0
  41. package/locale/lib/formatters/currency.formatter.d.ts +10 -0
  42. package/locale/lib/locale-profile-provider.service.d.ts +24 -0
  43. package/locale/lib/locale.config.d.ts +5 -0
  44. package/locale/lib/locale.module.d.ts +7 -0
  45. package/locale/lib/locale.service.d.ts +20 -0
  46. package/locale/lib/locale.types.d.ts +61 -0
  47. package/locale/lib/profiles/en-AU.profile.d.ts +2 -0
  48. package/locale/lib/profiles/en-US.profile.d.ts +2 -0
  49. package/locale/lib/profiles/fa-IR.profile.d.ts +2 -0
  50. package/package.json +5 -1
  51. package/translation/index.d.ts +1 -1
  52. package/translation/lib/translation-loader.service.d.ts +20 -0
  53. package/translation/lib/translation.config.d.ts +19 -6
  54. package/translation/lib/translation.loader.d.ts +2 -2
  55. package/translation/lib/translation.parser.d.ts +7 -0
  56. package/translation/lib/translation.resolver.d.ts +9 -0
  57. package/translation/lib/translation.service.d.ts +12 -31
  58. package/translation/lib/translation.types.d.ts +8 -2
  59. package/translation/lib/translator.pipe.d.ts +0 -2
  60. package/types/README.md +2 -2
  61. package/utils/index.d.ts +6 -5
  62. package/utils/lib/execution.utils.d.ts +33 -0
  63. package/utils/lib/string.utils.d.ts +4 -0
  64. package/events/lib/event.type.d.ts +0 -5
  65. package/i18n/en/common.json +0 -191
  66. package/i18n/fa/common.json +0 -190
  67. package/utils/lib/string-util.d.ts +0 -6
  68. /package/date-time/lib/formatters/{time-duration-formatter.d.ts → time-duration.formatter.d.ts} +0 -0
  69. /package/date-time/lib/formatters/{timeleft-formatter.d.ts → timeleft.formatter.d.ts} +0 -0
  70. /package/format/lib/formatters/{number-formatter.d.ts → number.formatter.d.ts} +0 -0
  71. /package/format/lib/formatters/{string-formatter.d.ts → string.formatter.d.ts} +0 -0
  72. /package/utils/lib/{color-util.d.ts → color.utils.d.ts} +0 -0
  73. /package/utils/lib/{drawing-util.d.ts → drawing.utils.d.ts} +0 -0
  74. /package/utils/lib/{html-util.d.ts → html-utils.d.ts} +0 -0
  75. /package/utils/lib/{auto-unsubscribe.d.ts → lifecycle-helpers.utils.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { AXEventTypes, AXEventService } from '@acorex/core/events';
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
- return this._config.formats;
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
- ss: () => this.pad(this.date.getSeconds(), 2),
40
+ // 0 1 ... 58 59
40
41
  s: () => this.date.getSeconds().toString(),
41
- //
42
- dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
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
- d: () => this.calendar.dayOfMonth(this.date).toString(),
45
- //
46
- mm: () => this.pad(this.date.getMinutes(), 2),
47
- m: () => this.date.getMinutes().toString(),
48
- //
49
- MMMM: () => translateSync(`dateTime.months.${this.calendar.name()}.long.${this.calendar.monthOfYear(this.date) - 1}`),
50
- MMM: () => translateSync(`dateTime.months.${this.calendar.name()}.short.${this.calendar.monthOfYear(this.date) - 1}`),
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
- M: () => this.calendar.monthOfYear(this.date),
53
- //
54
- E: () => translateSync(`dateTime.weekdays.long.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
55
- DDD: () => translateSync(`dateTime.weekdays.short.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
56
- DDDD: () => this._formatKeys['E'](),
57
- //
58
- yyyy: () => this.pad(this.calendar.year(this.date), 4),
59
- YYYY: () => this.pad(this.calendar.year(this.date), 4),
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
- HH: () => this.pad(this.date.getHours(), 2),
64
- H: () => this.date.getHours().toString(),
65
- //
66
- hh: () => this.pad(this.date.getHours() % 12 || 12, 2),
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-GB');
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
- const r = f(effectiveOptions);
144
- return r;
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 GeorgianCalendar extends AXCalendar {
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 'georgian';
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 JalaliCalendar extends AXCalendar {
593
+ class AXSolarHijriCalendar extends AXCalendar {
554
594
  /**
555
595
  * @ignore
556
596
  */
557
597
  constructor(config) {
558
598
  super(config);
559
599
  /*
560
- Jalaali years starting the 33-year rule.
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 'jalali';
609
+ return 'solar-hijri';
570
610
  }
571
611
  dayOfMonth(date) {
572
- return this.toJalaali(date).day;
612
+ return this.toSolarHijri(date).day;
573
613
  }
574
614
  dayOfYear(date) {
575
- const j = this.toJalaali(date);
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.toJalaali(date).year;
627
+ return this.toSolarHijri(date).year;
588
628
  }
589
629
  monthOfYear(date) {
590
- return this.toJalaali(date).month;
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.jalaaliMonthLength(jy, newMonth); // Implement this method to find the last day in a Jalali month
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.toJalaali(clone);
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.jalaaliMonthLength(jy, jm);
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.jalaaliMonthLength(jy, 12));
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 Jalaali.
816
+ Converts a Gregorian date to SolarHijri.
777
817
  */
778
- toJalaali(date) {
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 Jalaali date to Gregorian.
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 Jalaali date is valid or not.
837
+ Checks whether a SolarHijri date is valid or not.
798
838
  */
799
- isValidJalaaliDate(jy, jm, jd) {
800
- return jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= this.jalaaliMonthLength(jy, jm);
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
- isLeapJalaaliYear(jy) {
845
+ isLeapSolarHijriYear(jy) {
806
846
  return this.jalCalLeap(jy) === 0;
807
847
  }
808
848
  /*
809
- Number of days in a given month in a Jalaali year.
849
+ Number of days in a given month in a SolarHijri year.
810
850
  */
811
- jalaaliMonthLength(jy, jm) {
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.isLeapJalaaliYear(jy))
856
+ if (this.isLeapSolarHijriYear(jy))
817
857
  return 30;
818
858
  return 29;
819
859
  }
820
860
  /*
821
- This determines if the Jalaali (Persian) year is
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 Jalaali calendar year (-61 to 3177)
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 Jalaali year ' + jy);
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 Jalaali year ' + jy);
851
- // Find the limiting years for the Jalaali year jy.
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 Jalaali year in the Persian calendar.
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 Jalaali year.
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
- jalaaliWeek(jy, jm, jd) {
946
- let dayOfWeek = this.jalaaliToDateObject(jy, jm, jd, 0, 0, 0, 0).getDay();
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
- jalaaliToDateObject(jy, jm, jd, h = 0, m = 0, s = 0, ms = 0) {
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: 'georgian',
1018
+ calendar: 'gregorian',
979
1019
  calendars: {
980
- georgian: new GeorgianCalendar({
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
- jalali: new JalaliCalendar({
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: AXEventTypes.AXCalendarChanged,
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
- isDate(value) {
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.isDate(value)) {
1132
+ if (!this.isValidDate(value)) {
1097
1133
  throw new Error(`Invalid Date value: ${value}`);
1098
1134
  }
1099
- if (typeof value === 'string') {
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1145
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
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.5", ngImport: i0, type: AXCalendarService, decorators: [{
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 val.format(format);
1215
+ return this.formatService.format(val, 'datetime', format);
1169
1216
  }
1170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1171
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimePipe, isStandalone: true, name: "axDate" }); }
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.5", ngImport: i0, type: AXDateTimePipe, decorators: [{
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
- if (!date)
1200
- return "";
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
- .create(date, effectiveOptions.calendar)
1204
- .format(effectiveOptions.format, { locale: effectiveOptions.locale });
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.5", ngImport: i0, type: AXDateTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1207
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimeFormatter }); }
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.5", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
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.5", ngImport: i0, type: AXTimeDurationFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1257
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXTimeDurationFormatter }); }
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.5", ngImport: i0, type: AXTimeDurationFormatter, decorators: [{
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.5", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1344
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXTimeLeftFormatter }); }
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.5", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
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.5", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1352
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimeModule, imports: [i1.AXFormatModule, AXDateTimePipe], exports: [AXDateTimePipe] }); }
1353
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule.forChild({
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.5", ngImport: i0, type: AXDateTimeModule, decorators: [{
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, GeorgianCalendar, JalaliCalendar, dateTimeConfig };
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