@ryuzaki13/react-foundation-ui 1.8.19 → 1.9.0

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 (283) hide show
  1. package/dist/chunks/{CalendarView-BJx6akIp.js → CalendarView-j6rF-EWR.js} +82 -87
  2. package/dist/chunks/CalendarView-j6rF-EWR.js.map +1 -0
  3. package/dist/chunks/date-input-B4n6tceY.js +374 -0
  4. package/dist/chunks/date-input-B4n6tceY.js.map +1 -0
  5. package/dist/date-input/index.js +3 -3
  6. package/dist/date-input/lib/dateInputCalendar.d.ts +0 -1
  7. package/dist/date-input/lib/dateInputCalendar.d.ts.map +1 -1
  8. package/dist/date-input/lib/dateInputSelectionModes.d.ts +28 -0
  9. package/dist/date-input/lib/dateInputSelectionModes.d.ts.map +1 -0
  10. package/dist/date-input/lib/index.d.ts +1 -0
  11. package/dist/date-input/lib/index.d.ts.map +1 -1
  12. package/dist/date-input/lib/types.d.ts +4 -0
  13. package/dist/date-input/lib/types.d.ts.map +1 -1
  14. package/dist/date-input/ui/DateInput.d.ts +6 -1
  15. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  16. package/dist/date-time-input/index.js +1 -1
  17. package/dist/preset-range-date-input/index.js +1 -1
  18. package/package.json +1 -1
  19. package/storybook-static/assets/{Badge-CAM2jkFm.js → Badge-BdiEdu3X.js} +1 -1
  20. package/storybook-static/assets/{Badge.stories-DRjjmR32.js → Badge.stories-BBlMEKKX.js} +1 -1
  21. package/storybook-static/assets/{BadgeList-D4Swhp3V.js → BadgeList-DHXNitzx.js} +1 -1
  22. package/storybook-static/assets/{Button-4YB5_DwT.js → Button-B5mHumU3.js} +1 -1
  23. package/storybook-static/assets/{Button-1UZNz2k4.js → Button-BRUTThZH.js} +1 -1
  24. package/storybook-static/assets/{Button.stories-B0sdwFqZ.js → Button.stories-CtVoHZDd.js} +1 -1
  25. package/storybook-static/assets/CalendarView-9vjui-A9.js +1 -0
  26. package/storybook-static/assets/{CheckBox-BdGaGy4_.js → CheckBox-Bpb5rOM2.js} +1 -1
  27. package/storybook-static/assets/{CheckBox-Cpt5rjSg.js → CheckBox-DOwmpgu4.js} +1 -1
  28. package/storybook-static/assets/{CheckBox.stories-6d6-rkNo.js → CheckBox.stories-Bq4FvTOe.js} +1 -1
  29. package/storybook-static/assets/{Color-6AOWCN3U-sKBB2RBT.js → Color-6AOWCN3U-CdTnOOMs.js} +1 -1
  30. package/storybook-static/assets/{ContextMenu-BLnt5p2W.js → ContextMenu-Bv-YVzbh.js} +1 -1
  31. package/storybook-static/assets/{ContextMenu-B155_m2F.js → ContextMenu-vPJ8-UVA.js} +1 -1
  32. package/storybook-static/assets/{ContextMenu.stories-B8sv4v3Q.js → ContextMenu.stories-BC8gxAbT.js} +1 -1
  33. package/storybook-static/assets/{CustomOptionButton-hKfsqWNH.js → CustomOptionButton-CXPoWAC9.js} +1 -1
  34. package/storybook-static/assets/{DateInput-DvIl6s-f.js → DateInput-CWlAW7Ie.js} +1 -1
  35. package/storybook-static/assets/DateInput-DaTdvZ9c.js +1 -0
  36. package/storybook-static/assets/DateInput.stories-if3hOb9H.js +121 -0
  37. package/storybook-static/assets/{DateRangePresetSelect-BCLZcXdv.js → DateRangePresetSelect-BDR0ZE-d.js} +1 -1
  38. package/storybook-static/assets/DateRangePresetSelect-Bn63CxTl.js +3 -0
  39. package/storybook-static/assets/{DateRangePresetSelect.stories-D8zuTlHo.js → DateRangePresetSelect.stories-DWxkSAE1.js} +1 -1
  40. package/storybook-static/assets/{Detail-Ct95dA1k.js → Detail-Cc8B_cbH.js} +1 -1
  41. package/storybook-static/assets/{Detail.stories-Chedt7EX.js → Detail.stories-re1F74In.js} +1 -1
  42. package/storybook-static/assets/{Dialog-BX3QZOnt.js → Dialog-CRh6y7YF.js} +1 -1
  43. package/storybook-static/assets/{Dialog-C7Duw0PA.js → Dialog-CkT3w8Tz.js} +1 -1
  44. package/storybook-static/assets/{Dialog.stories-J0w0R0Db.js → Dialog.stories-BwuXGfri.js} +1 -1
  45. package/storybook-static/assets/{Disclosure-BzlV54RK.js → Disclosure-M__BDUDu.js} +1 -1
  46. package/storybook-static/assets/{Disclosure.stories-z7gnOr5h.js → Disclosure.stories-CqQQe2YZ.js} +1 -1
  47. package/storybook-static/assets/{DisclosureGroup-c179TOi5.js → DisclosureGroup-f-4zp0ps.js} +1 -1
  48. package/storybook-static/assets/{DocsRenderer-JROSPFPF-Ba9N3QAD.js → DocsRenderer-JROSPFPF-D8q-dgQB.js} +1 -1
  49. package/storybook-static/assets/{DropZone-D5X0oV8O.js → DropZone-C__isXrZ.js} +1 -1
  50. package/storybook-static/assets/{DropZone-vxUU2p-k.js → DropZone-DFSvHjLA.js} +1 -1
  51. package/storybook-static/assets/{DropZone.stories-iNXgESGM.js → DropZone.stories-CeQUhopO.js} +1 -1
  52. package/storybook-static/assets/{DropdownMenu-CJlpP3HB.js → DropdownMenu-DEhxHl0U.js} +1 -1
  53. package/storybook-static/assets/{ExpandableActionPanel-CmkEByID.js → ExpandableActionPanel-CqLgcklx.js} +1 -1
  54. package/storybook-static/assets/{ExpandableActionPanel.stories-DmRLaVxn.js → ExpandableActionPanel.stories-DxBFS6no.js} +1 -1
  55. package/storybook-static/assets/{Flex-tVAYZ-nU.js → Flex-CDgo5pNt.js} +1 -1
  56. package/storybook-static/assets/{Flex.stories-CVYDcbvw.js → Flex.stories-CJO_64A3.js} +1 -1
  57. package/storybook-static/assets/{FloatingPopover-DMTLPzR3.js → FloatingPopover-D9zppnn5.js} +1 -1
  58. package/storybook-static/assets/{FormattedTableCell-DP6-D86D.js → FormattedTableCell-rZ8kctY-.js} +1 -1
  59. package/storybook-static/assets/{Grid-Vm-amT-a.js → Grid-C3nthJLr.js} +1 -1
  60. package/storybook-static/assets/{Grid.stories-B0beH9CK.js → Grid.stories-Dm-B_m-Z.js} +1 -1
  61. package/storybook-static/assets/{ImageCropper.stories-Dt-IA4EB.js → ImageCropper.stories-Bel8XXCC.js} +1 -1
  62. package/storybook-static/assets/{ImageRenderer-DudkQ-3G.js → ImageRenderer-8X4aePCm.js} +1 -1
  63. package/storybook-static/assets/{ImageRenderer.stories-CNeSiXkj.js → ImageRenderer.stories-rakzIJeM.js} +1 -1
  64. package/storybook-static/assets/{ImageView.stories-DMtpy--X.js → ImageView.stories-BngnteYS.js} +1 -1
  65. package/storybook-static/assets/{ImageViewer.stories-BkoV0li4.js → ImageViewer.stories-D6EfVS78.js} +2 -2
  66. package/storybook-static/assets/{ImageViewerRuntime-BLgQCsSL.js → ImageViewerRuntime-B9fSNH2J.js} +1 -1
  67. package/storybook-static/assets/{Input-WhTMStKL.js → Input-BDLSUyRg.js} +1 -1
  68. package/storybook-static/assets/{Input-MPCFEMQm.js → Input-CqM32-9V.js} +1 -1
  69. package/storybook-static/assets/{Input.stories-B50KKSiz.js → Input.stories-C_A4MaI3.js} +1 -1
  70. package/storybook-static/assets/{InputDateTime-1zTFbNEF.js → InputDateTime-92L9Mqna.js} +1 -1
  71. package/storybook-static/assets/InputDateTime.stories-ejRQiayx.js +30 -0
  72. package/storybook-static/assets/{InputFile-DYHuD6B8.js → InputFile-BR48hRH2.js} +1 -1
  73. package/storybook-static/assets/{InputFile-B3QB0SLD.js → InputFile-D0Ea1tHj.js} +1 -1
  74. package/storybook-static/assets/{InputFile.stories-B-hrCtm_.js → InputFile.stories-Cvlw95nu.js} +1 -1
  75. package/storybook-static/assets/{InputFiles-CPPAJxgC.js → InputFiles-D2okuEQ-.js} +1 -1
  76. package/storybook-static/assets/{InputFiles-Dpa2BiyZ.js → InputFiles-DlkPD_x4.js} +1 -1
  77. package/storybook-static/assets/{InputFiles.stories-1ocz2wNw.js → InputFiles.stories-DUgyxezy.js} +1 -1
  78. package/storybook-static/assets/{InputFilesList-D2Ro-1Hm.js → InputFilesList-Ddy39MYy.js} +1 -1
  79. package/storybook-static/assets/{InputImage-BDC2lyVo.js → InputImage-DPV4mZz8.js} +1 -1
  80. package/storybook-static/assets/{InputImage-DPmkvGcl.js → InputImage-qtuAX13r.js} +1 -1
  81. package/storybook-static/assets/{InputImage.stories-D3hWZBtn.js → InputImage.stories-C-SFhxE6.js} +1 -1
  82. package/storybook-static/assets/{InteractiveComponents-Djz3CtkU.js → InteractiveComponents-CSwd2lr5.js} +1 -1
  83. package/storybook-static/assets/{InteractiveComponents.stories-CJ2VWPLD.js → InteractiveComponents.stories-DYrXXpQP.js} +1 -1
  84. package/storybook-static/assets/{LayoutPicker-BFShZhhi.js → LayoutPicker-CGV2Oqmj.js} +1 -1
  85. package/storybook-static/assets/{LayoutPicker-CMMEs83d.js → LayoutPicker-eOc5SXGR.js} +1 -1
  86. package/storybook-static/assets/{LayoutPicker.stories-Cdb_UnBI.js → LayoutPicker.stories-okRllC5n.js} +1 -1
  87. package/storybook-static/assets/{Listbox-B7nZijLJ.js → Listbox-Br9uGogi.js} +1 -1
  88. package/storybook-static/assets/{Listbox-DM1vuGVD.js → Listbox-Mh0MABSb.js} +1 -1
  89. package/storybook-static/assets/{Listbox.stories-DTs-ANe9.js → Listbox.stories-zUU9z46B.js} +1 -1
  90. package/storybook-static/assets/{Modal-D0dkB7lh.js → Modal-Cj-Ow00n.js} +1 -1
  91. package/storybook-static/assets/{Modal.stories-BOh10Fkn.js → Modal.stories-BxT21M2R.js} +1 -1
  92. package/storybook-static/assets/{ModalManagerProvider-CEEmviJU.js → ModalManagerProvider-DpQxs9eQ.js} +1 -1
  93. package/storybook-static/assets/{MultiSelect-CbrRNOEZ.js → MultiSelect-BDfeA4b0.js} +1 -1
  94. package/storybook-static/assets/{MultiSelect-oJhMsKuC.js → MultiSelect-Cb-HPsri.js} +1 -1
  95. package/storybook-static/assets/{MultiSelect.stories-mLWhd-au.js → MultiSelect.stories-D-YS-6OI.js} +1 -1
  96. package/storybook-static/assets/{NoData-C7Kj62Zk.js → NoData-ImBI0Hv6.js} +1 -1
  97. package/storybook-static/assets/{NotificationsHost-D_i7EsJA.js → NotificationsHost-BliKo_02.js} +1 -1
  98. package/storybook-static/assets/NotificationsHost.stories--TTbnnBF.js +29 -0
  99. package/storybook-static/assets/{ODataMultiSelect-B6hKhD2q.js → ODataMultiSelect-CcDSzbIX.js} +1 -1
  100. package/storybook-static/assets/{ODataMultiSelect.stories-BO7WaR9I.js → ODataMultiSelect.stories-BGON1kcj.js} +1 -1
  101. package/storybook-static/assets/{ODataSelect-BW8S-U91.js → ODataSelect-BT_lo66n.js} +1 -1
  102. package/storybook-static/assets/{ODataSelect.stories-rVZ8RYIu.js → ODataSelect.stories-B6TVTSPG.js} +1 -1
  103. package/storybook-static/assets/{ODataTreeMultiSelect-BhvUurca.js → ODataTreeMultiSelect-BixVdzv4.js} +1 -1
  104. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CM8wiVsI.js → ODataTreeMultiSelect.stories-BRFGx0jL.js} +1 -1
  105. package/storybook-static/assets/{ODataTreeSelect-B96PJWcL.js → ODataTreeSelect-UCvRNTLZ.js} +1 -1
  106. package/storybook-static/assets/{ODataTreeSelect.stories-HHLJZrD8.js → ODataTreeSelect.stories-54VnROAp.js} +1 -1
  107. package/storybook-static/assets/{OneStepScroller-DzrN3WVZ.js → OneStepScroller-CkfGyrJX.js} +1 -1
  108. package/storybook-static/assets/{Option-BwWLsS-Q.js → Option-BeKIvBIk.js} +1 -1
  109. package/storybook-static/assets/{OptionButton-CdYqQAwC.js → OptionButton-Bqx2W-q_.js} +1 -1
  110. package/storybook-static/assets/{PeriodSelect-_GvgXTKk.js → PeriodSelect-BsiqeAmw.js} +1 -1
  111. package/storybook-static/assets/PeriodSelect-BtIqHisX.js +5 -0
  112. package/storybook-static/assets/{PeriodSelect.stories-CGNmEIBG.js → PeriodSelect.stories-0SkuLb9d.js} +1 -1
  113. package/storybook-static/assets/{PickerTriggerActions-apA_Ruie.js → PickerTriggerActions-DKa2kW7b.js} +1 -1
  114. package/storybook-static/assets/{Popover-CDeopGLJ.js → Popover-CQY1gjtg.js} +1 -1
  115. package/storybook-static/assets/{Popover-BYGM8Bjj.js → Popover-DdTT_axF.js} +1 -1
  116. package/storybook-static/assets/{Popover.stories-DTeZeyAB.js → Popover.stories-jZhqI65s.js} +1 -1
  117. package/storybook-static/assets/{PresetRangeDateInput-BdFjz9Ed.js → PresetRangeDateInput-DqdQb2uL.js} +1 -1
  118. package/storybook-static/assets/{PresetRangeDateInput-D3FBpZqV.js → PresetRangeDateInput-OipniP2I.js} +1 -1
  119. package/storybook-static/assets/PresetRangeDateInput.stories-CTOW-jxq.js +3 -0
  120. package/storybook-static/assets/PresetSelect-C2L55zt0.js +5 -0
  121. package/storybook-static/assets/{README-B5QVQmyU.js → README-1ts4pZ40.js} +1 -1
  122. package/storybook-static/assets/{README-1tFUbU_N.js → README-4iQkemCY.js} +1 -1
  123. package/storybook-static/assets/{README-BTp9nnLv.js → README-8wArWW60.js} +1 -1
  124. package/storybook-static/assets/{README-CuYqzgi0.js → README-B0VIX1Xl.js} +1 -1
  125. package/storybook-static/assets/{README-C_uOxFAl.js → README-B3Clzlvu.js} +1 -1
  126. package/storybook-static/assets/{README-CBhnA3Kz.js → README-B3sPVnOE.js} +1 -1
  127. package/storybook-static/assets/{README-n3wmMhlD.js → README-BPfV8W9d.js} +1 -1
  128. package/storybook-static/assets/{README-bhX-QiSo.js → README-BRe8A9eI.js} +1 -1
  129. package/storybook-static/assets/{README-HhDoM8Gq.js → README-BYLYAHQU.js} +1 -1
  130. package/storybook-static/assets/{README-C8K3rQpu.js → README-BcYYGr5T.js} +1 -1
  131. package/storybook-static/assets/{README-Dq0P8Ach.js → README-BdrVbLE_.js} +1 -1
  132. package/storybook-static/assets/{README-m0xvi4o1.js → README-BeJ7F8ya.js} +1 -1
  133. package/storybook-static/assets/{README-B8dyxeZz.js → README-BgTr2m0r.js} +1 -1
  134. package/storybook-static/assets/{README-g3WhSoX3.js → README-Bghuw4xh.js} +1 -1
  135. package/storybook-static/assets/{README-DldTDL_-.js → README-BjeYppkt.js} +1 -1
  136. package/storybook-static/assets/{README-eqGIA1ao.js → README-Bky95mjX.js} +1 -1
  137. package/storybook-static/assets/{README-OGP9mnSD.js → README-BqEEzTrM.js} +1 -1
  138. package/storybook-static/assets/{README-C2rr_CMA.js → README-C-YkymJ5.js} +1 -1
  139. package/storybook-static/assets/{README-DNDYDuQ4.js → README-C2qgf9R6.js} +1 -1
  140. package/storybook-static/assets/{README-BSrGqFaw.js → README-C6M0Rol8.js} +1 -1
  141. package/storybook-static/assets/{README-DLBEUtiL.js → README-CAwFoCOE.js} +1 -1
  142. package/storybook-static/assets/{README-CvrH-776.js → README-CAxxVPk8.js} +1 -1
  143. package/storybook-static/assets/{README-fLJ5n8A8.js → README-CCB-uZ8s.js} +1 -1
  144. package/storybook-static/assets/{README-Bv9s5Hlv.js → README-CJvZ27X8.js} +1 -1
  145. package/storybook-static/assets/{README-NwNz8xro.js → README-CNwm447z.js} +1 -1
  146. package/storybook-static/assets/{README-CxsAd0Iq.js → README-CPveHb_v.js} +1 -1
  147. package/storybook-static/assets/{README-Br9h1slQ.js → README-CS7WQBvL.js} +1 -1
  148. package/storybook-static/assets/{README-z2leBvSk.js → README-CYOE6et3.js} +1 -1
  149. package/storybook-static/assets/{README-DHJwCm5f.js → README-Cgp-ece7.js} +1 -1
  150. package/storybook-static/assets/{README-VwNH_K60.js → README-ChqcviHm.js} +1 -1
  151. package/storybook-static/assets/{README-Cuj7DFn9.js → README-CqEjYaCY.js} +1 -1
  152. package/storybook-static/assets/{README-Dju2IqV_.js → README-Csbh_2gB.js} +1 -1
  153. package/storybook-static/assets/{README-mXAkjKF0.js → README-Ct695emV.js} +1 -1
  154. package/storybook-static/assets/{README-DYKVnI5h.js → README-CwQXFeiK.js} +1 -1
  155. package/storybook-static/assets/{README-Se6780nc.js → README-CymBtyk-.js} +1 -1
  156. package/storybook-static/assets/{README-DGTIYOSH.js → README-D4rXs7IY.js} +1 -1
  157. package/storybook-static/assets/{README-GstpCBI6.js → README-D7p9ZEE8.js} +1 -1
  158. package/storybook-static/assets/{README-Bht25HeR.js → README-DDIGs5FV.js} +1 -1
  159. package/storybook-static/assets/{README-BtPehMeb.js → README-DGPDttIF.js} +1 -1
  160. package/storybook-static/assets/{README-CeuRBAf6.js → README-DK32zRi9.js} +1 -1
  161. package/storybook-static/assets/{README-9flk-o3B.js → README-DZaEpUZo.js} +1 -1
  162. package/storybook-static/assets/{README-I0-Ly9-N.js → README-DahT1clt.js} +1 -1
  163. package/storybook-static/assets/{README-DcJ05Rnh.js → README-Djr0kn_c.js} +1 -1
  164. package/storybook-static/assets/{README-DQSMXoRa.js → README-Dy57h6rC.js} +1 -1
  165. package/storybook-static/assets/{README-BRnZl0of.js → README-H0WY3yYQ.js} +1 -1
  166. package/storybook-static/assets/{README-BUkpxX-E.js → README-Nx5uZoe7.js} +1 -1
  167. package/storybook-static/assets/{README-_aVIdcMd.js → README-QX5i3QAl.js} +1 -1
  168. package/storybook-static/assets/{README-DZmDqmSd.js → README-hMP4GXT8.js} +1 -1
  169. package/storybook-static/assets/{README-Chc7eGGc.js → README-pvPRMGSJ.js} +1 -1
  170. package/storybook-static/assets/{README-BJEbnNWP.js → README-tppL5ecv.js} +1 -1
  171. package/storybook-static/assets/{README-Cl2jxLna.js → README-uUB7TAeH.js} +1 -1
  172. package/storybook-static/assets/{README-DSsqg62x.js → README-wbQq3fFQ.js} +1 -1
  173. package/storybook-static/assets/{RadioButton-JEqzXOJN.js → RadioButton-DUd4aKQn.js} +1 -1
  174. package/storybook-static/assets/{RadioButton-DqEZ3dh2.js → RadioButton-qsIX84d0.js} +1 -1
  175. package/storybook-static/assets/{RadioButton.stories-CzIM9dix.js → RadioButton.stories-D0zad2lq.js} +1 -1
  176. package/storybook-static/assets/{RadioGroup-COIsrK0r.js → RadioGroup-Cw14BgsE.js} +1 -1
  177. package/storybook-static/assets/{RadioGroup-D4EHkLTb.js → RadioGroup-DmG5QMQ9.js} +1 -1
  178. package/storybook-static/assets/{RadioGroup.stories-BdAv58pJ.js → RadioGroup.stories-z1TGty8R.js} +1 -1
  179. package/storybook-static/assets/{Scrollable-noVIQseX.js → Scrollable-qQFF0nas.js} +1 -1
  180. package/storybook-static/assets/{Select-DgPcfbEp.js → Select-BSYhoWB3.js} +1 -1
  181. package/storybook-static/assets/{Select-9v7A23y8.js → Select-Dm8oWRkH.js} +1 -1
  182. package/storybook-static/assets/{Select.stories-yIRnlqrF.js → Select.stories-B4dbfZL4.js} +1 -1
  183. package/storybook-static/assets/{SerializableSelect-CnPwQtgN.js → SerializableSelect-D3pqtaZ-.js} +1 -1
  184. package/storybook-static/assets/{SerializableSelect.stories-9QxpRX-K.js → SerializableSelect.stories-DoQUJ2qN.js} +1 -1
  185. package/storybook-static/assets/{SingleDateTimeInput-DBrfgnnn.js → SingleDateTimeInput-fC4akHMV.js} +1 -1
  186. package/storybook-static/assets/{SingleDateTimeInput-CxKz7tUP.js → SingleDateTimeInput-tDOK3NEI.js} +1 -1
  187. package/storybook-static/assets/{SingleDateTimeInput.stories-lOLyuR7U.js → SingleDateTimeInput.stories-DJyIL1_5.js} +1 -1
  188. package/storybook-static/assets/{Slider-KC0hs5nY.js → Slider-2fU9KS2a.js} +1 -1
  189. package/storybook-static/assets/{Slider-Cn1YHOVt.js → Slider-hMTRxUyp.js} +1 -1
  190. package/storybook-static/assets/{Slider.stories-C-IjisOs.js → Slider.stories-mEEEJYzv.js} +1 -1
  191. package/storybook-static/assets/{SliderInput-Bz4D-xc3.js → SliderInput-BKpG69HS.js} +1 -1
  192. package/storybook-static/assets/{SliderInput-BVDFbjAz.js → SliderInput-BdUv_9U6.js} +1 -1
  193. package/storybook-static/assets/{SliderInput.stories-SlhRnTWN.js → SliderInput.stories-kaRIf1Q_.js} +1 -1
  194. package/storybook-static/assets/{Sortable-d-UOB6NI.js → Sortable-BiOdJGGW.js} +1 -1
  195. package/storybook-static/assets/Sortable.stories-BFnb_E1K.js +44 -0
  196. package/storybook-static/assets/{Splitter-t2bV_zrF.js → Splitter-P-gipnDD.js} +1 -1
  197. package/storybook-static/assets/{Splitter.stories-CTTTfgXu.js → Splitter.stories-CmPV58QG.js} +1 -1
  198. package/storybook-static/assets/{StateSelect-CR5WR-IW.js → StateSelect-Baf6fFgF.js} +1 -1
  199. package/storybook-static/assets/{StateSelect-CX7Xf-aX.js → StateSelect-FkOhrCr9.js} +1 -1
  200. package/storybook-static/assets/{StateSelect.stories-3KkvmQ80.js → StateSelect.stories-Bjm6ViKF.js} +1 -1
  201. package/storybook-static/assets/StringToggle.stories-DnIMcTnQ.js +3 -0
  202. package/storybook-static/assets/{Switch-DB4EZ32N.js → Switch-BJlzRnGw.js} +1 -1
  203. package/storybook-static/assets/{Switch-Deae3h9G.js → Switch-mXvV4t1H.js} +1 -1
  204. package/storybook-static/assets/{Switch.stories-CZxayDtX.js → Switch.stories-DJZIDERM.js} +1 -1
  205. package/storybook-static/assets/{Table-CrxyY7zt.js → Table-K7vWFWG8.js} +1 -1
  206. package/storybook-static/assets/Table.stories-xjQmGz84.js +178 -0
  207. package/storybook-static/assets/{Tabs-L4LxDqx4.js → Tabs-CFUVKIYw.js} +1 -1
  208. package/storybook-static/assets/{Tabs.stories-C4XMXjqd.js → Tabs.stories-BkFpMlaH.js} +1 -1
  209. package/storybook-static/assets/{TabsBox-Bnvm4jMi.js → TabsBox-sGh3mFuh.js} +1 -1
  210. package/storybook-static/assets/{TagInput-DW0JzYQ3.js → TagInput-MMc3kCmm.js} +1 -1
  211. package/storybook-static/assets/{TagInput.stories-zF7cV7Cp.js → TagInput.stories-CXbk7JvC.js} +1 -1
  212. package/storybook-static/assets/{Text-ByhnRSgp.js → Text-D5ufzjYF.js} +1 -1
  213. package/storybook-static/assets/{Textarea-BySrQxab.js → Textarea-CAw638rV.js} +1 -1
  214. package/storybook-static/assets/{Textarea-WtjTIiyq.js → Textarea-u0pGVMAg.js} +1 -1
  215. package/storybook-static/assets/{Textarea.stories-jFSqX_4h.js → Textarea.stories-UCnx8Jlm.js} +1 -1
  216. package/storybook-static/assets/{TimePanel-B-rvi-xm.js → TimePanel-4-p_MbKh.js} +1 -1
  217. package/storybook-static/assets/TimePanel.stories-CJahZ6UZ.js +10 -0
  218. package/storybook-static/assets/{Toggle-BfRh792z.js → Toggle-BGSrHL11.js} +1 -1
  219. package/storybook-static/assets/{Toggle-BkglFvBx.js → Toggle-BYqoCrdS.js} +1 -1
  220. package/storybook-static/assets/{Toggle.stories-BonTJbH-.js → Toggle.stories-DVbuGhF4.js} +1 -1
  221. package/storybook-static/assets/{TreeMultiSelect-7E1j6lHT.js → TreeMultiSelect-Cwco4INR.js} +1 -1
  222. package/storybook-static/assets/{TreeMultiSelect-CKr7kx7s.js → TreeMultiSelect-DWzF3hw_.js} +1 -1
  223. package/storybook-static/assets/{TreeMultiSelect.stories-DQ9N-EPu.js → TreeMultiSelect.stories-DMPaVgUx.js} +1 -1
  224. package/storybook-static/assets/{TreePickerBase-DwoQyBMk.js → TreePickerBase-BJjZsULU.js} +1 -1
  225. package/storybook-static/assets/{TreeSelect-BLc7zLho.js → TreeSelect-BHiWw9pP.js} +1 -1
  226. package/storybook-static/assets/{TreeSelect-BP_YoVCu.js → TreeSelect-iViu6Pfi.js} +1 -1
  227. package/storybook-static/assets/{TreeSelect.stories-CyurXsU_.js → TreeSelect.stories-xQyoBz63.js} +1 -1
  228. package/storybook-static/assets/{TreeTable-wfgjChnU.js → TreeTable-DLU_2E8g.js} +1 -1
  229. package/storybook-static/assets/TreeTable.stories-D9RB_dXs.js +138 -0
  230. package/storybook-static/assets/{blocks-DNj8uFSt.js → blocks-stFM1w3P.js} +3 -3
  231. package/storybook-static/assets/{check-CS2caYIB.js → check-BjiExazt.js} +1 -1
  232. package/storybook-static/assets/{chevron-down-DXkNPvpX.js → chevron-down-D2Tt4h6A.js} +1 -1
  233. package/storybook-static/assets/{chevron-left-5q-SFjrm.js → chevron-left-D0bJoN7k.js} +1 -1
  234. package/storybook-static/assets/{chevron-right-u6yLjLrs.js → chevron-right-Di-SG_gl.js} +1 -1
  235. package/storybook-static/assets/{chunk-W22LQPXL-CfJGLIdy.js → chunk-W22LQPXL-BXYzyYQP.js} +1 -1
  236. package/storybook-static/assets/{circle-alert-Cs1OuREv.js → circle-alert-DYz5cJBA.js} +1 -1
  237. package/storybook-static/assets/{circle-check-Cvppn-HO.js → circle-check-D3yaxNuZ.js} +1 -1
  238. package/storybook-static/assets/{components-B6cPezpK.js → components-DE5Blgve.js} +3 -3
  239. package/storybook-static/assets/{contextMenu-CX8Geuik.js → contextMenu-Wg3CrAi4.js} +1 -1
  240. package/storybook-static/assets/{download-DY_RFHLw.js → download-DsSR6AhR.js} +1 -1
  241. package/storybook-static/assets/{floating-ui.react-CCV40RlP.js → floating-ui.react-BwaqgYtp.js} +1 -1
  242. package/storybook-static/assets/{foundationApi-naPnCFLL.js → foundationApi-admd5xgy.js} +1 -1
  243. package/storybook-static/assets/{foundationLib-CSxKMNQk.js → foundationLib-CQpc9i83.js} +1 -1
  244. package/storybook-static/assets/{hooks-CK4me-dJ.js → hooks-CNazPa7h.js} +1 -1
  245. package/storybook-static/assets/{iframe-YrfSEgEg.js → iframe-DlXl0oyG.js} +3 -3
  246. package/storybook-static/assets/iframe-HeWj5Jc7.js +1 -0
  247. package/storybook-static/assets/{info-BEkn6tJB.js → info-gwA4taJ1.js} +1 -1
  248. package/storybook-static/assets/odata-D7wfZ6gu.js +1 -0
  249. package/storybook-static/assets/odataStoryFixtures-p30wd7rH.js +25 -0
  250. package/storybook-static/assets/{react-BihcRTyZ.js → react-f3n7_Ult.js} +1 -1
  251. package/storybook-static/assets/{refresh-cw-uKRX7BI0.js → refresh-cw-DfwG3t58.js} +1 -1
  252. package/storybook-static/assets/{settings-2-DTKuqR8p.js → settings-2-nuXQ2F5d.js} +1 -1
  253. package/storybook-static/assets/{sortable-sVqTZjeF.js → sortable-BHJzSt7m.js} +1 -1
  254. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-GFZ4bA4u.js → syntaxhighlighter-QEQV7K2Y-BycmHfs1.js} +1 -1
  255. package/storybook-static/assets/{trash-2-C6QVfyTq.js → trash-2-D7B_KFrV.js} +1 -1
  256. package/storybook-static/assets/{triangle-alert-DKkTKSAW.js → triangle-alert-BXqJ5rX_.js} +1 -1
  257. package/storybook-static/assets/{useODataSelectBase-BxPpoJje.js → useODataSelectBase-th7LMnVn.js} +1 -1
  258. package/storybook-static/assets/{useODataTreeData-Ct-ZR8pA.js → useODataTreeData-DOfK9vBg.js} +1 -1
  259. package/storybook-static/assets/{usePickerQuery-DJMG-4Gl.js → usePickerQuery-Cbg_YqXW.js} +1 -1
  260. package/storybook-static/assets/{usePickerTriggerController-DeZhyi9h.js → usePickerTriggerController-Dl_kYSNR.js} +1 -1
  261. package/storybook-static/assets/{x-cU42PK2s.js → x-Ex-P2uaI.js} +1 -1
  262. package/storybook-static/iframe.html +2 -2
  263. package/storybook-static/project.json +1 -1
  264. package/dist/chunks/CalendarView-BJx6akIp.js.map +0 -1
  265. package/dist/chunks/date-input-DXCIZbyc.js +0 -341
  266. package/dist/chunks/date-input-DXCIZbyc.js.map +0 -1
  267. package/storybook-static/assets/CalendarView-sSyZ5jCR.js +0 -1
  268. package/storybook-static/assets/DateInput-XvSKmvqi.js +0 -1
  269. package/storybook-static/assets/DateInput.stories-SU41oukh.js +0 -115
  270. package/storybook-static/assets/DateRangePresetSelect-tz-3m9UI.js +0 -3
  271. package/storybook-static/assets/InputDateTime.stories-B7W4BkU6.js +0 -38
  272. package/storybook-static/assets/NotificationsHost.stories-5GPO8lQl.js +0 -29
  273. package/storybook-static/assets/PeriodSelect-CJejEx-e.js +0 -5
  274. package/storybook-static/assets/PresetRangeDateInput.stories-B2HCz7Tw.js +0 -3
  275. package/storybook-static/assets/PresetSelect-BgzVe_NB.js +0 -5
  276. package/storybook-static/assets/Sortable.stories-DWywtUOf.js +0 -77
  277. package/storybook-static/assets/StringToggle.stories-D7r-Du4d.js +0 -5
  278. package/storybook-static/assets/Table.stories-Cwxd5T2K.js +0 -207
  279. package/storybook-static/assets/TimePanel.stories-BQJruT0g.js +0 -14
  280. package/storybook-static/assets/TreeTable.stories-DUBR67SN.js +0 -168
  281. package/storybook-static/assets/iframe-uYND_WUi.js +0 -1
  282. package/storybook-static/assets/odata-j4p1dw3i.js +0 -1
  283. package/storybook-static/assets/odataStoryFixtures-B_1MKEB-.js +0 -25
