intelicoreact 1.5.13 → 1.5.14

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.
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DATE_UNITS = exports.DATETIME_FORMATS = void 0;
8
+ exports.parseAndFormatDate = parseAndFormatDate;
9
+ var _moment = _interopRequireDefault(require("moment"));
10
+ /**
11
+ * @constant {Object} DATETIME_FORMATS
12
+ * @description Все доступные форматы дат и времени.
13
+ */
14
+ const DATETIME_FORMATS = exports.DATETIME_FORMATS = {
15
+ // Основные форматы
16
+ DATE_FORMAT: "YYYY-MM-DD",
17
+ // Стандартный формат даты
18
+ DATE_WITHOUT_SEPARATORS: "MMDDYYYY",
19
+ // Без разделителей
20
+ VALIDATION_DATE_FORMAT: "MM/DD/YYYY",
21
+ // Для валидации
22
+ INPUT_DATE_FORMAT: "MM.DD.YYYY",
23
+ // Формат для ввода
24
+ INPUT_TIME_FORMAT: "YYYY-MM-DD HH:mm:SS",
25
+ // Ввод времени
26
+ TIME_FORMAT_WSPACE: "YYYY-MM-DD HH:mm:SS",
27
+ // Время с пробелом
28
+ TIME_FORMAT: "YYYY-MM-DDTHH:mm:SS",
29
+ // Время с T (ISO формат)
30
+ DATE_FORMAT_WITH_SLASH: "MM/DD/YYYY",
31
+ // Дата с разделителем /
32
+
33
+ // Дополнительные форматы
34
+ DATE_WITH_DASHES: "MM-DD-YYYY",
35
+ // Дата с дефисами
36
+ DATE_WITH_DOTS: "DD.MM.YYYY",
37
+ // Дата с точками
38
+ DATE_WITH_COMMA: "DD,MM,YYYY",
39
+ // Дата с запятыми
40
+ FULL_DATE_TIME: "YYYY-MM-DD HH:mm:ss",
41
+ // Полная дата и время
42
+ ISO_DATE_TIME: "YYYY-MM-DDTHH:mm:ss.SSSZ",
43
+ // ISO стандарт с миллисекундами
44
+ LOCALIZED_DATE: "MMMM DD, YYYY",
45
+ // Локализованный формат с полным названием месяца
46
+ SHORT_DATE: "MM/DD/YY",
47
+ // Краткая дата
48
+ SHORT_DATE_WITH_TIME: "MM/DD/YY HH:mm",
49
+ // Краткая дата с временем
50
+ TIME_24H: "HH:mm",
51
+ // Время в 24-часовом формате
52
+ TIME_12H: "hh:mm A",
53
+ // Время в 12-часовом формате
54
+ TIME_12H_WITH_SECONDS: "hh:mm:ss A",
55
+ // Время в 12-часовом формате с секундами
56
+ TIME_24H_WITH_SECONDS: "HH:mm:ss",
57
+ // Время в 24-часовом формате с секундами
58
+ MONTH_DAY: "MM/DD",
59
+ // Только месяц и день
60
+ YEAR_MONTH_DAY: "YYYY/MM/DD" // Год/Месяц/День
61
+ };
62
+
63
+ /**
64
+ * @constant {Object} DATE_UNITS
65
+ * @description Единицы времени, которые могут быть использованы для работы с датами.
66
+ */
67
+ const DATE_UNITS = exports.DATE_UNITS = {
68
+ YEARS: {
69
+ YEARS: "years",
70
+ YEAR: "year",
71
+ Y: "y",
72
+ TEMPLATE: "YYYY"
73
+ },
74
+ MONTHS: {
75
+ MONTHS: "months",
76
+ MONTH: "month",
77
+ MON: "M",
78
+ TEMPLATE: "MM"
79
+ },
80
+ DAYS: {
81
+ DAYS: "days",
82
+ DAY: "day",
83
+ D: "d",
84
+ TEMPLATE: "DD"
85
+ },
86
+ HOURS: {
87
+ HOURS: "hours",
88
+ HOUR: "hour",
89
+ H: "h",
90
+ TEMPLATE: "HH"
91
+ },
92
+ WEEKS: {
93
+ WEEKS: "weeks",
94
+ WEEK: "week",
95
+ W: "w"
96
+ },
97
+ QUARTERS: {
98
+ QUARTERS: "quarters",
99
+ QUARTER: "quarter",
100
+ Q: "Q"
101
+ },
102
+ MINUTES: {
103
+ MINUTES: "minutes",
104
+ MINUTE: "minute",
105
+ MIN: "m"
106
+ },
107
+ SECONDS: {
108
+ SECONDS: "seconds",
109
+ SECOND: "second",
110
+ S: "s"
111
+ },
112
+ MILLISECONDS: {
113
+ MILLISECONDS: "milliseconds",
114
+ MILLISECOND: "millisecond",
115
+ MS: "ms"
116
+ }
117
+ };
118
+
119
+ /**
120
+ * Функция для парсинга и форматирования строки с датой в указанный формат.
121
+ *
122
+ * @param {string} value - Строка с датой, которую необходимо распарсить и отформатировать.
123
+ * @param {string} [outputFormat=DATETIME_FORMATS.INPUT_DATE_FORMAT] - Формат, в который будет преобразована дата.
124
+ * Если не указан, используется формат по умолчанию `MM.DD.YYYY`.
125
+ *
126
+ * @returns {string} - Отформатированная дата в строковом виде, или исходная строка, если дата не распознана.
127
+ *
128
+ * @throws {Error} - Если значение даты некорректно (не строка или пустое).
129
+ */
130
+ function parseAndFormatDate(value) {
131
+ let outputFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DATETIME_FORMATS.INPUT_DATE_FORMAT;
132
+ if (!value || typeof value !== "string") throw new Error("Invalid date value");
133
+ for (let format of Object.values(DATETIME_FORMATS)) {
134
+ if ((0, _moment.default)(value, format, true).isValid()) {
135
+ return (0, _moment.default)(value, format).format(outputFormat);
136
+ }
137
+ }
138
+ return value;
139
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.5.13",
3
+ "version": "1.5.14",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [