@ryuzaki13/react-foundation-lib 1.2.6 → 1.2.7

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 (32) hide show
  1. package/dist/array/index.js +1 -1
  2. package/dist/chunks/{array-BBSjoTRy.js → array-D-_yMMUK.js} +2 -2
  3. package/dist/chunks/{array-BBSjoTRy.js.map → array-D-_yMMUK.js.map} +1 -1
  4. package/dist/chunks/{formatters--mhLir82.js → formatters-ShRrKmg6.js} +67 -71
  5. package/dist/chunks/{formatters--mhLir82.js.map → formatters-ShRrKmg6.js.map} +1 -1
  6. package/dist/chunks/{odata-service-DnPlNGpU.js → odata-service-B5w4YBao.js} +13 -17
  7. package/dist/chunks/{odata-service-DnPlNGpU.js.map → odata-service-B5w4YBao.js.map} +1 -1
  8. package/dist/chunks/{validate-nWY_Mla5.js → validate-BzjCBUqb.js} +14 -18
  9. package/dist/chunks/{validate-nWY_Mla5.js.map → validate-BzjCBUqb.js.map} +1 -1
  10. package/dist/error-report/index.js +2 -2
  11. package/dist/excel/index.js +3 -3
  12. package/dist/excel/index.js.map +1 -1
  13. package/dist/formatters/index.js +4 -4
  14. package/dist/hooks/index.js +82 -81
  15. package/dist/hooks/index.js.map +1 -1
  16. package/dist/media/index.js +2 -1
  17. package/dist/media/index.js.map +1 -1
  18. package/dist/number-scale/index.js +1 -1
  19. package/dist/number-scale/index.js.map +1 -1
  20. package/dist/odata-service/index.js +1 -1
  21. package/dist/pwa/index.js +1 -1
  22. package/dist/pwa/index.js.map +1 -1
  23. package/dist/pwa/sw-cache-policy.js +3 -3
  24. package/dist/pwa/sw-cache-policy.js.map +1 -1
  25. package/dist/query-client/index.js +5 -5
  26. package/dist/query-client/index.js.map +1 -1
  27. package/dist/range-output/index.js +1 -1
  28. package/dist/range-output/index.js.map +1 -1
  29. package/dist/table/index.js +3 -3
  30. package/dist/table/index.js.map +1 -1
  31. package/dist/tree-table/index.js +1 -1
  32. package/package.json +33 -33
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "../chunks/array-BBSjoTRy.js";
1
+ import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "../chunks/array-D-_yMMUK.js";
2
2
  export { d as addUnique, a as appendMissingIds, e as arrayDeduplicate, l as arrayGroupBy, f as arrayGroupByToArray, t as arrayToMap, o as arrayUniqueBy, m as arraysEqual, n as filterAndDeduplicateIds, p as moveArrayItem, c as moveArrayItemByIndex, r as moveItem, u as normalizeObjects, s as normalizeStringArray, i as pickExistingMapValues };
@@ -49,7 +49,7 @@ function u(e, t) {
49
49
  let n = /* @__PURE__ */ new Set();
50
50
  return e.filter((e) => {
51
51
  let r = String(e[t]);
52
- return n.has(r) ? !1 : (n.add(r), !0);
52
+ return !n.has(r) && (n.add(r), !0);
53
53
  });
54
54
  }
