@acorex/core 7.17.26 → 7.17.27

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 (111) hide show
  1. package/dateTime/index.d.ts +2 -0
  2. package/dateTime/lib/calendar.service.d.ts +6 -1
  3. package/dateTime/lib/datetime.class.d.ts +6 -5
  4. package/dateTime/lib/datetime.module.d.ts +0 -2
  5. package/dateTime/lib/datetime.pipe.d.ts +3 -0
  6. package/dateTime/lib/formatters/datetime-formatter.d.ts +19 -0
  7. package/dateTime/lib/formatters/timeleft-formatter.d.ts +16 -0
  8. package/esm2022/dateTime/index.mjs +3 -1
  9. package/esm2022/dateTime/lib/calendar.service.mjs +17 -9
  10. package/esm2022/dateTime/lib/dateTime.config.mjs +5 -28
  11. package/esm2022/dateTime/lib/datetime.class.mjs +66 -14
  12. package/esm2022/dateTime/lib/datetime.module.mjs +9 -11
  13. package/esm2022/dateTime/lib/datetime.pipe.mjs +5 -7
  14. package/esm2022/dateTime/lib/formatters/datetime-formatter.mjs +30 -0
  15. package/esm2022/dateTime/lib/formatters/timeleft-formatter.mjs +91 -0
  16. package/esm2022/file/lib/file-size-formatter.mjs +2 -2
  17. package/esm2022/file/lib/file.module.mjs +8 -10
  18. package/esm2022/format/index.mjs +3 -2
  19. package/esm2022/format/lib/format.config.mjs +3 -2
  20. package/esm2022/format/lib/format.module.mjs +22 -9
  21. package/esm2022/format/lib/format.pipe.mjs +5 -6
  22. package/esm2022/format/lib/format.service.mjs +57 -12
  23. package/esm2022/format/lib/format.types.mjs +2 -0
  24. package/esm2022/format/lib/formatters/number-formatter.mjs +75 -0
  25. package/esm2022/translation/index.mjs +7 -2
  26. package/esm2022/translation/lib/translation-scope.resolver.mjs +11 -0
  27. package/esm2022/translation/lib/translation.config.mjs +20 -0
  28. package/esm2022/translation/lib/translation.loader.mjs +14 -0
  29. package/esm2022/translation/lib/translation.module.mjs +29 -7
  30. package/esm2022/translation/lib/translation.service.mjs +105 -0
  31. package/esm2022/translation/lib/translation.types.mjs +2 -0
  32. package/esm2022/translation/lib/translator.directive.mjs +28 -0
  33. package/esm2022/translation/lib/translator.pipe.mjs +33 -7
  34. package/esm2022/validation/index.mjs +2 -2
  35. package/esm2022/validation/lib/rules/between-rule.mjs +8 -1
  36. package/esm2022/validation/lib/rules/callback-rule.mjs +8 -1
  37. package/esm2022/validation/lib/rules/equal-rule.mjs +8 -1
  38. package/esm2022/validation/lib/rules/greater-than.mjs +8 -1
  39. package/esm2022/validation/lib/rules/length-rule.mjs +9 -1
  40. package/esm2022/validation/lib/rules/less-than-rule.mjs +8 -1
  41. package/esm2022/validation/lib/rules/maxlength-rule.mjs +8 -1
  42. package/esm2022/validation/lib/rules/minlength-rule.mjs +8 -1
  43. package/esm2022/validation/lib/rules/regex-rule.mjs +13 -2
  44. package/esm2022/validation/lib/rules/required-rule.mjs +13 -3
  45. package/esm2022/validation/lib/validation.config.mjs +3 -4
  46. package/esm2022/validation/lib/validation.module.mjs +38 -12
  47. package/esm2022/validation/lib/validation.service.mjs +30 -16
  48. package/esm2022/validation/lib/validation.types.mjs +3 -0
  49. package/fesm2022/acorex-core-dateTime.mjs +110 -68
  50. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  51. package/fesm2022/acorex-core-file.mjs +8 -9
  52. package/fesm2022/acorex-core-file.mjs.map +1 -1
  53. package/fesm2022/acorex-core-format.mjs +147 -55
  54. package/fesm2022/acorex-core-format.mjs.map +1 -1
  55. package/fesm2022/acorex-core-translation.mjs +212 -45
  56. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  57. package/fesm2022/acorex-core-validation.mjs +131 -32
  58. package/fesm2022/acorex-core-validation.mjs.map +1 -1
  59. package/file/lib/file-size-formatter.d.ts +10 -2
  60. package/file/lib/file.module.d.ts +2 -3
  61. package/format/index.d.ts +2 -1
  62. package/format/lib/format.config.d.ts +4 -3
  63. package/format/lib/format.module.d.ts +9 -3
  64. package/format/lib/format.pipe.d.ts +2 -1
  65. package/format/lib/format.service.d.ts +26 -2
  66. package/format/lib/format.types.d.ts +4 -0
  67. package/format/lib/formatters/number-formatter.d.ts +23 -0
  68. package/package.json +1 -7
  69. package/translation/index.d.ts +6 -1
  70. package/translation/lib/translation-scope.resolver.d.ts +2 -0
  71. package/translation/lib/translation.config.d.ts +14 -0
  72. package/translation/lib/translation.loader.d.ts +14 -0
  73. package/translation/lib/translation.module.d.ts +2 -1
  74. package/translation/lib/translation.service.d.ts +26 -0
  75. package/translation/lib/translation.types.d.ts +10 -0
  76. package/translation/lib/translator.directive.d.ts +12 -0
  77. package/translation/lib/translator.pipe.d.ts +12 -4
  78. package/validation/index.d.ts +1 -1
  79. package/validation/lib/rules/between-rule.d.ts +5 -2
  80. package/validation/lib/rules/callback-rule.d.ts +5 -2
  81. package/validation/lib/rules/equal-rule.d.ts +5 -2
  82. package/validation/lib/rules/greater-than.d.ts +5 -2
  83. package/validation/lib/rules/length-rule.d.ts +5 -2
  84. package/validation/lib/rules/less-than-rule.d.ts +5 -2
  85. package/validation/lib/rules/maxlength-rule.d.ts +5 -2
  86. package/validation/lib/rules/minlength-rule.d.ts +5 -2
  87. package/validation/lib/rules/regex-rule.d.ts +6 -2
  88. package/validation/lib/rules/required-rule.d.ts +6 -2
  89. package/validation/lib/validation.config.d.ts +3 -3
  90. package/validation/lib/validation.module.d.ts +10 -4
  91. package/validation/lib/validation.service.d.ts +8 -3
  92. package/validation/lib/{validation.d.ts → validation.types.d.ts} +3 -3
  93. package/dateTime/lib/datetime-formatter.d.ts +0 -15
  94. package/esm2022/dateTime/lib/datetime-formatter.mjs +0 -109
  95. package/esm2022/format/lib/number-formatter.mjs +0 -16
  96. package/esm2022/format/lib/string-formatter.mjs +0 -26
  97. package/esm2022/intl/acorex-core-intl.mjs +0 -5
  98. package/esm2022/intl/index.mjs +0 -3
  99. package/esm2022/intl/lib/numbers/number-format-options.mjs +0 -10
  100. package/esm2022/intl/lib/numbers/numbers-utils.mjs +0 -39
  101. package/esm2022/translation/lib/translator.mjs +0 -42
  102. package/esm2022/validation/lib/validation.mjs +0 -2
  103. package/fesm2022/acorex-core-intl.mjs +0 -54
  104. package/fesm2022/acorex-core-intl.mjs.map +0 -1
  105. package/format/lib/number-formatter.d.ts +0 -5
  106. package/format/lib/string-formatter.d.ts +0 -5
  107. package/intl/README.md +0 -3
  108. package/intl/index.d.ts +0 -2
  109. package/intl/lib/numbers/number-format-options.d.ts +0 -7
  110. package/intl/lib/numbers/numbers-utils.d.ts +0 -3
  111. package/translation/lib/translator.d.ts +0 -11
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, InjectionToken, Injectable, Pipe, NgModule } from '@angular/core';
3
- import { Subject } from 'rxjs';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
4
  import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
