@ryuzaki13/react-foundation-lib 1.4.1 → 1.4.3

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 (73) hide show
  1. package/README.md +154 -100
  2. package/dist/chunks/{formatters-CBgrBeSA.js → formatters-D33Uh3si.js} +7 -8
  3. package/dist/chunks/{formatters-CBgrBeSA.js.map → formatters-D33Uh3si.js.map} +1 -1
  4. package/dist/chunks/odata-service-CWkHASdw.js +2211 -0
  5. package/dist/chunks/odata-service-CWkHASdw.js.map +1 -0
  6. package/dist/chunks/{validate-BW-7BZy_.js → validate-DyzojM0w.js} +2 -2
  7. package/dist/chunks/{validate-BW-7BZy_.js.map → validate-DyzojM0w.js.map} +1 -1
  8. package/dist/error-report/index.js +2 -2
  9. package/dist/excel/index.js +20 -21
  10. package/dist/excel/index.js.map +1 -1
  11. package/dist/formatters/index.js +4 -5
  12. package/dist/{odata → odata-service}/buildSeparatedArrays.d.ts +1 -1
  13. package/dist/odata-service/buildSeparatedArrays.d.ts.map +1 -0
  14. package/dist/{odata/types.d.ts → odata-service/collectionTypes.d.ts} +1 -1
  15. package/dist/odata-service/collectionTypes.d.ts.map +1 -0
  16. package/dist/{odata → odata-service}/dateUtils.d.ts +1 -1
  17. package/dist/odata-service/dateUtils.d.ts.map +1 -0
  18. package/dist/{odata → odata-service}/findCollectionPairs.d.ts +1 -1
  19. package/dist/odata-service/findCollectionPairs.d.ts.map +1 -0
  20. package/dist/odata-service/index.d.ts +5 -0
  21. package/dist/odata-service/index.d.ts.map +1 -1
  22. package/dist/odata-service/index.js +2 -2
  23. package/dist/{odata/store.d.ts → odata-service/odataCollectionStore.d.ts} +1 -1
  24. package/dist/odata-service/odataCollectionStore.d.ts.map +1 -0
  25. package/dist/query-client/index.js.map +1 -1
  26. package/dist/query-client/queryClient.d.ts +1 -3
  27. package/dist/query-client/queryClient.d.ts.map +1 -1
  28. package/package.json +1 -5
  29. package/src/bounded-copy-stack/README.mdx +257 -0
  30. package/src/context-menu/README.mdx +326 -0
  31. package/src/currency/README.mdx +155 -0
  32. package/src/date-segments/README.mdx +319 -0
  33. package/src/error/README.mdx +95 -0
  34. package/src/error-report/README.mdx +612 -0
  35. package/src/excel/README.mdx +449 -0
  36. package/src/fingerprint/README.mdx +100 -0
  37. package/src/form/README.mdx +101 -0
  38. package/src/foundationLib.mdx +70 -54
  39. package/src/hooks/README.mdx +988 -0
  40. package/src/http/README.mdx +126 -0
  41. package/src/media/README.mdx +1853 -0
  42. package/src/notifications/README.mdx +323 -0
  43. package/src/number-scale/README.mdx +318 -0
  44. package/src/odata-service/README.mdx +2916 -0
  45. package/src/presets/README.mdx +136 -0
  46. package/src/pwa/README.mdx +394 -0
  47. package/src/query-client/README.mdx +2500 -0
  48. package/src/range-output/README.mdx +161 -0
  49. package/src/seo/README.mdx +279 -0
  50. package/src/session-storage/README.mdx +125 -0
  51. package/src/string-comparison/README.mdx +96 -0
  52. package/src/table/README.mdx +3106 -0
  53. package/src/three-scene/README.mdx +248 -0
  54. package/src/types/README.mdx +172 -0
  55. package/src/utils/README.mdx +1724 -0
  56. package/src/validators/README.mdx +239 -0
  57. package/src/virtualizer/README.mdx +138 -0
  58. package/src/xml/README.mdx +149 -0
  59. package/dist/chunks/dateUtils-B5V5aXB-.js +0 -847
  60. package/dist/chunks/dateUtils-B5V5aXB-.js.map +0 -1
  61. package/dist/chunks/odata-service-B6TxBSLm.js +0 -1277
  62. package/dist/chunks/odata-service-B6TxBSLm.js.map +0 -1
  63. package/dist/odata/buildSeparatedArrays.d.ts.map +0 -1
  64. package/dist/odata/dateUtils.d.ts.map +0 -1
  65. package/dist/odata/findCollectionPairs.d.ts.map +0 -1
  66. package/dist/odata/index.d.ts +0 -6
  67. package/dist/odata/index.d.ts.map +0 -1
  68. package/dist/odata/index.js +0 -102
  69. package/dist/odata/index.js.map +0 -1
  70. package/dist/odata/store.d.ts.map +0 -1
  71. package/dist/odata/types.d.ts.map +0 -1
  72. package/src/pwa/README.md +0 -638
  73. package/src/query-client/README.md +0 -565
package/README.md CHANGED
@@ -27,19 +27,21 @@ import type { RowRecord } from "@ryuzaki13/react-foundation-lib/types";
27
27
 
28
28
  Большинство внешних пакетов объявлены как optional peers. Это означает только то, что их не нужно ставить для каждого сценария. Если host использует entrypoint, который импортирует внешний пакет, совместимая peer-зависимость должна быть установлена в host-проекте.
29
29
 
