@ryuzaki13/react-foundation-ui 3.9.0 → 3.10.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 (293) hide show
  1. package/dist/base-table/index.js +1 -1
  2. package/dist/base-table/ui/BaseTable.d.ts +9 -1
  3. package/dist/base-table/ui/BaseTable.d.ts.map +1 -1
  4. package/dist/chunks/{base-table-9H5YuVvB.js → base-table-CacTH3BE.js} +129 -111
  5. package/dist/chunks/base-table-CacTH3BE.js.map +1 -0
  6. package/dist/chunks/table-Cx__DvpN.js +154 -0
  7. package/dist/chunks/table-Cx__DvpN.js.map +1 -0
  8. package/dist/simple-table/index.js +1 -1
  9. package/dist/table/Table.d.ts +10 -1
  10. package/dist/table/Table.d.ts.map +1 -1
  11. package/dist/table/index.js +1 -1
  12. package/dist/tree-table/index.js +1 -1
  13. package/package.json +1 -1
  14. package/storybook-static/assets/{Badge-CL58JilM.js → Badge-DxGi2POg.js} +1 -1
  15. package/storybook-static/assets/{Badge.stories-CXFTvV3D.js → Badge.stories-D6Em1fN8.js} +1 -1
  16. package/storybook-static/assets/{BadgeList-DLssobfd.js → BadgeList-DemBuxUQ.js} +1 -1
  17. package/storybook-static/assets/{BarcodeScannerDialog.stories-CpMywpKq.js → BarcodeScannerDialog.stories-Bxnb0wH3.js} +1 -1
  18. package/storybook-static/assets/{Button-CSbLv1K7.js → Button-9vGUTM3m.js} +1 -1
  19. package/storybook-static/assets/{Button-DMAPWgMI.js → Button-dlGIhkja.js} +1 -1
  20. package/storybook-static/assets/{Button.stories-CU1kYMvA.js → Button.stories-WOE1_ovM.js} +1 -1
  21. package/storybook-static/assets/{CalendarView-DuCLo_x5.js → CalendarView-Co2EiQf9.js} +1 -1
  22. package/storybook-static/assets/{CheckBox-Bfcdvr2o.js → CheckBox-CwJshQX2.js} +1 -1
  23. package/storybook-static/assets/{CheckBox-BBPasWSk.js → CheckBox-Dpg2QsvS.js} +1 -1
  24. package/storybook-static/assets/{CheckBox.stories-sGH6EuU4.js → CheckBox.stories-K8wng7-q.js} +1 -1
  25. package/storybook-static/assets/{Color-6AOWCN3U-5NJhf8m9.js → Color-6AOWCN3U-D-64SqRn.js} +1 -1
  26. package/storybook-static/assets/{ContextMenu-z6NKmD0I.js → ContextMenu-C1zzFMni.js} +1 -1
  27. package/storybook-static/assets/{ContextMenu-CxuYkXjJ.js → ContextMenu-DbmUWR4I.js} +1 -1
  28. package/storybook-static/assets/{ContextMenu.stories-CI5IW_KX.js → ContextMenu.stories-D0tclMo1.js} +1 -1
  29. package/storybook-static/assets/{DateInput-A8NURpCX.js → DateInput-BDxg1E80.js} +1 -1
  30. package/storybook-static/assets/{DateInput-BkCbK0M5.js → DateInput-DxpENevn.js} +1 -1
  31. package/storybook-static/assets/{DateInput.stories-DnzeyBpg.js → DateInput.stories-De_AOkrK.js} +1 -1
  32. package/storybook-static/assets/{DateRangePresetSelect-Bh7qMFTr.js → DateRangePresetSelect-CD7jNInU.js} +1 -1
  33. package/storybook-static/assets/{DateRangePresetSelect-CGZkf8Ty.js → DateRangePresetSelect-CD8qu2LL.js} +1 -1
  34. package/storybook-static/assets/{DateRangePresetSelect.stories-Drm2FCnJ.js → DateRangePresetSelect.stories-phHkk3Q1.js} +1 -1
  35. package/storybook-static/assets/{DeprecatedMultiSelect-BebYsPmQ.js → DeprecatedMultiSelect-B4VEjiTj.js} +1 -1
  36. package/storybook-static/assets/{DeprecatedMultiSelect-8TWWhsLi.js → DeprecatedMultiSelect-Bdv505U3.js} +1 -1
  37. package/storybook-static/assets/{DeprecatedMultiSelect.stories-7iL6YOgh.js → DeprecatedMultiSelect.stories-DdPzDJjx.js} +1 -1
  38. package/storybook-static/assets/{Detail-BOZkPwOI.js → Detail-BoazSWw_.js} +1 -1
  39. package/storybook-static/assets/{Detail.stories-RZALoKmD.js → Detail.stories-Cc9fEkdx.js} +1 -1
  40. package/storybook-static/assets/{Dialog-CeukIYpx.js → Dialog-VJ62BLtp.js} +1 -1
  41. package/storybook-static/assets/{Dialog-BsslYClj.js → Dialog-ieE9mpAU.js} +1 -1
  42. package/storybook-static/assets/{Dialog.stories-y7MpdGQr.js → Dialog.stories-CUyAMGoD.js} +1 -1
  43. package/storybook-static/assets/{Disclosure-CiTnWx5y.js → Disclosure-BP8VhRCA.js} +1 -1
  44. package/storybook-static/assets/{Disclosure.stories-UWW9oheF.js → Disclosure.stories-DwIo-o1J.js} +1 -1
  45. package/storybook-static/assets/{DisclosureGroup-CT3BdQXr.js → DisclosureGroup-LjgDW-Z6.js} +1 -1
  46. package/storybook-static/assets/{DocsRenderer-JROSPFPF-x50rjjKP.js → DocsRenderer-JROSPFPF-BjRaiNDG.js} +1 -1
  47. package/storybook-static/assets/{DropZone-DUn9vW2w.js → DropZone-BMT4jv2L.js} +1 -1
  48. package/storybook-static/assets/{DropZone-gWSeoAx6.js → DropZone-Dg3GZxY8.js} +1 -1
  49. package/storybook-static/assets/{DropZone.stories-CmaVl9to.js → DropZone.stories-szOGIPHx.js} +1 -1
  50. package/storybook-static/assets/{DropdownMenu-DkeS8gOF.js → DropdownMenu-B0EI5ePH.js} +1 -1
  51. package/storybook-static/assets/{ExpandableActionPanel-DdqWZDe2.js → ExpandableActionPanel-D_qy2JID.js} +1 -1
  52. package/storybook-static/assets/{ExpandableActionPanel.stories-CA-dpb07.js → ExpandableActionPanel.stories-wdmlBDmK.js} +1 -1
  53. package/storybook-static/assets/{Flex-DpQpF63N.js → Flex-DYXuexPG.js} +1 -1
  54. package/storybook-static/assets/{Flex.stories-DtlKiJno.js → Flex.stories-DH1BReS-.js} +1 -1
  55. package/storybook-static/assets/{FlexContainer-C1d63I55.js → FlexContainer-DO3X5f_1.js} +1 -1
  56. package/storybook-static/assets/{FlexItem-DsoW-br3.js → FlexItem-BE_4juAd.js} +1 -1
  57. package/storybook-static/assets/{FloatingPopover-7MpESGU4.js → FloatingPopover-DHxMCBdS.js} +1 -1
  58. package/storybook-static/assets/FormattedTableCell-BfEiCYOi.js +15 -0
  59. package/storybook-static/assets/{Grid-eqZxtRIA.js → Grid-0NnWfTJ7.js} +1 -1
  60. package/storybook-static/assets/{Grid-DsCUaz46.js → Grid-ChS0GzNg.js} +1 -1
  61. package/storybook-static/assets/{Grid.stories-DAGg0GWi.js → Grid.stories-ClZzgSfZ.js} +1 -1
  62. package/storybook-static/assets/{GridContainer-B9JaLUGE.js → GridContainer-BHSfIiml.js} +1 -1
  63. package/storybook-static/assets/{ImageCropper.stories-W76XOOMv.js → ImageCropper.stories-Cf5ogf7p.js} +1 -1
  64. package/storybook-static/assets/{ImageRenderer-DYg7BkPO.js → ImageRenderer-CsN1-IP6.js} +1 -1
  65. package/storybook-static/assets/{ImageRenderer.stories-rgJV0OBp.js → ImageRenderer.stories-DIC-UR-l.js} +1 -1
  66. package/storybook-static/assets/{ImageView.stories-D9h6sg3j.js → ImageView.stories-DT6QZR-1.js} +1 -1
  67. package/storybook-static/assets/{ImageViewer.stories-Bd0WJOp1.js → ImageViewer.stories-DxpCKbpk.js} +2 -2
  68. package/storybook-static/assets/{ImageViewerRuntime-DOjvjbv0.js → ImageViewerRuntime-COhNh4_y.js} +1 -1
  69. package/storybook-static/assets/{Input-BxrxwNyD.js → Input-BJ3sPHt1.js} +1 -1
  70. package/storybook-static/assets/{Input-7N70tL0u.js → Input-D2eqioLp.js} +1 -1
  71. package/storybook-static/assets/{Input.stories-Df1j802b.js → Input.stories-MtAx6H2F.js} +1 -1
  72. package/storybook-static/assets/{InputDateTime-UdemHZXV.js → InputDateTime-CNNqhoo6.js} +1 -1
  73. package/storybook-static/assets/{InputDateTime.stories-yRwAe5_5.js → InputDateTime.stories-DT3CvxRy.js} +1 -1
  74. package/storybook-static/assets/{InputFile-DDhf7A_J.js → InputFile-DiI_0QV5.js} +1 -1
  75. package/storybook-static/assets/{InputFile-5LpFR1Fq.js → InputFile-RfdomZEH.js} +1 -1
  76. package/storybook-static/assets/{InputFile.stories-BVDT-BAx.js → InputFile.stories-CiqGBnkS.js} +1 -1
  77. package/storybook-static/assets/{InputFiles-D3CPIXiK.js → InputFiles-CBrPDNlV.js} +1 -1
  78. package/storybook-static/assets/{InputFiles-CgM2BwNO.js → InputFiles-CgyVXpI1.js} +1 -1
  79. package/storybook-static/assets/{InputFiles.stories-XMHBA9Fn.js → InputFiles.stories-QHNxJjiV.js} +1 -1
  80. package/storybook-static/assets/{InputFilesList-DSivq9iT.js → InputFilesList-BEIBTAEK.js} +1 -1
  81. package/storybook-static/assets/{InputImage-BG_QyAh3.js → InputImage-BBJr8TWl.js} +1 -1
  82. package/storybook-static/assets/{InputImage-CY0A9Xz-.js → InputImage-vXbhnE46.js} +1 -1
  83. package/storybook-static/assets/{InputImage.stories-DiGXytZU.js → InputImage.stories-VoVU0QZB.js} +1 -1
  84. package/storybook-static/assets/{InteractiveComponents-Bf9KitNR.js → InteractiveComponents-CjkX3vU6.js} +1 -1
  85. package/storybook-static/assets/{InteractiveComponents.stories-TwALUGGN.js → InteractiveComponents.stories-Gc_Ju4xJ.js} +1 -1
  86. package/storybook-static/assets/{LayoutPicker-BLrNe8g_.js → LayoutPicker-DwpDr_Is.js} +1 -1
  87. package/storybook-static/assets/{LayoutPicker-MhA9N4WI.js → LayoutPicker-ONnrtLDR.js} +1 -1
  88. package/storybook-static/assets/{LayoutPicker.stories-BCME5Ogr.js → LayoutPicker.stories-B-HIq6DD.js} +1 -1
  89. package/storybook-static/assets/{Listbox-B8F2xWvs.js → Listbox-DoF5nZIP.js} +1 -1
  90. package/storybook-static/assets/{Listbox-y_3VijHU.js → Listbox-XIi0yHgl.js} +1 -1
  91. package/storybook-static/assets/{Listbox.stories-mp0p0NpO.js → Listbox.stories-DT8FJQ3z.js} +1 -1
  92. package/storybook-static/assets/{Modal-qIsW7BkG.js → Modal-C3F4r2UA.js} +1 -1
  93. package/storybook-static/assets/{Modal-DgEV0vBs.js → Modal-Ml7EuSvu.js} +1 -1
  94. package/storybook-static/assets/{Modal.stories-CQ-Hn4GK.js → Modal.stories-DRwnYxst.js} +1 -1
  95. package/storybook-static/assets/{ModalManagerProvider-DEoq4q_O.js → ModalManagerProvider-CmqdB_ni.js} +1 -1
  96. package/storybook-static/assets/{MultiSelect-D-6XHQUG.js → MultiSelect-B1QokJ3C.js} +1 -1
  97. package/storybook-static/assets/{MultiSelect-PGooEkAK.js → MultiSelect-CAg-L0dM.js} +1 -1
  98. package/storybook-static/assets/{MultiSelect.stories-B0JzMViN.js → MultiSelect.stories-Dfh2Lp0N.js} +1 -1
  99. package/storybook-static/assets/{MultiSelectCore-B0VbnEBc.js → MultiSelectCore-GRGtCBO1.js} +1 -1
  100. package/storybook-static/assets/{NoData-DCuuvSoD.js → NoData-BZhNhaYV.js} +1 -1
  101. package/storybook-static/assets/{NotificationsHost-CWqG91Yh.js → NotificationsHost-BUPLrDM3.js} +1 -1
  102. package/storybook-static/assets/{NotificationsHost.stories-CEp-AppV.js → NotificationsHost.stories-CKbR-_nq.js} +1 -1
  103. package/storybook-static/assets/{ODataMultiSelect-CwVneYzi.js → ODataMultiSelect-CDW0B1az.js} +1 -1
  104. package/storybook-static/assets/{ODataMultiSelect.stories-BRnVOZsK.js → ODataMultiSelect.stories-BbKrxs7t.js} +1 -1
  105. package/storybook-static/assets/{ODataSelect-DyKTFqk7.js → ODataSelect-C5G0dCnn.js} +1 -1
  106. package/storybook-static/assets/{ODataSelect.stories-B-3GaeU4.js → ODataSelect.stories-DcX50cyD.js} +1 -1
  107. package/storybook-static/assets/{ODataTreeMultiSelect-16xNi9qI.js → ODataTreeMultiSelect-4mTjhnlJ.js} +1 -1
  108. package/storybook-static/assets/{ODataTreeMultiSelect.stories-DI9tH2qD.js → ODataTreeMultiSelect.stories-B-4UUg5l.js} +1 -1
  109. package/storybook-static/assets/{ODataTreeSelect-Dk262plK.js → ODataTreeSelect-D-wcx2OH.js} +1 -1
  110. package/storybook-static/assets/{ODataTreeSelect.stories-DfaL0dci.js → ODataTreeSelect.stories-uB_sG4ga.js} +1 -1
  111. package/storybook-static/assets/{OneStepScroller-DI8qlm5c.js → OneStepScroller-DQI5POnJ.js} +1 -1
  112. package/storybook-static/assets/{Option-CG3bU2cY.js → Option-CrEWqsFF.js} +1 -1
  113. package/storybook-static/assets/{OptionButton-DF0E8aU5.js → OptionButton-BEQ2oSPf.js} +1 -1
  114. package/storybook-static/assets/{OptionContent-BZ3FiJQ4.js → OptionContent-C8S7IjI3.js} +1 -1
  115. package/storybook-static/assets/{OptionContentContainer-CyI5IfqU.js → OptionContentContainer-ljQts_jY.js} +1 -1
  116. package/storybook-static/assets/{PeriodSelect-uR-Xk4vQ.js → PeriodSelect-BTdDU06N.js} +1 -1
  117. package/storybook-static/assets/{PeriodSelect-_gAbt3E6.js → PeriodSelect-DuqatGdk.js} +1 -1
  118. package/storybook-static/assets/{PeriodSelect.stories-D-Lp7QtA.js → PeriodSelect.stories-CX4DSFJG.js} +1 -1
  119. package/storybook-static/assets/{PickerField-CByAoAAO.js → PickerField-Cgcm-Y5T.js} +1 -1
  120. package/storybook-static/assets/{PickerTriggerActions-CYM-UvRz.js → PickerTriggerActions-DWe2uX0K.js} +1 -1
  121. package/storybook-static/assets/{Popover-CRcVoLur.js → Popover-0QfSvwRS.js} +1 -1
  122. package/storybook-static/assets/{Popover-CdnsB1ss.js → Popover-C55I0GTn.js} +1 -1
  123. package/storybook-static/assets/{Popover.stories-Dxdt7Jc5.js → Popover.stories-Bgjomdgb.js} +1 -1
  124. package/storybook-static/assets/{PresetRangeDateInput-BQkK3Nmd.js → PresetRangeDateInput-C-vQa5BZ.js} +1 -1
  125. package/storybook-static/assets/{PresetRangeDateInput-BmAGj8ye.js → PresetRangeDateInput-Cai5fvRb.js} +1 -1
  126. package/storybook-static/assets/{PresetRangeDateInput.stories-CUIwCB6T.js → PresetRangeDateInput.stories-CWtIukRG.js} +1 -1
  127. package/storybook-static/assets/{PresetSelect-C7HG9CjN.js → PresetSelect-HqtmoRLb.js} +1 -1
  128. package/storybook-static/assets/{README-BL0-uTlP.js → README-2lBx3R6g.js} +1 -1
  129. package/storybook-static/assets/{README-DCWk-Vga.js → README-B1IMnjhg.js} +1 -1
  130. package/storybook-static/assets/{README-BurB0dhj.js → README-B41_J33v.js} +1 -1
  131. package/storybook-static/assets/{README-VNB_Dj5F.js → README-B5Lc1yT4.js} +1 -1
  132. package/storybook-static/assets/{README-De3j71sQ.js → README-B5wBU6mA.js} +1 -1
  133. package/storybook-static/assets/{README-ByT9u_7g.js → README-B8RrtmaZ.js} +1 -1
  134. package/storybook-static/assets/{README-C8jcwgeL.js → README-BEypAdTE.js} +1 -1
  135. package/storybook-static/assets/{README-DxTRj-9a.js → README-BFjx8Jxa.js} +1 -1
  136. package/storybook-static/assets/{README-CoQeAVdv.js → README-BHrzFd3i.js} +1 -1
  137. package/storybook-static/assets/{README-DNrPuueH.js → README-BNLmyDfy.js} +1 -1
  138. package/storybook-static/assets/{README-CtZBJdo2.js → README-BRJHDPaP.js} +1 -1
  139. package/storybook-static/assets/{README-DAH3lVWd.js → README-BTk3TSh8.js} +1 -1
  140. package/storybook-static/assets/{README-CoENtXo_.js → README-BUKlvu1v.js} +1 -1
  141. package/storybook-static/assets/{README-KCmlmH_Z.js → README-BgbNoj4_.js} +1 -1
  142. package/storybook-static/assets/{README-B1GSwjas.js → README-BhvWyeL_.js} +1 -1
  143. package/storybook-static/assets/{README-CTBkJ27k.js → README-Bk6x-7we.js} +1 -1
  144. package/storybook-static/assets/{README-BEYMpavt.js → README-BkFTTVE2.js} +1 -1
  145. package/storybook-static/assets/{README-BquP2lux.js → README-Bl1rJEQE.js} +1 -1
  146. package/storybook-static/assets/{README-BUnl1FiN.js → README-BqMpFJKP.js} +1 -1
  147. package/storybook-static/assets/{README-CTGZXXVP.js → README-Brd9di5k.js} +1 -1
  148. package/storybook-static/assets/{README-9DTI05kd.js → README-BzIE9gSk.js} +1 -1
  149. package/storybook-static/assets/{README-B-ihyEBx.js → README-C1BajdmC.js} +1 -1
  150. package/storybook-static/assets/{README-_8pxMMC7.js → README-C2xdMez4.js} +1 -1
  151. package/storybook-static/assets/{README-DfRan6KR.js → README-C6ryhIOV.js} +1 -1
  152. package/storybook-static/assets/{README-DTMZk60G.js → README-C702dbsS.js} +1 -1
  153. package/storybook-static/assets/{README-CNnGqdkH.js → README-C8oftQ5c.js} +1 -1
  154. package/storybook-static/assets/{README-DyKegKG_.js → README-CM5yZ6jf.js} +1 -1
  155. package/storybook-static/assets/{README-CUghXL33.js → README-CUUPvXQd.js} +1 -1
  156. package/storybook-static/assets/{README-B0iHgO_3.js → README-CdMmAh_G.js} +1 -1
  157. package/storybook-static/assets/{README-CvP9yRMR.js → README-CdnQbIDn.js} +1 -1
  158. package/storybook-static/assets/{README-DQ1aeQ_i.js → README-ClH6EKpO.js} +1 -1
  159. package/storybook-static/assets/{README-DMZYAdN0.js → README-CxEn3Q3j.js} +1 -1
  160. package/storybook-static/assets/{README-D-urpNSn.js → README-CxMmicr4.js} +1 -1
  161. package/storybook-static/assets/{README-DevTRU4A.js → README-CxsbsDff.js} +1 -1
  162. package/storybook-static/assets/{README-Bdir2bPK.js → README-DAozVWEl.js} +1 -1
  163. package/storybook-static/assets/{README-C41zKsq6.js → README-DBpH2nf1.js} +1 -1
  164. package/storybook-static/assets/{README-C5-oc7fP.js → README-DF3qw7Jo.js} +1 -1
  165. package/storybook-static/assets/{README-j-Czw7ww.js → README-DFGUcAOx.js} +1 -1
  166. package/storybook-static/assets/{README-BR8bdUjV.js → README-DUShQLyj.js} +1 -1
  167. package/storybook-static/assets/{README-C7NhXX-n.js → README-DfVaZ9rz.js} +1 -1
  168. package/storybook-static/assets/{README-n4utUGcX.js → README-DitsKP8x.js} +1 -1
  169. package/storybook-static/assets/{README-DY7lgi4q.js → README-Dk7syFq-.js} +1 -1
  170. package/storybook-static/assets/{README-BbUo3mGT.js → README-DlBBM40-.js} +1 -1
  171. package/storybook-static/assets/{README-zlaX5PMG.js → README-DycS0KDV.js} +1 -1
  172. package/storybook-static/assets/{README-BmwSZfOQ.js → README-QWeHqOh2.js} +1 -1
  173. package/storybook-static/assets/{README-CiJ5wkhQ.js → README-QZrJnhYv.js} +1 -1
  174. package/storybook-static/assets/{README-CpJmZHQJ.js → README-RGQ7HMZR.js} +1 -1
  175. package/storybook-static/assets/{README-CQlujiXR.js → README-SafL9Bz5.js} +1 -1
  176. package/storybook-static/assets/{README-BAjs7T_d.js → README-UC0a4Wh9.js} +1 -1
  177. package/storybook-static/assets/{README-Dhptn6UE.js → README-_K214jGV.js} +1 -1
  178. package/storybook-static/assets/{README-xrMkjHIm.js → README-eRuOqnaA.js} +1 -1
  179. package/storybook-static/assets/{README-ByIhL9zr.js → README-kvlO41U2.js} +1 -1
  180. package/storybook-static/assets/{README-DaaS2c7L.js → README-mxJzt2Xo.js} +1 -1
  181. package/storybook-static/assets/{RadioButton-CDIyYuS9.js → RadioButton-BKsBk3--.js} +1 -1
  182. package/storybook-static/assets/{RadioButton-DV8K96H6.js → RadioButton-CsM-RT0A.js} +1 -1
  183. package/storybook-static/assets/{RadioButton.stories-CRNqKsyz.js → RadioButton.stories-D5PGiHj5.js} +1 -1
  184. package/storybook-static/assets/{RadioGroup-BnYFRvmn.js → RadioGroup-B3bLu8Qg.js} +1 -1
  185. package/storybook-static/assets/{RadioGroup-CIIw962S.js → RadioGroup-BZY_jeje.js} +1 -1
  186. package/storybook-static/assets/{RadioGroup.stories-K4AidbLa.js → RadioGroup.stories-DMfcZFp0.js} +1 -1
  187. package/storybook-static/assets/{Scrollable-BI1k9ogH.js → Scrollable-DLyQwImF.js} +1 -1
  188. package/storybook-static/assets/{Scrollable-DAghtYuE.js → Scrollable-DdXQmkMU.js} +1 -1
  189. package/storybook-static/assets/{Scrollable.stories-B6Doakiv.js → Scrollable.stories-Du5joHAp.js} +1 -1
  190. package/storybook-static/assets/{Select-BNHTGJqG.js → Select-8PYQeQRR.js} +1 -1
  191. package/storybook-static/assets/{Select-BlnKV8rc.js → Select-CT_wwcDN.js} +1 -1
  192. package/storybook-static/assets/{Select.stories-DZPAoL4J.js → Select.stories-DIqia2Hb.js} +1 -1
  193. package/storybook-static/assets/{Separator-CiETy9yM.js → Separator-CelBAATq.js} +1 -1
  194. package/storybook-static/assets/{Separator-BCUzEQRV.js → Separator-DJ93-Cvq.js} +1 -1
  195. package/storybook-static/assets/{Separator.stories-DTzurpM_.js → Separator.stories-DBEDpiqL.js} +1 -1
  196. package/storybook-static/assets/{SerializableSelect-CnQurr7F.js → SerializableSelect-C-00d6wC.js} +1 -1
  197. package/storybook-static/assets/{SerializableSelect.stories-qJaV_fjJ.js → SerializableSelect.stories-CP7fJBNa.js} +1 -1
  198. package/storybook-static/assets/{ShimmerText-I292TqXa.js → ShimmerText-qA7CslLE.js} +1 -1
  199. package/storybook-static/assets/{ShimmerText.stories-AKqXqp1k.js → ShimmerText.stories-CiGIbhCm.js} +1 -1
  200. package/storybook-static/assets/{SingleDateTimeInput-BrNi93tH.js → SingleDateTimeInput-B7tnYWQl.js} +1 -1
  201. package/storybook-static/assets/{SingleDateTimeInput-DSn0vaW-.js → SingleDateTimeInput-DJ2vRS9H.js} +1 -1
  202. package/storybook-static/assets/{SingleDateTimeInput.stories-C910kkYc.js → SingleDateTimeInput.stories-BK59HKLf.js} +1 -1
  203. package/storybook-static/assets/{Slider-CXA5Zwku.js → Slider-CXcIxUE3.js} +1 -1
  204. package/storybook-static/assets/{Slider-DO460-pY.js → Slider-Cm6kd77G.js} +1 -1
  205. package/storybook-static/assets/{Slider.stories-B874XxeK.js → Slider.stories-BuhFWvUX.js} +1 -1
  206. package/storybook-static/assets/{SliderInput-DTidinPI.js → SliderInput-DI2h4X8P.js} +1 -1
  207. package/storybook-static/assets/{SliderInput-DsV8o7Yy.js → SliderInput-DpmYS5Zb.js} +1 -1
  208. package/storybook-static/assets/{SliderInput.stories-CDWNO90y.js → SliderInput.stories-CLdLS0_8.js} +1 -1
  209. package/storybook-static/assets/{Sortable-CML34YIF.js → Sortable-CpjAZLxn.js} +1 -1
  210. package/storybook-static/assets/{Sortable.stories-C-_fvnHM.js → Sortable.stories-Ck2MHBoR.js} +1 -1
  211. package/storybook-static/assets/{Splitter-BcuA2qce.js → Splitter-Cpk_5dTf.js} +1 -1
  212. package/storybook-static/assets/{Splitter.stories-CA0-L_Ja.js → Splitter.stories-BIf9NNWq.js} +1 -1
  213. package/storybook-static/assets/{StateSelect-B23bb_PO.js → StateSelect-BznE9WIu.js} +1 -1
  214. package/storybook-static/assets/{StateSelect--FDEb4-v.js → StateSelect-C5tnrhWT.js} +1 -1
  215. package/storybook-static/assets/{StateSelect.stories-CEVPThtC.js → StateSelect.stories-DLvSnAcF.js} +1 -1
  216. package/storybook-static/assets/{StatusIndicator-BbTCS7Ku.js → StatusIndicator-vJAPPq2m.js} +1 -1
  217. package/storybook-static/assets/{StatusIndicator.stories-BIps_Ecm.js → StatusIndicator.stories-B7PGK2_C.js} +1 -1
  218. package/storybook-static/assets/{StringToggle.stories-vhOfzslq.js → StringToggle.stories-DBpxJZL-.js} +1 -1
  219. package/storybook-static/assets/{Switch-DibS4nSc.js → Switch-BkTvYjyQ.js} +1 -1
  220. package/storybook-static/assets/{Switch-jJgwtWFK.js → Switch-DlRrk6o7.js} +1 -1
  221. package/storybook-static/assets/{Switch.stories-Cvky3KQz.js → Switch.stories-BtctkC2W.js} +1 -1
  222. package/storybook-static/assets/Table-xOdM6spm.js +219 -0
  223. package/storybook-static/assets/Table.stories-FORIU5CX.js +184 -0
  224. package/storybook-static/assets/{TableEditor.stories-Be9nCkds.js → TableEditor.stories-GU46gl20.js} +1 -1
  225. package/storybook-static/assets/{Tabs-CTL4MnkZ.js → Tabs-Cg_IYAXs.js} +1 -1
  226. package/storybook-static/assets/{Tabs.stories-CIVbz7kW.js → Tabs.stories-2cS0B94o.js} +1 -1
  227. package/storybook-static/assets/{TabsBox-C9g1p4du.js → TabsBox-Dz3AsaoR.js} +1 -1
  228. package/storybook-static/assets/{TagInput-DuJLeiyT.js → TagInput-CCTgbRhQ.js} +1 -1
  229. package/storybook-static/assets/{TagInput.stories-BLVFWr-T.js → TagInput.stories-CevhCeXY.js} +1 -1
  230. package/storybook-static/assets/{Text-Cr_TUUgL.js → Text-CDCeYwIB.js} +1 -1
  231. package/storybook-static/assets/{Textarea-BImI6Q6v.js → Textarea-Ba4MyNoY.js} +1 -1
  232. package/storybook-static/assets/{Textarea-DGaanGLG.js → Textarea-CNsrFSip.js} +1 -1
  233. package/storybook-static/assets/{Textarea.stories-DvQ2dDNh.js → Textarea.stories-laVFWVXL.js} +1 -1
  234. package/storybook-static/assets/{TimePanel-Cg2G5Hab.js → TimePanel-Ddy67nzH.js} +1 -1
  235. package/storybook-static/assets/{TimePanel.stories-qy5mb3YN.js → TimePanel.stories-OLefy0XD.js} +1 -1
  236. package/storybook-static/assets/{Toggle-CroC7YOK.js → Toggle-BGbyfmSW.js} +1 -1
  237. package/storybook-static/assets/{Toggle-Dj8Ic_Ak.js → Toggle-BlCBtQd1.js} +1 -1
  238. package/storybook-static/assets/{Toggle.stories-CmyyubM8.js → Toggle.stories-BjeTDL90.js} +1 -1
  239. package/storybook-static/assets/{TreeMultiSelect-BHNmPW50.js → TreeMultiSelect-BJnAzsFO.js} +1 -1
  240. package/storybook-static/assets/{TreeMultiSelect-DBQYLjnA.js → TreeMultiSelect-ZVSLdnCU.js} +1 -1
  241. package/storybook-static/assets/{TreeMultiSelect.stories-BNsE1zgF.js → TreeMultiSelect.stories-BJOtdIDe.js} +1 -1
  242. package/storybook-static/assets/{TreePickerBase-ZEBy3EVT.js → TreePickerBase-BQKfhufH.js} +1 -1
  243. package/storybook-static/assets/{TreeSelect-T7G2pkyK.js → TreeSelect-BSr4FMlq.js} +1 -1
  244. package/storybook-static/assets/{TreeSelect-aiPeW2uJ.js → TreeSelect-DSHQjGD1.js} +1 -1
  245. package/storybook-static/assets/{TreeSelect.stories-E6ObkYJe.js → TreeSelect.stories-GRcEv-kN.js} +1 -1
  246. package/storybook-static/assets/{TreeTable-C0ORe5Pe.js → TreeTable-CzmxD2ee.js} +1 -1
  247. package/storybook-static/assets/{TreeTable.stories-PtGT_1X5.js → TreeTable.stories-35ufhVh1.js} +1 -1
  248. package/storybook-static/assets/{array-D-_yMMUK-DnJ_b27D.js → array-D-_yMMUK-BBmW5vUr.js} +1 -1
  249. package/storybook-static/assets/{blocks-DR4JL0hD.js → blocks-SX-KK9Lg.js} +3 -3
  250. package/storybook-static/assets/{check-PtABqMc1.js → check-BYM7OgKl.js} +1 -1
  251. package/storybook-static/assets/{chevron-down-BaujB0G_.js → chevron-down-Mu7usNfR.js} +1 -1
  252. package/storybook-static/assets/{chevron-left-C1SZ4PrE.js → chevron-left-CiOR-CGA.js} +1 -1
  253. package/storybook-static/assets/{chevron-right-CfCjHN8b.js → chevron-right-5Rrk5UhO.js} +1 -1
  254. package/storybook-static/assets/{chunk-W22LQPXL-Cis7lFT9.js → chunk-W22LQPXL-Cj8Y9DHq.js} +1 -1
  255. package/storybook-static/assets/{circle-alert-Mymt-6wl.js → circle-alert-BXB7LSDS.js} +1 -1
  256. package/storybook-static/assets/{circle-check-DzqMvzJX.js → circle-check-DrVuYn1Q.js} +1 -1
  257. package/storybook-static/assets/{components-Do91qDh3.js → components-BEDJAYMp.js} +3 -3
  258. package/storybook-static/assets/{contextMenu-8NKKgKoy.js → contextMenu-BaB_e0Tl.js} +1 -1
  259. package/storybook-static/assets/{download-Cn6H3Bnv.js → download-W-Vr_TI7.js} +1 -1
  260. package/storybook-static/assets/{floating-ui.react-BFqa49jG.js → floating-ui.react-BTEwHffF.js} +1 -1
  261. package/storybook-static/assets/{formatMultiSelectOptionCount-xGq1uM2H.js → formatMultiSelectOptionCount-BxXwE0wd.js} +1 -1
  262. package/storybook-static/assets/{formatters-DVE1YVNQ-YIdRxgw-.js → formatters-DVE1YVNQ-CJCkXjuI.js} +1 -1
  263. package/storybook-static/assets/{foundationApi-CChPwNx-.js → foundationApi-BcoJ1zeX.js} +1 -1
  264. package/storybook-static/assets/{foundationLib-ClEyfTpa.js → foundationLib-B2kQ07LT.js} +1 -1
  265. package/storybook-static/assets/{hooks-DUKyfcb_.js → hooks-BgMXxXbY.js} +1 -1
  266. package/storybook-static/assets/{iframe-1Nw_zWMi.js → iframe-CU98mtpe.js} +3 -3
  267. package/storybook-static/assets/iframe-DaZCH1M-.js +1 -0
  268. package/storybook-static/assets/{info-DMI56qGy.js → info-BhHmytIH.js} +1 -1
  269. package/storybook-static/assets/{odata-D9M3xPIL.js → odata-yWIAioh9.js} +1 -1
  270. package/storybook-static/assets/{odataStoryFixtures-eHJgW7OK.js → odataStoryFixtures-CnZ_YrUb.js} +1 -1
  271. package/storybook-static/assets/{react-DidV4ORc.js → react-C2mSveWL.js} +1 -1
  272. package/storybook-static/assets/{refresh-cw-B1ChlhvT.js → refresh-cw-D8_L8K4Y.js} +1 -1
  273. package/storybook-static/assets/{settings-2-BxwqnB9r.js → settings-2-jWGaWGT0.js} +1 -1
  274. package/storybook-static/assets/{sortable-DMBM69Jm.js → sortable-BteEe6X0.js} +1 -1
  275. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-BJZNAUo-.js → syntaxhighlighter-QEQV7K2Y-eEu1MRSg.js} +1 -1
  276. package/storybook-static/assets/{trash-2-B768_PZU.js → trash-2-CwmbYA8i.js} +1 -1
  277. package/storybook-static/assets/{triangle-alert-B8H-k2Bq.js → triangle-alert-TRLt6Woa.js} +1 -1
  278. package/storybook-static/assets/{useODataSelectBase-BKAZcf4R.js → useODataSelectBase-BxHmAh7D.js} +1 -1
  279. package/storybook-static/assets/{useODataTreeData-Bxlcmpg8.js → useODataTreeData-dSt1HJsq.js} +1 -1
  280. package/storybook-static/assets/{usePickerDefaultFilter-ien2ZY7g.js → usePickerDefaultFilter-Djn1liy6.js} +1 -1
  281. package/storybook-static/assets/{usePickerQuery-DJj2HmX9.js → usePickerQuery-ByBt1NRd.js} +1 -1
  282. package/storybook-static/assets/{usePickerTriggerController-CiD33ccS.js → usePickerTriggerController-CqdXiV2q.js} +1 -1
  283. package/storybook-static/assets/{x-Dt9SO3SL.js → x-BPRzfyys.js} +1 -1
  284. package/storybook-static/iframe.html +2 -2
  285. package/storybook-static/index.json +1 -1
  286. package/storybook-static/project.json +1 -1
  287. package/dist/chunks/base-table-9H5YuVvB.js.map +0 -1
  288. package/dist/chunks/table-BRC1OTyE.js +0 -141
  289. package/dist/chunks/table-BRC1OTyE.js.map +0 -1
  290. package/storybook-static/assets/FormattedTableCell-B4RRbSFK.js +0 -15
  291. package/storybook-static/assets/Table-DcNGLEI6.js +0 -197
  292. package/storybook-static/assets/Table.stories-DbEzudxD.js +0 -178
  293. package/storybook-static/assets/iframe-BgBwFMGW.js +0 -1
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./TimePanel-Cg2G5Hab.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{n(),i(),o=t(),{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`UI/Internal/DateTime/TimePanel`,component:a,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=r((e,t)=>{let n=e.value;return(0,o.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,o.jsx)(a,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}),u={render:l},d={render:l,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)}},u.parameters={...u.parameters,docs:{...u.parameters?.docs,source:{originalSource:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CU98mtpe.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./TimePanel-Ddy67nzH.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{n(),i(),o=t(),{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`UI/Internal/DateTime/TimePanel`,component:a,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=r((e,t)=>{let n=e.value;return(0,o.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,o.jsx)(a,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}),u={render:l},d={render:l,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)}},u.parameters={...u.parameters,docs:{...u.parameters?.docs,source:{originalSource:`{
2
2
  render: renderTimePanelStory
3
3
  }`,...u.parameters?.docs?.source},description:{story:`Демонстрирует базовую wheel-панель времени.`,...u.parameters?.docs?.description}}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
4
4
  render: renderTimePanelStory,
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-1Nw_zWMi.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{n as o,t as s}from"./ui.module-l7VCYIW-.js";var c,l,u,d,f,p,m,h,g;function _(){return(_=t((()=>{c=`FFyoOs`,l=`zPYy7T`,u=`j6ek6R`,d=`HFTPXI`,f=`_0RK4xF`,p=`kDPnKt`,m=`DQHqws`,h=`nCQ9v4`,g={row:c,wrapper:l,input:u,track:d,thumb:f,unchecked:p,checked:m,option:h}})))()}function v({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:c,value:l,id:u,checkedText:d=`ВКЛ`,uncheckedText:f=`ВЫКЛ`,labelPosition:p=`before`,...m}){let h=(0,y.useId)(),_=u??h,v=t?`${_}-description`:void 0,x=e??n,S=!!l,C=!x&&!m[`aria-label`]?`${f} / ${d}`:void 0,w=x?(0,b.jsx)(`label`,{htmlFor:_,className:o.uiLabel,children:x}):null;return(0,b.jsxs)(`div`,{className:i(o.uiElement,r&&o.disabled,a&&o.uiSizable,a&&o[a],s),"aria-disabled":r||void 0,children:[(0,b.jsxs)(`div`,{className:g.row,children:[p===`before`&&w,(0,b.jsxs)(`div`,{className:g.wrapper,children:[(0,b.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`switch`,checked:S,disabled:r,"aria-checked":S,"aria-describedby":v,"aria-label":C,className:i(o.uiInputControl,g.input),onChange:e=>c?.(e.currentTarget.checked)}),(0,b.jsxs)(`div`,{className:g.track,"data-disabled":r||void 0,"aria-hidden":`true`,children:[(0,b.jsx)(`div`,{className:g.thumb}),(0,b.jsx)(`div`,{className:i(g.option,g.unchecked),children:f}),(0,b.jsx)(`div`,{className:i(g.option,g.checked),children:d})]})]}),p===`after`&&w]}),t&&(0,b.jsx)(`p`,{id:v,className:o.uiDescription,children:t})]})}var y,b;function x(){return(x=t((()=>{y=e(n(),1),a(),s(),_(),b=r(),v.__docgenInfo={description:`Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.`,methods:[],displayName:`Toggle`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},checkedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВКЛ"`,computed:!1}},uncheckedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВЫКЛ"`,computed:!1}},labelPosition:{required:!1,tsType:{name:`union`,raw:`"before" | "after"`,elements:[{name:`literal`,value:`"before"`},{name:`literal`,value:`"after"`}]},description:``,defaultValue:{value:`"before"`,computed:!1}}},composes:[`Omit`]}})))()}export{x as n,v as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-CU98mtpe.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{n as o,t as s}from"./ui.module-l7VCYIW-.js";var c,l,u,d,f,p,m,h,g;function _(){return(_=t((()=>{c=`FFyoOs`,l=`zPYy7T`,u=`j6ek6R`,d=`HFTPXI`,f=`_0RK4xF`,p=`kDPnKt`,m=`DQHqws`,h=`nCQ9v4`,g={row:c,wrapper:l,input:u,track:d,thumb:f,unchecked:p,checked:m,option:h}})))()}function v({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:c,value:l,id:u,checkedText:d=`ВКЛ`,uncheckedText:f=`ВЫКЛ`,labelPosition:p=`before`,...m}){let h=(0,y.useId)(),_=u??h,v=t?`${_}-description`:void 0,x=e??n,S=!!l,C=!x&&!m[`aria-label`]?`${f} / ${d}`:void 0,w=x?(0,b.jsx)(`label`,{htmlFor:_,className:o.uiLabel,children:x}):null;return(0,b.jsxs)(`div`,{className:i(o.uiElement,r&&o.disabled,a&&o.uiSizable,a&&o[a],s),"aria-disabled":r||void 0,children:[(0,b.jsxs)(`div`,{className:g.row,children:[p===`before`&&w,(0,b.jsxs)(`div`,{className:g.wrapper,children:[(0,b.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`switch`,checked:S,disabled:r,"aria-checked":S,"aria-describedby":v,"aria-label":C,className:i(o.uiInputControl,g.input),onChange:e=>c?.(e.currentTarget.checked)}),(0,b.jsxs)(`div`,{className:g.track,"data-disabled":r||void 0,"aria-hidden":`true`,children:[(0,b.jsx)(`div`,{className:g.thumb}),(0,b.jsx)(`div`,{className:i(g.option,g.unchecked),children:f}),(0,b.jsx)(`div`,{className:i(g.option,g.checked),children:d})]})]}),p===`after`&&w]}),t&&(0,b.jsx)(`p`,{id:v,className:o.uiDescription,children:t})]})}var y,b;function x(){return(x=t((()=>{y=e(n(),1),a(),s(),_(),b=r(),v.__docgenInfo={description:`Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.`,methods:[],displayName:`Toggle`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},checkedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВКЛ"`,computed:!1}},uncheckedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВЫКЛ"`,computed:!1}},labelPosition:{required:!1,tsType:{name:`union`,raw:`"before" | "after"`,elements:[{name:`literal`,value:`"before"`},{name:`literal`,value:`"after"`}]},description:``,defaultValue:{value:`"before"`,computed:!1}}},composes:[`Omit`]}})))()}export{x as n,v as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-CmyyubM8.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CU98mtpe.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-SX-KK9Lg.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-BjeTDL90.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`Toggle`}),`
3
3
  `,(0,b.jsx)(o,{children:`Переключаемый булев контрол для локальных режимов и простых опций`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`Toggle уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./Toggle-CroC7YOK.js";var s=t({Controlled:()=>d,Disabled:()=>p,LabelAfter:()=>f,__namedExportsOrder:()=>m,default:()=>u}),c,l,u,d,f,p,m;function h(){return(h=e((()=>{r(),a(),c=n(),l=i((e,t)=>(0,c.jsx)(o,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),u={title:`UI/Toggle`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее значение переключателя.`,control:`boolean`},onChange:{description:`Вызывается при изменении значения.`,control:!1},checkedText:{description:`Текст для включенного состояния.`,control:`text`},uncheckedText:{description:`Текст для выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={render:l,args:{label:`Режим синхронизации`,description:`Мгновенное переключение состояния.`,value:!1,checkedText:`ВКЛ`,uncheckedText:`ВЫКЛ`,labelPosition:`before`}},f={render:l,args:{label:`Уведомления`,value:!0,labelPosition:`after`}},p={render:l,args:{label:`Недоступный переключатель`,value:!0,disabled:!0}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-CU98mtpe.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./Toggle-BGbyfmSW.js";var s=t({Controlled:()=>d,Disabled:()=>p,LabelAfter:()=>f,__namedExportsOrder:()=>m,default:()=>u}),c,l,u,d,f,p,m;function h(){return(h=e((()=>{r(),a(),c=n(),l=i((e,t)=>(0,c.jsx)(o,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),u={title:`UI/Toggle`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее значение переключателя.`,control:`boolean`},onChange:{description:`Вызывается при изменении значения.`,control:!1},checkedText:{description:`Текст для включенного состояния.`,control:`text`},uncheckedText:{description:`Текст для выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={render:l,args:{label:`Режим синхронизации`,description:`Мгновенное переключение состояния.`,value:!1,checkedText:`ВКЛ`,uncheckedText:`ВЫКЛ`,labelPosition:`before`}},f={render:l,args:{label:`Уведомления`,value:!0,labelPosition:`after`}},p={render:l,args:{label:`Недоступный переключатель`,value:!0,disabled:!0}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
2
2
  render: renderToggleStory,
3
3
  args: {
4
4
  label: "Режим синхронизации",
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-1Nw_zWMi.js";import{i as r,n as i,r as a,t as o}from"./formatMultiSelectOptionCount-xGq1uM2H.js";import{a as s,c,d as l,i as u,l as d,n as f,r as p,s as m,t as h}from"./TreePickerBase-ZEBy3EVT.js";function g(e,t){let n=l(e,t),r=Object.values(n).reduce((e,t)=>e+t.length,0);if(r!==0){if(r===1){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1))[0],r=t.nodeById.get(n);return r?r.label:void 0}return o(r)}}function _(e,t,n){let r=d(e,n),i=d(t,n);return r.size===i.size&&[...r].every(e=>i.has(e))}function v({label:e,description:t,disabled:n,placeholder:i=`Выберите значения`,size:a,nodes:o,value:f,onChange:v,query:x,defaultQuery:S,onQuery:C,isLoading:w,error:T,fieldError:E,required:D,optionsLayout:O=`tree`,defaultExpandedCodeKeys:k}){let[A,j]=(0,y.useState)(!1),M=(0,y.useMemo)(()=>p(o),[o]),{draftValue:N,setDraftValue:P,prepareOpen:F}=r({value:f,open:A,onCommit:v,isEqual:(e,t)=>_(e,t,M)}),I=A?N:f,L=(0,y.useMemo)(()=>d(I,M),[I,M]),R=(0,y.useMemo)(()=>s(L,M),[L,M]),z=(0,y.useMemo)(()=>new Set([...M.nodeById.keys()].filter(e=>M.nodeById.get(e)?.disabled!==!0&&!m(e,L,M)&&!R.selectedIds.has(e)&&u(M,[e]).size===0)),[L,R.selectedIds,M]),B=(0,y.useMemo)(()=>g(L,M),[L,M]);return(0,b.jsx)(h,{label:e,description:t,disabled:n,placeholder:i,size:a,nodes:o,selectedIds:R.selectedIds,partialIds:R.partialIds,selectionMode:`multi`,optionsLayout:O,defaultExpandedCodeKeys:k,unavailableNodeIds:z,open:A,onOpenChange:e=>{e&&!A&&F(),j(e)},bulkActions:{onSelectAll:()=>{P(l(u(M),M))},onDeselectAll:()=>P({})},triggerMode:`search`,selectedSummary:B,query:x,defaultQuery:S,onQuery:C,onNodeActivate:(e,t)=>{P(c({},e.id,M,t))},onNodeToggleSelection:(e,t)=>{P(n=>c(n,e.id,M,t))},onClearSelection:()=>{P({}),A||v({})},isLoading:w,error:T,fieldError:E,required:D})}var y,b;function x(){return(x=e((()=>{y=t(),i(),a(),f(),b=n(),v.__docgenInfo={description:``,methods:[],displayName:`TreeMultiSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значения"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Определяет обычное раскрываемое дерево или полностью открытый адаптивный набор колонок.`,defaultValue:{value:`"tree"`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nВ режиме `columns` дерево по-прежнему отображается полностью раскрытым."}},composes:[`Omit`]}})))()}export{x as n,v as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-CU98mtpe.js";import{i as r,n as i,r as a,t as o}from"./formatMultiSelectOptionCount-BxXwE0wd.js";import{a as s,c,d as l,i as u,l as d,n as f,r as p,s as m,t as h}from"./TreePickerBase-BQKfhufH.js";function g(e,t){let n=l(e,t),r=Object.values(n).reduce((e,t)=>e+t.length,0);if(r!==0){if(r===1){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1))[0],r=t.nodeById.get(n);return r?r.label:void 0}return o(r)}}function _(e,t,n){let r=d(e,n),i=d(t,n);return r.size===i.size&&[...r].every(e=>i.has(e))}function v({label:e,description:t,disabled:n,placeholder:i=`Выберите значения`,size:a,nodes:o,value:f,onChange:v,query:x,defaultQuery:S,onQuery:C,isLoading:w,error:T,fieldError:E,required:D,optionsLayout:O=`tree`,defaultExpandedCodeKeys:k}){let[A,j]=(0,y.useState)(!1),M=(0,y.useMemo)(()=>p(o),[o]),{draftValue:N,setDraftValue:P,prepareOpen:F}=r({value:f,open:A,onCommit:v,isEqual:(e,t)=>_(e,t,M)}),I=A?N:f,L=(0,y.useMemo)(()=>d(I,M),[I,M]),R=(0,y.useMemo)(()=>s(L,M),[L,M]),z=(0,y.useMemo)(()=>new Set([...M.nodeById.keys()].filter(e=>M.nodeById.get(e)?.disabled!==!0&&!m(e,L,M)&&!R.selectedIds.has(e)&&u(M,[e]).size===0)),[L,R.selectedIds,M]),B=(0,y.useMemo)(()=>g(L,M),[L,M]);return(0,b.jsx)(h,{label:e,description:t,disabled:n,placeholder:i,size:a,nodes:o,selectedIds:R.selectedIds,partialIds:R.partialIds,selectionMode:`multi`,optionsLayout:O,defaultExpandedCodeKeys:k,unavailableNodeIds:z,open:A,onOpenChange:e=>{e&&!A&&F(),j(e)},bulkActions:{onSelectAll:()=>{P(l(u(M),M))},onDeselectAll:()=>P({})},triggerMode:`search`,selectedSummary:B,query:x,defaultQuery:S,onQuery:C,onNodeActivate:(e,t)=>{P(c({},e.id,M,t))},onNodeToggleSelection:(e,t)=>{P(n=>c(n,e.id,M,t))},onClearSelection:()=>{P({}),A||v({})},isLoading:w,error:T,fieldError:E,required:D})}var y,b;function x(){return(x=e((()=>{y=t(),i(),a(),f(),b=n(),v.__docgenInfo={description:``,methods:[],displayName:`TreeMultiSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значения"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Определяет обычное раскрываемое дерево или полностью открытый адаптивный набор колонок.`,defaultValue:{value:`"tree"`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nВ режиме `columns` дерево по-прежнему отображается полностью раскрытым."}},composes:[`Omit`]}})))()}export{x as n,v as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./TreeMultiSelect.stories-BNsE1zgF.js";function C(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CU98mtpe.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-SX-KK9Lg.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./TreeMultiSelect.stories-BJOtdIDe.js";function C(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,T.jsx)(u,{children:`TreeMultiSelect`}),`
3
3
  `,(0,T.jsx)(o,{children:`Мультивыбор узлов дерева с компрессией subtree в parent`}),`
4
4
  `,(0,T.jsxs)(t.p,{children:[(0,T.jsx)(t.code,{children:`TreeMultiSelect`}),` хранит наружу не “все листья”, а канонизированный frontier по уровням дерева.`]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./TreeMultiSelect-BHNmPW50.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-DXHh9GL3.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RequiredWithError:()=>w,RightEdgeColumns:()=>C,__namedExportsOrder:()=>T,default:()=>g});function d({args:e,updateArgs:t}){return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:Object.values(n).some(e=>e.length>0)?void 0:e.fieldError})}}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var f,p,m,h,g,_,v,y,b,x,S,C,w,T;function E(){return(E=e((()=>{r(),a(),s(),f=n(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m=i((e,t)=>(0,f.jsx)(d,{args:e,updateArgs:t})),h=i((e,t)=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(d,{args:e,updateArgs:t})})})),g={title:`UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узлов как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранных узлов под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Контролируемое отображение выбранных узлов по codeKey.`,control:!1},onChange:{description:`Вызывается при commit набора узлов.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},optionsLayout:{description:`Способ показа: дерево или адаптивные колонки.`,control:`inline-radio`,options:[`tree`,`columns`]},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},_={render:m,args:{value:{OWNER:[`P0001`]}}},v={render:m,args:{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,value:{REGION:[`R01`]}}},y={render:m,args:{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,value:{BRANCH:[`B0101`],OWNER:[`P0004`]}}},b={render:m,args:{label:`Раскрыты два уровня`,description:`Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.`,defaultExpandedCodeKeys:[`REGION`,`BRANCH`]}},x={render:m,args:{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,value:{BRANCH:[`B0101`]}}},S={render:m,args:{label:`Защита начала большой группы`,description:`Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.`,optionsLayout:`columns`,nodes:c}},C={render:h,args:{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p}},w={name:`Обязательное поле с ошибкой`,render:m,args:{required:!0,fieldError:`Выберите хотя бы один узел.`,value:{}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-CU98mtpe.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./TreeMultiSelect-BJnAzsFO.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-DXHh9GL3.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RequiredWithError:()=>w,RightEdgeColumns:()=>C,__namedExportsOrder:()=>T,default:()=>g});function d({args:e,updateArgs:t}){return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:Object.values(n).some(e=>e.length>0)?void 0:e.fieldError})}}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var f,p,m,h,g,_,v,y,b,x,S,C,w,T;function E(){return(E=e((()=>{r(),a(),s(),f=n(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m=i((e,t)=>(0,f.jsx)(d,{args:e,updateArgs:t})),h=i((e,t)=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(d,{args:e,updateArgs:t})})})),g={title:`UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узлов как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранных узлов под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Контролируемое отображение выбранных узлов по codeKey.`,control:!1},onChange:{description:`Вызывается при commit набора узлов.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},optionsLayout:{description:`Способ показа: дерево или адаптивные колонки.`,control:`inline-radio`,options:[`tree`,`columns`]},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},_={render:m,args:{value:{OWNER:[`P0001`]}}},v={render:m,args:{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,value:{REGION:[`R01`]}}},y={render:m,args:{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,value:{BRANCH:[`B0101`],OWNER:[`P0004`]}}},b={render:m,args:{label:`Раскрыты два уровня`,description:`Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.`,defaultExpandedCodeKeys:[`REGION`,`BRANCH`]}},x={render:m,args:{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,value:{BRANCH:[`B0101`]}}},S={render:m,args:{label:`Защита начала большой группы`,description:`Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.`,optionsLayout:`columns`,nodes:c}},C={render:h,args:{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p}},w={name:`Обязательное поле с ошибкой`,render:m,args:{required:!0,fieldError:`Выберите хотя бы один узел.`,value:{}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
2
2
  render: renderTreeMultiSelectStory,
3
3
  args: {
4
4
  value: {
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-right-CfCjHN8b.js";import{n as i,t as a}from"./CheckBox-BBPasWSk.js";import{n as o}from"./iframe-1Nw_zWMi.js";import{a as s,i as c,r as l,s as u,t as d}from"./utils-tg3ibbzi.js";import{n as f,t as p}from"./OptionContent-BZ3FiJQ4.js";import{l as m,o as h}from"./Input-7N70tL0u.js";import{n as g,t as ee}from"./PickerField-CByAoAAO.js";import{c as _,i as v,l as te,n as ne,r as re,s as ie,t as ae,u as y}from"./usePickerTriggerController-CiD33ccS.js";import{a as oe,n as se,o as ce,t as le}from"./Option-CG3bU2cY.js";import{i as ue,n as de,r as fe,t as pe}from"./usePickerQuery-DJj2HmX9.js";import{n as me,t as he}from"./OptionButton-DF0E8aU5.js";import{n as b,t as ge}from"./OptionContentContainer-CyI5IfqU.js";function x(e,t){return`${e}::${t}`}function _e(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=0,l=(e,u)=>{t.set(e.id,e),n.set(e.id,u),i.set(e.id,c++);let d=x(e.codeKey,e.value);a.set(d,e.id);let f=o.get(d);f?f.push(e.id):o.set(d,[e.id]);let p=(e.children??[]).map(e=>e.id);r.set(e.id,p);for(let t of e.children??[])l(t,e.id);s.set(e.id,e.disabled===!0||p.some(e=>s.get(e)===!0))};for(let t of e)l(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a,nodeIdsByCodeValue:o,subtreeContainsDisabledById:s}}function S(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(x(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ye(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i)for(let i of t.nodeIdsByCodeValue.get(x(r,e))??[])n.add(i);return A(n,t)}function C(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={},i=new Set;for(let e of n){let n=t.nodeById.get(e);if(!n)continue;let a=x(n.codeKey,n.value);i.has(a)||(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value),i.add(a))}return r}function w(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function T(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function be(e,t){let n=S(e,t);return!n.length||n.some(e=>{let n=t.nodeById.get(e);return!n||n.selectionBehavior===`descendants`||t.subtreeContainsDisabledById.get(e)===!0})?!1:!n.some((e,r)=>n.some((n,i)=>r!==i&&(T(e,n,t)||T(n,e,t))))}function xe(e,t){return be(e,t)?S(e,t):[e]}function E(e,t,n){for(let r of[...e])T(r,t,n)&&e.delete(r)}function D(e,t,n){let r=[t];for(let t=0;t<r.length;t+=1){let i=r[t];if(i){r.push(...n.childrenById.get(i)??[]);for(let t of S(i,n))e.delete(t)}}}function O(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length!==0&&r.every(e=>O(e,t,n))}function k(e,t,n){if(!n.nodeById.has(e))return!1;let r=t.childrenById.get(e)??[],i=n.childrenById.get(e)??[];return r.length===i.length&&r.every((e,r)=>i[r]===e&&k(e,t,n))}function A(e,t){let n=new Set(e);for(let e of[...n])if(t.nodeById.get(e)?.selectionBehavior===`descendants`){n.delete(e);for(let r of P(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])w(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];if(!(r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||t.nodeById.get(e)?.selectionBehavior===`descendants`)&&r.every(e=>O(e,n,t))){let r=S(e,t);if(be(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&O(e,n,t)}))for(let e of r)E(n,e,t),n.add(e)}}return n}function Se(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of S(r,n))if(e.has(t)){e.delete(t);for(let r of P(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function j(e,t,n){return t.has(e)?!0:w(e,n).some(e=>t.has(e))}function M(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>M(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function N(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)M(r,e,t,n);return n}function P(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);if(!r||r.disabled)return{containsDisabled:!0,selectedIds:a};if(r.selectionBehavior===`descendants`)return{containsDisabled:o,selectedIds:a};let s=!be(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function F(e,t,n,r){let i=ye(e,n),a=r!==void 0&&!k(t,n,r);if(!a&&O(t,i,n))return D(i,t,n),C(A(i,n),n);let o=e=>{if(i.has(e)){D(i,e,n);return}if(O(e,i,n)){D(i,e,n);return}if(j(e,i,n)){Se(i,e,n)&&(j(e,i,n)||O(e,i,n)?o(e):D(i,e,n));return}for(let t of xe(e,n))E(i,t,n),i.add(t)},s=e=>{if(!r?.nodeById.has(e))return[];if(k(e,n,r)){let t=[...P(n,[e])];return t.length>0?t:j(e,i,n)||O(e,i,n)?[e]:[]}return(r.childrenById.get(e)??[]).flatMap(s)},c=a?s(t):[...P(n,[t])],l=c.length===0&&(j(t,i,n)||O(t,i,n))?[t]:c,u=l.length>0&&l.every(e=>j(e,i,n)||O(e,i,n));for(let e of l){let t=j(e,i,n)||O(e,i,n);(u&&t||!u&&!t)&&o(e)}return C(A(i,n),n)}function I(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ce(e,t){let n=new Set;for(let r of e)I(r,t,n);return n}function we(e,t,n){let r=new Set;for(let[i,a]of e.childrenById){if(a.length===0)continue;let o=e.nodeById.get(i);o&&(n.get(i)??t.has(o.codeKey))&&r.add(i)}return r}function Te(e,t,n){let r=(e.children??[]).map(e=>Te(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function Ee(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>Te(e,n,r)).filter(e=>!!e),expandedIds:r}}function De(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}function Oe(){return(Oe=e((()=>{})))()}function ke(e){let t=[],n=0;for(;n<e.length;){let r=n+1;for(;r<e.length&&e[r]?.level!==0;)r+=1;t.push({startIndex:n,endIndexExclusive:r}),n=r}let r=t.map(({startIndex:e,endIndexExclusive:t})=>`${e}:${t}`).join(`|`);return{itemCount:e.length,groups:t,signature:`${e.length}|${r}`}}function L(e,t){return Number.isFinite(e)&&e>0?e:t}function Ae(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Pe,t)}function je(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=Ae(t),s=n-a+1;a>1&&e>s&&(o+=s,i+=1,a=1);for(let e=t.startIndex;e<t.endIndexExclusive;e+=1)r[e]={column:i,row:a},a+=1,a>n&&(i+=1,a=1)}return{placements:r,usedColumnCount:r.length?Math.max(...r.map(e=>e.column)):1,intentionalGapCount:o}}function Me({descriptor:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e.itemCount)?e.itemCount:0)),s=L(t,240),c=L(n,80),l=L(r,s+16),u=L(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-16))),f=Math.max(1,Math.min(c,u-16)),p=Math.max(1,L(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(H,h,o||1)),ee=e.groups.reduce((e,t)=>Math.max(e,Ae(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let _,v=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(ee,Math.ceil(o/t)),r=je(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=je(e,n);let i=r.usedColumnCount,a=Math.max(m,R+i*B+(i-1)*V),s=z+n*Ne,c=a/d,l=s/f,u=(i*n-o)/o,p=r.intentionalGapCount/o,h=Math.max(c,l)+.25*Math.abs(c-l)+.01*u+.02*p+.04*(i-1);h<v&&(v=h,_={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return _??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:je(e,o).placements}}var R,z,B,V,Ne,H,Pe;function U(){return(U=e((()=>{R=16,z=48,B=224,V=10,Ne=32,H=6,Pe=3})))()}var W,Fe,G,Ie,Le,Re,ze,Be,Ve,He,Ue,We,K,q;function Ge(){return(Ge=e((()=>{W=`_6EH37F`,Fe=`UBll8Q`,G=`-y3RZP`,Ie=`ayLJ50`,Le=`_430vL2`,Re=`_2MFkGF`,ze=`JhnGSK`,Be=`_0cHzF8`,Ve=`o5NWnX`,He=`ibSd-S`,Ue=`lXezvv`,We=`FMlLGX`,K=`d2Zt7U`,q={treeNodeButton:W,treePopupHeader:Fe,treeColumns:G,treeColumnRow:Ie,treeColumnsPopupLayout:Le,treeColumnCheckBox:Re,treeNodeSelectionCell:ze,treeNodeActionCell:Be,treeIndent:Ve,treeExpander:He,treeExpanderPlaceholder:Ue,treeExpanderIcon:We,treeExpanderIconExpanded:K}})))()}function Ke({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:c,partial:l,selectionMode:u,optionsLayout:d=`tree`,onToggleExpand:f,onToggleSelection:m,onActivate:h,actionRef:g}){let ee=d===`tree`,_=d===`columns`&&t===0,v=(0,J.jsx)(p,{text:e.label,code:e.code,searchText:n,emphasizeContent:_}),te=i?(0,J.jsx)(`span`,{className:q.treeExpander,"aria-hidden":`true`,onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation(),f?.()},"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,J.jsx)(r,{className:s(q.treeExpanderIcon,o&&q.treeExpanderIconExpanded)})}):(0,J.jsx)(`div`,{className:q.treeExpanderPlaceholder,"aria-hidden":`true`});return u===`multi`&&d===`tree`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{role:`gridcell`,className:q.treeNodeSelectionCell,children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),te,(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`${c?`Убрать`:`Добавить`} «${e.label}» ${c?`из выбора`:`в выбор`}`,onChange:()=>m?.()})})]}),(0,J.jsx)(`div`,{role:`gridcell`,className:q.treeNodeActionCell,children:(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,"aria-label":`Выбрать только «${e.label}»`,text:e.label,code:e.code,searchText:n,onMouseDown:e=>e.preventDefault(),onClick:h})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),ee?te:null,u===`multi`?(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>m?.()})}):null,d===`tree`?(0,J.jsx)(ge,{className:q.treeNodeButton,children:v}):(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,text:e.label,code:e.code,searchText:n,emphasizeContent:_,onMouseDown:e=>e.preventDefault(),onClick:h})]})}var J;function qe(){return(qe=e((()=>{c(),n(),i(),me(),f(),b(),Ge(),J=o(),Ke.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-right-5Rrk5UhO.js";import{n as i,t as a}from"./CheckBox-Dpg2QsvS.js";import{n as o}from"./iframe-CU98mtpe.js";import{a as s,i as c,r as l,s as u,t as d}from"./utils-tg3ibbzi.js";import{n as f,t as p}from"./OptionContent-C8S7IjI3.js";import{l as m,o as h}from"./Input-D2eqioLp.js";import{n as g,t as ee}from"./PickerField-Cgcm-Y5T.js";import{c as _,i as v,l as te,n as ne,r as re,s as ie,t as ae,u as y}from"./usePickerTriggerController-CqdXiV2q.js";import{a as oe,n as se,o as ce,t as le}from"./Option-CrEWqsFF.js";import{i as ue,n as de,r as fe,t as pe}from"./usePickerQuery-ByBt1NRd.js";import{n as me,t as he}from"./OptionButton-BEQ2oSPf.js";import{n as b,t as ge}from"./OptionContentContainer-ljQts_jY.js";function x(e,t){return`${e}::${t}`}function _e(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=0,l=(e,u)=>{t.set(e.id,e),n.set(e.id,u),i.set(e.id,c++);let d=x(e.codeKey,e.value);a.set(d,e.id);let f=o.get(d);f?f.push(e.id):o.set(d,[e.id]);let p=(e.children??[]).map(e=>e.id);r.set(e.id,p);for(let t of e.children??[])l(t,e.id);s.set(e.id,e.disabled===!0||p.some(e=>s.get(e)===!0))};for(let t of e)l(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a,nodeIdsByCodeValue:o,subtreeContainsDisabledById:s}}function S(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(x(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ye(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i)for(let i of t.nodeIdsByCodeValue.get(x(r,e))??[])n.add(i);return A(n,t)}function C(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={},i=new Set;for(let e of n){let n=t.nodeById.get(e);if(!n)continue;let a=x(n.codeKey,n.value);i.has(a)||(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value),i.add(a))}return r}function w(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function T(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function be(e,t){let n=S(e,t);return!n.length||n.some(e=>{let n=t.nodeById.get(e);return!n||n.selectionBehavior===`descendants`||t.subtreeContainsDisabledById.get(e)===!0})?!1:!n.some((e,r)=>n.some((n,i)=>r!==i&&(T(e,n,t)||T(n,e,t))))}function xe(e,t){return be(e,t)?S(e,t):[e]}function E(e,t,n){for(let r of[...e])T(r,t,n)&&e.delete(r)}function D(e,t,n){let r=[t];for(let t=0;t<r.length;t+=1){let i=r[t];if(i){r.push(...n.childrenById.get(i)??[]);for(let t of S(i,n))e.delete(t)}}}function O(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length!==0&&r.every(e=>O(e,t,n))}function k(e,t,n){if(!n.nodeById.has(e))return!1;let r=t.childrenById.get(e)??[],i=n.childrenById.get(e)??[];return r.length===i.length&&r.every((e,r)=>i[r]===e&&k(e,t,n))}function A(e,t){let n=new Set(e);for(let e of[...n])if(t.nodeById.get(e)?.selectionBehavior===`descendants`){n.delete(e);for(let r of P(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])w(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];if(!(r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||t.nodeById.get(e)?.selectionBehavior===`descendants`)&&r.every(e=>O(e,n,t))){let r=S(e,t);if(be(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&O(e,n,t)}))for(let e of r)E(n,e,t),n.add(e)}}return n}function Se(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of S(r,n))if(e.has(t)){e.delete(t);for(let r of P(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function j(e,t,n){return t.has(e)?!0:w(e,n).some(e=>t.has(e))}function M(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>M(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function N(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)M(r,e,t,n);return n}function P(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);if(!r||r.disabled)return{containsDisabled:!0,selectedIds:a};if(r.selectionBehavior===`descendants`)return{containsDisabled:o,selectedIds:a};let s=!be(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function F(e,t,n,r){let i=ye(e,n),a=r!==void 0&&!k(t,n,r);if(!a&&O(t,i,n))return D(i,t,n),C(A(i,n),n);let o=e=>{if(i.has(e)){D(i,e,n);return}if(O(e,i,n)){D(i,e,n);return}if(j(e,i,n)){Se(i,e,n)&&(j(e,i,n)||O(e,i,n)?o(e):D(i,e,n));return}for(let t of xe(e,n))E(i,t,n),i.add(t)},s=e=>{if(!r?.nodeById.has(e))return[];if(k(e,n,r)){let t=[...P(n,[e])];return t.length>0?t:j(e,i,n)||O(e,i,n)?[e]:[]}return(r.childrenById.get(e)??[]).flatMap(s)},c=a?s(t):[...P(n,[t])],l=c.length===0&&(j(t,i,n)||O(t,i,n))?[t]:c,u=l.length>0&&l.every(e=>j(e,i,n)||O(e,i,n));for(let e of l){let t=j(e,i,n)||O(e,i,n);(u&&t||!u&&!t)&&o(e)}return C(A(i,n),n)}function I(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ce(e,t){let n=new Set;for(let r of e)I(r,t,n);return n}function we(e,t,n){let r=new Set;for(let[i,a]of e.childrenById){if(a.length===0)continue;let o=e.nodeById.get(i);o&&(n.get(i)??t.has(o.codeKey))&&r.add(i)}return r}function Te(e,t,n){let r=(e.children??[]).map(e=>Te(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function Ee(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>Te(e,n,r)).filter(e=>!!e),expandedIds:r}}function De(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}function Oe(){return(Oe=e((()=>{})))()}function ke(e){let t=[],n=0;for(;n<e.length;){let r=n+1;for(;r<e.length&&e[r]?.level!==0;)r+=1;t.push({startIndex:n,endIndexExclusive:r}),n=r}let r=t.map(({startIndex:e,endIndexExclusive:t})=>`${e}:${t}`).join(`|`);return{itemCount:e.length,groups:t,signature:`${e.length}|${r}`}}function L(e,t){return Number.isFinite(e)&&e>0?e:t}function Ae(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Pe,t)}function je(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=Ae(t),s=n-a+1;a>1&&e>s&&(o+=s,i+=1,a=1);for(let e=t.startIndex;e<t.endIndexExclusive;e+=1)r[e]={column:i,row:a},a+=1,a>n&&(i+=1,a=1)}return{placements:r,usedColumnCount:r.length?Math.max(...r.map(e=>e.column)):1,intentionalGapCount:o}}function Me({descriptor:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e.itemCount)?e.itemCount:0)),s=L(t,240),c=L(n,80),l=L(r,s+16),u=L(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-16))),f=Math.max(1,Math.min(c,u-16)),p=Math.max(1,L(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(H,h,o||1)),ee=e.groups.reduce((e,t)=>Math.max(e,Ae(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let _,v=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(ee,Math.ceil(o/t)),r=je(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=je(e,n);let i=r.usedColumnCount,a=Math.max(m,R+i*B+(i-1)*V),s=z+n*Ne,c=a/d,l=s/f,u=(i*n-o)/o,p=r.intentionalGapCount/o,h=Math.max(c,l)+.25*Math.abs(c-l)+.01*u+.02*p+.04*(i-1);h<v&&(v=h,_={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return _??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:je(e,o).placements}}var R,z,B,V,Ne,H,Pe;function U(){return(U=e((()=>{R=16,z=48,B=224,V=10,Ne=32,H=6,Pe=3})))()}var W,Fe,G,Ie,Le,Re,ze,Be,Ve,He,Ue,We,K,q;function Ge(){return(Ge=e((()=>{W=`_6EH37F`,Fe=`UBll8Q`,G=`-y3RZP`,Ie=`ayLJ50`,Le=`_430vL2`,Re=`_2MFkGF`,ze=`JhnGSK`,Be=`_0cHzF8`,Ve=`o5NWnX`,He=`ibSd-S`,Ue=`lXezvv`,We=`FMlLGX`,K=`d2Zt7U`,q={treeNodeButton:W,treePopupHeader:Fe,treeColumns:G,treeColumnRow:Ie,treeColumnsPopupLayout:Le,treeColumnCheckBox:Re,treeNodeSelectionCell:ze,treeNodeActionCell:Be,treeIndent:Ve,treeExpander:He,treeExpanderPlaceholder:Ue,treeExpanderIcon:We,treeExpanderIconExpanded:K}})))()}function Ke({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:c,partial:l,selectionMode:u,optionsLayout:d=`tree`,onToggleExpand:f,onToggleSelection:m,onActivate:h,actionRef:g}){let ee=d===`tree`,_=d===`columns`&&t===0,v=(0,J.jsx)(p,{text:e.label,code:e.code,searchText:n,emphasizeContent:_}),te=i?(0,J.jsx)(`span`,{className:q.treeExpander,"aria-hidden":`true`,onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation(),f?.()},"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,J.jsx)(r,{className:s(q.treeExpanderIcon,o&&q.treeExpanderIconExpanded)})}):(0,J.jsx)(`div`,{className:q.treeExpanderPlaceholder,"aria-hidden":`true`});return u===`multi`&&d===`tree`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{role:`gridcell`,className:q.treeNodeSelectionCell,children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),te,(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`${c?`Убрать`:`Добавить`} «${e.label}» ${c?`из выбора`:`в выбор`}`,onChange:()=>m?.()})})]}),(0,J.jsx)(`div`,{role:`gridcell`,className:q.treeNodeActionCell,children:(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,"aria-label":`Выбрать только «${e.label}»`,text:e.label,code:e.code,searchText:n,onMouseDown:e=>e.preventDefault(),onClick:h})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),ee?te:null,u===`multi`?(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>m?.()})}):null,d===`tree`?(0,J.jsx)(ge,{className:q.treeNodeButton,children:v}):(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,text:e.label,code:e.code,searchText:n,emphasizeContent:_,onMouseDown:e=>e.preventDefault(),onClick:h})]})}var J;function qe(){return(qe=e((()=>{c(),n(),i(),me(),f(),b(),Ge(),J=o(),Ke.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
2
  id: string;
3
3
  codeKey: string;
4
4
  value: string;
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,r as i,t as a,u as o}from"./TreePickerBase-ZEBy3EVT.js";function s(e){if(e)return e.code&&e.code!==e.label?`${e.label} · ${e.code}`:e.label}function c({label:e,description:t,disabled:n,placeholder:r=`Выберите значение`,size:c,nodes:d,value:f,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,fieldError:y,required:b,clearable:x=!1,defaultExpandedCodeKeys:S}){let C=(0,l.useMemo)(()=>i(d),[d]),w=o(f,C),T=w?C.nodeById.get(w):void 0;return(0,u.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:c,nodes:d,selectedIds:w?new Set([w]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:S,triggerMode:`search`,selectedSummaryText:s(T),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:x?()=>p(void 0):void 0,isLoading:_,error:v,fieldError:y,required:b})}var l,u;function d(){return(d=e((()=>{l=t(),r(),u=n(),c.__docgenInfo={description:``,methods:[],displayName:`TreeSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значение"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nЗначения сопоставляются с `TreeSelectNode.codeKey`."}},composes:[`Omit`]}})))()}export{d as n,c as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-CU98mtpe.js";import{n as r,r as i,t as a,u as o}from"./TreePickerBase-BQKfhufH.js";function s(e){if(e)return e.code&&e.code!==e.label?`${e.label} · ${e.code}`:e.label}function c({label:e,description:t,disabled:n,placeholder:r=`Выберите значение`,size:c,nodes:d,value:f,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,fieldError:y,required:b,clearable:x=!1,defaultExpandedCodeKeys:S}){let C=(0,l.useMemo)(()=>i(d),[d]),w=o(f,C),T=w?C.nodeById.get(w):void 0;return(0,u.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:c,nodes:d,selectedIds:w?new Set([w]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:S,triggerMode:`search`,selectedSummaryText:s(T),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:x?()=>p(void 0):void 0,isLoading:_,error:v,fieldError:y,required:b})}var l,u;function d(){return(d=e((()=>{l=t(),r(),u=n(),c.__docgenInfo={description:``,methods:[],displayName:`TreeSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значение"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nЗначения сопоставляются с `TreeSelectNode.codeKey`."}},composes:[`Omit`]}})))()}export{d as n,c as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./TreeSelect.stories-E6ObkYJe.js";function b(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CU98mtpe.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-SX-KK9Lg.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./TreeSelect.stories-GRcEv-kN.js";function b(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`TreeSelect`}),`
3
3
  `,(0,S.jsx)(o,{children:`Single-select для выбора одного узла из дерева`}),`
4
4
  `,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`TreeSelect`}),` подходит для сценариев, где выбор должен происходить по одному узлу, но пользователь работает не с плоским списком, а с иерархией.`]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./treeStoryFixtures-DXHh9GL3.js";import{n as s,t as c}from"./TreeSelect-T7G2pkyK.js";var l=t({Basic:()=>m,Empty:()=>_,FirstLevelExpanded:()=>g,RequiredWithError:()=>v,SelectParent:()=>h,__namedExportsOrder:()=>y,default:()=>p});function u({args:e,updateArgs:t}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:n?void 0:e.fieldError})}}),(0,d.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),s(),a(),d=n(),f=i((e,t)=>(0,d.jsx)(u,{args:e,updateArgs:t})),p={title:`UI/TreeSelect`,component:c,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:o,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узла как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранного узла под полем.`,control:`text`},placeholder:{description:`Текст без выбранного узла.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Выбранный узел в формате codeKey/value.`,control:!1},onChange:{description:`Вызывается при выборе узла.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},clearable:{description:`Показывает действие очистки выбора.`,control:`boolean`},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},m={render:f,args:{value:{codeKey:`BRANCH`,value:`B0101`}}},h={render:f,args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},g={render:f,args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},_={render:f,args:{nodes:[],description:`Состояние без доступных узлов.`}},v={name:`Обязательное поле с ошибкой`,render:f,args:{required:!0,fieldError:`Выберите узел дерева.`,value:void 0}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-CU98mtpe.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./treeStoryFixtures-DXHh9GL3.js";import{n as s,t as c}from"./TreeSelect-BSr4FMlq.js";var l=t({Basic:()=>m,Empty:()=>_,FirstLevelExpanded:()=>g,RequiredWithError:()=>v,SelectParent:()=>h,__namedExportsOrder:()=>y,default:()=>p});function u({args:e,updateArgs:t}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:n?void 0:e.fieldError})}}),(0,d.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),s(),a(),d=n(),f=i((e,t)=>(0,d.jsx)(u,{args:e,updateArgs:t})),p={title:`UI/TreeSelect`,component:c,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:o,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узла как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранного узла под полем.`,control:`text`},placeholder:{description:`Текст без выбранного узла.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Выбранный узел в формате codeKey/value.`,control:!1},onChange:{description:`Вызывается при выборе узла.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},clearable:{description:`Показывает действие очистки выбора.`,control:`boolean`},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},m={render:f,args:{value:{codeKey:`BRANCH`,value:`B0101`}}},h={render:f,args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},g={render:f,args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},_={render:f,args:{nodes:[],description:`Состояние без доступных узлов.`}},v={name:`Обязательное поле с ошибкой`,render:f,args:{required:!0,fieldError:`Выберите узел дерева.`,value:void 0}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
2
2
  render: renderTreeSelectStory,
3
3
  args: {
4
4
  value: {
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./TreeTable.stories-PtGT_1X5.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CU98mtpe.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-SX-KK9Lg.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./TreeTable.stories-35ufhVh1.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,M.jsx)(u,{children:`TreeTable`}),`
3
3
  `,(0,M.jsx)(o,{children:`Древовидная таблица для плоских OData-данных на базе TanStack Table`}),`
4
4
  `,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` предназначен для сценариев, где данные приходят плоским списком, но в UI должны выглядеть как дерево.
@@ -1,4 +1,4 @@
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-BaujB0G_.js";import{n as a,t as o}from"./chevron-right-CfCjHN8b.js";import{n as s}from"./iframe-1Nw_zWMi.js";import{A as c,D as l,O as u,T as d,_ as ee,a as f,b as te,g as ne,h as re,i as ie,k as ae,y as oe}from"./odata-D9M3xPIL.js";import{a as se,i as ce}from"./utils-tg3ibbzi.js";import{h as le,u as ue}from"./formatters-DVE1YVNQ-YIdRxgw-.js";import{n as de,t as fe}from"./useTable-CK68Q4S4.js";import{_ as pe,a as me,c as he,d as ge,f as _e,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as Ae,y as je}from"./FormattedTableCell-B4RRbSFK.js";import{n as Me,t as p}from"./createControlledStoryRender-BouhvX-R.js";function Ne(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function m(e){return Array.from(new Set(e))}function Pe(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&&Ne(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:m(f),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function Fe(){return(Fe=e((()=>{})))()}var h,g,_,v,y,b,x,S;function C(){return(C=e((()=>{h=`jOS9rT`,g=`zHOAf7`,_=`j48cXg`,v=`mf4-Kr`,y=`p8pb0F`,b=`KIudLf`,x=`bJsPGU`,S={treeColumnCell:h,selectedIndicatorCell:g,treeCell:_,treeCellContent:v,expanderButton:y,expanderSpacer:b,sentinel:x}})))()}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 Re(e,t){return t.get(e.id)??e.original}function ze(e,t,n,r){return e.cell.column.id===n?(0,E.jsxs)(`div`,{className:S.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${oe(r)??`0em`})`},children:[e.row.getCanExpand()?(0,E.jsx)(`button`,{type:`button`,className:S.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,E.jsx)(i,{size:16}):(0,E.jsx)(o,{size:16})}):(0,E.jsx)(`span`,{className:S.expanderSpacer,"aria-hidden":`true`}),(0,E.jsx)(`div`,{className:S.treeCellContent,children:t})]}):t}function w({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:oe,defaultColumnSizing:ce,columnPinning:le,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:be,onColumnOrderChange:xe,onColumnSizingChange:Se,onColumnPinningChange:Ce,onRowClick:De,onRowSelectionChange:je,onExpandedRowIdsChange:Me,onReachEnd:p,getRowCanSelect:Ne,getRowClassName:m,renderHeaderContextMenu:Fe,renderCellContent:h}){let g=(0,T.useMemo)(()=>Pe(r??[],a),[r,a]),_=(0,T.useMemo)(()=>ye(i),[i]),v=(0,T.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]),[y,b]=(0,T.useState)({}),x=(0,T.useRef)(!1),C=(0,T.useRef)(null),w=(0,T.useRef)(null),{rowSelection:Be,activateRowSelection:Ve}=ne({availableRowIds:g.allRowIds,rowById:g.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:He,onColumnVisibilityChange:D}=we({columnVisibility:te,defaultColumnVisibility:re,onColumnVisibilityChange:be}),{columnOrder:O,onColumnOrderChange:Ue}=_e({columnOrder:ie,defaultColumnOrder:ae,onColumnOrderChange:xe}),{columnSizing:k,onColumnSizingChange:We}=he({columnSizing:oe,defaultColumnSizing:ce,columnResizeMinWidth:ve,onColumnSizingChange:Se}),{columnPinning:A,onColumnPinningChange:Ge}=ke({columnPinning:le,defaultColumnPinning:fe,onColumnPinningChange:Ce}),Ke=(0,T.useMemo)(()=>({columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He}),[O,A,k,He]),qe=(0,T.useEffectEvent)((e,t)=>{if(e.length===0){x.current=!1,b({});return}let n=new Set(e);b(e=>{let r=Le(e).filter(e=>n.has(e));return x.current?Ie(r):(x.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),j=(0,T.useEffectEvent)(e=>{Me?.(Le(e))}),Je=(0,T.useEffectEvent)(()=>{p?.()});(0,T.useEffect)(()=>{qe(g.allRowIds,v)},[v,g.allRowIds]),(0,T.useEffect)(()=>{j(y)},[y]),(0,T.useEffect)(()=>{if(!p||!C.current||!w.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Je()},{root:C.current,threshold:.1});return e.observe(w.current),()=>e.disconnect()},[t,p,g.rows.length]);let M=de({features:ee,data:g.rows,columns:i,state:{columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He,expanded:y,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,onColumnOrderChange:Ue,onColumnPinningChange:Ge,onColumnSizingChange:We,onColumnVisibilityChange:D,onExpandedChange:b,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=Re(e,g.rowById);return!Ne||Ne(t)}}),N=Ae(M,Ke),P=l??N[0]?.id,Ye=M.getRowModel().rows,Xe=(0,T.useMemo)(()=>Te({rows:Ye,columns:N,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:P?new Set([P]):void 0}),[Ye,N,P]);return(0,E.jsx)(Ee,{table:M,columnState:Ke,title:e,isLoading:t,isFetching:n,className:d,tableClassName:f,selectionMode:o,scrollableRef:C,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||De?e=>{let t=Re(e,g.rowById);Ve(e.id,e.getCanSelect()),De?.(t)}:void 0,isRowInteractive:e=>!!(De||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=Re(e,g.rowById);return m?.(t)},getCellClassName:({row:e,cell:t})=>se(t.column.id===P&&S.treeColumnCell,t.column.id===P&&e.getIsSelected()&&S.selectedIndicatorCell),getCellLayout:({cell:e})=>Xe.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=Re(e.row,g.rowById),n=ue({field:_.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=pe({columnId:e.cell.column.id,runtimeByColumnId:_.runtimeByColumnId,customCellColumnIds:_.customCellColumnIds})?(0,E.jsx)(Oe,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return ze(e,h?h({...e,defaultContent:r,displayValue:n}):r,P,u)},afterTableContent:p?(0,E.jsx)(`div`,{ref:w,className:S.sentinel,"aria-hidden":`true`}):null})}var T,E;function Be(){return(Be=e((()=>{T=n(),le(),te(),Fe(),ce(),fe(),r(),a(),be(),Se(),ve(),Ce(),je(),ge(),xe(),De(),me(),C(),E=s(),w.__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 и отступы.
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-Mu7usNfR.js";import{n as a,t as o}from"./chevron-right-5Rrk5UhO.js";import{n as s}from"./iframe-CU98mtpe.js";import{A as c,D as l,O as u,T as d,_ as ee,a as f,b as te,g as ne,h as re,i as ie,k as ae,y as oe}from"./odata-yWIAioh9.js";import{a as se,i as ce}from"./utils-tg3ibbzi.js";import{h as le,u as ue}from"./formatters-DVE1YVNQ-CJCkXjuI.js";import{n as de,t as fe}from"./useTable-CK68Q4S4.js";import{_ as pe,a as me,c as he,d as ge,f as _e,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as Ae,y as je}from"./FormattedTableCell-BfEiCYOi.js";import{n as Me,t as p}from"./createControlledStoryRender-BouhvX-R.js";function Ne(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function m(e){return Array.from(new Set(e))}function Pe(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&&Ne(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:m(f),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function Fe(){return(Fe=e((()=>{})))()}var h,g,_,v,y,b,x,S;function C(){return(C=e((()=>{h=`jOS9rT`,g=`zHOAf7`,_=`j48cXg`,v=`mf4-Kr`,y=`p8pb0F`,b=`KIudLf`,x=`bJsPGU`,S={treeColumnCell:h,selectedIndicatorCell:g,treeCell:_,treeCellContent:v,expanderButton:y,expanderSpacer:b,sentinel:x}})))()}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 Re(e,t){return t.get(e.id)??e.original}function ze(e,t,n,r){return e.cell.column.id===n?(0,E.jsxs)(`div`,{className:S.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${oe(r)??`0em`})`},children:[e.row.getCanExpand()?(0,E.jsx)(`button`,{type:`button`,className:S.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,E.jsx)(i,{size:16}):(0,E.jsx)(o,{size:16})}):(0,E.jsx)(`span`,{className:S.expanderSpacer,"aria-hidden":`true`}),(0,E.jsx)(`div`,{className:S.treeCellContent,children:t})]}):t}function w({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:oe,defaultColumnSizing:ce,columnPinning:le,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:be,onColumnOrderChange:xe,onColumnSizingChange:Se,onColumnPinningChange:Ce,onRowClick:De,onRowSelectionChange:je,onExpandedRowIdsChange:Me,onReachEnd:p,getRowCanSelect:Ne,getRowClassName:m,renderHeaderContextMenu:Fe,renderCellContent:h}){let g=(0,T.useMemo)(()=>Pe(r??[],a),[r,a]),_=(0,T.useMemo)(()=>ye(i),[i]),v=(0,T.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]),[y,b]=(0,T.useState)({}),x=(0,T.useRef)(!1),C=(0,T.useRef)(null),w=(0,T.useRef)(null),{rowSelection:Be,activateRowSelection:Ve}=ne({availableRowIds:g.allRowIds,rowById:g.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:He,onColumnVisibilityChange:D}=we({columnVisibility:te,defaultColumnVisibility:re,onColumnVisibilityChange:be}),{columnOrder:O,onColumnOrderChange:Ue}=_e({columnOrder:ie,defaultColumnOrder:ae,onColumnOrderChange:xe}),{columnSizing:k,onColumnSizingChange:We}=he({columnSizing:oe,defaultColumnSizing:ce,columnResizeMinWidth:ve,onColumnSizingChange:Se}),{columnPinning:A,onColumnPinningChange:Ge}=ke({columnPinning:le,defaultColumnPinning:fe,onColumnPinningChange:Ce}),Ke=(0,T.useMemo)(()=>({columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He}),[O,A,k,He]),qe=(0,T.useEffectEvent)((e,t)=>{if(e.length===0){x.current=!1,b({});return}let n=new Set(e);b(e=>{let r=Le(e).filter(e=>n.has(e));return x.current?Ie(r):(x.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),j=(0,T.useEffectEvent)(e=>{Me?.(Le(e))}),Je=(0,T.useEffectEvent)(()=>{p?.()});(0,T.useEffect)(()=>{qe(g.allRowIds,v)},[v,g.allRowIds]),(0,T.useEffect)(()=>{j(y)},[y]),(0,T.useEffect)(()=>{if(!p||!C.current||!w.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Je()},{root:C.current,threshold:.1});return e.observe(w.current),()=>e.disconnect()},[t,p,g.rows.length]);let M=de({features:ee,data:g.rows,columns:i,state:{columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He,expanded:y,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,onColumnOrderChange:Ue,onColumnPinningChange:Ge,onColumnSizingChange:We,onColumnVisibilityChange:D,onExpandedChange:b,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=Re(e,g.rowById);return!Ne||Ne(t)}}),N=Ae(M,Ke),P=l??N[0]?.id,Ye=M.getRowModel().rows,Xe=(0,T.useMemo)(()=>Te({rows:Ye,columns:N,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:P?new Set([P]):void 0}),[Ye,N,P]);return(0,E.jsx)(Ee,{table:M,columnState:Ke,title:e,isLoading:t,isFetching:n,className:d,tableClassName:f,selectionMode:o,scrollableRef:C,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||De?e=>{let t=Re(e,g.rowById);Ve(e.id,e.getCanSelect()),De?.(t)}:void 0,isRowInteractive:e=>!!(De||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=Re(e,g.rowById);return m?.(t)},getCellClassName:({row:e,cell:t})=>se(t.column.id===P&&S.treeColumnCell,t.column.id===P&&e.getIsSelected()&&S.selectedIndicatorCell),getCellLayout:({cell:e})=>Xe.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=Re(e.row,g.rowById),n=ue({field:_.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=pe({columnId:e.cell.column.id,runtimeByColumnId:_.runtimeByColumnId,customCellColumnIds:_.customCellColumnIds})?(0,E.jsx)(Oe,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return ze(e,h?h({...e,defaultContent:r,displayValue:n}):r,P,u)},afterTableContent:p?(0,E.jsx)(`div`,{ref:w,className:S.sentinel,"aria-hidden":`true`}):null})}var T,E;function Be(){return(Be=e((()=>{T=n(),le(),te(),Fe(),ce(),fe(),r(),a(),be(),Se(),ve(),Ce(),je(),ge(),xe(),De(),me(),C(),E=s(),w.__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
2
 
3
3
  Если не указан, используется первая видимая колонка.`},indentSize:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:`Отступ на один уровень вложенности.
4
4
 
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";function t(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function n(e,n=``){return t(e)??n}function r(e){let n=t(e);return n?n.toLowerCase():``}function i(e){return e==null?``:String(e)}function a(e,t){let n=new Map(t.map(e=>[e,e])),r=[],i=new Set;for(let t of e??[]){if(!t||i.has(t))continue;let e=n.get(t);e&&(i.add(t),r.push(e))}return r}function o(e,t){let n=[...e],r=new Set(e);for(let e of t)!e||r.has(e)||(r.add(e),n.push(e));return n}function s(e,t){let n=[];for(let r of e){let e=t.get(r);e!==void 0&&n.push(e)}return n}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let{index:t,size:n,action:r}=e;switch(r){case`start`:return 0;case`end`:return n-1;case`up`:return t-1;case`down`:return t+1}}function u(e,t,n){let r=[...e];if(t<0||t>=r.length)return r;let i=l({index:t,size:r.length,action:n});if(i<0||i>=r.length||i===t)return r;let[a]=r.splice(t,1);return a===void 0||r.splice(i,0,a),r}function d(){return(d=e((()=>{})))()}export{s as a,n as c,d as i,u as l,c as n,o,i as r,r as s,a as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";function t(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function n(e,n=``){return t(e)??n}function r(e){let n=t(e);return n?n.toLowerCase():``}function i(e){return e==null?``:String(e)}function a(e,t){let n=new Map(t.map(e=>[e,e])),r=[],i=new Set;for(let t of e??[]){if(!t||i.has(t))continue;let e=n.get(t);e&&(i.add(t),r.push(e))}return r}function o(e,t){let n=[...e],r=new Set(e);for(let e of t)!e||r.has(e)||(r.add(e),n.push(e));return n}function s(e,t){let n=[];for(let r of e){let e=t.get(r);e!==void 0&&n.push(e)}return n}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let{index:t,size:n,action:r}=e;switch(r){case`start`:return 0;case`end`:return n-1;case`up`:return t-1;case`down`:return t+1}}function u(e,t,n){let r=[...e];if(t<0||t>=r.length)return r;let i=l({index:t,size:r.length,action:n});if(i<0||i>=r.length||i===t)return r;let[a]=r.splice(t,1);return a===void 0||r.splice(i,0,a),r}function d(e,t,n){let r=[...e];if(t<0||t>=r.length||n<0||n>=r.length||t===n)return r;let[i]=r.splice(t,1);return i===void 0||r.splice(n,0,i),r}function f(){return(f=e((()=>{})))()}export{f as a,r as c,i,n as l,a as n,s as o,c as r,o as s,d as t,u};