@ryuzaki13/react-foundation-ui 1.8.6 → 1.8.8

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 (313) hide show
  1. package/dist/advanced-search/index.js +2 -2
  2. package/dist/base-table/index.js +1 -1
  3. package/dist/chunks/{base-table-CYbtifH0.js → base-table-CdcVMDGY.js} +2 -2
  4. package/dist/chunks/{base-table-CYbtifH0.js.map → base-table-CdcVMDGY.js.map} +1 -1
  5. package/dist/chunks/{context-menu-L4KM0FRD.js → context-menu-CE_wfxct.js} +2 -2
  6. package/dist/chunks/{context-menu-L4KM0FRD.js.map → context-menu-CE_wfxct.js.map} +1 -1
  7. package/dist/chunks/date-input-g6l1iDmf.js.map +1 -1
  8. package/dist/chunks/{multi-select-CCgoTHWI.js → multi-select-CHZhWoq6.js} +2 -2
  9. package/dist/chunks/{multi-select-CCgoTHWI.js.map → multi-select-CHZhWoq6.js.map} +1 -1
  10. package/dist/chunks/{picker-Cb3D2Hts.js → picker-BcB3rSQt.js} +2 -2
  11. package/dist/chunks/picker-BcB3rSQt.js.map +1 -0
  12. package/dist/chunks/{select-Baek-IUe.js → select-BorNxjrG.js} +2 -2
  13. package/dist/chunks/{select-Baek-IUe.js.map → select-BorNxjrG.js.map} +1 -1
  14. package/dist/chunks/{table-CrQiurtA.js → table-DcABGh_F.js} +2 -2
  15. package/dist/chunks/{table-CrQiurtA.js.map → table-DcABGh_F.js.map} +1 -1
  16. package/dist/context-menu/index.js +1 -1
  17. package/dist/layout-picker/index.js +1 -1
  18. package/dist/listbox/index.js +1 -1
  19. package/dist/multi-select/index.js +1 -1
  20. package/dist/picker/index.js +1 -1
  21. package/dist/preset-select/index.js +1 -1
  22. package/dist/select/index.js +1 -1
  23. package/dist/simple-table/index.js +1 -1
  24. package/dist/slider/index.js +1 -1
  25. package/dist/state-select/index.js +1 -1
  26. package/dist/styles.css +1 -1
  27. package/dist/table/index.js +1 -1
  28. package/dist/table-sorting/index.js +1 -1
  29. package/dist/tree-select/index.js +1 -1
  30. package/dist/tree-table/index.js +1 -1
  31. package/package.json +4 -4
  32. package/storybook-static/assets/{Badge-CV8uR5lW.js → Badge-CxQIV1VM.js} +1 -1
  33. package/storybook-static/assets/{Badge.stories-DqTFDEB6.js → Badge.stories-BJkImUYK.js} +1 -1
  34. package/storybook-static/assets/{BadgeList-CVWvhSS7.js → BadgeList-DCcUez-d.js} +1 -1
  35. package/storybook-static/assets/{Button-C5Z6nJ9s.js → Button-BM_JnsIi.js} +1 -1
  36. package/storybook-static/assets/{Button-DtySOeyD.js → Button-Dh35R_JE.js} +1 -1
  37. package/storybook-static/assets/{Button.stories--Wr67DaY.js → Button.stories-BsgEwN-G.js} +1 -1
  38. package/storybook-static/assets/{CalendarView-ZzqQ8UIe.js → CalendarView-Bu5aaqrw.js} +1 -1
  39. package/storybook-static/assets/{CheckBox-BfNP6vO6.js → CheckBox-B93BCdtW.js} +1 -1
  40. package/storybook-static/assets/{CheckBox-BBNTe4u8.js → CheckBox-DB_H7Jkd.js} +1 -1
  41. package/storybook-static/assets/{CheckBox.module-CoYygdZx.js → CheckBox.module-BOAVN-Ny.js} +1 -1
  42. package/storybook-static/assets/{CheckBox.stories-B4Sv2TXp.js → CheckBox.stories-ChtE7IN-.js} +1 -1
  43. package/storybook-static/assets/{Color-6AOWCN3U-Ce5w8Y2l.js → Color-6AOWCN3U-CuY1qZ6d.js} +1 -1
  44. package/storybook-static/assets/{ContextMenu-Boi0R7-s.js → ContextMenu-B30yur26.js} +1 -1
  45. package/storybook-static/assets/{ContextMenu-D-lV53Zc.js → ContextMenu-DeoYEX8n.js} +1 -1
  46. package/storybook-static/assets/{ContextMenu.stories-D_rxDbLk.js → ContextMenu.stories-B80uu025.js} +1 -1
  47. package/storybook-static/assets/{CustomOptionButton-VYfjUfhW.js → CustomOptionButton-DQp71AHJ.js} +1 -1
  48. package/storybook-static/assets/{DateInput-f-RcBdOb.js → DateInput-CMhHGS-s.js} +1 -1
  49. package/storybook-static/assets/{DateInput-q2hPsJcH.js → DateInput-wIlcdKHD.js} +1 -1
  50. package/storybook-static/assets/{DateInput.stories-zQzjIsfx.js → DateInput.stories-DS45syC3.js} +1 -1
  51. package/storybook-static/assets/{DateRangePresetSelect-DQBOF8f5.js → DateRangePresetSelect-31S_37_9.js} +1 -1
  52. package/storybook-static/assets/{DateRangePresetSelect-Ciikik1_.js → DateRangePresetSelect-DgpOHDW1.js} +1 -1
  53. package/storybook-static/assets/{DateRangePresetSelect.stories-BF8IP5Ep.js → DateRangePresetSelect.stories-3VlGka98.js} +1 -1
  54. package/storybook-static/assets/{Detail-CEl8URNQ.js → Detail-CxFnUUkK.js} +1 -1
  55. package/storybook-static/assets/{Detail.stories-Mr3ypLAA.js → Detail.stories-DqgQuwn1.js} +1 -1
  56. package/storybook-static/assets/{Dialog-Dj2y3EO1.js → Dialog-B0VCykP7.js} +1 -1
  57. package/storybook-static/assets/{Dialog-BydPFV17.js → Dialog-CdJK__QW.js} +1 -1
  58. package/storybook-static/assets/{Dialog.stories-C1WlZdyp.js → Dialog.stories-C1ABO4hq.js} +1 -1
  59. package/storybook-static/assets/{Disclosure-DH77E5hY.js → Disclosure-g89eWjtw.js} +1 -1
  60. package/storybook-static/assets/{Disclosure.stories-B9ZVczUX.js → Disclosure.stories-B2CCl9Dg.js} +1 -1
  61. package/storybook-static/assets/{DisclosureGroup-CIoFeosY.js → DisclosureGroup-DZ-1k-kK.js} +1 -1
  62. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CbJN3X6f.js → DocsRenderer-JROSPFPF-C54xfLi3.js} +2 -2
  63. package/storybook-static/assets/{DropZone-DTBV-X-J.js → DropZone-CpVX5FJc.js} +1 -1
  64. package/storybook-static/assets/{DropZone-CR7xRn_b.js → DropZone-FboQPtkt.js} +1 -1
  65. package/storybook-static/assets/{DropZone.stories-Cw_og1Cs.js → DropZone.stories-Dtt5tKix.js} +1 -1
  66. package/storybook-static/assets/{DropdownMenu-CVIeHT8N.js → DropdownMenu--_ifmQMt.js} +1 -1
  67. package/storybook-static/assets/{ExpandableActionPanel-D8U6v8X7.js → ExpandableActionPanel-B2g9YRDI.js} +1 -1
  68. package/storybook-static/assets/{ExpandableActionPanel.stories-D42CZyOc.js → ExpandableActionPanel.stories-DnhAdkcl.js} +1 -1
  69. package/storybook-static/assets/{Flex-Bcsl0U5O.js → Flex-B-x1Ohkp.js} +1 -1
  70. package/storybook-static/assets/{Flex.stories-C0vSa3mh.js → Flex.stories-BYEkhW_Q.js} +1 -1
  71. package/storybook-static/assets/{FlexContainer-LmZIdhq2.js → FlexContainer-BWyPlTMB.js} +1 -1
  72. package/storybook-static/assets/{FlexItem-vkDYa5tA.js → FlexItem-pu3E11Sf.js} +1 -1
  73. package/storybook-static/assets/{FloatingPopover-DvU3oc_q.js → FloatingPopover-DOyMIo2-.js} +1 -1
  74. package/storybook-static/assets/FormattedTableCell-Cja58sq0.js +15 -0
  75. package/storybook-static/assets/{Grid-BCzygAqy.js → Grid-CzO0Ae1r.js} +1 -1
  76. package/storybook-static/assets/{Grid-Wl0Y0YAh.js → Grid-DDQ5Q1Zu.js} +1 -1
  77. package/storybook-static/assets/{Grid.stories-G6gMmKCP.js → Grid.stories-Bh-o6XTQ.js} +1 -1
  78. package/storybook-static/assets/{GridContainer-qDguE1HS.js → GridContainer-fKYgDsLl.js} +1 -1
  79. package/storybook-static/assets/{ImageCropper.stories-u6rOvDbd.js → ImageCropper.stories-Dy2RiAcH.js} +3 -3
  80. package/storybook-static/assets/{ImageRenderer-BYIRHN5G.js → ImageRenderer-qllJTZXD.js} +1 -1
  81. package/storybook-static/assets/{ImageRenderer.stories-BMEHEIVH.js → ImageRenderer.stories-DvE7n1QW.js} +1 -1
  82. package/storybook-static/assets/{ImageView.stories-DiEA93Yz.js → ImageView.stories-BmxCb-j1.js} +1 -1
  83. package/storybook-static/assets/{ImageViewer.stories-DyxctGxM.js → ImageViewer.stories-7cW5swP8.js} +2 -2
  84. package/storybook-static/assets/{ImageViewerRuntime--h_3C2s0.js → ImageViewerRuntime-CZu7J7wR.js} +2 -2
  85. package/storybook-static/assets/{Input-B2kOwWOU.js → Input-DWC0iHTm.js} +1 -1
  86. package/storybook-static/assets/{Input-CViRQ_rj.js → Input-JgKfpyoY.js} +1 -1
  87. package/storybook-static/assets/{Input.stories-D9eo9MWc.js → Input.stories-D_3AMqSf.js} +1 -1
  88. package/storybook-static/assets/{InputDateTime-T9_iyG4G.js → InputDateTime-DZOKr9oV.js} +1 -1
  89. package/storybook-static/assets/{InputDateTime.stories-DzegljaN.js → InputDateTime.stories-CFVXMtGS.js} +1 -1
  90. package/storybook-static/assets/{InputFile-CA3YpXnm.js → InputFile-BM_2v8Vr.js} +1 -1
  91. package/storybook-static/assets/{InputFile-Cvdj6RfC.js → InputFile-QkBKG4MF.js} +1 -1
  92. package/storybook-static/assets/{InputFile.stories-C18UaXPS.js → InputFile.stories-y_bqA0ji.js} +1 -1
  93. package/storybook-static/assets/{InputFiles-nS_qsXY7.js → InputFiles-0MQlpVXZ.js} +1 -1
  94. package/storybook-static/assets/{InputFiles-C4OkTG9M.js → InputFiles-CPMaf-0m.js} +1 -1
  95. package/storybook-static/assets/{InputFiles.stories-BYd0Pe0R.js → InputFiles.stories-FvkbnEu9.js} +1 -1
  96. package/storybook-static/assets/{InputFilesList-CXPf7Ui_.js → InputFilesList-LSKKFWI2.js} +1 -1
  97. package/storybook-static/assets/{InputImage-kd50L1Gf.js → InputImage-BtWMRvPj.js} +1 -1
  98. package/storybook-static/assets/{InputImage-jDVIxP7S.js → InputImage-CtHvsmW2.js} +1 -1
  99. package/storybook-static/assets/{InputImage.stories-D-xmS4Qj.js → InputImage.stories-DB4Dpqrp.js} +1 -1
  100. package/storybook-static/assets/{InteractiveComponents-D13nzSK7.js → InteractiveComponents-TycCPNdw.js} +1 -1
  101. package/storybook-static/assets/{InteractiveComponents.stories-yITzDh-Y.js → InteractiveComponents.stories-BPL6ph-t.js} +1 -1
  102. package/storybook-static/assets/{LayoutPicker-BfYXGIKb.js → LayoutPicker-121F1oKo.js} +1 -1
  103. package/storybook-static/assets/{LayoutPicker-9FVo0bF3.js → LayoutPicker-amQe8EyF.js} +1 -1
  104. package/storybook-static/assets/{LayoutPicker.stories-B-UnuGFM.js → LayoutPicker.stories-DpcjEEH4.js} +1 -1
  105. package/storybook-static/assets/{Listbox-9LVlsDzw.js → Listbox-D-Sqd9jb.js} +1 -1
  106. package/storybook-static/assets/{Listbox-C53-i-L6.js → Listbox-P5hFPYDA.js} +1 -1
  107. package/storybook-static/assets/{Listbox.stories-CCN72ABE.js → Listbox.stories-CL85ceLu.js} +1 -1
  108. package/storybook-static/assets/{Modal-CoXpuByh.js → Modal-Cn7uJut0.js} +1 -1
  109. package/storybook-static/assets/{Modal.stories-DAj_oPSt.js → Modal.stories-DgRduIwP.js} +1 -1
  110. package/storybook-static/assets/{ModalManagerProvider-C7pGT0B3.js → ModalManagerProvider-BpTBqDR5.js} +1 -1
  111. package/storybook-static/assets/{MultiSelect-DZ2krz-D.js → MultiSelect-BAHGljvC.js} +1 -1
  112. package/storybook-static/assets/{MultiSelect-DqeGNK15.js → MultiSelect-Bdq-guyW.js} +1 -1
  113. package/storybook-static/assets/{MultiSelect.stories-BoVHXMbn.js → MultiSelect.stories-6C-TQL1s.js} +1 -1
  114. package/storybook-static/assets/{NoData-N6Pbu0LD.js → NoData-mxG4mL4e.js} +1 -1
  115. package/storybook-static/assets/{NotificationsHost--uPz1G3j.js → NotificationsHost-CygepfX-.js} +1 -1
  116. package/storybook-static/assets/{NotificationsHost.stories-B-X-Ljxs.js → NotificationsHost.stories-B7ZmvjI6.js} +1 -1
  117. package/storybook-static/assets/{ODataMultiSelect-7U6nJdqB.js → ODataMultiSelect-BHl4B00F.js} +1 -1
  118. package/storybook-static/assets/{ODataMultiSelect.stories-B-t6MsOr.js → ODataMultiSelect.stories-BHSj5rjf.js} +1 -1
  119. package/storybook-static/assets/{ODataSelect-Dy-fSgE6.js → ODataSelect-foaFaP6d.js} +1 -1
  120. package/storybook-static/assets/{ODataSelect.stories-DhqHtcmD.js → ODataSelect.stories-82q9oBl6.js} +1 -1
  121. package/storybook-static/assets/{ODataTreeMultiSelect-Ol0nuytU.js → ODataTreeMultiSelect-CyFx96Sj.js} +1 -1
  122. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BupVzhbY.js → ODataTreeMultiSelect.stories-zLBWRIRi.js} +1 -1
  123. package/storybook-static/assets/{ODataTreeSelect-EkpDmDyk.js → ODataTreeSelect-DyPqYfQa.js} +1 -1
  124. package/storybook-static/assets/{ODataTreeSelect.stories-CFdbwyEg.js → ODataTreeSelect.stories-BSowZVpd.js} +1 -1
  125. package/storybook-static/assets/{OneStepScroller-rmyPl9f5.js → OneStepScroller-B_7N8BYz.js} +1 -1
  126. package/storybook-static/assets/Option-CVAAv8AB.css +1 -0
  127. package/storybook-static/assets/{Option-72PrSDkj.js → Option-DvXrygAo.js} +1 -1
  128. package/storybook-static/assets/{OptionButton-Br8QoJL7.js → OptionButton-CaiIhG8s.js} +1 -1
  129. package/storybook-static/assets/{PeriodSelect-DEZVGWGR.js → PeriodSelect-CcheHEx9.js} +1 -1
  130. package/storybook-static/assets/{PeriodSelect-C5Xk-g4Y.js → PeriodSelect-DQWcrf3z.js} +1 -1
  131. package/storybook-static/assets/{PeriodSelect.stories-BVBP97HW.js → PeriodSelect.stories-BoZAwgxD.js} +1 -1
  132. package/storybook-static/assets/{PickerTriggerActions-DSmRHX1I.js → PickerTriggerActions-C7iwI6po.js} +1 -1
  133. package/storybook-static/assets/{Popover-BpbeIq6-.js → Popover-BA61XeKS.js} +1 -1
  134. package/storybook-static/assets/{Popover-1KQwBxEJ.js → Popover-DemWjUAR.js} +1 -1
  135. package/storybook-static/assets/{Popover.stories-6RDZ0TND.js → Popover.stories-BZtYXuDy.js} +1 -1
  136. package/storybook-static/assets/{PresetRangeDateInput-BdkKzY69.js → PresetRangeDateInput-BPRlqmwn.js} +1 -1
  137. package/storybook-static/assets/{PresetRangeDateInput-CDhgmyFs.js → PresetRangeDateInput-QZD02nll.js} +1 -1
  138. package/storybook-static/assets/{PresetRangeDateInput.stories-BoE41IUK.js → PresetRangeDateInput.stories-fqhQho_t.js} +1 -1
  139. package/storybook-static/assets/{PresetSelect-CA5AyOOy.js → PresetSelect-604ElKuM.js} +1 -1
  140. package/storybook-static/assets/README-BSfoRcmy.js +648 -0
  141. package/storybook-static/assets/README-B_PcyrCy.js +876 -0
  142. package/storybook-static/assets/README-Bbmv2xJo.js +860 -0
  143. package/storybook-static/assets/README-C1ki7lL7.js +417 -0
  144. package/storybook-static/assets/README-CFCpUZA-.js +1093 -0
  145. package/storybook-static/assets/README-CMoAGNQ5.js +282 -0
  146. package/storybook-static/assets/README-CN_Y4pYZ.js +273 -0
  147. package/storybook-static/assets/README-COR9RMzk.js +1487 -0
  148. package/storybook-static/assets/README-CRfJujEw.js +1309 -0
  149. package/storybook-static/assets/README-CZ49-EeH.js +347 -0
  150. package/storybook-static/assets/README-D01AizPk.js +288 -0
  151. package/storybook-static/assets/README-DL6uUTPo.js +694 -0
  152. package/storybook-static/assets/README-DSHEoxUa.js +334 -0
  153. package/storybook-static/assets/README-Q-znYcgF.js +338 -0
  154. package/storybook-static/assets/README-qNwFrtLd.js +420 -0
  155. package/storybook-static/assets/{RadioButton-IDzSzftl.js → RadioButton-CbD6ZIHI.js} +1 -1
  156. package/storybook-static/assets/{RadioButton-DCoo55ld.js → RadioButton-DndugDg6.js} +1 -1
  157. package/storybook-static/assets/{RadioButton.stories-BEk1uc2x.js → RadioButton.stories-DLBVXRhH.js} +1 -1
  158. package/storybook-static/assets/{RadioGroup-VSiqFUI1.js → RadioGroup-CtB8u1R5.js} +1 -1
  159. package/storybook-static/assets/{RadioGroup-CbBmuFtC.js → RadioGroup-Cvgo5T_8.js} +1 -1
  160. package/storybook-static/assets/{RadioGroup.stories-DR7Vskyy.js → RadioGroup.stories-L1ZkFYiC.js} +1 -1
  161. package/storybook-static/assets/{Scrollable-CDZ18AWy.js → Scrollable-CGvhxTPd.js} +1 -1
  162. package/storybook-static/assets/{Select-IWQpo0LQ.js → Select-ByBilOog.js} +1 -1
  163. package/storybook-static/assets/{Select-YjugVUKX.js → Select-D4MdId1m.js} +1 -1
  164. package/storybook-static/assets/{Select.stories-4JpnXfaB.js → Select.stories-Dt-IM20Z.js} +1 -1
  165. package/storybook-static/assets/{SerializableSelect-oxnbV26a.js → SerializableSelect-nkDX-4xv.js} +1 -1
  166. package/storybook-static/assets/{SerializableSelect.stories-CjVcuU4t.js → SerializableSelect.stories-BWozK3v0.js} +1 -1
  167. package/storybook-static/assets/{SingleDateTimeInput-DFPke7bv.js → SingleDateTimeInput-BM3iEHnL.js} +1 -1
  168. package/storybook-static/assets/{SingleDateTimeInput-CQ1_ABKA.js → SingleDateTimeInput-DwIACH7q.js} +1 -1
  169. package/storybook-static/assets/{SingleDateTimeInput.stories--Nky_yBh.js → SingleDateTimeInput.stories-GluT9Gra.js} +1 -1
  170. package/storybook-static/assets/{Slider-DGVl0dbV.js → Slider-Cijr3rDj.js} +1 -1
  171. package/storybook-static/assets/{Slider-L7pqW7xG.js → Slider-DZF2K2Ew.js} +1 -1
  172. package/storybook-static/assets/{Slider.stories-DkqUavTk.js → Slider.stories-CKkDEud8.js} +1 -1
  173. package/storybook-static/assets/{SliderInput-B7U8M2UN.js → SliderInput-BpmhOQah.js} +1 -1
  174. package/storybook-static/assets/{SliderInput-Dn5-Dt4w.js → SliderInput-D_DduGKi.js} +1 -1
  175. package/storybook-static/assets/{SliderInput.stories-B9WBQOiA.js → SliderInput.stories-vb6qkP3q.js} +1 -1
  176. package/storybook-static/assets/{Sortable-DxdXjG1a.js → Sortable-CbhgYqYI.js} +1 -1
  177. package/storybook-static/assets/{Sortable.stories-D1rp2l9M.js → Sortable.stories-BGYwnEIs.js} +1 -1
  178. package/storybook-static/assets/{Splitter-yZpkev96.js → Splitter-CIrkYu0w.js} +1 -1
  179. package/storybook-static/assets/{Splitter.stories-C3TCKNhu.js → Splitter.stories-BiWcwOKt.js} +1 -1
  180. package/storybook-static/assets/{StateSelect-CaAFL9Jr.js → StateSelect-PvcnwH-_.js} +1 -1
  181. package/storybook-static/assets/{StateSelect-DZjPblfU.js → StateSelect-ZSH1VqJo.js} +1 -1
  182. package/storybook-static/assets/{StateSelect.stories-D7EwT0sO.js → StateSelect.stories-XIHGksRX.js} +1 -1
  183. package/storybook-static/assets/{StringToggle.stories-DuaWy2LK.js → StringToggle.stories-ZIPWDjST.js} +1 -1
  184. package/storybook-static/assets/{Switch-C0GQ2oXw.js → Switch-Bf1TvVDU.js} +1 -1
  185. package/storybook-static/assets/{Switch-DCNQT47U.js → Switch-DHkppwyI.js} +1 -1
  186. package/storybook-static/assets/{Switch.stories-CAIEfQb6.js → Switch.stories-DflM2SkS.js} +1 -1
  187. package/storybook-static/assets/{Table-Be1uta4G.js → Table-CzJkgWa8.js} +1 -1
  188. package/storybook-static/assets/Table.stories-BaalIcC1.js +207 -0
  189. package/storybook-static/assets/{Tabs-Co7Z92UK.js → Tabs-Cys2Volu.js} +1 -1
  190. package/storybook-static/assets/{Tabs.stories-D84U8aJM.js → Tabs.stories-D_fVcYeD.js} +2 -2
  191. package/storybook-static/assets/{TabsBox-CUpOXGdh.js → TabsBox-B9W9qy2m.js} +1 -1
  192. package/storybook-static/assets/{TagInput-BbLK6uxZ.js → TagInput-CnPuhz64.js} +1 -1
  193. package/storybook-static/assets/{TagInput.stories-D34JCfyM.js → TagInput.stories-CU9IW-n_.js} +1 -1
  194. package/storybook-static/assets/{Text-DtJw3wMU.js → Text-CellD6Ua.js} +1 -1
  195. package/storybook-static/assets/{Textarea-C9MWeqLC.js → Textarea-BIne8oBO.js} +1 -1
  196. package/storybook-static/assets/{Textarea-Cz6RWJdh.js → Textarea-CNJiLJKb.js} +1 -1
  197. package/storybook-static/assets/{Textarea.stories-DqK16XGS.js → Textarea.stories-BfgWsqEp.js} +1 -1
  198. package/storybook-static/assets/{TimePanel-DcZ-UUgO.js → TimePanel-BY8XyZeb.js} +1 -1
  199. package/storybook-static/assets/{TimePanel.stories-BafOmX3I.js → TimePanel.stories-BEqFKJd3.js} +1 -1
  200. package/storybook-static/assets/{Toggle-oYTkCbEJ.js → Toggle-CTmUXxr_.js} +1 -1
  201. package/storybook-static/assets/{Toggle-CgU6o7qM.js → Toggle-Dyiyi7DV.js} +1 -1
  202. package/storybook-static/assets/{Toggle.stories-CbmOBWIu.js → Toggle.stories-DysLQdUc.js} +1 -1
  203. package/storybook-static/assets/{TreeMultiSelect-B4WfXc4Z.js → TreeMultiSelect-CDOGzEjr.js} +1 -1
  204. package/storybook-static/assets/{TreeMultiSelect-DN_CYg-F.js → TreeMultiSelect-DUQQUlTr.js} +1 -1
  205. package/storybook-static/assets/{TreeMultiSelect.stories-DYVj6Rm6.js → TreeMultiSelect.stories-Ca1Ezfej.js} +1 -1
  206. package/storybook-static/assets/{TreePickerBase-8gA_hIXn.js → TreePickerBase-CHdoSW2m.js} +1 -1
  207. package/storybook-static/assets/{TreeSelect-2bjYl5ox.js → TreeSelect-DBpqAEoz.js} +1 -1
  208. package/storybook-static/assets/{TreeSelect-CTtmHF-B.js → TreeSelect-DvmeQO0H.js} +1 -1
  209. package/storybook-static/assets/{TreeSelect.stories-BEAY61pJ.js → TreeSelect.stories-zRpBXhMU.js} +1 -1
  210. package/storybook-static/assets/{TreeTable-B4BaHybr.js → TreeTable-Dpr1hsTN.js} +1 -1
  211. package/storybook-static/assets/{TreeTable.stories-lLwH2Gzl.js → TreeTable.stories-D4mBQSif.js} +2 -2
  212. package/storybook-static/assets/{WithTooltip-7X4HQR7L-Cakt_JaX.js → WithTooltip-7X4HQR7L-DQ4Qthn2.js} +1 -1
  213. package/storybook-static/assets/{array-D-_yMMUK-CIRmlF93.js → array-D-_yMMUK-BQ0uu1hZ.js} +1 -1
  214. package/storybook-static/assets/{async-DFALSYBD.js → async-phnLSjcK.js} +1 -1
  215. package/storybook-static/assets/axe-_9eNhXQJ.js +20 -0
  216. package/storybook-static/assets/{blocks-Dr191OF5.js → blocks-Dx5UE11l.js} +6 -6
  217. package/storybook-static/assets/check-Bn8-yPh2.js +1 -0
  218. package/storybook-static/assets/chevron-down-BZ9pvYFr.js +1 -0
  219. package/storybook-static/assets/chevron-left-DWqaY-om.js +1 -0
  220. package/storybook-static/assets/chevron-right-NPmcbCK0.js +1 -0
  221. package/storybook-static/assets/{chunk-242VQQM5-BMWWiybC.js → chunk-242VQQM5-bHL6qIJq.js} +1 -1
  222. package/storybook-static/assets/{chunk-DRQKCCAG-CqE-Zrl9.js → chunk-DRQKCCAG-DvsmU7ha.js} +1 -1
  223. package/storybook-static/assets/{chunk-IMSF75WX-yvVUwIQZ.js → chunk-IMSF75WX-CGYlPTyG.js} +1 -1
  224. package/storybook-static/assets/{chunk-KJHJLCBK-D-yQfkOi.js → chunk-KJHJLCBK-yRlRMfNs.js} +1 -1
  225. package/storybook-static/assets/{chunk-QQBDHPVZ-B98qboss.js → chunk-QQBDHPVZ-DC5n6Pix.js} +1 -1
  226. package/storybook-static/assets/{chunk-W22LQPXL-BR_vFDlt.js → chunk-W22LQPXL-BYQdtiug.js} +1 -1
  227. package/storybook-static/assets/{circle-alert-Is-jAV5H.js → circle-alert-CJwtzjGy.js} +1 -1
  228. package/storybook-static/assets/circle-check-DwTtGRlB.js +1 -0
  229. package/storybook-static/assets/{components-DqFIc_sf.js → components-Cs2kpiik.js} +12 -12
  230. package/storybook-static/assets/{contextMenu-CWKJO78E.js → contextMenu-B5c0sszu.js} +1 -1
  231. package/storybook-static/assets/{createControlledStoryRender-DHsyXc1B.js → createControlledStoryRender-BouhvX-R.js} +1 -1
  232. package/storybook-static/assets/{date-segments-D3HouZ37.js → date-segments-DeoMkKv9.js} +1 -1
  233. package/storybook-static/assets/{defaultRenderers-V5HI39JH.js → defaultRenderers-BHXboKuy.js} +1 -1
  234. package/storybook-static/assets/{dom-B3G_GtJw.js → dom-DBd_DWF8.js} +1 -1
  235. package/storybook-static/assets/{download-B61X2hm8.js → download-r-5pPKGQ.js} +1 -1
  236. package/storybook-static/assets/{error-BZrNlEUO.js → error-De9R4E_F.js} +1 -1
  237. package/storybook-static/assets/{file-vPGnhPr-.js → file-CwRoWxeB.js} +1 -1
  238. package/storybook-static/assets/floating-ui.react-69N16zFe.js +1 -0
  239. package/storybook-static/assets/formatter-L2YTDE3Q-CRGuSxAF.js +1 -0
  240. package/storybook-static/assets/{formatters-CBgrBeSA-DY6OIAc8.js → formatters-CBgrBeSA-CqB1pZxS.js} +1 -1
  241. package/storybook-static/assets/{foundationLib-10USAmEi.js → foundationLib-BIHXPLOP.js} +1 -1
  242. package/storybook-static/assets/{hooks-C8GJ9Cvf.js → hooks-DC_oxxhF.js} +2 -2
  243. package/storybook-static/assets/{iframe-Bu7ux79g.js → iframe-C5-IVaAZ.js} +23 -23
  244. package/storybook-static/assets/iframe-CKeBtmwl.js +1 -0
  245. package/storybook-static/assets/{info-CnuHFdaB.js → info-CNW3iwvW.js} +1 -1
  246. package/storybook-static/assets/{matchers-JIUQ3HVY-DvR2XErZ.js → matchers-JIUQ3HVY-C789_MAK.js} +1 -1
  247. package/storybook-static/assets/{media-BycWpjAl.js → media-D9cE2tzi.js} +1 -1
  248. package/storybook-static/assets/odata-CGxTTNvg.js +1 -0
  249. package/storybook-static/assets/{odata-service-B6TxBSLm-BW9QLSrS.js → odata-service-B6TxBSLm-Bq8Ya67E.js} +1 -1
  250. package/storybook-static/assets/{odataFetchFn-CAzdQ6ar.js → odataFetchFn-BS9TBmIl.js} +1 -1
  251. package/storybook-static/assets/{odataStoryFixtures-CX6euJaD.js → odataStoryFixtures-C83OxXaj.js} +2 -2
  252. package/storybook-static/assets/{persisted-BKBboERB.js → persisted-BPpV66dG.js} +1 -1
  253. package/storybook-static/assets/{preload-helper-BHmFeTtP.js → preload-helper-wdlQj8DP.js} +1 -1
  254. package/storybook-static/assets/react-18-D4o7zN8K.js +9 -0
  255. package/storybook-static/assets/react-B0_DoKoo.js +9 -0
  256. package/storybook-static/assets/{react-C21x__mS.js → react-BZJXY1be.js} +1 -1
  257. package/storybook-static/assets/{react-qN2cStNd.js → react-Bl2r1tuC.js} +1 -1
  258. package/storybook-static/assets/{react-CvkUhHUq.js → react-GkniIHEK.js} +1 -1
  259. package/storybook-static/assets/{react-dom-2o2phaJG.js → react-dom-BzEl8usk.js} +1 -1
  260. package/storybook-static/assets/{refresh-cw-ByNiehPJ.js → refresh-cw-BIVSqnGe.js} +1 -1
  261. package/storybook-static/assets/{rolldown-runtime-C0FnF6B9.js → rolldown-runtime-DkW27tQK.js} +1 -1
  262. package/storybook-static/assets/{settings-2-BGG8WBgX.js → settings-2-9-qrKLUO.js} +1 -1
  263. package/storybook-static/assets/{shim-BUMlC1GG.js → shim-DlYORV19.js} +1 -1
  264. package/storybook-static/assets/{sortable-6C6S-hq-.js → sortable-BTkW6ZiT.js} +1 -1
  265. package/storybook-static/assets/syntaxhighlighter-QEQV7K2Y-Ch82sVZk.js +6 -0
  266. package/storybook-static/assets/{theming-mTWhffkp.js → theming-Cvtrnj7n.js} +1 -1
  267. package/storybook-static/assets/{trash-2-EYPGQg68.js → trash-2-D4oKWLBp.js} +1 -1
  268. package/storybook-static/assets/{treeStoryFixtures-Ci7STpiz.js → treeStoryFixtures-DXHh9GL3.js} +1 -1
  269. package/storybook-static/assets/{triangle-alert-qcSLqRkW.js → triangle-alert-CBOrIa31.js} +1 -1
  270. package/storybook-static/assets/{ui.module-D4CuGr8r.js → ui.module-Cat84Nza.js} +1 -1
  271. package/storybook-static/assets/{uiClasses-CVGbL980.js → uiClasses-B9c6dZuu.js} +1 -1
  272. package/storybook-static/assets/{useFlexClasses-Gn9spXEB.js → useFlexClasses-SgVG37Bb.js} +1 -1
  273. package/storybook-static/assets/{useODataSelectBase-LQU24QnI.js → useODataSelectBase-B6fc-K7G.js} +1 -1
  274. package/storybook-static/assets/{useODataTreeData-0I485gNf.js → useODataTreeData-BEHsAQxw.js} +1 -1
  275. package/storybook-static/assets/usePickerDefaultFilter-5Q1pAV4d.js +1 -0
  276. package/storybook-static/assets/{usePickerQuery-B0a5nSeM.js → usePickerQuery-B-2MddV7.js} +1 -1
  277. package/storybook-static/assets/{usePickerTriggerController-DMRm063p.js → usePickerTriggerController-CyBsILzT.js} +1 -1
  278. package/storybook-static/assets/{utils-DUM89eIj.js → utils-tg3ibbzi.js} +1 -1
  279. package/storybook-static/assets/x-BZ_zKXO5.js +1 -0
  280. package/storybook-static/iframe.html +7 -7
  281. package/storybook-static/index.json +1 -1
  282. package/storybook-static/project.json +1 -1
  283. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +35 -33
  284. package/storybook-static/sb-manager/globals-runtime.js +7 -7
  285. package/storybook-static/sb-manager/globals.js +1 -1
  286. package/storybook-static/sb-manager/runtime.js +88 -89
  287. package/storybook-static/vite-inject-mocker-entry.js +2 -2
  288. package/dist/chunks/picker-Cb3D2Hts.js.map +0 -1
  289. package/storybook-static/assets/FormattedTableCell-CGREP0wz.js +0 -15
  290. package/storybook-static/assets/Option-CwetjUM8.css +0 -1
  291. package/storybook-static/assets/Table.stories-ByUJbaZl.js +0 -207
  292. package/storybook-static/assets/axe-Bq-2xuso.js +0 -20
  293. package/storybook-static/assets/browserAndReact-BDUP5jYY.js +0 -70
  294. package/storybook-static/assets/check-D56EYchd.js +0 -1
  295. package/storybook-static/assets/chevron-down-CzEzTRkp.js +0 -1
  296. package/storybook-static/assets/chevron-left-Dl69q13G.js +0 -1
  297. package/storybook-static/assets/chevron-right-CJNjsAmt.js +0 -1
  298. package/storybook-static/assets/circle-check-6tyIZ3Kl.js +0 -1
  299. package/storybook-static/assets/filesAndExcel-Bs3kqlsI.js +0 -92
  300. package/storybook-static/assets/floating-ui.react-bhmHzD7p.js +0 -1
  301. package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +0 -1
  302. package/storybook-static/assets/formatters-NGPd1d-h.js +0 -202
  303. package/storybook-static/assets/formatters-runtime-CCfGWt-f.js +0 -329
  304. package/storybook-static/assets/iframe-BEvUkaBB.js +0 -1
  305. package/storybook-static/assets/odata-BslPtJet.js +0 -1
  306. package/storybook-static/assets/odataAndTables-Cyl3UJOz.js +0 -77
  307. package/storybook-static/assets/pureUtilities-Bj6GraNW.js +0 -30
  308. package/storybook-static/assets/react-18-CgkwBzTo.js +0 -9
  309. package/storybook-static/assets/react-CjYyitxm.js +0 -9
  310. package/storybook-static/assets/runtimeAndState-mq-BaPyx.js +0 -93
  311. package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-B5rzfkHU.js +0 -6
  312. package/storybook-static/assets/usePickerDefaultFilter-Be420WNF.js +0 -1
  313. package/storybook-static/assets/x-FZLq51ZK.js +0 -1
@@ -0,0 +1,273 @@
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-C5-IVaAZ.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-Dx5UE11l.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,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/API/Formatters/Strings`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`строковые-форматтеры`,children:`Строковые форматтеры`}),`
3
+ `,(0,c.jsx)(t.p,{children:`Модуль содержит небольшие предсказуемые функции для подготовки пользовательского текста: обрезки пробелов, безопасного преобразования в строку, удаления ведущих нулей, сокращения длинного текста и выбора русской формы слова.`}),`
4
+ `,(0,c.jsx)(t.p,{children:`Все функции экспортируются через один публичный entrypoint:`}),`
5
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
6
+ formatRussianPlural,
7
+ normalizeRequiredText,
8
+ normalizeText,
9
+ normalizeTextSpaces,
10
+ normalizeTextToLower,
11
+ normalizeTextWithFallback,
12
+ selectRussianPluralForm,
13
+ startsWithIgnoringZeros,
14
+ stripInnerSpaces,
15
+ stripLeadingZeros,
16
+ toSafeString,
17
+ truncateText
18
+ } from "@ryuzaki13/react-foundation-lib/formatters";
19
+ `})}),`
20
+ `,(0,c.jsxs)(t.p,{children:[`Импорта `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters/strings`}),` нет: каталог `,(0,c.jsx)(t.code,{children:`strings`}),` — внутренняя организация исходников, а не отдельный package subpath.`]}),`
21
+ `,(0,c.jsx)(t.h2,{id:`быстрый-выбор-функции`,children:`Быстрый выбор функции`}),`
22
+ `,(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.jsx)(t.th,{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:`undefined`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeText`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`" Иван "`}),` → `,(0,c.jsx)(t.code,{children:`"Иван"`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Получить текст с fallback`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeTextWithFallback`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`null`}),` → заданный fallback`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Получить обязательную строку`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeRequiredText`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`null`}),` → `,(0,c.jsx)(t.code,{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:`normalizeTextToLower`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`" Admin "`}),` → `,(0,c.jsx)(t.code,{children:`"admin"`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[`Безопасно выполнить `,(0,c.jsx)(t.code,{children:`String(value)`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`toSafeString`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`null`}),` → `,(0,c.jsx)(t.code,{children:`""`}),`, `,(0,c.jsx)(t.code,{children:`42`}),` → `,(0,c.jsx)(t.code,{children:`"42"`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Схлопнуть разные пробелы`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeTextSpaces`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`" Иван\\u00a0 Иванов "`}),` → `,(0,c.jsx)(t.code,{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:`stripInnerSpaces`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`"1 234\\u00a0567"`}),` → `,(0,c.jsx)(t.code,{children:`"1234567"`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Удалить ведущие нули у целого числа`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`stripLeadingZeros`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`"-00042"`}),` → `,(0,c.jsx)(t.code,{children:`"-42"`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Сравнить начало без ведущих нулей`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`startsWithIgnoringZeros`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`("000123", "12")`}),` → `,(0,c.jsx)(t.code,{children:`true`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Обрезать длинный текст`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`truncateText`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`("abcdef", 3)`}),` → `,(0,c.jsx)(t.code,{children:`"abc..."`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Выбрать русскую форму слова`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`selectRussianPluralForm`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`22`}),` → форма `,(0,c.jsx)(t.code,{children:`few`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Получить число вместе со словом`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`formatRussianPlural`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`22`}),` → `,(0,c.jsx)(t.code,{children:`"22 файла"`})]})]})]})]}),`
23
+ `,(0,c.jsx)(t.h2,{id:`базовые-понятия-для-начинающих`,children:`Базовые понятия для начинающих`}),`
24
+ `,(0,c.jsxs)(t.h3,{id:`unknown-не-означает-строку`,children:[(0,c.jsx)(t.code,{children:`unknown`}),` не означает строку`]}),`
25
+ `,(0,c.jsxs)(t.p,{children:[`Значение типа `,(0,c.jsx)(t.code,{children:`unknown`}),` может оказаться строкой, числом, объектом, `,(0,c.jsx)(t.code,{children:`null`}),` или чем угодно ещё. Функции этого модуля обрабатывают такие значения по-разному:`]}),`
26
+ `,(0,c.jsxs)(t.ul,{children:[`
27
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`normalizeText*`}),` считают текстом только настоящее значение типа `,(0,c.jsx)(t.code,{children:`string`}),`;`]}),`
28
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`toSafeString`}),` преобразует почти любое значение через встроенную функцию `,(0,c.jsx)(t.code,{children:`String`}),`;`]}),`
29
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`stripLeadingZeros`}),` предназначена для строки, которая изображает целое число.`]}),`
30
+ `]}),`
31
+ `,(0,c.jsxs)(t.p,{children:[`Не подменяйте одну операцию другой. Например, `,(0,c.jsx)(t.code,{children:`normalizeText(42)`}),` вернёт `,(0,c.jsx)(t.code,{children:`undefined`}),`, а `,(0,c.jsx)(t.code,{children:`toSafeString(42)`}),` — строку `,(0,c.jsx)(t.code,{children:`"42"`}),`.`]}),`
32
+ `,(0,c.jsxs)(t.h3,{id:`undefined-null-и-пустая-строка-различаются`,children:[(0,c.jsx)(t.code,{children:`undefined`}),`, `,(0,c.jsx)(t.code,{children:`null`}),` и пустая строка различаются`]}),`
33
+ `,(0,c.jsxs)(t.ul,{children:[`
34
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`undefined`}),` обычно означает «значение не задано»;`]}),`
35
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`null`}),` обычно означает «значение явно отсутствует»;`]}),`
36
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`""`}),` — строка, но в ней нет символов;`]}),`
37
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`" "`}),` — непустая строка на уровне JavaScript, однако после `,(0,c.jsx)(t.code,{children:`trim()`}),` она становится пустой.`]}),`
38
+ `]}),`
39
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`normalizeText`}),` объединяет эти случаи в удобный результат: содержательная строка либо `,(0,c.jsx)(t.code,{children:`undefined`}),`.`]}),`
40
+ `,(0,c.jsx)(t.h2,{id:`нормализация-текста`,children:`Нормализация текста`}),`
41
+ `,(0,c.jsx)(t.h3,{id:`normalizetextvalue`,children:(0,c.jsx)(t.code,{children:`normalizeText(value)`})}),`
42
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function normalizeText(value: unknown): string | undefined;
43
+ `})}),`
44
+ `,(0,c.jsx)(t.p,{children:`Функция:`}),`
45
+ `,(0,c.jsxs)(t.ol,{children:[`
46
+ `,(0,c.jsx)(t.li,{children:`проверяет, что значение является строкой;`}),`
47
+ `,(0,c.jsxs)(t.li,{children:[`удаляет пробелы в начале и конце через `,(0,c.jsx)(t.code,{children:`trim()`}),`;`]}),`
48
+ `,(0,c.jsxs)(t.li,{children:[`возвращает `,(0,c.jsx)(t.code,{children:`undefined`}),`, если после этого строка пуста.`]}),`
49
+ `]}),`
50
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeText(" документ "); // "документ"
51
+ normalizeText(""); // undefined
52
+ normalizeText(" "); // undefined
53
+ normalizeText(null); // undefined
54
+ normalizeText(100); // undefined
55
+ `})}),`
56
+ `,(0,c.jsx)(t.p,{children:`Она не схлопывает пробелы внутри строки и не меняет регистр:`}),`
57
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeText(" Иван Иванов "); // "Иван Иванов"
58
+ `})}),`
59
+ `,(0,c.jsx)(t.p,{children:`Типичный сценарий — подготовка необязательного поля перед сохранением:`}),`
60
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const description = normalizeText(form.description);
61
+
62
+ // description имеет тип string | undefined
63
+ `})}),`
64
+ `,(0,c.jsx)(t.h3,{id:`normalizetextwithfallbackvalue-fallback`,children:(0,c.jsx)(t.code,{children:`normalizeTextWithFallback(value, fallback?)`})}),`
65
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function normalizeTextWithFallback(value: unknown, fallback?: string): string;
66
+ `})}),`
67
+ `,(0,c.jsxs)(t.p,{children:[`Возвращает результат `,(0,c.jsx)(t.code,{children:`normalizeText(value)`}),`. Если содержательного текста нет, возвращает `,(0,c.jsx)(t.code,{children:`fallback`}),`. По умолчанию fallback равен пустой строке.`]}),`
68
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeTextWithFallback(" Готово "); // "Готово"
69
+ normalizeTextWithFallback(null); // ""
70
+ normalizeTextWithFallback(" ", "Не указано"); // "Не указано"
71
+ `})}),`
72
+ `,(0,c.jsx)(t.p,{children:`Важно: fallback возвращается буквально. Функция не обрезает и не проверяет сам fallback.`}),`
73
+ `,(0,c.jsx)(t.h3,{id:`normalizerequiredtextvalue`,children:(0,c.jsx)(t.code,{children:`normalizeRequiredText(value)`})}),`
74
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function normalizeRequiredText(value: unknown): string;
75
+ `})}),`
76
+ `,(0,c.jsxs)(t.p,{children:[`Это короткая форма `,(0,c.jsx)(t.code,{children:`normalizeTextWithFallback(value, "")`}),`:`]}),`
77
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeRequiredText(" Отчёт "); // "Отчёт"
78
+ normalizeRequiredText(undefined); // ""
79
+ normalizeRequiredText(42); // ""
80
+ `})}),`
81
+ `,(0,c.jsxs)(t.p,{children:[`Используйте её там, где вызывающему коду всегда нужна строка. Название `,(0,c.jsx)(t.code,{children:`Required`}),` не выполняет валидацию обязательности: пустой ввод всё равно превращается в `,(0,c.jsx)(t.code,{children:`""`}),`.`]}),`
82
+ `,(0,c.jsx)(t.h3,{id:`normalizetexttolowervalue`,children:(0,c.jsx)(t.code,{children:`normalizeTextToLower(value)`})}),`
83
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function normalizeTextToLower(value: unknown): string;
84
+ `})}),`
85
+ `,(0,c.jsxs)(t.p,{children:[`Обрезает внешние пробелы, затем вызывает `,(0,c.jsx)(t.code,{children:`toLowerCase()`}),`. Если вход не является содержательной строкой, возвращает `,(0,c.jsx)(t.code,{children:`""`}),`.`]}),`
86
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeTextToLower(" AdMiN "); // "admin"
87
+ normalizeTextToLower(null); // ""
88
+ `})}),`
89
+ `,(0,c.jsxs)(t.p,{children:[`Функция использует обычный `,(0,c.jsx)(t.code,{children:`toLowerCase`}),`, а не locale-aware `,(0,c.jsx)(t.code,{children:`toLocaleLowerCase`}),`. Для большинства технических ключей это ожидаемое поведение.`]}),`
90
+ `,(0,c.jsx)(t.h3,{id:`tosafestringvalue`,children:(0,c.jsx)(t.code,{children:`toSafeString(value)`})}),`
91
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function toSafeString(value: unknown): string;
92
+ `})}),`
93
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`null`}),` и `,(0,c.jsx)(t.code,{children:`undefined`}),` становятся пустой строкой. Остальные значения передаются встроенной функции `,(0,c.jsx)(t.code,{children:`String`}),`.`]}),`
94
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`toSafeString(null); // ""
95
+ toSafeString(undefined); // ""
96
+ toSafeString(42); // "42"
97
+ toSafeString(false); // "false"
98
+ toSafeString([1, 2]); // "1,2"
99
+ toSafeString({ id: 1 }); // "[object Object]"
100
+ `})}),`
101
+ `,(0,c.jsx)(t.p,{children:`Последние два примера показывают ограничение: функция гарантирует строковый тип, но не создаёт красивое представление сложных объектов. Для объектов нужен осмысленный formatter или сериализатор.`}),`
102
+ `,(0,c.jsx)(t.h3,{id:`normalizetextspacesvalue`,children:(0,c.jsx)(t.code,{children:`normalizeTextSpaces(value)`})}),`
103
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function normalizeTextSpaces(value: unknown): string;
104
+ `})}),`
105
+ `,(0,c.jsxs)(t.p,{children:[`Функция сначала применяет семантику `,(0,c.jsx)(t.code,{children:`normalizeRequiredText`}),`, затем заменяет любую последовательность следующих пробельных символов одним обычным пробелом:`]}),`
106
+ `,(0,c.jsxs)(t.ul,{children:[`
107
+ `,(0,c.jsxs)(t.li,{children:[`стандартные пробельные символы JavaScript (`,(0,c.jsx)(t.code,{children:`\\s`}),`), включая табуляцию и перенос строки;`]}),`
108
+ `,(0,c.jsxs)(t.li,{children:[`неразрывный пробел `,(0,c.jsx)(t.code,{children:`U+00A0`}),`;`]}),`
109
+ `,(0,c.jsxs)(t.li,{children:[`узкий неразрывный пробел `,(0,c.jsx)(t.code,{children:`U+202F`}),`.`]}),`
110
+ `]}),`
111
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeTextSpaces(" Иван\\t\\nИванов "); // "Иван Иванов"
112
+ normalizeTextSpaces("1\\u00a0234\\u202f567"); // "1 234 567"
113
+ normalizeTextSpaces(123); // ""
114
+ `})}),`
115
+ `,(0,c.jsx)(t.p,{children:`Используйте функцию для обычного пользовательского текста. Для машинных идентификаторов схлопывание пробелов может менять смысл значения.`}),`
116
+ `,(0,c.jsx)(t.h2,{id:`удаление-пробелов-и-ведущих-нулей`,children:`Удаление пробелов и ведущих нулей`}),`
117
+ `,(0,c.jsx)(t.h3,{id:`stripinnerspacesvalue`,children:(0,c.jsx)(t.code,{children:`stripInnerSpaces(value)`})}),`
118
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function stripInnerSpaces(value: string): string;
119
+ `})}),`
120
+ `,(0,c.jsx)(t.p,{children:`Удаляет из всей строки:`}),`
121
+ `,(0,c.jsxs)(t.ul,{children:[`
122
+ `,(0,c.jsx)(t.li,{children:`обычный пробел;`}),`
123
+ `,(0,c.jsxs)(t.li,{children:[`неразрывный пробел `,(0,c.jsx)(t.code,{children:`U+00A0`}),`;`]}),`
124
+ `,(0,c.jsxs)(t.li,{children:[`узкий неразрывный пробел `,(0,c.jsx)(t.code,{children:`U+202F`}),`.`]}),`
125
+ `]}),`
126
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`stripInnerSpaces("1 234 567"); // "1234567"
127
+ stripInnerSpaces("1\\u00a0234\\u202f567"); // "1234567"
128
+ `})}),`
129
+ `,(0,c.jsxs)(t.p,{children:[`Несмотря на слово `,(0,c.jsx)(t.code,{children:`Inner`}),` в имени, удаляются все перечисленные пробелы, в том числе в начале и конце. Табуляция и перевод строки не удаляются:`]}),`
130
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`stripInnerSpaces("\\t1 2\\n"); // "\\t12\\n"
131
+ `})}),`
132
+ `,(0,c.jsx)(t.h3,{id:`stripleadingzerosvalue`,children:(0,c.jsx)(t.code,{children:`stripLeadingZeros(value)`})}),`
133
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function stripLeadingZeros(value: string): string;
134
+ `})}),`
135
+ `,(0,c.jsx)(t.p,{children:`Функция предназначена для строкового представления целого числа:`}),`
136
+ `,(0,c.jsxs)(t.ol,{children:[`
137
+ `,(0,c.jsx)(t.li,{children:`обрезает внешние пробелы;`}),`
138
+ `,(0,c.jsxs)(t.li,{children:[`проверяет формат `,(0,c.jsx)(t.code,{children:`необязательный минус + цифры`}),`;`]}),`
139
+ `,(0,c.jsx)(t.li,{children:`удаляет лишние нули в начале цифровой части;`}),`
140
+ `,(0,c.jsx)(t.li,{children:`оставляет один ноль, если число состояло только из нулей.`}),`
141
+ `]}),`
142
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`stripLeadingZeros("00042"); // "42"
143
+ stripLeadingZeros("-00042"); // "-42"
144
+ stripLeadingZeros("0000"); // "0"
145
+ stripLeadingZeros("-0000"); // "-0"
146
+ stripLeadingZeros(" "); // "0"
147
+ `})}),`
148
+ `,(0,c.jsx)(t.p,{children:`Если строка не похожа на целое число, она возвращается только с обрезанными внешними пробелами:`}),`
149
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`stripLeadingZeros("+00042"); // "+00042"
150
+ stripLeadingZeros("001.50"); // "001.50"
151
+ stripLeadingZeros("000A12"); // "000A12"
152
+ `})}),`
153
+ `,(0,c.jsx)(t.p,{children:`Не используйте эту функцию для дробей, артикулов или кодов, где ведущие нули значимы.`}),`
154
+ `,(0,c.jsx)(t.h3,{id:`startswithignoringzerosvalue-searchtext`,children:(0,c.jsx)(t.code,{children:`startsWithIgnoringZeros(value, searchText)`})}),`
155
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function startsWithIgnoringZeros(value: string, searchText: string): boolean;
156
+ `})}),`
157
+ `,(0,c.jsxs)(t.p,{children:[`Обе строки приводятся к нижнему регистру, из их начала удаляются все нули, затем выполняется обычный `,(0,c.jsx)(t.code,{children:`startsWith`}),`.`]}),`
158
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`startsWithIgnoringZeros("000ABC123", "abc"); // true
159
+ startsWithIgnoringZeros("00012345", "0012"); // true
160
+ startsWithIgnoringZeros("00123", "24"); // false
161
+ `})}),`
162
+ `,(0,c.jsxs)(t.p,{children:[`Функция не вызывает `,(0,c.jsx)(t.code,{children:`trim()`}),`:`]}),`
163
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`startsWithIgnoringZeros(" 00123", "123"); // false
164
+ `})}),`
165
+ `,(0,c.jsxs)(t.p,{children:[`Если искомая строка состоит только из нулей, после удаления нулей получается `,(0,c.jsx)(t.code,{children:`""`}),`. Любая строка начинается с пустой строки, поэтому результат будет `,(0,c.jsx)(t.code,{children:`true`}),`:`]}),`
166
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`startsWithIgnoringZeros("ABC", "000"); // true
167
+ `})}),`
168
+ `,(0,c.jsx)(t.p,{children:`Если такое поведение не подходит поисковому интерфейсу, заранее проверяйте нормализованный поисковый запрос.`}),`
169
+ `,(0,c.jsx)(t.h2,{id:`обрезка-длинного-текста`,children:`Обрезка длинного текста`}),`
170
+ `,(0,c.jsx)(t.h3,{id:`truncatetextvalue-maxlength`,children:(0,c.jsx)(t.code,{children:`truncateText(value, maxLength)`})}),`
171
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function truncateText(value: unknown, maxLength: number): string | undefined;
172
+ `})}),`
173
+ `,(0,c.jsxs)(t.p,{children:[`Сначала применяется `,(0,c.jsx)(t.code,{children:`normalizeText`}),`. Если строка длиннее `,(0,c.jsx)(t.code,{children:`maxLength`}),`, берутся первые `,(0,c.jsx)(t.code,{children:`maxLength`}),` кодовых единиц и добавляется `,(0,c.jsx)(t.code,{children:`...`}),`.`]}),`
174
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`truncateText(" abcdef ", 3); // "abc..."
175
+ truncateText("abc", 3); // "abc"
176
+ truncateText(" ", 10); // undefined
177
+ truncateText(123, 10); // undefined
178
+ `})}),`
179
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`maxLength`}),` ограничивает только исходную часть. Три точки добавляются сверху, поэтому длина результата может быть `,(0,c.jsx)(t.code,{children:`maxLength + 3`}),`.`]}),`
180
+ `,(0,c.jsxs)(t.p,{children:[`Передавайте целое неотрицательное число. Функция не валидирует параметр. Кроме того, JavaScript `,(0,c.jsx)(t.code,{children:`slice`}),` считает UTF-16 code units, поэтому граница может разрезать emoji или сложный Unicode-символ. Для строгого UI-ограничения по визуальным символам нужен отдельный Unicode-aware механизм.`]}),`
181
+ `,(0,c.jsx)(t.h2,{id:`русские-формы-множественного-числа`,children:`Русские формы множественного числа`}),`
182
+ `,(0,c.jsxs)(t.h3,{id:`модель-one-few-many-other`,children:[`Модель `,(0,c.jsx)(t.code,{children:`one`}),`, `,(0,c.jsx)(t.code,{children:`few`}),`, `,(0,c.jsx)(t.code,{children:`many`}),`, `,(0,c.jsx)(t.code,{children:`other`})]}),`
183
+ `,(0,c.jsx)(t.p,{children:`Русский язык использует разные формы слова:`}),`
184
+ `,(0,c.jsxs)(t.ul,{children:[`
185
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`one`}),`: `,(0,c.jsx)(t.code,{children:`1 файл`}),`, `,(0,c.jsx)(t.code,{children:`21 файл`}),`;`]}),`
186
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`few`}),`: `,(0,c.jsx)(t.code,{children:`2 файла`}),`, `,(0,c.jsx)(t.code,{children:`24 файла`}),`;`]}),`
187
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`many`}),`: `,(0,c.jsx)(t.code,{children:`5 файлов`}),`, `,(0,c.jsx)(t.code,{children:`11 файлов`}),`, `,(0,c.jsx)(t.code,{children:`100 файлов`}),`;`]}),`
188
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`other`}),`: обычно дробные значения, например `,(0,c.jsx)(t.code,{children:`1.5 файла`}),`.`]}),`
189
+ `]}),`
190
+ `,(0,c.jsxs)(t.p,{children:[`Модуль использует `,(0,c.jsx)(t.code,{children:`Intl.PluralRules("ru-RU")`}),`, поэтому не нужно самостоятельно писать правила с остатками от деления.`]}),`
191
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type RussianPluralForms = {
192
+ one: string;
193
+ few: string;
194
+ many: string;
195
+ other?: string;
196
+ };
197
+ `})}),`
198
+ `,(0,c.jsxs)(t.p,{children:[`Поле `,(0,c.jsx)(t.code,{children:`other`}),` необязательно. Если оно не задано, для категории `,(0,c.jsx)(t.code,{children:`other`}),` используется форма `,(0,c.jsx)(t.code,{children:`few`}),`.`]}),`
199
+ `,(0,c.jsx)(t.h3,{id:`selectrussianpluralformvalue-forms`,children:(0,c.jsx)(t.code,{children:`selectRussianPluralForm(value, forms)`})}),`
200
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function selectRussianPluralForm(value: number, forms: RussianPluralForms): string;
201
+ `})}),`
202
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const fileForms = {
203
+ one: "файл",
204
+ few: "файла",
205
+ many: "файлов",
206
+ other: "файла"
207
+ };
208
+
209
+ selectRussianPluralForm(1, fileForms); // "файл"
210
+ selectRussianPluralForm(2, fileForms); // "файла"
211
+ selectRussianPluralForm(5, fileForms); // "файлов"
212
+ selectRussianPluralForm(1.5, fileForms); // "файла"
213
+ `})}),`
214
+ `,(0,c.jsxs)(t.p,{children:[`Для `,(0,c.jsx)(t.code,{children:`NaN`}),`, `,(0,c.jsx)(t.code,{children:`Infinity`}),` и `,(0,c.jsx)(t.code,{children:`-Infinity`}),` функция выбрасывает `,(0,c.jsx)(t.code,{children:`RangeError`}),`, потому что выбрать грамматическую форму для нечислового количества нельзя.`]}),`
215
+ `,(0,c.jsx)(t.h3,{id:`formatrussianpluralvalue-forms`,children:(0,c.jsx)(t.code,{children:`formatRussianPlural(value, forms)`})}),`
216
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function formatRussianPlural(value: number, forms: RussianPluralForms): string;
217
+ `})}),`
218
+ `,(0,c.jsx)(t.p,{children:`Добавляет число перед выбранной формой через пробел:`}),`
219
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`formatRussianPlural(1, fileForms); // "1 файл"
220
+ formatRussianPlural(22, fileForms); // "22 файла"
221
+ formatRussianPlural(100, fileForms); // "100 файлов"
222
+ `})}),`
223
+ `,(0,c.jsx)(t.p,{children:`Само число вставляется через обычное строковое преобразование JavaScript. Локализованное форматирование числа не выполняется:`}),`
224
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`formatRussianPlural(1.5, fileForms); // "1.5 файла", не "1,5 файла"
225
+ `})}),`
226
+ `,(0,c.jsxs)(t.p,{children:[`Если нужно локализовать число, объедините `,(0,c.jsx)(t.code,{children:`selectRussianPluralForm`}),` с числовым форматтером:`]}),`
227
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatNumber, selectRussianPluralForm } from "@ryuzaki13/react-foundation-lib/formatters";
228
+
229
+ const count = 1234.5;
230
+ const label = \`\${formatNumber(count, "decimal")} \${selectRussianPluralForm(count, fileForms)}\`;
231
+ `})}),`
232
+ `,(0,c.jsx)(t.h2,{id:`практический-пример-нормализация-формы`,children:`Практический пример: нормализация формы`}),`
233
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { normalizeText, normalizeTextSpaces, normalizeTextToLower, stripLeadingZeros } from "@ryuzaki13/react-foundation-lib/formatters";
234
+
235
+ const draft = {
236
+ name: " Иван Иванов ",
237
+ login: " IVANOV ",
238
+ comment: " ",
239
+ sequence: "00042"
240
+ };
241
+
242
+ const snapshot = {
243
+ name: normalizeTextSpaces(draft.name), // "Иван Иванов"
244
+ login: normalizeTextToLower(draft.login), // "ivanov"
245
+ comment: normalizeText(draft.comment), // undefined
246
+ sequence: stripLeadingZeros(draft.sequence) // "42"
247
+ };
248
+ `})}),`
249
+ `,(0,c.jsx)(t.p,{children:`Такая нормализация подходит для явно выбранной границы сохранения. Не применяйте её автоматически на каждом нажатии клавиши: пользовательский draft обычно должен сохранять введённый текст буквально до сохранения.`}),`
250
+ `,(0,c.jsx)(t.h2,{id:`частые-ошибки`,children:`Частые ошибки`}),`
251
+ `,(0,c.jsxs)(t.h3,{id:`использовать-tosafestring-как-универсальный-formatter`,children:[`Использовать `,(0,c.jsx)(t.code,{children:`toSafeString`}),` как универсальный formatter`]}),`
252
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`toSafeString({ id: 1 })`}),` возвращает `,(0,c.jsx)(t.code,{children:`"[object Object]"`}),`. Функция защищает от `,(0,c.jsx)(t.code,{children:`null`}),` и `,(0,c.jsx)(t.code,{children:`undefined`}),`, но не знает, как должен выглядеть доменный объект.`]}),`
253
+ `,(0,c.jsxs)(t.h3,{id:`ожидать-что-stripinnerspaces-удалит-все-whitespace`,children:[`Ожидать, что `,(0,c.jsx)(t.code,{children:`stripInnerSpaces`}),` удалит все whitespace`]}),`
254
+ `,(0,c.jsxs)(t.p,{children:[`Она удаляет только три конкретных вида пробела. Для схлопывания табуляций и переносов строки используйте `,(0,c.jsx)(t.code,{children:`normalizeTextSpaces`}),`.`]}),`
255
+ `,(0,c.jsx)(t.h3,{id:`удалять-нули-у-идентификаторов`,children:`Удалять нули у идентификаторов`}),`
256
+ `,(0,c.jsxs)(t.p,{children:[`Коды `,(0,c.jsx)(t.code,{children:`"000123"`}),` и `,(0,c.jsx)(t.code,{children:`"123"`}),` могут быть разными бизнес-идентификаторами. `,(0,c.jsx)(t.code,{children:`stripLeadingZeros`}),` меняет значение и должна применяться только там, где строка действительно означает целое число.`]}),`
257
+ `,(0,c.jsxs)(t.h3,{id:`считать-что-truncatetext-возвращает-строку-заданной-длины`,children:[`Считать, что `,(0,c.jsx)(t.code,{children:`truncateText`}),` возвращает строку заданной длины`]}),`
258
+ `,(0,c.jsxs)(t.p,{children:[`Три точки не входят в `,(0,c.jsx)(t.code,{children:`maxLength`}),`. При `,(0,c.jsx)(t.code,{children:`maxLength = 10`}),` итоговая строка может содержать 13 кодовых единиц.`]}),`
259
+ `,(0,c.jsx)(t.h3,{id:`передавать-строку-в-plural-api`,children:`Передавать строку в plural API`}),`
260
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`// Неправильно: функция ожидает number.
261
+ // formatRussianPlural("5", fileForms);
262
+
263
+ formatRussianPlural(Number("5"), fileForms);
264
+ `})}),`
265
+ `,(0,c.jsx)(t.p,{children:`Перед преобразованием внешней строки убедитесь, что получилось конечное число.`}),`
266
+ `,(0,c.jsx)(t.h2,{id:`краткая-api-справка`,children:`Краткая API-справка`}),`
267
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{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.code,{children:`normalizeText`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`unknown`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string | undefined`})}),(0,c.jsx)(t.td,{children:`нет`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeTextWithFallback`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`unknown`}),`, `,(0,c.jsx)(t.code,{children:`string?`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeRequiredText`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`unknown`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeTextToLower`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`unknown`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`toSafeString`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`unknown`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsxs)(t.td,{children:[`теоретически `,(0,c.jsx)(t.code,{children:`String(value)`}),` для экзотического объекта`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeTextSpaces`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`unknown`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`stripInnerSpaces`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет для корректного типа`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`stripLeadingZeros`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsx)(t.td,{children:`нет для корректного типа`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`startsWithIgnoringZeros`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`string`}),`, `,(0,c.jsx)(t.code,{children:`string`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`boolean`})}),(0,c.jsx)(t.td,{children:`нет для корректных типов`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`truncateText`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`unknown`}),`, `,(0,c.jsx)(t.code,{children:`number`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string | undefined`})}),(0,c.jsx)(t.td,{children:`нет при обычных значениях`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`selectRussianPluralForm`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`number`}),`, формы`]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`RangeError`}),` для не-конечного числа`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`formatRussianPlural`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`number`}),`, формы`]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`string`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`RangeError`}),` для не-конечного числа`]})]})]})]}),`
268
+ `,(0,c.jsx)(t.h2,{id:`связанная-документация`,children:`Связанная документация`}),`
269
+ `,(0,c.jsxs)(t.ul,{children:[`
270
+ `,(0,c.jsx)(t.li,{children:(0,c.jsxs)(t.a,{href:`../README.mdx`,children:[`Обзор всего модуля `,(0,c.jsx)(t.code,{children:`formatters`})]})}),`
271
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../number/README.mdx`,children:`Числа и числовые строки`})}),`
272
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../boolean/README.mdx`,children:`Форматтеры boolean и ABAP-флагов`})}),`
273
+ `]})]})}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};