@ryuzaki13/react-foundation-lib 0.1.1

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 (570) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +654 -0
  3. package/dist/array/array.d.ts +30 -0
  4. package/dist/array/array.d.ts.map +1 -0
  5. package/dist/array/index.d.ts +3 -0
  6. package/dist/array/index.d.ts.map +1 -0
  7. package/dist/array/index.js +2 -0
  8. package/dist/array/reorder.d.ts +10 -0
  9. package/dist/array/reorder.d.ts.map +1 -0
  10. package/dist/auth/getClientFingerprint.d.ts +2 -0
  11. package/dist/auth/getClientFingerprint.d.ts.map +1 -0
  12. package/dist/binary/binaryToBlob.d.ts +13 -0
  13. package/dist/binary/binaryToBlob.d.ts.map +1 -0
  14. package/dist/binary/index.d.ts +3 -0
  15. package/dist/binary/index.d.ts.map +1 -0
  16. package/dist/binary/index.js +126 -0
  17. package/dist/binary/index.js.map +1 -0
  18. package/dist/binary/useBinaryFile.d.ts +8 -0
  19. package/dist/binary/useBinaryFile.d.ts.map +1 -0
  20. package/dist/bounded-copy-stack/boundedCopyStack.d.ts +26 -0
  21. package/dist/bounded-copy-stack/boundedCopyStack.d.ts.map +1 -0
  22. package/dist/bounded-copy-stack/index.d.ts +2 -0
  23. package/dist/bounded-copy-stack/index.d.ts.map +1 -0
  24. package/dist/bounded-copy-stack/index.js +26 -0
  25. package/dist/bounded-copy-stack/index.js.map +1 -0
  26. package/dist/chunks/array-BBSjoTRy.js +146 -0
  27. package/dist/chunks/array-BBSjoTRy.js.map +1 -0
  28. package/dist/chunks/dateUtils-D9dpdTl7.js +760 -0
  29. package/dist/chunks/dateUtils-D9dpdTl7.js.map +1 -0
  30. package/dist/chunks/formatters-CQppb89D.js +1234 -0
  31. package/dist/chunks/formatters-CQppb89D.js.map +1 -0
  32. package/dist/chunks/formulas-BxcH5Zjt.js +279 -0
  33. package/dist/chunks/formulas-BxcH5Zjt.js.map +1 -0
  34. package/dist/chunks/isRecord-DXDTW-jA.js +18 -0
  35. package/dist/chunks/isRecord-DXDTW-jA.js.map +1 -0
  36. package/dist/chunks/odata-service-BAYf08WI.js +1223 -0
  37. package/dist/chunks/odata-service-BAYf08WI.js.map +1 -0
  38. package/dist/chunks/string-comparison-BKT7PXmq.js +20 -0
  39. package/dist/chunks/string-comparison-BKT7PXmq.js.map +1 -0
  40. package/dist/chunks/validate-BChpTW6y.js +468 -0
  41. package/dist/chunks/validate-BChpTW6y.js.map +1 -0
  42. package/dist/context-menu/anchor.d.ts +19 -0
  43. package/dist/context-menu/anchor.d.ts.map +1 -0
  44. package/dist/context-menu/index.d.ts +4 -0
  45. package/dist/context-menu/index.d.ts.map +1 -0
  46. package/dist/context-menu/index.js +57 -0
  47. package/dist/context-menu/index.js.map +1 -0
  48. package/dist/context-menu/state.d.ts +6 -0
  49. package/dist/context-menu/state.d.ts.map +1 -0
  50. package/dist/context-menu/types.d.ts +25 -0
  51. package/dist/context-menu/types.d.ts.map +1 -0
  52. package/dist/copy/index.d.ts +5 -0
  53. package/dist/copy/index.d.ts.map +1 -0
  54. package/dist/copy/index.js +56 -0
  55. package/dist/copy/index.js.map +1 -0
  56. package/dist/copy/useCopyElementText.d.ts +6 -0
  57. package/dist/copy/useCopyElementText.d.ts.map +1 -0
  58. package/dist/copy/useCopyFeedback.d.ts +11 -0
  59. package/dist/copy/useCopyFeedback.d.ts.map +1 -0
  60. package/dist/copy/useCopyText.d.ts +4 -0
  61. package/dist/copy/useCopyText.d.ts.map +1 -0
  62. package/dist/copy/useElementText.d.ts +5 -0
  63. package/dist/copy/useElementText.d.ts.map +1 -0
  64. package/dist/crypto/hashString.d.ts +5 -0
  65. package/dist/crypto/hashString.d.ts.map +1 -0
  66. package/dist/crypto/index.d.ts +3 -0
  67. package/dist/crypto/index.d.ts.map +1 -0
  68. package/dist/crypto/index.js +62 -0
  69. package/dist/crypto/index.js.map +1 -0
  70. package/dist/crypto/uuid.d.ts +5 -0
  71. package/dist/crypto/uuid.d.ts.map +1 -0
  72. package/dist/currency/currency.d.ts +8 -0
  73. package/dist/currency/currency.d.ts.map +1 -0
  74. package/dist/currency/index.d.ts +2 -0
  75. package/dist/currency/index.d.ts.map +1 -0
  76. package/dist/currency/index.js +16 -0
  77. package/dist/currency/index.js.map +1 -0
  78. package/dist/date-segments/index.d.ts +3 -0
  79. package/dist/date-segments/index.d.ts.map +1 -0
  80. package/dist/date-segments/index.js +160 -0
  81. package/dist/date-segments/index.js.map +1 -0
  82. package/dist/date-segments/mask.d.ts +54 -0
  83. package/dist/date-segments/mask.d.ts.map +1 -0
  84. package/dist/dom/downloadFile.d.ts +4 -0
  85. package/dist/dom/downloadFile.d.ts.map +1 -0
  86. package/dist/dom/getOrCreatePortalRoot.d.ts +2 -0
  87. package/dist/dom/getOrCreatePortalRoot.d.ts.map +1 -0
  88. package/dist/dom/index.d.ts +10 -0
  89. package/dist/dom/index.d.ts.map +1 -0
  90. package/dist/dom/index.js +159 -0
  91. package/dist/dom/index.js.map +1 -0
  92. package/dist/dom/useClickOutside.d.ts +3 -0
  93. package/dist/dom/useClickOutside.d.ts.map +1 -0
  94. package/dist/dom/useElementHeightObserver.d.ts +3 -0
  95. package/dist/dom/useElementHeightObserver.d.ts.map +1 -0
  96. package/dist/dom/useEscapeDismiss.d.ts +14 -0
  97. package/dist/dom/useEscapeDismiss.d.ts.map +1 -0
  98. package/dist/dom/useFocusTrap.d.ts +5 -0
  99. package/dist/dom/useFocusTrap.d.ts.map +1 -0
  100. package/dist/dom/useIntersectionObserver.d.ts +4 -0
  101. package/dist/dom/useIntersectionObserver.d.ts.map +1 -0
  102. package/dist/dom/useIsTouchDevice.d.ts +2 -0
  103. package/dist/dom/useIsTouchDevice.d.ts.map +1 -0
  104. package/dist/dom/useOverlayFocus.d.ts +14 -0
  105. package/dist/dom/useOverlayFocus.d.ts.map +1 -0
  106. package/dist/error/index.d.ts +2 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +20 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/error/missingContextError.d.ts +14 -0
  111. package/dist/error/missingContextError.d.ts.map +1 -0
  112. package/dist/error-report/breadcrumbs.d.ts +11 -0
  113. package/dist/error-report/breadcrumbs.d.ts.map +1 -0
  114. package/dist/error-report/capture.d.ts +6 -0
  115. package/dist/error-report/capture.d.ts.map +1 -0
  116. package/dist/error-report/diagnostics.d.ts +29 -0
  117. package/dist/error-report/diagnostics.d.ts.map +1 -0
  118. package/dist/error-report/drafts.d.ts +25 -0
  119. package/dist/error-report/drafts.d.ts.map +1 -0
  120. package/dist/error-report/environment.d.ts +19 -0
  121. package/dist/error-report/environment.d.ts.map +1 -0
  122. package/dist/error-report/errorInfo.d.ts +7 -0
  123. package/dist/error-report/errorInfo.d.ts.map +1 -0
  124. package/dist/error-report/index.d.ts +11 -0
  125. package/dist/error-report/index.d.ts.map +1 -0
  126. package/dist/error-report/index.js +464 -0
  127. package/dist/error-report/index.js.map +1 -0
  128. package/dist/error-report/runtime.d.ts +26 -0
  129. package/dist/error-report/runtime.d.ts.map +1 -0
  130. package/dist/error-report/safeValue.d.ts +14 -0
  131. package/dist/error-report/safeValue.d.ts.map +1 -0
  132. package/dist/error-report/transport.d.ts +32 -0
  133. package/dist/error-report/transport.d.ts.map +1 -0
  134. package/dist/error-report/types.d.ts +123 -0
  135. package/dist/error-report/types.d.ts.map +1 -0
  136. package/dist/excel/excel.d.ts +52 -0
  137. package/dist/excel/excel.d.ts.map +1 -0
  138. package/dist/excel/index.d.ts +3 -0
  139. package/dist/excel/index.d.ts.map +1 -0
  140. package/dist/excel/index.js +139 -0
  141. package/dist/excel/index.js.map +1 -0
  142. package/dist/excel/tableExport.d.ts +26 -0
  143. package/dist/excel/tableExport.d.ts.map +1 -0
  144. package/dist/file/contentDisposition.d.ts +11 -0
  145. package/dist/file/contentDisposition.d.ts.map +1 -0
  146. package/dist/file/image/index.d.ts +3 -0
  147. package/dist/file/image/index.d.ts.map +1 -0
  148. package/dist/file/image/readImageFile.d.ts +8 -0
  149. package/dist/file/image/readImageFile.d.ts.map +1 -0
  150. package/dist/file/image/types.d.ts +30 -0
  151. package/dist/file/image/types.d.ts.map +1 -0
  152. package/dist/file/index.d.ts +5 -0
  153. package/dist/file/index.d.ts.map +1 -0
  154. package/dist/file/index.js +211 -0
  155. package/dist/file/index.js.map +1 -0
  156. package/dist/file/mimeType.d.ts +2 -0
  157. package/dist/file/mimeType.d.ts.map +1 -0
  158. package/dist/file/read-file/assert.d.ts +4 -0
  159. package/dist/file/read-file/assert.d.ts.map +1 -0
  160. package/dist/file/read-file/index.d.ts +4 -0
  161. package/dist/file/read-file/index.d.ts.map +1 -0
  162. package/dist/file/read-file/readFile.d.ts +14 -0
  163. package/dist/file/read-file/readFile.d.ts.map +1 -0
  164. package/dist/file/read-file/types.d.ts +43 -0
  165. package/dist/file/read-file/types.d.ts.map +1 -0
  166. package/dist/form/formErrors.d.ts +2 -0
  167. package/dist/form/formErrors.d.ts.map +1 -0
  168. package/dist/form/index.d.ts +2 -0
  169. package/dist/form/index.d.ts.map +1 -0
  170. package/dist/form/index.js +19 -0
  171. package/dist/form/index.js.map +1 -0
  172. package/dist/formatters/boolean/index.d.ts +3 -0
  173. package/dist/formatters/boolean/index.d.ts.map +1 -0
  174. package/dist/formatters/boolean/parseAbapBoolean.d.ts +3 -0
  175. package/dist/formatters/boolean/parseAbapBoolean.d.ts.map +1 -0
  176. package/dist/formatters/boolean/toAbapBoolean.d.ts +3 -0
  177. package/dist/formatters/boolean/toAbapBoolean.d.ts.map +1 -0
  178. package/dist/formatters/date/calendarDate.d.ts +48 -0
  179. package/dist/formatters/date/calendarDate.d.ts.map +1 -0
  180. package/dist/formatters/date/calendarPeriod.d.ts +33 -0
  181. package/dist/formatters/date/calendarPeriod.d.ts.map +1 -0
  182. package/dist/formatters/date/dateRange.d.ts +25 -0
  183. package/dist/formatters/date/dateRange.d.ts.map +1 -0
  184. package/dist/formatters/date/educationDate.d.ts +79 -0
  185. package/dist/formatters/date/educationDate.d.ts.map +1 -0
  186. package/dist/formatters/date/formatDate.d.ts +98 -0
  187. package/dist/formatters/date/formatDate.d.ts.map +1 -0
  188. package/dist/formatters/date/index.d.ts +14 -0
  189. package/dist/formatters/date/index.d.ts.map +1 -0
  190. package/dist/formatters/date/parseDate.d.ts +44 -0
  191. package/dist/formatters/date/parseDate.d.ts.map +1 -0
  192. package/dist/formatters/date/pattern.d.ts +38 -0
  193. package/dist/formatters/date/pattern.d.ts.map +1 -0
  194. package/dist/formatters/date/presets.d.ts +108 -0
  195. package/dist/formatters/date/presets.d.ts.map +1 -0
  196. package/dist/formatters/date/relativeRanges.d.ts +35 -0
  197. package/dist/formatters/date/relativeRanges.d.ts.map +1 -0
  198. package/dist/formatters/date/types.d.ts +70 -0
  199. package/dist/formatters/date/types.d.ts.map +1 -0
  200. package/dist/formatters/formatName.d.ts +13 -0
  201. package/dist/formatters/formatName.d.ts.map +1 -0
  202. package/dist/formatters/formatPhone.d.ts +3 -0
  203. package/dist/formatters/formatPhone.d.ts.map +1 -0
  204. package/dist/formatters/formatTagAsHashtag.d.ts +6 -0
  205. package/dist/formatters/formatTagAsHashtag.d.ts.map +1 -0
  206. package/dist/formatters/index.d.ts +11 -0
  207. package/dist/formatters/index.d.ts.map +1 -0
  208. package/dist/formatters/index.js +6 -0
  209. package/dist/formatters/normalizeLeadingZeros.d.ts +27 -0
  210. package/dist/formatters/normalizeLeadingZeros.d.ts.map +1 -0
  211. package/dist/formatters/number/compact.d.ts +10 -0
  212. package/dist/formatters/number/compact.d.ts.map +1 -0
  213. package/dist/formatters/number/formatCompactNumber.d.ts +49 -0
  214. package/dist/formatters/number/formatCompactNumber.d.ts.map +1 -0
  215. package/dist/formatters/number/formatNumber.d.ts +93 -0
  216. package/dist/formatters/number/formatNumber.d.ts.map +1 -0
  217. package/dist/formatters/number/index.d.ts +6 -0
  218. package/dist/formatters/number/index.d.ts.map +1 -0
  219. package/dist/formatters/number/isZeroValue.d.ts +5 -0
  220. package/dist/formatters/number/isZeroValue.d.ts.map +1 -0
  221. package/dist/formatters/number/parseNumber.d.ts +12 -0
  222. package/dist/formatters/number/parseNumber.d.ts.map +1 -0
  223. package/dist/formatters/number/presets.d.ts +24 -0
  224. package/dist/formatters/number/presets.d.ts.map +1 -0
  225. package/dist/formatters/number/types.d.ts +46 -0
  226. package/dist/formatters/number/types.d.ts.map +1 -0
  227. package/dist/formatters/pipeline/clone.d.ts +15 -0
  228. package/dist/formatters/pipeline/clone.d.ts.map +1 -0
  229. package/dist/formatters/pipeline/definitions.d.ts +14 -0
  230. package/dist/formatters/pipeline/definitions.d.ts.map +1 -0
  231. package/dist/formatters/pipeline/dependencies.d.ts +38 -0
  232. package/dist/formatters/pipeline/dependencies.d.ts.map +1 -0
  233. package/dist/formatters/pipeline/execute.d.ts +21 -0
  234. package/dist/formatters/pipeline/execute.d.ts.map +1 -0
  235. package/dist/formatters/pipeline/index.d.ts +10 -0
  236. package/dist/formatters/pipeline/index.d.ts.map +1 -0
  237. package/dist/formatters/pipeline/normalize.d.ts +3 -0
  238. package/dist/formatters/pipeline/normalize.d.ts.map +1 -0
  239. package/dist/formatters/pipeline/registry.d.ts +11 -0
  240. package/dist/formatters/pipeline/registry.d.ts.map +1 -0
  241. package/dist/formatters/pipeline/rekey.d.ts +11 -0
  242. package/dist/formatters/pipeline/rekey.d.ts.map +1 -0
  243. package/dist/formatters/pipeline/runtime.d.ts +17 -0
  244. package/dist/formatters/pipeline/runtime.d.ts.map +1 -0
  245. package/dist/formatters/pipeline/types.d.ts +379 -0
  246. package/dist/formatters/pipeline/types.d.ts.map +1 -0
  247. package/dist/formatters/pipeline/validate.d.ts +29 -0
  248. package/dist/formatters/pipeline/validate.d.ts.map +1 -0
  249. package/dist/formatters/rowBased/context.d.ts +9 -0
  250. package/dist/formatters/rowBased/context.d.ts.map +1 -0
  251. package/dist/formatters/rowBased/definitions/index.d.ts +6 -0
  252. package/dist/formatters/rowBased/definitions/index.d.ts.map +1 -0
  253. package/dist/formatters/rowBased/index.d.ts +4 -0
  254. package/dist/formatters/rowBased/index.d.ts.map +1 -0
  255. package/dist/formatters/rowBased/registry.d.ts +19 -0
  256. package/dist/formatters/rowBased/registry.d.ts.map +1 -0
  257. package/dist/formatters/rowBased/types.d.ts +29 -0
  258. package/dist/formatters/rowBased/types.d.ts.map +1 -0
  259. package/dist/formatters/strings/index.d.ts +6 -0
  260. package/dist/formatters/strings/index.d.ts.map +1 -0
  261. package/dist/formatters/strings/normalizeText.d.ts +11 -0
  262. package/dist/formatters/strings/normalizeText.d.ts.map +1 -0
  263. package/dist/formatters/strings/startsWithIgnoringZeros.d.ts +2 -0
  264. package/dist/formatters/strings/startsWithIgnoringZeros.d.ts.map +1 -0
  265. package/dist/formatters/strings/stripInnerSpaces.d.ts +6 -0
  266. package/dist/formatters/strings/stripInnerSpaces.d.ts.map +1 -0
  267. package/dist/formatters/strings/stripLeadingZeros.d.ts +10 -0
  268. package/dist/formatters/strings/stripLeadingZeros.d.ts.map +1 -0
  269. package/dist/formatters/strings/truncateText.d.ts +2 -0
  270. package/dist/formatters/strings/truncateText.d.ts.map +1 -0
  271. package/dist/formatters/valueState/fixedValueStateResolver.d.ts +41 -0
  272. package/dist/formatters/valueState/fixedValueStateResolver.d.ts.map +1 -0
  273. package/dist/formatters/valueState/index.d.ts +7 -0
  274. package/dist/formatters/valueState/index.d.ts.map +1 -0
  275. package/dist/formatters/valueState/presentation.d.ts +4 -0
  276. package/dist/formatters/valueState/presentation.d.ts.map +1 -0
  277. package/dist/formatters/valueState/resolveValueStateClassName.d.ts +3 -0
  278. package/dist/formatters/valueState/resolveValueStateClassName.d.ts.map +1 -0
  279. package/dist/formatters/valueState/thresholdValueStateResolver.d.ts +40 -0
  280. package/dist/formatters/valueState/thresholdValueStateResolver.d.ts.map +1 -0
  281. package/dist/formatters/valueState/types.d.ts +35 -0
  282. package/dist/formatters/valueState/types.d.ts.map +1 -0
  283. package/dist/formatters/valueState/valueStateRegistry.d.ts +45 -0
  284. package/dist/formatters/valueState/valueStateRegistry.d.ts.map +1 -0
  285. package/dist/formulas/definitions/base.d.ts +7 -0
  286. package/dist/formulas/definitions/base.d.ts.map +1 -0
  287. package/dist/formulas/definitions/index.d.ts +3 -0
  288. package/dist/formulas/definitions/index.d.ts.map +1 -0
  289. package/dist/formulas/definitions/sales.d.ts +7 -0
  290. package/dist/formulas/definitions/sales.d.ts.map +1 -0
  291. package/dist/formulas/execute.d.ts +36 -0
  292. package/dist/formulas/execute.d.ts.map +1 -0
  293. package/dist/formulas/index.d.ts +5 -0
  294. package/dist/formulas/index.d.ts.map +1 -0
  295. package/dist/formulas/index.js +2 -0
  296. package/dist/formulas/perf.runtime.d.ts +48 -0
  297. package/dist/formulas/perf.runtime.d.ts.map +1 -0
  298. package/dist/formulas/registry.d.ts +10 -0
  299. package/dist/formulas/registry.d.ts.map +1 -0
  300. package/dist/formulas/types.d.ts +16 -0
  301. package/dist/formulas/types.d.ts.map +1 -0
  302. package/dist/formulas/validate.d.ts +22 -0
  303. package/dist/formulas/validate.d.ts.map +1 -0
  304. package/dist/hooks/index.d.ts +11 -0
  305. package/dist/hooks/index.d.ts.map +1 -0
  306. package/dist/hooks/index.js +291 -0
  307. package/dist/hooks/index.js.map +1 -0
  308. package/dist/hooks/types.d.ts +4 -0
  309. package/dist/hooks/types.d.ts.map +1 -0
  310. package/dist/hooks/useBlockBrowserZoom.d.ts +7 -0
  311. package/dist/hooks/useBlockBrowserZoom.d.ts.map +1 -0
  312. package/dist/hooks/useDebounce.d.ts +2 -0
  313. package/dist/hooks/useDebounce.d.ts.map +1 -0
  314. package/dist/hooks/useDebounceCallback.d.ts +22 -0
  315. package/dist/hooks/useDebounceCallback.d.ts.map +1 -0
  316. package/dist/hooks/useDndSortableSensors.d.ts +13 -0
  317. package/dist/hooks/useDndSortableSensors.d.ts.map +1 -0
  318. package/dist/hooks/useFloatingListbox.d.ts +61 -0
  319. package/dist/hooks/useFloatingListbox.d.ts.map +1 -0
  320. package/dist/hooks/useLazyComponent.d.ts +28 -0
  321. package/dist/hooks/useLazyComponent.d.ts.map +1 -0
  322. package/dist/hooks/useReferenceTrace.d.ts +2 -0
  323. package/dist/hooks/useReferenceTrace.d.ts.map +1 -0
  324. package/dist/hooks/useSearchLink.d.ts +5 -0
  325. package/dist/hooks/useSearchLink.d.ts.map +1 -0
  326. package/dist/hooks/useSearchParams.d.ts +8 -0
  327. package/dist/hooks/useSearchParams.d.ts.map +1 -0
  328. package/dist/hooks/useThrottledCallback.d.ts +43 -0
  329. package/dist/hooks/useThrottledCallback.d.ts.map +1 -0
  330. package/dist/http/httpHeaders.d.ts +3 -0
  331. package/dist/http/httpHeaders.d.ts.map +1 -0
  332. package/dist/http/index.d.ts +3 -0
  333. package/dist/http/index.d.ts.map +1 -0
  334. package/dist/http/index.js +18 -0
  335. package/dist/http/index.js.map +1 -0
  336. package/dist/http/textResponse.d.ts +7 -0
  337. package/dist/http/textResponse.d.ts.map +1 -0
  338. package/dist/media/breakpoints.d.ts +9 -0
  339. package/dist/media/breakpoints.d.ts.map +1 -0
  340. package/dist/media/getCurrentFontSize.d.ts +4 -0
  341. package/dist/media/getCurrentFontSize.d.ts.map +1 -0
  342. package/dist/media/index.d.ts +7 -0
  343. package/dist/media/index.d.ts.map +1 -0
  344. package/dist/media/index.js +147 -0
  345. package/dist/media/index.js.map +1 -0
  346. package/dist/media/pxToEm.d.ts +2 -0
  347. package/dist/media/pxToEm.d.ts.map +1 -0
  348. package/dist/media/responsive.d.ts +29 -0
  349. package/dist/media/responsive.d.ts.map +1 -0
  350. package/dist/media/useMatchMedia.d.ts +15 -0
  351. package/dist/media/useMatchMedia.d.ts.map +1 -0
  352. package/dist/media/useMediaQuery.d.ts +10 -0
  353. package/dist/media/useMediaQuery.d.ts.map +1 -0
  354. package/dist/notifications/index.d.ts +4 -0
  355. package/dist/notifications/index.d.ts.map +1 -0
  356. package/dist/notifications/index.js +124 -0
  357. package/dist/notifications/index.js.map +1 -0
  358. package/dist/notifications/notify.d.ts +32 -0
  359. package/dist/notifications/notify.d.ts.map +1 -0
  360. package/dist/notifications/store.d.ts +31 -0
  361. package/dist/notifications/store.d.ts.map +1 -0
  362. package/dist/notifications/types.d.ts +19 -0
  363. package/dist/notifications/types.d.ts.map +1 -0
  364. package/dist/number-scale/index.d.ts +3 -0
  365. package/dist/number-scale/index.d.ts.map +1 -0
  366. package/dist/number-scale/index.js +99 -0
  367. package/dist/number-scale/index.js.map +1 -0
  368. package/dist/number-scale/numberScale.d.ts +52 -0
  369. package/dist/number-scale/numberScale.d.ts.map +1 -0
  370. package/dist/number-scale/types.d.ts +44 -0
  371. package/dist/number-scale/types.d.ts.map +1 -0
  372. package/dist/odata/buildSeparatedArrays.d.ts +10 -0
  373. package/dist/odata/buildSeparatedArrays.d.ts.map +1 -0
  374. package/dist/odata/dateUtils.d.ts +14 -0
  375. package/dist/odata/dateUtils.d.ts.map +1 -0
  376. package/dist/odata/findCollectionPairs.d.ts +11 -0
  377. package/dist/odata/findCollectionPairs.d.ts.map +1 -0
  378. package/dist/odata/index.d.ts +6 -0
  379. package/dist/odata/index.d.ts.map +1 -0
  380. package/dist/odata/index.js +102 -0
  381. package/dist/odata/index.js.map +1 -0
  382. package/dist/odata/store.d.ts +42 -0
  383. package/dist/odata/store.d.ts.map +1 -0
  384. package/dist/odata/types.d.ts +12 -0
  385. package/dist/odata/types.d.ts.map +1 -0
  386. package/dist/odata-service/baseTypes.d.ts +6 -0
  387. package/dist/odata-service/baseTypes.d.ts.map +1 -0
  388. package/dist/odata-service/builder.d.ts +33 -0
  389. package/dist/odata-service/builder.d.ts.map +1 -0
  390. package/dist/odata-service/columns.d.ts +10 -0
  391. package/dist/odata-service/columns.d.ts.map +1 -0
  392. package/dist/odata-service/filterDefinitions.d.ts +113 -0
  393. package/dist/odata-service/filterDefinitions.d.ts.map +1 -0
  394. package/dist/odata-service/filters.d.ts +75 -0
  395. package/dist/odata-service/filters.d.ts.map +1 -0
  396. package/dist/odata-service/formatters.d.ts +33 -0
  397. package/dist/odata-service/formatters.d.ts.map +1 -0
  398. package/dist/odata-service/index.d.ts +16 -0
  399. package/dist/odata-service/index.d.ts.map +1 -0
  400. package/dist/odata-service/index.js +2 -0
  401. package/dist/odata-service/parser.d.ts +14 -0
  402. package/dist/odata-service/parser.d.ts.map +1 -0
  403. package/dist/odata-service/schema.d.ts +8 -0
  404. package/dist/odata-service/schema.d.ts.map +1 -0
  405. package/dist/odata-service/sorts.d.ts +26 -0
  406. package/dist/odata-service/sorts.d.ts.map +1 -0
  407. package/dist/odata-service/sqlFilters.d.ts +32 -0
  408. package/dist/odata-service/sqlFilters.d.ts.map +1 -0
  409. package/dist/odata-service/types.d.ts +166 -0
  410. package/dist/odata-service/types.d.ts.map +1 -0
  411. package/dist/odata-service/typesValidation.d.ts +6 -0
  412. package/dist/odata-service/typesValidation.d.ts.map +1 -0
  413. package/dist/odata-service/unwrapODataQueryResult.d.ts +22 -0
  414. package/dist/odata-service/unwrapODataQueryResult.d.ts.map +1 -0
  415. package/dist/odata-service/utils.d.ts +5 -0
  416. package/dist/odata-service/utils.d.ts.map +1 -0
  417. package/dist/odata-service/wrapParams.d.ts +7 -0
  418. package/dist/odata-service/wrapParams.d.ts.map +1 -0
  419. package/dist/presets/index.d.ts +2 -0
  420. package/dist/presets/index.d.ts.map +1 -0
  421. package/dist/presets/index.js +23 -0
  422. package/dist/presets/index.js.map +1 -0
  423. package/dist/presets/presets.d.ts +20 -0
  424. package/dist/presets/presets.d.ts.map +1 -0
  425. package/dist/pwa/index.d.ts +3 -0
  426. package/dist/pwa/index.d.ts.map +1 -0
  427. package/dist/pwa/index.js +206 -0
  428. package/dist/pwa/index.js.map +1 -0
  429. package/dist/pwa/serviceWorker.d.ts +31 -0
  430. package/dist/pwa/serviceWorker.d.ts.map +1 -0
  431. package/dist/pwa/swCachePolicy.d.ts +24 -0
  432. package/dist/pwa/swCachePolicy.d.ts.map +1 -0
  433. package/dist/pwa/useServiceWorkerUpdate.d.ts +6 -0
  434. package/dist/pwa/useServiceWorkerUpdate.d.ts.map +1 -0
  435. package/dist/query-client/broadcast.d.ts +23 -0
  436. package/dist/query-client/broadcast.d.ts.map +1 -0
  437. package/dist/query-client/index.d.ts +5 -0
  438. package/dist/query-client/index.d.ts.map +1 -0
  439. package/dist/query-client/index.js +204 -0
  440. package/dist/query-client/index.js.map +1 -0
  441. package/dist/query-client/persistence.d.ts +33 -0
  442. package/dist/query-client/persistence.d.ts.map +1 -0
  443. package/dist/query-client/queryClient.d.ts +127 -0
  444. package/dist/query-client/queryClient.d.ts.map +1 -0
  445. package/dist/query-client/queryPersistenceAdapter.d.ts +7 -0
  446. package/dist/query-client/queryPersistenceAdapter.d.ts.map +1 -0
  447. package/dist/range-output/index.d.ts +2 -0
  448. package/dist/range-output/index.d.ts.map +1 -0
  449. package/dist/range-output/index.js +22 -0
  450. package/dist/range-output/index.js.map +1 -0
  451. package/dist/range-output/rangeOutput.d.ts +15 -0
  452. package/dist/range-output/rangeOutput.d.ts.map +1 -0
  453. package/dist/seo/index.d.ts +3 -0
  454. package/dist/seo/index.d.ts.map +1 -0
  455. package/dist/seo/index.js +125 -0
  456. package/dist/seo/index.js.map +1 -0
  457. package/dist/seo/seo.d.ts +16 -0
  458. package/dist/seo/seo.d.ts.map +1 -0
  459. package/dist/seo/types.d.ts +28 -0
  460. package/dist/seo/types.d.ts.map +1 -0
  461. package/dist/session-storage/index.d.ts +2 -0
  462. package/dist/session-storage/index.d.ts.map +1 -0
  463. package/dist/session-storage/index.js +17 -0
  464. package/dist/session-storage/index.js.map +1 -0
  465. package/dist/session-storage/sessionId.d.ts +8 -0
  466. package/dist/session-storage/sessionId.d.ts.map +1 -0
  467. package/dist/string-comparison/compareStrings.d.ts +9 -0
  468. package/dist/string-comparison/compareStrings.d.ts.map +1 -0
  469. package/dist/string-comparison/index.d.ts +2 -0
  470. package/dist/string-comparison/index.d.ts.map +1 -0
  471. package/dist/string-comparison/index.js +2 -0
  472. package/dist/table/columnLayout.d.ts +23 -0
  473. package/dist/table/columnLayout.d.ts.map +1 -0
  474. package/dist/table/columnOrder.d.ts +21 -0
  475. package/dist/table/columnOrder.d.ts.map +1 -0
  476. package/dist/table/columnSizing.d.ts +7 -0
  477. package/dist/table/columnSizing.d.ts.map +1 -0
  478. package/dist/table/index.d.ts +9 -0
  479. package/dist/table/index.d.ts.map +1 -0
  480. package/dist/table/index.js +229 -0
  481. package/dist/table/index.js.map +1 -0
  482. package/dist/table/odataAdapter.d.ts +63 -0
  483. package/dist/table/odataAdapter.d.ts.map +1 -0
  484. package/dist/table/selection.d.ts +16 -0
  485. package/dist/table/selection.d.ts.map +1 -0
  486. package/dist/table/types.d.ts +60 -0
  487. package/dist/table/types.d.ts.map +1 -0
  488. package/dist/table/useTableRowSelection.d.ts +19 -0
  489. package/dist/table/useTableRowSelection.d.ts.map +1 -0
  490. package/dist/table/utils.d.ts +20 -0
  491. package/dist/table/utils.d.ts.map +1 -0
  492. package/dist/three-scene/index.d.ts +3 -0
  493. package/dist/three-scene/index.d.ts.map +1 -0
  494. package/dist/three-scene/index.js +84 -0
  495. package/dist/three-scene/index.js.map +1 -0
  496. package/dist/three-scene/threeSceneAvailability.d.ts +15 -0
  497. package/dist/three-scene/threeSceneAvailability.d.ts.map +1 -0
  498. package/dist/three-scene/useThreeSceneAvailability.d.ts +8 -0
  499. package/dist/three-scene/useThreeSceneAvailability.d.ts.map +1 -0
  500. package/dist/tree-table/buildTreeTableRows.d.ts +9 -0
  501. package/dist/tree-table/buildTreeTableRows.d.ts.map +1 -0
  502. package/dist/tree-table/index.d.ts +4 -0
  503. package/dist/tree-table/index.d.ts.map +1 -0
  504. package/dist/tree-table/index.js +126 -0
  505. package/dist/tree-table/index.js.map +1 -0
  506. package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts +11 -0
  507. package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts.map +1 -0
  508. package/dist/tree-table/types.d.ts +87 -0
  509. package/dist/tree-table/types.d.ts.map +1 -0
  510. package/dist/types/index.d.ts +2 -0
  511. package/dist/types/index.d.ts.map +1 -0
  512. package/dist/types/index.js +8 -0
  513. package/dist/types/index.js.map +1 -0
  514. package/dist/types/types.d.ts +12 -0
  515. package/dist/types/types.d.ts.map +1 -0
  516. package/dist/utils/childrenCount.d.ts +3 -0
  517. package/dist/utils/childrenCount.d.ts.map +1 -0
  518. package/dist/utils/cn.d.ts +6 -0
  519. package/dist/utils/cn.d.ts.map +1 -0
  520. package/dist/utils/createLazyComponent.d.ts +22 -0
  521. package/dist/utils/createLazyComponent.d.ts.map +1 -0
  522. package/dist/utils/deepCloneWithoutFunctions.d.ts +20 -0
  523. package/dist/utils/deepCloneWithoutFunctions.d.ts.map +1 -0
  524. package/dist/utils/deepCopyWithoutFunctions.d.ts +10 -0
  525. package/dist/utils/deepCopyWithoutFunctions.d.ts.map +1 -0
  526. package/dist/utils/index.d.ts +17 -0
  527. package/dist/utils/index.d.ts.map +1 -0
  528. package/dist/utils/index.js +209 -0
  529. package/dist/utils/index.js.map +1 -0
  530. package/dist/utils/keyboard.d.ts +36 -0
  531. package/dist/utils/keyboard.d.ts.map +1 -0
  532. package/dist/utils/logger.d.ts +2 -0
  533. package/dist/utils/logger.d.ts.map +1 -0
  534. package/dist/utils/selectNavigation.d.ts +8 -0
  535. package/dist/utils/selectNavigation.d.ts.map +1 -0
  536. package/dist/utils/stableStringify.d.ts +8 -0
  537. package/dist/utils/stableStringify.d.ts.map +1 -0
  538. package/dist/utils/toBase64.d.ts +3 -0
  539. package/dist/utils/toBase64.d.ts.map +1 -0
  540. package/dist/utils/treeNode.d.ts +9 -0
  541. package/dist/utils/treeNode.d.ts.map +1 -0
  542. package/dist/validators/index.d.ts +7 -0
  543. package/dist/validators/index.d.ts.map +1 -0
  544. package/dist/validators/index.js +54 -0
  545. package/dist/validators/index.js.map +1 -0
  546. package/dist/validators/isDomReference.d.ts +3 -0
  547. package/dist/validators/isDomReference.d.ts.map +1 -0
  548. package/dist/validators/isImageExtension.d.ts +3 -0
  549. package/dist/validators/isImageExtension.d.ts.map +1 -0
  550. package/dist/validators/isRecord.d.ts +5 -0
  551. package/dist/validators/isRecord.d.ts.map +1 -0
  552. package/dist/validators/isSafe.d.ts +2 -0
  553. package/dist/validators/isSafe.d.ts.map +1 -0
  554. package/dist/validators/positiveInteger.d.ts +2 -0
  555. package/dist/validators/positiveInteger.d.ts.map +1 -0
  556. package/dist/validators/validateUrl.d.ts +10 -0
  557. package/dist/validators/validateUrl.d.ts.map +1 -0
  558. package/dist/virtualizer/index.d.ts +2 -0
  559. package/dist/virtualizer/index.d.ts.map +1 -0
  560. package/dist/virtualizer/index.js +19 -0
  561. package/dist/virtualizer/index.js.map +1 -0
  562. package/dist/virtualizer/useFetchNextPageEffect.d.ts +8 -0
  563. package/dist/virtualizer/useFetchNextPageEffect.d.ts.map +1 -0
  564. package/dist/xml/index.d.ts +2 -0
  565. package/dist/xml/index.d.ts.map +1 -0
  566. package/dist/xml/index.js +17 -0
  567. package/dist/xml/index.js.map +1 -0
  568. package/dist/xml/xml.d.ts +5 -0
  569. package/dist/xml/xml.d.ts.map +1 -0
  570. package/package.json +428 -0