55
55
  function d(e) {
@@ -143,4 +143,4 @@ function S(e, t, n) {
143
143
  //#endregion
144
144
  export { e as _, d as a, t as b, c, f as d, g as f, n as g, m as h, p as i, u as l, v as m, x as n, s as o, _ as p, y as r, l as s, S as t, h as u, o as v, i as x, r as y };
145
145
 
146
- //# sourceMappingURL=array-BBSjoTRy.js.map
146
+ //# sourceMappingURL=array-D-_yMMUK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array-BBSjoTRy.js","names":[],"sources":["../../src/formatters/strings/normalizeText.ts","../../src/array/array.ts","../../src/array/reorder.ts"],"sourcesContent":["export function normalizeText(value: unknown): string | undefined {\n\tif (typeof value !== \"string\") return undefined;\n\n\tconst normalized = value.trim();\n\treturn normalized.length > 0 ? normalized : undefined;\n}\n\nexport function normalizeTextWithFallback(value: unknown, fallback = \"\") {\n\treturn normalizeText(value) ?? fallback;\n}\n\nexport function normalizeRequiredText(value: unknown) {\n\treturn normalizeTextWithFallback(value);\n}\n\nexport function normalizeTextToLower(value: unknown): string {\n\tconst normalized = normalizeText(value);\n\treturn normalized ? normalized.toLowerCase() : \"\";\n}\n\nexport function toSafeString(value: unknown): string {\n\treturn value == null ? \"\" : String(value);\n}\n\nconst STRING_SPACES_PATTERN = /[\\s\\u00a0\\u202f]+/gu;\n\n/**\n * Нормализует пользовательский текст: убирает пробелы по краям\n * и сворачивает любые подряд идущие пробельные символы в один обычный пробел.\n */\nexport function normalizeTextSpaces(value: unknown): string {\n\treturn normalizeRequiredText(value).replace(STRING_SPACES_PATTERN, \" \");\n}\n","import { normalizeText } from \"../formatters/strings\";\n\nexport function arrayGroupBy<T>(array: readonly T[], key: keyof T): Record<string, T[]> {\n\treturn array.reduce<Record<string, T[]>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\t(acc[groupKey] ||= []).push(item);\n\t\treturn acc;\n\t}, {});\n}\n\nexport function arrayToMap<T>(array: readonly T[], key: keyof T): Record<string, T> {\n\treturn array.reduce<Record<string, T>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\tif (!acc[groupKey]) {\n\t\t\tacc[groupKey] = item;\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nexport function arrayGroupByToArray<T>(array: readonly T[], key: keyof T): Array<{ key: string; items: T[] }> {\n\tconst grouped = array.reduce<Record<string, T[]>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\t(acc[groupKey] ||= []).push(item);\n\t\treturn acc;\n\t}, {});\n\n\treturn Object.entries(grouped).map(([key, items]) => ({\n\t\tkey,\n\t\titems\n\t}));\n}\n\nexport function arrayUniqueBy<T>(array: readonly T[], key: keyof T): T[] {\n\tconst seen = new Set<string>();\n\treturn array.filter((item) => {\n\t\tconst value = String(item[key]);\n\t\tif (seen.has(value)) return false;\n\t\tseen.add(value);\n\t\treturn true;\n\t});\n}\n\n/**\n * Удаляет дубликаты из массива с сохранением первого вхождения.\n *\n * Нужна для нормализации списков примитивных значений перед передачей\n * в кеш-ключи, SQL-запросы и другие слои, где повторные элементы не несут смысла.\n */\nexport function arrayDeduplicate<T>(array: readonly T[]): T[] {\n\tconst out: T[] = [];\n\tconst seen = new Set<T>();\n\n\tfor (const item of array) {\n\t\tif (seen.has(item)) continue;\n\n\t\tseen.add(item);\n\t\tout.push(item);\n\t}\n\n\treturn out;\n}\n\n/**\n * Фильтрует массив идентификаторов: оставляет только присутствующие в `allowedIds`,\n * удаляет дубликаты, исключает пустые строки.\n *\n * Зачем: унификация нормализации пользовательских списков ID\n * (grouped columns, locked visible columns и т.п.) перед вычислением layout.\n */\nexport function filterAndDeduplicateIds<TId extends string>(ids: readonly string[] | undefined, allowedIds: readonly TId[]): TId[] {\n\tconst known = new Map<string, TId>(allowedIds.map((id) => [id, id]));\n\tconst out: TId[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const id of ids ?? []) {\n\t\tif (!id || seen.has(id)) continue;\n\t\tconst knownId = known.get(id);\n\t\tif (!knownId) continue;\n\t\tseen.add(id);\n\t\tout.push(knownId);\n\t}\n\n\treturn out;\n}\n\nexport function appendMissingIds<TId extends string>(baseIds: readonly TId[], idsToAppend: readonly TId[]): TId[] {\n\tconst out = [...baseIds];\n\tconst seen = new Set(baseIds);\n\n\tfor (const id of idsToAppend) {\n\t\tif (!id || seen.has(id)) continue;\n\t\tseen.add(id);\n\t\tout.push(id);\n\t}\n\n\treturn out;\n}\n\nexport function pickExistingMapValues<TKey, TValue>(keys: readonly TKey[], valuesByKey: ReadonlyMap<TKey, TValue>): TValue[] {\n\tconst out: TValue[] = [];\n\n\tfor (const key of keys) {\n\t\tconst value = valuesByKey.get(key);\n\n\t\tif (value !== undefined) {\n\t\t\tout.push(value);\n\t\t}\n\t}\n\n\treturn out;\n}\n\nexport function arraysEqual<T>(left: readonly T[], right: readonly T[]): boolean {\n\tif (left.length !== right.length) return false;\n\n\tfor (let index = 0; index < left.length; index++) {\n\t\tif (left[index] !== right[index]) return false;\n\t}\n\n\treturn true;\n}\n\nexport function moveItem<T>(items: readonly T[], from: number, to: number): T[] {\n\tif (from === to) return [...items];\n\tif (from < 0 || to < 0 || from >= items.length || to >= items.length) return [...items];\n\n\tconst next = [...items];\n\tconst [item] = next.splice(from, 1);\n\tif (item === undefined) return [...items];\n\tnext.splice(to, 0, item);\n\n\treturn next;\n}\n\nexport function normalizeObjects<T, K extends keyof T, O = T>(\n\titems: readonly T[] | undefined,\n\tkey: K,\n\tcopyist?: ((item: T, key: T[K]) => O) | false\n): O[] | undefined {\n\tif (!items) return undefined;\n\n\tconst out: O[] = [];\n\tconst seen = new Set<T[K]>();\n\tconst copyFn = (() => {\n\t\tif (typeof copyist === \"boolean\" && copyist === false) {\n\t\t\treturn (item: T): O => item as unknown as O;\n\t\t}\n\t\tif (typeof copyist === \"function\") {\n\t\t\treturn copyist;\n\t\t}\n\t\treturn (item: T): O => ({ ...item }) as unknown as O;\n\t})();\n\n\tfor (const item of items) {\n\t\tconst normalizedKey = normalizeText(item[key]) as T[K];\n\t\tif (!normalizedKey || seen.has(normalizedKey)) continue;\n\t\tseen.add(normalizedKey);\n\t\tout.push(copyFn(item, normalizedKey));\n\t}\n\n\treturn out.length ? out : undefined;\n}\n\nexport function normalizeStringArray(items: readonly string[] | undefined): string[] | undefined {\n\tif (!items?.length) return undefined;\n\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const item of items) {\n\t\tconst value = item.trim();\n\t\tif (!value || seen.has(value)) continue;\n\n\t\tseen.add(value);\n\t\tout.push(value);\n\t}\n\n\treturn out.length ? out : undefined;\n}\n\nexport function addUnique(target: string[], seen: Set<string>, fieldId: string | undefined): void {\n\tconst normalizedId = fieldId?.trim();\n\tif (!normalizedId || seen.has(normalizedId)) return;\n\tseen.add(normalizedId);\n\ttarget.push(normalizedId);\n}\n","export type ReorderAction = \"start\" | \"end\" | \"up\" | \"down\";\n\nfunction resolveTargetIndex(args: { index: number; size: number; action: ReorderAction }): number {\n\tconst { index, size, action } = args;\n\n\tswitch (action) {\n\t\tcase \"start\":\n\t\t\treturn 0;\n\t\tcase \"end\":\n\t\t\treturn size - 1;\n\t\tcase \"up\":\n\t\t\treturn index - 1;\n\t\tcase \"down\":\n\t\t\treturn index + 1;\n\t}\n}\n\n/**\n * Перемещает элемент списка по одному из предопределённых действий.\n */\nexport function moveArrayItemByIndex<T>(items: readonly T[], index: number, action: ReorderAction): T[] {\n\tconst nextItems = [...items];\n\tif (index < 0 || index >= nextItems.length) return nextItems;\n\n\tconst targetIndex = resolveTargetIndex({\n\t\tindex,\n\t\tsize: nextItems.length,\n\t\taction\n\t});\n\tif (targetIndex < 0 || targetIndex >= nextItems.length || targetIndex === index) return nextItems;\n\n\tconst [item] = nextItems.splice(index, 1);\n\n\tif (item === undefined) return nextItems;\n\n\tnextItems.splice(targetIndex, 0, item);\n\treturn nextItems;\n}\n\n/**\n * Перемещает элемент списка из одного индекса в другой.\n */\nexport function moveArrayItem<T>(items: readonly T[], fromIndex: number, toIndex: number): T[] {\n\tconst nextItems = [...items];\n\n\tif (fromIndex < 0 || fromIndex >= nextItems.length || toIndex < 0 || toIndex >= nextItems.length || fromIndex === toIndex) {\n\t\treturn nextItems;\n\t}\n\n\tconst [item] = nextItems.splice(fromIndex, 1);\n\n\tif (item === undefined) {\n\t\treturn nextItems;\n\t}\n\n\tnextItems.splice(toIndex, 0, item);\n\treturn nextItems;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"array-D-_yMMUK.js","names":[],"sources":["../../src/formatters/strings/normalizeText.ts","../../src/array/array.ts","../../src/array/reorder.ts"],"sourcesContent":["export function normalizeText(value: unknown): string | undefined {\n\tif (typeof value !== \"string\") return undefined;\n\n\tconst normalized = value.trim();\n\treturn normalized.length > 0 ? normalized : undefined;\n}\n\nexport function normalizeTextWithFallback(value: unknown, fallback = \"\") {\n\treturn normalizeText(value) ?? fallback;\n}\n\nexport function normalizeRequiredText(value: unknown) {\n\treturn normalizeTextWithFallback(value);\n}\n\nexport function normalizeTextToLower(value: unknown): string {\n\tconst normalized = normalizeText(value);\n\treturn normalized ? normalized.toLowerCase() : \"\";\n}\n\nexport function toSafeString(value: unknown): string {\n\treturn value == null ? \"\" : String(value);\n}\n\nconst STRING_SPACES_PATTERN = /[\\s\\u00a0\\u202f]+/gu;\n\n/**\n * Нормализует пользовательский текст: убирает пробелы по краям\n * и сворачивает любые подряд идущие пробельные символы в один обычный пробел.\n */\nexport function normalizeTextSpaces(value: unknown): string {\n\treturn normalizeRequiredText(value).replace(STRING_SPACES_PATTERN, \" \");\n}\n","import { normalizeText } from \"../formatters/strings\";\n\nexport function arrayGroupBy<T>(array: readonly T[], key: keyof T): Record<string, T[]> {\n\treturn array.reduce<Record<string, T[]>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\t(acc[groupKey] ||= []).push(item);\n\t\treturn acc;\n\t}, {});\n}\n\nexport function arrayToMap<T>(array: readonly T[], key: keyof T): Record<string, T> {\n\treturn array.reduce<Record<string, T>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\tif (!acc[groupKey]) {\n\t\t\tacc[groupKey] = item;\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nexport function arrayGroupByToArray<T>(array: readonly T[], key: keyof T): Array<{ key: string; items: T[] }> {\n\tconst grouped = array.reduce<Record<string, T[]>>((acc, item) => {\n\t\tconst groupKey = String(item[key]);\n\t\t(acc[groupKey] ||= []).push(item);\n\t\treturn acc;\n\t}, {});\n\n\treturn Object.entries(grouped).map(([key, items]) => ({\n\t\tkey,\n\t\titems\n\t}));\n}\n\nexport function arrayUniqueBy<T>(array: readonly T[], key: keyof T): T[] {\n\tconst seen = new Set<string>();\n\treturn array.filter((item) => {\n\t\tconst value = String(item[key]);\n\t\tif (seen.has(value)) return false;\n\t\tseen.add(value);\n\t\treturn true;\n\t});\n}\n\n/**\n * Удаляет дубликаты из массива с сохранением первого вхождения.\n *\n * Нужна для нормализации списков примитивных значений перед передачей\n * в кеш-ключи, SQL-запросы и другие слои, где повторные элементы не несут смысла.\n */\nexport function arrayDeduplicate<T>(array: readonly T[]): T[] {\n\tconst out: T[] = [];\n\tconst seen = new Set<T>();\n\n\tfor (const item of array) {\n\t\tif (seen.has(item)) continue;\n\n\t\tseen.add(item);\n\t\tout.push(item);\n\t}\n\n\treturn out;\n}\n\n/**\n * Фильтрует массив идентификаторов: оставляет только присутствующие в `allowedIds`,\n * удаляет дубликаты, исключает пустые строки.\n *\n * Зачем: унификация нормализации пользовательских списков ID\n * (grouped columns, locked visible columns и т.п.) перед вычислением layout.\n */\nexport function filterAndDeduplicateIds<TId extends string>(ids: readonly string[] | undefined, allowedIds: readonly TId[]): TId[] {\n\tconst known = new Map<string, TId>(allowedIds.map((id) => [id, id]));\n\tconst out: TId[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const id of ids ?? []) {\n\t\tif (!id || seen.has(id)) continue;\n\t\tconst knownId = known.get(id);\n\t\tif (!knownId) continue;\n\t\tseen.add(id);\n\t\tout.push(knownId);\n\t}\n\n\treturn out;\n}\n\nexport function appendMissingIds<TId extends string>(baseIds: readonly TId[], idsToAppend: readonly TId[]): TId[] {\n\tconst out = [...baseIds];\n\tconst seen = new Set(baseIds);\n\n\tfor (const id of idsToAppend) {\n\t\tif (!id || seen.has(id)) continue;\n\t\tseen.add(id);\n\t\tout.push(id);\n\t}\n\n\treturn out;\n}\n\nexport function pickExistingMapValues<TKey, TValue>(keys: readonly TKey[], valuesByKey: ReadonlyMap<TKey, TValue>): TValue[] {\n\tconst out: TValue[] = [];\n\n\tfor (const key of keys) {\n\t\tconst value = valuesByKey.get(key);\n\n\t\tif (value !== undefined) {\n\t\t\tout.push(value);\n\t\t}\n\t}\n\n\treturn out;\n}\n\nexport function arraysEqual<T>(left: readonly T[], right: readonly T[]): boolean {\n\tif (left.length !== right.length) return false;\n\n\tfor (let index = 0; index < left.length; index++) {\n\t\tif (left[index] !== right[index]) return false;\n\t}\n\n\treturn true;\n}\n\nexport function moveItem<T>(items: readonly T[], from: number, to: number): T[] {\n\tif (from === to) return [...items];\n\tif (from < 0 || to < 0 || from >= items.length || to >= items.length) return [...items];\n\n\tconst next = [...items];\n\tconst [item] = next.splice(from, 1);\n\tif (item === undefined) return [...items];\n\tnext.splice(to, 0, item);\n\n\treturn next;\n}\n\nexport function normalizeObjects<T, K extends keyof T, O = T>(\n\titems: readonly T[] | undefined,\n\tkey: K,\n\tcopyist?: ((item: T, key: T[K]) => O) | false\n): O[] | undefined {\n\tif (!items) return undefined;\n\n\tconst out: O[] = [];\n\tconst seen = new Set<T[K]>();\n\tconst copyFn = (() => {\n\t\tif (typeof copyist === \"boolean\" && copyist === false) {\n\t\t\treturn (item: T): O => item as unknown as O;\n\t\t}\n\t\tif (typeof copyist === \"function\") {\n\t\t\treturn copyist;\n\t\t}\n\t\treturn (item: T): O => ({ ...item }) as unknown as O;\n\t})();\n\n\tfor (const item of items) {\n\t\tconst normalizedKey = normalizeText(item[key]) as T[K];\n\t\tif (!normalizedKey || seen.has(normalizedKey)) continue;\n\t\tseen.add(normalizedKey);\n\t\tout.push(copyFn(item, normalizedKey));\n\t}\n\n\treturn out.length ? out : undefined;\n}\n\nexport function normalizeStringArray(items: readonly string[] | undefined): string[] | undefined {\n\tif (!items?.length) return undefined;\n\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const item of items) {\n\t\tconst value = item.trim();\n\t\tif (!value || seen.has(value)) continue;\n\n\t\tseen.add(value);\n\t\tout.push(value);\n\t}\n\n\treturn out.length ? out : undefined;\n}\n\nexport function addUnique(target: string[], seen: Set<string>, fieldId: string | undefined): void {\n\tconst normalizedId = fieldId?.trim();\n\tif (!normalizedId || seen.has(normalizedId)) return;\n\tseen.add(normalizedId);\n\ttarget.push(normalizedId);\n}\n","export type ReorderAction = \"start\" | \"end\" | \"up\" | \"down\";\n\nfunction resolveTargetIndex(args: { index: number; size: number; action: ReorderAction }): number {\n\tconst { index, size, action } = args;\n\n\tswitch (action) {\n\t\tcase \"start\":\n\t\t\treturn 0;\n\t\tcase \"end\":\n\t\t\treturn size - 1;\n\t\tcase \"up\":\n\t\t\treturn index - 1;\n\t\tcase \"down\":\n\t\t\treturn index + 1;\n\t}\n}\n\n/**\n * Перемещает элемент списка по одному из предопределённых действий.\n */\nexport function moveArrayItemByIndex<T>(items: readonly T[], index: number, action: ReorderAction): T[] {\n\tconst nextItems = [...items];\n\tif (index < 0 || index >= nextItems.length) return nextItems;\n\n\tconst targetIndex = resolveTargetIndex({\n\t\tindex,\n\t\tsize: nextItems.length,\n\t\taction\n\t});\n\tif (targetIndex < 0 || targetIndex >= nextItems.length || targetIndex === index) return nextItems;\n\n\tconst [item] = nextItems.splice(index, 1);\n\n\tif (item === undefined) return nextItems;\n\n\tnextItems.splice(targetIndex, 0, item);\n\treturn nextItems;\n}\n\n/**\n * Перемещает элемент списка из одного индекса в другой.\n */\nexport function moveArrayItem<T>(items: readonly T[], fromIndex: number, toIndex: number): T[] {\n\tconst nextItems = [...items];\n\n\tif (fromIndex < 0 || fromIndex >= nextItems.length || toIndex < 0 || toIndex >= nextItems.length || fromIndex === toIndex) {\n\t\treturn nextItems;\n\t}\n\n\tconst [item] = nextItems.splice(fromIndex, 1);\n\n\tif (item === undefined) {\n\t\treturn nextItems;\n\t}\n\n\tnextItems.splice(toIndex, 0, item);\n\treturn nextItems;\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { _ as e, r as t, x as n } from "./array-BBSjoTRy.js";
1
+ import { _ as e, r as t, x as n } from "./array-D-_yMMUK.js";
2
2
  import { i as r } from "./isRecord-DXDTW-jA.js";
3
3
  import { uuidv4 as i } from "../crypto/index.js";
4
- import { Nt as a, mt as o } from "./odata-service-DnPlNGpU.js";
4
+ import { Nt as a, mt as o } from "./odata-service-B5w4YBao.js";
5
5
  import { R as s, k as c, n as l } from "./dateUtils-B5V5aXB-.js";
6
- import { c as u, d, h as f, l as p, n as ee, o as te, t as m, u as ne } from "./validate-nWY_Mla5.js";
6
+ import { c as u, d, h as f, l as p, n as ee, o as te, t as m, u as ne } from "./validate-BzjCBUqb.js";
7
7
  import { t as re } from "./string-comparison-BKT7PXmq.js";
8
8
  import { isSafe as ie } from "../validators/index.js";
9
9
  import { compileTableFormula as ae } from "../formulas/index.js";
@@ -169,7 +169,7 @@ function Ee(e, t = {}) {
169
169
  }
170
170
  //#endregion
171
171
  //#region src/formatters/date/dateRange.ts
172
- var De = 1440 * 60 * 1e3;
172
+ var De = 864e5;
173
173
  function S(e) {
174
174
  return e instanceof Date && Number.isFinite(e.getTime());
175
175
  }
@@ -256,7 +256,7 @@ function He(e) {
256
256
  let t = M(e);
257
257
  return {
258
258
  start: t,
259
- end: x(t, Le - 1)
259
+ end: x(t, 5)
260
260
  };
261
261
  }
262
262
  function Ue(e) {
@@ -361,17 +361,17 @@ function at(e, t) {
361
361
  groupingSize: e.groupingSize
362
362
  };
363
363
  }
364
- function I(e, t, n, r, i) {
364
+ function ot(e, t, n, r, i) {
365
365
  let a = n.units[t];
366
366
  if (!a) return i(e, r);
367
367
  let o = e / a.value, s = n.maxDecimals ?? nt(o), c = tt(o, s, n.roundingMode);
368
- return c >= 1e3 && t > 0 ? I(e, t - 1, n, r, i) : `${i(c, at(r, rt(c, s)))}${n.suffixSeparator}${a.suffix}`;
368
+ return c >= 1e3 && t > 0 ? ot(e, t - 1, n, r, i) : `${i(c, at(r, rt(c, s)))}${n.suffixSeparator}${a.suffix}`;
369
369
  }
370
- function ot(e) {
370
+ function st(e) {
371
371
  let { minCompactValue: t = F.minCompactValue, roundingMode: n = F.roundingMode, suffixSeparator: r = F.suffixSeparator, maxDecimals: i, units: a = Qe } = e.options, o = Math.abs(e.value);
372
372
  if (o < t) return e.formatPlainNumber(e.value, e.preset);
373
373
  let s = it(o, a);
374
- return s === -1 ? e.formatPlainNumber(e.value, e.preset) : `${e.value < 0 ? "-" : ""}${I(o, s, {
374
+ return s === -1 ? e.formatPlainNumber(e.value, e.preset) : `${e.value < 0 ? "-" : ""}${ot(o, s, {
375
375
  roundingMode: n,
376
376
  suffixSeparator: r,
377
377
  maxDecimals: i,
@@ -380,112 +380,112 @@ function ot(e) {
380
380
  }
381
381
  //#endregion
382
382
  //#region src/formatters/number/isZeroValue.ts
383
- function L(e) {
383
+ function I(e) {
384
384
  let t = a(e);
385
- return typeof t == "number" ? t === 0 : typeof t == "bigint" ? t === 0n : !1;
385
+ return typeof t == "number" ? t === 0 : typeof t == "bigint" && t === 0n;
386
386
  }
387
387
  //#endregion
388
388
  //#region src/formatters/number/formatNumber.ts
389
- var R = /* @__PURE__ */ new Map();
390
- function st(e, t) {
389
+ var L = /* @__PURE__ */ new Map();
390
+ function ct(e, t) {
391
391
  if (t === 0) return Math.trunc(e);
392
392
  let n = 10 ** t;
393
393
  return Math.trunc(e * n) / n;
394
394
  }
395
- function z(e, t) {
396
- let n = `${e}:${+!!t}`, r = R.get(n);
395
+ function R(e, t) {
396
+ let n = `${e}:${+!!t}`, r = L.get(n);
397
397
  return r || (r = new Intl.NumberFormat("ru-RU", {
398
398
  minimumFractionDigits: e,
399
399
  maximumFractionDigits: e,
400
400
  useGrouping: t
401
- }), R.set(n, r)), r;
401
+ }), L.set(n, r)), r;
402
402
  }
403
- function ct(e) {
403
+ function lt(e) {
404
404
  return e.groupingSize === 3 && (e.groupingSeparator === ne.groupingSeparator || !e.grouping) && (e.decimalSeparator === "," || e.decimals === 0);
405
405
  }
406
- function lt(e, t, n) {
407
- return z(t, n).format(e);
406
+ function ut(e, t, n) {
407
+ return R(t, n).format(e);
408
408
  }
409
- function ut(e, t) {
410
- let n = z(t.decimals, t.grouping).formatToParts(e), r = "";
409
+ function dt(e, t) {
410
+ let n = R(t.decimals, t.grouping).formatToParts(e), r = "";
411
411
  for (let e of n) e.type === "group" ? r += t.groupingSeparator : e.type === "decimal" ? r += t.decimalSeparator : r += e.value;
412
412
  return r;
413
413
  }
414
- function dt(e, t) {
415
- let n = z(t.decimals, !1).format(e), r = n.indexOf(","), i = r === -1 ? n : n.slice(0, r), a = r === -1 ? null : n.slice(r + 1), o = i.startsWith("-"), s = o ? i.slice(1) : i, c = t.groupingSize, l = [];
414
+ function ft(e, t) {
415
+ let n = R(t.decimals, !1).format(e), r = n.indexOf(","), i = r === -1 ? n : n.slice(0, r), a = r === -1 ? null : n.slice(r + 1), o = i.startsWith("-"), s = o ? i.slice(1) : i, c = t.groupingSize, l = [];
416
416
  for (let e = s.length; e > 0; e -= c) l.unshift(s.slice(Math.max(0, e - c), e));
417
417
  let u = (o ? "-" : "") + l.join(t.groupingSeparator);
418
418
  return a !== null && (u += t.decimalSeparator + a), u;
419
419
  }
420
- function B(e, t) {
421
- return ct(t) ? lt(e, t.decimals, t.grouping) : t.groupingSize === 3 || !t.grouping ? ut(e, t) : dt(e, t);
420
+ function z(e, t) {
421
+ return lt(t) ? ut(e, t.decimals, t.grouping) : t.groupingSize === 3 || !t.grouping ? dt(e, t) : ft(e, t);
422
422
  }
423
- function V(e, t) {
423
+ function B(e, t) {
424
424
  if (typeof e == "string" && e.trim() === "") return "0";
425
425
  let n = Number(e);
426
426
  if (!Number.isFinite(n)) return "0";
427
427
  let r = f(t);
428
- return r.compact ? ot({
428
+ return r.compact ? st({
429
429
  value: n,
430
430
  preset: r,
431
431
  options: r.compact,
432
- formatPlainNumber: B
433
- }) : B(n, r);
434
- }
435
- function ft(e) {
436
- return V(e, p.integer);
432
+ formatPlainNumber: z
433
+ }) : z(n, r);
437
434
  }
438
435
  function pt(e) {
439
- return V(e, p.currency);
436
+ return B(e, p.integer);
440
437
  }
441
438
  function mt(e) {
442
- return V(e, p.decimal);
439
+ return B(e, p.currency);
443
440
  }
444
441
  function ht(e) {
445
- return V(e, p.decimal2);
442
+ return B(e, p.decimal);
446
443
  }
447
444
  function gt(e) {
448
- return V(e, p.decimal3);
445
+ return B(e, p.decimal2);
449
446
  }
450
447
  function _t(e) {
451
- return V(e, p.percent);
448
+ return B(e, p.decimal3);
452
449
  }
453
450
  function vt(e) {
454
- return V(e, p.price);
451
+ return B(e, p.percent);
455
452
  }
456
453
  function yt(e) {
457
- return V(e, p.tonnage);
454
+ return B(e, p.price);
458
455
  }
459
456
  function bt(e) {
460
- return L(e) ? "" : V(e, p.integer);
457
+ return B(e, p.tonnage);
461
458
  }
462
459
  function xt(e) {
463
- return L(e) ? "" : V(e, p.currency);
460
+ return I(e) ? "" : B(e, p.integer);
464
461
  }
465
462
  function St(e) {
466
- return L(e) ? "" : V(e, p.decimal);
463
+ return I(e) ? "" : B(e, p.currency);
467
464
  }
468
465
  function Ct(e) {
469
- return L(e) ? "" : V(e, p.decimal2);
466
+ return I(e) ? "" : B(e, p.decimal);
470
467
  }
471
468
  function wt(e) {
472
- return L(e) ? "" : V(e, p.decimal3);
469
+ return I(e) ? "" : B(e, p.decimal2);
473
470
  }
474
471
  function Tt(e) {
475
- return L(e) ? "" : V(e, p.percent);
472
+ return I(e) ? "" : B(e, p.decimal3);
476
473
  }
477
474
  function Et(e) {
478
- return L(e) ? "" : V(e, p.price);
475
+ return I(e) ? "" : B(e, p.percent);
479
476
  }
480
477
  function Dt(e) {
481
- return L(e) ? "" : V(e, p.tonnage);
478
+ return I(e) ? "" : B(e, p.price);
479
+ }
480
+ function Ot(e) {
481
+ return I(e) ? "" : B(e, p.tonnage);
482
482
  }
483
- function Ot() {
484
- R.clear();
483
+ function kt() {
484
+ L.clear();
485
485
  }
486
486
  //#endregion
487
487
  //#region src/formatters/normalizeLeadingZeros.ts
488
- function kt(e, t) {
488
+ function V(e, t) {
489
489
  let n = typeof e == "number" ? e : Number(e);
490
490
  if (!Number.isFinite(n)) return e;
491
491
  let r = String(n);
@@ -592,7 +592,6 @@ function Mt(e) {
592
592
  ...e,
593
593
  config: G(e.config)
594
594
  };
595
- default:
596
595
  }
597
596
  throw Error(`Недопустимый тип '${e?.type}' для шага FormatterPipeline`);
598
597
  }
@@ -618,7 +617,6 @@ function Nt(e, t) {
618
617
  position: { ...t },
619
618
  config: G(e.config)
620
619
  };
621
- default:
622
620
  }
623
621
  throw Error(`Недопустимый тип '${e?.type}' для шага FormatterPipeline`);
624
622
  }
@@ -810,7 +808,7 @@ function X(e, t, r) {
810
808
  let i = o(t.type);
811
809
  if (i === "number") {
812
810
  let t = r?.numberPresetName?.trim();
813
- return V(e, t && d(t) ? t : rn.number);
811
+ return B(e, t && d(t) ? t : rn.number);
814
812
  }
815
813
  if (i === "date") {
816
814
  let t = r?.datePresetName?.trim(), n = t && s(t) ? t : rn.date;
@@ -858,7 +856,7 @@ function sn(e) {
858
856
  let r = t.value, a = "none", s = !1, l = !0, d = "left", f;
859
857
  for (let i of n) switch (i.type) {
860
858
  case "normalizeLeadingZeros":
861
- r = kt(r, i.config?.fixed);
859
+ r = V(r, i.config?.fixed);
862
860
  break;
863
861
  case "rowBasedOverride":
864
862
  if (!on(t, i.config.mode)) break;
@@ -886,9 +884,7 @@ function sn(e) {
886
884
  if (!o) break;
887
885
  a = Vt(o, r), s = i.config.icon?.enabled ?? !1, l = i.config.icon?.showValue ?? !0, d = i.config.icon?.position ?? "left", f = s ? an(a) : void 0;
888
886
  break;
889
- case "typedValueFormat":
890
- r = X(r, e.column, i.config);
891
- break;
887
+ case "typedValueFormat": r = X(r, e.column, i.config);
892
888
  }
893
889
  return {
894
890
  value: r,
@@ -926,7 +922,7 @@ function un(e) {
926
922
  return e === void 0 ? !0 : r(e) ? ln(e.numberPresetName) && ln(e.datePresetName) : !1;
927
923
  }
928
924
  function dn(e) {
929
- return r(e) ? e.mode === "field" ? typeof e.fieldKey == "string" && Q(e.fallbackToRaw) : e.mode === "formula" ? typeof e.formulaId == "string" && (e.dependencyIds === void 0 || Array.isArray(e.dependencyIds) && e.dependencyIds.every((e) => typeof e == "string")) && Q(e.fallbackToRaw) : !1 : !1;
925
+ return r(e) ? e.mode === "field" ? typeof e.fieldKey == "string" && Q(e.fallbackToRaw) : e.mode === "formula" && typeof e.formulaId == "string" && (e.dependencyIds === void 0 || Array.isArray(e.dependencyIds) && e.dependencyIds.every((e) => typeof e == "string")) && Q(e.fallbackToRaw) : !1;
930
926
  }
931
927
  function fn(e) {
932
928
  return typeof e == "number" || r(e) && typeof e.value == "number" && (e.boundary === void 0 || e.boundary === "lower" || e.boundary === "upper");
@@ -934,28 +930,28 @@ function fn(e) {
934
930
  function pn(e) {
935
931
  if (!r(e) || !r(e.resolver)) return !1;
936
932
  let { resolver: t, icon: n } = e;
937
- return n === void 0 || r(n) && Q(n.enabled) && Q(n.showValue) && (n.position === void 0 || n.position === "left" || n.position === "right") ? t.kind === "fixed" ? r(t.entries) && Object.values(t.entries).every(Z) && (t.fallbackState === void 0 || Z(t.fallbackState)) : t.kind === "threshold" ? Array.isArray(t.thresholds) && t.thresholds.every(fn) && Array.isArray(t.states) && t.states.every(Z) && (t.invalidState === void 0 || Z(t.invalidState)) : !1 : !1;
933
+ return n === void 0 || r(n) && Q(n.enabled) && Q(n.showValue) && (n.position === void 0 || n.position === "left" || n.position === "right") ? t.kind === "fixed" ? r(t.entries) && Object.values(t.entries).every(Z) && (t.fallbackState === void 0 || Z(t.fallbackState)) : t.kind === "threshold" && Array.isArray(t.thresholds) && t.thresholds.every(fn) && Array.isArray(t.states) && t.states.every(Z) && (t.invalidState === void 0 || Z(t.invalidState)) : !1;
938
934
  }
939
935
  function mn(e) {
940
- return !r(e) || typeof e.id != "string" ? !1 : e.type === "normalizeLeadingZeros" ? e.config === void 0 || r(e.config) && (e.config.fixed === void 0 || typeof e.config.fixed == "number") : e.type === "rowBasedOverride" ? dn(e.config) : e.type === "resolveValueState" ? pn(e.config) : e.type === "typedValueFormat" ? un(e.config) : !1;
941
- }
942
- function $(e) {
943
- return r(e) && Array.isArray(e.steps) && e.steps.every(mn);
936
+ return !r(e) || typeof e.id != "string" ? !1 : e.type === "normalizeLeadingZeros" ? e.config === void 0 || r(e.config) && (e.config.fixed === void 0 || typeof e.config.fixed == "number") : e.type === "rowBasedOverride" ? dn(e.config) : e.type === "resolveValueState" ? pn(e.config) : e.type === "typedValueFormat" && un(e.config);
944
937
  }
945
938
  function hn(e) {
946
- return r(e) && typeof e.x == "number" && typeof e.y == "number";
939
+ return r(e) && Array.isArray(e.steps) && e.steps.every(mn);
947
940
  }
948
941
  function gn(e) {
949
- return !r(e) || typeof e.id != "string" || !hn(e.position) ? !1 : e.type === "source" || e.type === "sink" ? !0 : mn(e);
942
+ return r(e) && typeof e.x == "number" && typeof e.y == "number";
950
943
  }
951
944
  function _n(e) {
952
- return r(e) && typeof e.id == "string" && typeof e.source == "string" && typeof e.target == "string";
945
+ return !r(e) || typeof e.id != "string" || !gn(e.position) ? !1 : e.type === "source" || e.type === "sink" || mn(e);
953
946
  }
954
947
  function vn(e) {
955
- return r(e) && Array.isArray(e.nodes) && e.nodes.every(gn) && Array.isArray(e.edges) && e.edges.every(_n);
948
+ return r(e) && typeof e.id == "string" && typeof e.source == "string" && typeof e.target == "string";
949
+ }
950
+ function $(e) {
951
+ return r(e) && Array.isArray(e.nodes) && e.nodes.every(_n) && Array.isArray(e.edges) && e.edges.every(vn);
956
952
  }
957
953
  function yn(e) {
958
- return r(e) && e.version === 1 && (e.plan === void 0 || $(e.plan)) && (e.graph === void 0 || vn(e.graph)) && ($(e.plan) || vn(e.graph));
954
+ return r(e) && e.version === 1 && (e.plan === void 0 || hn(e.plan)) && (e.graph === void 0 || $(e.graph)) && (hn(e.plan) || $(e.graph));
959
955
  }
960
956
  function bn(e) {
961
957
  if (yn(e) && m(e).ok) return Lt(e);
@@ -1177,7 +1173,7 @@ function Fn(e, t, n) {
1177
1173
  };
1178
1174
  }
1179
1175
  function In(e, t, n) {
1180
- return t.shouldRenderEmpty || n.emptyWhenZero && L(t.value) ? {
1176
+ return t.shouldRenderEmpty || n.emptyWhenZero && I(t.value) ? {
1181
1177
  ...e,
1182
1178
  value: ""
1183
1179
  } : e;
@@ -1229,6 +1225,6 @@ function Hn(e, t) {
1229
1225
  }
1230
1226
  }
1231
1227
  //#endregion
1232
- export { st as $, G as A, Ee as At, ht as B, b as Bt, Vt as C, Oe as Ct, Nt as D, Ae as Dt, Mt as E, ke as Et, Ot as F, g as Ft, ft as G, fe as Gt, gt as H, he as Ht, V as I, v as It, Tt as J, ce as Jt, bt as K, ue as Kt, pt as L, _ as Lt, H as M, x as Mt, kt as N, _e as Nt, Lt as O, w as Ot, At as P, ve as Pt, Dt as Q, xt as R, y as Rt, Wt as S, je as St, zt as T, T as Tt, wt as U, me as Ut, Ct as V, ye as Vt, St as W, de as Wt, Et as X, oe as Xt, vt as Y, se as Yt, yt as Z, Bt as _, j as _t, Rn as a, Ye as at, Ut as b, Ge as bt, wn as c, A as ct, sn as d, Ue as dt, L as et, X as f, He as ft, Jt as g, Ke as gt, Yt as h, Ve as ht, Ln as i, qe as it, W as j, Te as jt, U as k, we as kt, Cn as l, Re as lt, tn as m, Be as mt, Bn as n, Ze as nt, zn as o, Xe as ot, nn as p, M as pt, _t as q, le as qt, Vn as r, Je as rt, kn as s, ze as st, Hn as t, P as tt, bn as u, N as ut, Y as v, We as vt, Rt as w, S as wt, J as x, C as xt, Ht as y, k as yt, mt as z, ge as zt };
1228
+ export { ct as $, G as A, Ee as At, gt as B, b as Bt, Vt as C, Oe as Ct, Nt as D, Ae as Dt, Mt as E, ke as Et, kt as F, g as Ft, pt as G, fe as Gt, _t as H, he as Ht, B as I, v as It, Et as J, ce as Jt, xt as K, ue as Kt, mt as L, _ as Lt, H as M, x as Mt, V as N, _e as Nt, Lt as O, w as Ot, At as P, ve as Pt, Ot as Q, St as R, y as Rt, Wt as S, je as St, zt as T, T as Tt, Tt as U, me as Ut, wt as V, ye as Vt, Ct as W, de as Wt, Dt as X, oe as Xt, yt as Y, se as Yt, bt as Z, Bt as _, j as _t, Rn as a, Ye as at, Ut as b, Ge as bt, wn as c, A as ct, sn as d, Ue as dt, I as et, X as f, He as ft, Jt as g, Ke as gt, Yt as h, Ve as ht, Ln as i, qe as it, W as j, Te as jt, U as k, we as kt, Cn as l, Re as lt, tn as m, Be as mt, Bn as n, Ze as nt, zn as o, Xe as ot, nn as p, M as pt, vt as q, le as qt, Vn as r, Je as rt, kn as s, ze as st, Hn as t, P as tt, bn as u, N as ut, Y as v, We as vt, Rt as w, S as wt, J as x, C as xt, Ht as y, k as yt, ht as z, ge as zt };
1233
1229
 
1234
- //# sourceMappingURL=formatters--mhLir82.js.map
1230
+ //# sourceMappingURL=formatters-ShRrKmg6.js.map