30
- | Entry point | Что может потребоваться в host-проекте |
31
- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
32
- | `formatters`, `array`, `utils`, `validators` | Обычно не требуют дополнительных runtime-зависимостей. |
33
- | `hooks`, `binary`, `dom`, `copy`, `media`, `pwa` | `react`: `binary` экспортирует `useBinaryFile`, остальные entrypoints требуют React при использовании hooks. |
34
- | `query-client`, `error-report` | `@tanstack/react-query`, `@tanstack/query-persist-client-core`, `@tanstack/query-broadcast-client-experimental`. |
35
- | `odata-service` | `zod`; отдельные helpers типизируются вокруг `@tanstack/react-query`. |
36
- | `odata`, `notifications` | `zustand`, для отдельных store-helpers также `immer`. |
37
- | `table` | `@tanstack/react-table` и `react` для selection hooks. |
38
- | `virtualizer` | `@tanstack/react-virtual` и `react`. |
39
- | `hooks` search helpers | `@tanstack/react-router`. |
40
- | `hooks` DnD helpers | `@dnd-kit/core`, `@dnd-kit/sortable`. |
41
- | `hooks` floating/listbox и DOM references | `@floating-ui/react`. |
42
- | `excel` | `write-excel-file`. |
30
+ | Entry point | Что может потребоваться в host-проекте |
31
+ | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
32
+ | `formatters`, `array` | Обычно не требуют дополнительных runtime-зависимостей. |
33
+ | `utils`, `hooks`, `binary`, `dom`, `copy`, `media`, `pwa` | `react`: `utils` экспортирует React helpers, `binary` — `useBinaryFile`, остальные entrypoints содержат hooks. |
34
+ | `query-client`, `error-report` | `@tanstack/react-query`, `@tanstack/query-persist-client-core`, `@tanstack/query-broadcast-client-experimental`. |
35
+ | `odata-service` | `zod`, `zustand`, `immer`, `react`; `unwrapODataQueryResult` типизирован вокруг `@tanstack/react-query`. |
36
+ | `notifications` | `zustand`. |
37
+ | `table` | `@tanstack/react-table` и `react` для selection hooks. |
38
+ | `virtualizer` | `@tanstack/react-virtual` и `react`. |
39
+ | `three-scene` | `react`; hook также использует browser media APIs. |
40
+ | `hooks` search helpers | `@tanstack/react-router`. |
41
+ | `hooks` DnD helpers | `@dnd-kit/core`, `@dnd-kit/sortable`. |
42
+ | `hooks`, `validators` floating/listbox и DOM references | `@floating-ui/react`. |
43
+ | `excel` | `write-excel-file`. |
44
+ | `fingerprint` | `@fingerprintjs/fingerprintjs`. |
43
45
 
44
46
  Такая схема оставляет пакет библиотечным: зависимости не зашиваются в bundle, а host-приложение контролирует версии React, TanStack, Zod и других runtime-библиотек.
45
47
 
