@ryuzaki13/react-foundation-ui 1.8.11 → 1.8.12

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 (281) hide show
  1. package/dist/chunks/defaultRenderers-u_Vep6Pj.js.map +1 -1
  2. package/dist/chunks/multi-select-DtmRtX6v.js.map +1 -1
  3. package/dist/chunks/select-MN6zDPKM.js.map +1 -1
  4. package/dist/chunks/useODataSelectBase-DR4PrY1j.js.map +1 -1
  5. package/dist/multi-select/model/useODataMultiSelect.d.ts +1 -1
  6. package/dist/multi-select/model/useODataMultiSelect.d.ts.map +1 -1
  7. package/dist/multi-select/ui/MultiSelect.d.ts +1 -1
  8. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  9. package/dist/multi-select/ui/SerializableMultiSelect.d.ts.map +1 -1
  10. package/dist/multi-select/ui/defaultRenderers.d.ts +1 -1
  11. package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -1
  12. package/dist/select/model/useODataSelect.d.ts +1 -1
  13. package/dist/select/model/useODataSelect.d.ts.map +1 -1
  14. package/dist/select/model/useODataSelectBase.d.ts +1 -1
  15. package/dist/select/model/useODataSelectBase.d.ts.map +1 -1
  16. package/dist/tree-select/index.js.map +1 -1
  17. package/dist/tree-select/model/buildODataTreeNodes.d.ts +1 -1
  18. package/dist/tree-select/model/buildODataTreeNodes.d.ts.map +1 -1
  19. package/package.json +3 -3
  20. package/storybook-static/assets/{Badge-BojMuOws.js → Badge-CveIo2LZ.js} +1 -1
  21. package/storybook-static/assets/{Badge.stories-C9gJRuIO.js → Badge.stories-Bd8M64xJ.js} +1 -1
  22. package/storybook-static/assets/{BadgeList-dNEWI7-O.js → BadgeList-xT41a0VL.js} +1 -1
  23. package/storybook-static/assets/{Button-Bbt3JzIY.js → Button-C5bBSb3k.js} +1 -1
  24. package/storybook-static/assets/{Button-CrTHXWYk.js → Button-DkDgfpHL.js} +1 -1
  25. package/storybook-static/assets/{Button.stories-BaYXOBeF.js → Button.stories-CeKPeGK5.js} +1 -1
  26. package/storybook-static/assets/{CalendarView-Dp0zus1o.js → CalendarView-CEqcrblx.js} +1 -1
  27. package/storybook-static/assets/{CheckBox-BiK9yWNt.js → CheckBox-DKeFkdOt.js} +1 -1
  28. package/storybook-static/assets/{CheckBox-UzYHaD6S.js → CheckBox-OVvAarW-.js} +1 -1
  29. package/storybook-static/assets/{CheckBox.stories-C2BOiWZj.js → CheckBox.stories-CfZ0p1yo.js} +1 -1
  30. package/storybook-static/assets/{Color-6AOWCN3U-C5S4wUlD.js → Color-6AOWCN3U-BWW7zrfs.js} +1 -1
  31. package/storybook-static/assets/{ContextMenu-BWQln_tb.js → ContextMenu-kia7is1N.js} +1 -1
  32. package/storybook-static/assets/{ContextMenu-D9EZxb7d.js → ContextMenu-xn2GtiLR.js} +1 -1
  33. package/storybook-static/assets/{ContextMenu.stories-U38zPh9_.js → ContextMenu.stories-CYuy9uXF.js} +1 -1
  34. package/storybook-static/assets/{CustomOptionButton-COIOrxQn.js → CustomOptionButton-C4w-APws.js} +1 -1
  35. package/storybook-static/assets/DateInput-BiUFIihm.js +1 -0
  36. package/storybook-static/assets/{DateInput-C-entb-r.js → DateInput-DAzE5mCE.js} +1 -1
  37. package/storybook-static/assets/{DateInput.stories-NmUXQLDU.js → DateInput.stories-BcowGCRD.js} +1 -1
  38. package/storybook-static/assets/{DateRangePresetSelect-BM1L1KOo.js → DateRangePresetSelect-CQm4dNLR.js} +1 -1
  39. package/storybook-static/assets/{DateRangePresetSelect-CAJzxaq0.js → DateRangePresetSelect-RIyqNBk9.js} +1 -1
  40. package/storybook-static/assets/{DateRangePresetSelect.stories-CC47XLnD.js → DateRangePresetSelect.stories-ypGyuGfy.js} +1 -1
  41. package/storybook-static/assets/{Detail-CDluXtts.js → Detail-CEypL2Nh.js} +1 -1
  42. package/storybook-static/assets/{Detail.stories-DjniLC4n.js → Detail.stories-DNkT7B-u.js} +1 -1
  43. package/storybook-static/assets/{Dialog-bzRSgGU7.js → Dialog-BVFFQJDH.js} +1 -1
  44. package/storybook-static/assets/{Dialog-bw6cHUsz.js → Dialog-DD0grLG3.js} +1 -1
  45. package/storybook-static/assets/{Dialog.stories-C6Rs6s_p.js → Dialog.stories-DSCypHqR.js} +1 -1
  46. package/storybook-static/assets/{Disclosure-DelA6FsQ.js → Disclosure-DauUgrev.js} +1 -1
  47. package/storybook-static/assets/{Disclosure.stories-D7yUinyb.js → Disclosure.stories-B1qB8vQZ.js} +1 -1
  48. package/storybook-static/assets/{DisclosureGroup-DbK7mU_Q.js → DisclosureGroup-D9oCCeHf.js} +1 -1
  49. package/storybook-static/assets/{DocsRenderer-JROSPFPF-v3z0zVN1.js → DocsRenderer-JROSPFPF-CmSf6tXp.js} +1 -1
  50. package/storybook-static/assets/{DropZone-Cyy-ttEO.js → DropZone-D42ueN1w.js} +1 -1
  51. package/storybook-static/assets/{DropZone-CI3NW4AC.js → DropZone-D8hbPCAv.js} +1 -1
  52. package/storybook-static/assets/{DropZone.stories-S0HSpGTB.js → DropZone.stories-DO-T_Bh4.js} +1 -1
  53. package/storybook-static/assets/{DropdownMenu-Ct1bSZsE.js → DropdownMenu-CknJDoji.js} +1 -1
  54. package/storybook-static/assets/{ExpandableActionPanel-Oj3xlasj.js → ExpandableActionPanel-Dqi_bo3c.js} +1 -1
  55. package/storybook-static/assets/{ExpandableActionPanel.stories-Ch7CLkpR.js → ExpandableActionPanel.stories-BD9QZGZN.js} +1 -1
  56. package/storybook-static/assets/{Flex-UiFm8Tkc.js → Flex-CaVn1IOP.js} +1 -1
  57. package/storybook-static/assets/{Flex.stories-CaDiVlBD.js → Flex.stories-Bp9Y6q6b.js} +1 -1
  58. package/storybook-static/assets/{FloatingPopover-CTYV9W7T.js → FloatingPopover-U7tx-Jlw.js} +1 -1
  59. package/storybook-static/assets/{FormattedTableCell-D-ysSR3p.js → FormattedTableCell-pmmhsAbN.js} +1 -1
  60. package/storybook-static/assets/{Grid-CigBXPe2.js → Grid-CEpMNurH.js} +1 -1
  61. package/storybook-static/assets/{Grid.stories-ay3z9DQZ.js → Grid.stories-BM-gO5DN.js} +1 -1
  62. package/storybook-static/assets/{ImageCropper.stories-Dkce_ugb.js → ImageCropper.stories-BWz5XU6U.js} +1 -1
  63. package/storybook-static/assets/{ImageRenderer-C9_EmGBW.js → ImageRenderer-BTYZEX5t.js} +1 -1
  64. package/storybook-static/assets/{ImageRenderer.stories-C7bXaNBI.js → ImageRenderer.stories-Dz2STM95.js} +1 -1
  65. package/storybook-static/assets/{ImageView.stories-D-ZzGlk8.js → ImageView.stories-DBVe0an3.js} +1 -1
  66. package/storybook-static/assets/{ImageViewer.stories-ItcRfxyy.js → ImageViewer.stories-C4Px97lD.js} +2 -2
  67. package/storybook-static/assets/{ImageViewerRuntime-eaupID36.js → ImageViewerRuntime-TJtlJVfa.js} +1 -1
  68. package/storybook-static/assets/{Input-op4j7Beh.js → Input-CIPgijvW.js} +1 -1
  69. package/storybook-static/assets/{Input-BUDNR96c.js → Input-D8io9jVS.js} +1 -1
  70. package/storybook-static/assets/{Input.stories-DwulvJIg.js → Input.stories-SUk3aYaC.js} +1 -1
  71. package/storybook-static/assets/{InputDateTime-B_cxOp6k.js → InputDateTime-DA5pIDuE.js} +1 -1
  72. package/storybook-static/assets/{InputDateTime.stories-BueLF4HC.js → InputDateTime.stories-DeudzDSU.js} +1 -1
  73. package/storybook-static/assets/{InputFile-C8z6TPc1.js → InputFile-C5mp5Y5I.js} +1 -1
  74. package/storybook-static/assets/{InputFile-DSg7sugm.js → InputFile-CGAC7ruP.js} +1 -1
  75. package/storybook-static/assets/{InputFile.stories-C6XSbIua.js → InputFile.stories-Cx1xQ6PE.js} +1 -1
  76. package/storybook-static/assets/{InputFiles-DoatLq3q.js → InputFiles-B7OBcPJN.js} +1 -1
  77. package/storybook-static/assets/{InputFiles-DeZ84Uu_.js → InputFiles-Hzl89Ghf.js} +1 -1
  78. package/storybook-static/assets/{InputFiles.stories-BMbE8SJU.js → InputFiles.stories-CG6QjDZH.js} +1 -1
  79. package/storybook-static/assets/{InputFilesList-CsfDDqaJ.js → InputFilesList-B6htWHF1.js} +1 -1
  80. package/storybook-static/assets/{InputImage-yJSq98EH.js → InputImage-BTa4S4Wp.js} +1 -1
  81. package/storybook-static/assets/{InputImage-D_YnB2Tw.js → InputImage-CQnoblAE.js} +1 -1
  82. package/storybook-static/assets/{InputImage.stories-nivUG307.js → InputImage.stories-CEI44Eyz.js} +1 -1
  83. package/storybook-static/assets/{InteractiveComponents-IPkC_Rkg.js → InteractiveComponents-B0ypWz1x.js} +1 -1
  84. package/storybook-static/assets/{InteractiveComponents.stories-D4VzVKZJ.js → InteractiveComponents.stories-BadApta9.js} +1 -1
  85. package/storybook-static/assets/{LayoutPicker-aMzPN5Do.js → LayoutPicker-COB9GlV_.js} +1 -1
  86. package/storybook-static/assets/{LayoutPicker-ZHkMi-LM.js → LayoutPicker-C_Uz7Tnj.js} +1 -1
  87. package/storybook-static/assets/{LayoutPicker.stories-DAzpzxn5.js → LayoutPicker.stories-Btp0IcaL.js} +1 -1
  88. package/storybook-static/assets/{Listbox-CR5nXC9J.js → Listbox-AAaZGSAl.js} +1 -1
  89. package/storybook-static/assets/{Listbox-BmfQOnrb.js → Listbox-CyfuZw7w.js} +1 -1
  90. package/storybook-static/assets/{Listbox.stories-CeOpsKxB.js → Listbox.stories-NDKQmjyQ.js} +1 -1
  91. package/storybook-static/assets/{Modal-BStp52Zo.js → Modal-BJDnJ4zv.js} +1 -1
  92. package/storybook-static/assets/{Modal.stories-CwGm5GYE.js → Modal.stories-D_X5lTLO.js} +1 -1
  93. package/storybook-static/assets/{ModalManagerProvider-B5uUXWF9.js → ModalManagerProvider-ShDjozpW.js} +1 -1
  94. package/storybook-static/assets/{MultiSelect-BDs02MZh.js → MultiSelect-B5CElQ3-.js} +1 -1
  95. package/storybook-static/assets/{MultiSelect-308npb27.js → MultiSelect-DqXfrjcH.js} +1 -1
  96. package/storybook-static/assets/{MultiSelect.stories-DRi_iTp4.js → MultiSelect.stories-fB3mcFmx.js} +1 -1
  97. package/storybook-static/assets/{NoData-ovaQEE9W.js → NoData-DDb0G7T8.js} +1 -1
  98. package/storybook-static/assets/{NotificationsHost-BpeMWhLY.js → NotificationsHost-CIGL-pKX.js} +1 -1
  99. package/storybook-static/assets/NotificationsHost.stories-B_MRb3fs.js +29 -0
  100. package/storybook-static/assets/{ODataMultiSelect-qlft9L9L.js → ODataMultiSelect-DQAitH4N.js} +1 -1
  101. package/storybook-static/assets/{ODataMultiSelect.stories-CMPIoPiy.js → ODataMultiSelect.stories-DwW221S9.js} +2 -2
  102. package/storybook-static/assets/{ODataSelect-DKBQArAK.js → ODataSelect-tiZhOIhE.js} +1 -1
  103. package/storybook-static/assets/{ODataSelect.stories-DxYIhtwe.js → ODataSelect.stories-BhaatPjK.js} +2 -2
  104. package/storybook-static/assets/{ODataTreeMultiSelect-DAt6THP3.js → ODataTreeMultiSelect-B9WqJ-Un.js} +1 -1
  105. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CBNJP0mP.js → ODataTreeMultiSelect.stories-CAfKuhfU.js} +1 -1
  106. package/storybook-static/assets/{ODataTreeSelect-Bzzt4CQC.js → ODataTreeSelect-Cel1phxZ.js} +1 -1
  107. package/storybook-static/assets/{ODataTreeSelect.stories-CWVvuqOt.js → ODataTreeSelect.stories-BpBCpBA9.js} +1 -1
  108. package/storybook-static/assets/{OneStepScroller-BY5lz8qi.js → OneStepScroller-BSeGbz02.js} +1 -1
  109. package/storybook-static/assets/{Option-Rw8xwrPg.js → Option-BBtQ3GdK.js} +1 -1
  110. package/storybook-static/assets/{OptionButton-Br48w_Zg.js → OptionButton-B9nZuqqW.js} +1 -1
  111. package/storybook-static/assets/{PeriodSelect-DxSRwKw-.js → PeriodSelect-BGvhR3to.js} +1 -1
  112. package/storybook-static/assets/{PeriodSelect-8-wpXz6w.js → PeriodSelect-DA_zjcdA.js} +1 -1
  113. package/storybook-static/assets/{PeriodSelect.stories-B-qgUzlS.js → PeriodSelect.stories-DDP1eXyM.js} +1 -1
  114. package/storybook-static/assets/{PickerTriggerActions-C5xmysFh.js → PickerTriggerActions-BgvzqRBd.js} +1 -1
  115. package/storybook-static/assets/{Popover-Ds8PUigp.js → Popover-BQql18MF.js} +1 -1
  116. package/storybook-static/assets/{Popover-NJwt_vZZ.js → Popover-C0NebUMz.js} +1 -1
  117. package/storybook-static/assets/{Popover.stories-CUOFA_Xf.js → Popover.stories-CIyDUtlz.js} +1 -1
  118. package/storybook-static/assets/{PresetRangeDateInput-DyOpbkON.js → PresetRangeDateInput-BsgzPwCV.js} +1 -1
  119. package/storybook-static/assets/{PresetRangeDateInput-Xk0bOy3S.js → PresetRangeDateInput-htbxc3ni.js} +1 -1
  120. package/storybook-static/assets/{PresetRangeDateInput.stories-CwjUlXj0.js → PresetRangeDateInput.stories-ClHM5Kah.js} +1 -1
  121. package/storybook-static/assets/{PresetSelect-Ddmr0niY.js → PresetSelect-Dcx0BOTx.js} +1 -1
  122. package/storybook-static/assets/README--LCKbep-.js +110 -0
  123. package/storybook-static/assets/{README-DRnlD7y8.js → README-5M8ajrJp.js} +1 -1
  124. package/storybook-static/assets/README-5NhzH8VL.js +95 -0
  125. package/storybook-static/assets/README-Am6Fa6-b.js +69 -0
  126. package/storybook-static/assets/README-B3bFglqG.js +82 -0
  127. package/storybook-static/assets/README-B45Cwj2a.js +95 -0
  128. package/storybook-static/assets/README-B6Nq7NCU.js +416 -0
  129. package/storybook-static/assets/{README-B4zYJg6u.js → README-B6ltJiw3.js} +1 -1
  130. package/storybook-static/assets/{README-BdPlV5nA.js → README-BB_JPejH.js} +1 -1
  131. package/storybook-static/assets/README-BIq-FXcN.js +2124 -0
  132. package/storybook-static/assets/README-BSh5XUR9.js +110 -0
  133. package/storybook-static/assets/README-BXJneZAJ.js +147 -0
  134. package/storybook-static/assets/README-BYSgTTZt.js +296 -0
  135. package/storybook-static/assets/{README-BzVni2ve.js → README-BmhhWWEk.js} +1 -1
  136. package/storybook-static/assets/README-Bqnqu1bC.js +118 -0
  137. package/storybook-static/assets/README-BuMMG4_N.js +192 -0
  138. package/storybook-static/assets/README-BxjYCoYA.js +186 -0
  139. package/storybook-static/assets/{README-MzcO5Z_P.js → README-ByALXSEH.js} +1 -1
  140. package/storybook-static/assets/README-Byo6DxIF.js +101 -0
  141. package/storybook-static/assets/README-C3UcjOGB.js +208 -0
  142. package/storybook-static/assets/README-C6BOdXNV.js +322 -0
  143. package/storybook-static/assets/README-C8E1O7DQ.js +230 -0
  144. package/storybook-static/assets/README-C9eh0JLs.js +64 -0
  145. package/storybook-static/assets/README-CAGQnLsv.js +90 -0
  146. package/storybook-static/assets/README-CC00hlZK.js +527 -0
  147. package/storybook-static/assets/README-CH_6ZIO2.js +64 -0
  148. package/storybook-static/assets/README-CHbo4O3Z.js +75 -0
  149. package/storybook-static/assets/{README-CTIBG4zH.js → README-CIGfHKKE.js} +1 -1
  150. package/storybook-static/assets/{README-BHw6MVjD.js → README-CM-7E-Jf.js} +1 -1
  151. package/storybook-static/assets/{README-C0BwTe5N.js → README-CNHemCS2.js} +1 -1
  152. package/storybook-static/assets/{README-DzTc6XmY.js → README-CWfPiPIB.js} +1 -1
  153. package/storybook-static/assets/{README-Dx3cpFMr.js → README-CeK4kfFO.js} +1 -1
  154. package/storybook-static/assets/README-Cj2e6HrF.js +178 -0
  155. package/storybook-static/assets/README-CsoHGRve.js +1844 -0
  156. package/storybook-static/assets/README-D9OypaFB.js +208 -0
  157. package/storybook-static/assets/{README-CkWglKbS.js → README-DDBqoI-T.js} +1 -1
  158. package/storybook-static/assets/README-DE2wk9-v.js +1282 -0
  159. package/storybook-static/assets/README-DEj2wSK0.js +264 -0
  160. package/storybook-static/assets/{README-D-XjRtAE.js → README-DIbfpC-2.js} +1 -1
  161. package/storybook-static/assets/{README-Dki94Nf2.js → README-DJHVgrpj.js} +1 -1
  162. package/storybook-static/assets/README-DN9HKtp_.js +124 -0
  163. package/storybook-static/assets/README-DNricOkt.js +136 -0
  164. package/storybook-static/assets/README-DV4fCpqN.js +1146 -0
  165. package/storybook-static/assets/{README-BzVHwvgo.js → README-DjCArsA5.js} +1 -1
  166. package/storybook-static/assets/README-Dl92E69Z.js +1704 -0
  167. package/storybook-static/assets/README-DnA-4W65.js +226 -0
  168. package/storybook-static/assets/README-DoCA4JXf.js +273 -0
  169. package/storybook-static/assets/{README-DqQDgJN-.js → README-DvAlDsh9.js} +1 -1
  170. package/storybook-static/assets/README-Ss-3t1nX.js +158 -0
  171. package/storybook-static/assets/README-eHCINzP3.js +154 -0
  172. package/storybook-static/assets/README-qHKxXU95.js +98 -0
  173. package/storybook-static/assets/README-tm9QH9cF.js +103 -0
  174. package/storybook-static/assets/README-ui-uanyg.js +672 -0
  175. package/storybook-static/assets/{RadioButton-oSvQ-gQh.js → RadioButton-CWtjclwT.js} +1 -1
  176. package/storybook-static/assets/{RadioButton-DWbkCY8u.js → RadioButton-YIQXt0wx.js} +1 -1
  177. package/storybook-static/assets/{RadioButton.stories-GNQ9XJZT.js → RadioButton.stories-Ah-CBpeC.js} +1 -1
  178. package/storybook-static/assets/{RadioGroup-CvXjGXcV.js → RadioGroup-BnO-GL7A.js} +1 -1
  179. package/storybook-static/assets/{RadioGroup-eBYggurL.js → RadioGroup-CUS0etBD.js} +1 -1
  180. package/storybook-static/assets/{RadioGroup.stories-C77j_cPv.js → RadioGroup.stories-DGwCawtU.js} +1 -1
  181. package/storybook-static/assets/{Scrollable-De6SdhI3.js → Scrollable-D85fA6pO.js} +1 -1
  182. package/storybook-static/assets/{Select-Bwc0bEpt.js → Select-CGCxJjL9.js} +1 -1
  183. package/storybook-static/assets/{Select-DQMoVjn4.js → Select-gRnfvfGh.js} +1 -1
  184. package/storybook-static/assets/{Select.stories-BSIJKJnM.js → Select.stories-CMwt4F9i.js} +1 -1
  185. package/storybook-static/assets/{SerializableSelect-B73irNFR.js → SerializableSelect-BLXfKJ38.js} +1 -1
  186. package/storybook-static/assets/{SerializableSelect.stories-Z9q6g5v2.js → SerializableSelect.stories-Bca1a9ZU.js} +1 -1
  187. package/storybook-static/assets/{SingleDateTimeInput-Dq9LcjnS.js → SingleDateTimeInput-CyeQN0Rd.js} +1 -1
  188. package/storybook-static/assets/{SingleDateTimeInput-BHl6srqA.js → SingleDateTimeInput-xrmZckzw.js} +1 -1
  189. package/storybook-static/assets/SingleDateTimeInput.stories-BYFTQM9z.js +48 -0
  190. package/storybook-static/assets/{Slider-BiyKexKa.js → Slider-1yJ3uVeR.js} +1 -1
  191. package/storybook-static/assets/{Slider-CvM0N_kc.js → Slider-D8GtXVGI.js} +1 -1
  192. package/storybook-static/assets/{Slider.stories-CdHAMDmY.js → Slider.stories-CyQ3ns_C.js} +1 -1
  193. package/storybook-static/assets/{SliderInput-Bx_oHUCV.js → SliderInput-BOzHhEUA.js} +1 -1
  194. package/storybook-static/assets/{SliderInput-DqHotbhB.js → SliderInput-ISSx9vH_.js} +1 -1
  195. package/storybook-static/assets/{SliderInput.stories-R5yDhghM.js → SliderInput.stories-7ooTghrS.js} +1 -1
  196. package/storybook-static/assets/{Sortable-D7pjTHO0.js → Sortable-CCLiMmfZ.js} +1 -1
  197. package/storybook-static/assets/{Sortable.stories-CVLG6pSH.js → Sortable.stories-B36szI6t.js} +1 -1
  198. package/storybook-static/assets/{Splitter-B1Du6XI2.js → Splitter-DQGhgRwx.js} +1 -1
  199. package/storybook-static/assets/{Splitter.stories-D-FRLMCc.js → Splitter.stories-Hsq1wYaq.js} +1 -1
  200. package/storybook-static/assets/{StateSelect-zl-yZibY.js → StateSelect-C6hldFgO.js} +1 -1
  201. package/storybook-static/assets/{StateSelect-BJdUEUBc.js → StateSelect-DieNn4VC.js} +1 -1
  202. package/storybook-static/assets/{StateSelect.stories-DgidR5zR.js → StateSelect.stories-CvAhDMix.js} +1 -1
  203. package/storybook-static/assets/{StringToggle.stories-IucGrtIi.js → StringToggle.stories-CUT1tvt-.js} +1 -1
  204. package/storybook-static/assets/{Switch-BJrn2lIN.js → Switch-CX9p_uYU.js} +1 -1
  205. package/storybook-static/assets/{Switch-5dCshvVo.js → Switch-nEMRtcWe.js} +1 -1
  206. package/storybook-static/assets/{Switch.stories-Dp_l3_JL.js → Switch.stories-CPsHa2_m.js} +1 -1
  207. package/storybook-static/assets/{Table-BFAEcUde.js → Table-BhtITVtj.js} +1 -1
  208. package/storybook-static/assets/{Table.stories-CohejRQv.js → Table.stories-nWNhSydG.js} +2 -2
  209. package/storybook-static/assets/{Tabs-CI32QiHf.js → Tabs-DMQFh2BJ.js} +1 -1
  210. package/storybook-static/assets/{Tabs.stories-Cr9d9ipA.js → Tabs.stories-D23_xvom.js} +1 -1
  211. package/storybook-static/assets/{TabsBox-BlDOUDMF.js → TabsBox-B5BsD_j_.js} +1 -1
  212. package/storybook-static/assets/{TagInput-YZ7eSv8W.js → TagInput-DO17z100.js} +1 -1
  213. package/storybook-static/assets/{TagInput.stories-DrOvsiI5.js → TagInput.stories-CMMFnIzb.js} +1 -1
  214. package/storybook-static/assets/{Text-DK4jN26J.js → Text-ClnbDqRk.js} +1 -1
  215. package/storybook-static/assets/{Textarea-DxPuWBZj.js → Textarea-C2IO_zsP.js} +1 -1
  216. package/storybook-static/assets/{Textarea-CFh5f_lC.js → Textarea-DkhohiNc.js} +1 -1
  217. package/storybook-static/assets/{Textarea.stories-CUeOGKYc.js → Textarea.stories-NL6Aq8Vc.js} +1 -1
  218. package/storybook-static/assets/{TimePanel-BUhFtwlb.js → TimePanel-DNEPDlSW.js} +1 -1
  219. package/storybook-static/assets/{TimePanel.stories-CpXpMBDN.js → TimePanel.stories-DlfdPsz1.js} +1 -1
  220. package/storybook-static/assets/{Toggle-BtApzBNH.js → Toggle-3U5CceQN.js} +1 -1
  221. package/storybook-static/assets/{Toggle-l2AvDbRn.js → Toggle-Cc6Ca-HI.js} +1 -1
  222. package/storybook-static/assets/{Toggle.stories-Ca8otmAa.js → Toggle.stories-BR-hVLDp.js} +1 -1
  223. package/storybook-static/assets/{TreeMultiSelect-nXC4ZB5b.js → TreeMultiSelect-B0oBc-4y.js} +1 -1
  224. package/storybook-static/assets/{TreeMultiSelect-C9QDV63L.js → TreeMultiSelect-D9hMQN2O.js} +1 -1
  225. package/storybook-static/assets/{TreeMultiSelect.stories-6STRGJbF.js → TreeMultiSelect.stories-CslpbvPR.js} +1 -1
  226. package/storybook-static/assets/{TreePickerBase-Cq7fSw3x.js → TreePickerBase-B_dMCe45.js} +1 -1
  227. package/storybook-static/assets/{TreeSelect-CITef9rp.js → TreeSelect-2lj0Q8gm.js} +1 -1
  228. package/storybook-static/assets/{TreeSelect-rMNyu_KT.js → TreeSelect-DEKNYF2b.js} +1 -1
  229. package/storybook-static/assets/{TreeSelect.stories-B-Emz9yW.js → TreeSelect.stories-CVDxn8Vm.js} +1 -1
  230. package/storybook-static/assets/{TreeTable-CLiP0td3.js → TreeTable-CBIpzYRL.js} +1 -1
  231. package/storybook-static/assets/{TreeTable.stories-DJb9qt8k.js → TreeTable.stories-BMzrr2Kc.js} +2 -2
  232. package/storybook-static/assets/{blocks-DndFRxxW.js → blocks-B5YBxaaS.js} +3 -3
  233. package/storybook-static/assets/{check-CLkTJVXe.js → check-BjtdCRaW.js} +1 -1
  234. package/storybook-static/assets/{chevron-down-miCejSEn.js → chevron-down-B4u-y8Z1.js} +1 -1
  235. package/storybook-static/assets/{chevron-left-DhQIPej2.js → chevron-left-BQfWs7Ah.js} +1 -1
  236. package/storybook-static/assets/{chevron-right-DfBBx-fr.js → chevron-right-ChokKd-f.js} +1 -1
  237. package/storybook-static/assets/{chunk-W22LQPXL-IdwKKJUw.js → chunk-W22LQPXL-meOkhzk4.js} +1 -1
  238. package/storybook-static/assets/{circle-alert-DOmVf8am.js → circle-alert-B1AnDRf_.js} +1 -1
  239. package/storybook-static/assets/{circle-check-e7eSQ2VD.js → circle-check-JYnlcC1F.js} +1 -1
  240. package/storybook-static/assets/{components-Bm4Cw8Ap.js → components-C_wl1sL5.js} +3 -3
  241. package/storybook-static/assets/{contextMenu-DpIKeJju.js → contextMenu-B-TUGs_1.js} +1 -1
  242. package/storybook-static/assets/{defaultRenderers-m21aWJXz.js → defaultRenderers-DfmnIuod.js} +1 -1
  243. package/storybook-static/assets/{download-eAKjms6q.js → download-eR3X8I-h.js} +1 -1
  244. package/storybook-static/assets/{floating-ui.react-DmilONq6.js → floating-ui.react-D95VPQ0b.js} +1 -1
  245. package/storybook-static/assets/formatters-D33Uh3si-CxrG0jsB.js +1 -0
  246. package/storybook-static/assets/foundationApi-QhHXpYLB.js +59 -0
  247. package/storybook-static/assets/foundationLib-CEAjnstw.js +30 -0
  248. package/storybook-static/assets/{hooks-RI5_2AXI.js → hooks-awde7r2r.js} +1 -1
  249. package/storybook-static/assets/iframe-DzQq_POR.js +1 -0
  250. package/storybook-static/assets/{iframe-Sr0umHM6.js → iframe-FSp_AjJa.js} +4 -4
  251. package/storybook-static/assets/{info-DhJTzwcL.js → info-12vmb1sT.js} +1 -1
  252. package/storybook-static/assets/odata-C0Kpvttz.js +1 -0
  253. package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +3 -0
  254. package/storybook-static/assets/{odataStoryFixtures-lgnWIUp7.js → odataStoryFixtures-BXZnk_C7.js} +1 -1
  255. package/storybook-static/assets/{react-YFbUKK0m.js → react-BlCqWuXr.js} +1 -1
  256. package/storybook-static/assets/{refresh-cw-C7WnxX9M.js → refresh-cw-Bf5ufPte.js} +1 -1
  257. package/storybook-static/assets/{settings-2-0NVvyKQl.js → settings-2-DR-dTXIC.js} +1 -1
  258. package/storybook-static/assets/{sortable-DDGG-Zfs.js → sortable-B5e5yb_-.js} +1 -1
  259. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-CxWm8nc8.js → syntaxhighlighter-QEQV7K2Y-EVJARTec.js} +1 -1
  260. package/storybook-static/assets/{trash-2-BnceCuhg.js → trash-2-QP7TS18H.js} +1 -1
  261. package/storybook-static/assets/{triangle-alert-MPi3GVgt.js → triangle-alert-qw19mxHr.js} +1 -1
  262. package/storybook-static/assets/{useODataSelectBase-hmjK6chS.js → useODataSelectBase-Csu_Cct9.js} +1 -1
  263. package/storybook-static/assets/useODataTreeData-BAv-Twqf.js +1 -0
  264. package/storybook-static/assets/{usePickerQuery-CtsGhieD.js → usePickerQuery-Da-XM_Y0.js} +1 -1
  265. package/storybook-static/assets/{usePickerTriggerController-EaI8W2G0.js → usePickerTriggerController-C0TdC2Pz.js} +1 -1
  266. package/storybook-static/assets/{x-CqPSvWfo.js → x-aCjYTirW.js} +1 -1
  267. package/storybook-static/iframe.html +2 -2
  268. package/storybook-static/index.json +1 -1
  269. package/storybook-static/project.json +1 -1
  270. package/storybook-static/assets/DateInput-05Iy69_a.js +0 -1
  271. package/storybook-static/assets/NotificationsHost.stories-CgbFboVD.js +0 -29
  272. package/storybook-static/assets/SingleDateTimeInput.stories-C2RuBRAF.js +0 -48
  273. package/storybook-static/assets/async-SjiCjIjO.js +0 -625
  274. package/storybook-static/assets/formatters-CBgrBeSA-CqB1pZxS.js +0 -1
  275. package/storybook-static/assets/foundationLib-DRrox3tN.js +0 -25
  276. package/storybook-static/assets/iframe-DQo-3eW2.js +0 -1
  277. package/storybook-static/assets/odata-DhISMZkE.js +0 -1
  278. package/storybook-static/assets/odata-service-B6TxBSLm-Bq8Ya67E.js +0 -3
  279. package/storybook-static/assets/odataFetchFn-Dv6Xi5CI.js +0 -763
  280. package/storybook-static/assets/persisted-CUFiw53N.js +0 -600
  281. package/storybook-static/assets/useODataTreeData-CKuavbWc.js +0 -1