5
- import { orderBy, set, isNil } from 'lodash-es';
5
+ import { defaults, orderBy, set, isNil } from 'lodash-es';
6
+ import { translateSync } from '@acorex/core/translation';
6
7
  import * as i1 from '@acorex/core/format';
7
8
  import { AXFormatModule } from '@acorex/core/format';
8
9
 
@@ -19,11 +20,8 @@ class AXCalendar {
19
20
  get formats() {
20
21
  return this._config.formats;
21
22
  }
22
- get dayNames() {
23
- return this._config.dayNames;
24
- }
25
- get monthNames() {
26
- return this._config.monthNames;
23
+ get weekdays() {
24
+ return this._config.weekdays;
27
25
  }
28
26
  }
29
27
  class AXDateTime {
@@ -34,6 +32,7 @@ class AXDateTime {
34
32
  return this._calendar;
35
33
  }
36
34
  constructor(value, calendar) {
35
+ //TODO: remove unused items
37
36
  this._formatKeys = {
38
37
  ss: () => this.pad(this.date.getSeconds(), 2),
39
38
  s: () => this.date.getSeconds().toString(),
@@ -45,13 +44,14 @@ class AXDateTime {
45
44
  mm: () => this.pad(this.date.getMinutes(), 2),
46
45
  m: () => this.date.getMinutes().toString(),
47
46
  //
48
- MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].long,
49
- MMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].short,
47
+ MMMM: () => translateSync(`dateTime.months.${this.calendar.name()}.long.${this.calendar.monthOfYear(this.date) - 1}`),
48
+ MMM: () => translateSync(`dateTime.months.${this.calendar.name()}.short.${this.calendar.monthOfYear(this.date) - 1}`),
50
49
  MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),
51
50
  M: () => this.calendar.monthOfYear(this.date),
52
51
  //
53
- DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].long,
54
- DDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].short,
52
+ E: () => translateSync(`dateTime.weekdays.long.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
53
+ DDD: () => translateSync(`dateTime.weekdays.short.${this.calendar.weekdays[this.calendar.dayOfWeek(this.date) - 1]}`),
54
+ DDDD: () => this._formatKeys['E'](),
55
55
  //
56
56
  yyyy: () => this.pad(this.calendar.year(this.date), 4),
57
57
  YYYY: () => this.pad(this.calendar.year(this.date), 4),
@@ -66,7 +66,15 @@ class AXDateTime {
66
66
  //
67
67
  A: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
68
68
  a: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
69
- //"date": () => this.format(this.getFormatPattern('fa-IR', 'date')),
69
+ 'date': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortDate')),
70
+ 'shortDate': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortDate')),
71
+ 'longDate': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'longDate')),
72
+ //
73
+ 'shortTime': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortTime')),
74
+ 'time': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'shortTime')),
75
+ 'longTime': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'longTime')),
76
+ //
77
+ 'datetime': (options) => this.format(this.getDateTimeFormatByLocale(options.locale, 'longTime')),
70
78
  };
71
79
  this._calendar = calendar;
72
80
  this._date = value;
@@ -122,14 +130,58 @@ class AXDateTime {
122
130
  endOf(unit = 'day') {
123
131
  return this._calendar.endOf(this.date, unit);
124
132
  }
125
- format(format = this.calendar.formats.dateTimeDisplay) {
133
+ format(format = this.getDateTimeFormatByLocale(navigator.language, 'shortDate'), options) {
134
+ const effectiveOptions = defaults({}, options, {
135
+ locale: navigator.language
136
+ });
126
137
  const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');
127
138
  return format.replace(re, (matched) => {
128
139
  const f = this._formatKeys[matched];
129
- const r = f();
140
+ const r = f(effectiveOptions);
130
141
  return r;
131
142
  });
132
143
  }
144
+ getDateTimeFormatByLocale(locale, style) {
145
+ let options = {};
146
+ switch (style) {
147
+ case 'shortDate': // Year, Month, Day
148
+ options = { year: 'numeric', month: '2-digit', day: '2-digit' };
149
+ break;
150
+ case 'longDate': // Weekday, Month name, Day, Year
151
+ options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
152
+ break;
153
+ case 'shortTime': // Hour, Minute
154
+ options = { hour: '2-digit', minute: '2-digit', hour12: false };
155
+ break;
156
+ case 'longTime': // Hour, Minute, Second
157
+ options = { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false };
158
+ break;
159
+ }
160
+ const formatter = new Intl.DateTimeFormat(locale, options);
161
+ // Get parts of the date and/or time
162
+ const parts = formatter.formatToParts(new Date());
163
+ // Map parts to their respective format
164
+ const formatMap = {
165
+ 'day': 'dd',
166
+ 'month': style == 'longDate' ? 'MMMM' : 'MM',
167
+ 'year': 'yyyy',
168
+ 'hour': 'HH',
169
+ 'minute': 'mm',
170
+ 'second': 'ss',
171
+ 'weekday': 'E',
172
+ 'literal': ''
173
+ };
174
+ // Construct the date and/or time format string
175
+ return parts.map(part => {
176
+ if (part.type === 'literal') {
177
+ // Use the literal part directly as separator
178
+ return part.value;
179
+ }
180
+ else {
181
+ return formatMap[part.type] || part.value;
182
+ }
183
+ }).join('');
184
+ }
133
185
  pad(n, width, z = '0') {
134
186
  n = n + '';
135
187
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
@@ -875,26 +927,8 @@ const AXDateTimeDefaultConfig = {
875
927
  calendar: 'georgian',
876
928
  calendars: {
877
929
  georgian: new GeorgianCalendar({
878
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map((d) => ({
879
- long: d,
880
- short: d.substring(0, 3),
881
- letter: d[0],
882
- })),
883
- monthNames: [
884
- 'January',
885
- 'February',
886
- 'March',
887
- 'April',
888
- 'May',
889
- 'June',
890
- 'July',
891
- 'August',
892
- 'September',
893
- 'October',
894
- 'November',
895
- 'December',
896
- ].map((d) => ({ long: d, short: d.substring(0, 3), letter: d[0] })),
897
- weekend: [6, 7],
930
+ weekdays: [0, 1, 2, 3, 4, 5, 6],
931
+ weekend: [5, 6],
898
932
  formats: {
899
933
  dateInput: 'yyyy/MM/dd',
900
934
  timeInput: 'HH:mm',
@@ -905,13 +939,8 @@ const AXDateTimeDefaultConfig = {
905
939
  },
906
940
  }),
907
941
  jalali: new JalaliCalendar({
908
- monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'
909
- .split('_')
910
- .map((d) => ({ long: d, short: d, letter: d[0] })),
911
- dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'
912
- .split('_')
913
- .map((d) => ({ long: d, short: d[0], letter: d[0] })),
914
- weekend: [7],
942
+ weekdays: [6, 0, 1, 2, 3, 4, 5],
943
+ weekend: [6],
915
944
  formats: {
916
945
  dateInput: 'yyyy/MM/dd',
917
946
  timeInput: 'HH:mm',
@@ -945,14 +974,26 @@ const AX_DATETIME_HOLIDAYS_LOADER = new InjectionToken('AX_DATETIME_HOLIDAYS_LOA
945
974
 
946
975
  class AXCalendarService {
947
976
  get calendar() {
948
- return this._config.calendars[this._config.calendar];
977
+ return this.getActiveCalendar();
978
+ }
979
+ getDefaultCalendar() {
980
+ return this.config.calendars[this.config.calendar];
981
+ }
982
+ getActiveCalendar() {
983
+ return this.activeCalendar.getValue();
984
+ }
985
+ setActiveCalendar(name) {
986
+ const calendar = this.resolveCalendar(name);
987
+ this.activeCalendar.next(calendar);
949
988
  }
950
989
  get holidays() {
951
990
  return this._holidays;
952
991
  }
953
992
  constructor() {
954
- this._config = inject(AX_DATETIME_CONFIG);
993
+ this.config = inject(AX_DATETIME_CONFIG);
955
994
  this._holidaysLoader = inject(AX_DATETIME_HOLIDAYS_LOADER);
995
+ this.activeCalendar = new BehaviorSubject(this.getDefaultCalendar());
996
+ this.calendarChanges$ = this.activeCalendar.asObservable();
956
997
  this.onHolidaysChanged = new Subject();
957
998
  this._holidays = [];
958
999
  this.loadHolidays();
@@ -978,7 +1019,7 @@ class AXCalendarService {
978
1019
  return new AXDateTime(new Date(), calendar);
979
1020
  }
980
1021
  resolveCalendar(name) {
981
- const c = this._config.calendars[name];
1022
+ const c = this.config.calendars[name];
982
1023
  if (!c) {
983
1024
  console.error(`"${name}" is not a valid calendar name!`);
984
1025
  return this.calendar;
@@ -986,10 +1027,6 @@ class AXCalendarService {
986
1027
  return c;
987
1028
  }
988
1029
  convert(value, calendarName) {
989
- // const isISOString = val => {
990
- // const d = new Date(val);
991
- // return !Number.isNaN(d.valueOf()) && d.toISOString() === val;
992
- // };
993
1030
  const isISOString = (str) => {
994
1031
  if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{3}Z)?/.test(str))
995
1032
  return false;
@@ -1022,9 +1059,18 @@ class AXDateTimeFormatter {
1022
1059
  get name() {
1023
1060
  return 'datetime';
1024
1061
  }
1025
- format(value, ...args) {
1026
- const formatStr = (args.length ? args[0] : null);
1027
- return this.calendarService.create(value).format(formatStr);
1062
+ format(value, options) {
1063
+ const effectiveOptions = typeof options == 'object' ? {
1064
+ format: options.format ?? 'date',
1065
+ locale: options.locale,
1066
+ calendar: options.calendar ?? this.calendarService.calendar.name()
1067
+ } : {
1068
+ format: options,
1069
+ calendar: this.calendarService.calendar.name()
1070
+ };
1071
+ return this.calendarService
1072
+ .create(value, effectiveOptions.calendar)
1073
+ .format(effectiveOptions.format, { locale: effectiveOptions.locale });
1028
1074
  }
1029
1075
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1030
1076
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter }); }
@@ -1032,17 +1078,18 @@ class AXDateTimeFormatter {
1032
1078
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
1033
1079
  type: Injectable
1034
1080
  }] });
1081
+
1035
1082
  class AXTimeLeftFormatter {
1036
1083
  get name() {
1037
1084
  return 'timeleft';
1038
1085
  }
1039
- format(value, ...args) {
1086
+ format(value, options) {
1040
1087
  const milliseconds = Number(value);
1041
1088
  if (milliseconds === null || isNaN(milliseconds)) {
1042
1089
  return "Calculating...";
1043
1090
  }
1044
1091
  const durationInSeconds = Math.round(milliseconds / 1000);
1045
- let format = args[0];
1092
+ let format = options?.format;
1046
1093
  // Determine the best format if format is null
1047
1094
  if (isNil(format)) {
1048
1095
  if (durationInSeconds < 45)
@@ -1120,6 +1167,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
1120
1167
  type: Injectable
1121
1168
  }] });
1122
1169
 
1170
+ /**
1171
+ * @deprecated The pipe should not be used, use format instead
1172
+ */
1123
1173
  class AXDateTimePipe {
1124
1174
  constructor() {
1125
1175
  this._calendarService = inject(AXCalendarService);
@@ -1133,12 +1183,7 @@ class AXDateTimePipe {
1133
1183
  calendar = this._calendarService.resolveCalendar(calendarName);
1134
1184
  }
1135
1185
  const val = this._calendarService.convert(value, calendar.name());
1136
- if (!format) {
1137
- return val.format(calendar.formats.dateDisplay);
1138
- }
1139
- else {
1140
- return val.format(format);
1141
- }
1186
+ return val.format(format);
1142
1187
  }
1143
1188
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1144
1189
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimePipe, name: "axDate" }); }
@@ -1149,25 +1194,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
1149
1194
  }] });
1150
1195
 
1151
1196
  class AXDateTimeModule {
1152
- constructor(service) {
1153
- service.register(new AXDateTimeFormatter(), new AXTimeLeftFormatter());
1154
- }
1155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, deps: [{ token: i1.AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
1156
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [AXFormatModule], exports: [AXDateTimePipe] }); }
1157
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule] }); }
1197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1198
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [i1.AXFormatModule], exports: [AXDateTimePipe] }); }
1199
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule.forChild({ formatters: [AXDateTimeFormatter, AXTimeLeftFormatter] })] }); }
1158
1200
  }
1159
1201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, decorators: [{
1160
1202
  type: NgModule,
1161
1203
  args: [{
1162
- imports: [AXFormatModule],
1204
+ imports: [AXFormatModule.forChild({ formatters: [AXDateTimeFormatter, AXTimeLeftFormatter] })],
1163
1205
  exports: [AXDateTimePipe],
1164
1206
  declarations: [AXDateTimePipe],
1165
1207
  }]
1166
- }], ctorParameters: () => [{ type: i1.AXFormatterRegistryService }] });
1208
+ }] });
1167
1209
 
1168
1210
  /**
1169
1211
  * Generated bundle index. Do not edit.
1170
1212
  */
1171
1213
 
1172
- export { AXCalendar, AXCalendarMonth, AXCalendarService, AXDateTime, AXDateTimeDefaultConfig, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXHolidaysLoaderDefault, AX_DATETIME_CONFIG, AX_DATETIME_HOLIDAYS_LOADER, GeorgianCalendar, JalaliCalendar, dateTimeConfig };
1214
+ export { AXCalendar, AXCalendarMonth, AXCalendarService, AXDateTime, AXDateTimeDefaultConfig, AXDateTimeFormatter, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXHolidaysLoaderDefault, AXTimeLeftFormatter, AX_DATETIME_CONFIG, AX_DATETIME_HOLIDAYS_LOADER, GeorgianCalendar, JalaliCalendar, dateTimeConfig };
1173
1215
  //# sourceMappingURL=acorex-core-dateTime.mjs.map