@@ -66,6 +68,7 @@ npm run pack:dry-run
66
68
  - [Peer-зависимости](#peer-зависимости)
67
69
  - [Проверка пакета](#проверка-пакета)
68
70
  - [Быстрый выбор модуля](#быстрый-выбор-модуля)
71
+ - [Полный каталог документации](#полный-каталог-документации)
69
72
  - [Форматирование и значения](#форматирование-и-значения)
70
73
  - [OData, таблицы и экспорт](#odata-таблицы-и-экспорт)
71
74
  - [Browser, React hooks и UI-поведение](#browser-react-hooks-и-ui-поведение)
@@ -74,25 +77,71 @@ npm run pack:dry-run
74
77
 
75
78
  ## Быстрый выбор модуля
76
79
 
77
- | Нужно | Идти сюда |
78
- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79
- | Даты, диапазоны, ABAP/OData date literals | [`formatters/date`](./src/formatters/date/index.ts), тесты: [`formatDate.test.ts`](./src/formatters/date/formatDate.test.ts), [`dateRange.test.ts`](./src/formatters/date/dateRange.test.ts) |
80
- | Числа, проценты, валютные числа, compact axis labels | [`formatters/number`](./src/formatters/number/index.ts), тесты: [`formatNumber.test.ts`](./src/formatters/number/formatNumber.test.ts), [`parseNumber.test.ts`](./src/formatters/number/parseNumber.test.ts) |
81
- | Строки, ФИО, телефон, leading zeros, SAP boolean | [`formatters`](./src/formatters/index.ts), тесты: [`common.test.ts`](./src/formatters/common.test.ts), [`boolean.test.ts`](./src/formatters/boolean/boolean.test.ts), [`strings.test.ts`](./src/formatters/strings/strings.test.ts) |
82
- | Runtime-форматирование ячеек таблицы | [`formatters/pipeline`](./src/formatters/pipeline/index.ts), тесты в [`formatters/pipeline`](./src/formatters/pipeline) |
83
- | Группировка, дедупликация, порядок и нормализация массивов | [`array`](./src/array/index.ts), подробный README: [`array/README.mdx`](./src/array/README.mdx) |
84
- | OData metadata, filters, sorts, path, values | [`odata-service`](./src/odata-service/index.ts), тесты в [`odata-service`](./src/odata-service) |
85
- | Справочные code/text пары OData collections | [`odata`](./src/odata/index.ts), тест: [`odata.test.ts`](./src/odata/odata.test.ts) |
86
- | TanStack Table helpers | [`table`](./src/table/index.ts), тесты в [`table`](./src/table) |
87
- | Tree table преобразования | [`tree-table`](./src/tree-table/index.ts), тесты в [`tree-table`](./src/tree-table) |
88
- | Excel export | [`excel`](./src/excel/index.ts), тесты: [`excel.test.ts`](./src/excel/excel.test.ts), [`tableExport.test.ts`](./src/excel/tableExport.test.ts) |
89
- | FileReader, изображения, base64 Blob | [`file`](./src/file/index.ts), [`binary`](./src/binary/index.ts) |
90
- | DOM overlay, portal, focus, download | [`dom`](./src/dom/index.ts), тест: [`dom.test.tsx`](./src/dom/dom.test.tsx) |
91
- | Debounce/throttle, DnD sensors, search params, listbox | [`hooks`](./src/hooks/index.ts), [`utils/keyboard.ts`](./src/utils/keyboard.ts) |
92
- | QueryClient, persistence, broadcast | [`query-client`](./src/query-client/index.ts), README: [`query-client/README.md`](./src/query-client/README.md) |
93
- | PWA service worker update и `x-sw-cache` policy | [`pwa`](./src/pwa/index.ts), README: [`pwa/README.md`](./src/pwa/README.md) |
94
- | Подстановки открытых границ диапазона | [`range-output`](./src/range-output/index.ts), тест: [`rangeOutput.test.ts`](./src/range-output/rangeOutput.test.ts) |
95
- | Unknown guards, className, stable stringify, clone | [`validators`](./src/validators/index.ts), [`utils`](./src/utils/index.ts) |
80
+ | Нужно | Идти сюда |
81
+ | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
82
+ | Даты, диапазоны, ABAP/OData date literals | [`formatters/date`](./src/formatters/date/index.ts), тесты: [`formatDate.test.ts`](./src/formatters/date/formatDate.test.ts), [`dateRange.test.ts`](./src/formatters/date/dateRange.test.ts) |
83
+ | Числа, проценты, валютные числа, compact axis labels | [`formatters/number`](./src/formatters/number/index.ts), тесты: [`formatNumber.test.ts`](./src/formatters/number/formatNumber.test.ts), [`parseNumber.test.ts`](./src/formatters/number/parseNumber.test.ts) |
84
+ | Строки, ФИО, телефон, leading zeros, SAP boolean | [`formatters`](./src/formatters/index.ts), тесты: [`common.test.ts`](./src/formatters/common.test.ts), [`boolean.test.ts`](./src/formatters/boolean/boolean.test.ts), [`strings.test.ts`](./src/formatters/strings/strings.test.ts) |
85
+ | Runtime-форматирование ячеек таблицы | [`formatters/pipeline`](./src/formatters/pipeline/index.ts), тесты в [`formatters/pipeline`](./src/formatters/pipeline) |
86
+ | Группировка, дедупликация, порядок и нормализация массивов | [`array`](./src/array/index.ts), подробный README: [`array/README.mdx`](./src/array/README.mdx) |
87
+ | OData metadata, values, path, filters, sorts, code/text collections и store | [`odata-service`](./src/odata-service/index.ts), подробный README: [`odata-service/README.mdx`](./src/odata-service/README.mdx), тесты в [`odata-service`](./src/odata-service) |
88
+ | TanStack Table helpers | [`table`](./src/table/index.ts), единый подробный справочник: [`table/README.mdx`](./src/table/README.mdx), тесты в [`table`](./src/table) |
89
+ | Tree table преобразования | [`tree-table`](./src/tree-table/index.ts), документация в общем справочнике [`table/README.mdx`](./src/table/README.mdx), тесты в [`tree-table`](./src/tree-table) |
90
+ | Excel export | [`excel`](./src/excel/index.ts), подробный README: [`excel/README.mdx`](./src/excel/README.mdx), тесты: [`excel.test.ts`](./src/excel/excel.test.ts), [`tableExport.test.ts`](./src/excel/tableExport.test.ts) |
91
+ | FileReader, изображения, base64 Blob | [`file`](./src/file/index.ts), [`binary`](./src/binary/index.ts) |
92
+ | DOM overlay, portal, focus, download | [`dom`](./src/dom/index.ts), тест: [`dom.test.tsx`](./src/dom/dom.test.tsx) |
93
+ | Debounce/throttle, DnD sensors, search params, listbox | [`hooks`](./src/hooks/index.ts), подробный README: [`hooks/README.mdx`](./src/hooks/README.mdx), [`utils/keyboard.ts`](./src/utils/keyboard.ts) |
94
+ | Breakpoints, media queries и responsive props | [`media`](./src/media/index.ts), подробный README: [`media/README.mdx`](./src/media/README.mdx), тест: [`media.test.ts`](./src/media/media.test.ts) |
95
+ | QueryClient, persistence, broadcast | [`query-client`](./src/query-client/index.ts), подробный README: [`query-client/README.mdx`](./src/query-client/README.mdx) |
96
+ | PWA service worker update и `x-sw-cache` policy | [`pwa`](./src/pwa/index.ts), подробный README: [`pwa/README.mdx`](./src/pwa/README.mdx) |
97
+ | Подстановки открытых границ диапазона | [`range-output`](./src/range-output/index.ts), подробный README: [`range-output/README.mdx`](./src/range-output/README.mdx), тест: [`rangeOutput.test.ts`](./src/range-output/rangeOutput.test.ts) |
98
+ | Unknown guards, className, stable stringify, clone | [`validators`](./src/validators/index.ts), [`utils`](./src/utils/index.ts), подробные README: [`validators`](./src/validators/README.mdx), [`utils`](./src/utils/README.mdx) |
99
+
100
+ ## Полный каталог документации
101
+
102
+ Каждый публичный subpath из `package.json#exports` покрыт русскоязычным MDX-руководством. Документы `tree-table` и `pwa/sw-cache-policy` намеренно объединены с ближайшим владельцем, чтобы правила одного сценария не расходились между файлами.
103
+
104
+ | Публичный import path | Подробная документация |
105
+ | ---------------------- | ------------------------------------------------------------------------------ |
106
+ | `/array` | [`array/README.mdx`](./src/array/README.mdx) |
107
+ | `/binary` | [`binary/README.mdx`](./src/binary/README.mdx) |
108
+ | `/bounded-copy-stack` | [`bounded-copy-stack/README.mdx`](./src/bounded-copy-stack/README.mdx) |
109
+ | `/context-menu` | [`context-menu/README.mdx`](./src/context-menu/README.mdx) |
110
+ | `/copy` | [`copy/README.mdx`](./src/copy/README.mdx) |
111
+ | `/crypto` | [`crypto/README.mdx`](./src/crypto/README.mdx) |
112
+ | `/currency` | [`currency/README.mdx`](./src/currency/README.mdx) |
113
+ | `/date-segments` | [`date-segments/README.mdx`](./src/date-segments/README.mdx) |
114
+ | `/dom` | [`dom/README.mdx`](./src/dom/README.mdx) |
115
+ | `/error` | [`error/README.mdx`](./src/error/README.mdx) |
116
+ | `/error-report` | [`error-report/README.mdx`](./src/error-report/README.mdx) |
117
+ | `/excel` | [`excel/README.mdx`](./src/excel/README.mdx) |
118
+ | `/file` | [`file/README.mdx`](./src/file/README.mdx) |
119
+ | `/fingerprint` | [`fingerprint/README.mdx`](./src/fingerprint/README.mdx) |
120
+ | `/form` | [`form/README.mdx`](./src/form/README.mdx) |
121
+ | `/formatters` | [`formatters/README.mdx`](./src/formatters/README.mdx) и его предметные README |
122
+ | `/formulas` | [`formulas/README.mdx`](./src/formulas/README.mdx) |
123
+ | `/hooks` | [`hooks/README.mdx`](./src/hooks/README.mdx) |
124
+ | `/http` | [`http/README.mdx`](./src/http/README.mdx) |
125
+ | `/media` | [`media/README.mdx`](./src/media/README.mdx) |
126
+ | `/notifications` | [`notifications/README.mdx`](./src/notifications/README.mdx) |
127
+ | `/number-scale` | [`number-scale/README.mdx`](./src/number-scale/README.mdx) |
128
+ | `/odata-service` | [`odata-service/README.mdx`](./src/odata-service/README.mdx) |
129
+ | `/presets` | [`presets/README.mdx`](./src/presets/README.mdx) |
130
+ | `/pwa` | [`pwa/README.mdx`](./src/pwa/README.mdx) |
131
+ | `/pwa/sw-cache-policy` | Раздел cache policy в [`pwa/README.mdx`](./src/pwa/README.mdx) |
132
+ | `/query-client` | [`query-client/README.mdx`](./src/query-client/README.mdx) |
133
+ | `/range-output` | [`range-output/README.mdx`](./src/range-output/README.mdx) |
134
+ | `/seo` | [`seo/README.mdx`](./src/seo/README.mdx) |
135
+ | `/session-storage` | [`session-storage/README.mdx`](./src/session-storage/README.mdx) |
136
+ | `/string-comparison` | [`string-comparison/README.mdx`](./src/string-comparison/README.mdx) |
137
+ | `/table` | [`table/README.mdx`](./src/table/README.mdx) |
138
+ | `/three-scene` | [`three-scene/README.mdx`](./src/three-scene/README.mdx) |
139
+ | `/tree-table` | Раздел tree-table в [`table/README.mdx`](./src/table/README.mdx) |
140
+ | `/types` | [`types/README.mdx`](./src/types/README.mdx) |
141
+ | `/utils` | [`utils/README.mdx`](./src/utils/README.mdx) |
142
+ | `/validators` | [`validators/README.mdx`](./src/validators/README.mdx) |
143
+ | `/virtualizer` | [`virtualizer/README.mdx`](./src/virtualizer/README.mdx) |
144
+ | `/xml` | [`xml/README.mdx`](./src/xml/README.mdx) |
96
145
 
97
146
  ## Форматирование и значения
98
147
 
@@ -277,8 +326,8 @@ Pipeline — runtime форматирования ячейки. Он прини
277
326
  | `compileTableFormula` | Компилирует formulaId + keys в executor; не кидает runtime errors наружу. |
278
327
  | `executeTableFormula` | Разовый запуск формулы. |
279
328
  | `createTableFormulaRegistry` | Нормализует definitions и запрещает дубли. |
280
- | `configureTableFormulaRegistry` | Устанавливает созданный host-приложением реестр до первого runtime-вызова. |
281
- | `getTableFormulaList`, `getTableFormulaById` | Доступ к активному реестру host-приложения. |
329
+ | `configureTableFormulaRegistry` | Устанавливает созданный host-приложением реестр до первого runtime-вызова. |
330
+ | `getTableFormulaList`, `getTableFormulaById` | Доступ к активному реестру host-приложения. |
282
331
  | `validateTableFormulaDependencies` | Проверяет наличие formula, доступность dependencies, out-of-range и unused dependencies. |
283
332
 
284
333
  Поведение из тестов: невалидный результат формулы дает `invalid_result`, runtime exception дает `runtime_error`, отсутствующая формула дает `formula_not_found`.
@@ -287,7 +336,7 @@ Pipeline — runtime форматирования ячейки. Он прини
287
336
 
288
337
  ### `date-segments`
289
338
 
290
- Файл: [`date-segments/index.ts`](./src/date-segments/index.ts), тест: [`mask.test.ts`](./src/date-segments/mask.test.ts).
339
+ Файл: [`date-segments/index.ts`](./src/date-segments/index.ts), подробный README: [`date-segments/README.mdx`](./src/date-segments/README.mdx), тест: [`mask.test.ts`](./src/date-segments/mask.test.ts).
291
340
 
292
341
  Утилиты для segmented date input.
293
342
 
@@ -301,7 +350,7 @@ Pipeline — runtime форматирования ячейки. Он прини
301
350
 
302
351
  ### `number-scale`
303
352
 
304
- Файлы: [`number-scale/index.ts`](./src/number-scale/index.ts), тест: [`numberScale.test.ts`](./src/number-scale/numberScale.test.ts).
353
+ Файлы: [`number-scale/index.ts`](./src/number-scale/index.ts), подробный README: [`number-scale/README.mdx`](./src/number-scale/README.mdx), тест: [`numberScale.test.ts`](./src/number-scale/numberScale.test.ts).
305
354
 
306
355
  Математика числовых слайдеров и шкал.
307
356
 
@@ -317,7 +366,7 @@ Pipeline — runtime форматирования ячейки. Он прини
317
366
 
318
367
  ### `currency`
319
368
 
320
- Файл: [`currency/currency.ts`](./src/currency/currency.ts), тест: [`currency.test.ts`](./src/currency/currency.test.ts).
369
+ Файл: [`currency/currency.ts`](./src/currency/currency.ts), подробный README: [`currency/README.mdx`](./src/currency/README.mdx), тест: [`currency.test.ts`](./src/currency/currency.test.ts).
321
370
 
322
371
  | API | Поведение |
323
372
  | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
@@ -330,7 +379,9 @@ Pipeline — runtime форматирования ячейки. Он прини
330
379
 
331
380
  ### `odata-service`
332
381
 
333
- Файл: [`odata-service/index.ts`](./src/odata-service/index.ts). Это чистый слой metadata/value/filter helpers. Transport и fetch лежат в пакете `@ryuzaki13/react-foundation-api/odata`.
382
+ Файл: [`odata-service/index.ts`](./src/odata-service/index.ts), подробный справочник: [`odata-service/README.mdx`](./src/odata-service/README.mdx). Это единый entrypoint metadata/value/path/filter/sort helpers, code/text collections и общих настроек OData-справочников. Transport и fetch лежат в пакете `@ryuzaki13/react-foundation-api/odata`.
383
+
384
+ Прежний subpath `@ryuzaki13/react-foundation-lib/odata` удалён без compatibility alias. Его API перенесён в `@ryuzaki13/react-foundation-lib/odata-service`.
334
385
 
335
386
  #### Metadata и path
336
387
 
@@ -384,6 +435,17 @@ Pipeline — runtime форматирования ячейки. Он прини
384
435
 
385
436
  Тесты: [`filters.test.ts`](./src/odata-service/filters.test.ts), [`filterDefinitions.test.ts`](./src/odata-service/filterDefinitions.test.ts), [`sorts.ts`](./src/odata-service/sorts.ts), [`sqlFilters.test.ts`](./src/odata-service/sqlFilters.test.ts).
386
437
 
438
+ #### Справочные коллекции и store
439
+
440
+ | API | Поведение |
441
+ | -------------------------------------------------- | ------------------------------------------------------------------------------ |
442
+ | `findCollectionPairs` | Ищет пары `code` + `*_txt/_text/_t`, поддерживает custom suffixes. |
443
+ | `buildSeparatedArrays` | Строит отдельные code/text массивы для каждой пары, дедуплицирует и сортирует. |
444
+ | `ODataDateFormat` | Форматирует `Date` в `datetime'...'`, `datetimeoffset'...'`, `time'...'`. |
445
+ | `useODataCollectionStore`, `odataCollectionConfig` | Zustand-store общих defaults: visible limit, search thresholds и debounce. |
446
+
447
+ Тест: [`collection.test.ts`](./src/odata-service/collection.test.ts).
448
+
387
449
  ### `range-output`
388
450
 
389
451
  Файлы: [`range-output/index.ts`](./src/range-output/index.ts), тест: [`rangeOutput.test.ts`](./src/range-output/rangeOutput.test.ts).
@@ -393,20 +455,9 @@ Pipeline — runtime форматирования ячейки. Он прини
393
455
  | `readRangeOutputValueFallback` | Читает сериализуемые подстановки `start/end` из объекта с `outputValueFallback` через переданный парсер. |
394
456
  | `resolveRangeOutputValue` | Заменяет `null` в открытых границах диапазона на заданные подстановочные значения для внешней передачи. |
395
457
 
396
- ### `odata`
397
-
398
- Файлы: [`odata/index.ts`](./src/odata/index.ts), тест: [`odata.test.ts`](./src/odata/odata.test.ts).
399
-
400
- | API | Поведение |
401
- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
402
- | `buildSeparatedArrays` | Из одной коллекции строит отдельные массивы code/text для каждой пары, дедуплицирует и сортирует. |
403
- | `findCollectionPairs` | Ищет пары `code` + `*_txt/_text/_t`, поддерживает custom suffixes. |
404
- | `ODataDateFormat` | Форматирует `Date` в `datetime'...'`, `datetimeoffset'...'`, `time'...'`. |
405
- | `useODataCollectionStore`, `odataCollectionConfig` | Zustand-store настроек коллекции: pagination, search, selected, dependent filters. |
406
-
407
458
  ### `table`
408
459
 
409
- Файлы: [`table/index.ts`](./src/table/index.ts), тесты в [`table`](./src/table).
460
+ Файлы: [`table/index.ts`](./src/table/index.ts), единый подробный справочник для `table` и `tree-table`: [`table/README.mdx`](./src/table/README.mdx), тесты в [`table`](./src/table).
410
461
 
411
462
  | API | Поведение |
412
463
  | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
@@ -417,8 +468,8 @@ Pipeline — runtime форматирования ячейки. Он прини
417
468
  | `normalizeTableColumnWidth`, `normalizeTableColumnSizing`, `patchTableColumnWidth`, `removeTableColumnWidth` | Column sizing с min width, default `60`. |
418
469
  | `pruneTableRowSelection`, `toggleTableRowSelection` | `none`, `single`, `multi`; single не снимается повторным кликом. |
419
470
  | `useTableRowSelection` | Hook поверх selection helpers. |
420
- | `pruneTableCellSelection`, `toggleTableCellSelection` | Детерминированный выбор координат `rowId + columnId`. |
421
- | `shouldActivateTableCellSelection` | Direct либо безопасная активация по Ctrl/Command без Shift/Alt. |
471
+ | `pruneTableCellSelection`, `toggleTableCellSelection` | Детерминированный выбор координат `rowId + columnId`. |
472
+ | `shouldActivateTableCellSelection` | Direct либо безопасная активация по Ctrl/Command без Shift/Alt. |
422
473
  | `resolveTableColumnFormattingContextFromODataColumn` | OData column -> pipeline context; numeric types force measure. |
423
474
  | `createTableColumnVisibilityFromODataMetadata` | Стартовая visibility; code скрывается, если есть text-пара. |
424
475
  | `createTableColumnsFromODataMetadata` | Генерация TanStack columns из metadata. |
@@ -430,7 +481,7 @@ Pipeline — runtime форматирования ячейки. Он прини
430
481
 
431
482
  ### `tree-table`
432
483
 
433
- Файлы: [`tree-table/index.ts`](./src/tree-table/index.ts).
484
+ Файлы: [`tree-table/index.ts`](./src/tree-table/index.ts), документация включена в единый справочник [`table/README.mdx`](./src/table/README.mdx).
434
485
 
435
486
  | API | Поведение |
436
487
  | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
@@ -442,7 +493,7 @@ Pipeline — runtime форматирования ячейки. Он прини
442
493
 
443
494
  ### `excel`
444
495
 
445
- Файлы: [`excel/index.ts`](./src/excel/index.ts).
496
+ Файлы: [`excel/index.ts`](./src/excel/index.ts), подробный README: [`excel/README.mdx`](./src/excel/README.mdx).
446
497
 
447
498
  | API | Поведение |
448
499
  | -------------------------------- | --------------------------------------------------------------------- |
@@ -482,7 +533,7 @@ Pipeline — runtime форматирования ячейки. Он прини
482
533
 
483
534
  ### `xml`
484
535
 
485
- Файл: [`xml/xml.ts`](./src/xml/xml.ts), тест: [`xml.test.ts`](./src/xml/xml.test.ts).
536
+ Файл: [`xml/xml.ts`](./src/xml/xml.ts), подробный README: [`xml/README.mdx`](./src/xml/README.mdx), тест: [`xml.test.ts`](./src/xml/xml.test.ts).
486
537
 
487
538
  | API | Поведение |
488
539
  | ---------------- | ----------------------------------------------------- |
@@ -510,7 +561,7 @@ Pipeline — runtime форматирования ячейки. Он прини
510
561
 
511
562
  ### `hooks`
512
563
 
513
- Файлы: [`hooks/index.ts`](./src/hooks/index.ts).
564
+ Файлы: [`hooks/index.ts`](./src/hooks/index.ts), подробный README: [`hooks/README.mdx`](./src/hooks/README.mdx).
514
565
 
515
566
  | API | Поведение |
516
567
  | ----------------------- | -------------------------------------------------------------------------------------------- |
@@ -539,19 +590,20 @@ Pipeline — runtime форматирования ячейки. Он прини
539
590
 
540
591
  ### `media`
541
592
 
542
- Файлы: [`media/index.ts`](./src/media/index.ts), тест: [`media.test.ts`](./src/media/media.test.ts).
593
+ Файлы: [`media/index.ts`](./src/media/index.ts), подробный README: [`media/README.mdx`](./src/media/README.mdx), тест: [`media.test.ts`](./src/media/media.test.ts).
543
594
 
544
- | API | Поведение |
545
- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
546
- | `BREAKPOINTS_EM`, `Breakpoint`, `MediaMatches` | Проектные брейкпоинты в `em`: mobile/tablet/laptop. |
547
- | `useMatchMedia` | Singleton external store на `useSyncExternalStore`; учитывает изменение root `em`. |
548
- | `ResponsiveValue`, `resolveResponsiveValue`, `resolveProps` | Responsive props с fallback по брейкпоинтам. |
549
- | `getCurrentFontSize`, `getCurrentLineHeight`, `getControlHeight` | DOM font metrics с safe defaults. |
550
- | `pxToEm` | px -> em строка. |
595
+ | API | Поведение |
596
+ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
597
+ | `BREAKPOINTS_EM`, `Breakpoint`, `MediaMatches` | Проектные брейкпоинты в `em`: mobile/tablet/laptop. |
598
+ | `useMediaQuery` | SSR-safe подписка на произвольный media query с настраиваемым fallback. |
599
+ | `useMatchMedia` | Singleton external store на `useSyncExternalStore`; учитывает изменение root `em`. |
600
+ | `ResponsiveMap`, `ResponsiveValue`, `isResponsiveMap`, `resolveResponsiveValue`, `resolveProps` | Responsive props с точным fallback-порядком по брейкпоинтам. |
601
+ | `getCurrentFontSize`, `getCurrentLineHeight`, `getControlHeight` | DOM font metrics с server/invalid-value fallback; line-height нормализуется через `16`. |
602
+ | `pxToEm` | Числовая строка `px / base` без суффикса `em`; при отсутствии base читается root font-size. |
551
603
 
552
604
  ### `context-menu`
553
605
 
554
- Файлы: [`context-menu/index.ts`](./src/context-menu/index.ts), тесты: [`anchor.test.ts`](./src/context-menu/anchor.test.ts), [`state.test.ts`](./src/context-menu/state.test.ts).
606
+ Файлы: [`context-menu/index.ts`](./src/context-menu/index.ts), подробный README: [`context-menu/README.mdx`](./src/context-menu/README.mdx), тесты: [`anchor.test.ts`](./src/context-menu/anchor.test.ts), [`state.test.ts`](./src/context-menu/state.test.ts).
555
607
 
556
608
  | API | Поведение |
557
609
  | --------------------------------------------------------- | ---------------------------------------------------------------------------------- |
@@ -562,7 +614,7 @@ Pipeline — runtime форматирования ячейки. Он прини
562
614
 
563
615
  ### `notifications`
564
616
 
565
- Файлы: [`notifications/index.ts`](./src/notifications/index.ts), тест: [`store.test.ts`](./src/notifications/store.test.ts).
617
+ Файлы: [`notifications/index.ts`](./src/notifications/index.ts), подробный README: [`notifications/README.mdx`](./src/notifications/README.mdx), тест: [`store.test.ts`](./src/notifications/store.test.ts).
566
618
 
567
619
  | API | Поведение |
568
620
  | -------------------------- | ------------------------------------------------------------------------------------------------- |
@@ -574,7 +626,7 @@ Pipeline — runtime форматирования ячейки. Он прини
574
626
 
575
627
  ### `pwa` и `virtualizer`
576
628
 
577
- Файлы: [`pwa/index.ts`](./src/pwa/index.ts), README: [`pwa/README.md`](./src/pwa/README.md); [`virtualizer/index.ts`](./src/virtualizer/index.ts).
629
+ Файлы: [`pwa/index.ts`](./src/pwa/index.ts), подробный README: [`pwa/README.mdx`](./src/pwa/README.mdx); [`virtualizer/index.ts`](./src/virtualizer/index.ts), подробный README: [`virtualizer/README.mdx`](./src/virtualizer/README.mdx).
578
630
 
579
631
  `pwa`:
580
632
 
@@ -595,22 +647,24 @@ Service worker runtime helpers живут в [`pwa/serviceWorker.ts`](./src/pwa/
595
647
 
596
648
  ### `query-client`
597
649
 
598
- Файлы: [`query-client/index.ts`](./src/query-client/index.ts), README: [`query-client/README.md`](./src/query-client/README.md), optimistic guide: [`OPTIMISTIC_UPDATE.md`](./src/query-client/OPTIMISTIC_UPDATE.md).
650
+ Файлы: [`query-client/index.ts`](./src/query-client/index.ts), единый подробный справочник: [`query-client/README.mdx`](./src/query-client/README.mdx). Раздел optimistic update теперь входит в этот документ.
599
651
 
600
- | API | Поведение |
601
- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
602
- | `createQueryClient` | Singleton QueryClient defaults: stale/gc, retry, error handlers, optional persister. |
603
- | `persistedQueryMeta`, `shouldPersistQuery`, `createReactQueryPersister`, `createIndexedDbQueryStorage` | Opt-in persistence справочников в IndexedDB. |
604
- | `installReactQueryBroadcast`, `broadcastCacheEvent`, `setBroadcastFn` | Sync query cache и cache events между вкладками. |
605
- | `onMutateOptimistic`, `onErrorOptimistic`, `onSuccessOptimistic`, `onSettledOptimistic` | Helpers для точечного optimistic update. |
652
+ | API | Поведение |
653
+ | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
654
+ | `createQueryClient` | Создаёт настроенный QueryClient; singleton lifecycle обеспечивает host. |
655
+ | `persistedQueryMeta`, `shouldPersistQuery`, `createReactQueryPersister`, `createIndexedDbQueryStorage` | Opt-in persistence справочников в IndexedDB. |
656
+ | `configureQueryPersistenceProjectAdapter`, `getQueryPersistenceProjectAdapter` | Host namespace и buster для persistent cache. |
657
+ | `installReactQueryBroadcast`, `broadcastCacheEvent`, `setBroadcastFn` | Sync query cache и cache events между вкладками. |
658
+ | `sessionScopedQueryMeta`, `resetSessionScopedQueries`, `installSessionScopedQueryReset` | Очистка auth/session-dependent query локально и между вкладками. |
659
+ | `onMutateOptimistic`, `onErrorOptimistic`, `onSuccessOptimistic`, `onSettledOptimistic` | Helpers для точечного optimistic update. |
606
660
 
607
661
  Поведение из тестов: persistence сохраняет только `meta.persist === true`, broadcast игнорирует невалидные сообщения и не зацикливает remote events, `onSettledOptimistic` по умолчанию invalidates с `refetchType: "none"`.
608
662
 
609
- Тесты: [`queryClient.test.ts`](./src/query-client/queryClient.test.ts), [`persistence.test.ts`](./src/query-client/persistence.test.ts), [`broadcast.test.ts`](./src/query-client/broadcast.test.ts), [`broadcast.integration.test.ts`](./src/query-client/broadcast.integration.test.ts).
663
+ Тесты: [`queryClient.test.ts`](./src/query-client/queryClient.test.ts), [`persistence.test.ts`](./src/query-client/persistence.test.ts), [`broadcast.test.ts`](./src/query-client/broadcast.test.ts), [`broadcast.integration.test.ts`](./src/query-client/broadcast.integration.test.ts), [`sessionScoped.test.ts`](./src/query-client/sessionScoped.test.ts).
610
664
 
611
665
  ### `error` и `error-report`
612
666
 
613
- Файлы: [`error/index.ts`](./src/error/index.ts), [`error-report/index.ts`](./src/error-report/index.ts).
667
+ Файлы: [`error/index.ts`](./src/error/index.ts), подробный README: [`error/README.mdx`](./src/error/README.mdx); [`error-report/index.ts`](./src/error-report/index.ts), подробный README: [`error-report/README.mdx`](./src/error-report/README.mdx).
614
668
 
615
669
  `error`:
616
670
 
@@ -639,23 +693,23 @@ Service worker runtime helpers живут в [`pwa/serviceWorker.ts`](./src/pwa/
639
693
 
640
694
  Файлы: [`array/index.ts`](./src/array/index.ts), подробный README: [`array/README.mdx`](./src/array/README.mdx), тесты: [`array.test.ts`](./src/array/array.test.ts), [`reorder.test.ts`](./src/array/reorder.test.ts).
641
695
 
642
- | API | Поведение |
643
- | --------------------------------------------------- | -------------------------------------------------------------------------- |
644
- | `arrayGroupBy`, `arrayGroupByToArray` | Группировка по ключу, порядок элементов внутри группы сохраняется. |
645
- | `arrayToMap` | Map-object по первому встреченному значению ключа. |
646
- | `arrayUniqueBy` | Дедупликация по ключу без перестановки первого значения. |
696
+ | API | Поведение |
697
+ | --------------------------------------------------- | ---------------------------------------------------------------------------- |
698
+ | `arrayGroupBy`, `arrayGroupByToArray` | Группировка по ключу, порядок элементов внутри группы сохраняется. |
699
+ | `arrayToMap` | Map-object по первому встреченному значению ключа. |
700
+ | `arrayUniqueBy` | Дедупликация по ключу без перестановки первого значения. |
647
701
  | `arrayDeduplicate` | Дедупликация значений через семантику `Set` с сохранением первого вхождения. |
648
- | `filterAndDeduplicateIds` | Оставляет только allowed ids, убирает пустые и дубли. |
649
- | `appendMissingIds` | Добавляет отсутствующие ids в конец базового списка. |
650
- | `pickExistingMapValues` | Значения `Map` в порядке keys, отсутствующие ключи пропускаются. |
651
- | `arraysEqual` | Строго по длине, порядку и ссылочным значениям. |
652
- | `moveItem`, `moveArrayItem`, `moveArrayItemByIndex` | Immutable reorder; некорректные индексы возвращают копию без перестановки. |
653
- | `normalizeObjects` | Trim key, отсекает пустые/дубли, по умолчанию shallow copy. |
654
- | `normalizeStringArray`, `addUnique` | Нормализация string ids. |
702
+ | `filterAndDeduplicateIds` | Оставляет только allowed ids, убирает пустые и дубли. |
703
+ | `appendMissingIds` | Добавляет отсутствующие ids в конец базового списка. |
704
+ | `pickExistingMapValues` | Значения `Map` в порядке keys, отсутствующие ключи пропускаются. |
705
+ | `arraysEqual` | Строго по длине, порядку и ссылочным значениям. |
706
+ | `moveItem`, `moveArrayItem`, `moveArrayItemByIndex` | Immutable reorder; некорректные индексы возвращают копию без перестановки. |
707
+ | `normalizeObjects` | Trim key, отсекает пустые/дубли, по умолчанию shallow copy. |
708
+ | `normalizeStringArray`, `addUnique` | Нормализация string ids. |
655
709
 
656
710
  ### `utils`
657
711
 
658
- Файлы: [`utils/index.ts`](./src/utils/index.ts), тесты: [`utils.test.ts`](./src/utils/utils.test.ts), [`keyboard.test.ts`](./src/utils/keyboard.test.ts), [`createLazyComponent.test.tsx`](./src/utils/createLazyComponent.test.tsx).
712
+ Файлы: [`utils/index.ts`](./src/utils/index.ts), подробный README: [`utils/README.mdx`](./src/utils/README.mdx), тесты: [`utils.test.ts`](./src/utils/utils.test.ts), [`keyboard.test.ts`](./src/utils/keyboard.test.ts), [`createLazyComponent.test.tsx`](./src/utils/createLazyComponent.test.tsx).
659
713
 
660
714
  | API | Поведение |
661
715
  | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
@@ -674,25 +728,25 @@ Service worker runtime helpers живут в [`pwa/serviceWorker.ts`](./src/pwa/
674
728
 
675
729
  ### `validators` и `types`
676
730
 
677
- Файлы: [`validators/index.ts`](./src/validators/index.ts), [`types/index.ts`](./src/types/index.ts), тест: [`validators.test.ts`](./src/validators/validators.test.ts).
731
+ Файлы: [`validators/index.ts`](./src/validators/index.ts), подробный README: [`validators/README.mdx`](./src/validators/README.mdx); [`types/index.ts`](./src/types/index.ts), подробный README: [`types/README.mdx`](./src/types/README.mdx); тест: [`validators.test.ts`](./src/validators/validators.test.ts).
678
732
 
679
- | API | Поведение |
680
- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
681
- | `isSafe` | Type guard от `null/undefined`. |
682
- | `isObject`, `isRecord`, `asRecord`, `isPlainObject` | Guards для object-like values; массивы не считаются record. |
683
- | `IMAGE_EXTENSIONS`, `isImageExtension` | Проверка image extension без учета регистра. |
684
- | `isDomReference` | Floating UI reference -> DOM `Element`. |
733
+ | API | Поведение |
734
+ | -------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
735
+ | `isSafe` | Type guard от `null/undefined`. |
736
+ | `isObject`, `isRecord`, `asRecord`, `isPlainObject` | Guards для object-like values; массивы не считаются record. |
737
+ | `IMAGE_EXTENSIONS`, `isImageExtension` | Проверка image extension без учета регистра. |
738
+ | `isDomReference` | Floating UI reference -> DOM `Element`. |
685
739
  | `State`, `AbapBoolean`, `Primitive`, `BaseType`, `InputType`, `RangeType`, `RowRecord` | Общие технические типы. |
686
740
 
687
741
  ### `string-comparison`
688
742
 
689
- Файл: [`string-comparison/compareStrings.ts`](./src/string-comparison/compareStrings.ts), тест: [`compareStrings.test.ts`](./src/string-comparison/compareStrings.test.ts).
743
+ Файл: [`string-comparison/compareStrings.ts`](./src/string-comparison/compareStrings.ts), подробный README: [`string-comparison/README.mdx`](./src/string-comparison/README.mdx), тест: [`compareStrings.test.ts`](./src/string-comparison/compareStrings.test.ts).
690
744
 
691
745
  `compareStrings` использует фиксированный `Intl.Collator("ru-RU", { numeric: true, sensitivity: "base" })` и UTF-16 fallback. Используй для справочников и UI-списков вместо ad hoc `localeCompare`.
692
746
 
693
747
  ### `crypto` и `session-storage`
694
748
 
695
- Файлы: [`crypto/index.ts`](./src/crypto/index.ts), подробный README: [`crypto/README.mdx`](./src/crypto/README.mdx); [`session-storage/index.ts`](./src/session-storage/index.ts).
749
+ Файлы: [`crypto/index.ts`](./src/crypto/index.ts), подробный README: [`crypto/README.mdx`](./src/crypto/README.mdx); [`session-storage/index.ts`](./src/session-storage/index.ts), подробный README: [`session-storage/README.mdx`](./src/session-storage/README.mdx).
696
750
 
697
751
  | API | Поведение |
698
752
  | -------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
@@ -705,7 +759,7 @@ Service worker runtime helpers живут в [`pwa/serviceWorker.ts`](./src/pwa/
705
759
 
706
760
  ### `presets`
707
761
 
708
- Файл: [`presets/presets.ts`](./src/presets/presets.ts), тест: [`presets.test.ts`](./src/presets/presets.test.ts).
762
+ Файл: [`presets/presets.ts`](./src/presets/presets.ts), подробный README: [`presets/README.mdx`](./src/presets/README.mdx), тест: [`presets.test.ts`](./src/presets/presets.test.ts).
709
763
 
710
764
  | API | Поведение |
711
765
  | --------------------------- | ------------------------------------------------------------------------------------------ |
@@ -715,7 +769,7 @@ Service worker runtime helpers живут в [`pwa/serviceWorker.ts`](./src/pwa/
715
769
 
716
770
  ### `bounded-copy-stack`
717
771
 
718
- Файл: [`bounded-copy-stack/boundedCopyStack.ts`](./src/bounded-copy-stack/boundedCopyStack.ts), тест: [`boundedCopyStack.test.ts`](./src/bounded-copy-stack/boundedCopyStack.test.ts).
772
+ Файл: [`bounded-copy-stack/boundedCopyStack.ts`](./src/bounded-copy-stack/boundedCopyStack.ts), подробный README: [`bounded-copy-stack/README.mdx`](./src/bounded-copy-stack/README.mdx), тест: [`boundedCopyStack.test.ts`](./src/bounded-copy-stack/boundedCopyStack.test.ts).
719
773
 
720
774
  | API | Поведение |
721
775
  | --------------------------------- | ----------------------------------------------------------------------------------------- |
@@ -1,9 +1,8 @@
1
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-B6TxBSLm.js";
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-BW-7BZy_.js";
4
+ import { Bt as a, Rt as o, Sn as s, _t as c, pn as l } from "./odata-service-CWkHASdw.js";
5
+ 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-DyzojM0w.js";
7
6
  import { t as re } from "./string-comparison-BKT7PXmq.js";
8
7
  import { isSafe as ie } from "../validators/index.js";
9
8
  import { compileTableFormula as ae } from "../formulas/index.js";
@@ -396,7 +395,7 @@ function lt(e) {
396
395
  //#endregion
397
396
  //#region src/formatters/number/isZeroValue.ts
398
397
  function L(e) {
399
- let t = a(e);
398
+ let t = o(e);
400
399
  return typeof t == "number" ? t === 0 : typeof t == "bigint" && t === 0n;
401
400
  }
402
401
  //#endregion
@@ -530,7 +529,7 @@ function Nt(e, t) {
530
529
  break;
531
530
  }
532
531
  }
533
- return !n || a(e) === void 0 ? e : Pt(e, t);
532
+ return !n || o(e) === void 0 ? e : Pt(e, t);
534
533
  }
535
534
  return e;
536
535
  }
@@ -820,14 +819,14 @@ var sn = Object.freeze({
820
819
  });
821
820
  function X(e, t, r) {
822
821
  if (!ie(e)) return "";
823
- let i = o(t.type);
822
+ let i = c(t.type);
824
823
  if (i === "number") {
825
824
  let t = r?.numberPresetName?.trim();
826
825
  return V(e, t && d(t) ? t : sn.number);
827
826
  }
828
827
  if (i === "date") {
829
828
  let t = r?.datePresetName?.trim(), n = t && s(t) ? t : sn.date;
830
- return l(c(e), n);
829
+ return a(l(e), n);
831
830
  }
832
831
  return n(e);
833
832
  }
@@ -1242,4 +1241,4 @@ function Gn(e, t) {
1242
1241
  //#endregion
1243
1242
  export { ut as $, G as A, ke as At, vt as B, ve as Bt, Wt as C, je as Ct, It as D, Me as Dt, Ft as E, w as Et, jt as F, _ as Ft, ht as G, he as Gt, yt as H, g as Ht, V as I, y as It, Ot as J, de as Jt, Ct as K, pe as Kt, gt as L, v as Lt, H as M, x as Mt, Mt as N, be as Nt, Bt as O, T as Ot, Nt as P, xe as Pt, At as Q, se as Qt, wt as R, b as Rt, qt as S, Ne as St, Ht as T, E as Tt, Dt as U, _e as Ut, Et as V, Se as Vt, Tt as W, me as Wt, kt as X, le as Xt, xt as Y, ue as Yt, St as Z, ce as Zt, Ut as _, j as _t, Vn as a, Qe as at, Kt as b, Je as bt, Dn as c, A as ct, un as d, Ke as dt, L as et, X as f, Ge as ft, Zt as g, Ye as gt, Qt as h, We as ht, Bn as i, Xe as it, W as j, Oe as jt, U as k, De as kt, En as l, Ve as lt, an as m, Ue as mt, Un as n, et as nt, Hn as o, $e as ot, on as p, M as pt, bt as q, fe as qt, Wn as r, Ze as rt, Mn as s, He as st, Gn as t, P as tt, Cn as u, N as ut, Y as v, qe as vt, Vt as w, S as wt, J as x, C as xt, Gt as y, k as yt, _t as z, ye as zt };
1244
1243
 
1245
- //# sourceMappingURL=formatters-CBgrBeSA.js.map
1244
+ //# sourceMappingURL=formatters-D33Uh3si.js.map