@ryuzaki13/react-foundation-ui 1.6.3 → 1.6.5

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 (212) hide show
  1. package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -1
  2. package/dist/tree-select/TreePickerBase.d.ts +3 -1
  3. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  4. package/dist/tree-select/index.js +206 -182
  5. package/dist/tree-select/index.js.map +1 -1
  6. package/dist/tree-select/model/treeUtils.d.ts.map +1 -1
  7. package/package.json +1 -1
  8. package/storybook-static/assets/{Badge-Dxa1TcbD.js → Badge-Badi80m4.js} +1 -1
  9. package/storybook-static/assets/{Badge.stories-D9K2-FAB.js → Badge.stories-Bh2b6j3z.js} +1 -1
  10. package/storybook-static/assets/{BadgeList-XkDNKA19.js → BadgeList-CPBVo6AJ.js} +1 -1
  11. package/storybook-static/assets/{Button-Ceel5uRt.js → Button-CKXKnB90.js} +1 -1
  12. package/storybook-static/assets/{Button-BFOwmmLj.js → Button-CVATKXtE.js} +1 -1
  13. package/storybook-static/assets/{Button.stories-B9RIReNK.js → Button.stories-DDi3X51G.js} +1 -1
  14. package/storybook-static/assets/{CalendarView-M76iyQ1r.js → CalendarView-cY_cm8NE.js} +1 -1
  15. package/storybook-static/assets/{CheckBox-DXiWVWb3.js → CheckBox-BQ3w0Jba.js} +1 -1
  16. package/storybook-static/assets/{CheckBox-DLKFf4Xz.js → CheckBox-CHN9e0G4.js} +1 -1
  17. package/storybook-static/assets/{CheckBox.stories-CDNe3zBp.js → CheckBox.stories-D1Krpn3W.js} +1 -1
  18. package/storybook-static/assets/{Color-6AOWCN3U-BqRHTY-c.js → Color-6AOWCN3U-CDuGBg-Y.js} +1 -1
  19. package/storybook-static/assets/{ContextMenu-BforenJy.js → ContextMenu-CdB_-NN2.js} +1 -1
  20. package/storybook-static/assets/{ContextMenu-BcHO-CZN.js → ContextMenu-CjGE7GKP.js} +1 -1
  21. package/storybook-static/assets/{ContextMenu.stories-BtFBZCGL.js → ContextMenu.stories-C6ohsfSp.js} +1 -1
  22. package/storybook-static/assets/{DateInput-YPpIeQfp.js → DateInput-DEf4uE-7.js} +1 -1
  23. package/storybook-static/assets/{DateInput-BTCzpr50.js → DateInput-Dsv5gb1z.js} +1 -1
  24. package/storybook-static/assets/{DateInput.stories-Dry1nJOY.js → DateInput.stories-BPeOBH-A.js} +1 -1
  25. package/storybook-static/assets/{DateRangePresetSelect-DX9J7Rur.js → DateRangePresetSelect-CqihJaXP.js} +1 -1
  26. package/storybook-static/assets/{DateRangePresetSelect-C-Iuom-_.js → DateRangePresetSelect-DPWJDsz8.js} +1 -1
  27. package/storybook-static/assets/{DateRangePresetSelect.stories-e-rJpK7S.js → DateRangePresetSelect.stories-yMCBnhF8.js} +1 -1
  28. package/storybook-static/assets/{Detail-DDy_yhQx.js → Detail-BM_6a8H_.js} +1 -1
  29. package/storybook-static/assets/{Detail.stories--rAD4uSc.js → Detail.stories-C60fYFqf.js} +1 -1
  30. package/storybook-static/assets/{Dialog-CUcfXdJQ.js → Dialog-C_9d2KtR.js} +1 -1
  31. package/storybook-static/assets/{Dialog-Dl851WO-.js → Dialog-DwkTEbo6.js} +1 -1
  32. package/storybook-static/assets/{Dialog.stories-DTaG9oLk.js → Dialog.stories-CWXhoWJQ.js} +1 -1
  33. package/storybook-static/assets/{Disclosure-BxckiFcW.js → Disclosure-Dr_uv2O8.js} +1 -1
  34. package/storybook-static/assets/{Disclosure.stories-GywS95me.js → Disclosure.stories-vKEuQXkJ.js} +1 -1
  35. package/storybook-static/assets/{DisclosureGroup-ICCNnpCG.js → DisclosureGroup-CqoWix9A.js} +1 -1
  36. package/storybook-static/assets/{DocsRenderer-JROSPFPF-20Qsr5vl.js → DocsRenderer-JROSPFPF-DPviY6Wu.js} +1 -1
  37. package/storybook-static/assets/{DropZone-Z7wVmWVk.js → DropZone-BGaq994l.js} +1 -1
  38. package/storybook-static/assets/{DropZone-BEn_xZ5W.js → DropZone-X5glc4Pi.js} +1 -1
  39. package/storybook-static/assets/{DropZone.stories-PoHoJlDh.js → DropZone.stories-DG16huIK.js} +1 -1
  40. package/storybook-static/assets/{DropdownMenu-Dw0NH_Ld.js → DropdownMenu-1L80coFy.js} +1 -1
  41. package/storybook-static/assets/{ExpandableActionPanel-kACf809L.js → ExpandableActionPanel-DmLqoHfQ.js} +1 -1
  42. package/storybook-static/assets/{ExpandableActionPanel.stories-BteoOnVf.js → ExpandableActionPanel.stories-BoelN-tK.js} +1 -1
  43. package/storybook-static/assets/{Flex-B7iwRjXS.js → Flex-C8C44oNE.js} +1 -1
  44. package/storybook-static/assets/{Flex.stories-DECqCGCp.js → Flex.stories-DMc5vP-G.js} +1 -1
  45. package/storybook-static/assets/{FloatingPopover-Z3wRmXWM.js → FloatingPopover-CdQ6khYD.js} +1 -1
  46. package/storybook-static/assets/{FormattedTableCell-BH8UJDSW.js → FormattedTableCell-DXtk8oM0.js} +1 -1
  47. package/storybook-static/assets/{Grid-Ck-CrQP8.js → Grid-BtTvwDWx.js} +1 -1
  48. package/storybook-static/assets/{Grid.stories-BNod0N1G.js → Grid.stories-NJgMRYsF.js} +1 -1
  49. package/storybook-static/assets/{ImageCropper.stories-DwYXV4ML.js → ImageCropper.stories-C-Ozu6_A.js} +1 -1
  50. package/storybook-static/assets/{ImageRenderer-BwyNrr93.js → ImageRenderer-DWybFMTW.js} +1 -1
  51. package/storybook-static/assets/{ImageRenderer.stories-CNQThBp0.js → ImageRenderer.stories-PsVi0vQL.js} +1 -1
  52. package/storybook-static/assets/{ImageView.stories-9AmSoanH.js → ImageView.stories-BUkBr59-.js} +1 -1
  53. package/storybook-static/assets/{ImageViewer.stories-CE9_80Ba.js → ImageViewer.stories-C9tabRxx.js} +2 -2
  54. package/storybook-static/assets/{ImageViewerRuntime-vlwXmWTP.js → ImageViewerRuntime-BEWr2aIc.js} +1 -1
  55. package/storybook-static/assets/{Input-B50PjSj-.js → Input-BwIlSQ9_.js} +1 -1
  56. package/storybook-static/assets/{Input-CDVkcD4U.js → Input-CeBqWWZH.js} +1 -1
  57. package/storybook-static/assets/{Input.stories-A93Bu-e4.js → Input.stories-DA42tEpS.js} +1 -1
  58. package/storybook-static/assets/{InputDateTime-CYvHzgz0.js → InputDateTime-D5LB-EM_.js} +1 -1
  59. package/storybook-static/assets/{InputDateTime.stories-DuyHB8BA.js → InputDateTime.stories-Bz3idwQ3.js} +1 -1
  60. package/storybook-static/assets/{InputFile-DGog3eyb.js → InputFile-CUa7CalY.js} +1 -1
  61. package/storybook-static/assets/{InputFile-B7bhxQv0.js → InputFile-DjDgsohv.js} +1 -1
  62. package/storybook-static/assets/{InputFile.stories-Cf6aM-Gs.js → InputFile.stories-B8AE_WYV.js} +1 -1
  63. package/storybook-static/assets/{InputFiles-Db-8lzt5.js → InputFiles-BSGPBkVx.js} +1 -1
  64. package/storybook-static/assets/{InputFiles-Dqe0wii9.js → InputFiles-EqqzDwjd.js} +1 -1
  65. package/storybook-static/assets/{InputFiles.stories-B5PgISBI.js → InputFiles.stories-t43ndgmw.js} +1 -1
  66. package/storybook-static/assets/{InputFilesList-B2U2K_Sc.js → InputFilesList-B-5l8V8x.js} +1 -1
  67. package/storybook-static/assets/{InputImage-Bhr94UPu.js → InputImage-JYWPaC-j.js} +1 -1
  68. package/storybook-static/assets/{InputImage-4G154N5v.js → InputImage-kOsP0ZXL.js} +1 -1
  69. package/storybook-static/assets/{InputImage.stories-B1FUK26o.js → InputImage.stories-Cprp6HWC.js} +1 -1
  70. package/storybook-static/assets/{InteractiveComponents-CeSTQddA.js → InteractiveComponents-BtfaaxwI.js} +1 -1
  71. package/storybook-static/assets/{InteractiveComponents.stories-B-hMylnP.js → InteractiveComponents.stories-DJNmjTjG.js} +1 -1
  72. package/storybook-static/assets/{LayoutPicker-46Tb09pK.js → LayoutPicker-CGnUeQ7c.js} +1 -1
  73. package/storybook-static/assets/{LayoutPicker-BRlIwcvJ.js → LayoutPicker-RxcyKf54.js} +1 -1
  74. package/storybook-static/assets/{LayoutPicker.stories-B9lCL4Qs.js → LayoutPicker.stories-kpUJYwvp.js} +1 -1
  75. package/storybook-static/assets/{Listbox-CwnpqqYY.js → Listbox-D-9m1OtQ.js} +1 -1
  76. package/storybook-static/assets/{Listbox-DM_QmybI.js → Listbox-ks-UlR45.js} +1 -1
  77. package/storybook-static/assets/{Listbox.stories-DKDrZr5m.js → Listbox.stories-z7qyefxY.js} +1 -1
  78. package/storybook-static/assets/{Modal-hm4xX7jt.js → Modal-COPKt34y.js} +1 -1
  79. package/storybook-static/assets/{Modal.stories-BmCZx0DC.js → Modal.stories-BuzJrStF.js} +1 -1
  80. package/storybook-static/assets/{ModalManagerProvider-BC-oREWH.js → ModalManagerProvider-8oVsafKe.js} +1 -1
  81. package/storybook-static/assets/{MultiSelect-DfpBERB5.js → MultiSelect-CXZsBwEY.js} +1 -1
  82. package/storybook-static/assets/{MultiSelect-Cp1gz6Yk.js → MultiSelect-Cwu59ver.js} +1 -1
  83. package/storybook-static/assets/{MultiSelect.stories-CH2SeJbW.js → MultiSelect.stories-D0n-LtYi.js} +1 -1
  84. package/storybook-static/assets/{NoData-KwSf5Ah1.js → NoData-CYkI7TRF.js} +1 -1
  85. package/storybook-static/assets/{NotificationsHost-Cl3XMVYS.js → NotificationsHost-CdjoqlHV.js} +1 -1
  86. package/storybook-static/assets/{NotificationsHost.stories-Dc-li1Bw.js → NotificationsHost.stories-Cw02scrX.js} +1 -1
  87. package/storybook-static/assets/{ODataMultiSelect-CMHB_m8f.js → ODataMultiSelect-Bjx7j3x_.js} +1 -1
  88. package/storybook-static/assets/{ODataMultiSelect.stories-BMsBhBrB.js → ODataMultiSelect.stories-D1uEm53D.js} +1 -1
  89. package/storybook-static/assets/{ODataSelect-CAN5jwJx.js → ODataSelect-CPXvbCdZ.js} +1 -1
  90. package/storybook-static/assets/{ODataSelect.stories-CEHsy7Xj.js → ODataSelect.stories-OfmjejKB.js} +1 -1
  91. package/storybook-static/assets/{ODataTreeMultiSelect-D3NZA2Yt.js → ODataTreeMultiSelect-CzJXiKY9.js} +1 -1
  92. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CYAgsaf1.js → ODataTreeMultiSelect.stories-B3-YDpm7.js} +1 -1
  93. package/storybook-static/assets/{ODataTreeSelect-Cj5-xotD.js → ODataTreeSelect-DX5TM_rA.js} +1 -1
  94. package/storybook-static/assets/{ODataTreeSelect.stories-CXR-6xQH.js → ODataTreeSelect.stories-CtMxqqgr.js} +1 -1
  95. package/storybook-static/assets/{OneStepScroller-Cug0ahti.js → OneStepScroller-DOs9Loxj.js} +1 -1
  96. package/storybook-static/assets/{PeriodSelect-DQ3_VNWI.js → PeriodSelect-BbqQUMjA.js} +1 -1
  97. package/storybook-static/assets/{PeriodSelect-kz_6iR_c.js → PeriodSelect-DFR-gdmD.js} +1 -1
  98. package/storybook-static/assets/{PeriodSelect.stories-Bxpv55Ju.js → PeriodSelect.stories-Dv_9THvM.js} +1 -1
  99. package/storybook-static/assets/{PickerSelectionToolbar-Db4-42fA.js → PickerSelectionToolbar-DnTlpeHD.js} +1 -1
  100. package/storybook-static/assets/{PickerTriggerActions-DWemigng.js → PickerTriggerActions-CUNsf_w4.js} +1 -1
  101. package/storybook-static/assets/{Popover-O0NR5SGY.js → Popover-DtdokOxB.js} +1 -1
  102. package/storybook-static/assets/{Popover-X2eE-Z25.js → Popover-qCAM7oNm.js} +1 -1
  103. package/storybook-static/assets/{Popover.stories-oS52JQTT.js → Popover.stories-BAln3oQU.js} +1 -1
  104. package/storybook-static/assets/{PresetRangeDateInput-E7pifjZt.js → PresetRangeDateInput-DjN_bvqq.js} +1 -1
  105. package/storybook-static/assets/{PresetRangeDateInput-Bz5BV8qc.js → PresetRangeDateInput-Wtjix3jj.js} +1 -1
  106. package/storybook-static/assets/{PresetRangeDateInput.stories-C-iPBoxA.js → PresetRangeDateInput.stories-B198NCDW.js} +1 -1
  107. package/storybook-static/assets/{PresetSelect-DLU25vRk.js → PresetSelect-BZa1_U3q.js} +1 -1
  108. package/storybook-static/assets/{RadioButton-DFnhkAOy.js → RadioButton-BeT9sgAH.js} +1 -1
  109. package/storybook-static/assets/{RadioButton-qjoA1Eg7.js → RadioButton-D9icZqCg.js} +1 -1
  110. package/storybook-static/assets/{RadioButton.stories-CLRFSeZX.js → RadioButton.stories-BlZyVi-W.js} +1 -1
  111. package/storybook-static/assets/{RadioGroup-BmzibPDz.js → RadioGroup-By-qGpHC.js} +1 -1
  112. package/storybook-static/assets/{RadioGroup-C8lYUguC.js → RadioGroup-FyIYfXl0.js} +1 -1
  113. package/storybook-static/assets/{RadioGroup.stories-lR-spV8d.js → RadioGroup.stories-DgMaeL70.js} +1 -1
  114. package/storybook-static/assets/{Scrollable-BBPSKoHx.js → Scrollable-DPFSeZGF.js} +1 -1
  115. package/storybook-static/assets/{Select-Bz7nq4lt.js → Select-C_O6yFA8.js} +1 -1
  116. package/storybook-static/assets/{Select-BJYqq68j.js → Select-CfWYx2GB.js} +1 -1
  117. package/storybook-static/assets/{Select.stories-Dn_DtNNn.js → Select.stories-CMobpAbQ.js} +1 -1
  118. package/storybook-static/assets/{SelectOptionContent-D1x3a6tF.js → SelectOptionContent-Degde5-0.js} +1 -1
  119. package/storybook-static/assets/{SerializableSelect-COZvwim_.js → SerializableSelect-Cy93AKVX.js} +1 -1
  120. package/storybook-static/assets/{SerializableSelect.stories-B2vemRdr.js → SerializableSelect.stories-C1zO_RWC.js} +1 -1
  121. package/storybook-static/assets/{SingleDateTimeInput-u-2VKHLI.js → SingleDateTimeInput-B0tE46zj.js} +1 -1
  122. package/storybook-static/assets/{SingleDateTimeInput-BK8fC0Qb.js → SingleDateTimeInput-DxZzBwAX.js} +1 -1
  123. package/storybook-static/assets/{SingleDateTimeInput.stories-CMUoDF5t.js → SingleDateTimeInput.stories-CmTC_z6q.js} +1 -1
  124. package/storybook-static/assets/{Slider-COY2TAIm.js → Slider-DmM2dPXy.js} +1 -1
  125. package/storybook-static/assets/{Slider-BKGybuEf.js → Slider-rTxbeWHF.js} +1 -1
  126. package/storybook-static/assets/{Slider.stories-BhicpEIk.js → Slider.stories-CDFrjoMD.js} +1 -1
  127. package/storybook-static/assets/{SliderInput-DEuTgNAE.js → SliderInput-BbLeUtoV.js} +1 -1
  128. package/storybook-static/assets/{SliderInput-qDF1Q2Ud.js → SliderInput-DvzJvm59.js} +1 -1
  129. package/storybook-static/assets/{SliderInput.stories-BK3-T8T7.js → SliderInput.stories-CpYqdHe0.js} +1 -1
  130. package/storybook-static/assets/{Sortable-CVv47Gx1.js → Sortable-B61mX8UD.js} +1 -1
  131. package/storybook-static/assets/{Sortable.stories-Bobg8CGj.js → Sortable.stories-Cs3L9wn-.js} +1 -1
  132. package/storybook-static/assets/{Splitter-K_jjfdYa.js → Splitter-D4q-ZPl3.js} +1 -1
  133. package/storybook-static/assets/{Splitter.stories-Dmegzd7j.js → Splitter.stories-De7DpSvR.js} +1 -1
  134. package/storybook-static/assets/{StateSelect-ctFL_wk3.js → StateSelect-CYS6OD81.js} +1 -1
  135. package/storybook-static/assets/{StateSelect-DYjSMVi_.js → StateSelect-CgACNPR0.js} +1 -1
  136. package/storybook-static/assets/{StateSelect.stories-Bij1UDb9.js → StateSelect.stories-CVygV7Yf.js} +1 -1
  137. package/storybook-static/assets/{StringToggle.stories--GvlopEE.js → StringToggle.stories-DK7JGIlf.js} +1 -1
  138. package/storybook-static/assets/{Switch-CKQ-ycQs.js → Switch-CgC6u3sh.js} +1 -1
  139. package/storybook-static/assets/{Switch-DaC8U33G.js → Switch-DFTAt-28.js} +1 -1
  140. package/storybook-static/assets/{Switch.stories-BUErEk5v.js → Switch.stories-BWMP7Sjc.js} +1 -1
  141. package/storybook-static/assets/{Table-CJzUV-eD.js → Table-CNbbSGjI.js} +1 -1
  142. package/storybook-static/assets/{Table.stories-D4Hb1rHz.js → Table.stories-CxBOA7ix.js} +1 -1
  143. package/storybook-static/assets/{Tabs-DhNgcajN.js → Tabs-BIU69aVv.js} +1 -1
  144. package/storybook-static/assets/{Tabs.stories-DCeK4cRU.js → Tabs.stories-C9_u-clc.js} +1 -1
  145. package/storybook-static/assets/{TabsBox-D1a7sRcm.js → TabsBox-B3wkJa0L.js} +1 -1
  146. package/storybook-static/assets/{TagInput-DvmTpnt5.js → TagInput-CR6HxYZA.js} +1 -1
  147. package/storybook-static/assets/{TagInput.stories-CS6SDolP.js → TagInput.stories-CtfqVbxl.js} +1 -1
  148. package/storybook-static/assets/{Text-D56TqnE-.js → Text-DoG0h_5c.js} +1 -1
  149. package/storybook-static/assets/{Textarea-CHhtsUCY.js → Textarea-BRL3p619.js} +1 -1
  150. package/storybook-static/assets/{Textarea-DonPoGM0.js → Textarea-t4a7XVJX.js} +1 -1
  151. package/storybook-static/assets/{Textarea.stories-By-5_nFP.js → Textarea.stories-C59azjLd.js} +1 -1
  152. package/storybook-static/assets/{TimePanel-tEW36vm2.js → TimePanel-C3WBrZQp.js} +1 -1
  153. package/storybook-static/assets/{TimePanel.stories-0EP_fW2F.js → TimePanel.stories-DMX-7eZd.js} +1 -1
  154. package/storybook-static/assets/{Toggle-72AJBz9t.js → Toggle-BOWusKKj.js} +1 -1
  155. package/storybook-static/assets/{Toggle-DYw5n40e.js → Toggle-Tak1R2Zm.js} +1 -1
  156. package/storybook-static/assets/{Toggle.stories-4BC0PJFa.js → Toggle.stories-1KQpm8VM.js} +1 -1
  157. package/storybook-static/assets/TreeMultiSelect-DUYiFByA.js +1 -0
  158. package/storybook-static/assets/{TreeMultiSelect-CAmlDZJn.js → TreeMultiSelect-fSxzLWkj.js} +1 -1
  159. package/storybook-static/assets/{TreeMultiSelect.stories-CLOuMFeL.js → TreeMultiSelect.stories-DAd8NIUE.js} +1 -1
  160. package/storybook-static/assets/TreePickerBase-CdLWTzBZ.js +24 -0
  161. package/storybook-static/assets/{TreeSelect-D4XexrOI.js → TreeSelect-DxEraGtZ.js} +1 -1
  162. package/storybook-static/assets/{TreeSelect-BZXBh5WL.js → TreeSelect-Jz1ne-hp.js} +1 -1
  163. package/storybook-static/assets/{TreeSelect.stories-DeUuri9_.js → TreeSelect.stories-vAacDFVY.js} +1 -1
  164. package/storybook-static/assets/{TreeTable-DdfAgDQz.js → TreeTable-BVKaRU-W.js} +1 -1
  165. package/storybook-static/assets/{TreeTable.stories-RbZKlQrH.js → TreeTable.stories-BSRT4W3L.js} +1 -1
  166. package/storybook-static/assets/{async-BgN72X6r.js → async-DpzfUrH-.js} +1 -1
  167. package/storybook-static/assets/{blocks-kj4zfGuU.js → blocks-DB1eHUIS.js} +3 -3
  168. package/storybook-static/assets/{browserAndReact-Bvx5m_cY.js → browserAndReact-qmvoynbe.js} +1 -1
  169. package/storybook-static/assets/{check-DcExYkqn.js → check-OVXob3eq.js} +1 -1
  170. package/storybook-static/assets/{chevron-down-B4c_ASl9.js → chevron-down-Bpd9dt89.js} +1 -1
  171. package/storybook-static/assets/{chevron-left-lzumrK6V.js → chevron-left-CP0LPRnu.js} +1 -1
  172. package/storybook-static/assets/{chevron-right-DXNDiFSg.js → chevron-right-D8Axh6ZC.js} +1 -1
  173. package/storybook-static/assets/{chunk-W22LQPXL-BktKfcNA.js → chunk-W22LQPXL-JW4HcnJi.js} +1 -1
  174. package/storybook-static/assets/{circle-alert-CgNIil7z.js → circle-alert-D338kTDS.js} +1 -1
  175. package/storybook-static/assets/{circle-check-94jrlBOb.js → circle-check-qWrcGPp-.js} +1 -1
  176. package/storybook-static/assets/{components-Wt5nIW83.js → components-DJJgxodi.js} +3 -3
  177. package/storybook-static/assets/{contextMenu-BR-yv03p.js → contextMenu-mlD7uW-f.js} +1 -1
  178. package/storybook-static/assets/{defaultRenderers-CtSv8Vt7.js → defaultRenderers-C5s5umkj.js} +1 -1
  179. package/storybook-static/assets/{download-wEebXAlg.js → download-AzFgabSk.js} +1 -1
  180. package/storybook-static/assets/{filesAndExcel-DHZIZmRC.js → filesAndExcel-DyRPrZqZ.js} +1 -1
  181. package/storybook-static/assets/{floating-ui.react-QB3bmgLB.js → floating-ui.react-DDt799w_.js} +1 -1
  182. package/storybook-static/assets/{formatters-Dmq9LSDW.js → formatters-D8WQlQlM.js} +1 -1
  183. package/storybook-static/assets/{formatters-runtime-znsxzzbF.js → formatters-runtime-ySsJZ1Tu.js} +1 -1
  184. package/storybook-static/assets/{foundationLib-ReEj6Htz.js → foundationLib-5_tX-DbX.js} +1 -1
  185. package/storybook-static/assets/{hooks-C9-pvpIb.js → hooks-RCF1FX8h.js} +1 -1
  186. package/storybook-static/assets/iframe-DIeNJ3Xb.js +1 -0
  187. package/storybook-static/assets/{iframe-dyOWtut-.js → iframe-E-RW9GdU.js} +3 -3
  188. package/storybook-static/assets/{info-Cvo7PHt1.js → info-BloY2WcJ.js} +1 -1
  189. package/storybook-static/assets/{odata-COFnnzKa.js → odata-BtJOrkyu.js} +1 -1
  190. package/storybook-static/assets/{odataAndTables-ByV4XFBN.js → odataAndTables-K84Qoh0l.js} +1 -1
  191. package/storybook-static/assets/{odataFetchFn-DchHjD9z.js → odataFetchFn-QjHsMudx.js} +1 -1
  192. package/storybook-static/assets/{odataStoryFixtures-DCyMu3L9.js → odataStoryFixtures-DHZstKaO.js} +1 -1
  193. package/storybook-static/assets/{persisted-C8hBbkmS.js → persisted-Cz_dN0z5.js} +1 -1
  194. package/storybook-static/assets/{pureUtilities-CuQb4BYC.js → pureUtilities-58GohRlw.js} +1 -1
  195. package/storybook-static/assets/{react-CB1VfpfZ.js → react-D-JEL2AK.js} +1 -1
  196. package/storybook-static/assets/{refresh-cw-DKNQkRAD.js → refresh-cw-ClUCX52-.js} +1 -1
  197. package/storybook-static/assets/{runtimeAndState-0rwHGpFs.js → runtimeAndState-DaqvHZTU.js} +1 -1
  198. package/storybook-static/assets/{settings-2-Dp2qSMM_.js → settings-2-BaD4Vuv_.js} +1 -1
  199. package/storybook-static/assets/{sortable-Dc0sbjP6.js → sortable-Cdh47lvC.js} +1 -1
  200. package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-3an1Anta.js → syntaxhighlighter-T5IQBZDB-LlSxR-aL.js} +1 -1
  201. package/storybook-static/assets/{trash-2-DBxSFhrB.js → trash-2-ZsLhc9Um.js} +1 -1
  202. package/storybook-static/assets/{triangle-alert-CD83X9Qp.js → triangle-alert-CSSWj_Ql.js} +1 -1
  203. package/storybook-static/assets/{useODataSelectBase-BXMDqK7O.js → useODataSelectBase-dK1hhs0B.js} +1 -1
  204. package/storybook-static/assets/{useODataTreeData-Ck7Eqq39.js → useODataTreeData-BS2csWTj.js} +1 -1
  205. package/storybook-static/assets/{usePickerQuery-DshC5ww9.js → usePickerQuery-CR-H7j-z.js} +1 -1
  206. package/storybook-static/assets/{usePickerTriggerController-CUW5y3C0.js → usePickerTriggerController-C4HAPzsM.js} +1 -1
  207. package/storybook-static/assets/{x-CDCsBmRq.js → x-BG-Wb06q.js} +1 -1
  208. package/storybook-static/iframe.html +2 -2
  209. package/storybook-static/project.json +1 -1
  210. package/storybook-static/assets/TreeMultiSelect-DSWJC4dO.js +0 -1
  211. package/storybook-static/assets/TreePickerBase-20y13Oo3.js +0 -24
  212. package/storybook-static/assets/iframe-QBiHFnHq.js +0 -1
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-dyOWtut-.js";import{a as r,i}from"./utils-DUM89eIj.js";import{b as a,g as o}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{m as s,y as c}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{i as l,r as u}from"./date-segments-D3HouZ37.js";function d(e=0,t=0){return s(S,C,w,e,t,0,0)}function f(e=`date-time`){return e===`time`?x:b}function p(e,t=`date-time`){if(e==null)return null;let n=o(e);return n?t===`time`?d(n.getHours(),n.getMinutes()):n:null}function m(e,t,n,r=`date-time`){let i=p(e,r);if(!i)return!1;if(r===`time`){let e=i.getHours()*60+i.getMinutes(),r=t?p(t,`time`):null,a=n?p(n,`time`):null;return!(r&&e<r.getHours()*60+r.getMinutes()||a&&e>a.getHours()*60+a.getMinutes())}return!(t&&i<t||n&&i>n)}function h(e,t){let n=p(t),r=n?.getHours()??0,i=n?.getMinutes()??0;return s(e.getFullYear(),e.getMonth(),e.getDate(),r,i,0,0)}function g(e,t,n,r=`date-time`){return r===`time`?d(t,n):s(e.getFullYear(),e.getMonth(),e.getDate(),t,n,0,0)}function _(e,t,n=`date-time`){return n===`time`?p(e,`time`)??d():p(e,n)??t}function v(e,t,n,r=`date-time`){let i=p(e,r)??e,a=t?p(t,r):null,o=n?p(n,r):null,s=!!a&&i.getFullYear()===a.getFullYear()&&i.getMonth()===a.getMonth()&&i.getDate()===a.getDate(),c=!!o&&i.getFullYear()===o.getFullYear()&&i.getMonth()===o.getMonth()&&i.getDate()===o.getDate(),l=s?a.getHours():0,u=c?o.getHours():23,d=s&&l===u?a.getMinutes():0,f=c&&l===u?o.getMinutes():59,m=l>u||l===u&&d>f;return{disabled:m,minHour:l,maxHour:u,minMinuteByHour:e=>m?0:s&&e===l?a.getMinutes():0,maxMinuteByHour:e=>m?59:c&&e===u?o.getMinutes():59}}function y(e,t,n,r,i,a=`date-time`){let o=v(e,r,i,a);if(o.disabled)return{hours:0,minutes:0};let s=Math.min(Math.max(t,o.minHour),o.maxHour),c=o.minMinuteByHour(s),l=o.maxMinuteByHour(s);return{hours:s,minutes:Math.min(Math.max(n,c),l)}}var b,x,S,C,w;function T(){return(T=e((()=>{u(),c(),a(),b=`dd.MM.yyyy HH:mm`,x=`HH:mm`,S=1970,C=0,w=1,l(x)})))()}function ee(e,t,n,r=`date-time`){let i=v(e,t,n,r),a=e.getHours(),o=e.getMinutes(),s=i.minMinuteByHour(a),c=i.maxMinuteByHour(a);return i.disabled?{disabled:!0,selectedHour:a,selectedMinute:o,hours:[],minutes:[]}:{disabled:!1,selectedHour:a,selectedMinute:o,hours:Array.from({length:i.maxHour-i.minHour+1},(e,t)=>i.minHour+t),minutes:Array.from({length:c-s+1},(e,t)=>s+t)}}function E(){return(E=e((()=>{T()})))()}function D(e,t){return t<=0||e<0?0:e>t-1?t-1:e}function te(e,t){return!Number.isFinite(e)||e<=0?t:Math.max(e,t)}function ne(e,t){return Math.max(1,Math.round(e/Math.max(1,t)))}function re(e,t){return Math.max(0,Math.round(e/2-t/2))}function O(e,t){return Math.max(0,Math.round(e*t))}function ie(e,t,n){return n<=0||t<=0?0:D(Math.round(e/t),n)}var k,A,j,M,N,P,F;function I(){return(I=e((()=>{k=`GLhdJ6`,A=`_2xLNL2`,j=`dgX32S`,M=`WfOtQ9`,N=`XIdSMi`,P=`_--Hsbk`,F={wheelPicker:k,viewport:A,scroller:j,items:M,item:N,selectionFrame:P}})))()}function L({items:e,value:t,onChange:n,ariaLabel:i,disabled:a,className:o,minHeight:s=B,visibleRows:c=V,formatItem:l,getItemKey:u}){let d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=(0,R.useRef)(null),m=(0,R.useMemo)(()=>Math.max(0,e.findIndex(e=>Object.is(e,t))),[e,t]),[h,g]=(0,R.useState)(0),_=te(h,s),v=ne(_,c),y=re(_,v),b=(0,R.useRef)(m),x=(0,R.useCallback)(e=>Math.round(e.clientHeight),[]),S=(0,R.useCallback)(()=>{let t=f.current;if(!t||e.length===0)return;let r=ie(t.scrollTop,v,e.length);t.scrollTo({top:O(r,v),behavior:`smooth`}),r!==b.current&&(b.current=r,n(e[r]))},[v,e,n]),C=(0,R.useCallback)(()=>{p.current!==null&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>{p.current=null,S()},H)},[S]);(0,R.useEffect)(()=>{let e=d.current;if(!e||typeof ResizeObserver>`u`)return;let t=e=>{g(t=>t===e?t:e)},n=new ResizeObserver(n=>{let r=n[0],i=Math.round(r?.contentRect.height??x(e));t(i)});return n.observe(e),t(x(e)),()=>n.disconnect()},[x]),(0,R.useEffect)(()=>{let t=f.current;if(!t||e.length===0)return;let n=D(m,e.length);b.current=n,t.scrollTo({top:O(n,v),behavior:`auto`})},[v,e.length,m]),(0,R.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{a||C()},n=t=>{a||(t.preventDefault(),e.scrollTop+=t.deltaY,C())};return e.addEventListener(`scroll`,t,{passive:!0}),e.addEventListener(`wheel`,n,{passive:!1}),()=>{e.removeEventListener(`scroll`,t),e.removeEventListener(`wheel`,n)}},[a,e,n,C]),(0,R.useEffect)(()=>()=>{p.current!==null&&window.clearTimeout(p.current)},[]);let w=t=>{if(a||e.length===0||t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let r=t.key===`ArrowUp`?-1:1,i=D(m+r,e.length);i!==m&&(b.current=i,n(e[i]))},T={"--wheel-picker-min-height":`${s}px`,"--wheel-picker-viewport-height":`${_}px`,"--wheel-picker-item-height":`${v}px`,"--wheel-picker-edge-padding":`${y}px`};return(0,z.jsx)(`div`,{ref:d,className:r(F.wheelPicker,o),style:T,children:(0,z.jsxs)(`div`,{className:F.viewport,children:[(0,z.jsx)(`div`,{ref:f,className:F.scroller,role:`listbox`,tabIndex:a?-1:0,"aria-label":i,"aria-disabled":a||void 0,onKeyDown:w,children:(0,z.jsx)(`div`,{className:F.items,children:e.map((e,t)=>{let r=t===m;return(0,z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:F.item,"data-selected":r?``:void 0,disabled:a,onClick:()=>{b.current=t,n(e)},children:l?.(e)??String(e)},u?.(e,t)??t)})})}),(0,z.jsx)(`div`,{className:F.selectionFrame,"aria-hidden":`true`})]})})}var R,z,B,V,H;function U(){return(U=e((()=>{R=t(),i(),I(),z=n(),B=192,V=7,H=96,L.__docgenInfo={description:`Внутренний wheel-picker со snap-кареткой по центру и блокировкой page scroll.`,methods:[],displayName:`WheelPicker`,props:{items:{required:!0,tsType:{name:`unknown`},description:``},value:{required:!0,tsType:{name:`T`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},ariaLabel:{required:!0,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`192`,computed:!1}},visibleRows:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`7`,computed:!1}},formatItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T) => ReactNode`,signature:{arguments:[{type:{name:`T`},name:`item`}],return:{name:`ReactNode`}}},description:``},getItemKey:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T, index: number) => Key`,signature:{arguments:[{type:{name:`T`},name:`item`},{type:{name:`number`},name:`index`}],return:{name:`Key`}}},description:``}}}})))()}var W,G,K,q,J,Y,X;function Z(){return(Z=e((()=>{W=`_5-SSnO`,G=`s1NHua`,K=`KQC9-8`,q=`WDu02W`,J=`_9mEhfD`,Y=`N-Fzjk`,X={timePanel:W,hint:G,fields:K,field:q,label:J,wheel:Y}})))()}function Q({value:e,disabled:t,minDate:n,maxDate:r,mode:i=`date-time`,onChange:a}){let o=ee(e,n,r,i),s=e=>String(e).padStart(2,`0`);return o.disabled?(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsx)(`p`,{className:X.hint,children:`Для выбранного дня нет доступного времени в заданном диапазоне.`})}):(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsxs)(`div`,{className:X.fields,children:[(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Часы`}),(0,$.jsx)(L,{className:X.wheel,items:o.hours,value:o.selectedHour,onChange:e=>a(e,o.selectedMinute),ariaLabel:`Выбор часов`,disabled:t,formatItem:s})]}),(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Минуты`}),(0,$.jsx)(L,{className:X.wheel,items:o.minutes,value:o.selectedMinute,onChange:e=>a(o.selectedHour,e),ariaLabel:`Выбор минут`,disabled:t,formatItem:s})]})]})})}var $;function ae(){return(ae=e((()=>{U(),E(),Z(),$=n(),Q.__docgenInfo={description:`Переиспользуемая панель выбора времени поверх internal wheel-picker.`,methods:[],displayName:`TimePanel`,props:{value:{required:!0,tsType:{name:`Date`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},mode:{required:!1,tsType:{name:`union`,raw:`"date-time" | "time"`,elements:[{name:`literal`,value:`"date-time"`},{name:`literal`,value:`"time"`}]},description:``,defaultValue:{value:`"date-time"`,computed:!1}},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(hours: number, minutes: number) => void`,signature:{arguments:[{type:{name:`number`},name:`hours`},{type:{name:`number`},name:`minutes`}],return:{name:`void`}}},description:``}}}})))()}export{f as a,h as c,_ as d,d as i,g as l,ae as n,T as o,y as r,m as s,Q as t,p as u};
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-E-RW9GdU.js";import{a as r,i}from"./utils-DUM89eIj.js";import{b as a,g as o}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{m as s,y as c}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{i as l,r as u}from"./date-segments-D3HouZ37.js";function d(e=0,t=0){return s(S,C,w,e,t,0,0)}function f(e=`date-time`){return e===`time`?x:b}function p(e,t=`date-time`){if(e==null)return null;let n=o(e);return n?t===`time`?d(n.getHours(),n.getMinutes()):n:null}function m(e,t,n,r=`date-time`){let i=p(e,r);if(!i)return!1;if(r===`time`){let e=i.getHours()*60+i.getMinutes(),r=t?p(t,`time`):null,a=n?p(n,`time`):null;return!(r&&e<r.getHours()*60+r.getMinutes()||a&&e>a.getHours()*60+a.getMinutes())}return!(t&&i<t||n&&i>n)}function h(e,t){let n=p(t),r=n?.getHours()??0,i=n?.getMinutes()??0;return s(e.getFullYear(),e.getMonth(),e.getDate(),r,i,0,0)}function g(e,t,n,r=`date-time`){return r===`time`?d(t,n):s(e.getFullYear(),e.getMonth(),e.getDate(),t,n,0,0)}function _(e,t,n=`date-time`){return n===`time`?p(e,`time`)??d():p(e,n)??t}function v(e,t,n,r=`date-time`){let i=p(e,r)??e,a=t?p(t,r):null,o=n?p(n,r):null,s=!!a&&i.getFullYear()===a.getFullYear()&&i.getMonth()===a.getMonth()&&i.getDate()===a.getDate(),c=!!o&&i.getFullYear()===o.getFullYear()&&i.getMonth()===o.getMonth()&&i.getDate()===o.getDate(),l=s?a.getHours():0,u=c?o.getHours():23,d=s&&l===u?a.getMinutes():0,f=c&&l===u?o.getMinutes():59,m=l>u||l===u&&d>f;return{disabled:m,minHour:l,maxHour:u,minMinuteByHour:e=>m?0:s&&e===l?a.getMinutes():0,maxMinuteByHour:e=>m?59:c&&e===u?o.getMinutes():59}}function y(e,t,n,r,i,a=`date-time`){let o=v(e,r,i,a);if(o.disabled)return{hours:0,minutes:0};let s=Math.min(Math.max(t,o.minHour),o.maxHour),c=o.minMinuteByHour(s),l=o.maxMinuteByHour(s);return{hours:s,minutes:Math.min(Math.max(n,c),l)}}var b,x,S,C,w;function T(){return(T=e((()=>{u(),c(),a(),b=`dd.MM.yyyy HH:mm`,x=`HH:mm`,S=1970,C=0,w=1,l(x)})))()}function ee(e,t,n,r=`date-time`){let i=v(e,t,n,r),a=e.getHours(),o=e.getMinutes(),s=i.minMinuteByHour(a),c=i.maxMinuteByHour(a);return i.disabled?{disabled:!0,selectedHour:a,selectedMinute:o,hours:[],minutes:[]}:{disabled:!1,selectedHour:a,selectedMinute:o,hours:Array.from({length:i.maxHour-i.minHour+1},(e,t)=>i.minHour+t),minutes:Array.from({length:c-s+1},(e,t)=>s+t)}}function E(){return(E=e((()=>{T()})))()}function D(e,t){return t<=0||e<0?0:e>t-1?t-1:e}function te(e,t){return!Number.isFinite(e)||e<=0?t:Math.max(e,t)}function ne(e,t){return Math.max(1,Math.round(e/Math.max(1,t)))}function re(e,t){return Math.max(0,Math.round(e/2-t/2))}function O(e,t){return Math.max(0,Math.round(e*t))}function ie(e,t,n){return n<=0||t<=0?0:D(Math.round(e/t),n)}var k,A,j,M,N,P,F;function I(){return(I=e((()=>{k=`GLhdJ6`,A=`_2xLNL2`,j=`dgX32S`,M=`WfOtQ9`,N=`XIdSMi`,P=`_--Hsbk`,F={wheelPicker:k,viewport:A,scroller:j,items:M,item:N,selectionFrame:P}})))()}function L({items:e,value:t,onChange:n,ariaLabel:i,disabled:a,className:o,minHeight:s=B,visibleRows:c=V,formatItem:l,getItemKey:u}){let d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=(0,R.useRef)(null),m=(0,R.useMemo)(()=>Math.max(0,e.findIndex(e=>Object.is(e,t))),[e,t]),[h,g]=(0,R.useState)(0),_=te(h,s),v=ne(_,c),y=re(_,v),b=(0,R.useRef)(m),x=(0,R.useCallback)(e=>Math.round(e.clientHeight),[]),S=(0,R.useCallback)(()=>{let t=f.current;if(!t||e.length===0)return;let r=ie(t.scrollTop,v,e.length);t.scrollTo({top:O(r,v),behavior:`smooth`}),r!==b.current&&(b.current=r,n(e[r]))},[v,e,n]),C=(0,R.useCallback)(()=>{p.current!==null&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>{p.current=null,S()},H)},[S]);(0,R.useEffect)(()=>{let e=d.current;if(!e||typeof ResizeObserver>`u`)return;let t=e=>{g(t=>t===e?t:e)},n=new ResizeObserver(n=>{let r=n[0],i=Math.round(r?.contentRect.height??x(e));t(i)});return n.observe(e),t(x(e)),()=>n.disconnect()},[x]),(0,R.useEffect)(()=>{let t=f.current;if(!t||e.length===0)return;let n=D(m,e.length);b.current=n,t.scrollTo({top:O(n,v),behavior:`auto`})},[v,e.length,m]),(0,R.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{a||C()},n=t=>{a||(t.preventDefault(),e.scrollTop+=t.deltaY,C())};return e.addEventListener(`scroll`,t,{passive:!0}),e.addEventListener(`wheel`,n,{passive:!1}),()=>{e.removeEventListener(`scroll`,t),e.removeEventListener(`wheel`,n)}},[a,e,n,C]),(0,R.useEffect)(()=>()=>{p.current!==null&&window.clearTimeout(p.current)},[]);let w=t=>{if(a||e.length===0||t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let r=t.key===`ArrowUp`?-1:1,i=D(m+r,e.length);i!==m&&(b.current=i,n(e[i]))},T={"--wheel-picker-min-height":`${s}px`,"--wheel-picker-viewport-height":`${_}px`,"--wheel-picker-item-height":`${v}px`,"--wheel-picker-edge-padding":`${y}px`};return(0,z.jsx)(`div`,{ref:d,className:r(F.wheelPicker,o),style:T,children:(0,z.jsxs)(`div`,{className:F.viewport,children:[(0,z.jsx)(`div`,{ref:f,className:F.scroller,role:`listbox`,tabIndex:a?-1:0,"aria-label":i,"aria-disabled":a||void 0,onKeyDown:w,children:(0,z.jsx)(`div`,{className:F.items,children:e.map((e,t)=>{let r=t===m;return(0,z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:F.item,"data-selected":r?``:void 0,disabled:a,onClick:()=>{b.current=t,n(e)},children:l?.(e)??String(e)},u?.(e,t)??t)})})}),(0,z.jsx)(`div`,{className:F.selectionFrame,"aria-hidden":`true`})]})})}var R,z,B,V,H;function U(){return(U=e((()=>{R=t(),i(),I(),z=n(),B=192,V=7,H=96,L.__docgenInfo={description:`Внутренний wheel-picker со snap-кареткой по центру и блокировкой page scroll.`,methods:[],displayName:`WheelPicker`,props:{items:{required:!0,tsType:{name:`unknown`},description:``},value:{required:!0,tsType:{name:`T`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},ariaLabel:{required:!0,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`192`,computed:!1}},visibleRows:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`7`,computed:!1}},formatItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T) => ReactNode`,signature:{arguments:[{type:{name:`T`},name:`item`}],return:{name:`ReactNode`}}},description:``},getItemKey:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T, index: number) => Key`,signature:{arguments:[{type:{name:`T`},name:`item`},{type:{name:`number`},name:`index`}],return:{name:`Key`}}},description:``}}}})))()}var W,G,K,q,J,Y,X;function Z(){return(Z=e((()=>{W=`_5-SSnO`,G=`s1NHua`,K=`KQC9-8`,q=`WDu02W`,J=`_9mEhfD`,Y=`N-Fzjk`,X={timePanel:W,hint:G,fields:K,field:q,label:J,wheel:Y}})))()}function Q({value:e,disabled:t,minDate:n,maxDate:r,mode:i=`date-time`,onChange:a}){let o=ee(e,n,r,i),s=e=>String(e).padStart(2,`0`);return o.disabled?(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsx)(`p`,{className:X.hint,children:`Для выбранного дня нет доступного времени в заданном диапазоне.`})}):(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsxs)(`div`,{className:X.fields,children:[(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Часы`}),(0,$.jsx)(L,{className:X.wheel,items:o.hours,value:o.selectedHour,onChange:e=>a(e,o.selectedMinute),ariaLabel:`Выбор часов`,disabled:t,formatItem:s})]}),(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Минуты`}),(0,$.jsx)(L,{className:X.wheel,items:o.minutes,value:o.selectedMinute,onChange:e=>a(o.selectedHour,e),ariaLabel:`Выбор минут`,disabled:t,formatItem:s})]})]})})}var $;function ae(){return(ae=e((()=>{U(),E(),Z(),$=n(),Q.__docgenInfo={description:`Переиспользуемая панель выбора времени поверх internal wheel-picker.`,methods:[],displayName:`TimePanel`,props:{value:{required:!0,tsType:{name:`Date`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},mode:{required:!1,tsType:{name:`union`,raw:`"date-time" | "time"`,elements:[{name:`literal`,value:`"date-time"`},{name:`literal`,value:`"time"`}]},description:``,defaultValue:{value:`"date-time"`,computed:!1}},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(hours: number, minutes: number) => void`,signature:{arguments:[{type:{name:`number`},name:`hours`},{type:{name:`number`},name:`minutes`}],return:{name:`void`}}},description:``}}}})))()}export{f as a,h as c,_ as d,d as i,g as l,ae as n,T as o,y as r,m as s,Q as t,p as u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{n,t as r}from"./TimePanel-tEW36vm2.js";function i(e){let[,t]=o(),n=e.value;return(0,a.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,a.jsx)(r,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}var a,o,s,c,l,u,d;function f(){return(f=e((()=>{n(),a=t(),{useArgs:o}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`Shared/UI/Internal/DateTime/TimePanel`,component:r,args:{value:new Date(2026,2,10,12,30,0,0),onChange:s(),disabled:!1,mode:`date-time`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{value:{description:`Текущая дата, из которой панель берёт календарный день и время.`,control:!1},disabled:{description:`Блокирует оба wheel-picker-а.`,control:`boolean`},minDate:{description:`Нижняя граница доступного времени для выбранного дня.`,control:`date`},maxDate:{description:`Верхняя граница доступного времени для выбранного дня.`,control:`date`},mode:{description:`Режим вычисления доступного времени.`,control:`inline-radio`,options:[`date-time`,`time`]},onChange:{description:`Вызывается с выбранными часами и минутами.`,control:!1}}},l={render:function(e){return(0,a.jsx)(i,{...e})}},u={render:function(e){return(0,a.jsx)(i,{...e})},args:{value:new Date(2026,2,10,9,30,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{n,t as r}from"./TimePanel-C3WBrZQp.js";function i(e){let[,t]=o(),n=e.value;return(0,a.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,a.jsx)(r,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}var a,o,s,c,l,u,d;function f(){return(f=e((()=>{n(),a=t(),{useArgs:o}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`Shared/UI/Internal/DateTime/TimePanel`,component:r,args:{value:new Date(2026,2,10,12,30,0,0),onChange:s(),disabled:!1,mode:`date-time`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{value:{description:`Текущая дата, из которой панель берёт календарный день и время.`,control:!1},disabled:{description:`Блокирует оба wheel-picker-а.`,control:`boolean`},minDate:{description:`Нижняя граница доступного времени для выбранного дня.`,control:`date`},maxDate:{description:`Верхняя граница доступного времени для выбранного дня.`,control:`date`},mode:{description:`Режим вычисления доступного времени.`,control:`inline-radio`,options:[`date-time`,`time`]},onChange:{description:`Вызывается с выбранными часами и минутами.`,control:!1}}},l={render:function(e){return(0,a.jsx)(i,{...e})}},u={render:function(e){return(0,a.jsx)(i,{...e})},args:{value:new Date(2026,2,10,9,30,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render(args) {
3
3
  return <TimePanelStoryCanvas {...args} />;