@@ -1,207 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-YrfSEgEg.js";import{J as i,X as a,Y as ee,Z as te,_ as ne,a as re,b as o,d as ie,g as ae,i as s}from"./odata-j4p1dw3i.js";import{i as oe,y as se}from"./formatters-D33Uh3si-Df97arf9.js";import{_ as ce,a as le,b as ue,c as de,d as fe,f as pe,g as me,h as he,i as ge,l as _e,m as ve,n as ye,o as be,p as xe,r as Se,s as Ce,t as we,u as Te,v as Ee,x as De,y as Oe}from"./FormattedTableCell-DP6-D86D.js";var ke,c,l;function Ae(){return(Ae=e((()=>{ke=`hKghZt`,c=`QsLRvS`,l={selectedIndicatorCell:ke,sentinel:c}})))()}function je(e,t){return String(t)}function u({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:te,className:re,minHeight:o,tableClassName:ie,columnVisibility:s,defaultColumnVisibility:se,columnOrder:le,defaultColumnOrder:ue,columnSizing:fe,defaultColumnSizing:me,columnPinning:ge,defaultColumnPinning:_e,enableColumnResizing:ve=!1,enableColumnReordering:ye=!1,columnResizeMinWidth:Ce,onColumnVisibilityChange:Oe,onColumnOrderChange:ke,onColumnSizingChange:c,onColumnPinningChange:Ae,onRowClick:u,onRowSelectionChange:Me,onReachEnd:p,getRowCanSelect:m,getRowClassName:Ne,renderHeaderContextMenu:Pe,renderCellContent:h}){let g=(0,d.useMemo)(()=>r??[],[r]),_=(0,d.useMemo)(()=>he(i),[i]),v=te??je,y=(0,d.useMemo)(()=>new Map(g.map((e,t)=>[v(e,t),e])),[v,g]),b=(0,d.useMemo)(()=>Array.from(y.keys()),[y]),x=(0,d.useRef)(null),S=(0,d.useRef)(null),{rowSelection:C,activateRowSelection:w}=ae({availableRowIds:b,rowById:y,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:Me}),{columnVisibility:T,onColumnVisibilityChange:E}=be({columnVisibility:s,defaultColumnVisibility:se,onColumnVisibilityChange:Oe}),{columnOrder:D,onColumnOrderChange:O}=pe({columnOrder:le,defaultColumnOrder:ue,onColumnOrderChange:ke}),{columnSizing:k,onColumnSizingChange:A}=de({columnSizing:fe,defaultColumnSizing:me,columnResizeMinWidth:Ce,onColumnSizingChange:c}),{columnPinning:j,onColumnPinningChange:M}=Te({columnPinning:ge,defaultColumnPinning:_e,onColumnPinningChange:Ae}),N=(0,d.useMemo)(()=>({columnOrder:D,columnPinning:j,columnSizing:k,columnVisibility:T}),[D,j,k,T]),P=(0,d.useEffectEvent)(()=>{p?.()});(0,d.useEffect)(()=>{if(!p||!x.current||!S.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&P()},{root:x.current,threshold:.1});return e.observe(S.current),()=>e.disconnect()},[t,p,g.length]);let F=De({features:ne,data:g,columns:i,state:{columnOrder:D,columnPinning:j,columnSizing:k,columnVisibility:T,rowSelection:C},onColumnOrderChange:O,onColumnPinningChange:M,onColumnSizingChange:A,onColumnVisibilityChange:E,getRowId:(e,t)=>v(e,t),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!m||m(e.original)}),I=Ee(F,N),L=F.getRowModel().rows,R=(0,d.useMemo)(()=>xe({rows:L,columns:I}),[L,I]),Fe=I[0]?.id;return(0,f.jsx)(Se,{table:F,columnState:N,title:e,isLoading:t,isFetching:n,className:re,minHeight:o,tableClassName:ie,selectionMode:a,scrollableRef:x,onActivateRow:a!==`none`||u?e=>{w(e.id,e.getCanSelect()),u?.(e.original)}:void 0,isRowInteractive:e=>!!(u||a!==`none`&&e.getCanSelect()),getRowClassName:e=>Ne?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===Fe&&e.getIsSelected()?l.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>R.get(e.id),renderHeaderContextMenu:Pe,enableColumnResizing:ve,enableColumnReordering:ye,columnResizeMinWidth:Ce,renderCellContent:e=>{let t=oe({field:_.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=ce({columnId:e.cell.column.id,runtimeByColumnId:_.runtimeByColumnId,customCellColumnIds:_.customCellColumnIds})?(0,f.jsx)(we,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return h?h({...e,defaultContent:n,displayValue:t}):n},afterTableContent:p?(0,f.jsx)(`div`,{ref:S,className:l.sentinel,"aria-hidden":`true`}):null})}var d,f;function Me(){return(Me=e((()=>{d=n(),se(),o(),ue(),ge(),ve(),me(),ye(),Oe(),fe(),_e(),Ce(),le(),Ae(),f=r(),u.__docgenInfo={description:"Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.",methods:[],displayName:`Table`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок таблицы.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},selectedRowIds:{required:!1,tsType:{name:`unknown`},description:`Внешний список выбранных строк.
2
-
3
- Если передан, таблица синхронизирует визуальное выделение с этим набором id.`},getRowId:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData, index: number) => string`,signature:{arguments:[{type:{name:`TData`},name:`row`},{type:{name:`number`},name:`index`}],return:{name:`string`}}},description:`Стабильный идентификатор строки.
4
-
5
- Если не задан, используется индекс строки.`},className:{required:!1,tsType:{name:`string`},description:`Дополнительный CSS-класс корневого контейнера.`},minHeight:{required:!1,tsType:{name:`union`,raw:"`${number}em` | `${number}%`",elements:[{name:`literal`,value:"`${number}em`"},{name:`literal`,value:"`${number}%`"}]},description:``},tableClassName:{required:!1,tsType:{name:`string`},description:"Дополнительный CSS-класс тега `table`."},columnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Внешнее controlled-состояние видимости колонок.`},defaultColumnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Стартовое uncontrolled-состояние видимости колонок.`},columnOrder:{required:!1,tsType:{name:`unknown`},description:`Внешнее controlled-состояние порядка колонок.`},defaultColumnOrder:{required:!1,tsType:{name:`unknown`},description:`Стартовое uncontrolled-состояние порядка колонок.`},columnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Внешнее controlled-состояние ширин колонок в px.`},defaultColumnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Стартовое uncontrolled-состояние ширин колонок в px.`},columnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Внешнее controlled-состояние start-pinning для колонок.`},defaultColumnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Стартовое uncontrolled-состояние start-pinning для колонок.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:`Включает изменение ширины колонок через header-handle.`,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:`Включает изменение порядка колонок через drag&drop заголовков.`,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:`Минимальная ширина колонки при resize в px.`},onColumnVisibilityChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnVisibilityState) => void`,signature:{arguments:[{type:{name:`TableColumnVisibilityState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения видимости колонок.`},onColumnOrderChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnOrderState) => void`,signature:{arguments:[{type:{name:`TableColumnOrderState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения порядка колонок.`},onColumnSizingChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnSizingState) => void`,signature:{arguments:[{type:{name:`TableColumnSizingState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения ширины колонок.`},onColumnPinningChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnPinningState) => void`,signature:{arguments:[{type:{name:`TableColumnPinningState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения start-pinning state.`},onRowClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => void`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`void`}}},description:`Вызывается при активации строки кликом или клавиатурой.`},onRowSelectionChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(rows: TData[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TData`}],raw:`TData[]`},name:`rows`}],return:{name:`void`}}},description:`Вызывается после изменения выбранных строк.`},onReachEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается при достижении конца таблицы внутри scroll-контейнера.`},getRowCanSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => boolean`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`boolean`}}},description:`Позволяет запретить выбор отдельных строк.`},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => string | undefined`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:`Позволяет добавить CSS-класс для конкретной строки.`},renderHeaderContextMenu:{required:!1,tsType:{name:`BaseTableProps["renderHeaderContextMenu"]`,raw:`BaseTableProps<TData>["renderHeaderContextMenu"]`},description:`Контекстное меню заголовка колонки. Используется для общих runtime-действий
6
- вроде server sorting без встраивания доменной логики в shared-таблицу.`},renderCellContent:{required:!1,tsType:{name:`BaseTableProps["renderCellContent"]`,raw:`BaseTableProps<TData>["renderCellContent"]`},description:"Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\nВ отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n`defaultContent` уже содержит отформатированное значение, если оно применимо."}}}})))()}var p=t({Basic:()=>z,Empty:()=>W,Fetching:()=>U,Loading:()=>K,MultiSelect:()=>V,ReachEnd:()=>G,WithColumnPinning:()=>B,WithDisabledRows:()=>H,WithFormattingPipeline:()=>J,WithFormulaColumn:()=>q,WithHiddenZero:()=>Y,WithMergedDuplicates:()=>X,WithODataMetadataAdapter:()=>Z,WithUseODataTableColumnsBuildHook:()=>Q,WithUseODataTableColumnsEnrichHook:()=>$,__namedExportsOrder:()=>Ie,default:()=>Fe});function m(){return{version:1,plan:{steps:[{id:`state`,type:`resolveValueState`,config:{resolver:{kind:`threshold`,thresholds:[100],states:[`success`,`warning`],invalidState:`none`},icon:{enabled:!0,showValue:!0,position:`right`}}},{id:`typed`,type:`typedValueFormat`}]}}}function Ne(e){return[`odata`,`metadata`,{service:e}]}function Pe(e,t){let n=e.data??[];return t.map(t=>{let r=n.indexOf(t);return e.getRowId?.(t,r)??String(r)})}function h({args:e}){let[,t]=x();return(0,b.jsx)(u,{...e,onColumnVisibilityChange:n=>{e.onColumnVisibilityChange?.(n),t({columnVisibility:n})},onColumnOrderChange:n=>{e.onColumnOrderChange?.(n),t({columnOrder:n})},onColumnSizingChange:n=>{e.onColumnSizingChange?.(n),t({columnSizing:n})},onColumnPinningChange:n=>{e.onColumnPinningChange?.(n),t({columnPinning:n})},onRowSelectionChange:n=>{e.onRowSelectionChange?.(n),t({selectedRowIds:Pe(e,n)})}})}function g({args:e}){let{columns:t,metadata:n,isLoading:r}=s({service:F,target:I,mode:`build`});return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Режим build: hook собрал `,t.length,` колонки из metadata`,n?` для сущности «${n.title}».`:`.`]}),(0,b.jsx)(h,{args:{...e,columns:t,isLoading:e.isLoading??r}})]})}function _({args:e}){let{columns:t,metadata:n,isLoading:r}=s({service:F,target:I,mode:`enrich`,columns:N});return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Режим enrich: hook сохранил ручные заголовки и дополнил formatting-контекст`,n?` из metadata «${n.title}».`:`.`]}),(0,b.jsx)(h,{args:{...e,columns:t,isLoading:e.isLoading??r}})]})}function v({args:e}){let[t,n]=(0,y.useState)(0);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Событие достижения конца: `,t]}),(0,b.jsx)(h,{args:{...e,onReachEnd:()=>{e.onReachEnd?.(),n(e=>e+1)}}})]})}var y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,Fe,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,Ie;function Le(){return(Le=e((()=>{y=n(),re(),ee(),o(),te(),Me(),b=r(),{useArgs:x}=__STORYBOOK_MODULE_PREVIEW_API__,S=[{id:`1`,number:`450001`,client:`Северсталь`,manager:`Иван Петров`,amount:`1 250 000`,status:`Новая`},{id:`2`,number:`450002`,client:`ММК`,manager:`Анна Смирнова`,amount:`980 000`,status:`В работе`},{id:`3`,number:`450003`,client:`НЛМК`,manager:`Олег Николаев`,amount:`1 540 000`,status:`Согласование`},{id:`4`,number:`450004`,client:`ЕВРАЗ`,manager:`Мария Кузнецова`,amount:`760 000`,status:`Отгружена`},{id:`5`,number:`450005`,client:`ТМК`,manager:`Дмитрий Волков`,amount:`1 120 000`,status:`Закрыта`}],C=[...S,{id:`6`,number:`450006`,client:`ОМК`,manager:`Елена Андреева`,amount:`680 000`,status:`Архив`,isLocked:!0}],w=Array.from({length:18},(e,t)=>({id:String(t+1),number:`4600${String(t+1).padStart(2,`0`)}`,client:`Клиент ${t+1}`,manager:`Менеджер ${t+1}`,amount:`${850+t*15} 000`,status:t%2==0?`В работе`:`Согласование`})),T=[{id:`number`,accessorKey:`number`,header:`Номер`,meta:{width:9}},{id:`client`,accessorKey:`client`,header:`Клиент`,meta:{width:14}},{id:`manager`,accessorKey:`manager`,header:`Менеджер`,meta:{width:12}},{id:`amount`,accessorKey:`amount`,header:`Сумма`,meta:{width:10,align:`right`}},{id:`status`,accessorKey:`status`,header:`Статус`,meta:{width:11}}],E=[{id:`fmt-1`,product:`Лист горячекатаный`,purchasePrice:80,salePrice:120,healthScore:35,pendingAmount:0,createdAt:`2026-03-18T09:15:00.000Z`,totalAmount:1520.5},{id:`fmt-2`,product:`Рулон оцинкованный`,purchasePrice:95,salePrice:150,healthScore:125,pendingAmount:320,createdAt:`2026-03-19T11:40:00.000Z`,totalAmount:2140},{id:`fmt-3`,product:`Арматура`,purchasePrice:60,salePrice:90,healthScore:70,pendingAmount:0,createdAt:`2026-03-20T07:05:00.000Z`,totalAmount:980.75}],D=[{id:`merge-1`,division:`ДВД`,department:`Продажи`,employee:`Иван Петров`},{id:`merge-2`,division:`ДВД`,department:`Продажи`,employee:`Анна Смирнова`},{id:`merge-3`,division:`ДВД`,department:`Продажи`,employee:`Олег Николаев`},{id:`merge-4`,division:`УД`,department:`Логистика`,employee:`Мария Кузнецова`},{id:`merge-5`,division:`УД`,department:`Логистика`,employee:`Дмитрий Волков`},{id:`merge-6`,division:`УД`,department:`Логистика`,employee:`Елена Андреева`},{id:`merge-7`,division:`УД`,department:`Логистика`,employee:`Николай Орлов`}],O=[{id:`division`,accessorKey:`division`,header:`Дивизион`,meta:{width:10,mergeDuplicates:!0}},{id:`department`,accessorKey:`department`,header:`Подразделение`,meta:{width:12}},{id:`employee`,accessorKey:`employee`,header:`Сотрудник`,meta:{width:14}}],k=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`purchasePrice`,accessorKey:`purchasePrice`,header:`Закупка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`salePrice`,accessorKey:`salePrice`,header:`Продажа`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`markup`,accessorFn:()=>void 0,header:`Наценка`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,formulaId:`markup`,formulaDependencies:[`purchasePrice`,`salePrice`],purelyDerived:!0}}}],A=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`healthScore`,accessorKey:`healthScore`,header:`Индекс риска`,meta:{width:10,align:`right`,formatting:{role:`measure`,type:`decimal`,formattersPipeline:m()}}}],j=[{id:`product`,accessorKey:`product`,header:`Товар`,meta:{width:16}},{id:`pendingAmount`,accessorKey:`pendingAmount`,header:`Резерв`,meta:{width:9,align:`right`,formatting:{role:`measure`,type:`decimal`,emptyWhenZero:!0}}}],M=[{id:`product`,type:`string`,originalType:`Edm.String`,label:`Товар`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`createdAt`,type:`datetime`,originalType:`Edm.DateTime`,label:`Дата создания`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`totalAmount`,type:`decimal`,originalType:`Edm.Decimal`,label:`Сумма`,semanticType:`none`,sortable:!0,filterable:!0,role:`measure`}],N=[{id:`product`,accessorKey:`product`,header:`Позиция`,meta:{width:16}},{id:`createdAt`,accessorKey:`createdAt`,header:`Создано`,meta:{width:12}},{id:`totalAmount`,accessorKey:`totalAmount`,header:`Итог`,meta:{width:9,align:`right`}}],P=ie(N,M),F=`ZDEMO_DEALS_SRV`,I=`DealSet`,L={title:`Портфель сделок`,columns:M},R=(e,t)=>{let n=(0,y.useMemo)(()=>{let e=i({}),n=t.parameters.odataService,r=t.parameters.odataEntity,a=t.parameters.odataMetadata;return n&&r&&a&&e.setQueryData(Ne(n),{entities:{[r]:a},functionImports:{}}),e},[t.parameters.odataEntity,t.parameters.odataMetadata,t.parameters.odataService]);return(0,b.jsx)(a,{client:n,children:e()})},Fe={title:`UI/Table`,component:u,args:{title:`Сделки`,data:S,columns:T,getRowId:e=>e.id,selectionMode:`single`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок таблицы.`,control:`text`},isLoading:{description:`Показывает состояние первичной загрузки.`,control:`boolean`},isFetching:{description:`Показывает фоновое обновление без очистки строк.`,control:`boolean`},data:{description:`Плоский источник строк.`,control:!1},columns:{description:`Описание колонок таблицы.`,control:!1},selectionMode:{description:`Режим выбора строк.`,control:`inline-radio`,options:[`none`,`single`,`multi`]},selectedRowIds:{description:`Controlled-набор выбранных id строк.`,control:!1},getRowId:{description:`Функция получения стабильного id строки.`,control:!1},minHeight:{description:`Минимальная высота scroll-области таблицы в em или процентах.`,control:`text`},columnVisibility:{description:`Controlled-состояние видимости колонок.`,control:!1},defaultColumnVisibility:{description:`Стартовое uncontrolled-состояние видимости колонок.`,control:!1},columnOrder:{description:`Controlled-порядок идентификаторов колонок.`,control:!1},defaultColumnOrder:{description:`Стартовый uncontrolled-порядок колонок.`,control:!1},columnSizing:{description:`Controlled-ширины колонок в px.`,control:!1},defaultColumnSizing:{description:`Стартовые uncontrolled-ширины колонок.`,control:!1},columnPinning:{description:`Controlled-состояние закрепления колонок слева.`,control:!1},defaultColumnPinning:{description:`Стартовое uncontrolled-состояние закрепления колонок слева.`,control:!1},onColumnPinningChange:{description:`Вызывается после изменения закрепления колонок слева.`,control:!1},enableColumnResizing:{description:`Включает изменение ширины колонок через header-handle.`,control:`boolean`},enableColumnReordering:{description:`Включает перетаскивание заголовков для изменения порядка колонок.`,control:`boolean`},columnResizeMinWidth:{description:`Минимальная ширина колонки при resize в px.`,control:`number`},onColumnVisibilityChange:{description:`Вызывается после изменения видимости колонок.`,control:!1},onColumnOrderChange:{description:`Вызывается после изменения порядка колонок.`,control:!1},onColumnSizingChange:{description:`Вызывается после изменения ширины колонок.`,control:!1},getRowCanSelect:{description:`Позволяет запретить выбор отдельных строк.`,control:!1},getRowClassName:{description:`Позволяет добавить CSS-класс для конкретной строки.`,control:!1},onRowClick:{description:`Вызывается при активации строки.`,control:!1},onRowSelectionChange:{description:`Вызывается после изменения выбранных строк.`,control:!1},onReachEnd:{description:`Вызывается при достижении конца списка внутри scroll-контейнера.`,control:!1},renderHeaderContextMenu:{description:`Слот контекстного меню заголовка колонки.`,control:!1},renderCellContent:{description:`Слот содержимого ячейки поверх стандартного formatting-runtime.`,control:!1}}},z={render:function(e){return(0,b.jsx)(h,{args:e})}},B={args:{columnPinning:{start:[`number`]}},render:function(e){let[,t]=x(),n=e.columnPinning??{start:[]};return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{style:{display:`flex`,gap:`0.5em`,flexWrap:`wrap`},children:[(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`]}}),children:`Закрепить «Номер»`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[`number`,`client`]}}),children:`Закрепить «Номер» и «Клиент»`}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>t({columnPinning:{start:[]}}),children:`Снять закрепление`})]}),(0,b.jsxs)(`div`,{children:[`Закреплено в начале: `,n.start?.length?n.start.join(`, `):`ничего`]}),(0,b.jsx)(h,{args:{...e,columnPinning:n}})]})}},V={args:{selectionMode:`multi`,selectedRowIds:[]},render:function(e){return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,b.jsx)(h,{args:e})]})}},H={args:{data:C,selectionMode:`multi`,selectedRowIds:[],getRowCanSelect:e=>!e.isLocked},render:function(e){return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,b.jsx)(`div`,{children:`Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.`}),(0,b.jsxs)(`div`,{children:[`Выбрано: `,e.selectedRowIds?.length?e.selectedRowIds.join(`, `):`ничего`]}),(0,b.jsx)(h,{args:e})]})}},U={args:{isFetching:!0},render:function(e){return(0,b.jsx)(h,{args:e})}},W={args:{data:[]},render:function(e){return(0,b.jsx)(h,{args:e})}},G={args:{data:w},render:function(e){return(0,b.jsx)(v,{args:e})}},K={args:{isLoading:!0},render:function(e){return(0,b.jsx)(h,{args:e})}},q={args:{title:`Формула наценки`,data:E,columns:k,selectionMode:`none`,getRowId:e=>e.id},render:function(e){return(0,b.jsx)(h,{args:e})}},J={args:{title:`Pipeline форматирования`,data:E,columns:A,selectionMode:`none`,getRowId:e=>e.id},render:function(e){return(0,b.jsx)(h,{args:e})}},Y={args:{title:`Скрытие нулей`,data:E,columns:j,selectionMode:`none`,getRowId:e=>e.id},render:function(e){return(0,b.jsx)(h,{args:e})}},X={args:{title:`Слияние дубликатов`,data:D,columns:O,selectionMode:`none`,getRowId:e=>e.id},render:function(e){return(0,b.jsx)(h,{args:e})}},Z={args:{title:`OData metadata adapter`,data:E,columns:P,selectionMode:`none`,getRowId:e=>e.id},render:function(e){return(0,b.jsx)(h,{args:e})}},Q={args:{title:`useODataTableColumns: build`,data:E,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[R],parameters:{odataService:F,odataEntity:I,odataMetadata:L},render:function(e){return(0,b.jsx)(g,{args:e})}},$={args:{title:`useODataTableColumns: enrich`,data:E,columns:[],selectionMode:`none`,getRowId:e=>e.id},decorators:[R],parameters:{odataService:F,odataEntity:I,odataMetadata:L},render:function(e){return(0,b.jsx)(_,{args:e})}},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
7
- render: function Render(args) {
8
- return <TableStoryCanvas args={args} />;
9
- }
10
- }`,...z.parameters?.docs?.source},description:{story:`Базовый сценарий плоской таблицы с одиночным выбором.`,...z.parameters?.docs?.description}}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
11
- args: {
12
- columnPinning: {
13
- start: ["number"]
14
- }
15
- },
16
- render: function Render(args) {
17
- const [, updateArgs] = useArgs<TableProps<DealRow>>();
18
- const columnPinning = args.columnPinning ?? {
19
- start: []
20
- };
21
- return <div style={{
22
- display: "grid",
23
- gap: "0.75em"
24
- }}>
25
- <div style={{
26
- display: "flex",
27
- gap: "0.5em",
28
- flexWrap: "wrap"
29
- }}>
30
- <button type="button" onClick={() => updateArgs({
31
- columnPinning: {
32
- start: ["number"]
33
- }
34
- })}>
35
- Закрепить «Номер»
36
- </button>
37
- <button type="button" onClick={() => updateArgs({
38
- columnPinning: {
39
- start: ["number", "client"]
40
- }
41
- })}>
42
- Закрепить «Номер» и «Клиент»
43
- </button>
44
- <button type="button" onClick={() => updateArgs({
45
- columnPinning: {
46
- start: []
47
- }
48
- })}>
49
- Снять закрепление
50
- </button>
51
- </div>
52
- <div>Закреплено в начале: {columnPinning.start?.length ? columnPinning.start.join(", ") : "ничего"}</div>
53
- <TableStoryCanvas args={{
54
- ...args,
55
- columnPinning
56
- }} />
57
- </div>;
58
- }
59
- }`,...B.parameters?.docs?.source},description:{story:`Демонстрирует controlled start-pinning через внешний story-state без встроенного UI таблицы.`,...B.parameters?.docs?.description}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
60
- args: {
61
- selectionMode: "multi",
62
- selectedRowIds: []
63
- },
64
- render: function Render(args) {
65
- return <div style={{
66
- display: "grid",
67
- gap: "0.75em"
68
- }}>
69
- <div>Выбрано: {args.selectedRowIds?.length ? args.selectedRowIds.join(", ") : "ничего"}</div>
70
- <TableStoryCanvas args={args} />
71
- </div>;
72
- }
73
- }`,...V.parameters?.docs?.source},description:{story:`Множественный выбор с отображением текущего результата.`,...V.parameters?.docs?.description}}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
74
- args: {
75
- data: nonSelectableRows,
76
- selectionMode: "multi",
77
- selectedRowIds: [],
78
- getRowCanSelect: row => !row.isLocked
79
- },
80
- render: function Render(args) {
81
- return <div style={{
82
- display: "grid",
83
- gap: "0.75em"
84
- }}>
85
- <div>Строка со статусом «Архив» остаётся видимой, но не участвует в выборе.</div>
86
- <div>Выбрано: {args.selectedRowIds?.length ? args.selectedRowIds.join(", ") : "ничего"}</div>
87
- <TableStoryCanvas args={args} />
88
- </div>;
89
- }
90
- }`,...H.parameters?.docs?.source},description:{story:`Часть строк можно показать, но запретить выбирать.`,...H.parameters?.docs?.description}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
91
- args: {
92
- isFetching: true
93
- },
94
- render: function Render(args) {
95
- return <TableStoryCanvas args={args} />;
96
- }
97
- }`,...U.parameters?.docs?.source},description:{story:`Сценарий фонового обновления данных без очистки таблицы.`,...U.parameters?.docs?.description}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
98
- args: {
99
- data: []
100
- },
101
- render: function Render(args) {
102
- return <TableStoryCanvas args={args} />;
103
- }
104
- }`,...W.parameters?.docs?.source},description:{story:`Пустой источник данных.`,...W.parameters?.docs?.description}}},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
105
- args: {
106
- data: reachEndRows
107
- },
108
- render: function Render(args) {
109
- return <ReachEndTableCanvas args={args} />;
110
- }
111
- }`,...G.parameters?.docs?.source},description:{story:`Демонстрация callback при достижении конца списка.`,...G.parameters?.docs?.description}}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
112
- args: {
113
- isLoading: true
114
- },
115
- render: function Render(args) {
116
- return <TableStoryCanvas args={args} />;
117
- }
118
- }`,...K.parameters?.docs?.source},description:{story:`Состояние первичной загрузки.`,...K.parameters?.docs?.description}}},q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
119
- args: {
120
- title: "Формула наценки",
121
- data: formattingRows,
122
- columns: formulaColumns,
123
- selectionMode: "none",
124
- getRowId: row => row.id
125
- },
126
- render: function Render(args) {
127
- return <TableStoryCanvas args={args} />;
128
- }
129
- }`,...q.parameters?.docs?.source},description:{story:"Сценарий с formula-based колонкой без кастомного `cell`.",...q.parameters?.docs?.description}}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
130
- args: {
131
- title: "Pipeline форматирования",
132
- data: formattingRows,
133
- columns: pipelineColumns,
134
- selectionMode: "none",
135
- getRowId: row => row.id
136
- },
137
- render: function Render(args) {
138
- return <TableStoryCanvas args={args} />;
139
- }
140
- }`,...J.parameters?.docs?.source},description:{story:`Сценарий с pipeline display-formatting и value-state.`,...J.parameters?.docs?.description}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
141
- args: {
142
- title: "Скрытие нулей",
143
- data: formattingRows,
144
- columns: hiddenZeroColumns,
145
- selectionMode: "none",
146
- getRowId: row => row.id
147
- },
148
- render: function Render(args) {
149
- return <TableStoryCanvas args={args} />;
150
- }
151
- }`,...Y.parameters?.docs?.source},description:{story:"Сценарий со скрытием нулевых значений через `emptyWhenZero`.",...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
152
- args: {
153
- title: "Слияние дубликатов",
154
- data: divisionMergeRows,
155
- columns: divisionMergeColumns,
156
- selectionMode: "none",
157
- getRowId: row => row.id
158
- },
159
- render: function Render(args) {
160
- return <TableStoryCanvas args={args} />;
161
- }
162
- }`,...X.parameters?.docs?.source},description:{story:`Сценарий со display-only слиянием подряд идущих дубликатов через пустые ячейки и CSS-склейку.`,...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
163
- args: {
164
- title: "OData metadata adapter",
165
- data: formattingRows,
166
- columns: adapterColumns,
167
- selectionMode: "none",
168
- getRowId: row => row.id
169
- },
170
- render: function Render(args) {
171
- return <TableStoryCanvas args={args} />;
172
- }
173
- }`,...Z.parameters?.docs?.source},description:{story:`Сценарий со статическим OData metadata adapter в режиме enrich.`,...Z.parameters?.docs?.description}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
174
- args: {
175
- title: "useODataTableColumns: build",
176
- data: formattingRows,
177
- columns: [],
178
- selectionMode: "none",
179
- getRowId: row => row.id
180
- },
181
- decorators: [withMockedHookODataMetadata],
182
- parameters: {
183
- odataService: HOOK_ODATA_SERVICE,
184
- odataEntity: HOOK_ODATA_ENTITY,
185
- odataMetadata: hookMetadata
186
- },
187
- render: function Render(args) {
188
- return <HookBuildTableStory args={args} />;
189
- }
190
- }`,...Q.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме build.",...Q.parameters?.docs?.description}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
191
- args: {
192
- title: "useODataTableColumns: enrich",
193
- data: formattingRows,
194
- columns: [],
195
- selectionMode: "none",
196
- getRowId: row => row.id
197
- },
198
- decorators: [withMockedHookODataMetadata],
199
- parameters: {
200
- odataService: HOOK_ODATA_SERVICE,
201
- odataEntity: HOOK_ODATA_ENTITY,
202
- odataMetadata: hookMetadata
203
- },
204
- render: function Render(args) {
205
- return <HookEnrichTableStory args={args} />;
206
- }
207
- }`,...$.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме enrich.",...$.parameters?.docs?.description}}},Ie=[`Basic`,`WithColumnPinning`,`MultiSelect`,`WithDisabledRows`,`Fetching`,`Empty`,`ReachEnd`,`Loading`,`WithFormulaColumn`,`WithFormattingPipeline`,`WithHiddenZero`,`WithMergedDuplicates`,`WithODataMetadataAdapter`,`WithUseODataTableColumnsBuildHook`,`WithUseODataTableColumnsEnrichHook`]})))()}export{Le as _,V as a,B as c,q as d,Y as f,$ as g,Q as h,K as i,H as l,Z as m,W as n,G as o,X as p,U as r,p as s,z as t,J as u};
@@ -1,14 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{n,t as r}from"./TimePanel-B-rvi-xm.js";function i(e){let[,t]=o(),n=e.value;return(0,a.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,a.jsx)(r,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}var a,o,s,c,l,u,d;function f(){return(f=e((()=>{n(),a=t(),{useArgs:o}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`UI/Internal/DateTime/TimePanel`,component:r,args:{value:new Date(2026,2,10,12,30,0,0),onChange:s(),disabled:!1,mode:`date-time`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{value:{description:`Текущая дата, из которой панель берёт календарный день и время.`,control:!1},disabled:{description:`Блокирует оба wheel-picker-а.`,control:`boolean`},minDate:{description:`Нижняя граница доступного времени для выбранного дня.`,control:`date`},maxDate:{description:`Верхняя граница доступного времени для выбранного дня.`,control:`date`},mode:{description:`Режим вычисления доступного времени.`,control:`inline-radio`,options:[`date-time`,`time`]},onChange:{description:`Вызывается с выбранными часами и минутами.`,control:!1}}},l={render:function(e){return(0,a.jsx)(i,{...e})}},u={render:function(e){return(0,a.jsx)(i,{...e})},args:{value:new Date(2026,2,10,9,30,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{
2
- render: function Render(args) {
3
- return <TimePanelStoryCanvas {...args} />;
4
- }
5
- }`,...l.parameters?.docs?.source},description:{story:`Демонстрирует базовую wheel-панель времени.`,...l.parameters?.docs?.description}}},u.parameters={...u.parameters,docs:{...u.parameters?.docs,source:{originalSource:`{
6
- render: function Render(args) {
7
- return <TimePanelStoryCanvas {...args} />;
8
- },
9
- args: {
10
- value: new Date(2026, 2, 10, 9, 30, 0, 0),
11
- minDate: new Date(2026, 2, 10, 9, 15, 0, 0),
12
- maxDate: new Date(2026, 2, 10, 18, 30, 0, 0)
13
- }
14
- }`,...u.parameters?.docs?.source},description:{story:`Показывает ограничение диапазона на том же календарном дне.`,...u.parameters?.docs?.description}}},d=[`Default`,`WithLimits`]})))()}f();export{l as Default,u as WithLimits,d as __namedExportsOrder,c as default};
@@ -1,168 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./chevron-down-DXkNPvpX.js";import{n as a,t as o}from"./chevron-right-u6yLjLrs.js";import{n as s}from"./iframe-YrfSEgEg.js";import{J as c,X as l,Y as u,Z as d,_ as ee,a as f,b as te,g as ne,h as re,i as ie,y as ae}from"./odata-j4p1dw3i.js";import{a as oe,i as se}from"./utils-tg3ibbzi.js";import{i as ce,y as le}from"./formatters-D33Uh3si-Df97arf9.js";import{_ as ue,a as de,b as fe,c as pe,d as me,f as he,g as ge,h as _e,i as ve,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke,y as Ae}from"./FormattedTableCell-DP6-D86D.js";function je(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function p(e){return Array.from(new Set(e))}function Me(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[],s=[],c=[];for(let o of e){let e=t.getRowId(o);if(n.has(e)){a.push(e);continue}let s=t.getParentRowId(o)??null;n.set(e,o),r.set(e,s),c.push(e),s!==null&&s!==e&&je(i,s,e)}let l=[];for(let e of c){let t=r.get(e)??null;if(t===null){l.push(e);continue}if(t===e){s.push(e),l.push(e);continue}n.has(t)||(o.push(e),l.push(e))}let u=new Set,d=(e,t)=>{let r=n.get(e);if(!r)throw Error(`Не удалось построить дерево: строка "${e}" отсутствует в индексе.`);u.add(e);let a=new Set(t);a.add(e);let o={...r},c=i.get(e)??[],l=[];for(let e of c){if(a.has(e)){s.push(e);continue}u.has(e)||l.push(d(e,a))}return l.length>0&&(o.children=l),o},ee=[],f=[];for(let e of l)u.has(e)||(ee.push(d(e,new Set)),f.push(e));for(let e of c)u.has(e)||(s.push(e),ee.push(d(e,new Set)),f.push(e));return{rows:ee,rowById:n,allRowIds:c,rootRowIds:p(f),orphanRowIds:p(o),duplicateRowIds:p(a),cyclicRowIds:p(s)}}function m(){return(m=e((()=>{})))()}var h,Ne,Pe,Fe,g,_,v,y;function b(){return(b=e((()=>{h=`jOS9rT`,Ne=`zHOAf7`,Pe=`j48cXg`,Fe=`mf4-Kr`,g=`p8pb0F`,_=`KIudLf`,v=`bJsPGU`,y={treeColumnCell:h,selectedIndicatorCell:Ne,treeCell:Pe,treeCellContent:Fe,expanderButton:g,expanderSpacer:_,sentinel:v}})))()}function Ie(e){return Object.fromEntries(e.map(e=>[e,!0]))}function Le(e){return typeof e==`boolean`?[]:Object.keys(e).filter(t=>e[t])}function x(e,t){return t.get(e.id)??e.original}function Re(e,t,n,r){return e.cell.column.id===n?(0,w.jsxs)(`div`,{className:y.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${ae(r)??`0em`})`},children:[e.row.getCanExpand()?(0,w.jsx)(`button`,{type:`button`,className:y.expanderButton,"aria-label":e.row.getIsExpanded()?`Свернуть строку`:`Развернуть строку`,"data-tree-table-interactive":`true`,"data-ui":`tree-table-expander`,"data-action":e.row.getIsExpanded()?`collapse-tree-table-row`:`expand-tree-table-row`,onClick:t=>{t.stopPropagation(),e.row.toggleExpanded()},children:e.row.getIsExpanded()?(0,w.jsx)(i,{size:16}):(0,w.jsx)(o,{size:16})}):(0,w.jsx)(`span`,{className:y.expanderSpacer,"aria-hidden":`true`}),(0,w.jsx)(`div`,{className:y.treeCellContent,children:t})]}):t}function S({title:e,isLoading:t,isFetching:n,data:r,columns:i,hierarchy:a,selectionMode:o=`none`,expandFirstLevel:s=!1,defaultExpandedRowIds:c,treeColumnId:l,indentSize:u=1,className:d,tableClassName:f,columnVisibility:te,defaultColumnVisibility:re,columnOrder:ie,defaultColumnOrder:ae,columnSizing:se,defaultColumnSizing:le,columnPinning:de,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:ye,onColumnOrderChange:be,onColumnSizingChange:xe,onColumnPinningChange:Te,onRowClick:Ae,onRowSelectionChange:je,onExpandedRowIdsChange:p,onReachEnd:m,getRowCanSelect:h,getRowClassName:Ne,renderHeaderContextMenu:Pe,renderCellContent:Fe}){let g=(0,C.useMemo)(()=>Me(r??[],a),[r,a]),_=(0,C.useMemo)(()=>_e(i),[i]),v=(0,C.useMemo)(()=>{let e=new Set(c??[]);if(s)for(let t of g.rootRowIds)e.add(t);return Array.from(e)},[c,s,g.rootRowIds]),[b,S]=(0,C.useState)({}),T=(0,C.useRef)(!1),E=(0,C.useRef)(null),ze=(0,C.useRef)(null),{rowSelection:Be,activateRowSelection:D}=ne({availableRowIds:g.allRowIds,rowById:g.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:O,onColumnVisibilityChange:Ve}=Se({columnVisibility:te,defaultColumnVisibility:re,onColumnVisibilityChange:ye}),{columnOrder:k,onColumnOrderChange:He}=he({columnOrder:ie,defaultColumnOrder:ae,onColumnOrderChange:be}),{columnSizing:A,onColumnSizingChange:Ue}=pe({columnSizing:se,defaultColumnSizing:le,columnResizeMinWidth:ve,onColumnSizingChange:xe}),{columnPinning:j,onColumnPinningChange:We}=De({columnPinning:de,defaultColumnPinning:fe,onColumnPinningChange:Te}),Ge=(0,C.useMemo)(()=>({columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:O}),[k,j,A,O]),M=(0,C.useEffectEvent)((e,t)=>{if(e.length===0){T.current=!1,S({});return}let n=new Set(e);S(e=>{let r=Le(e).filter(e=>n.has(e));return T.current?Ie(r):(T.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),Ke=(0,C.useEffectEvent)(e=>{p?.(Le(e))}),N=(0,C.useEffectEvent)(()=>{m?.()});(0,C.useEffect)(()=>{M(g.allRowIds,v)},[v,g.allRowIds]),(0,C.useEffect)(()=>{Ke(b)},[b]),(0,C.useEffect)(()=>{if(!m||!E.current||!ze.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&N()},{root:E.current,threshold:.1});return e.observe(ze.current),()=>e.disconnect()},[t,m,g.rows.length]);let P=ke({features:ee,data:g.rows,columns:i,state:{columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:O,expanded:b,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,onColumnOrderChange:He,onColumnPinningChange:We,onColumnSizingChange:Ue,onColumnVisibilityChange:Ve,onExpandedChange:S,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=x(e,g.rowById);return!h||h(t)}}),F=Oe(P,Ge),I=l??F[0]?.id,qe=P.getRowModel().rows,Je=(0,C.useMemo)(()=>Ce({rows:qe,columns:F,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:I?new Set([I]):void 0}),[qe,F,I]);return(0,w.jsx)(we,{table:P,columnState:Ge,title:e,isLoading:t,isFetching:n,className:d,tableClassName:f,selectionMode:o,scrollableRef:E,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||Ae?e=>{let t=x(e,g.rowById);D(e.id,e.getCanSelect()),Ae?.(t)}:void 0,isRowInteractive:e=>!!(Ae||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=x(e,g.rowById);return Ne?.(t)},getCellClassName:({row:e,cell:t})=>oe(t.column.id===I&&y.treeColumnCell,t.column.id===I&&e.getIsSelected()&&y.selectedIndicatorCell),getCellLayout:({cell:e})=>Je.get(e.id),renderHeaderContextMenu:Pe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=x(e.row,g.rowById),n=ce({field:_.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=ue({columnId:e.cell.column.id,runtimeByColumnId:_.runtimeByColumnId,customCellColumnIds:_.customCellColumnIds})?(0,w.jsx)(Ee,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return Re(e,Fe?Fe({...e,defaultContent:r,displayValue:n}):r,I,u)},afterTableContent:m?(0,w.jsx)(`div`,{ref:ze,className:y.sentinel,"aria-hidden":`true`}):null})}var C,w;function T(){return(T=e((()=>{C=n(),le(),te(),m(),se(),fe(),r(),a(),ve(),be(),ge(),xe(),Ae(),me(),ye(),Te(),de(),b(),w=s(),S.__docgenInfo={description:`Древовидная таблица на базе TanStack Table для плоских OData-данных.`,methods:[],displayName:`TreeTable`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок через исходный тип строки.`},hierarchy:{required:!0,tsType:{name:`TreeTableFlatHierarchy`,elements:[{name:`TData`}],raw:`TreeTableFlatHierarchy<TData>`},description:`Правила восстановления дерева из плоского списка.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},expandFirstLevel:{required:!1,tsType:{name:`boolean`},description:"Если `true`, при первом появлении данных раскрывает корневой уровень.",defaultValue:{value:`false`,computed:!1}},defaultExpandedRowIds:{required:!1,tsType:{name:`unknown`},description:`Дополнительные строки, которые должны быть раскрыты при первой инициализации.`},treeColumnId:{required:!1,tsType:{name:`string`},description:`Идентификатор колонки, в которой нужно рисовать tree-toggle и отступы.
2
-
3
- Если не указан, используется первая видимая колонка.`},indentSize:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:`Отступ на один уровень вложенности.
4
-
5
- Числовое значение трактуется как \`em\`.`,defaultValue:{value:`1`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Дополнительный CSS-класс корневого контейнера.`},tableClassName:{required:!1,tsType:{name:`string`},description:"Дополнительный CSS-класс тега `table`."},columnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Внешнее controlled-состояние видимости колонок.`},defaultColumnVisibility:{required:!1,tsType:{name:`TableColumnVisibilityState`},description:`Стартовое uncontrolled-состояние видимости колонок.`},columnOrder:{required:!1,tsType:{name:`unknown`},description:`Внешнее controlled-состояние порядка колонок.`},defaultColumnOrder:{required:!1,tsType:{name:`unknown`},description:`Стартовое uncontrolled-состояние порядка колонок.`},columnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Внешнее controlled-состояние ширин колонок в px.`},defaultColumnSizing:{required:!1,tsType:{name:`TableColumnSizingState`},description:`Стартовое uncontrolled-состояние ширин колонок в px.`},columnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Внешнее controlled-состояние start-pinning для колонок.`},defaultColumnPinning:{required:!1,tsType:{name:`TableColumnPinningState`},description:`Стартовое uncontrolled-состояние start-pinning для колонок.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:`Включает изменение ширины колонок через header-handle.`,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:`Включает изменение порядка колонок через drag&drop заголовков.`,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:`Минимальная ширина колонки при resize в px.`},onColumnVisibilityChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnVisibilityState) => void`,signature:{arguments:[{type:{name:`TableColumnVisibilityState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения видимости колонок.`},onColumnOrderChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnOrderState) => void`,signature:{arguments:[{type:{name:`TableColumnOrderState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения порядка колонок.`},onColumnSizingChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnSizingState) => void`,signature:{arguments:[{type:{name:`TableColumnSizingState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения ширины колонок.`},onColumnPinningChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(state: TableColumnPinningState) => void`,signature:{arguments:[{type:{name:`TableColumnPinningState`},name:`state`}],return:{name:`void`}}},description:`Вызывается после изменения start-pinning state.`},onRowClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => void`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`void`}}},description:`Вызывается при активации строки кликом или клавиатурой.`},onRowSelectionChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(rows: TData[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TData`}],raw:`TData[]`},name:`rows`}],return:{name:`void`}}},description:`Вызывается после изменения выбранных строк.`},onExpandedRowIdsChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(rowIds: string[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},name:`rowIds`}],return:{name:`void`}}},description:`Вызывается после изменения раскрытых узлов.`},onReachEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Вызывается при достижении конца таблицы внутри scroll-контейнера.`},getRowCanSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => boolean`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`boolean`}}},description:`Позволяет запретить выбор отдельных строк.`},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData) => string | undefined`,signature:{arguments:[{type:{name:`TData`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:`Позволяет добавить CSS-класс для конкретной строки.`},renderHeaderContextMenu:{required:!1,tsType:{name:`BaseTableProps["renderHeaderContextMenu"]`,raw:`BaseTableProps<TreeTableRuntimeRow<TData>>["renderHeaderContextMenu"]`},description:`Контекстное меню заголовка колонки. Получает runtime-строки дерева,
6
- потому что BaseTable работает уже после сборки flat hierarchy.`},renderCellContent:{required:!1,tsType:{name:`BaseTableProps["renderCellContent"]`,raw:`BaseTableProps<TreeTableRuntimeRow<TData>>["renderCellContent"]`},description:`Точка расширения содержимого ячейки после общего форматирования.
7
-
8
- Для tree-column в \`defaultContent\` передается только содержимое ячейки:
9
- TreeTable сам добавит expander и отступ после выполнения слота.`}}}})))()}var E=t({Basic:()=>z,CollapsedByDefault:()=>V,Empty:()=>G,Fetching:()=>W,Loading:()=>K,MultiSelect:()=>B,WithDefaultExpandedBranch:()=>H,WithDisabledRows:()=>U,WithFormattedTreeColumn:()=>J,WithFormulaColumn:()=>q,WithHiddenZero:()=>Y,WithMergedDuplicates:()=>X,WithODataMetadataAdapter:()=>Z,WithUseODataTableColumnsBuildHook:()=>Q,WithUseODataTableColumnsEnrichHook:()=>$,__namedExportsOrder:()=>et,default:()=>$e});function ze(){return{version:1,plan:{steps:[{id:`state`,type:`resolveValueState`,config:{resolver:{kind:`threshold`,thresholds:[100],states:[`success`,`warning`],invalidState:`none`},icon:{enabled:!0,showValue:!0,position:`right`}}},{id:`typed`,type:`typedValueFormat`}]}}}function Be(e){return[`odata`,`metadata`,{service:e}]}function D({args:e}){let[,t]=Ue();return(0,A.jsx)(S,{...e,onColumnVisibilityChange:n=>{e.onColumnVisibilityChange?.(n),t({columnVisibility:n})},onColumnOrderChange:n=>{e.onColumnOrderChange?.(n),t({columnOrder:n})},onColumnSizingChange:n=>{e.onColumnSizingChange?.(n),t({columnSizing:n})},onColumnPinningChange:n=>{e.onColumnPinningChange?.(n),t({columnPinning:n})}})}function O({args:e}){let{columns:t,metadata:n,isLoading:r}=ie({service:L,target:R,mode:`build`});return(0,A.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,A.jsxs)(`div`,{children:[`Режим build: hook собрал `,t.length,` колонки из metadata`,n?` для сущности «${n.title}».`:`.`]}),(0,A.jsx)(D,{args:{...e,columns:t,isLoading:e.isLoading??r}})]})}function Ve({args:e}){let{columns:t,metadata:n,isLoading:r}=ie({service:L,target:R,mode:`enrich`,columns:[{id:`label`,accessorKey:`label`,header:`Статья`,meta:{width:16}},{id:`createdAt`,accessorKey:`createdAt`,header:`Создано`,meta:{width:12}},{id:`totalAmount`,accessorKey:`totalAmount`,header:`Итог`,meta:{width:10,align:`right`}}]});return(0,A.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[(0,A.jsxs)(`div`,{children:[`Режим enrich: hook сохранил ручные tree-колонки и дополнил их formatting-контекстом`,n?` из metadata «${n.title}».`:`.`]}),(0,A.jsx)(D,{args:{...e,columns:t,isLoading:e.isLoading??r}})]})}function k({args:e,intro:t}){let[n,r]=(0,He.useState)([]);return(0,A.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`},children:[t?(0,A.jsx)(`div`,{children:t}):null,(0,A.jsxs)(`div`,{children:[`Выбрано: `,n.length>0?n.join(`, `):`ничего`]}),(0,A.jsx)(D,{args:{...e,onRowSelectionChange:t=>{e.onRowSelectionChange?.(t),r(t.map(e=>e.label))}}})]})}var He,A,Ue,j,We,Ge,M,Ke,N,P,F,I,qe,Je,Ye,Xe,L,R,Ze,Qe,$e,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,et;function tt(){return(tt=e((()=>{He=n(),f(),u(),te(),d(),T(),A=s(),{useArgs:Ue}=__STORYBOOK_MODULE_PREVIEW_API__,j=[{id:`revenue`,parentId:null,label:`Выручка`,jan:`1 240`,feb:`1 320`,mar:`1 410`,apr:`1 505`},{id:`revenue_clients`,parentId:`revenue`,label:`Клиентский сегмент`,jan:`920`,feb:`960`,mar:`1 020`,apr:`1 080`},{id:`revenue_exports`,parentId:`revenue`,label:`Экспорт`,jan:`320`,feb:`360`,mar:`390`,apr:`425`},{id:`margin`,parentId:null,label:`Маржинальность`,jan:`18%`,feb:`19%`,mar:`21%`,apr:`20%`},{id:`margin_sales`,parentId:`margin`,label:`Продажи`,jan:`12%`,feb:`13%`,mar:`14%`,apr:`14%`},{id:`margin_logistics`,parentId:`margin`,label:`Логистика`,jan:`6%`,feb:`6%`,mar:`7%`,apr:`6%`},{id:`margin_logistics_local`,parentId:`margin_logistics`,label:`Локальная логистика`,jan:`4%`,feb:`4%`,mar:`5%`,apr:`4%`},{id:`margin_logistics_export`,parentId:`margin_logistics`,label:`Экспортная логистика`,jan:`2%`,feb:`2%`,mar:`2%`,apr:`2%`,isLocked:!0},{id:`orphan_costs`,parentId:`missing_parent`,label:`Прочие расходы без родителя`,jan:`30`,feb:`28`,mar:`31`,apr:`35`}],We=[{id:`label`,accessorKey:`label`,header:`Показатель`,meta:{width:18,align:`left`}},{id:`jan`,accessorKey:`jan`,header:`янв`,meta:{width:8,align:`right`}},{id:`feb`,accessorKey:`feb`,header:`фев`,meta:{width:8,align:`right`}},{id:`mar`,accessorKey:`mar`,header:`мар`,meta:{width:8,align:`right`}},{id:`apr`,accessorKey:`apr`,header:`апр`,meta:{width:8,align:`right`}}],Ge={getRowId:e=>e.id,getParentRowId:e=>e.parentId},M={getRowId:e=>e.id,getParentRowId:e=>e.parentId},Ke={getRowId:e=>e.id,getParentRowId:e=>e.parentId},N=[{id:`revenue`,parentId:null,label:`Выручка`,purchasePrice:80,salePrice:125,healthScore:40,pendingAmount:0,createdAt:`2026-03-18T09:15:00.000Z`,totalAmount:1820},{id:`revenue_domestic`,parentId:`revenue`,label:`Внутренний рынок`,purchasePrice:82,salePrice:129,healthScore:120,pendingAmount:250,createdAt:`2026-03-18T10:00:00.000Z`,totalAmount:980},{id:`revenue_export`,parentId:`revenue`,label:`Экспорт`,purchasePrice:75,salePrice:118,healthScore:95,pendingAmount:0,createdAt:`2026-03-19T08:25:00.000Z`,totalAmount:840},{id:`margin`,parentId:null,label:`Маржинальность`,purchasePrice:60,salePrice:90,healthScore:70,pendingAmount:0,createdAt:`2026-03-20T07:05:00.000Z`,totalAmount:640}],P=[{id:`div-root-1`,parentId:null,label:`Корень 1`,division:`ДВД`},{id:`div-root-2`,parentId:null,label:`Корень 2`,division:`ДВД`},{id:`div-root-3`,parentId:null,label:`Корень 3`,division:`УД`},{id:`div-child-1`,parentId:`div-root-3`,label:`Дочерний узел`,division:`УД`}],F=[{id:`label`,accessorKey:`label`,header:`Показатель`,meta:{width:14}},{id:`division`,accessorKey:`division`,header:`Дивизион`,meta:{width:10,mergeDuplicates:!0}}],I=[{id:`label`,accessorKey:`label`,header:`Показатель`,meta:{width:16}},{id:`purchasePrice`,accessorKey:`purchasePrice`,header:`Закупка`,meta:{width:8,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`salePrice`,accessorKey:`salePrice`,header:`Продажа`,meta:{width:8,align:`right`,formatting:{role:`measure`,type:`decimal`}}},{id:`markup`,accessorFn:()=>void 0,header:`Наценка`,meta:{width:8,align:`right`,formatting:{role:`measure`,type:`decimal`,formulaId:`markup`,formulaDependencies:[`purchasePrice`,`salePrice`],purelyDerived:!0}}}],qe=[{id:`totalAmount`,accessorKey:`totalAmount`,header:`Сумма в дереве`,meta:{width:12,align:`right`,formatting:{role:`measure`,type:`decimal`,formattersPipeline:ze()}}},{id:`label`,accessorKey:`label`,header:`Показатель`,meta:{width:14}}],Je=[{id:`label`,accessorKey:`label`,header:`Показатель`,meta:{width:16}},{id:`pendingAmount`,accessorKey:`pendingAmount`,header:`Резерв`,meta:{width:8,align:`right`,formatting:{role:`measure`,type:`decimal`,emptyWhenZero:!0}}}],Ye=[{id:`label`,type:`string`,originalType:`Edm.String`,label:`Показатель`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`createdAt`,type:`datetime`,originalType:`Edm.DateTime`,label:`Дата создания`,semanticType:`none`,sortable:!0,filterable:!0,role:`dimension`},{id:`totalAmount`,type:`decimal`,originalType:`Edm.Decimal`,label:`Сумма`,semanticType:`none`,sortable:!0,filterable:!0,role:`measure`}],Xe=re(Ye),L=`ZDEMO_FINANCE_SRV`,R=`FinanceSet`,Ze={title:`Финансовая иерархия`,columns:Ye},Qe=(e,t)=>{let n=(0,He.useMemo)(()=>{let e=c({}),n=t.parameters.odataService,r=t.parameters.odataEntity,i=t.parameters.odataMetadata;return n&&r&&i&&e.setQueryData(Be(n),{entities:{[r]:i},functionImports:{}}),e},[t.parameters.odataEntity,t.parameters.odataMetadata,t.parameters.odataService]);return(0,A.jsx)(l,{client:n,children:e()})},$e={title:`UI/TreeTable`,component:S,args:{title:`Финансовые показатели`,data:j,columns:We,hierarchy:Ge,selectionMode:`single`,expandFirstLevel:!0,indentSize:1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок таблицы.`,control:`text`},isLoading:{description:`Показывает состояние первичной загрузки.`,control:`boolean`},isFetching:{description:`Показывает фоновое обновление без очистки дерева.`,control:`boolean`},data:{description:`Плоский источник данных OData.`,control:!1},columns:{description:`Колонки TreeTable.`,control:!1},hierarchy:{description:`Функции получения id строки и id родителя.`,control:!1},selectionMode:{description:`Режим выбора строк.`,control:`inline-radio`,options:[`none`,`single`,`multi`]},expandFirstLevel:{description:`Автоматически раскрывает корневой уровень при первой инициализации.`,control:`boolean`},defaultExpandedRowIds:{description:`Дополнительные строки, которые должны быть раскрыты при первой инициализации.`,control:!1},treeColumnId:{description:`Колонка, в которой рисуется дерево.`,control:`text`},indentSize:{description:`Отступ на уровень вложенности; число трактуется как em.`,control:`number`},columnVisibility:{description:`Controlled-состояние видимости колонок.`,control:!1},defaultColumnVisibility:{description:`Стартовое uncontrolled-состояние видимости колонок.`,control:!1},columnOrder:{description:`Controlled-порядок идентификаторов колонок.`,control:!1},defaultColumnOrder:{description:`Стартовый uncontrolled-порядок колонок.`,control:!1},columnSizing:{description:`Controlled-ширины колонок в px.`,control:!1},defaultColumnSizing:{description:`Стартовые uncontrolled-ширины колонок.`,control:!1},columnPinning:{description:`Controlled-состояние закрепления колонок слева.`,control:!1},defaultColumnPinning:{description:`Стартовое uncontrolled-состояние закрепления колонок слева.`,control:!1},enableColumnResizing:{description:`Включает изменение ширины колонок через header-handle.`,control:`boolean`},enableColumnReordering:{description:`Включает перетаскивание заголовков для изменения порядка колонок.`,control:`boolean`},columnResizeMinWidth:{description:`Минимальная ширина колонки при resize в px.`,control:`number`},onColumnVisibilityChange:{description:`Вызывается после изменения видимости колонок.`,control:!1},onColumnOrderChange:{description:`Вызывается после изменения порядка колонок.`,control:!1},onColumnSizingChange:{description:`Вызывается после изменения ширины колонок.`,control:!1},onColumnPinningChange:{description:`Вызывается после изменения закрепления колонок слева.`,control:!1},getRowCanSelect:{description:`Позволяет запретить выбор отдельных строк.`,control:!1},getRowClassName:{description:`Позволяет назначить CSS-класс конкретной строке.`,control:!1},onRowClick:{description:`Вызывается при активации строки.`,control:!1},onRowSelectionChange:{description:`Вызывается после изменения выбранных строк.`,control:!1},onExpandedRowIdsChange:{description:`Вызывается после изменения раскрытых строк.`,control:!1},onReachEnd:{description:`Вызывается при достижении конца дерева внутри scroll-контейнера.`,control:!1},renderHeaderContextMenu:{description:`Слот контекстного меню заголовка колонки.`,control:!1},renderCellContent:{description:`Слот содержимого ячейки поверх стандартного formatting-runtime.`,control:!1}}},z={render:function(e){return(0,A.jsx)(D,{args:e})}},B={args:{selectionMode:`multi`},render:function(e){return(0,A.jsx)(k,{args:e})}},V={args:{expandFirstLevel:!1},render:function(e){return(0,A.jsx)(D,{args:e})}},H={args:{expandFirstLevel:!1,defaultExpandedRowIds:[`margin`,`margin_logistics`]},render:function(e){return(0,A.jsx)(D,{args:e})}},U={args:{selectionMode:`multi`,getRowCanSelect:e=>!e.isLocked},render:function(e){return(0,A.jsx)(k,{args:e,intro:`Строка «Экспортная логистика» остаётся в дереве, но не участвует в выборе.`})}},W={args:{isFetching:!0},render:function(e){return(0,A.jsx)(D,{args:e})}},G={args:{data:[]},render:function(e){return(0,A.jsx)(D,{args:e})}},K={args:{isLoading:!0},render:function(e){return(0,A.jsx)(D,{args:e})}},q={args:{title:`Формула в дереве`,data:N,columns:I,hierarchy:M,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},render:function(e){return(0,A.jsx)(D,{args:e})}},J={args:{title:`Форматирование tree-колонки`,data:N,columns:qe,hierarchy:M,treeColumnId:`totalAmount`,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},render:function(e){return(0,A.jsx)(D,{args:e})}},Y={args:{title:`Скрытие нулей в дереве`,data:N,columns:Je,hierarchy:M,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},render:function(e){return(0,A.jsx)(D,{args:e})}},X={args:{title:`Слияние дубликатов в дереве`,data:P,columns:F,hierarchy:Ke,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},render:function(e){return(0,A.jsx)(D,{args:e})}},Z={args:{title:`OData metadata adapter`,data:N,columns:Xe,hierarchy:M,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},render:function(e){return(0,A.jsx)(D,{args:e})}},Q={args:{title:`useODataTableColumns: build`,data:N,columns:[],hierarchy:M,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},decorators:[Qe],parameters:{odataService:L,odataEntity:R,odataMetadata:Ze},render:function(e){return(0,A.jsx)(O,{args:e})}},$={args:{title:`useODataTableColumns: enrich`,data:N,columns:[],hierarchy:M,selectionMode:`none`,expandFirstLevel:!0,indentSize:1},decorators:[Qe],parameters:{odataService:L,odataEntity:R,odataMetadata:Ze},render:function(e){return(0,A.jsx)(Ve,{args:e})}},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
10
- render: function Render(args) {
11
- return <TreeTableStoryCanvas args={args} />;
12
- }
13
- }`,...z.parameters?.docs?.source},description:{story:`Базовый сценарий дерева с раскрытием первого уровня.`,...z.parameters?.docs?.description}}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
14
- args: {
15
- selectionMode: "multi"
16
- },
17
- render: function Render(args) {
18
- return <SelectionTreeTableCanvas args={args} />;
19
- }
20
- }`,...B.parameters?.docs?.source},description:{story:`Множественный выбор с отображением текущего результата.`,...B.parameters?.docs?.description}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
21
- args: {
22
- expandFirstLevel: false
23
- },
24
- render: function Render(args) {
25
- return <TreeTableStoryCanvas args={args} />;
26
- }
27
- }`,...V.parameters?.docs?.source},description:{story:`Дерево остаётся свёрнутым до взаимодействия пользователя.`,...V.parameters?.docs?.description}}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
28
- args: {
29
- expandFirstLevel: false,
30
- defaultExpandedRowIds: ["margin", "margin_logistics"]
31
- },
32
- render: function Render(args) {
33
- return <TreeTableStoryCanvas args={args} />;
34
- }
35
- }`,...H.parameters?.docs?.source},description:{story:`Дополнительно раскрывает конкретную ветку при первой инициализации.`,...H.parameters?.docs?.description}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
36
- args: {
37
- selectionMode: "multi",
38
- getRowCanSelect: row => !row.isLocked
39
- },
40
- render: function Render(args) {
41
- return <SelectionTreeTableCanvas args={args} intro="Строка «Экспортная логистика» остаётся в дереве, но не участвует в выборе." />;
42
- }
43
- }`,...U.parameters?.docs?.source},description:{story:`Часть строк можно показать, но запретить выбирать.`,...U.parameters?.docs?.description}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
44
- args: {
45
- isFetching: true
46
- },
47
- render: function Render(args) {
48
- return <TreeTableStoryCanvas args={args} />;
49
- }
50
- }`,...W.parameters?.docs?.source},description:{story:`Сценарий фонового обновления данных без очистки дерева.`,...W.parameters?.docs?.description}}},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
51
- args: {
52
- data: []
53
- },
54
- render: function Render(args) {
55
- return <TreeTableStoryCanvas args={args} />;
56
- }
57
- }`,...G.parameters?.docs?.source},description:{story:`Пустой источник данных.`,...G.parameters?.docs?.description}}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
58
- args: {
59
- isLoading: true
60
- },
61
- render: function Render(args) {
62
- return <TreeTableStoryCanvas args={args} />;
63
- }
64
- }`,...K.parameters?.docs?.source},description:{story:`Состояние первичной загрузки.`,...K.parameters?.docs?.description}}},q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
65
- args: {
66
- title: "Формула в дереве",
67
- data: formattingRows,
68
- columns: formulaColumns,
69
- hierarchy: formattingHierarchy,
70
- selectionMode: "none",
71
- expandFirstLevel: true,
72
- indentSize: 1
73
- },
74
- render: function Render(args) {
75
- return <TreeTableStoryCanvas args={args} />;
76
- }
77
- }`,...q.parameters?.docs?.source},description:{story:`Сценарий с formula-based колонкой в древовидной таблице.`,...q.parameters?.docs?.description}}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
78
- args: {
79
- title: "Форматирование tree-колонки",
80
- data: formattingRows,
81
- columns: treeFormattedColumns,
82
- hierarchy: formattingHierarchy,
83
- treeColumnId: "totalAmount",
84
- selectionMode: "none",
85
- expandFirstLevel: true,
86
- indentSize: 1
87
- },
88
- render: function Render(args) {
89
- return <TreeTableStoryCanvas args={args} />;
90
- }
91
- }`,...J.parameters?.docs?.source},description:{story:`Сценарий, где formatting применяется прямо в tree-колонке.`,...J.parameters?.docs?.description}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
92
- args: {
93
- title: "Скрытие нулей в дереве",
94
- data: formattingRows,
95
- columns: hiddenZeroColumns,
96
- hierarchy: formattingHierarchy,
97
- selectionMode: "none",
98
- expandFirstLevel: true,
99
- indentSize: 1
100
- },
101
- render: function Render(args) {
102
- return <TreeTableStoryCanvas args={args} />;
103
- }
104
- }`,...Y.parameters?.docs?.source},description:{story:`Сценарий со скрытием нулевых значений в дереве.`,...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
105
- args: {
106
- title: "Слияние дубликатов в дереве",
107
- data: divisionTreeRows,
108
- columns: divisionTreeColumns,
109
- hierarchy: divisionTreeHierarchy,
110
- selectionMode: "none",
111
- expandFirstLevel: true,
112
- indentSize: 1
113
- },
114
- render: function Render(args) {
115
- return <TreeTableStoryCanvas args={args} />;
116
- }
117
- }`,...X.parameters?.docs?.source},description:{story:"Сценарий со слиянием дубликатов на одной глубине в `TreeTable`.",...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
118
- args: {
119
- title: "OData metadata adapter",
120
- data: formattingRows,
121
- columns: adapterColumns,
122
- hierarchy: formattingHierarchy,
123
- selectionMode: "none",
124
- expandFirstLevel: true,
125
- indentSize: 1
126
- },
127
- render: function Render(args) {
128
- return <TreeTableStoryCanvas args={args} />;
129
- }
130
- }`,...Z.parameters?.docs?.source},description:{story:`Сценарий со статическим OData metadata adapter в build-режиме.`,...Z.parameters?.docs?.description}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
131
- args: {
132
- title: "useODataTableColumns: build",
133
- data: formattingRows,
134
- columns: [],
135
- hierarchy: formattingHierarchy,
136
- selectionMode: "none",
137
- expandFirstLevel: true,
138
- indentSize: 1
139
- },
140
- decorators: [withMockedHookODataMetadata],
141
- parameters: {
142
- odataService: HOOK_ODATA_SERVICE,
143
- odataEntity: HOOK_ODATA_ENTITY,
144
- odataMetadata: hookMetadata
145
- },
146
- render: function Render(args) {
147
- return <HookBuildTreeTableStory args={args} />;
148
- }
149
- }`,...Q.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме build для TreeTable.",...Q.parameters?.docs?.description}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
150
- args: {
151
- title: "useODataTableColumns: enrich",
152
- data: formattingRows,
153
- columns: [],
154
- hierarchy: formattingHierarchy,
155
- selectionMode: "none",
156
- expandFirstLevel: true,
157
- indentSize: 1
158
- },
159
- decorators: [withMockedHookODataMetadata],
160
- parameters: {
161
- odataService: HOOK_ODATA_SERVICE,
162
- odataEntity: HOOK_ODATA_ENTITY,
163
- odataMetadata: hookMetadata
164
- },
165
- render: function Render(args) {
166
- return <HookEnrichTreeTableStory args={args} />;
167
- }
168
- }`,...$.parameters?.docs?.source},description:{story:"Реальный hook-сценарий `useODataTableColumns(...)` в режиме enrich для TreeTable.",...$.parameters?.docs?.description}}},et=[`Basic`,`MultiSelect`,`CollapsedByDefault`,`WithDefaultExpandedBranch`,`WithDisabledRows`,`Fetching`,`Empty`,`Loading`,`WithFormulaColumn`,`WithFormattedTreeColumn`,`WithHiddenZero`,`WithMergedDuplicates`,`WithODataMetadataAdapter`,`WithUseODataTableColumnsBuildHook`,`WithUseODataTableColumnsEnrichHook`]})))()}export{tt as _,K as a,H as c,q as d,Y as f,$ as g,Q as h,W as i,U as l,Z as m,V as n,B as o,X as p,G as r,E as s,z as t,J as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./iframe-YrfSEgEg.js";e();