fui-material 2.2.2 → 2.2.4

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,60 @@
1
+ type FormatOption = "iso" | "ru" | "ru-datetime" | "date" | "time" | "custom";
2
+ interface ConvertDateOptions {
3
+ /**
4
+ * Стандартные форматы:
5
+ * - "iso" → YYYY-MM-DD
6
+ * - "ru" → DD.MM.YYYY
7
+ * - "ru-datetime" → DD.MM.YYYY HH:MM:SS
8
+ * - "time" → HH:MM:SS
9
+ * - "date" → объект Date
10
+ * - "custom" → использовать `customOptions`
11
+ */
12
+ format?: FormatOption;
13
+ /** Локаль для кастомного формата (по умолчанию "ru-RU") */
14
+ locale?: string;
15
+ /** Опции для Intl.DateTimeFormat при `format: "custom"` */
16
+ customOptions?: Intl.DateTimeFormatOptions;
17
+ }
18
+ /**
19
+ * Универсальный конвертер даты и времени.
20
+ *
21
+ * Поддерживает строки, числа (timestamp), Date, null и undefined.
22
+ * Может возвращать дату в ISO, русскую дату, русскую дату с временем,
23
+ * только время, объект Date или кастомный формат через Intl.DateTimeFormat.
24
+ *
25
+ * @param input - Дата в виде строки, числа, Date, null или undefined
26
+ * @param options - Настройки форматирования
27
+ *
28
+ * @returns Отформатированная дата/время или '' / undefined для пустых значений
29
+ *
30
+ * @example
31
+ * // ISO формат
32
+ * convertDate("2025-10-02T15:30:45", { format: "iso" });
33
+ * // "2025-10-02"
34
+ *
35
+ * // Русская дата
36
+ * convertDate("2025-10-02T15:30:45", { format: "ru" });
37
+ * // "02.10.2025"
38
+ *
39
+ * // Русская дата и время
40
+ * convertDate("2025-10-02T15:30:45", { format: "ru-datetime" });
41
+ * // "02.10.2025 15:30:45"
42
+ *
43
+ * // Только время
44
+ * convertDate(new Date(), { format: "time" });
45
+ * // "14:30:05"
46
+ *
47
+ * // Объект Date
48
+ * convertDate(1696262400000, { format: "date" });
49
+ * // Date object
50
+ *
51
+ * // Кастомный формат
52
+ * convertDate(new Date(), {
53
+ * format: "custom",
54
+ * locale: "en-US",
55
+ * customOptions: { weekday: "long", month: "long", day: "numeric", year: "numeric" }
56
+ * });
57
+ * // "Thursday, October 2, 2025"
58
+ */
59
+ declare function fConvertDate(input: string | number | Date | null | undefined, options?: ConvertDateOptions): string | Date | undefined;
60
+ export default fConvertDate;
@@ -0,0 +1 @@
1
+ export { default } from "./fConvertDate";
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Форматирует число в строку с русской локализацией (разделение тысяч, дробная часть и т.д.)
3
3
  * Может использовать банковское округление перед форматированием.
4
+ * По флагу может вернуть число вместо строки.
4
5
  *
5
6
  * @param {number} a - Число для форматирования
6
7
  * @param {Object} [options] - Опциональные параметры
@@ -8,22 +9,20 @@
8
9
  * @param {number} [options.minimumFractionDigits] - Минимальное количество знаков после запятой
9
10
  * @param {boolean} [options.useBankRound=false] - Использовать ли банковское округление
10
11
  * @param {number} [options.bankRoundDecimalPlaces=2] - Количество знаков после запятой для банковского округления
11
- * @returns {string} Отформатированная строка числа
12
- *
13
- * @description
14
- * Функция сначала проверяет валидность входного числа, затем при необходимости
15
- * применяет банковское округление, после чего форматирует результат
16
- * с использованием русской локали и возвращает строку.
12
+ * @param {boolean} [options.returnNumber=false] - Вернуть ли число вместо строки
13
+ * @returns {string|number} Отформатированная строка числа или число
17
14
  *
18
15
  * @example
19
16
  * fFormatRuNumber(1234.567); // "1 234,567"
20
17
  * fFormatRuNumber(1234.567, { useBankRound: true }); // "1 234,57"
21
18
  * fFormatRuNumber(1234.567, { maximumFractionDigits: 2 }); // "1 234,57"
19
+ * fFormatRuNumber(1234.567, { useBankRound: true, returnNumber: true }); // 1234.57
22
20
  */
23
21
  declare const fFormatRuNumber: (a: number, options?: {
24
22
  maximumFractionDigits?: number;
25
23
  minimumFractionDigits?: number;
26
24
  useBankRound?: boolean;
27
25
  bankRoundDecimalPlaces?: number;
28
- }) => string;
26
+ returnNumber?: boolean;
27
+ }) => string | number;
29
28
  export default fFormatRuNumber;
@@ -13,3 +13,4 @@ export { default as fDownloadFileFromBase64 } from "./fDownloadFileFromBase64";
13
13
  export { default as fDownloadBlobFile } from "./fDownloadBlobFile";
14
14
  export { default as fBankRound } from "./fBankRound";
15
15
  export { default as fFormatRuNumber } from "./fFormatRuNumber";
16
+ export { default as fConvertDate } from "./fConvertDate";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fui-material",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",