4
4
  }
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{i as n,r}from"./react-qN2cStNd.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-kj4zfGuU.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-4BC0PJFa.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-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{i as n,r}from"./react-qN2cStNd.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-DB1eHUIS.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-1KQpm8VM.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 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-dyOWtut-.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CiLQZm_L.js";var c,l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{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=e((()=>{y=t(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{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-E-RW9GdU.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CiLQZm_L.js";var c,l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{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=e((()=>{y=t(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,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-dyOWtut-.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./Toggle-DYw5n40e.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:`Shared/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-C0FnF6B9.js";import{n}from"./iframe-E-RW9GdU.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./Toggle-Tak1R2Zm.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:`Shared/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: "Режим синхронизации",
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-E-RW9GdU.js";import{c as r,d as i,f as a,i as o,r as s,s as c}from"./defaultRenderers-C5s5umkj.js";import{a as l,c as u,d,i as f,l as p,n as m,r as h,s as g,t as _}from"./TreePickerBase-CdLWTzBZ.js";function v(e,t){let n=d(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 s(r)}}function y(e,t,n){let r=p(e,n),i=p(t,n);return r.size===i.size&&[...r].every(e=>i.has(e))}function b({label:e,description:t,disabled:n,placeholder:r=`Выберите значения`,size:i,nodes:o,value:s,onChange:m,query:b,defaultQuery:C,onQuery:w,isLoading:T,error:E,optionsLayout:D=`tree`,defaultExpandedCodeKeys:O}){let[k,A]=(0,x.useState)(!1),j=(0,x.useMemo)(()=>h(o),[o]),{draftValue:M,setDraftValue:N,prepareOpen:P}=a({value:s,open:k,onCommit:m,isEqual:(e,t)=>y(e,t,j)}),F=k?M:s,I=(0,x.useMemo)(()=>p(F,j),[F,j]),L=(0,x.useMemo)(()=>l(I,j),[I,j]),R=(0,x.useMemo)(()=>new Set([...j.nodeById.keys()].filter(e=>j.nodeById.get(e)?.disabled!==!0&&!g(e,I,j)&&!L.selectedIds.has(e)&&f(j,[e]).size===0)),[I,L.selectedIds,j]),z=(0,x.useMemo)(()=>v(I,j),[I,j]);return(0,S.jsx)(_,{label:e,description:t,disabled:n,placeholder:r,size:i,nodes:o,selectedIds:L.selectedIds,partialIds:L.partialIds,selectionMode:`multi`,optionsLayout:D,defaultExpandedCodeKeys:O,unavailableNodeIds:R,open:k,onOpenChange:e=>{e&&!k&&P(),A(e)},bulkActions:{onSelectAll:()=>{N(d(f(j),j))},onDeselectAll:()=>N({})},triggerMode:`search`,selectedSummary:z?(0,S.jsx)(c,{value:z}):void 0,query:b,defaultQuery:C,onQuery:w,onNodeActivate:e=>{N(t=>u(t,e.id,j))},onClearSelection:()=>{N({}),k||m({})},isLoading:T,error:E})}var x,S;function C(){return(C=e((()=>{x=t(),r(),o(),i(),m(),S=n(),b.__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:``},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{C as n,b as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{i as n,r}from"./react-qN2cStNd.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-kj4zfGuU.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}from"./TreeMultiSelect.stories-CLOuMFeL.js";function S(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{i as n,r}from"./react-qN2cStNd.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-DB1eHUIS.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}from"./TreeMultiSelect.stories-DAd8NIUE.js";function S(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,w.jsx)(u,{children:`TreeMultiSelect`}),`
3
3
  `,(0,w.jsx)(o,{children:`Мультивыбор узлов дерева с компрессией subtree в parent`}),`
4
4
  `,(0,w.jsxs)(t.p,{children:[(0,w.jsx)(t.code,{children:`TreeMultiSelect`}),` хранит наружу не “все листья”, а канонизированный frontier по уровням дерева.`]}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-dyOWtut-.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./TreeMultiSelect-DSWJC4dO.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-Ci7STpiz.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RightEdgeColumns:()=>C,__namedExportsOrder:()=>w,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})}}),(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;function T(){return(T=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:`Shared/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`},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}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-E-RW9GdU.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./TreeMultiSelect-DUYiFByA.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-Ci7STpiz.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RightEdgeColumns:()=>C,__namedExportsOrder:()=>w,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})}}),(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;function T(){return(T=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:`Shared/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`},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}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
2
2
  render: renderTreeMultiSelectStory,
3
3
  args: {
4
4
  value: {
@@ -0,0 +1,24 @@
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-OVXob3eq.js";import{n as i,t as a}from"./chevron-right-D8Axh6ZC.js";import{i as o,n as s,r as c,t as l}from"./CheckBox-CHN9e0G4.js";import{n as u,t as d}from"./x-BG-Wb06q.js";import{n as f}from"./iframe-E-RW9GdU.js";import{a as p,i as m}from"./utils-DUM89eIj.js";import{n as h,t as g}from"./SelectOptionContent-Degde5-0.js";import{n as _,t as v}from"./ui.module-CiLQZm_L.js";import{l as y,o as ee}from"./Input-BwIlSQ9_.js";import{c as b,g as te,h as ne,i as re,l as ie,n as ae,r as oe,s as se,t as ce,u as le}from"./usePickerTriggerController-C4HAPzsM.js";import{n as ue,t as de}from"./PickerSelectionToolbar-DnTlpeHD.js";import{i as x,n as fe,r as pe,t as me}from"./usePickerQuery-CR-H7j-z.js";import{n as he,t as ge}from"./PickerTriggerActions-CUNsf_w4.js";function S(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=S(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 C(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(S(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(S(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(S(r,e))??[])n.add(i);return j(n,t)}function w(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=S(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 T(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function E(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function D(e,t){let n=C(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&&(E(e,n,t)||E(n,e,t))))}function O(e,t){return D(e,t)?C(e,t):[e]}function be(e,t,n){for(let r of[...e])E(r,t,n)&&e.delete(r)}function k(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 C(i,n))e.delete(t)}}}function A(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=>A(e,t,n))}function j(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 N(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])T(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=>A(e,n,t))){let r=C(e,t);if(D(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&A(e,n,t)}))for(let e of r)be(n,e,t),n.add(e)}}return n}function xe(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of C(r,n))if(e.has(t)){e.delete(t);for(let r of N(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function M(e,t,n){return t.has(e)?!0:T(e,n).some(e=>t.has(e))}function Se(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=>Se(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 Ce(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)Se(r,e,t,n);return n}function N(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=!D(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function we(e,t,n){let r=ye(e,n);if(A(t,r,n))return k(r,t,n),w(j(r,n),n);let i=e=>{if(r.has(e)){k(r,e,n);return}if(A(e,r,n)){k(r,e,n);return}if(M(e,r,n)){xe(r,e,n)&&(M(e,r,n)||A(e,r,n)?i(e):k(r,e,n));return}for(let t of O(e,n))be(r,t,n),r.add(t)},a=[...N(n,[t])],o=a.length===0&&(M(t,r,n)||A(t,r,n))?[t]:a,s=o.length>0&&o.every(e=>M(e,r,n)||A(e,r,n));for(let e of o){let t=M(e,r,n)||A(e,r,n);(s&&t||!s&&!t)&&i(e)}return w(j(r,n),n)}function Te(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ee(e,t){let n=new Set;for(let r of e)Te(r,t,n);return n}function De(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 P(e,t,n){let r=(e.children??[]).map(e=>P(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 Oe(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>P(e,n,r)).filter(e=>!!e),expandedIds:r}}function ke(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 F(){return(F=e((()=>{})))()}function Ae(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 I(e,t){return Number.isFinite(e)&&e>0?e:t}function je(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Fe,t)}function L(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=je(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=I(t,240),c=I(n,80),l=I(r,s+16),u=I(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,I(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(Pe,h,o||1)),_=e.groups.reduce((e,t)=>Math.max(e,je(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let v,y=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(_,Math.ceil(o/t)),r=L(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=L(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<y&&(y=h,v={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return v??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:L(e,o).placements}}var R,z,B,V,Ne,Pe,Fe;function Ie(){return(Ie=e((()=>{R=16,z=48,B=224,V=10,Ne=32,Pe=6,Fe=3})))()}var H,Le,Re,U,ze,Be,Ve,W,G,K,q,He,J,Ue,We,Y,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,X;function nt(){return(nt=e((()=>{H=`eMqOwq`,Le=`JKstO-`,Re=`hKgr8e`,U=`KjPZjd`,ze=`_6EH37F`,Be=`UBll8Q`,Ve=`-y3RZP`,W=`ayLJ50`,G=`_430vL2`,K=`FkzTJI`,q=`e8fE4t`,He=`_2MFkGF`,J=`SWQUvb`,Ue=`o5NWnX`,We=`ibSd-S`,Y=`lXezvv`,Ge=`FMlLGX`,Ke=`d2Zt7U`,qe=`_8PN4hs`,Je=`_4JEoen`,Ye=`GS8eEC`,Xe=`T8gVno`,Ze=`o6stdX`,Qe=`I5zvhe`,$e=`KQ0PBI`,et=`_7hAQQA`,tt=`XeUHNc`,X={treeRow:H,treeRowSelected:Le,treeRowActive:Re,treeRowDisabled:U,treeNodeButton:ze,treePopupHeader:Be,treeColumns:Ve,treeColumnRow:W,treeColumnsPopupLayout:G,treeColumnRootLabel:K,treeColumnRootCode:q,treeColumnCheckBox:He,treeNodeOptionContent:J,treeIndent:Ue,treeExpander:We,treeExpanderPlaceholder:Y,treeExpanderIcon:Ge,treeExpanderIconExpanded:Ke,treeSelection:qe,treeSelectionChecked:Je,treeSelectionPartial:Ye,treeSelectionIcon:Xe,treeSummary:Ze,inputWithOverlay:Qe,valueOverlay:$e,treeActions:et,treeClearButton:tt}})))()}function rt({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:s,partial:u,selectionMode:d,optionsLayout:f=`tree`,onToggleExpand:m,onToggleSelection:h}){let _=f===`tree`,v=f===`columns`&&t===0;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:X.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),_&&i?(0,Z.jsx)(`button`,{type:`button`,className:X.treeExpander,onClick:e=>{e.stopPropagation(),m?.()},"aria-label":o?`Свернуть ветку`:`Развернуть ветку`,"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,Z.jsx)(a,{className:p(X.treeExpanderIcon,o&&X.treeExpanderIconExpanded)})}):_?(0,Z.jsx)(`span`,{className:X.treeExpanderPlaceholder,"aria-hidden":`true`}):null,d===`multi`&&f===`columns`?(0,Z.jsx)(`span`,{className:X.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,Z.jsx)(l,{value:s,indeterminate:u,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>h?.()})}):d===`multi`?(0,Z.jsx)(`span`,{className:p(X.treeSelection,s&&X.treeSelectionChecked,u&&X.treeSelectionPartial),"aria-hidden":`true`,children:s?(0,Z.jsx)(r,{className:X.treeSelectionIcon}):u?(0,Z.jsx)(c,{className:X.treeSelectionIcon}):null}):null,(0,Z.jsx)(`div`,{className:X.treeNodeOptionContent,children:(0,Z.jsx)(g,{label:e.label,code:e.code,highlight:n,labelClassName:v?X.treeColumnRootLabel:void 0,codeClassName:v?X.treeColumnRootCode:void 0})})]})}var Z;function it(){return(it=e((()=>{m(),n(),i(),o(),s(),h(),nt(),Z=f(),rt.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
2
+ id: string;
3
+ codeKey: string;
4
+ value: string;
5
+ label: string;
6
+ code?: string;
7
+ searchText: string;
8
+ children?: TreeSelectNode[];
9
+ disabled?: boolean;
10
+ selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
11
+ }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}},description:``},level:{required:!0,tsType:{name:`number`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},hasChildren:{required:!0,tsType:{name:`boolean`},description:``},isExpanded:{required:!0,tsType:{name:`boolean`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``},partial:{required:!0,tsType:{name:`boolean`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},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}},onToggleExpand:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onToggleSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function at({label:e,description:t,disabled:n,placeholder:r,size:i,nodes:a,selectedIds:o,partialIds:s,selectionMode:c,optionsLayout:l=`tree`,defaultExpandedCodeKeys:u,unavailableNodeIds:f,open:m,onOpenChange:h,bulkActions:g,triggerMode:v=`display`,selectedSummary:y,selectedSummaryText:b,query:te,defaultQuery:oe,onQuery:ce,onNodeActivate:le,onClearSelection:ue,isLoading:x,error:me}){let he=(0,Q.useRef)(null),S=(0,Q.useRef)(null),[C,ve]=(0,Q.useState)(!1),ye=m!==void 0,w=ye?m:C,[T,E]=(0,Q.useState)(()=>new Map),D=v===`search`?c===`multi`?`search-multi`:`search-single`:`display`,O=(0,Q.useMemo)(()=>_e(a),[a]),be=(0,Q.useMemo)(()=>`${r} <${O.nodeById.size}>`,[r,O]),k=(0,Q.useMemo)(()=>new Set(u),[u]),{query:A,setQuery:j,resetQueryOnClose:xe}=fe({query:te,defaultQuery:oe,onQuery:ce,triggerMode:D}),Se=e=>{w&&!e&&xe&&j(``),ye||ve(e),h?.(e)},{nodes:Ce,expandedIds:N}=(0,Q.useMemo)(()=>Oe(a,A),[a,A]),we=(0,Q.useMemo)(()=>Ee(o,O),[o,O]),Te=(0,Q.useMemo)(()=>De(O,k,T),[k,T,O]),P=(0,Q.useMemo)(()=>new Set([...O.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[O]),F=(0,Q.useMemo)(()=>l===`columns`?P:new Set([...Te,...N,...we]),[P,Te,l,N,we]),I=(0,Q.useMemo)(()=>ke(Ce,F),[Ce,F]),je=(0,Q.useMemo)(()=>I.findIndex(e=>o.has(e.node.id)),[o,I]),L=(0,Q.useMemo)(()=>Ae(I),[I]),R=(0,Q.useCallback)(e=>{let t=Me({...e,descriptor:L}),n={};return t.placements.forEach((e,t)=>{n[`--tree-option-${t}-column`]=String(e.column),n[`--tree-option-${t}-row`]=String(e.row)}),{width:`${t.width}px`,minWidth:`${t.minWidth}px`,maxWidth:`${t.width}px`,maxHeight:`${t.maxHeight}px`,"--tree-column-count":String(t.columnCount),"--tree-row-count":String(t.rowCount),...n}},[L]),{activeIndex:z,context:B,floatingStyles:V,getFloatingProps:Ne,setReference:Pe,setFloating:Fe,setOptionRef:Ie,close:H,openList:Le,toggleOpen:Re,selectOption:U,handleReferenceKeyDown:ze,handleFloatingKeyDown:Be,getOptionId:Ve,getActiveOptionId:W}=re({options:I,selectedIndex:je,open:w,onOpenChange:Se,onSelect:e=>le(e.node),getOptionDisabled:e=>e.node.disabled===!0||f?.has(e.node.id)===!0,disabled:n||x,closeOnSelect:c===`single`,allowOpenWithoutOptions:!0,triggerMode:D,placementStrategy:l===`columns`?`auto`:`flip`,resolveFloatingSize:l===`columns`?R:void 0}),G=B.update,K=o.size>0,q=v===`search`&&(w||A.length>0),He=q?A:b??``,J=v===`display`&&!!y,Ue=D===`search-multi`&&!!y,We=D===`search-multi`&&!K||D===`search-single`&&(!b||q)||D===`display`&&!K,Y=ae({mode:D,open:w,currentQuery:A,hasDisplayValue:!!b,inputRef:he,setQuery:j,openList:Le,close:H,toggleOpen:Re}),Ge=l===`columns`&&c===`multi`&&g,Ke=v===`display`,qe=Ge||Ke?(0,$.jsxs)(`div`,{className:X.treePopupHeader,children:[Ge?(0,$.jsx)(de,{onSelectAll:g.onSelectAll,onDeselectAll:g.onDeselectAll,selectAllButtonRef:S}):null,Ke?(0,$.jsx)(ee,{value:A,onChange:j,onClear:()=>j(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Q.useLayoutEffect)(()=>{w&&l===`columns`&&G()},[L.signature,w,l,G]);let Je=e=>{he.current=e},Ye=()=>{ue?.(),j(``),c===`single`&&H()},Xe=e=>{e.hasChildren&&E(t=>{let n=new Map(t),r=t.get(e.node.id)??k.has(e.node.codeKey);return n.set(e.node.id,!r),n})};return(0,$.jsx)(ne,{label:e,description:t,disabled:n,size:i,children:({controlId:t,labelId:i,describedBy:a})=>{let u=`${t}-listbox`,m=typeof e==`string`?e:r;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(se,{ref:Je,rootRef:Pe,id:t,type:`text`,role:`combobox`,autoComplete:`off`,isLoading:x,disabled:n,readOnly:v!==`search`,value:v===`display`&&J?``:He,placeholder:We?be:void 0,"aria-labelledby":i,"aria-label":i?void 0:r,"aria-describedby":a,"aria-haspopup":l===`columns`?`dialog`:`listbox`,"aria-expanded":w,"aria-controls":w?u:void 0,"aria-autocomplete":l!==`columns`&&v===`search`?`list`:`none`,"aria-activedescendant":l!==`columns`&&w&&I.length>0?W(u):void 0,inputClassName:p(K&&X.treeSummary,J&&X.inputWithOverlay),overlay:J?(0,$.jsx)(`div`,{className:X.valueOverlay,children:y}):Ue?y:void 0,endAdornment:(0,$.jsx)(ge,{open:w,disabled:n||x,onToggleMouseDown:Y.handleToggleMouseDown,onToggleClick:Y.handleToggleClick,children:K&&ue?(0,$.jsx)(`button`,{type:`button`,className:X.treeClearButton,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),Ye()},"aria-label":`Очистить выбор`,children:(0,$.jsx)(d,{})}):null}),onChange:e=>{v===`search`&&Y.handleTriggerInputChange(e.target.value)},onClick:Y.handleTriggerClick,onFocus:e=>{Y.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(l===`columns`&&w&&e.key===`Tab`&&!e.shiftKey&&S.current){e.preventDefault(),S.current.focus();return}ze(e),!e.defaultPrevented&&Y.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=z>=0?I[z]:void 0;e&&U(e)},enableSpaceActivation:v===`display`})}}),(0,$.jsx)(ie,{open:w,context:B,floatingStyles:V,listId:u,labelId:i,popupAriaLabel:m,descriptionId:a,activeOptionId:l!==`columns`&&I.length>0?W(u):void 0,ariaMultiselectable:l!==`columns`&&c===`multi`,popupRole:l===`columns`?`dialog`:`listbox`,setFloating:Fe,getFloatingProps:Ne,onKeyDown:Be,className:_.uiPopupOptions,layoutClassName:l===`columns`?X.treeColumnsPopupLayout:void 0,bodyClassName:`scrollable`,header:qe,children:(0,$.jsx)(`div`,{className:p(l===`columns`&&X.treeColumns),children:I.length===0?(0,$.jsx)(pe,{errorState:me,emptyState:!me&&!x?`Нет данных`:void 0}):I.map((e,t)=>{let n=c===`multi`?M(e.node.id,o,O):o.has(e.node.id),r=c===`multi`&&!n&&s.has(e.node.id),i=t===z,a=e.node.disabled===!0||f?.has(e.node.id)===!0;return(0,$.jsx)(`div`,{"data-ui":`tree-select-option`,id:Ve(u,t),ref:e=>Ie(t,e),role:l===`columns`?void 0:`option`,"aria-selected":l===`columns`?void 0:n,"aria-disabled":a||void 0,className:p(X.treeRow,l===`columns`&&X.treeColumnRow,a&&X.treeRowDisabled,i&&X.treeRowActive,n&&X.treeRowSelected),style:l===`columns`?{"--tree-option-column":`var(--tree-option-${t}-column, auto)`,"--tree-option-row":`var(--tree-option-${t}-row, auto)`}:void 0,onMouseDown:e=>{e.preventDefault()},onClick:()=>U(e),children:(0,$.jsx)(`div`,{className:X.treeNodeButton,children:(0,$.jsx)(rt,{node:a?{...e.node,disabled:!0}:e.node,level:e.level,highlight:A,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:c,optionsLayout:l,onToggleExpand:()=>Xe(e),onToggleSelection:()=>U(e)})})},e.node.id)})})})]})}})}var Q,$;function ot(){return(ot=e((()=>{Q=t(),m(),u(),y(),te(),le(),ue(),x(),he(),b(),oe(),me(),ce(),v(),Ie(),it(),nt(),$=f(),at.__docgenInfo={description:``,methods:[],displayName:`TreePickerBase`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},selectedIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},partialIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},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:``},unavailableNodeIds:{required:!1,tsType:{name:`ReadonlySet`,elements:[{name:`string`}],raw:`ReadonlySet<string>`},description:`Узлы, которые текущий multi-select contract не может безопасно сериализовать.`},open:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``},bulkActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
12
+ onSelectAll: () => void;
13
+ onDeselectAll: () => void;
14
+ }`,signature:{properties:[{key:`onSelectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`onDeselectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},triggerMode:{required:!1,tsType:{name:`union`,raw:`"display" | "search"`,elements:[{name:`literal`,value:`"display"`},{name:`literal`,value:`"search"`}]},description:``,defaultValue:{value:`"display"`,computed:!1}},selectedSummary:{required:!1,tsType:{name:`ReactNode`},description:``},selectedSummaryText:{required:!1,tsType:{name:`string`},description:``},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:``},onNodeActivate:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: TreeSelectNode) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
15
+ id: string;
16
+ codeKey: string;
17
+ value: string;
18
+ label: string;
19
+ code?: string;
20
+ searchText: string;
21
+ children?: TreeSelectNode[];
22
+ disabled?: boolean;
23
+ selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
24
+ }`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}},name:`node`}],return:{name:`void`}}},description:``},onClearSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{Ce as a,we as c,w as d,N as i,ye as l,ot as n,F as o,_e as r,M as s,at as t,ve as u};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{i as n,r}from"./react-qN2cStNd.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-kj4zfGuU.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./TreeSelect.stories-DeUuri9_.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{i as n,r}from"./react-qN2cStNd.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-DB1eHUIS.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./TreeSelect.stories-vAacDFVY.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(u,{children:`TreeSelect`}),`
3
3
  `,(0,x.jsx)(o,{children:`Single-select для выбора одного узла из дерева`}),`
4
4
  `,(0,x.jsxs)(t.p,{children:[(0,x.jsx)(t.code,{children:`TreeSelect`}),` подходит для сценариев, где выбор должен происходить по одному узлу, но пользователь работает не с плоским списком, а с иерархией.`]}),`
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-dyOWtut-.js";import{l as r,n as i,r as a,t as o}from"./TreePickerBase-20y13Oo3.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:i=`Выберите значение`,size:c,nodes:d,value:f,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,clearable:y=!1,defaultExpandedCodeKeys:b}){let x=(0,l.useMemo)(()=>a(d),[d]),S=r(f,x),C=S?x.nodeById.get(S):void 0;return(0,u.jsx)(o,{label:e,description:t,disabled:n,placeholder:i,size:c,nodes:d,selectedIds:S?new Set([S]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:b,triggerMode:`search`,selectedSummaryText:s(C),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:y?()=>p(void 0):void 0,isLoading:_,error:v})}var l,u;function d(){return(d=e((()=>{l=t(),i(),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:``},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-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-E-RW9GdU.js";import{n as r,r as i,t as a,u as o}from"./TreePickerBase-CdLWTzBZ.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,clearable:y=!1,defaultExpandedCodeKeys:b}){let x=(0,l.useMemo)(()=>i(d),[d]),S=o(f,x),C=S?x.nodeById.get(S):void 0;return(0,u.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:c,nodes:d,selectedIds:S?new Set([S]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:b,triggerMode:`search`,selectedSummaryText:s(C),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:y?()=>p(void 0):void 0,isLoading:_,error:v})}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:``},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,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-dyOWtut-.js";import{n as r,t as i}from"./treeStoryFixtures-Ci7STpiz.js";import{n as a,t as o}from"./TreeSelect-BZXBh5WL.js";var s=t({Basic:()=>f,Empty:()=>h,FirstLevelExpanded:()=>m,SelectParent:()=>p,__namedExportsOrder:()=>g,default:()=>d});function c(e){let[,t]=u();return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,l.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,l.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{a(),r(),l=n(),{useArgs:u}=__STORYBOOK_MODULE_PREVIEW_API__,d={title:`Shared/UI/TreeSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:i,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{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`]}}},f={render:function(e){return(0,l.jsx)(c,{...e})},args:{value:{codeKey:`BRANCH`,value:`B0101`}}},p={render:function(e){return(0,l.jsx)(c,{...e})},args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},m={render:function(e){return(0,l.jsx)(c,{...e})},args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},h={render:function(e){return(0,l.jsx)(c,{...e})},args:{nodes:[],description:`Состояние без доступных узлов.`}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-E-RW9GdU.js";import{n as r,t as i}from"./treeStoryFixtures-Ci7STpiz.js";import{n as a,t as o}from"./TreeSelect-Jz1ne-hp.js";var s=t({Basic:()=>f,Empty:()=>h,FirstLevelExpanded:()=>m,SelectParent:()=>p,__namedExportsOrder:()=>g,default:()=>d});function c(e){let[,t]=u();return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,l.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,l.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{a(),r(),l=n(),{useArgs:u}=__STORYBOOK_MODULE_PREVIEW_API__,d={title:`Shared/UI/TreeSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:i,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{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`]}}},f={render:function(e){return(0,l.jsx)(c,{...e})},args:{value:{codeKey:`BRANCH`,value:`B0101`}}},p={render:function(e){return(0,l.jsx)(c,{...e})},args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},m={render:function(e){return(0,l.jsx)(c,{...e})},args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},h={render:function(e){return(0,l.jsx)(c,{...e})},args:{nodes:[],description:`Состояние без доступных узлов.`}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render(args) {
3
3
  return <TreeSelectStoryCanvas {...args} />;
4
4
  },
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{i as n,r}from"./react-qN2cStNd.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-kj4zfGuU.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-RbZKlQrH.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-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{i as n,r}from"./react-qN2cStNd.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-DB1eHUIS.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-BSRT4W3L.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-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./chevron-down-B4c_ASl9.js";import{n as a,t as o}from"./chevron-right-DXNDiFSg.js";import{n as s}from"./iframe-dyOWtut-.js";import{D as c,E as l,T as u,c as d,d as f,n as p,p as ee,s as te,v as ne,w as re}from"./odata-COFnnzKa.js";import{a as ie,i as ae}from"./utils-DUM89eIj.js";import{i as oe,y as se}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{C as ce,S as le,_ as ue,a as de,b as fe,c as pe,d as me,f as he,g as ge,h as _e,i as ve,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke,y as Ae}from"./FormattedTableCell-BH8UJDSW.js";function je(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 Me(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[],s=[],c=[];for(let o of e){let e=t.getRowId(o);if(n.has(e)){a.push(e);continue}let s=t.getParentRowId(o)??null;n.set(e,o),r.set(e,s),c.push(e),s!==null&&s!==e&&je(i,s,e)}let l=[];for(let e of c){let t=r.get(e)??null;if(t===null){l.push(e);continue}if(t===e){s.push(e),l.push(e);continue}n.has(t)||(o.push(e),l.push(e))}let u=new Set,d=(e,t)=>{let r=n.get(e);if(!r)throw Error(`Не удалось построить дерево: строка "${e}" отсутствует в индексе.`);u.add(e);let a=new Set(t);a.add(e);let o={...r},c=i.get(e)??[],l=[];for(let e of c){if(a.has(e)){s.push(e);continue}u.has(e)||l.push(d(e,a))}return l.length>0&&(o.children=l),o},f=[],p=[];for(let e of l)u.has(e)||(f.push(d(e,new Set)),p.push(e));for(let e of c)u.has(e)||(s.push(e),f.push(d(e,new Set)),p.push(e));return{rows:f,rowById:n,allRowIds:c,rootRowIds:m(p),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function h(){return(h=e((()=>{})))()}var Ne,Pe,Fe,g,_,v,y,b;function x(){return(x=e((()=>{Ne=`jOS9rT`,Pe=`zHOAf7`,Fe=`j48cXg`,g=`mf4-Kr`,_=`p8pb0F`,v=`KIudLf`,y=`bJsPGU`,b={treeColumnCell:Ne,selectedIndicatorCell:Pe,treeCell:Fe,treeCellContent:g,expanderButton:_,expanderSpacer:v,sentinel:y}})))()}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 S(e,t){return t.get(e.id)??e.original}function Re(e,t,n,r){return e.cell.column.id===n?(0,T.jsxs)(`div`,{className:b.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${f(r)??`0em`})`},children:[e.row.getCanExpand()?(0,T.jsx)(`button`,{type:`button`,className:b.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,T.jsx)(i,{size:16}):(0,T.jsx)(o,{size:16})}):(0,T.jsx)(`span`,{className:b.expanderSpacer,"aria-hidden":`true`}),(0,T.jsx)(`div`,{className:b.treeCellContent,children:t})]}):t}function C({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:f,tableClassName:p,columnVisibility:ee,defaultColumnVisibility:te,columnOrder:ne,defaultColumnOrder:re,columnSizing:ae,defaultColumnSizing:se,columnPinning:de,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:ye,onColumnOrderChange:be,onColumnSizingChange:xe,onColumnPinningChange:Te,onRowClick:Ae,onRowSelectionChange:je,onExpandedRowIdsChange:m,onReachEnd:h,getRowCanSelect:Ne,getRowClassName:Pe,renderHeaderContextMenu:Fe,renderCellContent:g}){let _=(0,w.useMemo)(()=>Me(r??[],a),[r,a]),v=(0,w.useMemo)(()=>_e(i),[i]),y=(0,w.useMemo)(()=>{let e=new Set(c??[]);if(s)for(let t of _.rootRowIds)e.add(t);return Array.from(e)},[c,s,_.rootRowIds]),[x,C]=(0,w.useState)({}),E=(0,w.useRef)(!1),D=(0,w.useRef)(null),ze=(0,w.useRef)(null),{rowSelection:Be,activateRowSelection:O}=d({availableRowIds:_.allRowIds,rowById:_.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:Ve,onColumnVisibilityChange:He}=Se({columnVisibility:ee,defaultColumnVisibility:te,onColumnVisibilityChange:ye}),{columnOrder:k,onColumnOrderChange:Ue}=he({columnOrder:ne,defaultColumnOrder:re,onColumnOrderChange:be}),{columnSizing:A,onColumnSizingChange:We}=pe({columnSizing:ae,defaultColumnSizing:se,columnResizeMinWidth:ve,onColumnSizingChange:xe}),{columnPinning:j,onColumnPinningChange:Ge}=De({columnPinning:de,defaultColumnPinning:fe,onColumnPinningChange:Te}),Ke=(0,w.useMemo)(()=>({columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:Ve}),[k,j,A,Ve]),M=(0,w.useEffectEvent)((e,t)=>{if(e.length===0){E.current=!1,C({});return}let n=new Set(e);C(e=>{let r=Le(e).filter(e=>n.has(e));return E.current?Ie(r):(E.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),qe=(0,w.useEffectEvent)(e=>{m?.(Le(e))}),N=(0,w.useEffectEvent)(()=>{h?.()});(0,w.useEffect)(()=>{M(_.allRowIds,y)},[y,_.allRowIds]),(0,w.useEffect)(()=>{qe(x)},[x]),(0,w.useEffect)(()=>{if(!h||!D.current||!ze.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&N()},{root:D.current,threshold:.1});return e.observe(ze.current),()=>e.disconnect()},[t,h,_.rows.length]);let P=ke({data:_.rows,columns:i,state:{columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:Ve,expanded:x,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,getCoreRowModel:le(),getExpandedRowModel:ce(),onColumnOrderChange:Ue,onColumnPinningChange:Ge,onColumnSizingChange:We,onColumnVisibilityChange:He,onExpandedChange:C,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=S(e,_.rowById);return!Ne||Ne(t)}}),F=Oe(P,Ke),I=l??F[0]?.id,Je=P.getRowModel().rows,Ye=(0,w.useMemo)(()=>Ce({rows:Je,columns:F,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:I?new Set([I]):void 0}),[Je,F,I]);return(0,T.jsx)(we,{table:P,columnState:Ke,title:e,isLoading:t,isFetching:n,className:f,tableClassName:p,selectionMode:o,scrollableRef:D,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||Ae?e=>{let t=S(e,_.rowById);O(e.id,e.getCanSelect()),Ae?.(t)}:void 0,isRowInteractive:e=>!!(Ae||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=S(e,_.rowById);return Pe?.(t)},getCellClassName:({row:e,cell:t})=>ie(t.column.id===I&&b.treeColumnCell,t.column.id===I&&e.getIsSelected()&&b.selectedIndicatorCell),getCellLayout:({cell:e})=>Ye.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=S(e.row,_.rowById),n=oe({field:v.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=ue({columnId:e.cell.column.id,runtimeByColumnId:v.runtimeByColumnId,customCellColumnIds:v.customCellColumnIds})?(0,T.jsx)(Ee,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return Re(e,g?g({...e,defaultContent:r,displayValue:n}):r,I,u)},afterTableContent:h?(0,T.jsx)(`div`,{ref:ze,className:b.sentinel,"aria-hidden":`true`}):null})}var w,T;function E(){return(E=e((()=>{w=n(),se(),ne(),h(),ae(),fe(),r(),a(),ve(),be(),ge(),xe(),Ae(),me(),ye(),Te(),de(),x(),T=s(),C.__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-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./chevron-down-Bpd9dt89.js";import{n as a,t as o}from"./chevron-right-D8Axh6ZC.js";import{n as s}from"./iframe-E-RW9GdU.js";import{D as c,E as l,T as u,c as d,d as f,n as p,p as ee,s as te,v as ne,w as re}from"./odata-BtJOrkyu.js";import{a as ie,i as ae}from"./utils-DUM89eIj.js";import{i as oe,y as se}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{C as ce,S as le,_ as ue,a as de,b as fe,c as pe,d as me,f as he,g as ge,h as _e,i as ve,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke,y as Ae}from"./FormattedTableCell-DXtk8oM0.js";function je(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 Me(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[],s=[],c=[];for(let o of e){let e=t.getRowId(o);if(n.has(e)){a.push(e);continue}let s=t.getParentRowId(o)??null;n.set(e,o),r.set(e,s),c.push(e),s!==null&&s!==e&&je(i,s,e)}let l=[];for(let e of c){let t=r.get(e)??null;if(t===null){l.push(e);continue}if(t===e){s.push(e),l.push(e);continue}n.has(t)||(o.push(e),l.push(e))}let u=new Set,d=(e,t)=>{let r=n.get(e);if(!r)throw Error(`Не удалось построить дерево: строка "${e}" отсутствует в индексе.`);u.add(e);let a=new Set(t);a.add(e);let o={...r},c=i.get(e)??[],l=[];for(let e of c){if(a.has(e)){s.push(e);continue}u.has(e)||l.push(d(e,a))}return l.length>0&&(o.children=l),o},f=[],p=[];for(let e of l)u.has(e)||(f.push(d(e,new Set)),p.push(e));for(let e of c)u.has(e)||(s.push(e),f.push(d(e,new Set)),p.push(e));return{rows:f,rowById:n,allRowIds:c,rootRowIds:m(p),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function h(){return(h=e((()=>{})))()}var Ne,Pe,Fe,g,_,v,y,b;function x(){return(x=e((()=>{Ne=`jOS9rT`,Pe=`zHOAf7`,Fe=`j48cXg`,g=`mf4-Kr`,_=`p8pb0F`,v=`KIudLf`,y=`bJsPGU`,b={treeColumnCell:Ne,selectedIndicatorCell:Pe,treeCell:Fe,treeCellContent:g,expanderButton:_,expanderSpacer:v,sentinel:y}})))()}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 S(e,t){return t.get(e.id)??e.original}function Re(e,t,n,r){return e.cell.column.id===n?(0,T.jsxs)(`div`,{className:b.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${f(r)??`0em`})`},children:[e.row.getCanExpand()?(0,T.jsx)(`button`,{type:`button`,className:b.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,T.jsx)(i,{size:16}):(0,T.jsx)(o,{size:16})}):(0,T.jsx)(`span`,{className:b.expanderSpacer,"aria-hidden":`true`}),(0,T.jsx)(`div`,{className:b.treeCellContent,children:t})]}):t}function C({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:f,tableClassName:p,columnVisibility:ee,defaultColumnVisibility:te,columnOrder:ne,defaultColumnOrder:re,columnSizing:ae,defaultColumnSizing:se,columnPinning:de,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:ye,onColumnOrderChange:be,onColumnSizingChange:xe,onColumnPinningChange:Te,onRowClick:Ae,onRowSelectionChange:je,onExpandedRowIdsChange:m,onReachEnd:h,getRowCanSelect:Ne,getRowClassName:Pe,renderHeaderContextMenu:Fe,renderCellContent:g}){let _=(0,w.useMemo)(()=>Me(r??[],a),[r,a]),v=(0,w.useMemo)(()=>_e(i),[i]),y=(0,w.useMemo)(()=>{let e=new Set(c??[]);if(s)for(let t of _.rootRowIds)e.add(t);return Array.from(e)},[c,s,_.rootRowIds]),[x,C]=(0,w.useState)({}),E=(0,w.useRef)(!1),D=(0,w.useRef)(null),ze=(0,w.useRef)(null),{rowSelection:Be,activateRowSelection:O}=d({availableRowIds:_.allRowIds,rowById:_.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:Ve,onColumnVisibilityChange:He}=Se({columnVisibility:ee,defaultColumnVisibility:te,onColumnVisibilityChange:ye}),{columnOrder:k,onColumnOrderChange:Ue}=he({columnOrder:ne,defaultColumnOrder:re,onColumnOrderChange:be}),{columnSizing:A,onColumnSizingChange:We}=pe({columnSizing:ae,defaultColumnSizing:se,columnResizeMinWidth:ve,onColumnSizingChange:xe}),{columnPinning:j,onColumnPinningChange:Ge}=De({columnPinning:de,defaultColumnPinning:fe,onColumnPinningChange:Te}),Ke=(0,w.useMemo)(()=>({columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:Ve}),[k,j,A,Ve]),M=(0,w.useEffectEvent)((e,t)=>{if(e.length===0){E.current=!1,C({});return}let n=new Set(e);C(e=>{let r=Le(e).filter(e=>n.has(e));return E.current?Ie(r):(E.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),qe=(0,w.useEffectEvent)(e=>{m?.(Le(e))}),N=(0,w.useEffectEvent)(()=>{h?.()});(0,w.useEffect)(()=>{M(_.allRowIds,y)},[y,_.allRowIds]),(0,w.useEffect)(()=>{qe(x)},[x]),(0,w.useEffect)(()=>{if(!h||!D.current||!ze.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&N()},{root:D.current,threshold:.1});return e.observe(ze.current),()=>e.disconnect()},[t,h,_.rows.length]);let P=ke({data:_.rows,columns:i,state:{columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:Ve,expanded:x,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,getCoreRowModel:le(),getExpandedRowModel:ce(),onColumnOrderChange:Ue,onColumnPinningChange:Ge,onColumnSizingChange:We,onColumnVisibilityChange:He,onExpandedChange:C,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=S(e,_.rowById);return!Ne||Ne(t)}}),F=Oe(P,Ke),I=l??F[0]?.id,Je=P.getRowModel().rows,Ye=(0,w.useMemo)(()=>Ce({rows:Je,columns:F,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:I?new Set([I]):void 0}),[Je,F,I]);return(0,T.jsx)(we,{table:P,columnState:Ke,title:e,isLoading:t,isFetching:n,className:f,tableClassName:p,selectionMode:o,scrollableRef:D,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||Ae?e=>{let t=S(e,_.rowById);O(e.id,e.getCanSelect()),Ae?.(t)}:void 0,isRowInteractive:e=>!!(Ae||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=S(e,_.rowById);return Pe?.(t)},getCellClassName:({row:e,cell:t})=>ie(t.column.id===I&&b.treeColumnCell,t.column.id===I&&e.getIsSelected()&&b.selectedIndicatorCell),getCellLayout:({cell:e})=>Ye.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=S(e.row,_.rowById),n=oe({field:v.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=ue({columnId:e.cell.column.id,runtimeByColumnId:v.runtimeByColumnId,customCellColumnIds:v.customCellColumnIds})?(0,T.jsx)(Ee,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return Re(e,g?g({...e,defaultContent:r,displayValue:n}):r,I,u)},afterTableContent:h?(0,T.jsx)(`div`,{ref:ze,className:b.sentinel,"aria-hidden":`true`}):null})}var w,T;function E(){return(E=e((()=>{w=n(),se(),ne(),h(),ae(),fe(),r(),a(),ve(),be(),ge(),xe(),Ae(),me(),ye(),Te(),de(),x(),T=s(),C.__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,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-dyOWtut-.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-kj4zfGuU.js";var s;function c(){return(c=e((()=>{s=`# Async helpers
1
+ import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-E-RW9GdU.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-DB1eHUIS.js";var s;function c(){return(c=e((()=>{s=`# Async helpers
2
2
 
3
3
  Модуль \`src/shared/api/async\` содержит инфраструктурный helper для пакетного запуска async-задач с ограничением по параллелизму.
4
4