@@ -0,0 +1,25 @@
1
+ export interface MenuPoint {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export type MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";
6
+ export interface ElementMenuAnchor {
7
+ type: "element";
8
+ element: HTMLElement;
9
+ }
10
+ export interface PointMenuAnchor {
11
+ type: "point";
12
+ point: MenuPoint;
13
+ contextElement?: Element | null;
14
+ }
15
+ export type MenuAnchor = ElementMenuAnchor | PointMenuAnchor;
16
+ export interface MenuState {
17
+ open: boolean;
18
+ source: MenuOpenSource | null;
19
+ anchor: MenuAnchor | null;
20
+ }
21
+ export interface OpenMenuPayload {
22
+ source: MenuOpenSource;
23
+ anchor: MenuAnchor;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context-menu/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE7D,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ export * from "./useCopyElementText";
2
+ export * from "./useCopyFeedback";
3
+ export * from "./useCopyText";
4
+ export * from "./useElementText";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/copy/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { useCallback as e, useRef as t, useState as n } from "react";
2
+ //#region src/copy/useCopyText.ts
3
+ var r = async (e) => {
4
+ try {
5
+ let t = document.createElement("div");
6
+ t.contentEditable = "true", t.style.position = "fixed", t.style.opacity = "0", t.style.pointerEvents = "none", t.textContent = e, document.body.appendChild(t);
7
+ let n = window.getSelection(), r = document.createRange();
8
+ r.selectNodeContents(t), n?.removeAllRanges(), n?.addRange(r);
9
+ let i = document.execCommand("copy");
10
+ return n?.removeAllRanges(), document.body.removeChild(t), i;
11
+ } catch {
12
+ return !1;
13
+ }
14
+ }, i = () => ({ copyToClipboard: e(async (e) => {
15
+ if (!e.trim()) return !1;
16
+ try {
17
+ return navigator.clipboard && window.isSecureContext ? (await navigator.clipboard.writeText(e), !0) : await r(e);
18
+ } catch (e) {
19
+ return console.error("Failed to copy text:", e), !1;
20
+ }
21
+ }, []) }), a = (t) => ({ getElementText: e(() => t.current?.textContent?.trim() || "", [t]) }), o = () => {
22
+ let n = t(null), { copyToClipboard: r } = i(), { getElementText: o } = a(n);
23
+ return {
24
+ containerRef: n,
25
+ copyElementText: e(async () => {
26
+ let e = o();
27
+ return e ? await r(e) : !1;
28
+ }, [o, r]),
29
+ getElementText: o
30
+ };
31
+ }, s = () => {
32
+ let [t, r] = n(!1);
33
+ return {
34
+ isCopied: t,
35
+ showFeedback: e(() => {
36
+ r(!0);
37
+ let e = setTimeout(() => r(!1), 2e3);
38
+ return () => clearTimeout(e);
39
+ }, [])
40
+ };
41
+ }, c = () => {
42
+ let { containerRef: t, copyElementText: n, getElementText: r } = o(), { isCopied: i, showFeedback: a } = s();
43
+ return {
44
+ containerRef: t,
45
+ copyElementText: e(async () => {
46
+ let e = await n();
47
+ return e && a(), e;
48
+ }, [n, a]),
49
+ getElementText: r,
50
+ isCopied: i
51
+ };
52
+ };
53
+ //#endregion
54
+ export { o as useCopyElementText, c as useCopyElementTextWithFeedback, s as useCopyFeedback, i as useCopyText, a as useElementText };
55
+
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/copy/useCopyText.ts","../../src/copy/useElementText.ts","../../src/copy/useCopyElementText.ts","../../src/copy/useCopyFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\n\nconst clipboardFallback = async (text: string): Promise<boolean> => {\n\ttry {\n\t\t// Создаем временный элемент с выделением\n\t\tconst tempElement = document.createElement(\"div\");\n\t\ttempElement.contentEditable = \"true\";\n\t\ttempElement.style.position = \"fixed\";\n\t\ttempElement.style.opacity = \"0\";\n\t\ttempElement.style.pointerEvents = \"none\";\n\t\ttempElement.textContent = text;\n\n\t\tdocument.body.appendChild(tempElement);\n\n\t\t// Выделяем текст\n\t\tconst selection = window.getSelection();\n\t\tconst range = document.createRange();\n\t\trange.selectNodeContents(tempElement);\n\t\tselection?.removeAllRanges();\n\t\tselection?.addRange(range);\n\n\t\t// Пытаемся скопировать через современный API\n\t\tconst success = document.execCommand(\"copy\"); // Это пока оставляем, но с try/catch\n\t\tselection?.removeAllRanges();\n\t\tdocument.body.removeChild(tempElement);\n\n\t\treturn success;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const useCopyText = () => {\n\tconst copyToClipboard = useCallback(async (text: string): Promise<boolean> => {\n\t\tif (!text.trim()) return false;\n\n\t\ttry {\n\t\t\t// Современный API\n\t\t\tif (navigator.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(text);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\t// Fallback для старых браузеров\n\t\t\t\treturn await clipboardFallback(text);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"Failed to copy text:\", err);\n\t\t\treturn false;\n\t\t}\n\t}, []);\n\n\treturn { copyToClipboard };\n};\n","import { RefObject, useCallback } from \"react\";\n\nexport const useElementText = <T extends HTMLElement = HTMLElement>(ref: RefObject<T | null>) => {\n\tconst getElementText = useCallback((): string => {\n\t\treturn ref.current?.textContent?.trim() || \"\";\n\t}, [ref]);\n\n\treturn { getElementText };\n};\n","import { useCallback, useRef } from \"react\";\n\nimport { useCopyText } from \"./useCopyText\";\nimport { useElementText } from \"./useElementText\";\n\nexport const useCopyElementText = <T extends HTMLElement = HTMLElement>() => {\n\tconst containerRef = useRef<T>(null);\n\tconst { copyToClipboard } = useCopyText();\n\tconst { getElementText } = useElementText(containerRef);\n\n\tconst copyElementText = useCallback(async (): Promise<boolean> => {\n\t\tconst text = getElementText();\n\t\tif (!text) return false;\n\n\t\treturn await copyToClipboard(text);\n\t}, [getElementText, copyToClipboard]);\n\n\treturn {\n\t\tcontainerRef,\n\t\tcopyElementText,\n\t\tgetElementText\n\t};\n};\n","import { useCallback, useState } from \"react\";\n\nimport { useCopyElementText } from \"./useCopyElementText\";\n\nexport const useCopyFeedback = () => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst showFeedback = useCallback(() => {\n\t\tsetIsCopied(true);\n\t\tconst timer = setTimeout(() => setIsCopied(false), 2000);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\treturn { isCopied, showFeedback };\n};\n\n// Обновленный useCopyElementText с фидбэком\nexport const useCopyElementTextWithFeedback = <T extends HTMLElement = HTMLElement>() => {\n\tconst { containerRef, copyElementText, getElementText } = useCopyElementText<T>();\n\tconst { isCopied, showFeedback } = useCopyFeedback();\n\n\tconst copyWithFeedback = useCallback(async (): Promise<boolean> => {\n\t\tconst success = await copyElementText();\n\t\tif (success) {\n\t\t\tshowFeedback();\n\t\t}\n\t\treturn success;\n\t}, [copyElementText, showFeedback]);\n\n\treturn {\n\t\tcontainerRef,\n\t\tcopyElementText: copyWithFeedback,\n\t\tgetElementText,\n\t\tisCopied\n\t};\n};\n"],"mappings":";;AAEA,IAAM,IAAoB,OAAO,MAAmC;CACnE,IAAI;EAEH,IAAM,IAAc,SAAS,cAAc,KAAK;EAOhD,AANA,EAAY,kBAAkB,QAC9B,EAAY,MAAM,WAAW,SAC7B,EAAY,MAAM,UAAU,KAC5B,EAAY,MAAM,gBAAgB,QAClC,EAAY,cAAc,GAE1B,SAAS,KAAK,YAAY,CAAW;EAGrC,IAAM,IAAY,OAAO,aAAa,GAChC,IAAQ,SAAS,YAAY;EAGnC,AAFA,EAAM,mBAAmB,CAAW,GACpC,GAAW,gBAAgB,GAC3B,GAAW,SAAS,CAAK;EAGzB,IAAM,IAAU,SAAS,YAAY,MAAM;EAI3C,OAHA,GAAW,gBAAgB,GAC3B,SAAS,KAAK,YAAY,CAAW,GAE9B;CACR,QAAQ;EACP,OAAO;CACR;AACD,GAEa,WAmBL,EAAE,iBAlBe,EAAY,OAAO,MAAmC;CAC7E,IAAI,CAAC,EAAK,KAAK,GAAG,OAAO;CAEzB,IAAI;EAOF,OALG,UAAU,aAAa,OAAO,mBACjC,MAAM,UAAU,UAAU,UAAU,CAAI,GACjC,MAGA,MAAM,EAAkB,CAAI;CAErC,SAAS,GAAK;EAEb,OADA,QAAQ,MAAM,wBAAwB,CAAG,GAClC;CACR;AACD,GAAG,CAAC,CAEK,EAAgB,ICjDb,KAAuD,OAK5D,EAAE,gBAJc,QACf,EAAI,SAAS,aAAa,KAAK,KAAK,IACzC,CAAC,CAAG,CAEE,EAAe,ICFZ,UAAgE;CAC5E,IAAM,IAAe,EAAU,IAAI,GAC7B,EAAE,uBAAoB,EAAY,GAClC,EAAE,sBAAmB,EAAe,CAAY;CAStD,OAAO;EACN;EACA,iBATuB,EAAY,YAA8B;GACjE,IAAM,IAAO,EAAe;GAG5B,OAFK,IAEE,MAAM,EAAgB,CAAI,IAFf;EAGnB,GAAG,CAAC,GAAgB,CAAe,CAIlC;EACA;CACD;AACD,GClBa,UAAwB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAS,EAAK;CAQ9C,OAAO;EAAE;EAAU,cANE,QAAkB;GACtC,EAAY,EAAI;GAChB,IAAM,IAAQ,iBAAiB,EAAY,EAAK,GAAG,GAAI;GACvD,aAAa,aAAa,CAAK;EAChC,GAAG,CAAC,CAEe;CAAa;AACjC,GAGa,UAA4E;CACxF,IAAM,EAAE,iBAAc,oBAAiB,sBAAmB,EAAsB,GAC1E,EAAE,aAAU,oBAAiB,EAAgB;CAUnD,OAAO;EACN;EACA,iBAVwB,EAAY,YAA8B;GAClE,IAAM,IAAU,MAAM,EAAgB;GAItC,OAHI,KACH,EAAa,GAEP;EACR,GAAG,CAAC,GAAiB,CAAY,CAIf;EACjB;EACA;CACD;AACD"}
@@ -0,0 +1,6 @@
1
+ export declare const useCopyElementText: <T extends HTMLElement = HTMLElement>() => {
2
+ containerRef: import("react").RefObject<T | null>;
3
+ copyElementText: () => Promise<boolean>;
4
+ getElementText: () => string;
5
+ };
6
+ //# sourceMappingURL=useCopyElementText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopyElementText.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyElementText.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW;;2BAKvB,OAAO,CAAC,OAAO,CAAC;;CAY9D,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const useCopyFeedback: () => {
2
+ isCopied: boolean;
3
+ showFeedback: () => () => void;
4
+ };
5
+ export declare const useCopyElementTextWithFeedback: <T extends HTMLElement = HTMLElement>() => {
6
+ containerRef: import("react").RefObject<T | null>;
7
+ copyElementText: () => Promise<boolean>;
8
+ getElementText: () => string;
9
+ isCopied: boolean;
10
+ };
11
+ //# sourceMappingURL=useCopyFeedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopyFeedback.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyFeedback.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;CAU3B,CAAC;AAGF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW;;2BAIlC,OAAO,CAAC,OAAO,CAAC;;;CAc/D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const useCopyText: () => {
2
+ copyToClipboard: (text: string) => Promise<boolean>;
3
+ };
4
+ //# sourceMappingURL=useCopyText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopyText.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyText.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,WAAW;4BAC0B,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;CAmB1E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { RefObject } from "react";
2
+ export declare const useElementText: <T extends HTMLElement = HTMLElement>(ref: RefObject<T | null>) => {
3
+ getElementText: () => string;
4
+ };
5
+ //# sourceMappingURL=useElementText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useElementText.d.ts","sourceRoot":"","sources":["../../src/copy/useElementText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAE/C,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;0BACpD,MAAM;CAK7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function hashString(input: string): string;
2
+ export declare function hashString128(input: string): string;
3
+ export declare function hashString128Base64Url(input: string): string;
4
+ export declare function stringToElementId(input: string, prefix?: string): string;
5
+ //# sourceMappingURL=hashString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashString.d.ts","sourceRoot":"","sources":["../../src/crypto/hashString.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AA8BD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASnD;AAeD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,MAAM,CAEvE"}
@@ -0,0 +1,3 @@
1
+ export * from "./hashString";
2
+ export * from "./uuid";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,62 @@
1
+ //#region src/crypto/hashString.ts
2
+ function e(e) {
3
+ let t = 2166136261;
4
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t += (t << 1) + (t << 4) + (t << 7) + (t << 8) + (t << 24);
5
+ return (t >>> 0).toString(36);
6
+ }
7
+ function t(e) {
8
+ let t = 3735928559 ^ e.length, n = 1103547991 ^ e.length, r = 3235826430 ^ e.length, i = 305419896 ^ e.length;
9
+ for (let a = 0; a < e.length; a++) {
10
+ let o = e.charCodeAt(a);
11
+ t = Math.imul(t ^ o, 2654435761), n = Math.imul(n ^ o, 1597334677), r = Math.imul(r ^ o, 2246822507), i = Math.imul(i ^ o, 3266489909);
12
+ }
13
+ return t = Math.imul(r ^ t >>> 18, 597399067), n = Math.imul(i ^ n >>> 22, 2869860233), r = Math.imul(t ^ r >>> 17, 951274213), i = Math.imul(n ^ i >>> 19, 2716044179), [
14
+ (t ^ n ^ r ^ i) >>> 0,
15
+ (n ^ t) >>> 0,
16
+ (r ^ t) >>> 0,
17
+ (i ^ t) >>> 0
18
+ ];
19
+ }
20
+ function n(e) {
21
+ let n = t(e);
22
+ return n[0].toString(16).padStart(8, "0") + n[1].toString(16).padStart(8, "0") + n[2].toString(16).padStart(8, "0") + n[3].toString(16).padStart(8, "0");
23
+ }
24
+ function r(e) {
25
+ return [
26
+ e >>> 24 & 255,
27
+ e >>> 16 & 255,
28
+ e >>> 8 & 255,
29
+ e & 255
30
+ ];
31
+ }
32
+ function i(e) {
33
+ let t = "";
34
+ for (let n = 0; n < e.length; n++) t += String.fromCharCode(e[n]);
35
+ return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
36
+ }
37
+ function a(e) {
38
+ let n = t(e);
39
+ return i([
40
+ ...r(n[0]),
41
+ ...r(n[1]),
42
+ ...r(n[2]),
43
+ ...r(n[3])
44
+ ]);
45
+ }
46
+ function o(e, t = "row") {
47
+ return `${t}-${a(e)}`;
48
+ }
49
+ //#endregion
50
+ //#region src/crypto/uuid.ts
51
+ function s() {
52
+ if (crypto.randomUUID) return crypto.randomUUID();
53
+ let e = /* @__PURE__ */ new Uint8Array(16);
54
+ crypto.getRandomValues(e), e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128;
55
+ let t = Array(256);
56
+ for (let e = 0; e < 256; e++) t[e] = (e + 256).toString(16).slice(1);
57
+ return t[e[0]] + t[e[1]] + t[e[2]] + t[e[3]] + "-" + t[e[4]] + t[e[5]] + "-" + t[e[6]] + t[e[7]] + "-" + t[e[8]] + t[e[9]] + "-" + t[e[10]] + t[e[11]] + t[e[12]] + t[e[13]] + t[e[14]] + t[e[15]];
58
+ }
59
+ //#endregion
60
+ export { e as hashString, n as hashString128, a as hashString128Base64Url, o as stringToElementId, s as uuidv4 };
61
+
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/crypto/hashString.ts","../../src/crypto/uuid.ts"],"sourcesContent":["export function hashString(input: string): string {\n\tlet hash = 0x811c9dc5;\n\n\tfor (let i = 0; i < input.length; i++) {\n\t\thash ^= input.charCodeAt(i);\n\n\t\t// FNV-1a 32-bit\n\t\thash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n\t}\n\n\t// unsigned 32-bit -> compact string\n\treturn (hash >>> 0).toString(36);\n}\n\nfunction hashString128Base(input: string) {\n\tlet h1 = 0xdeadbeef ^ input.length;\n\tlet h2 = 0x41c6ce57 ^ input.length;\n\tlet h3 = 0xc0decafe ^ input.length;\n\tlet h4 = 0x12345678 ^ input.length;\n\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input.charCodeAt(i);\n\n\t\th1 = Math.imul(h1 ^ ch, 2654435761);\n\t\th2 = Math.imul(h2 ^ ch, 1597334677);\n\t\th3 = Math.imul(h3 ^ ch, 2246822507);\n\t\th4 = Math.imul(h4 ^ ch, 3266489909);\n\t}\n\n\th1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);\n\th2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);\n\th3 = Math.imul(h1 ^ (h3 >>> 17), 951274213);\n\th4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);\n\n\tconst p1 = (h1 ^ h2 ^ h3 ^ h4) >>> 0;\n\tconst p2 = (h2 ^ h1) >>> 0;\n\tconst p3 = (h3 ^ h1) >>> 0;\n\tconst p4 = (h4 ^ h1) >>> 0;\n\n\treturn [p1, p2, p3, p4];\n}\n\nexport function hashString128(input: string): string {\n\tconst p = hashString128Base(input);\n\n\treturn (\n\t\tp[0].toString(16).padStart(8, \"0\") +\n\t\tp[1].toString(16).padStart(8, \"0\") +\n\t\tp[2].toString(16).padStart(8, \"0\") +\n\t\tp[3].toString(16).padStart(8, \"0\")\n\t);\n}\n\nfunction uint32ToBytes(value: number): number[] {\n\treturn [(value >>> 24) & 0xff, (value >>> 16) & 0xff, (value >>> 8) & 0xff, value & 0xff];\n}\n\nfunction bytesToBase64Url(bytes: number[]): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tbinary += String.fromCharCode(bytes[i]);\n\t}\n\n\treturn btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/g, \"\");\n}\n\nexport function hashString128Base64Url(input: string): string {\n\tconst p = hashString128Base(input);\n\n\treturn bytesToBase64Url([...uint32ToBytes(p[0]), ...uint32ToBytes(p[1]), ...uint32ToBytes(p[2]), ...uint32ToBytes(p[3])]);\n}\n\nexport function stringToElementId(input: string, prefix = \"row\"): string {\n\treturn `${prefix}-${hashString128Base64Url(input)}`;\n}\n","/**\n * UUID v4 (RFC 4122)\n */\nexport function uuidv4(): string {\n\tif (crypto.randomUUID) {\n\t\treturn crypto.randomUUID();\n\t}\n\n\tconst bytes = new Uint8Array(16);\n\tcrypto.getRandomValues(bytes);\n\n\t// Версия 4\n\tbytes[6] = (bytes[6] & 0x0f) | 0x40;\n\t// Вариант RFC 4122\n\tbytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n\tconst hex = new Array<string>(256);\n\tfor (let i = 0; i < 256; i++) {\n\t\thex[i] = (i + 0x100).toString(16).slice(1);\n\t}\n\n\treturn (\n\t\thex[bytes[0]] +\n\t\thex[bytes[1]] +\n\t\thex[bytes[2]] +\n\t\thex[bytes[3]] +\n\t\t\"-\" +\n\t\thex[bytes[4]] +\n\t\thex[bytes[5]] +\n\t\t\"-\" +\n\t\thex[bytes[6]] +\n\t\thex[bytes[7]] +\n\t\t\"-\" +\n\t\thex[bytes[8]] +\n\t\thex[bytes[9]] +\n\t\t\"-\" +\n\t\thex[bytes[10]] +\n\t\thex[bytes[11]] +\n\t\thex[bytes[12]] +\n\t\thex[bytes[13]] +\n\t\thex[bytes[14]] +\n\t\thex[bytes[15]]\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * UUID v4 (RFC 4122)
3
+ */
4
+ export declare function uuidv4(): string;
5
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/crypto/uuid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAwC/B"}
@@ -0,0 +1,8 @@
1
+ import { type WrappedODataParameters } from "../odata-service";
2
+ /** Runtime-режим валюты, который задается общим OData-параметром страницы. */
3
+ export type CurrencyMode = "internal" | "rub";
4
+ /** Собирает display-подпись с валютным суффиксом. */
5
+ export declare function resolveCurrencyAwareLabel(label: string, currencyLabels: readonly [string, string] | undefined, currencyMode: CurrencyMode | null | undefined): string;
6
+ /** Определяет режим валюты по общему OData-параметру `p_curr`. */
7
+ export declare function resolveCurrencyModeFromODataParameters(params?: WrappedODataParameters): CurrencyMode | null;
8
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../src/currency/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACrD,YAAY,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAC3C,MAAM,CAWR;AAED,kEAAkE;AAClE,wBAAgB,sCAAsC,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CAU3G"}
@@ -0,0 +1,2 @@
1
+ export * from "./currency";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ //#region src/currency/currency.ts
2
+ var e = "p_curr";
3
+ function t(e, t, n) {
4
+ if (!t || !n) return e;
5
+ let r = t[n === "internal" ? 0 : 1]?.trim(), i = r.startsWith(",");
6
+ return r ? `${e}${i ? "" : " "}${r}` : e;
7
+ }
8
+ function n(t) {
9
+ if (!t || !Object.prototype.hasOwnProperty.call(t, e)) return null;
10
+ let n = t[e]?.value;
11
+ return n === !1 ? "internal" : n === !0 ? "rub" : null;
12
+ }
13
+ //#endregion
14
+ export { t as resolveCurrencyAwareLabel, n as resolveCurrencyModeFromODataParameters };
15
+
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/currency/currency.ts"],"sourcesContent":["import { type WrappedODataParameters } from \"../odata-service\";\n\nconst CURRENCY_PARAMETER_ID = \"p_curr\";\n\n/** Runtime-режим валюты, который задается общим OData-параметром страницы. */\nexport type CurrencyMode = \"internal\" | \"rub\";\n\n/** Собирает display-подпись с валютным суффиксом. */\nexport function resolveCurrencyAwareLabel(\n\tlabel: string,\n\tcurrencyLabels: readonly [string, string] | undefined,\n\tcurrencyMode: CurrencyMode | null | undefined\n): string {\n\tif (!currencyLabels || !currencyMode) {\n\t\treturn label;\n\t}\n\n\tconst currencyLabelIndex = currencyMode === \"internal\" ? 0 : 1;\n\tconst currencyLabel = currencyLabels[currencyLabelIndex]?.trim();\n\tconst hasComma = currencyLabel.startsWith(\",\");\n\n\t// NOTE: нужно закрепить правило, что запятая ставится в currencyLabel\n\treturn currencyLabel ? `${label}${hasComma ? \"\" : \" \"}${currencyLabel}` : label;\n}\n\n/** Определяет режим валюты по общему OData-параметру `p_curr`. */\nexport function resolveCurrencyModeFromODataParameters(params?: WrappedODataParameters): CurrencyMode | null {\n\tif (!params || !Object.prototype.hasOwnProperty.call(params, CURRENCY_PARAMETER_ID)) {\n\t\treturn null;\n\t}\n\n\tconst value = params[CURRENCY_PARAMETER_ID]?.value;\n\tif (value === false) return \"internal\";\n\tif (value === true) return \"rub\";\n\n\treturn null;\n}\n"],"mappings":";AAEA,IAAM,IAAwB;AAM9B,SAAgB,EACf,GACA,GACA,GACS;CACT,IAAI,CAAC,KAAkB,CAAC,GACvB,OAAO;CAIR,IAAM,IAAgB,EADK,MAAiB,aAAa,IAAI,EACL,EAAE,KAAK,GACzD,IAAW,EAAc,WAAW,GAAG;CAG7C,OAAO,IAAgB,GAAG,IAAQ,IAAW,KAAK,MAAM,MAAkB;AAC3E;AAGA,SAAgB,EAAuC,GAAsD;CAC5G,IAAI,CAAC,KAAU,CAAC,OAAO,UAAU,eAAe,KAAK,GAAQ,CAAqB,GACjF,OAAO;CAGR,IAAM,IAAQ,EAAO,EAAsB,EAAE;CAI7C,OAHI,MAAU,KAAc,aACxB,MAAU,KAAa,QAEpB;AACR"}
@@ -0,0 +1,3 @@
1
+ export { areAllDateSegmentsEmpty, dateToIndexedSegmentValues, indexedSegmentsToDate, isEditableDateSegment, parseDateSegmentMask } from "./mask";
2
+ export type { DateMaskSegment, DateSegmentId, EditableDateSegment, LiteralDateSegment } from "./mask";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/date-segments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,160 @@
1
+ //#region src/date-segments/mask.ts
2
+ var e = {
3
+ YYYY: {
4
+ id: "year",
5
+ length: 4,
6
+ min: 1,
7
+ max: 9999,
8
+ placeholder: "ГГГГ",
9
+ ariaLabel: "Год"
10
+ },
11
+ yyyy: {
12
+ id: "year",
13
+ length: 4,
14
+ min: 1,
15
+ max: 9999,
16
+ placeholder: "гггг",
17
+ ariaLabel: "Год"
18
+ },
19
+ yy: {
20
+ id: "year",
21
+ length: 2,
22
+ min: 0,
23
+ max: 99,
24
+ placeholder: "гг",
25
+ ariaLabel: "Год"
26
+ },
27
+ MM: {
28
+ id: "month",
29
+ length: 2,
30
+ min: 1,
31
+ max: 12,
32
+ placeholder: "мм",
33
+ ariaLabel: "Месяц"
34
+ },
35
+ DD: {
36
+ id: "day",
37
+ length: 2,
38
+ min: 1,
39
+ max: 31,
40
+ placeholder: "ДД",
41
+ ariaLabel: "День"
42
+ },
43
+ dd: {
44
+ id: "day",
45
+ length: 2,
46
+ min: 1,
47
+ max: 31,
48
+ placeholder: "дд",
49
+ ariaLabel: "День"
50
+ },
51
+ hh: {
52
+ id: "hours",
53
+ length: 2,
54
+ min: 0,
55
+ max: 23,
56
+ placeholder: "чч",
57
+ ariaLabel: "Часы"
58
+ },
59
+ HH: {
60
+ id: "hours",
61
+ length: 2,
62
+ min: 0,
63
+ max: 23,
64
+ placeholder: "чч",
65
+ ariaLabel: "Часы"
66
+ },
67
+ mm: {
68
+ id: "minutes",
69
+ length: 2,
70
+ min: 0,
71
+ max: 59,
72
+ placeholder: "мм",
73
+ ariaLabel: "Минуты"
74
+ },
75
+ ss: {
76
+ id: "seconds",
77
+ length: 2,
78
+ min: 0,
79
+ max: 59,
80
+ placeholder: "сс",
81
+ ariaLabel: "Секунды"
82
+ }
83
+ }, t = Object.keys(e).sort((e, t) => t.length - e.length);
84
+ function n(n) {
85
+ let r = [], i = 0, a = "", o = () => {
86
+ a &&= (r.push({
87
+ kind: "literal",
88
+ text: a
89
+ }), "");
90
+ };
91
+ for (; i < n.length;) {
92
+ let s = null;
93
+ for (let e of t) if (n.slice(i, i + e.length) === e) {
94
+ s = e;
95
+ break;
96
+ }
97
+ if (!s) {
98
+ a += n[i], i += 1;
99
+ continue;
100
+ }
101
+ o(), r.push({
102
+ kind: "editable",
103
+ token: s,
104
+ ...e[s]
105
+ }), i += s.length;
106
+ }
107
+ return o(), r;
108
+ }
109
+ function r(e) {
110
+ return e.kind === "editable";
111
+ }
112
+ function i(e, t) {
113
+ let n = /* @__PURE__ */ new Map();
114
+ return t.forEach((t, i) => {
115
+ if (!r(t)) return;
116
+ if (!(e instanceof Date) || Number.isNaN(e.getTime())) {
117
+ n.set(i, "");
118
+ return;
119
+ }
120
+ let a = s(e, t);
121
+ n.set(i, a);
122
+ }), n;
123
+ }
124
+ function a(e, t) {
125
+ return e.every((e, n) => !r(e) || !(t.get(n) ?? ""));
126
+ }
127
+ function o(e, t, n) {
128
+ let i = e.map((e, t) => ({
129
+ segment: e,
130
+ index: t
131
+ })).filter((e) => r(e.segment));
132
+ for (let { segment: e, index: n } of i) if ((t.get(n) ?? "").length < e.length) return null;
133
+ let a = n?.defaultDate ?? new Date(1970, 0, 1, 0, 0, 0, 0), o = c(i, t, "year") ?? a.getFullYear(), s = c(i, t, "month") ?? a.getMonth() + 1, l = c(i, t, "day") ?? a.getDate(), u = c(i, t, "hours") ?? a.getHours(), d = c(i, t, "minutes") ?? a.getMinutes(), f = c(i, t, "seconds") ?? a.getSeconds();
134
+ if (s < 1 || s > 12 || l < 1 || l > 31 || u < 0 || u > 23 || d < 0 || d > 59 || f < 0 || f > 59) return null;
135
+ let p = new Date(o, s - 1, l, u, d, f, 0);
136
+ return p.getFullYear() === o && p.getMonth() === s - 1 && p.getDate() === l && p.getHours() === u && p.getMinutes() === d && p.getSeconds() === f ? p : null;
137
+ }
138
+ function s(e, t) {
139
+ let n = String(e.getFullYear());
140
+ switch (t.id) {
141
+ case "year": return t.length === 2 ? n.slice(-2) : n.padStart(t.length, "0");
142
+ case "month": return String(e.getMonth() + 1).padStart(t.length, "0");
143
+ case "day": return String(e.getDate()).padStart(t.length, "0");
144
+ case "hours": return String(e.getHours()).padStart(t.length, "0");
145
+ case "minutes": return String(e.getMinutes()).padStart(t.length, "0");
146
+ case "seconds": return String(e.getSeconds()).padStart(t.length, "0");
147
+ }
148
+ }
149
+ function c(e, t, n) {
150
+ let r = e.find(({ segment: e }) => e.id === n);
151
+ if (!r) return null;
152
+ let i = t.get(r.index);
153
+ if (!i) return null;
154
+ let a = Number.parseInt(i, 10);
155
+ return Number.isFinite(a) ? n === "year" && r.segment.length === 2 ? a < 70 ? 2e3 + a : 1900 + a : a : null;
156
+ }
157
+ //#endregion
158
+ export { a as areAllDateSegmentsEmpty, i as dateToIndexedSegmentValues, o as indexedSegmentsToDate, r as isEditableDateSegment, n as parseDateSegmentMask };
159
+
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/date-segments/mask.ts"],"sourcesContent":["/**\n * Нейтральные идентификаторы редактируемых сегментов даты и времени.\n */\nexport type DateSegmentId = \"year\" | \"month\" | \"day\" | \"hours\" | \"minutes\" | \"seconds\";\n\n/**\n * Редактируемый сегмент маски даты/времени.\n */\nexport interface EditableDateSegment {\n\tkind: \"editable\";\n\tid: DateSegmentId;\n\ttoken: string;\n\tlength: number;\n\tmin: number;\n\tmax: number;\n\tplaceholder: string;\n\tariaLabel: string;\n}\n\n/**\n * Литеральный сегмент маски даты/времени.\n */\nexport interface LiteralDateSegment {\n\tkind: \"literal\";\n\ttext: string;\n}\n\n/**\n * Унифицированный сегмент маски даты/времени.\n */\nexport type DateMaskSegment = EditableDateSegment | LiteralDateSegment;\n\ntype EditableTokenConfig = Omit<EditableDateSegment, \"kind\" | \"token\">;\n\nconst TOKEN_MAP: Record<string, EditableTokenConfig> = {\n\tYYYY: { id: \"year\", length: 4, min: 1, max: 9999, placeholder: \"ГГГГ\", ariaLabel: \"Год\" },\n\tyyyy: { id: \"year\", length: 4, min: 1, max: 9999, placeholder: \"гггг\", ariaLabel: \"Год\" },\n\tyy: { id: \"year\", length: 2, min: 0, max: 99, placeholder: \"гг\", ariaLabel: \"Год\" },\n\tMM: { id: \"month\", length: 2, min: 1, max: 12, placeholder: \"мм\", ariaLabel: \"Месяц\" },\n\tDD: { id: \"day\", length: 2, min: 1, max: 31, placeholder: \"ДД\", ariaLabel: \"День\" },\n\tdd: { id: \"day\", length: 2, min: 1, max: 31, placeholder: \"дд\", ariaLabel: \"День\" },\n\thh: { id: \"hours\", length: 2, min: 0, max: 23, placeholder: \"чч\", ariaLabel: \"Часы\" },\n\tHH: { id: \"hours\", length: 2, min: 0, max: 23, placeholder: \"чч\", ariaLabel: \"Часы\" },\n\tmm: { id: \"minutes\", length: 2, min: 0, max: 59, placeholder: \"мм\", ariaLabel: \"Минуты\" },\n\tss: { id: \"seconds\", length: 2, min: 0, max: 59, placeholder: \"сс\", ariaLabel: \"Секунды\" }\n};\n\nconst TOKENS_SORTED = Object.keys(TOKEN_MAP).sort((left, right) => right.length - left.length);\n\n/**\n * Разворачивает строковую маску в последовательность литер и редактируемых сегментов.\n */\nexport function parseDateSegmentMask(mask: string): DateMaskSegment[] {\n\tconst segments: DateMaskSegment[] = [];\n\tlet position = 0;\n\tlet literalBuffer = \"\";\n\n\tconst flushLiteral = () => {\n\t\tif (!literalBuffer) return;\n\n\t\tsegments.push({ kind: \"literal\", text: literalBuffer });\n\t\tliteralBuffer = \"\";\n\t};\n\n\twhile (position < mask.length) {\n\t\tlet matchedToken: string | null = null;\n\n\t\tfor (const token of TOKENS_SORTED) {\n\t\t\tif (mask.slice(position, position + token.length) === token) {\n\t\t\t\tmatchedToken = token;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!matchedToken) {\n\t\t\tliteralBuffer += mask[position];\n\t\t\tposition += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tflushLiteral();\n\t\tsegments.push({ kind: \"editable\", token: matchedToken, ...TOKEN_MAP[matchedToken] });\n\t\tposition += matchedToken.length;\n\t}\n\n\tflushLiteral();\n\n\treturn segments;\n}\n\n/**\n * Возвращает `true`, если сегмент редактируемый.\n */\nexport function isEditableDateSegment(segment: DateMaskSegment): segment is EditableDateSegment {\n\treturn segment.kind === \"editable\";\n}\n\n/**\n * Преобразует Date в индексированную карту значений сегментов.\n */\nexport function dateToIndexedSegmentValues(date: Date | null | undefined, segments: DateMaskSegment[]): Map<number, string> {\n\tconst values = new Map<number, string>();\n\n\tsegments.forEach((segment, index) => {\n\t\tif (!isEditableDateSegment(segment)) return;\n\n\t\tif (!(date instanceof Date) || Number.isNaN(date.getTime())) {\n\t\t\tvalues.set(index, \"\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst rawValue = resolveSegmentValue(date, segment);\n\t\tvalues.set(index, rawValue);\n\t});\n\n\treturn values;\n}\n\n/**\n * Возвращает `true`, если все редактируемые сегменты пусты.\n */\nexport function areAllDateSegmentsEmpty(segments: DateMaskSegment[], values: Map<number, string>): boolean {\n\treturn segments.every((segment, index) => !isEditableDateSegment(segment) || !(values.get(index) ?? \"\"));\n}\n\n/**\n * Собирает строгий Date из индексированной карты сегментов.\n *\n * Отсутствующие части берутся из `defaultDate`, что сохраняет обратную\n * совместимость со сценариями ввода только даты или только времени.\n */\nexport function indexedSegmentsToDate(\n\tsegments: DateMaskSegment[],\n\tvalues: Map<number, string>,\n\toptions?: { defaultDate?: Date }\n): Date | null {\n\tconst editableSegments = segments\n\t\t.map((segment, index) => ({ segment, index }))\n\t\t.filter((entry): entry is { segment: EditableDateSegment; index: number } => isEditableDateSegment(entry.segment));\n\n\tfor (const { segment, index } of editableSegments) {\n\t\tconst value = values.get(index) ?? \"\";\n\t\tif (value.length < segment.length) return null;\n\t}\n\n\tconst fallbackDate = options?.defaultDate ?? new Date(1970, 0, 1, 0, 0, 0, 0);\n\tconst year = resolveSegmentNumber(editableSegments, values, \"year\") ?? fallbackDate.getFullYear();\n\tconst month = resolveSegmentNumber(editableSegments, values, \"month\") ?? fallbackDate.getMonth() + 1;\n\tconst day = resolveSegmentNumber(editableSegments, values, \"day\") ?? fallbackDate.getDate();\n\tconst hours = resolveSegmentNumber(editableSegments, values, \"hours\") ?? fallbackDate.getHours();\n\tconst minutes = resolveSegmentNumber(editableSegments, values, \"minutes\") ?? fallbackDate.getMinutes();\n\tconst seconds = resolveSegmentNumber(editableSegments, values, \"seconds\") ?? fallbackDate.getSeconds();\n\n\tif (month < 1 || month > 12) return null;\n\tif (day < 1 || day > 31) return null;\n\tif (hours < 0 || hours > 23) return null;\n\tif (minutes < 0 || minutes > 59) return null;\n\tif (seconds < 0 || seconds > 59) return null;\n\n\tconst result = new Date(year, month - 1, day, hours, minutes, seconds, 0);\n\tconst isValid =\n\t\tresult.getFullYear() === year &&\n\t\tresult.getMonth() === month - 1 &&\n\t\tresult.getDate() === day &&\n\t\tresult.getHours() === hours &&\n\t\tresult.getMinutes() === minutes &&\n\t\tresult.getSeconds() === seconds;\n\n\treturn isValid ? result : null;\n}\n\n/**\n * Возвращает строковое значение конкретного сегмента для переданного Date.\n */\nfunction resolveSegmentValue(date: Date, segment: EditableDateSegment): string {\n\tconst fullYear = String(date.getFullYear());\n\n\tswitch (segment.id) {\n\t\tcase \"year\":\n\t\t\treturn segment.length === 2 ? fullYear.slice(-2) : fullYear.padStart(segment.length, \"0\");\n\t\tcase \"month\":\n\t\t\treturn String(date.getMonth() + 1).padStart(segment.length, \"0\");\n\t\tcase \"day\":\n\t\t\treturn String(date.getDate()).padStart(segment.length, \"0\");\n\t\tcase \"hours\":\n\t\t\treturn String(date.getHours()).padStart(segment.length, \"0\");\n\t\tcase \"minutes\":\n\t\t\treturn String(date.getMinutes()).padStart(segment.length, \"0\");\n\t\tcase \"seconds\":\n\t\t\treturn String(date.getSeconds()).padStart(segment.length, \"0\");\n\t}\n}\n\n/**\n * Извлекает числовое значение сегмента нужного типа.\n */\nfunction resolveSegmentNumber(\n\teditableSegments: Array<{ segment: EditableDateSegment; index: number }>,\n\tvalues: Map<number, string>,\n\ttargetId: DateSegmentId\n): number | null {\n\tconst match = editableSegments.find(({ segment }) => segment.id === targetId);\n\tif (!match) return null;\n\n\tconst rawValue = values.get(match.index);\n\tif (!rawValue) return null;\n\n\tconst numericValue = Number.parseInt(rawValue, 10);\n\tif (!Number.isFinite(numericValue)) return null;\n\n\tif (targetId === \"year\" && match.segment.length === 2) {\n\t\treturn numericValue < 70 ? 2000 + numericValue : 1900 + numericValue;\n\t}\n\n\treturn numericValue;\n}\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Нейтральные идентификаторы редактируемых сегментов даты и времени.
3
+ */
4
+ export type DateSegmentId = "year" | "month" | "day" | "hours" | "minutes" | "seconds";
5
+ /**
6
+ * Редактируемый сегмент маски даты/времени.
7
+ */
8
+ export interface EditableDateSegment {
9
+ kind: "editable";
10
+ id: DateSegmentId;
11
+ token: string;
12
+ length: number;
13
+ min: number;
14
+ max: number;
15
+ placeholder: string;
16
+ ariaLabel: string;
17
+ }
18
+ /**
19
+ * Литеральный сегмент маски даты/времени.
20
+ */
21
+ export interface LiteralDateSegment {
22
+ kind: "literal";
23
+ text: string;
24
+ }
25
+ /**
26
+ * Унифицированный сегмент маски даты/времени.
27
+ */
28
+ export type DateMaskSegment = EditableDateSegment | LiteralDateSegment;
29
+ /**
30
+ * Разворачивает строковую маску в последовательность литер и редактируемых сегментов.
31
+ */
32
+ export declare function parseDateSegmentMask(mask: string): DateMaskSegment[];
33
+ /**
34
+ * Возвращает `true`, если сегмент редактируемый.
35
+ */
36
+ export declare function isEditableDateSegment(segment: DateMaskSegment): segment is EditableDateSegment;
37
+ /**
38
+ * Преобразует Date в индексированную карту значений сегментов.
39
+ */
40
+ export declare function dateToIndexedSegmentValues(date: Date | null | undefined, segments: DateMaskSegment[]): Map<number, string>;
41
+ /**
42
+ * Возвращает `true`, если все редактируемые сегменты пусты.
43
+ */
44
+ export declare function areAllDateSegmentsEmpty(segments: DateMaskSegment[], values: Map<number, string>): boolean;
45
+ /**
46
+ * Собирает строгий Date из индексированной карты сегментов.
47
+ *
48
+ * Отсутствующие части берутся из `defaultDate`, что сохраняет обратную
49
+ * совместимость со сценариями ввода только даты или только времени.
50
+ */
51
+ export declare function indexedSegmentsToDate(segments: DateMaskSegment[], values: Map<number, string>, options?: {
52
+ defaultDate?: Date;
53
+ }): Date | null;
54
+ //# sourceMappingURL=mask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/date-segments/mask.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAmBvE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAoCpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,IAAI,mBAAmB,CAE9F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB1H;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAEzG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,GAC9B,IAAI,GAAG,IAAI,CAkCb"}
@@ -0,0 +1,4 @@
1
+ export declare function downloadFileFromObjectURL(filename: string, objectUrl: string): void;
2
+ export declare function downloadFileFromBlob(filename: string, blob: Blob): void;
3
+ export declare function downloadFileFromJson(filename: string, payload: unknown): void;
4
+ //# sourceMappingURL=downloadFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../src/dom/downloadFile.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAU5E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAGhE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAGtE"}
@@ -0,0 +1,2 @@
1
+ export declare function getOrCreatePortalRoot(id: string): HTMLElement | null;
2
+ //# sourceMappingURL=getOrCreatePortalRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrCreatePortalRoot.d.ts","sourceRoot":"","sources":["../../src/dom/getOrCreatePortalRoot.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAepE"}
@@ -0,0 +1,10 @@
1
+ export * from "./downloadFile";
2
+ export * from "./getOrCreatePortalRoot";
3
+ export * from "./useClickOutside";
4
+ export * from "./useElementHeightObserver";
5
+ export * from "./useEscapeDismiss";
6
+ export * from "./useFocusTrap";
7
+ export * from "./useIntersectionObserver";
8
+ export * from "./useIsTouchDevice";
9
+ export * from "./useOverlayFocus";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}