@@ -0,0 +1,101 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-FSp_AjJa.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B5YBxaaS.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Currency`}),`
2
+ `,(0,c.jsxs)(t.h1,{id:`валютные-подписи-через-ryuzaki13react-foundation-libcurrency`,children:[`Валютные подписи через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/currency`})]}),`
3
+ `,(0,c.jsxs)(t.p,{children:[`Модуль связывает общий OData-параметр `,(0,c.jsx)(t.code,{children:`p_curr`}),` с отображаемой подписью показателя. Он определяет один из двух режимов валюты и добавляет соответствующий суффикс к label.`]}),`
4
+ `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
5
+ `,(0,c.jsxs)(t.ul,{children:[`
6
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5`,children:`Назначение`})}),`
7
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
8
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#currencymode`,children:(0,c.jsx)(t.code,{children:`CurrencyMode`})})}),`
9
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#resolvecurrencymodefromodataparameters`,children:(0,c.jsx)(t.code,{children:`resolveCurrencyModeFromODataParameters`})})}),`
10
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#resolvecurrencyawarelabel`,children:(0,c.jsx)(t.code,{children:`resolveCurrencyAwareLabel`})})}),`
11
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D1%8B%D0%B9-pipeline`,children:`Готовый pipeline`})}),`
12
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8`,children:`Ограничения и ошибки`})}),`
13
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#api-%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA`,children:`API-справочник`})}),`
14
+ `]}),`
15
+ `,(0,c.jsx)(t.h2,{id:`назначение`,children:`Назначение`}),`
16
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`wrapped OData params
17
+ { p_curr: { value: true } }
18
+
19
+
20
+ CurrencyMode "rub"
21
+
22
+
23
+ "Выручка" + ["за тн", "руб/тн"]
24
+
25
+
26
+ "Выручка руб/тн"
27
+ `})}),`
28
+ `,(0,c.jsxs)(t.p,{children:[`Модуль не форматирует денежное число, не конвертирует валюту и не строит OData query. Для чисел используйте `,(0,c.jsx)(t.code,{children:`/formatters`}),`, для OData params — `,(0,c.jsx)(t.code,{children:`/odata-service`}),`.`]}),`
29
+ `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
30
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { resolveCurrencyAwareLabel, resolveCurrencyModeFromODataParameters } from "@ryuzaki13/react-foundation-lib/currency";
31
+
32
+ import type { CurrencyMode } from "@ryuzaki13/react-foundation-lib/currency";
33
+ `})}),`
34
+ `,(0,c.jsxs)(t.p,{children:[`Модуль ESM, не требует React или browser API. Параметры должны иметь публичную wrapped-форму из `,(0,c.jsx)(t.code,{children:`/odata-service`}),`.`]}),`
35
+ `,(0,c.jsx)(t.h2,{id:`currencymode`,children:(0,c.jsx)(t.code,{children:`CurrencyMode`})}),`
36
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type CurrencyMode = "internal" | "rub";
37
+ `})}),`
38
+ `,(0,c.jsxs)(t.ul,{children:[`
39
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`internal`}),` — внутренний режим;`]}),`
40
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`rub`}),` — рублёвый режим.`]}),`
41
+ `]}),`
42
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`null`}),` используется resolver-функцией, когда режим определить нельзя.`]}),`
43
+ `,(0,c.jsx)(t.h2,{id:`resolvecurrencymodefromodataparameters`,children:(0,c.jsx)(t.code,{children:`resolveCurrencyModeFromODataParameters`})}),`
44
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const mode = resolveCurrencyModeFromODataParameters(params);
45
+ `})}),`
46
+ `,(0,c.jsxs)(t.p,{children:[`Функция читает только собственное поле `,(0,c.jsx)(t.code,{children:`p_curr.value`}),`:`]}),`
47
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Вход`}),(0,c.jsx)(t.th,{children:`Результат`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`параметров нет`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`null`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[`поля `,(0,c.jsx)(t.code,{children:`p_curr`}),` нет`]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`null`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ p_curr: { value: false } }`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`"internal"`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ p_curr: { value: true } }`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`"rub"`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ p_curr: { value: "true" } }`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`null`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ p_curr: { value: 1 } }`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`null`})})]})]})]}),`
48
+ `,(0,c.jsxs)(t.p,{children:[`Строка `,(0,c.jsx)(t.code,{children:`"true"`}),` намеренно не приводится к boolean. Нормализуйте внешний payload на OData boundary, а не внутри UI label.`]}),`
49
+ `,(0,c.jsxs)(t.p,{children:[`Пример с helper `,(0,c.jsx)(t.code,{children:`/odata-service`}),`:`]}),`
50
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { wrapODataParams } from "@ryuzaki13/react-foundation-lib/odata-service";
51
+
52
+ const params = wrapODataParams({ p_curr: true });
53
+ const mode = resolveCurrencyModeFromODataParameters(params);
54
+ // "rub".
55
+ `})}),`
56
+ `,(0,c.jsx)(t.h2,{id:`resolvecurrencyawarelabel`,children:(0,c.jsx)(t.code,{children:`resolveCurrencyAwareLabel`})}),`
57
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const label = resolveCurrencyAwareLabel("Выручка", ["за тн", "руб/тн"], "rub");
58
+ // "Выручка руб/тн".
59
+ `})}),`
60
+ `,(0,c.jsxs)(t.p,{children:[`Пара `,(0,c.jsx)(t.code,{children:`currencyLabels`}),` имеет фиксированный смысл:`]}),`
61
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`readonly[(internalLabel, rubLabel)];
62
+ `})}),`
63
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Mode`}),(0,c.jsx)(t.th,{style:{textAlign:`right`},children:`Индекс суффикса`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`internal`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`0`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rub`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`1`})]})]})]}),`
64
+ `,(0,c.jsx)(t.p,{children:`Точные правила:`}),`
65
+ `,(0,c.jsxs)(t.ul,{children:[`
66
+ `,(0,c.jsxs)(t.li,{children:[`без `,(0,c.jsx)(t.code,{children:`currencyLabels`}),` возвращается исходный `,(0,c.jsx)(t.code,{children:`label`}),`;`]}),`
67
+ `,(0,c.jsxs)(t.li,{children:[`при `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` mode возвращается исходный `,(0,c.jsx)(t.code,{children:`label`}),`;`]}),`
68
+ `,(0,c.jsxs)(t.li,{children:[`суффикс обрезается через `,(0,c.jsx)(t.code,{children:`trim()`}),`;`]}),`
69
+ `,(0,c.jsx)(t.li,{children:`пустой суффикс не добавляется;`}),`
70
+ `,(0,c.jsx)(t.li,{children:`обычно между label и суффиксом добавляется один пробел;`}),`
71
+ `,(0,c.jsx)(t.li,{children:`если обрезанный суффикс начинается с запятой, дополнительный пробел не добавляется.`}),`
72
+ `]}),`
73
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`resolveCurrencyAwareLabel("Выручка", [", за тн", ", руб/тн"], "rub");
74
+ // "Выручка, руб/тн".
75
+
76
+ resolveCurrencyAwareLabel("Выручка", ["", " "], "rub");
77
+ // "Выручка".
78
+ `})}),`
79
+ `,(0,c.jsxs)(t.p,{children:[`Исходный `,(0,c.jsx)(t.code,{children:`label`}),` не обрезается и не нормализуется.`]}),`
80
+ `,(0,c.jsx)(t.h2,{id:`готовый-pipeline`,children:`Готовый pipeline`}),`
81
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function buildMetricLabel(
82
+ baseLabel: string,
83
+ currencyLabels: readonly [string, string] | undefined,
84
+ params: WrappedODataParameters | undefined
85
+ ) {
86
+ const mode = resolveCurrencyModeFromODataParameters(params);
87
+ return resolveCurrencyAwareLabel(baseLabel, currencyLabels, mode);
88
+ }
89
+ `})}),`
90
+ `,(0,c.jsx)(t.p,{children:`Resolver чистый: одинаковый вход даёт одинаковую строку и не меняет params/labels.`}),`
91
+ `,(0,c.jsx)(t.h2,{id:`ограничения-и-ошибки`,children:`Ограничения и ошибки`}),`
92
+ `,(0,c.jsxs)(t.ul,{children:[`
93
+ `,(0,c.jsxs)(t.li,{children:[`Поддерживается только параметр с точным id `,(0,c.jsx)(t.code,{children:`p_curr`}),`.`]}),`
94
+ `,(0,c.jsxs)(t.li,{children:[`Поддерживаются только два режима; код валюты `,(0,c.jsx)(t.code,{children:`USD`}),`, `,(0,c.jsx)(t.code,{children:`EUR`}),` и exchange rate не обрабатываются.`]}),`
95
+ `,(0,c.jsx)(t.li,{children:`Функция не проверяет грамматику и единицы измерения.`}),`
96
+ `,(0,c.jsxs)(t.li,{children:[`Запятая должна входить в сам суффикс, если нужна форма `,(0,c.jsx)(t.code,{children:`"Выручка, руб"`}),`.`]}),`
97
+ `,(0,c.jsxs)(t.li,{children:[`Не передавайте плоский `,(0,c.jsx)(t.code,{children:`{ p_curr: true }`}),`: ожидается `,(0,c.jsx)(t.code,{children:`{ p_curr: { value: true } }`}),`.`]}),`
98
+ `,(0,c.jsx)(t.li,{children:`Не используйте label helper для финансовых вычислений.`}),`
99
+ `]}),`
100
+ `,(0,c.jsx)(t.h2,{id:`api-справочник`,children:`API-справочник`}),`
101
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Export`}),(0,c.jsx)(t.th,{children:`Результат`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`CurrencyMode`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`"internal" | "rub"`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveCurrencyModeFromODataParameters`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`CurrencyMode | null`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveCurrencyAwareLabel`})}),(0,c.jsx)(t.td,{children:`Итоговая display-строка`})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
@@ -0,0 +1,208 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-FSp_AjJa.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B5YBxaaS.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Date/Segments`}),`
2
+ `,(0,c.jsxs)(t.h1,{id:`сегменты-даты-и-времени-через-ryuzaki13react-foundation-libdate-segments`,children:[`Сегменты даты и времени через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/date-segments`})]}),`
3
+ `,(0,c.jsxs)(t.p,{children:[`Модуль разбирает строковую маску на редактируемые сегменты и литералы, преобразует `,(0,c.jsx)(t.code,{children:`Date`}),` в значения полей и строго собирает `,(0,c.jsx)(t.code,{children:`Date`}),` обратно. Он предназначен для segment-based date/time inputs.`]}),`
4
+ `,(0,c.jsx)(t.p,{children:`Документ объясняет маски, индексы, local time, двухзначный год, неполный ввод и все публичные типы.`}),`
5
+ `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
6
+ `,(0,c.jsxs)(t.ul,{children:[`
7
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B`,children:`Назначение и границы`})}),`
8
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
9
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F`,children:`Базовые понятия`})}),`
10
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-tokens`,children:`Поддерживаемые tokens`})}),`
11
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#parsedatesegmentmask`,children:(0,c.jsx)(t.code,{children:`parseDateSegmentMask`})})}),`
12
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#iseditabledatesegment`,children:(0,c.jsx)(t.code,{children:`isEditableDateSegment`})})}),`
13
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#datetoindexedsegmentvalues`,children:(0,c.jsx)(t.code,{children:`dateToIndexedSegmentValues`})})}),`
14
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#arealldatesegmentsempty`,children:(0,c.jsx)(t.code,{children:`areAllDateSegmentsEmpty`})})}),`
15
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#indexedsegmentstodate`,children:(0,c.jsx)(t.code,{children:`indexedSegmentsToDate`})})}),`
16
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9-input-pipeline`,children:`Полный input pipeline`})}),`
17
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#local-time-%D0%B8-%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D0%BD%D0%B0%D1%8F-%D1%81%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D0%BA%D0%B0`,children:`Local time и календарная семантика`})}),`
18
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#api-%D0%B8-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8`,children:`API и ошибки`})}),`
19
+ `]}),`
20
+ `,(0,c.jsx)(t.h2,{id:`назначение-и-границы`,children:`Назначение и границы`}),`
21
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`"dd.MM.yyyy HH:mm"
22
+ │ parseDateSegmentMask
23
+
24
+ [day, ".", month, ".", year, " ", hours, ":", minutes]
25
+ │ пользователь вводит значения по индексам
26
+
27
+ Map { 0:"03", 2:"03", 4:"2026", 6:"18", 8:"03" }
28
+ │ indexedSegmentsToDate
29
+
30
+ new Date(2026, 2, 3, 18, 3)
31
+ `})}),`
32
+ `,(0,c.jsxs)(t.p,{children:[`Модуль не рендерит input, не управляет focus/caret, не форматирует итоговую дату для UI/backend и не парсит ISO/OData строку. Для общего парсинга/форматирования используйте `,(0,c.jsx)(t.code,{children:`/formatters`}),`.`]}),`
33
+ `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
34
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
35
+ areAllDateSegmentsEmpty,
36
+ dateToIndexedSegmentValues,
37
+ indexedSegmentsToDate,
38
+ isEditableDateSegment,
39
+ parseDateSegmentMask
40
+ } from "@ryuzaki13/react-foundation-lib/date-segments";
41
+
42
+ import type {
43
+ DateMaskSegment,
44
+ DateSegmentId,
45
+ EditableDateSegment,
46
+ LiteralDateSegment
47
+ } from "@ryuzaki13/react-foundation-lib/date-segments";
48
+ `})}),`
49
+ `,(0,c.jsxs)(t.p,{children:[`Модуль не зависит от React/DOM и использует локальные getters/constructor стандартного `,(0,c.jsx)(t.code,{children:`Date`}),`.`]}),`
50
+ `,(0,c.jsx)(t.h2,{id:`базовые-понятия`,children:`Базовые понятия`}),`
51
+ `,(0,c.jsx)(t.p,{children:`Маска состоит из двух видов сегментов.`}),`
52
+ `,(0,c.jsx)(t.p,{children:`Editable segment:`}),`
53
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface EditableDateSegment {
54
+ kind: "editable";
55
+ id: DateSegmentId;
56
+ token: string;
57
+ length: number;
58
+ min: number;
59
+ max: number;
60
+ placeholder: string;
61
+ ariaLabel: string;
62
+ }
63
+ `})}),`
64
+ `,(0,c.jsx)(t.p,{children:`Literal segment:`}),`
65
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface LiteralDateSegment {
66
+ kind: "literal";
67
+ text: string;
68
+ }
69
+ `})}),`
70
+ `,(0,c.jsx)(t.p,{children:`Литералы — точки, двоеточия, пробелы, слова и неподдерживаемые символы маски. Они показываются пользователю, но не имеют редактируемого значения.`}),`
71
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`DateMaskSegment`}),` — discriminated union. Поле `,(0,c.jsx)(t.code,{children:`kind`}),` позволяет безопасно сузить тип.`]}),`
72
+ `,(0,c.jsx)(t.h2,{id:`поддерживаемые-tokens`,children:`Поддерживаемые tokens`}),`
73
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Token`}),(0,c.jsx)(t.th,{children:(0,c.jsx)(t.code,{children:`id`})}),(0,c.jsx)(t.th,{style:{textAlign:`right`},children:`Длина`}),(0,c.jsx)(t.th,{children:`Диапазон`}),(0,c.jsx)(t.th,{children:`Placeholder`}),(0,c.jsx)(t.th,{children:`ARIA label`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`YYYY`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`year`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`4`}),(0,c.jsx)(t.td,{children:`1–9999`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ГГГГ`})}),(0,c.jsx)(t.td,{children:`Год`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`yyyy`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`year`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`4`}),(0,c.jsx)(t.td,{children:`1–9999`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`гггг`})}),(0,c.jsx)(t.td,{children:`Год`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`yy`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`year`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`0–99`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`гг`})}),(0,c.jsx)(t.td,{children:`Год`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`MM`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`month`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`1–12`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`мм`})}),(0,c.jsx)(t.td,{children:`Месяц`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`DD`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`day`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`1–31`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ДД`})}),(0,c.jsx)(t.td,{children:`День`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`dd`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`day`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`1–31`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`дд`})}),(0,c.jsx)(t.td,{children:`День`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`hh`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`hours`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`0–23`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`чч`})}),(0,c.jsx)(t.td,{children:`Часы`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`HH`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`hours`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`0–23`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`чч`})}),(0,c.jsx)(t.td,{children:`Часы`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`mm`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`minutes`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`0–59`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`мм`})}),(0,c.jsx)(t.td,{children:`Минуты`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ss`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`seconds`})}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2`}),(0,c.jsx)(t.td,{children:`0–59`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`сс`})}),(0,c.jsx)(t.td,{children:`Секунды`})]})]})]}),`
74
+ `,(0,c.jsx)(t.p,{children:`Обратите внимание:`}),`
75
+ `,(0,c.jsxs)(t.ul,{children:[`
76
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`MM`}),` — месяц, `,(0,c.jsx)(t.code,{children:`mm`}),` — минуты;`]}),`
77
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`dd`}),`/`,(0,c.jsx)(t.code,{children:`DD`}),` — день;`]}),`
78
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`hh`}),` и `,(0,c.jsx)(t.code,{children:`HH`}),` оба означают 24-часовой диапазон `,(0,c.jsx)(t.code,{children:`0..23`}),`;`]}),`
79
+ `,(0,c.jsxs)(t.li,{children:[`одиночные `,(0,c.jsx)(t.code,{children:`d`}),`, `,(0,c.jsx)(t.code,{children:`M`}),`, `,(0,c.jsx)(t.code,{children:`H`}),`, `,(0,c.jsx)(t.code,{children:`m`}),`, `,(0,c.jsx)(t.code,{children:`s`}),` не являются tokens и станут literal text;`]}),`
80
+ `,(0,c.jsx)(t.li,{children:`tokens регистрозависимы.`}),`
81
+ `]}),`
82
+ `,(0,c.jsx)(t.h2,{id:`parsedatesegmentmask`,children:(0,c.jsx)(t.code,{children:`parseDateSegmentMask`})}),`
83
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const segments = parseDateSegmentMask("dd.MM.yyyy HH:mm");
84
+ `})}),`
85
+ `,(0,c.jsx)(t.p,{children:`Результат:`}),`
86
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`[
87
+ { kind: "editable", id: "day", token: "dd", length: 2 /* ... */ },
88
+ { kind: "literal", text: "." },
89
+ { kind: "editable", id: "month", token: "MM", length: 2 /* ... */ },
90
+ { kind: "literal", text: "." },
91
+ { kind: "editable", id: "year", token: "yyyy", length: 4 /* ... */ },
92
+ { kind: "literal", text: " " },
93
+ { kind: "editable", id: "hours", token: "HH", length: 2 /* ... */ },
94
+ { kind: "literal", text: ":" },
95
+ { kind: "editable", id: "minutes", token: "mm", length: 2 /* ... */ }
96
+ ];
97
+ `})}),`
98
+ `,(0,c.jsx)(t.p,{children:`Соседние literal characters объединяются в один segment:`}),`
99
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`parseDateSegmentMask("Дата: dd");
100
+ // literal "Дата: ", затем editable day.
101
+ `})}),`
102
+ `,(0,c.jsxs)(t.p,{children:[`Пустая маска возвращает пустой массив. Parser не валидирует обязательность года/месяца/дня и допускает повтор одного `,(0,c.jsx)(t.code,{children:`id`}),`; корректный набор задаёт host.`]}),`
103
+ `,(0,c.jsx)(t.h2,{id:`iseditabledatesegment`,children:(0,c.jsx)(t.code,{children:`isEditableDateSegment`})}),`
104
+ `,(0,c.jsx)(t.p,{children:`Type guard:`}),`
105
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const editable = segments.filter(isEditableDateSegment);
106
+ // EditableDateSegment[].
107
+ `})}),`
108
+ `,(0,c.jsxs)(t.p,{children:[`Он проверяет только `,(0,c.jsx)(t.code,{children:`segment.kind === "editable"`}),` и рассчитан на значения, полученные из parser или соответствующие публичному типу.`]}),`
109
+ `,(0,c.jsx)(t.h2,{id:`datetoindexedsegmentvalues`,children:(0,c.jsx)(t.code,{children:`dateToIndexedSegmentValues`})}),`
110
+ `,(0,c.jsxs)(t.p,{children:[`Функция создаёт `,(0,c.jsx)(t.code,{children:`Map<number, string>`}),`, где key — индекс segment в полном массиве, включая literals.`]}),`
111
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const segments = parseDateSegmentMask("dd.MM.yyyy HH:mm");
112
+ const values = dateToIndexedSegmentValues(new Date(2026, 2, 3, 18, 3), segments);
113
+
114
+ console.log([...values.entries()]);
115
+ // [[0,"03"], [2,"03"], [4,"2026"], [6,"18"], [8,"03"]]
116
+ `})}),`
117
+ `,(0,c.jsxs)(t.p,{children:[`Индексы `,(0,c.jsx)(t.code,{children:`1`}),`, `,(0,c.jsx)(t.code,{children:`3`}),`, `,(0,c.jsx)(t.code,{children:`5`}),`, `,(0,c.jsx)(t.code,{children:`7`}),` отсутствуют, потому что это literals.`]}),`
118
+ `,(0,c.jsxs)(t.p,{children:[`Для `,(0,c.jsx)(t.code,{children:`null`}),`, `,(0,c.jsx)(t.code,{children:`undefined`}),` или invalid `,(0,c.jsx)(t.code,{children:`Date`}),` каждая editable позиция получает `,(0,c.jsx)(t.code,{children:`""`}),`:`]}),`
119
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`dateToIndexedSegmentValues(null, segments);
120
+ dateToIndexedSegmentValues(new Date("bad"), segments);
121
+ `})}),`
122
+ `,(0,c.jsx)(t.p,{children:`Двухзначный year берёт последние две цифры полного года. Значения дополняются нулями слева до длины segment.`}),`
123
+ `,(0,c.jsx)(t.h2,{id:`arealldatesegmentsempty`,children:(0,c.jsx)(t.code,{children:`areAllDateSegmentsEmpty`})}),`
124
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const empty = areAllDateSegmentsEmpty(segments, values);
125
+ `})}),`
126
+ `,(0,c.jsxs)(t.p,{children:[`Возвращает `,(0,c.jsx)(t.code,{children:`true`}),`, если у каждого editable segment значение отсутствует или является пустой строкой.`]}),`
127
+ `,(0,c.jsx)(t.p,{children:`Literal segments игнорируются. Строка из пробелов truthy и считается заполненной. Функция не проверяет длину/числовой формат.`}),`
128
+ `,(0,c.jsx)(t.h2,{id:`indexedsegmentstodate`,children:(0,c.jsx)(t.code,{children:`indexedSegmentsToDate`})}),`
129
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const date = indexedSegmentsToDate(segments, values);
130
+ `})}),`
131
+ `,(0,c.jsxs)(t.p,{children:[`Возвращает строгий valid `,(0,c.jsx)(t.code,{children:`Date`}),` или `,(0,c.jsx)(t.code,{children:`null`}),`.`]}),`
132
+ `,(0,c.jsx)(t.h3,{id:`полный-ввод`,children:`Полный ввод`}),`
133
+ `,(0,c.jsxs)(t.p,{children:[`Каждый editable segment должен иметь строку длиной не меньше `,(0,c.jsx)(t.code,{children:`segment.length`}),`:`]}),`
134
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`values.set(dayIndex, "3"); // Для token dd длины недостаточно.
135
+ indexedSegmentsToDate(segments, values); // null.
136
+ `})}),`
137
+ `,(0,c.jsxs)(t.p,{children:[`Проверка длины не гарантирует numeric input. `,(0,c.jsx)(t.code,{children:`"ab"`}),` пройдёт length-check, но `,(0,c.jsx)(t.code,{children:`parseInt`}),` не даст valid component и итог будет `,(0,c.jsx)(t.code,{children:`null`}),`.`]}),`
138
+ `,(0,c.jsx)(t.h3,{id:`календарная-строгость`,children:`Календарная строгость`}),`
139
+ `,(0,c.jsxs)(t.p,{children:[`После сборки компоненты сверяются с полученным `,(0,c.jsx)(t.code,{children:`Date`}),`:`]}),`
140
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`// 31 февраля не превращается автоматически в март.
141
+ indexedSegmentsToDate(segments, february31Values); // null.
142
+
143
+ // 24:00 не принимается.
144
+ indexedSegmentsToDate(segments, hour24Values); // null.
145
+ `})}),`
146
+ `,(0,c.jsxs)(t.p,{children:[`Проверяются month `,(0,c.jsx)(t.code,{children:`1..12`}),`, day `,(0,c.jsx)(t.code,{children:`1..31`}),`, hours `,(0,c.jsx)(t.code,{children:`0..23`}),`, minutes/seconds `,(0,c.jsx)(t.code,{children:`0..59`}),`, а затем реальная календарная дата.`]}),`
147
+ `,(0,c.jsxs)(t.h3,{id:`отсутствующие-части-и-defaultdate`,children:[`Отсутствующие части и `,(0,c.jsx)(t.code,{children:`defaultDate`})]}),`
148
+ `,(0,c.jsxs)(t.p,{children:[`Если маска не содержит некоторый тип segment, компонент берётся из `,(0,c.jsx)(t.code,{children:`defaultDate`}),`:`]}),`
149
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const timeSegments = parseDateSegmentMask("HH:mm");
150
+ const values = new Map([
151
+ [0, "09"],
152
+ [2, "15"]
153
+ ]);
154
+
155
+ const result = indexedSegmentsToDate(timeSegments, values, {
156
+ defaultDate: new Date(2026, 2, 3, 18, 3)
157
+ });
158
+ // 3 марта 2026, 09:15 local time.
159
+ `})}),`
160
+ `,(0,c.jsxs)(t.p,{children:[`Default fallback без options — `,(0,c.jsx)(t.code,{children:`new Date(1970, 0, 1, 0, 0, 0, 0)`}),` в local timezone.`]}),`
161
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`defaultDate`}),` не валидируется отдельно. Invalid fallback обычно приведёт к `,(0,c.jsx)(t.code,{children:`null`}),` после итоговой проверки.`]}),`
162
+ `,(0,c.jsx)(t.h3,{id:`двухзначный-год`,children:`Двухзначный год`}),`
163
+ `,(0,c.jsxs)(t.p,{children:[`Для token `,(0,c.jsx)(t.code,{children:`yy`}),`:`]}),`
164
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Ввод`}),(0,c.jsx)(t.th,{style:{textAlign:`right`},children:`Полный год`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`00`}),`–`,(0,c.jsx)(t.code,{children:`69`})]}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`2000–2069`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`70`}),`–`,(0,c.jsx)(t.code,{children:`99`})]}),(0,c.jsx)(t.td,{style:{textAlign:`right`},children:`1970–1999`})]})]})]}),`
165
+ `,(0,c.jsx)(t.p,{children:`Порог фиксирован и не зависит от текущего года.`}),`
166
+ `,(0,c.jsx)(t.h2,{id:`полный-input-pipeline`,children:`Полный input pipeline`}),`
167
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`const segments = parseDateSegmentMask("dd.MM.yyyy");
168
+ const [values, setValues] = useState(() => dateToIndexedSegmentValues(initialDate, segments));
169
+
170
+ function updateSegment(index: number, value: string) {
171
+ setValues((current) => {
172
+ const next = new Map(current);
173
+ next.set(index, value);
174
+ return next;
175
+ });
176
+ }
177
+
178
+ function commit() {
179
+ if (areAllDateSegmentsEmpty(segments, values)) {
180
+ onChange(null);
181
+ return;
182
+ }
183
+
184
+ const nextDate = indexedSegmentsToDate(segments, values);
185
+ if (nextDate === null) {
186
+ showValidationError("Введите корректную дату");
187
+ return;
188
+ }
189
+
190
+ onChange(nextDate);
191
+ }
192
+ `})}),`
193
+ `,(0,c.jsxs)(t.p,{children:[`UI самостоятельно отвечает за digits-only input, `,(0,c.jsx)(t.code,{children:`aria-label`}),`, focus movement, paste, validation message и controlled state.`]}),`
194
+ `,(0,c.jsx)(t.h2,{id:`local-time-и-календарная-семантика`,children:`Local time и календарная семантика`}),`
195
+ `,(0,c.jsxs)(t.p,{children:[`Функции используют `,(0,c.jsx)(t.code,{children:`getFullYear`}),`, `,(0,c.jsx)(t.code,{children:`getMonth`}),`, `,(0,c.jsx)(t.code,{children:`getDate`}),`, `,(0,c.jsx)(t.code,{children:`getHours`}),` и `,(0,c.jsx)(t.code,{children:`new Date(year, ...)`}),`. Это local calendar/time, а не UTC.`]}),`
196
+ `,(0,c.jsx)(t.p,{children:`Не смешивайте segment input с автоматическим timezone conversion. Перед отправкой в OData/backend примените formatter, соответствующий контракту API.`}),`
197
+ `,(0,c.jsx)(t.h2,{id:`api-и-ошибки`,children:`API и ошибки`}),`
198
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Export`}),(0,c.jsx)(t.th,{children:`Результат`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`parseDateSegmentMask`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`DateMaskSegment[]`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`isEditableDateSegment`})}),(0,c.jsx)(t.td,{children:`Type guard`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`dateToIndexedSegmentValues`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`Map<number, string>`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`areAllDateSegmentsEmpty`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`boolean`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`indexedSegmentsToDate`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`Date | null`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`DateSegmentId`})}),(0,c.jsx)(t.td,{children:`year/month/day/hours/minutes/seconds`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`EditableDateSegment`})}),(0,c.jsx)(t.td,{children:`Metadata редактируемого segment`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`LiteralDateSegment`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ kind: "literal"; text: string }`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`DateMaskSegment`})}),(0,c.jsx)(t.td,{children:`Union editable/literal`})]})]})]}),`
199
+ `,(0,c.jsx)(t.p,{children:`Типичные ошибки:`}),`
200
+ `,(0,c.jsxs)(t.ul,{children:[`
201
+ `,(0,c.jsxs)(t.li,{children:[`Перепутать `,(0,c.jsx)(t.code,{children:`MM`}),` и `,(0,c.jsx)(t.code,{children:`mm`}),`.`]}),`
202
+ `,(0,c.jsx)(t.li,{children:`Хранить values по порядковому номеру editable fields вместо полного segment index.`}),`
203
+ `,(0,c.jsxs)(t.li,{children:[`Передать однозначную строку `,(0,c.jsx)(t.code,{children:`"3"`}),` для token длины `,(0,c.jsx)(t.code,{children:`2`}),` и ожидать автодополнение при сборке.`]}),`
204
+ `,(0,c.jsx)(t.li,{children:`Ожидать UTC.`}),`
205
+ `,(0,c.jsxs)(t.li,{children:[`Считать `,(0,c.jsx)(t.code,{children:`min/max`}),` metadata заменой UI input validation.`]}),`
206
+ `,(0,c.jsx)(t.li,{children:`Использовать произвольную маску с повторяющимися year/month segments.`}),`
207
+ `,(0,c.jsx)(t.li,{children:`Нормализовать пользовательский partial draft до команды commit.`}),`
208
+ `]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};