@ryuzaki13/react-foundation-ui 3.11.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js → TextEditorLexicalClient-BwKsJG31.js} +347 -338
- package/dist/chunks/TextEditorLexicalClient-BwKsJG31.js.map +1 -0
- package/dist/chunks/types-CxXyru6U.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/text-editor/LinkDialog.d.ts +2 -1
- package/dist/text-editor/LinkDialog.d.ts.map +1 -1
- package/dist/text-editor/TextEditorDialogs.d.ts +3 -2
- package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalViewer.d.ts +10 -0
- package/dist/text-editor/TextEditorLexicalViewer.d.ts.map +1 -0
- package/dist/text-editor/editorModel.d.ts +18 -1
- package/dist/text-editor/editorModel.d.ts.map +1 -1
- package/dist/text-editor/index.d.ts +2 -1
- package/dist/text-editor/index.d.ts.map +1 -1
- package/dist/text-editor/index.js +298 -7
- package/dist/text-editor/index.js.map +1 -1
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts +5 -0
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts +4 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts +3 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts.map +1 -0
- package/dist/text-editor/model/hooks/useTextEditorLexicalActions.d.ts.map +1 -1
- package/dist/text-editor/model/textEditorViewerTypes.d.ts +58 -0
- package/dist/text-editor/model/textEditorViewerTypes.d.ts.map +1 -0
- package/dist/text-editor/toolbar/LinkButtons.d.ts +2 -1
- package/dist/text-editor/toolbar/LinkButtons.d.ts.map +1 -1
- package/dist/text-editor/toolbar/TextEditorToolbarLexical.d.ts.map +1 -1
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts +7 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts.map +1 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts +8 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts.map +1 -0
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-CVgLMAJT.js → Badge-Bg4hGIjf.js} +1 -1
- package/storybook-static/assets/{Badge.stories-KeadkKsz.js → Badge.stories-DvgJJzd7.js} +1 -1
- package/storybook-static/assets/{BadgeList-_jBtMkE3.js → BadgeList-OoSc_pn4.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-J9XDExKK.js → BarcodeScannerDialog.stories-e2CjbCdx.js} +1 -1
- package/storybook-static/assets/{Button-C-uRygWz.js → Button-CQU_2OUm.js} +1 -1
- package/storybook-static/assets/{Button-DegBPiAl.js → Button-CmAd-UMc.js} +1 -1
- package/storybook-static/assets/{Button.stories-Ds4zCq_9.js → Button.stories-CdXudj27.js} +1 -1
- package/storybook-static/assets/{CalendarView-iyr_ipPy.js → CalendarView-CfpxnEan.js} +1 -1
- package/storybook-static/assets/{CheckBox-B0zrARHA.js → CheckBox-CtrHIcza.js} +1 -1
- package/storybook-static/assets/{CheckBox-nBqHJGY9.js → CheckBox-HehqIiiV.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CxO9FwA7.js → CheckBox.stories-C8DlH2mz.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-Dzuzn5Yr.js → Color-6AOWCN3U-D9jGjZ1P.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BC5OXqVj.js → ContextMenu-BxHTZhuC.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CnZu58rQ.js → ContextMenu-t1s2BKrj.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CPdTdVV7.js → ContextMenu.stories-CMbIfQb7.js} +1 -1
- package/storybook-static/assets/{DateInput-B5j7kofa.js → DateInput-9FbhYoqV.js} +1 -1
- package/storybook-static/assets/{DateInput-CuYe4WXO.js → DateInput-Dm6Kiwka.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-C4ZaIPUG.js → DateInput.stories-CPAnx1Ii.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CbDK9t1J.js → DateRangePresetSelect-6l9Q7na9.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Cg6yPY0K.js → DateRangePresetSelect-CyxvE8Px.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-DPWUHjXu.js → DateRangePresetSelect.stories-UZ8CMuwl.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DkGsEVRD.js → DeprecatedMultiSelect-C04-2wDB.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DCReLsN-.js → DeprecatedMultiSelect-CySF9Hqp.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect.stories-tbYFDSML.js → DeprecatedMultiSelect.stories-FANxJnL0.js} +1 -1
- package/storybook-static/assets/{Detail-CtVpK6xU.js → Detail-CLPDP9b0.js} +1 -1
- package/storybook-static/assets/{Detail.stories-zAQfXGuT.js → Detail.stories-BmBFOXYz.js} +1 -1
- package/storybook-static/assets/{Dialog-JetMtpYt.js → Dialog-Co-EPLF-.js} +1 -1
- package/storybook-static/assets/{Dialog-B9ltl4hS.js → Dialog-Pzgcq_7r.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-tJymN3yq.js → Dialog.stories-B4DitG-A.js} +1 -1
- package/storybook-static/assets/{Disclosure-j-RCrVFs.js → Disclosure-Bt0yvf3r.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-4Jj2XNlo.js → Disclosure.stories-Bx4Z3eyR.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-CM7GlGI4.js → DisclosureGroup-CMheYvQ6.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DevtpZi5.js → DocsRenderer-JROSPFPF-B4cQpl4D.js} +1 -1
- package/storybook-static/assets/{DropZone-CPrhOtX-.js → DropZone-D0j1N6Cy.js} +1 -1
- package/storybook-static/assets/{DropZone-Bwo7NG5D.js → DropZone-N4HTfImG.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-VyNhIaxw.js → DropZone.stories-CPHCbKF-.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DMWZzFK1.js → DropdownMenu-Bf0k8HDo.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-DmKB3xVB.js → ExpandableActionPanel-QyKVmfxd.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Kh_OSEIl.js → ExpandableActionPanel.stories-BmA0hkNv.js} +1 -1
- package/storybook-static/assets/{Flex-BZKhuaao.js → Flex-7J7Ai0St.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CrHxjVCH.js → Flex.stories-DTJoxIVr.js} +1 -1
- package/storybook-static/assets/{FlexContainer-DGc37vCr.js → FlexContainer-CeCwnfbr.js} +1 -1
- package/storybook-static/assets/{FlexItem-DYv72TvP.js → FlexItem-D4epTRUG.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-Bd3b1U8c.js → FloatingPopover-4lCnQQo9.js} +1 -1
- package/storybook-static/assets/{FloatingWindows.stories-Cs_i092m.js → FloatingWindows.stories-BziZWCR7.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-SClhK1-d.js +15 -0
- package/storybook-static/assets/{Grid-DUcSdqsI.js → Grid-BEn16yj_.js} +1 -1
- package/storybook-static/assets/{Grid-DIKudfVu.js → Grid-Bv9iz3Ru.js} +1 -1
- package/storybook-static/assets/{Grid.stories-sZUaIp7v.js → Grid.stories-DCcd1XpQ.js} +1 -1
- package/storybook-static/assets/{GridContainer-C5r-VTTG.js → GridContainer-tbwtNWmU.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Bk3SF90a.js → ImageCropper.stories-Cj7_L3px.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CM-YetP0.js → ImageRenderer-B8sjaCxb.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-CMqKyVuX.js → ImageRenderer.stories-BjjI8Xl3.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-9IjWDUev.js → ImageView.stories-DSQT9rOC.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D-Zzvzh3.js → ImageViewer.stories-BwSjtNZu.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-BRWmVnG3.js → ImageViewerRuntime-BYsmm3rq.js} +1 -1
- package/storybook-static/assets/{Input-BaEhNNL0.js → Input-A2NM7h5s.js} +1 -1
- package/storybook-static/assets/{Input-YuUUu0DD.js → Input-DFpaY5iR.js} +1 -1
- package/storybook-static/assets/{Input.stories-CoJY4vR8.js → Input.stories-Dr3bILG0.js} +1 -1
- package/storybook-static/assets/{InputDateTime-CPlDTMTI.js → InputDateTime-B1HZuWxu.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DaOA4pFM.js → InputDateTime.stories-BRgylAlk.js} +1 -1
- package/storybook-static/assets/{InputFile-7PMO3B4Q.js → InputFile-BiYYtArL.js} +1 -1
- package/storybook-static/assets/{InputFile-D2HPvbt_.js → InputFile-DJZa1zb6.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CD4sJtXF.js → InputFile.stories-fGygLQ4u.js} +1 -1
- package/storybook-static/assets/{InputFiles-DwgBtqPe.js → InputFiles-BhE9kv5d.js} +1 -1
- package/storybook-static/assets/{InputFiles-DSOs_hpc.js → InputFiles-Dhx7VEsV.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-B2zPOUXW.js → InputFiles.stories-Dr4Qonyz.js} +1 -1
- package/storybook-static/assets/{InputFilesList-DWtH6HFC.js → InputFilesList-Cv2Gpuuc.js} +1 -1
- package/storybook-static/assets/{InputImage-Cke0I8XV.js → InputImage-CcGsKNGs.js} +1 -1
- package/storybook-static/assets/{InputImage-CnTU-bKF.js → InputImage-CsX9WLK_.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CadyFqUh.js → InputImage.stories-DBXKFyN8.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-cNgymLXT.js → InteractiveComponents-o5dGoBer.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-c5kIdj-d.js → InteractiveComponents.stories-CbpCs1ke.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-u5tv4tmF.js → LayoutPicker-BTV50163.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BydBdeCh.js → LayoutPicker-wQBp2vRv.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-ZcTgJxX5.js → LayoutPicker.stories-BA9v21Xx.js} +1 -1
- package/storybook-static/assets/Lexical.prod-DSYr9I3p.js +11 -0
- package/storybook-static/assets/{Listbox-CaBDvhDA.js → Listbox-CiYd52jg.js} +1 -1
- package/storybook-static/assets/{Listbox-CzmfAAEG.js → Listbox-RA3seYue.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-B_tFWmxp.js → Listbox.stories-DFPgEF8r.js} +1 -1
- package/storybook-static/assets/{NoData-CRi9NzcI.js → LoadingMessage-Ce0vqRgG.js} +1 -1
- package/storybook-static/assets/{Modal-DIJuHLSp.js → Modal-BQsAioCj.js} +1 -1
- package/storybook-static/assets/{Modal-CIptTLdh.js → Modal-BpU6G6JZ.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BAh1Lzf0.js → Modal.stories-CQrrk4EW.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DH2lt3jw.js → ModalManagerProvider-CoqdrSRD.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CbcU2Cam.js → MultiSelect-CU9zjw_p.js} +1 -1
- package/storybook-static/assets/{MultiSelect-OPkS-VFp.js → MultiSelect-CZNPmVvS.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-jghnBwe0.js → MultiSelect.stories-DFz-EHdG.js} +1 -1
- package/storybook-static/assets/{MultiSelectCore-AgK9lN-8.js → MultiSelectCore-Cvyz709z.js} +1 -1
- package/storybook-static/assets/NoData-Db8STACh.js +1 -0
- package/storybook-static/assets/{NotificationsHost-C8sCDEzY.js → NotificationsHost-BfICsokh.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BxpWtMHl.js → NotificationsHost.stories-DlihTcqk.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-Cjptiw3k.js → ODataMultiSelect-bFKNwfVi.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-B-tBcHkU.js → ODataMultiSelect.stories-dSgAmYNP.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BdVlf2WW.js → ODataSelect-B-VxiKqe.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DZv8DgW4.js → ODataSelect.stories-IrICK-VV.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-B83uLKnT.js → ODataTreeMultiSelect-1-ZKOoT5.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-k92VjXYz.js → ODataTreeMultiSelect.stories-Dj2gz4OX.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CkZeBBoA.js → ODataTreeSelect-C03yKX3Q.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-COweaWEr.js → ODataTreeSelect.stories-BaWPoCj8.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-dD9RSWvg.js → OneStepScroller-C1e40EsR.js} +1 -1
- package/storybook-static/assets/{Option-lTkoUcHa.js → Option-DkhmepGt.js} +1 -1
- package/storybook-static/assets/{OptionButton-Bt6YtqRZ.js → OptionButton-CaOcFLRc.js} +1 -1
- package/storybook-static/assets/{OptionContent-C7Zoef1L.js → OptionContent-C2VjIa7E.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-xpO-es_t.js → OptionContentContainer-D9gbmo8X.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DkGZmPFu.js → PeriodSelect-CKHsqr9Q.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CmGjITS0.js → PeriodSelect-DyuBxEQO.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-BxkZen1s.js → PeriodSelect.stories-Clvkah1Y.js} +1 -1
- package/storybook-static/assets/{PickerField-vwGcXNU3.js → PickerField-BeafhNsw.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BVO2pwu2.js → PickerTriggerActions-DiC3sf79.js} +1 -1
- package/storybook-static/assets/{Popover-DU0wD6MT.js → Popover-CTWgpldX.js} +1 -1
- package/storybook-static/assets/{Popover-PRWJVARx.js → Popover-Cic2guk_.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CXKDCIfT.js → Popover.stories-BN8W4Ioo.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-B1oR9Z-A.js → PresetRangeDateInput-BlwDGFlO.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DUcxF5lh.js → PresetRangeDateInput-Cw-UACKj.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CAPHV6_P.js → PresetRangeDateInput.stories-BW4A9N6I.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Hrow5Qbz.js → PresetSelect-BROMDIaD.js} +1 -1
- package/storybook-static/assets/{README-CHgqsGMV.js → README--dlFTbfU.js} +1 -1
- package/storybook-static/assets/{README-w3_FegOo.js → README-0oBzUW7p.js} +1 -1
- package/storybook-static/assets/{README-CF5B-uBm.js → README-3_ON5xt9.js} +1 -1
- package/storybook-static/assets/{README-FJ4JNfan.js → README-B2Q8nqgC.js} +1 -1
- package/storybook-static/assets/{README-JqCoy91R.js → README-B2a17RtT.js} +1 -1
- package/storybook-static/assets/{README-Cb_U_ZYK.js → README-B2o_mu2p.js} +1 -1
- package/storybook-static/assets/{README-MUzkojYd.js → README-B4UtPkAG.js} +1 -1
- package/storybook-static/assets/{README-DjM1av8U.js → README-BC-mtx0Z.js} +1 -1
- package/storybook-static/assets/{README-mq6pyk4G.js → README-BEo-chiK.js} +1 -1
- package/storybook-static/assets/{README-CxBqJjI3.js → README-BKgDrLYy.js} +1 -1
- package/storybook-static/assets/{README-ctVjdbq7.js → README-BU-hpYkT.js} +1 -1
- package/storybook-static/assets/{README-BwSjP1rm.js → README-BZO4LN8h.js} +1 -1
- package/storybook-static/assets/{README-BCXjh3I1.js → README-Bt7qMnXG.js} +1 -1
- package/storybook-static/assets/{README-CDq7upsw.js → README-BzXKbqC2.js} +1 -1
- package/storybook-static/assets/{README-Xu3cmYZg.js → README-C0oFjEzk.js} +1 -1
- package/storybook-static/assets/{README-DmT1wyUb.js → README-C4DwwmPx.js} +1 -1
- package/storybook-static/assets/{README-C_hI3IVn.js → README-CC7qsfLO.js} +1 -1
- package/storybook-static/assets/{README-SkcZXYo1.js → README-CCA-VcWp.js} +1 -1
- package/storybook-static/assets/{README-D_iA9J4Q.js → README-CM3GEer1.js} +1 -1
- package/storybook-static/assets/{README-BCBBtU0T.js → README-CMm_WVI_.js} +1 -1
- package/storybook-static/assets/{README-BJXCE3us.js → README-Ch0dHOCi.js} +1 -1
- package/storybook-static/assets/{README-CRfg4Opx.js → README-CovA1JtH.js} +1 -1
- package/storybook-static/assets/{README-DA8e0atn.js → README-CsAmAsnQ.js} +1 -1
- package/storybook-static/assets/{README-DnpmMCNN.js → README-CsgpoZpo.js} +1 -1
- package/storybook-static/assets/{README-DYjyXvbd.js → README-CyTthj47.js} +1 -1
- package/storybook-static/assets/{README-O1ww7U1S.js → README-D42tlbcC.js} +1 -1
- package/storybook-static/assets/{README-CRk_ElRL.js → README-D7e1q280.js} +1 -1
- package/storybook-static/assets/{README-COzEPNJ8.js → README-DEIwHKH_.js} +1 -1
- package/storybook-static/assets/{README-DUVORqie.js → README-DJXuAagO.js} +1 -1
- package/storybook-static/assets/{README-CGalXaw7.js → README-DO98xR7D.js} +1 -1
- package/storybook-static/assets/{README-CdDd6nD8.js → README-DOCP85Ok.js} +1 -1
- package/storybook-static/assets/{README-De02nG6s.js → README-DV0qQm_q.js} +1 -1
- package/storybook-static/assets/{README-AWtoYOeO.js → README-D_wqIsQU.js} +1 -1
- package/storybook-static/assets/{README-BPOSX1IH.js → README-Da2MtxkC.js} +1 -1
- package/storybook-static/assets/{README-o-a96Aib.js → README-DgnwOBAf.js} +1 -1
- package/storybook-static/assets/{README-CDYORt73.js → README-Dh-aESek.js} +1 -1
- package/storybook-static/assets/{README-BLog3wnj.js → README-Dh3cmlxY.js} +1 -1
- package/storybook-static/assets/{README-CF79JAmm.js → README-DkqWljOh.js} +1 -1
- package/storybook-static/assets/{README-BEUQd7JO.js → README-Dns7UYFR.js} +1 -1
- package/storybook-static/assets/{README-bcnh89ek.js → README-Dp9qT5k5.js} +1 -1
- package/storybook-static/assets/{README-C8-H1dVZ.js → README-Dq_L-Ug6.js} +1 -1
- package/storybook-static/assets/{README-CTbRRHIT.js → README-DxnLeJiR.js} +1 -1
- package/storybook-static/assets/{README-Cu3r4RYC.js → README-JNaV5buf.js} +1 -1
- package/storybook-static/assets/{README-BDdhvdKa.js → README-Sg5qacmO.js} +1 -1
- package/storybook-static/assets/{README-BB_tSzAG.js → README-Y_9dubMU.js} +1 -1
- package/storybook-static/assets/{README-f5UPnPkY.js → README-Zi-FFn8W.js} +1 -1
- package/storybook-static/assets/{README-UfCsOg0n.js → README-g61K1aLN.js} +1 -1
- package/storybook-static/assets/{README-D0EguYwa.js → README-gW1fz6Ad.js} +1 -1
- package/storybook-static/assets/{README-CbCzYjzO.js → README-ivZpRido.js} +1 -1
- package/storybook-static/assets/{README-zelg96nd.js → README-kq33WRAi.js} +1 -1
- package/storybook-static/assets/{README-JrppLPED.js → README-lXA9AEv5.js} +1 -1
- package/storybook-static/assets/{README-BIHT1kGT.js → README-trL-e_Hw.js} +1 -1
- package/storybook-static/assets/{README-diVWU6bQ.js → README-yOf-BvTs.js} +1 -1
- package/storybook-static/assets/{RadioButton-BztQMLNR.js → RadioButton-Bc-qW8X4.js} +1 -1
- package/storybook-static/assets/{RadioButton-DUOPHyRt.js → RadioButton-dLi6i_d_.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BOE5cGej.js → RadioButton.stories-fyW8-L85.js} +1 -1
- package/storybook-static/assets/RadioGroup-K_pYzh4S.js +1 -0
- package/storybook-static/assets/{RadioGroup-QICEWbjz.js → RadioGroup-hx5JHhIo.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-f2qU7hhM.js → RadioGroup.stories-DkJM4C8g.js} +1 -1
- package/storybook-static/assets/{ResponsiveLayoutPreview-BWBLsr8u.js → ResponsiveLayoutPreview-2trckzJQ.js} +1 -1
- package/storybook-static/assets/{Scrollable-CAnjXb6_.js → Scrollable-BKrnU0ak.js} +1 -1
- package/storybook-static/assets/{Scrollable-Cc641kuG.js → Scrollable-D4W1DFQg.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-ZQT-1f1f.js → Scrollable.stories-D27cJCFP.js} +1 -1
- package/storybook-static/assets/{Select-D6RLm9D5.js → Select-BdSn2R7K.js} +1 -1
- package/storybook-static/assets/{Select-BeoH_3V4.js → Select-DEZyRp-R.js} +1 -1
- package/storybook-static/assets/{Select.stories-DI6pVDzi.js → Select.stories-D1Z2CcxZ.js} +1 -1
- package/storybook-static/assets/{Separator-tkZoR8Ft.js → Separator-5i4GBBEP.js} +1 -1
- package/storybook-static/assets/{Separator-De9vEg4j.js → Separator-BgRJ7Ocd.js} +1 -1
- package/storybook-static/assets/{Separator.stories-CGZrsdLJ.js → Separator.stories-CgSiKmhl.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BWgkYLIe.js → SerializableSelect-DyFu3F0w.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-BfGg_SmN.js → SerializableSelect.stories-DGeUH4C-.js} +1 -1
- package/storybook-static/assets/{ShimmerText-D1ygdKrh.js → ShimmerText-Dp8aRJ4I.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-D5AB85Hj.js → ShimmerText.stories-Cf25PNCz.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Bf2RpSbC.js → SingleDateTimeInput-Bzm87a3Z.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-C2O-fXgE.js → SingleDateTimeInput-DVFOi4lM.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BUbSA1UY.js → SingleDateTimeInput.stories-ChMKxw-w.js} +1 -1
- package/storybook-static/assets/{Slider-CVPKS3XB.js → Slider-CyZ-Su8l.js} +1 -1
- package/storybook-static/assets/{Slider-BhfM7XZ9.js → Slider-DD9J2Qhk.js} +1 -1
- package/storybook-static/assets/{Slider.stories-C6ZUJc4b.js → Slider.stories-B8wpT9DE.js} +1 -1
- package/storybook-static/assets/{SliderInput-MMUGLDDl.js → SliderInput-CZ5RGazl.js} +1 -1
- package/storybook-static/assets/{SliderInput-PwHeDeo2.js → SliderInput-DI2fPYZP.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-zBDRonPh.js → SliderInput.stories-kV5nIvmp.js} +1 -1
- package/storybook-static/assets/{Sortable-BKNLJGIe.js → Sortable-BRJshDsd.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-CLY263mj.js → Sortable.stories-DWdCANF3.js} +1 -1
- package/storybook-static/assets/{Splitter-PyZco_V_.js → Splitter-amimlmxB.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CY3Itq_G.js → Splitter.stories-Bp8FI1V5.js} +1 -1
- package/storybook-static/assets/{StateSelect-BlEIRWer.js → StateSelect-CEg--oWR.js} +1 -1
- package/storybook-static/assets/{StateSelect-DfUif3cG.js → StateSelect-U7CVxa71.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-ClSYkdz8.js → StateSelect.stories-DO2hudAT.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-CL-WMBHT.js → StatusIndicator-BgS55kfh.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-BbpEocDe.js → StatusIndicator.stories-BThF4RAA.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-0r9TfflS.js → StringToggle.stories-DGpM8fWe.js} +1 -1
- package/storybook-static/assets/{Switch-HAWn3D1c.js → Switch-DuR6uVds.js} +1 -1
- package/storybook-static/assets/{Switch-AoVSoc9P.js → Switch-M0xvOjjd.js} +1 -1
- package/storybook-static/assets/{Switch.stories-D1VJIWsC.js → Switch.stories-4k1xDlbq.js} +1 -1
- package/storybook-static/assets/{Table-CyX8frK4.js → Table-BmYczjli.js} +1 -1
- package/storybook-static/assets/{Table.stories-DoGpFMZB.js → Table.stories-c1Yu2DYz.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-Mh6q2awx.js → TableEditor.stories-hIvit7LX.js} +1 -1
- package/storybook-static/assets/{Tabs-BZfNXmy0.js → Tabs-1AzTozGX.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-C9L4pJDb.js → Tabs.stories-DUQx0Ezh.js} +1 -1
- package/storybook-static/assets/TabsBox-DGdo-Cb1.js +2 -0
- package/storybook-static/assets/{TagInput-CPB6lb2J.js → TagInput-qylU7_PQ.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-CT6B8CVV.js → TagInput.stories-Bs78VRGv.js} +1 -1
- package/storybook-static/assets/{Text-AbSWZQO3.js → Text-C8ptoppM.js} +1 -1
- package/storybook-static/assets/TextEditorLexical.stories-DWCIfqOj.js +54 -0
- package/storybook-static/assets/TextEditorLexicalClient-B17un2t_.js +30 -0
- package/storybook-static/assets/TextEditorLexicalClient-CLf0OiWB.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer-DRQG2UON.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer.stories-IP2pavj0.js +66 -0
- package/storybook-static/assets/{Textarea-Bz9O1y1I.js → Textarea-Cpnrb2o_.js} +1 -1
- package/storybook-static/assets/{Textarea-BY51Li7J.js → Textarea-nCjyO4i5.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CJbv3jrK.js → Textarea.stories-BNkapgda.js} +1 -1
- package/storybook-static/assets/{TimePanel-Wn5lUiwx.js → TimePanel-BQK5NbxR.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dF5kTdp1.js → TimePanel.stories-DYq--6bF.js} +1 -1
- package/storybook-static/assets/{Toggle-CUO99pvo.js → Toggle-0Y7W-fPi.js} +1 -1
- package/storybook-static/assets/{Toggle-BpDn9f6k.js → Toggle-DVuWIK21.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-T1Hk_etn.js → Toggle.stories-DYZE2fC3.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-bqQExCm8.js → TreeMultiSelect-BM3xCVHR.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DEsECkRj.js → TreeMultiSelect-D7GJiBAt.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-DyK7bWZu.js → TreeMultiSelect.stories-D2JpEs59.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BCbV37dL.js → TreePickerBase-BCpA1kfG.js} +2 -2
- package/storybook-static/assets/{TreeSelect-CTvlmF81.js → TreeSelect-BXBL2lAD.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Cepr58wS.js → TreeSelect-D5oAYLRd.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-RVPMBCd_.js → TreeSelect.stories-emFXypZX.js} +1 -1
- package/storybook-static/assets/{TreeTable-DznOmuAD.js → TreeTable-CEyrFWSm.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-Lx2ImfgC.js → TreeTable.stories-DDcnv5XB.js} +1 -1
- package/storybook-static/assets/{blocks-u0CCD6I1.js → blocks-DvVybOVR.js} +4 -4
- package/storybook-static/assets/{check-CHvYWZD5.js → check-YfnFIyMh.js} +1 -1
- package/storybook-static/assets/{chevron-down-DqHAghNU.js → chevron-down-BjxDxv4C.js} +1 -1
- package/storybook-static/assets/{chevron-left-Bj7vIyg-.js → chevron-left-C0xgKKWw.js} +1 -1
- package/storybook-static/assets/{chevron-right-BUqG0v39.js → chevron-right-Bo0n7sEl.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-BSczDjJT.js → chunk-W22LQPXL-r7A3h_Tz.js} +1 -1
- package/storybook-static/assets/{circle-alert-DXUFM6uc.js → circle-alert-Dl_8Z1un.js} +1 -1
- package/storybook-static/assets/{circle-check-0x9vHUU_.js → circle-check-CS9puXbe.js} +1 -1
- package/storybook-static/assets/{contextMenu-D8PjjiwD.js → contextMenu-C7If_pOc.js} +1 -1
- package/storybook-static/assets/{download-15Eb3eUj.js → download-BWZFjl62.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CypKyrM4.js → floating-ui.react-DoLsHxAF.js} +1 -1
- package/storybook-static/assets/{formatMultiSelectOptionCount-BxXwE0wd.js → formatMultiSelectOptionCount-Cb7rzikh.js} +1 -1
- package/storybook-static/assets/{formatters-DVE1YVNQ-CJCkXjuI.js → formatters-DVE1YVNQ-CimVV-di.js} +1 -1
- package/storybook-static/assets/{foundationApi-dmPNotab.js → foundationApi-DUDdWpQ2.js} +1 -1
- package/storybook-static/assets/{foundationLib-CyrgF87o.js → foundationLib-C0aoelQA.js} +1 -1
- package/storybook-static/assets/hooks-KqAveAk8.js +5 -0
- package/storybook-static/assets/{iframe-BmGorvhi.js → iframe-BwMqUCxF.js} +4 -4
- package/storybook-static/assets/iframe-CQgVo28z.js +1 -0
- package/storybook-static/assets/{info-HMSnCOw2.js → info-BzoIh38o.js} +1 -1
- package/storybook-static/assets/{isRecord-DXDTW-jA-DtM9YD3V.js → isRecord-DXDTW-jA-CMenzszF.js} +1 -1
- package/storybook-static/assets/odata-B4ZS5oGx.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-DiC-gXoK.js → odataStoryFixtures-BoXfGt8L.js} +1 -1
- package/storybook-static/assets/{react-BLxZ0fqY.js → react-BxTMipfI.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Obk3FkLO.js → refresh-cw-DZHdlgJG.js} +1 -1
- package/storybook-static/assets/{settings-2-BQ2LYeiA.js → settings-2-CSUUgi_0.js} +1 -1
- package/storybook-static/assets/sortable-Bikh9uZC.js +1 -0
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-JUCJEf5U.js → syntaxhighlighter-QEQV7K2Y-BvV0CW9d.js} +1 -1
- package/storybook-static/assets/{trash-2-CzXfDl_F.js → trash-2-Csx302gq.js} +1 -1
- package/storybook-static/assets/{triangle-alert-Ww2Tuzxk.js → triangle-alert-CA_CSo3b.js} +1 -1
- package/storybook-static/assets/types-U_TJ2tHU.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-DIZSERuU.js → useODataSelectBase-Dmlavp_v.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DLgIiNMG.js → useODataTreeData-W3o26svk.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BZ1Hrn2J.js → usePickerQuery-IBbvSDWi.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-BIarg6M4.js → usePickerTriggerController-Cy-RrU3A.js} +1 -1
- package/storybook-static/assets/{utils-tg3ibbzi.js → utils-DiA8FLax.js} +1 -1
- package/storybook-static/assets/validators-CLNEY_Fa.js +1 -0
- package/storybook-static/assets/{x-BmlmEU-a.js → x-CP7phAx6.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/TextEditorLexicalClient-Cj6yjCGm.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-CdlWquoj.js +0 -15
- package/storybook-static/assets/RadioGroup-CDqbnv4J.js +0 -1
- package/storybook-static/assets/TabsBox-qRCIBtqi.js +0 -2
- package/storybook-static/assets/hooks-DM8_3IU2.js +0 -5
- package/storybook-static/assets/iframe-WuXBbC_P.js +0 -1
- package/storybook-static/assets/odata-DLogt0PY.js +0 -1
- package/storybook-static/assets/sortable-BrLDYUp8.js +0 -1
- package/storybook-static/assets/validators-D82aYLRK.js +0 -1
- /package/storybook-static/assets/{NoData-C7KqaHUh.css → LoadingMessage-C7KqaHUh.css} +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{i as r,r as i}from"./isRecord-DXDTW-jA-CMenzszF.js";import{a,i as o}from"./utils-DiA8FLax.js";import{t as s}from"./validators-CLNEY_Fa.js";import{an as c}from"./Lexical.prod-DSYr9I3p.js";function l(e){return{textAlign:e.alignment||void 0,marginInlineStart:e.indent?`min(${e.indent} * var(--space-lg), 25%)`:void 0}}function ee(e){if(typeof e!=`string`||e.length===0||/[\s\u0000-\u001f\u007f]/u.test(e)||!URL.canParse(e))return null;let t=new URL(e);return t.protocol!==`http:`&&t.protocol!==`https:`||!t.hostname||t.username||t.password?null:t.href}function u(e){if(!r(e)||!i(e))return null;let t=Reflect.ownKeys(e);if(t.length>C.length)return null;for(let n of t){if(typeof n!=`string`)return null;let t=Object.getOwnPropertyDescriptor(e,n);if(!t||!t.enumerable||!(`value`in t))return null}return e}function d(e,t){return Object.keys(e).every(e=>t.includes(e))}function f(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0&&e<=b&&(e&~b)===0}function p(e,t){return typeof e==`string`&&(t.textUnits+=e.length,t.textUnits<=y)}function m(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function h(e){let t=e.direction,n=e.format,r=e.indent;return t!==null&&t!==`ltr`&&t!==`rtl`||n!==``&&n!==`left`&&n!==`right`&&n!==`center`&&n!==`justify`&&n!==`start`&&n!==`end`||typeof r!=`number`||!Number.isSafeInteger(r)||r<0||r>ce||e.textFormat!==void 0&&!f(e.textFormat)||e.textStyle!==void 0&&e.textStyle!==``?null:{direction:t,alignment:n,indent:r}}function g(e){return e.type===`text`||e.type===`linebreak`||e.type===`link`}function te(e){return e.type===`text`||e.type===`linebreak`}function ne(e){return e.type===`paragraph`||e.type===`quote`||e.type===`heading`||e.type===`list`}function re(e){return e.type===`listitem`}function ie(e){return g(e)||e.type===`list`}function _(e,t,n,r){if(!Array.isArray(e)||Object.getPrototypeOf(e)!==Array.prototype||e.length>v||Reflect.ownKeys(e).length!==e.length+1)return null;let i=[];for(let a=0;a<e.length;a++){let o=Object.getOwnPropertyDescriptor(e,a);if(!o||!(`value`in o))return null;let s=ae(o.value,t,n);if(!s||!r(s))return null;i.push(s)}return i}function ae(e,t,n){if(++t.nodes>v||n>se)return null;let r=u(e);if(!r||r.version!==1)return null;if(r.type===`text`)return!d(r,[`type`,`version`,`detail`,`format`,`mode`,`style`,`text`])||r.detail!==0||r.mode!==`normal`||r.style!==``||!f(r.format)||!p(r.text,t)?null:{type:`text`,text:r.text,format:r.format};if(r.type===`linebreak`)return d(r,[`type`,`version`])?{type:`linebreak`}:null;let i=h(r);if(!i)return null;switch(r.type){case`paragraph`:case`quote`:{if(!d(r,x))return null;let e=_(r.children,t,n+1,g);return e?{...i,type:r.type,children:e}:null}case`heading`:{if(!d(r,[...x,`tag`]))return null;let e=r.tag;if(e!==`h1`&&e!==`h2`&&e!==`h3`&&e!==`h4`&&e!==`h5`&&e!==`h6`)return null;let a=_(r.children,t,n+1,g);return a?{...i,type:`heading`,tag:e,children:a}:null}case`list`:{if(!d(r,[...x,`listType`,`tag`,`start`])||!m(r.start))return null;let e=r.listType;if(!(e===`bullet`&&r.tag===`ul`||e===`number`&&r.tag===`ol`))return null;let a=_(r.children,t,n+1,re);return a?{...i,type:`list`,listType:e,start:r.start,children:a}:null}case`listitem`:{if(!d(r,[...x,`value`,`checked`])||!m(r.value)||r.checked!==void 0)return null;let e=_(r.children,t,n+1,ie);return e?{...i,type:`listitem`,value:r.value,children:e}:null}case`link`:case`accessible-link`:{if(!d(r,r.type===`link`?S:C)||!p(r.url,t))return null;let e=ee(r.url);if(!e||r.target!==null&&r.target!==void 0&&r.target!==`_self`&&r.target!==`_blank`||r.rel!==void 0&&r.rel!==null&&!p(r.rel,t)||r.title!==void 0&&r.title!==null&&!p(r.title,t)||r.type===`accessible-link`&&(r.qrCode!==void 0&&r.qrCode!==!1||r.add!==void 0&&r.add!==null||r.text!==void 0&&r.text!==null&&!p(r.text,t)||r.ariaLabel!==void 0&&r.ariaLabel!==null&&!p(r.ariaLabel,t)))return null;let a=_(r.children,t,n+1,te);return a?{...i,type:`link`,url:e,target:r.target===`_blank`?`_blank`:`_self`,ariaLabel:typeof r.ariaLabel==`string`?r.ariaLabel:null,title:typeof r.title==`string`?r.title:null,children:a}:null}default:return null}}function oe(e){let t=u(e);if(!t||!d(t,[`format`,`version`,`editorState`])||t.format!==`lexical`||t.version!==1)return w;let n=u(t.editorState);if(!n||!d(n,[`root`]))return w;let r=u(n.root);if(!r||!d(r,x)||r.type!==`root`||r.version!==1)return w;let i=h(r);if(!i)return w;let a=_(r.children,{nodes:1,textUnits:0},1,ne);return a?{status:`valid`,element:i,children:a}:w}var v,se,y,ce,b,x,S,C,w;function le(){return(le=e((()=>{s(),c(),v=1e4,se=32,y=1e6,ce=32,b=255,x=[`type`,`version`,`children`,`direction`,`format`,`indent`,`textFormat`,`textStyle`],S=[...x,`url`,`target`,`rel`,`title`],C=[...S,`ariaLabel`,`qrCode`,`add`,`text`],w={status:`invalid`}})))()}var ue,T;function E(){return(E=e((()=>{ue=`IFCV0m`,T={viewer:ue}})))()}function de({node:e}){let t=e.text;return e.format&1&&(t=(0,D.jsx)(`strong`,{children:t})),e.format&2&&(t=(0,D.jsx)(`em`,{children:t})),e.format&8&&(t=(0,D.jsx)(`u`,{children:t})),e.format&4&&(t=(0,D.jsx)(`s`,{children:t})),e.format&16&&(t=(0,D.jsx)(`code`,{children:t})),e.format&128&&(t=(0,D.jsx)(`mark`,{children:t})),e.format&32&&(t=(0,D.jsx)(`sub`,{children:t})),e.format&64&&(t=(0,D.jsx)(`sup`,{children:t})),t}var D;function O(){return(O=e((()=>{c(),D=n()})))()}function k({node:e}){if(e.type===`text`)return(0,A.jsx)(de,{node:e});if(e.type===`linebreak`)return(0,A.jsx)(`br`,{});let t=e.children.map((e,t)=>(0,A.jsx)(k,{node:e},t)),n={dir:e.direction??void 0,style:l(e)};switch(e.type){case`paragraph`:return(0,A.jsx)(`p`,{...n,children:t.length?t:(0,A.jsx)(`br`,{})});case`quote`:return(0,A.jsx)(`blockquote`,{...n,children:t});case`heading`:{let r=e.tag;return(0,A.jsx)(r,{...n,children:t})}case`link`:return(0,A.jsx)(`a`,{...n,href:e.url,target:e.target,rel:e.target===`_blank`?`noopener noreferrer`:void 0,"aria-label":e.ariaLabel??void 0,title:e.title??void 0,children:t});case`list`:return e.listType===`number`?(0,A.jsx)(`ol`,{...n,start:e.start,children:t}):(0,A.jsx)(`ul`,{...n,children:t});case`listitem`:return(0,A.jsx)(`li`,{...n,value:e.value,"data-nested-list":e.children.length===1&&e.children[0]?.type===`list`?`true`:void 0,children:t})}}var A;function j(){return(j=e((()=>{O(),A=n(),k.__docgenInfo={description:`Все tags и DOM props заданы renderer: исходные attributes не распространяются в JSX.`,methods:[],displayName:`TextEditorViewerNode`}})))()}function M({raw:e,className:t,fallback:n=`Содержимое недоступно для отображения.`}){let r=(0,N.useMemo)(()=>oe(e),[e]);return r.status===`invalid`?(0,P.jsx)(`div`,{className:a(T.viewer,t),"data-text-editor-viewer":`unsupported`,children:n}):(0,P.jsx)(`div`,{className:a(T.viewer,t),"data-text-editor-viewer":`ready`,dir:r.element.direction??void 0,style:l(r.element),children:r.children.map((e,t)=>(0,P.jsx)(k,{node:e},t))})}var N,P;function F(){return(F=e((()=>{N=t(),o(),le(),E(),j(),P=n(),M.__docgenInfo={description:`Читает immutable raw без editor instance; SSR и браузер используют одну безопасную проекцию.`,methods:[],displayName:`TextEditorLexicalViewer`,props:{fallback:{defaultValue:{value:`"Содержимое недоступно для отображения."`,computed:!1},required:!1}}}})))()}var I,L;function R(){return(R=e((()=>{I=`-rhzJm`,L={narrow:I}})))()}function z(e,t=0){return{type:`text`,version:1,detail:0,format:t,mode:`normal`,style:``,text:e}}function B(e){return{format:`lexical`,version:1,editorState:{root:{...V,type:`root`,children:e}}}}var V,H,U,W,G,K,fe;function pe(){return(pe=e((()=>{c(),V={direction:null,format:``,indent:0,version:1},H=B([{...V,type:`heading`,tag:`h2`,children:[z(`Сохранённый документ`)]},{...V,type:`paragraph`,children:[z(`Обычный текст, `),z(`жирный`,1),z(`, `),z(`курсив`,2),z(`, `),z(`подчёркнутый`,8),z(` и `),z(`зачёркнутый`,4),z(`.`),{type:`linebreak`,version:1},z(`Код: `),z(`const answer = 42`,16),z(`. `),z(`Важная мысль выделена`,128),z(`. Индексы: H`),z(`2`,32),z(`O и x`),z(`2`,64),z(`.`),{type:`linebreak`,version:1},z(`Сочетание жирного, курсива и подчёркивания`,11)]},{...V,type:`quote`,children:[z(`Это просмотр сохранённого документа: ввод, курсор редактора и панель инструментов отсутствуют.`)]},{...V,type:`paragraph`,format:`right`,children:[z(`Выравнивание берётся только из поддерживаемого профиля.`)]}]),U=B([{...V,type:`heading`,tag:`h2`,children:[z(`Вложенность и нумерация`)]},{...V,type:`list`,listType:`number`,tag:`ol`,start:4,children:[{...V,type:`listitem`,value:4,children:[z(`Список начинается с четвёртого пункта.`)]},{...V,type:`listitem`,value:5,children:[{...V,type:`list`,listType:`bullet`,tag:`ul`,start:1,children:[{...V,type:`listitem`,value:1,children:[z(`Вложенный маркированный пункт.`)]},{...V,type:`listitem`,value:2,children:[{...V,type:`list`,listType:`number`,tag:`ol`,start:7,children:[{...V,type:`listitem`,value:7,children:[z(`Третий уровень: номер семь.`)]},{...V,type:`listitem`,value:9,children:[z(`Явный value сохраняет номер девять.`)]}]}]}]}]},{...V,type:`listitem`,value:8,children:[z(`Явный value возвращает внешний список к номеру восемь.`)]}]}]),W=B([{...V,type:`paragraph`,children:[z(`Абсолютная HTTPS-ссылка: `),{...V,type:`accessible-link`,url:`https://example.com/document`,target:`_blank`,rel:null,title:null,ariaLabel:`Пример документа — новая вкладка`,qrCode:!1,add:null,text:null,children:[z(`Пример документа`,1)]},z(`. При переходе откроется новая вкладка с защитным rel.`),{type:`linebreak`,version:1},z(`HTTP-ссылка в текущей вкладке: `),{...V,type:`accessible-link`,url:`http://example.com/reference`,target:`_self`,rel:null,title:null,ariaLabel:null,qrCode:!1,add:null,text:null,children:[z(`Справочный пример`)]}]}]),G=B([{...V,type:`heading`,tag:`h3`,children:[z(`Длинный текст в узкой области`)]},{...V,type:`paragraph`,children:[z(`Обычный текст переносится внутри доступной ширины без изменения сохранённых данных. `.repeat(6))]},{...V,type:`paragraph`,children:[z(`ОченьДлиннаяПоследовательностьБезПробелов`.repeat(8))]},{...V,type:`paragraph`,children:[z(`long_identifier_without_whitespace_`.repeat(6),16)]}]),K=B([{...V,type:`paragraph`,children:[z(`Этот фрагмент не должен появляться частично.`)]},{type:`unsupported-node`,version:1}]),fe=B([])})))()}var q,me,J,Y,X,Z,Q,$,he;function ge(){return(ge=e((()=>{F(),R(),pe(),q=n(),me={title:`Text/TextEditorLexicalViewer`,component:M,args:{raw:H},parameters:{atomicCanvas:!0,layout:`padded`,controls:{disable:!0},docs:{description:{component:`Просмотр immutable TextEditorLexicalRaw без создания редактора и без HTML injection. Сервер и браузер строят одно семантическое дерево. Неизвестный или небезопасный документ целиком заменяется fallback. Поддерживаемый профиль и ограничения находятся в src/text-editor/README.md. Компонент не проверяет права доступа и не заменяет валидацию записи приложения.`}}},argTypes:{raw:{description:`Сериализованный immutable snapshot. Для обновления передайте новый объект.`,control:!1},className:{description:`Класс корневого элемента, например для ограничения ширины области чтения.`,control:!1},fallback:{description:`Содержимое вместо всего неподдерживаемого документа; не используется для корректного пустого документа.`,control:!1}}},J={name:`Текст и все inline-форматы`},Y={name:`Вложенные списки и нумерация`,args:{raw:U},parameters:{docs:{description:{story:`Внешний список начинается с 4, вложенный — с 7. Явные value сохраняют номера 8 и 9; обёртки вложенных списков не создают дополнительных маркеров.`}}}},X={name:`HTTP(S) accessible-link`,args:{raw:W},parameters:{docs:{description:{story:`Две ссылки из сериализованного accessible-link. Рендер не загружает ресурсы и не выполняет переход; переход возможен только при активации ссылки пользователем. Для новой вкладки viewer выставляет noopener noreferrer.`}}}},Z={name:`Узкая область и длинные строки`,args:{raw:G,className:L.narrow},parameters:{docs:{description:{story:`Ширина ограничена областью consumer. Проверьте обычные абзацы, непрерывное слово и inline code на узком viewport в светлой и тёмной темах.`}}}},Q={name:`Явный fallback неизвестного документа`,args:{raw:K,fallback:(0,q.jsx)(`p`,{role:`status`,children:`Документ содержит неподдерживаемый узел. Частичное содержимое не отображается.`})},parameters:{docs:{description:{story:`Корректный первый абзац намеренно соседствует с неизвестным узлом: вместо частичного документа показывается только заданный fallback.`}}}},$={name:`Корректный пустой документ`,args:{raw:fe,fallback:(0,q.jsx)(`p`,{role:`status`,children:`Этот fallback не должен появиться для пустого документа.`})},parameters:{docs:{description:{story:`Пустой root допустим: viewer не создаёт текст-заглушку, не открывает editor и не показывает fallback.`}}}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
name: "Текст и все inline-форматы"
|
|
3
|
+
}`,...J.parameters?.docs?.source}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
|
|
4
|
+
name: "Вложенные списки и нумерация",
|
|
5
|
+
args: {
|
|
6
|
+
raw: nestedListsViewerStoryRaw
|
|
7
|
+
},
|
|
8
|
+
parameters: {
|
|
9
|
+
docs: {
|
|
10
|
+
description: {
|
|
11
|
+
story: "Внешний список начинается с 4, вложенный — с 7. Явные value сохраняют номера 8 и 9; обёртки вложенных списков не создают дополнительных маркеров."
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}`,...Y.parameters?.docs?.source}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
|
|
16
|
+
name: "HTTP(S) accessible-link",
|
|
17
|
+
args: {
|
|
18
|
+
raw: accessibleLinksViewerStoryRaw
|
|
19
|
+
},
|
|
20
|
+
parameters: {
|
|
21
|
+
docs: {
|
|
22
|
+
description: {
|
|
23
|
+
story: "Две ссылки из сериализованного accessible-link. Рендер не загружает ресурсы и не выполняет переход; переход возможен только при активации ссылки пользователем. Для новой вкладки viewer выставляет noopener noreferrer."
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}`,...X.parameters?.docs?.source}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
|
|
28
|
+
name: "Узкая область и длинные строки",
|
|
29
|
+
args: {
|
|
30
|
+
raw: narrowContentViewerStoryRaw,
|
|
31
|
+
className: styles.narrow
|
|
32
|
+
},
|
|
33
|
+
parameters: {
|
|
34
|
+
docs: {
|
|
35
|
+
description: {
|
|
36
|
+
story: "Ширина ограничена областью consumer. Проверьте обычные абзацы, непрерывное слово и inline code на узком viewport в светлой и тёмной темах."
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}`,...Z.parameters?.docs?.source}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
|
|
41
|
+
name: "Явный fallback неизвестного документа",
|
|
42
|
+
args: {
|
|
43
|
+
raw: unsupportedViewerStoryRaw,
|
|
44
|
+
fallback: <p role="status">Документ содержит неподдерживаемый узел. Частичное содержимое не отображается.</p>
|
|
45
|
+
},
|
|
46
|
+
parameters: {
|
|
47
|
+
docs: {
|
|
48
|
+
description: {
|
|
49
|
+
story: "Корректный первый абзац намеренно соседствует с неизвестным узлом: вместо частичного документа показывается только заданный fallback."
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}`,...Q.parameters?.docs?.source}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
|
|
54
|
+
name: "Корректный пустой документ",
|
|
55
|
+
args: {
|
|
56
|
+
raw: emptyViewerStoryRaw,
|
|
57
|
+
fallback: <p role="status">Этот fallback не должен появиться для пустого документа.</p>
|
|
58
|
+
},
|
|
59
|
+
parameters: {
|
|
60
|
+
docs: {
|
|
61
|
+
description: {
|
|
62
|
+
story: "Пустой root допустим: viewer не создаёт текст-заглушку, не открывает editor и не показывает fallback."
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}`,...$.parameters?.docs?.source}}},he=[`RichText`,`NestedLists`,`AccessibleLinks`,`NarrowContent`,`UnsupportedDocument`,`EmptyDocument`]})))()}ge();export{X as AccessibleLinks,$ as EmptyDocument,Z as NarrowContent,Y as NestedLists,J as RichText,Q as UnsupportedDocument,he as __namedExportsOrder,me as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{a as n,i as r}from"./utils-DiA8FLax.js";import{n as i,t as a}from"./ui.module-l7VCYIW-.js";import{d as o,l as s,s as c,u as l}from"./Input-DFpaY5iR.js";var u,d;function f(){return(f=e((()=>{u=`TjY2iu`,d={textarea:u}})))()}function p({label:e,description:t,className:r,disabled:a,size:s,value:l,onChange:u,error:f,onClearError:p,id:h,...g}){let{controlId:_,labelId:v,descriptionId:y,errorId:b,describedBy:x}=o({id:h,hasLabel:e!=null,hasDescription:!!t,hasError:!!f});return(0,m.jsx)(c,{label:e,description:t,disabled:a,required:g.required,size:s,error:f,controlId:_,labelId:v,descriptionId:y,errorId:b,children:(0,m.jsx)(`textarea`,{...g,id:_,disabled:a,value:l,"aria-invalid":!!f||void 0,"aria-labelledby":v,"aria-describedby":x,"data-invalid":f?``:void 0,className:n(i.uiControl,d.textarea,`scrollable`,r),onChange:e=>{u?.(e.target.value),f&&p&&p()}})})}var m;function h(){return(h=e((()=>{r(),s(),l(),a(),f(),m=t(),p.__docgenInfo={description:`Многострочное текстовое поле для ввода свободного текста. Поддерживает подпись, описание, ошибки и единый визуальный стиль формы.`,methods:[],displayName:`Textarea`,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:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}},composes:[`Omit`]}})))()}export{h as n,p as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DvVybOVR.js";import{a as p,i as m,n as h,r as g,t as _}from"./Textarea.stories-BNkapgda.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:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`Textarea`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Многострочное текстовое поле для описаний, комментариев и заметок`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`Textarea уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{Textarea.stories-CJbv3jrK.js → Textarea.stories-BNkapgda.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./Textarea-Cpnrb2o_.js";var s=t({Controlled:()=>d,Disabled:()=>p,WithValue:()=>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??``,onChange:n=>{e.onChange?.(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),u={title:`UI/Textarea`,component:o,args:{label:`Комментарий`,description:`Оставьте примечание к документу.`,placeholder:`Введите текст...`,disabled:!1,value:``,onChange:()=>void 0},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок текстовой области.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер поля ввода.`,control:`text`},value:{description:`Текущее значение текстовой области.`,control:`text`},onChange:{description:`Вызывается при изменении текста.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={args:{value:`Первичный комментарий`},render:l},f={args:{value:`Шаблонный текст для редактирования.`},render:l},p={args:{disabled:!0,value:`Редактирование недоступно.`},render:l},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
args: {
|
|
3
3
|
value: "Первичный комментарий"
|
|
4
4
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{a as r,i}from"./utils-DiA8FLax.js";import{g as a,s as o}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{h as s,m as c}from"./formatters-DVE1YVNQ-CimVV-di.js";import{i as l,r as u}from"./date-segments-DeoMkKv9.js";function d(e=0,t=0){return c(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 c(e.getFullYear(),e.getMonth(),e.getDate(),r,i,0,0)}function g(e,t,n,r=`date-time`){return r===`time`?d(t,n):c(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(),s(),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};
|
package/storybook-static/assets/{TimePanel.stories-dF5kTdp1.js → TimePanel.stories-DYq--6bF.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./TimePanel-BQK5NbxR.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{n(),i(),o=t(),{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`UI/Internal/DateTime/TimePanel`,component:a,args:{value:new Date(2026,2,10,12,30,0,0),onChange:s(),disabled:!1,mode:`date-time`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{value:{description:`Текущая дата, из которой панель берёт календарный день и время.`,control:!1},disabled:{description:`Блокирует оба wheel-picker-а.`,control:`boolean`},minDate:{description:`Нижняя граница доступного времени для выбранного дня.`,control:`date`},maxDate:{description:`Верхняя граница доступного времени для выбранного дня.`,control:`date`},mode:{description:`Режим вычисления доступного времени.`,control:`inline-radio`,options:[`date-time`,`time`]},onChange:{description:`Вызывается с выбранными часами и минутами.`,control:!1}}},l=r((e,t)=>{let n=e.value;return(0,o.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,o.jsx)(a,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}),u={render:l},d={render:l,args:{value:new Date(2026,2,10,9,30,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},u.parameters={...u.parameters,docs:{...u.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderTimePanelStory
|
|
3
3
|
}`,...u.parameters?.docs?.source},description:{story:`Демонстрирует базовую wheel-панель времени.`,...u.parameters?.docs?.description}}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
4
4
|
render: renderTimePanelStory,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DvVybOVR.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-DYZE2fC3.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{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-
|
|
1
|
+
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-BwMqUCxF.js";import{a as i,i as a}from"./utils-DiA8FLax.js";import{n as o,t as s}from"./ui.module-l7VCYIW-.js";var c,l,u,d,f,p,m,h,g;function _(){return(_=t((()=>{c=`FFyoOs`,l=`zPYy7T`,u=`j6ek6R`,d=`HFTPXI`,f=`_0RK4xF`,p=`kDPnKt`,m=`DQHqws`,h=`nCQ9v4`,g={row:c,wrapper:l,input:u,track:d,thumb:f,unchecked:p,checked:m,option:h}})))()}function v({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:c,value:l,id:u,checkedText:d=`ВКЛ`,uncheckedText:f=`ВЫКЛ`,labelPosition:p=`before`,...m}){let h=(0,y.useId)(),_=u??h,v=t?`${_}-description`:void 0,x=e??n,S=!!l,C=!x&&!m[`aria-label`]?`${f} / ${d}`:void 0,w=x?(0,b.jsx)(`label`,{htmlFor:_,className:o.uiLabel,children:x}):null;return(0,b.jsxs)(`div`,{className:i(o.uiElement,r&&o.disabled,a&&o.uiSizable,a&&o[a],s),"aria-disabled":r||void 0,children:[(0,b.jsxs)(`div`,{className:g.row,children:[p===`before`&&w,(0,b.jsxs)(`div`,{className:g.wrapper,children:[(0,b.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`switch`,checked:S,disabled:r,"aria-checked":S,"aria-describedby":v,"aria-label":C,className:i(o.uiInputControl,g.input),onChange:e=>c?.(e.currentTarget.checked)}),(0,b.jsxs)(`div`,{className:g.track,"data-disabled":r||void 0,"aria-hidden":`true`,children:[(0,b.jsx)(`div`,{className:g.thumb}),(0,b.jsx)(`div`,{className:i(g.option,g.unchecked),children:f}),(0,b.jsx)(`div`,{className:i(g.option,g.checked),children:d})]})]}),p===`after`&&w]}),t&&(0,b.jsx)(`p`,{id:v,className:o.uiDescription,children:t})]})}var y,b;function x(){return(x=t((()=>{y=e(n(),1),a(),s(),_(),b=r(),v.__docgenInfo={description:`Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.`,methods:[],displayName:`Toggle`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},checkedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВКЛ"`,computed:!1}},uncheckedText:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"ВЫКЛ"`,computed:!1}},labelPosition:{required:!1,tsType:{name:`union`,raw:`"before" | "after"`,elements:[{name:`literal`,value:`"before"`},{name:`literal`,value:`"after"`}]},description:``,defaultValue:{value:`"before"`,computed:!1}}},composes:[`Omit`]}})))()}export{x as n,v as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./Toggle-DVuWIK21.js";var s=t({Controlled:()=>d,Disabled:()=>p,LabelAfter:()=>f,__namedExportsOrder:()=>m,default:()=>u}),c,l,u,d,f,p,m;function h(){return(h=e((()=>{r(),a(),c=n(),l=i((e,t)=>(0,c.jsx)(o,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),u={title:`UI/Toggle`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее значение переключателя.`,control:`boolean`},onChange:{description:`Вызывается при изменении значения.`,control:!1},checkedText:{description:`Текст для включенного состояния.`,control:`text`},uncheckedText:{description:`Текст для выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={render:l,args:{label:`Режим синхронизации`,description:`Мгновенное переключение состояния.`,value:!1,checkedText:`ВКЛ`,uncheckedText:`ВЫКЛ`,labelPosition:`before`}},f={render:l,args:{label:`Уведомления`,value:!0,labelPosition:`after`}},p={render:l,args:{label:`Недоступный переключатель`,value:!0,disabled:!0}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderToggleStory,
|
|
3
3
|
args: {
|
|
4
4
|
label: "Режим синхронизации",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{i as r,n as i,r as a,t as o}from"./formatMultiSelectOptionCount-Cb7rzikh.js";import{a as s,c,d as l,i as u,l as d,n as f,r as p,s as m,t as h}from"./TreePickerBase-BCpA1kfG.js";function g(e,t){let n=l(e,t),r=Object.values(n).reduce((e,t)=>e+t.length,0);if(r!==0){if(r===1){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1))[0],r=t.nodeById.get(n);return r?r.label:void 0}return o(r)}}function _(e,t,n){let r=d(e,n),i=d(t,n);return r.size===i.size&&[...r].every(e=>i.has(e))}function v({label:e,description:t,disabled:n,placeholder:i=`Выберите значения`,size:a,nodes:o,value:f,onChange:v,query:x,defaultQuery:S,onQuery:C,isLoading:w,error:T,fieldError:E,required:D,optionsLayout:O=`tree`,defaultExpandedCodeKeys:k}){let[A,j]=(0,y.useState)(!1),M=(0,y.useMemo)(()=>p(o),[o]),{draftValue:N,setDraftValue:P,prepareOpen:F}=r({value:f,open:A,onCommit:v,isEqual:(e,t)=>_(e,t,M)}),I=A?N:f,L=(0,y.useMemo)(()=>d(I,M),[I,M]),R=(0,y.useMemo)(()=>s(L,M),[L,M]),z=(0,y.useMemo)(()=>new Set([...M.nodeById.keys()].filter(e=>M.nodeById.get(e)?.disabled!==!0&&!m(e,L,M)&&!R.selectedIds.has(e)&&u(M,[e]).size===0)),[L,R.selectedIds,M]),B=(0,y.useMemo)(()=>g(L,M),[L,M]);return(0,b.jsx)(h,{label:e,description:t,disabled:n,placeholder:i,size:a,nodes:o,selectedIds:R.selectedIds,partialIds:R.partialIds,selectionMode:`multi`,optionsLayout:O,defaultExpandedCodeKeys:k,unavailableNodeIds:z,open:A,onOpenChange:e=>{e&&!A&&F(),j(e)},bulkActions:{onSelectAll:()=>{P(l(u(M),M))},onDeselectAll:()=>P({})},triggerMode:`search`,selectedSummary:B,query:x,defaultQuery:S,onQuery:C,onNodeActivate:(e,t)=>{P(c({},e.id,M,t))},onNodeToggleSelection:(e,t)=>{P(n=>c(n,e.id,M,t))},onClearSelection:()=>{P({}),A||v({})},isLoading:w,error:T,fieldError:E,required:D})}var y,b;function x(){return(x=e((()=>{y=t(),i(),a(),f(),b=n(),v.__docgenInfo={description:``,methods:[],displayName:`TreeMultiSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значения"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Определяет обычное раскрываемое дерево или полностью открытый адаптивный набор колонок.`,defaultValue:{value:`"tree"`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nВ режиме `columns` дерево по-прежнему отображается полностью раскрытым."}},composes:[`Omit`]}})))()}export{x as n,v as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DvVybOVR.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./TreeMultiSelect.stories-D2JpEs59.js";function C(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,T.jsx)(u,{children:`TreeMultiSelect`}),`
|
|
3
3
|
`,(0,T.jsx)(o,{children:`Мультивыбор узлов дерева с компрессией subtree в parent`}),`
|
|
4
4
|
`,(0,T.jsxs)(t.p,{children:[(0,T.jsx)(t.code,{children:`TreeMultiSelect`}),` хранит наружу не “все листья”, а канонизированный frontier по уровням дерева.`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./TreeMultiSelect-BM3xCVHR.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-DXHh9GL3.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RequiredWithError:()=>w,RightEdgeColumns:()=>C,__namedExportsOrder:()=>T,default:()=>g});function d({args:e,updateArgs:t}){return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:Object.values(n).some(e=>e.length>0)?void 0:e.fieldError})}}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var f,p,m,h,g,_,v,y,b,x,S,C,w,T;function E(){return(E=e((()=>{r(),a(),s(),f=n(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m=i((e,t)=>(0,f.jsx)(d,{args:e,updateArgs:t})),h=i((e,t)=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(d,{args:e,updateArgs:t})})})),g={title:`UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узлов как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранных узлов под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Контролируемое отображение выбранных узлов по codeKey.`,control:!1},onChange:{description:`Вызывается при commit набора узлов.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},optionsLayout:{description:`Способ показа: дерево или адаптивные колонки.`,control:`inline-radio`,options:[`tree`,`columns`]},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},_={render:m,args:{value:{OWNER:[`P0001`]}}},v={render:m,args:{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,value:{REGION:[`R01`]}}},y={render:m,args:{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,value:{BRANCH:[`B0101`],OWNER:[`P0004`]}}},b={render:m,args:{label:`Раскрыты два уровня`,description:`Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.`,defaultExpandedCodeKeys:[`REGION`,`BRANCH`]}},x={render:m,args:{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,value:{BRANCH:[`B0101`]}}},S={render:m,args:{label:`Защита начала большой группы`,description:`Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.`,optionsLayout:`columns`,nodes:c}},C={render:h,args:{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p}},w={name:`Обязательное поле с ошибкой`,render:m,args:{required:!0,fieldError:`Выберите хотя бы один узел.`,value:{}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderTreeMultiSelectStory,
|
|
3
3
|
args: {
|
|
4
4
|
value: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-right-BUqG0v39.js";import{n as i,t as a}from"./CheckBox-nBqHJGY9.js";import{n as o}from"./iframe-BmGorvhi.js";import{a as s,i as c,r as l,s as u,t as d}from"./utils-tg3ibbzi.js";import{n as f,t as p}from"./OptionContent-C7Zoef1L.js";import{l as m,o as h}from"./Input-YuUUu0DD.js";import{n as g,t as ee}from"./PickerField-vwGcXNU3.js";import{c as _,i as v,l as te,n as ne,r as re,s as ie,t as ae,u as y}from"./usePickerTriggerController-BIarg6M4.js";import{a as oe,n as se,o as ce,t as le}from"./Option-lTkoUcHa.js";import{i as ue,n as de,r as fe,t as pe}from"./usePickerQuery-BZ1Hrn2J.js";import{n as me,t as he}from"./OptionButton-Bt6YtqRZ.js";import{n as b,t as ge}from"./OptionContentContainer-xpO-es_t.js";function x(e,t){return`${e}::${t}`}function _e(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=0,l=(e,u)=>{t.set(e.id,e),n.set(e.id,u),i.set(e.id,c++);let d=x(e.codeKey,e.value);a.set(d,e.id);let f=o.get(d);f?f.push(e.id):o.set(d,[e.id]);let p=(e.children??[]).map(e=>e.id);r.set(e.id,p);for(let t of e.children??[])l(t,e.id);s.set(e.id,e.disabled===!0||p.some(e=>s.get(e)===!0))};for(let t of e)l(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a,nodeIdsByCodeValue:o,subtreeContainsDisabledById:s}}function S(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(x(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ye(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i)for(let i of t.nodeIdsByCodeValue.get(x(r,e))??[])n.add(i);return A(n,t)}function C(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={},i=new Set;for(let e of n){let n=t.nodeById.get(e);if(!n)continue;let a=x(n.codeKey,n.value);i.has(a)||(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value),i.add(a))}return r}function w(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function T(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function be(e,t){let n=S(e,t);return!n.length||n.some(e=>{let n=t.nodeById.get(e);return!n||n.selectionBehavior===`descendants`||t.subtreeContainsDisabledById.get(e)===!0})?!1:!n.some((e,r)=>n.some((n,i)=>r!==i&&(T(e,n,t)||T(n,e,t))))}function xe(e,t){return be(e,t)?S(e,t):[e]}function E(e,t,n){for(let r of[...e])T(r,t,n)&&e.delete(r)}function D(e,t,n){let r=[t];for(let t=0;t<r.length;t+=1){let i=r[t];if(i){r.push(...n.childrenById.get(i)??[]);for(let t of S(i,n))e.delete(t)}}}function O(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length!==0&&r.every(e=>O(e,t,n))}function k(e,t,n){if(!n.nodeById.has(e))return!1;let r=t.childrenById.get(e)??[],i=n.childrenById.get(e)??[];return r.length===i.length&&r.every((e,r)=>i[r]===e&&k(e,t,n))}function A(e,t){let n=new Set(e);for(let e of[...n])if(t.nodeById.get(e)?.selectionBehavior===`descendants`){n.delete(e);for(let r of P(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])w(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];if(!(r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||t.nodeById.get(e)?.selectionBehavior===`descendants`)&&r.every(e=>O(e,n,t))){let r=S(e,t);if(be(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&O(e,n,t)}))for(let e of r)E(n,e,t),n.add(e)}}return n}function Se(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of S(r,n))if(e.has(t)){e.delete(t);for(let r of P(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function j(e,t,n){return t.has(e)?!0:w(e,n).some(e=>t.has(e))}function M(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>M(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function N(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)M(r,e,t,n);return n}function P(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);if(!r||r.disabled)return{containsDisabled:!0,selectedIds:a};if(r.selectionBehavior===`descendants`)return{containsDisabled:o,selectedIds:a};let s=!be(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function F(e,t,n,r){let i=ye(e,n),a=r!==void 0&&!k(t,n,r);if(!a&&O(t,i,n))return D(i,t,n),C(A(i,n),n);let o=e=>{if(i.has(e)){D(i,e,n);return}if(O(e,i,n)){D(i,e,n);return}if(j(e,i,n)){Se(i,e,n)&&(j(e,i,n)||O(e,i,n)?o(e):D(i,e,n));return}for(let t of xe(e,n))E(i,t,n),i.add(t)},s=e=>{if(!r?.nodeById.has(e))return[];if(k(e,n,r)){let t=[...P(n,[e])];return t.length>0?t:j(e,i,n)||O(e,i,n)?[e]:[]}return(r.childrenById.get(e)??[]).flatMap(s)},c=a?s(t):[...P(n,[t])],l=c.length===0&&(j(t,i,n)||O(t,i,n))?[t]:c,u=l.length>0&&l.every(e=>j(e,i,n)||O(e,i,n));for(let e of l){let t=j(e,i,n)||O(e,i,n);(u&&t||!u&&!t)&&o(e)}return C(A(i,n),n)}function I(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ce(e,t){let n=new Set;for(let r of e)I(r,t,n);return n}function we(e,t,n){let r=new Set;for(let[i,a]of e.childrenById){if(a.length===0)continue;let o=e.nodeById.get(i);o&&(n.get(i)??t.has(o.codeKey))&&r.add(i)}return r}function Te(e,t,n){let r=(e.children??[]).map(e=>Te(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function Ee(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>Te(e,n,r)).filter(e=>!!e),expandedIds:r}}function De(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}function Oe(){return(Oe=e((()=>{})))()}function ke(e){let t=[],n=0;for(;n<e.length;){let r=n+1;for(;r<e.length&&e[r]?.level!==0;)r+=1;t.push({startIndex:n,endIndexExclusive:r}),n=r}let r=t.map(({startIndex:e,endIndexExclusive:t})=>`${e}:${t}`).join(`|`);return{itemCount:e.length,groups:t,signature:`${e.length}|${r}`}}function L(e,t){return Number.isFinite(e)&&e>0?e:t}function Ae(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Pe,t)}function je(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=Ae(t),s=n-a+1;a>1&&e>s&&(o+=s,i+=1,a=1);for(let e=t.startIndex;e<t.endIndexExclusive;e+=1)r[e]={column:i,row:a},a+=1,a>n&&(i+=1,a=1)}return{placements:r,usedColumnCount:r.length?Math.max(...r.map(e=>e.column)):1,intentionalGapCount:o}}function Me({descriptor:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e.itemCount)?e.itemCount:0)),s=L(t,240),c=L(n,80),l=L(r,s+16),u=L(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-16))),f=Math.max(1,Math.min(c,u-16)),p=Math.max(1,L(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(H,h,o||1)),ee=e.groups.reduce((e,t)=>Math.max(e,Ae(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let _,v=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(ee,Math.ceil(o/t)),r=je(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=je(e,n);let i=r.usedColumnCount,a=Math.max(m,R+i*B+(i-1)*V),s=z+n*Ne,c=a/d,l=s/f,u=(i*n-o)/o,p=r.intentionalGapCount/o,h=Math.max(c,l)+.25*Math.abs(c-l)+.01*u+.02*p+.04*(i-1);h<v&&(v=h,_={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return _??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:je(e,o).placements}}var R,z,B,V,Ne,H,Pe;function U(){return(U=e((()=>{R=16,z=48,B=224,V=10,Ne=32,H=6,Pe=3})))()}var W,Fe,G,Ie,Le,Re,ze,Be,Ve,He,Ue,We,K,q;function Ge(){return(Ge=e((()=>{W=`_6EH37F`,Fe=`UBll8Q`,G=`-y3RZP`,Ie=`ayLJ50`,Le=`_430vL2`,Re=`_2MFkGF`,ze=`JhnGSK`,Be=`_0cHzF8`,Ve=`o5NWnX`,He=`ibSd-S`,Ue=`lXezvv`,We=`FMlLGX`,K=`d2Zt7U`,q={treeNodeButton:W,treePopupHeader:Fe,treeColumns:G,treeColumnRow:Ie,treeColumnsPopupLayout:Le,treeColumnCheckBox:Re,treeNodeSelectionCell:ze,treeNodeActionCell:Be,treeIndent:Ve,treeExpander:He,treeExpanderPlaceholder:Ue,treeExpanderIcon:We,treeExpanderIconExpanded:K}})))()}function Ke({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:c,partial:l,selectionMode:u,optionsLayout:d=`tree`,onToggleExpand:f,onToggleSelection:m,onActivate:h,actionRef:g}){let ee=d===`tree`,_=d===`columns`&&t===0,v=(0,J.jsx)(p,{text:e.label,code:e.code,searchText:n,emphasizeContent:_}),te=i?(0,J.jsx)(`span`,{className:q.treeExpander,"aria-hidden":`true`,onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation(),f?.()},"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,J.jsx)(r,{className:s(q.treeExpanderIcon,o&&q.treeExpanderIconExpanded)})}):(0,J.jsx)(`div`,{className:q.treeExpanderPlaceholder,"aria-hidden":`true`});return u===`multi`&&d===`tree`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{role:`gridcell`,className:q.treeNodeSelectionCell,children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),te,(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`${c?`Убрать`:`Добавить`} «${e.label}» ${c?`из выбора`:`в выбор`}`,onChange:()=>m?.()})})]}),(0,J.jsx)(`div`,{role:`gridcell`,className:q.treeNodeActionCell,children:(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,"aria-label":`Выбрать только «${e.label}»`,text:e.label,code:e.code,searchText:n,onMouseDown:e=>e.preventDefault(),onClick:h})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),ee?te:null,u===`multi`?(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>m?.()})}):null,d===`tree`?(0,J.jsx)(ge,{className:q.treeNodeButton,children:v}):(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,text:e.label,code:e.code,searchText:n,emphasizeContent:_,onMouseDown:e=>e.preventDefault(),onClick:h})]})}var J;function qe(){return(qe=e((()=>{c(),n(),i(),me(),f(),b(),Ge(),J=o(),Ke.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-right-Bo0n7sEl.js";import{n as i,t as a}from"./CheckBox-HehqIiiV.js";import{n as o}from"./iframe-BwMqUCxF.js";import{a as s,c,i as l,r as u,t as d}from"./utils-DiA8FLax.js";import{n as f,t as p}from"./OptionContent-C2VjIa7E.js";import{l as m,o as h}from"./Input-DFpaY5iR.js";import{n as g,t as ee}from"./PickerField-BeafhNsw.js";import{c as _,i as v,l as te,n as ne,r as re,s as ie,t as ae,u as y}from"./usePickerTriggerController-Cy-RrU3A.js";import{a as oe,n as se,o as ce,t as le}from"./Option-DkhmepGt.js";import{i as ue,n as de,r as fe,t as pe}from"./usePickerQuery-IBbvSDWi.js";import{n as me,t as he}from"./OptionButton-CaOcFLRc.js";import{n as b,t as ge}from"./OptionContentContainer-D9gbmo8X.js";function x(e,t){return`${e}::${t}`}function _e(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=0,l=(e,u)=>{t.set(e.id,e),n.set(e.id,u),i.set(e.id,c++);let d=x(e.codeKey,e.value);a.set(d,e.id);let f=o.get(d);f?f.push(e.id):o.set(d,[e.id]);let p=(e.children??[]).map(e=>e.id);r.set(e.id,p);for(let t of e.children??[])l(t,e.id);s.set(e.id,e.disabled===!0||p.some(e=>s.get(e)===!0))};for(let t of e)l(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a,nodeIdsByCodeValue:o,subtreeContainsDisabledById:s}}function S(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(x(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ye(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i)for(let i of t.nodeIdsByCodeValue.get(x(r,e))??[])n.add(i);return A(n,t)}function C(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={},i=new Set;for(let e of n){let n=t.nodeById.get(e);if(!n)continue;let a=x(n.codeKey,n.value);i.has(a)||(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value),i.add(a))}return r}function w(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function T(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function be(e,t){let n=S(e,t);return!n.length||n.some(e=>{let n=t.nodeById.get(e);return!n||n.selectionBehavior===`descendants`||t.subtreeContainsDisabledById.get(e)===!0})?!1:!n.some((e,r)=>n.some((n,i)=>r!==i&&(T(e,n,t)||T(n,e,t))))}function xe(e,t){return be(e,t)?S(e,t):[e]}function E(e,t,n){for(let r of[...e])T(r,t,n)&&e.delete(r)}function D(e,t,n){let r=[t];for(let t=0;t<r.length;t+=1){let i=r[t];if(i){r.push(...n.childrenById.get(i)??[]);for(let t of S(i,n))e.delete(t)}}}function O(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length!==0&&r.every(e=>O(e,t,n))}function k(e,t,n){if(!n.nodeById.has(e))return!1;let r=t.childrenById.get(e)??[],i=n.childrenById.get(e)??[];return r.length===i.length&&r.every((e,r)=>i[r]===e&&k(e,t,n))}function A(e,t){let n=new Set(e);for(let e of[...n])if(t.nodeById.get(e)?.selectionBehavior===`descendants`){n.delete(e);for(let r of P(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])w(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];if(!(r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||t.nodeById.get(e)?.selectionBehavior===`descendants`)&&r.every(e=>O(e,n,t))){let r=S(e,t);if(be(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&O(e,n,t)}))for(let e of r)E(n,e,t),n.add(e)}}return n}function Se(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of S(r,n))if(e.has(t)){e.delete(t);for(let r of P(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function j(e,t,n){return t.has(e)?!0:w(e,n).some(e=>t.has(e))}function M(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>M(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function N(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)M(r,e,t,n);return n}function P(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);if(!r||r.disabled)return{containsDisabled:!0,selectedIds:a};if(r.selectionBehavior===`descendants`)return{containsDisabled:o,selectedIds:a};let s=!be(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function F(e,t,n,r){let i=ye(e,n),a=r!==void 0&&!k(t,n,r);if(!a&&O(t,i,n))return D(i,t,n),C(A(i,n),n);let o=e=>{if(i.has(e)){D(i,e,n);return}if(O(e,i,n)){D(i,e,n);return}if(j(e,i,n)){Se(i,e,n)&&(j(e,i,n)||O(e,i,n)?o(e):D(i,e,n));return}for(let t of xe(e,n))E(i,t,n),i.add(t)},s=e=>{if(!r?.nodeById.has(e))return[];if(k(e,n,r)){let t=[...P(n,[e])];return t.length>0?t:j(e,i,n)||O(e,i,n)?[e]:[]}return(r.childrenById.get(e)??[]).flatMap(s)},c=a?s(t):[...P(n,[t])],l=c.length===0&&(j(t,i,n)||O(t,i,n))?[t]:c,u=l.length>0&&l.every(e=>j(e,i,n)||O(e,i,n));for(let e of l){let t=j(e,i,n)||O(e,i,n);(u&&t||!u&&!t)&&o(e)}return C(A(i,n),n)}function I(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ce(e,t){let n=new Set;for(let r of e)I(r,t,n);return n}function we(e,t,n){let r=new Set;for(let[i,a]of e.childrenById){if(a.length===0)continue;let o=e.nodeById.get(i);o&&(n.get(i)??t.has(o.codeKey))&&r.add(i)}return r}function Te(e,t,n){let r=(e.children??[]).map(e=>Te(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function Ee(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>Te(e,n,r)).filter(e=>!!e),expandedIds:r}}function De(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}function Oe(){return(Oe=e((()=>{})))()}function ke(e){let t=[],n=0;for(;n<e.length;){let r=n+1;for(;r<e.length&&e[r]?.level!==0;)r+=1;t.push({startIndex:n,endIndexExclusive:r}),n=r}let r=t.map(({startIndex:e,endIndexExclusive:t})=>`${e}:${t}`).join(`|`);return{itemCount:e.length,groups:t,signature:`${e.length}|${r}`}}function L(e,t){return Number.isFinite(e)&&e>0?e:t}function Ae(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Pe,t)}function je(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=Ae(t),s=n-a+1;a>1&&e>s&&(o+=s,i+=1,a=1);for(let e=t.startIndex;e<t.endIndexExclusive;e+=1)r[e]={column:i,row:a},a+=1,a>n&&(i+=1,a=1)}return{placements:r,usedColumnCount:r.length?Math.max(...r.map(e=>e.column)):1,intentionalGapCount:o}}function Me({descriptor:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e.itemCount)?e.itemCount:0)),s=L(t,240),c=L(n,80),l=L(r,s+16),u=L(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-16))),f=Math.max(1,Math.min(c,u-16)),p=Math.max(1,L(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(H,h,o||1)),ee=e.groups.reduce((e,t)=>Math.max(e,Ae(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let _,v=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(ee,Math.ceil(o/t)),r=je(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=je(e,n);let i=r.usedColumnCount,a=Math.max(m,R+i*B+(i-1)*V),s=z+n*Ne,c=a/d,l=s/f,u=(i*n-o)/o,p=r.intentionalGapCount/o,h=Math.max(c,l)+.25*Math.abs(c-l)+.01*u+.02*p+.04*(i-1);h<v&&(v=h,_={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return _??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:je(e,o).placements}}var R,z,B,V,Ne,H,Pe;function U(){return(U=e((()=>{R=16,z=48,B=224,V=10,Ne=32,H=6,Pe=3})))()}var W,Fe,G,Ie,Le,Re,ze,Be,Ve,He,Ue,We,K,q;function Ge(){return(Ge=e((()=>{W=`_6EH37F`,Fe=`UBll8Q`,G=`-y3RZP`,Ie=`ayLJ50`,Le=`_430vL2`,Re=`_2MFkGF`,ze=`JhnGSK`,Be=`_0cHzF8`,Ve=`o5NWnX`,He=`ibSd-S`,Ue=`lXezvv`,We=`FMlLGX`,K=`d2Zt7U`,q={treeNodeButton:W,treePopupHeader:Fe,treeColumns:G,treeColumnRow:Ie,treeColumnsPopupLayout:Le,treeColumnCheckBox:Re,treeNodeSelectionCell:ze,treeNodeActionCell:Be,treeIndent:Ve,treeExpander:He,treeExpanderPlaceholder:Ue,treeExpanderIcon:We,treeExpanderIconExpanded:K}})))()}function Ke({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:c,partial:l,selectionMode:u,optionsLayout:d=`tree`,onToggleExpand:f,onToggleSelection:m,onActivate:h,actionRef:g}){let ee=d===`tree`,_=d===`columns`&&t===0,v=(0,J.jsx)(p,{text:e.label,code:e.code,searchText:n,emphasizeContent:_}),te=i?(0,J.jsx)(`span`,{className:q.treeExpander,"aria-hidden":`true`,onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation(),f?.()},"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,J.jsx)(r,{className:s(q.treeExpanderIcon,o&&q.treeExpanderIconExpanded)})}):(0,J.jsx)(`div`,{className:q.treeExpanderPlaceholder,"aria-hidden":`true`});return u===`multi`&&d===`tree`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{role:`gridcell`,className:q.treeNodeSelectionCell,children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),te,(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`${c?`Убрать`:`Добавить`} «${e.label}» ${c?`из выбора`:`в выбор`}`,onChange:()=>m?.()})})]}),(0,J.jsx)(`div`,{role:`gridcell`,className:q.treeNodeActionCell,children:(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,"aria-label":`Выбрать только «${e.label}»`,text:e.label,code:e.code,searchText:n,onMouseDown:e=>e.preventDefault(),onClick:h})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),ee?te:null,u===`multi`?(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>m?.()})}):null,d===`tree`?(0,J.jsx)(ge,{className:q.treeNodeButton,children:v}):(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,text:e.label,code:e.code,searchText:n,emphasizeContent:_,onMouseDown:e=>e.preventDefault(),onClick:h})]})}var J;function qe(){return(qe=e((()=>{l(),n(),i(),me(),f(),b(),Ge(),J=o(),Ke.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
2
2
|
id: string;
|
|
3
3
|
codeKey: string;
|
|
4
4
|
value: string;
|
|
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1b
|
|
|
8
8
|
children?: TreeSelectNode[];
|
|
9
9
|
disabled?: boolean;
|
|
10
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:``},onActivate:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},actionRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}function Je({label:e,description:t,disabled:n,placeholder:r,size:i,nodes:a,selectedIds:o,partialIds:c,selectionMode:f,optionsLayout:p=`tree`,defaultExpandedCodeKeys:m,unavailableNodeIds:g,open:_,onOpenChange:re,bulkActions:ae,triggerMode:y=`display`,selectedSummary:se,selectedSummaryText:ce,query:ue,defaultQuery:pe,onQuery:me,onNodeActivate:he,onNodeToggleSelection:b,onClearSelection:ge,isLoading:x,error:S,fieldError:ve,required:ye}){let C=(0,Y.useRef)(null),w=(0,Y.useRef)(null),T=(0,Y.useRef)([]),[be,xe]=(0,Y.useState)(!1),[E,D]=(0,Y.useState)(),O=_!==void 0,k=O?_:be,[A,Se]=(0,Y.useState)(()=>new Map),M=y===`search`?f===`multi`?`search-multi`:`search-single`:`display`,N=(0,Y.useMemo)(()=>_e(a),[a]),P=(0,Y.useMemo)(()=>new Set(m),[m]),{query:F,setQuery:I,resetQueryOnClose:Te}=de({query:ue,defaultQuery:pe,onQuery:me,triggerMode:M}),Oe=e=>{k&&!e&&Te&&I(``),e||D(void 0),O||xe(e),re?.(e)},{nodes:L,expandedIds:Ae}=(0,Y.useMemo)(()=>Ee(a,F),[a,F]),je=(0,Y.useMemo)(()=>_e(L),[L]),R=F.trim().length>0?je:void 0,z=(0,Y.useMemo)(()=>Ce(o,N),[o,N]),B=(0,Y.useMemo)(()=>we(N,P,A),[P,A,N]),V=(0,Y.useMemo)(()=>new Set([...N.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[N]),Ne=(0,Y.useMemo)(()=>p===`columns`?V:new Set([...B,...Ae,...z]),[V,B,p,Ae,z]),H=(0,Y.useMemo)(()=>De(L,Ne),[L,Ne]),Pe=(0,Y.useMemo)(()=>H.findIndex(e=>o.has(e.node.id)),[o,H]),U=(0,Y.useCallback)(e=>e.node.disabled===!0||g?.has(e.node.id)===!0,[g]),W=(0,Y.useMemo)(()=>ke(H),[H]),Fe=(0,Y.useCallback)(e=>{let t=Me({...e,descriptor:W}),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}},[W]),{activeIndex:G,context:Ie,floatingStyles:Le,getFloatingProps:Re,setReference:ze,setFloating:Be,setOptionRef:Ve,close:He,openList:Ue,toggleOpen:We,selectOption:K,handleReferenceKeyDown:Ge,handleFloatingKeyDown:J,getOptionId:qe,getActiveOptionId:Je}=v({options:H,selectedIndex:Pe,open:k,onOpenChange:Oe,onSelect:e=>he(e.node,R),getOptionDisabled:U,disabled:n||x,closeOnSelect:!0,allowOpenWithoutOptions:!0,triggerMode:M,placementStrategy:p===`columns`?`auto`:`flip`,resolveFloatingSize:p===`columns`?Fe:void 0}),Z=E?H.findIndex(e=>e.node.id===E):-1,Ye=Z>=0?Z:G,Xe=Ie.update,Ze=o.size>0,Qe=y===`search`&&(k||F.length>0),$e=Qe?F:ce??``,Q=ne({mode:M,open:k,currentQuery:F,hasDisplayValue:!!ce,inputRef:C,setQuery:I,openList:Ue,close:He,toggleOpen:We}),et=p===`columns`&&f===`multi`&&ae,tt=y===`display`,nt=et||tt?(0,X.jsxs)(`div`,{className:q.treePopupHeader,children:[et?(0,X.jsx)(oe,{onSelectAll:ae.onSelectAll,onDeselectAll:ae.onDeselectAll,selectAllButtonRef:w}):null,tt?(0,X.jsx)(h,{value:F,onChange:I,onClear:()=>I(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Y.useLayoutEffect)(()=>{k&&p===`columns`&&Xe()},[W.signature,k,p,Xe]);let rt=e=>{C.current=e},it=()=>{ge?.(),I(``),f===`single`&&He()},at=e=>{e.hasChildren&&Se(t=>{let n=new Map(t),r=t.get(e.node.id)??P.has(e.node.codeKey);return n.set(e.node.id,!r),n})},ot=e=>{T.current[e]?.focus()},st=(e,t,n)=>{if(e.target===e.currentTarget){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;ot(d(H,n,t,U));return}if(e.key===`Home`||e.key===`End`){e.preventDefault();let t=e.key===`Home`?l(H,U):u(H,U);ot(t);return}if(p===`tree`&&e.key===`ArrowRight`){if(e.preventDefault(),t.hasChildren&&!t.isExpanded){at(t);return}let r=H[n+1];t.isExpanded&&r?.parentId===t.node.id&&ot(n+1);return}if(p===`tree`&&e.key===`ArrowLeft`){if(e.preventDefault(),t.hasChildren&&t.isExpanded){at(t);return}t.parentId&&ot(H.findIndex(e=>e.node.id===t.parentId));return}if(e.key===` `&&f===`multi`&&!U(t)){e.preventDefault(),b?.(t.node,R);return}e.key===`Enter`&&!U(t)&&(e.preventDefault(),K(t))}},$=p===`tree`&&f===`multi`,ct=e=>{if($&&e.target===e.currentTarget&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}J(e)};return(0,X.jsx)(ee,{label:e,description:t,disabled:n,size:i,error:ve,required:ye,children:({controlId:t,labelId:i,describedBy:a})=>{let l=`${t}-${p===`columns`?`dialog`:$?`treegrid`:`tree`}`,u=typeof e==`string`?e:r;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ie,{ref:rt,rootRef:ze,id:t,type:`text`,role:`combobox`,autoComplete:`off`,isLoading:x,disabled:n,open:k,optionCount:N.nodeById.size,label:e,placeholder:r,readOnly:y!==`search`,value:$e,selectedValue:se??ce,hasSelection:Ze,showSelectedValue:Ze&&(M===`search-multi`?F.length===0:!Qe),clearable:ge!==void 0,onClear:it,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":i,"aria-label":i?void 0:r,"aria-describedby":a,"aria-required":ye||void 0,"aria-invalid":!!ve||void 0,"aria-haspopup":p===`columns`?`dialog`:$?`grid`:`tree`,"aria-expanded":k,"aria-controls":k?l:void 0,"aria-autocomplete":p!==`columns`&&y===`search`?`list`:`none`,"aria-activedescendant":p!==`columns`&&k&&H.length>0?Je(l):void 0,onChange:e=>{y===`search`&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{D(void 0),Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(p===`columns`&&k&&e.key===`Tab`&&!e.shiftKey&&w.current){e.preventDefault(),w.current.focus();return}if(Ge(e),!e.defaultPrevented){if($&&k&&e.ctrlKey&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=G>=0?H[G]:void 0;e&&K(e)},enableSpaceActivation:y===`display`})}}}),(0,X.jsx)(te,{open:k,context:Ie,floatingStyles:Le,listId:l,labelId:i,popupAriaLabel:u,descriptionId:a,activeOptionId:p!==`columns`&&H.length>0?Je(l):void 0,ariaMultiselectable:$,popupRole:p===`columns`?`dialog`:$?`treegrid`:`tree`,setFloating:Be,getFloatingProps:Re,onKeyDown:ct,layoutClassName:p===`columns`?q.treeColumnsPopupLayout:void 0,bodyClassName:`scrollable`,toolbar:nt,children:(0,X.jsx)(`div`,{role:`presentation`,className:s(p===`columns`&&q.treeColumns),children:H.length===0?(0,X.jsx)(fe,{errorState:S,emptyState:!S&&!x?`Нет данных`:void 0}):H.map((e,t)=>{let n=f===`multi`?j(e.node.id,o,N):o.has(e.node.id),r=f===`multi`&&!n&&c.has(e.node.id),i=t===Ye,a=e.node.disabled===!0||g?.has(e.node.id)===!0;return(0,X.jsx)(le,{"data-ui":`tree-select-option`,id:qe(l,t),ref:p===`tree`?e=>{T.current[t]=e,Ve(t,e)}:void 0,tabIndex:p===`tree`?-1:void 0,role:p===`tree`?$?`row`:`treeitem`:void 0,"aria-level":p===`tree`?e.level+1:void 0,"aria-expanded":p===`tree`&&e.hasChildren?e.isExpanded:void 0,"aria-selected":p===`columns`?void 0:n,"aria-disabled":a||void 0,disabled:a,active:i,selected:n,onFocus:()=>D(e.node.id),onKeyDown:p===`tree`?n=>st(n,e,t):void 0,onMouseDown:p===`tree`&&!$?e=>e.preventDefault():void 0,onClick:p===`tree`&&!$?()=>K(e):void 0,className:p===`columns`?q.treeColumnRow:void 0,style:p===`columns`?{"--tree-option-column":`var(--tree-option-${t}-column, auto)`,"--tree-option-row":`var(--tree-option-${t}-row, auto)`}:void 0,children:(0,X.jsx)(Ke,{node:a?{...e.node,disabled:!0}:e.node,level:e.level,highlight:F,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:f,optionsLayout:p,actionRef:p===`columns`?e=>{T.current[t]=e,Ve(t,e)}:void 0,onToggleExpand:()=>at(e),onToggleSelection:()=>b?.(e.node,R),onActivate:()=>K(e)})},e.node.id)})})})]})}})}var Y,X;function Z(){return(Z=e((()=>{Y=t(),c(),m(),se(),g(),y(),ce(),ue(),_(),re(),pe(),ae(),U(),qe(),Ge(),X=o(),Je.__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:`{
|
|
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:``},onActivate:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},actionRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}function Je({label:e,description:t,disabled:n,placeholder:r,size:i,nodes:a,selectedIds:o,partialIds:l,selectionMode:f,optionsLayout:p=`tree`,defaultExpandedCodeKeys:m,unavailableNodeIds:g,open:_,onOpenChange:re,bulkActions:ae,triggerMode:y=`display`,selectedSummary:se,selectedSummaryText:ce,query:ue,defaultQuery:pe,onQuery:me,onNodeActivate:he,onNodeToggleSelection:b,onClearSelection:ge,isLoading:x,error:S,fieldError:ve,required:ye}){let C=(0,Y.useRef)(null),w=(0,Y.useRef)(null),T=(0,Y.useRef)([]),[be,xe]=(0,Y.useState)(!1),[E,D]=(0,Y.useState)(),O=_!==void 0,k=O?_:be,[A,Se]=(0,Y.useState)(()=>new Map),M=y===`search`?f===`multi`?`search-multi`:`search-single`:`display`,N=(0,Y.useMemo)(()=>_e(a),[a]),P=(0,Y.useMemo)(()=>new Set(m),[m]),{query:F,setQuery:I,resetQueryOnClose:Te}=de({query:ue,defaultQuery:pe,onQuery:me,triggerMode:M}),Oe=e=>{k&&!e&&Te&&I(``),e||D(void 0),O||xe(e),re?.(e)},{nodes:L,expandedIds:Ae}=(0,Y.useMemo)(()=>Ee(a,F),[a,F]),je=(0,Y.useMemo)(()=>_e(L),[L]),R=F.trim().length>0?je:void 0,z=(0,Y.useMemo)(()=>Ce(o,N),[o,N]),B=(0,Y.useMemo)(()=>we(N,P,A),[P,A,N]),V=(0,Y.useMemo)(()=>new Set([...N.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[N]),Ne=(0,Y.useMemo)(()=>p===`columns`?V:new Set([...B,...Ae,...z]),[V,B,p,Ae,z]),H=(0,Y.useMemo)(()=>De(L,Ne),[L,Ne]),Pe=(0,Y.useMemo)(()=>H.findIndex(e=>o.has(e.node.id)),[o,H]),U=(0,Y.useCallback)(e=>e.node.disabled===!0||g?.has(e.node.id)===!0,[g]),W=(0,Y.useMemo)(()=>ke(H),[H]),Fe=(0,Y.useCallback)(e=>{let t=Me({...e,descriptor:W}),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}},[W]),{activeIndex:G,context:Ie,floatingStyles:Le,getFloatingProps:Re,setReference:ze,setFloating:Be,setOptionRef:Ve,close:He,openList:Ue,toggleOpen:We,selectOption:K,handleReferenceKeyDown:Ge,handleFloatingKeyDown:J,getOptionId:qe,getActiveOptionId:Je}=v({options:H,selectedIndex:Pe,open:k,onOpenChange:Oe,onSelect:e=>he(e.node,R),getOptionDisabled:U,disabled:n||x,closeOnSelect:!0,allowOpenWithoutOptions:!0,triggerMode:M,placementStrategy:p===`columns`?`auto`:`flip`,resolveFloatingSize:p===`columns`?Fe:void 0}),Z=E?H.findIndex(e=>e.node.id===E):-1,Ye=Z>=0?Z:G,Xe=Ie.update,Ze=o.size>0,Qe=y===`search`&&(k||F.length>0),$e=Qe?F:ce??``,Q=ne({mode:M,open:k,currentQuery:F,hasDisplayValue:!!ce,inputRef:C,setQuery:I,openList:Ue,close:He,toggleOpen:We}),et=p===`columns`&&f===`multi`&&ae,tt=y===`display`,nt=et||tt?(0,X.jsxs)(`div`,{className:q.treePopupHeader,children:[et?(0,X.jsx)(oe,{onSelectAll:ae.onSelectAll,onDeselectAll:ae.onDeselectAll,selectAllButtonRef:w}):null,tt?(0,X.jsx)(h,{value:F,onChange:I,onClear:()=>I(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Y.useLayoutEffect)(()=>{k&&p===`columns`&&Xe()},[W.signature,k,p,Xe]);let rt=e=>{C.current=e},it=()=>{ge?.(),I(``),f===`single`&&He()},at=e=>{e.hasChildren&&Se(t=>{let n=new Map(t),r=t.get(e.node.id)??P.has(e.node.codeKey);return n.set(e.node.id,!r),n})},ot=e=>{T.current[e]?.focus()},st=(e,t,n)=>{if(e.target===e.currentTarget){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;ot(d(H,n,t,U));return}if(e.key===`Home`||e.key===`End`){e.preventDefault();let t=e.key===`Home`?u(H,U):c(H,U);ot(t);return}if(p===`tree`&&e.key===`ArrowRight`){if(e.preventDefault(),t.hasChildren&&!t.isExpanded){at(t);return}let r=H[n+1];t.isExpanded&&r?.parentId===t.node.id&&ot(n+1);return}if(p===`tree`&&e.key===`ArrowLeft`){if(e.preventDefault(),t.hasChildren&&t.isExpanded){at(t);return}t.parentId&&ot(H.findIndex(e=>e.node.id===t.parentId));return}if(e.key===` `&&f===`multi`&&!U(t)){e.preventDefault(),b?.(t.node,R);return}e.key===`Enter`&&!U(t)&&(e.preventDefault(),K(t))}},$=p===`tree`&&f===`multi`,ct=e=>{if($&&e.target===e.currentTarget&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}J(e)};return(0,X.jsx)(ee,{label:e,description:t,disabled:n,size:i,error:ve,required:ye,children:({controlId:t,labelId:i,describedBy:a})=>{let c=`${t}-${p===`columns`?`dialog`:$?`treegrid`:`tree`}`,u=typeof e==`string`?e:r;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ie,{ref:rt,rootRef:ze,id:t,type:`text`,role:`combobox`,autoComplete:`off`,isLoading:x,disabled:n,open:k,optionCount:N.nodeById.size,label:e,placeholder:r,readOnly:y!==`search`,value:$e,selectedValue:se??ce,hasSelection:Ze,showSelectedValue:Ze&&(M===`search-multi`?F.length===0:!Qe),clearable:ge!==void 0,onClear:it,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":i,"aria-label":i?void 0:r,"aria-describedby":a,"aria-required":ye||void 0,"aria-invalid":!!ve||void 0,"aria-haspopup":p===`columns`?`dialog`:$?`grid`:`tree`,"aria-expanded":k,"aria-controls":k?c:void 0,"aria-autocomplete":p!==`columns`&&y===`search`?`list`:`none`,"aria-activedescendant":p!==`columns`&&k&&H.length>0?Je(c):void 0,onChange:e=>{y===`search`&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{D(void 0),Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(p===`columns`&&k&&e.key===`Tab`&&!e.shiftKey&&w.current){e.preventDefault(),w.current.focus();return}if(Ge(e),!e.defaultPrevented){if($&&k&&e.ctrlKey&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=G>=0?H[G]:void 0;e&&K(e)},enableSpaceActivation:y===`display`})}}}),(0,X.jsx)(te,{open:k,context:Ie,floatingStyles:Le,listId:c,labelId:i,popupAriaLabel:u,descriptionId:a,activeOptionId:p!==`columns`&&H.length>0?Je(c):void 0,ariaMultiselectable:$,popupRole:p===`columns`?`dialog`:$?`treegrid`:`tree`,setFloating:Be,getFloatingProps:Re,onKeyDown:ct,layoutClassName:p===`columns`?q.treeColumnsPopupLayout:void 0,bodyClassName:`scrollable`,toolbar:nt,children:(0,X.jsx)(`div`,{role:`presentation`,className:s(p===`columns`&&q.treeColumns),children:H.length===0?(0,X.jsx)(fe,{errorState:S,emptyState:!S&&!x?`Нет данных`:void 0}):H.map((e,t)=>{let n=f===`multi`?j(e.node.id,o,N):o.has(e.node.id),r=f===`multi`&&!n&&l.has(e.node.id),i=t===Ye,a=e.node.disabled===!0||g?.has(e.node.id)===!0;return(0,X.jsx)(le,{"data-ui":`tree-select-option`,id:qe(c,t),ref:p===`tree`?e=>{T.current[t]=e,Ve(t,e)}:void 0,tabIndex:p===`tree`?-1:void 0,role:p===`tree`?$?`row`:`treeitem`:void 0,"aria-level":p===`tree`?e.level+1:void 0,"aria-expanded":p===`tree`&&e.hasChildren?e.isExpanded:void 0,"aria-selected":p===`columns`?void 0:n,"aria-disabled":a||void 0,disabled:a,active:i,selected:n,onFocus:()=>D(e.node.id),onKeyDown:p===`tree`?n=>st(n,e,t):void 0,onMouseDown:p===`tree`&&!$?e=>e.preventDefault():void 0,onClick:p===`tree`&&!$?()=>K(e):void 0,className:p===`columns`?q.treeColumnRow:void 0,style:p===`columns`?{"--tree-option-column":`var(--tree-option-${t}-column, auto)`,"--tree-option-row":`var(--tree-option-${t}-row, auto)`}:void 0,children:(0,X.jsx)(Ke,{node:a?{...e.node,disabled:!0}:e.node,level:e.level,highlight:F,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:f,optionsLayout:p,actionRef:p===`columns`?e=>{T.current[t]=e,Ve(t,e)}:void 0,onToggleExpand:()=>at(e),onToggleSelection:()=>b?.(e.node,R),onActivate:()=>K(e)})},e.node.id)})})})]})}})}var Y,X;function Z(){return(Z=e((()=>{Y=t(),l(),m(),se(),g(),y(),ce(),ue(),_(),re(),pe(),ae(),U(),qe(),Ge(),X=o(),Je.__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
12
|
onSelectAll: () => void;
|
|
13
13
|
onDeselectAll: () => void;
|
|
14
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, selectionScopeIndex?: TreeNodeIndex) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{n as r,r as i,t as a,u as o}from"./TreePickerBase-BCpA1kfG.js";function s(e){if(e)return e.code&&e.code!==e.label?`${e.label} · ${e.code}`:e.label}function c({label:e,description:t,disabled:n,placeholder:r=`Выберите значение`,size:c,nodes:d,value:f,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,fieldError:y,required:b,clearable:x=!1,defaultExpandedCodeKeys:S}){let C=(0,l.useMemo)(()=>i(d),[d]),w=o(f,C),T=w?C.nodeById.get(w):void 0;return(0,u.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:c,nodes:d,selectedIds:w?new Set([w]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:S,triggerMode:`search`,selectedSummaryText:s(T),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:x?()=>p(void 0):void 0,isLoading:_,error:v,fieldError:y,required:b})}var l,u;function d(){return(d=e((()=>{l=t(),r(),u=n(),c.__docgenInfo={description:``,methods:[],displayName:`TreeSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значение"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nЗначения сопоставляются с `TreeSelectNode.codeKey`."}},composes:[`Omit`]}})))()}export{d as n,c as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DvVybOVR.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./TreeSelect.stories-emFXypZX.js";function b(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`TreeSelect`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Single-select для выбора одного узла из дерева`}),`
|
|
4
4
|
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`TreeSelect`}),` подходит для сценариев, где выбор должен происходить по одному узлу, но пользователь работает не с плоским списком, а с иерархией.`]}),`
|
package/storybook-static/assets/{TreeSelect.stories-RVPMBCd_.js → TreeSelect.stories-emFXypZX.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./treeStoryFixtures-DXHh9GL3.js";import{n as s,t as c}from"./TreeSelect-BXBL2lAD.js";var l=t({Basic:()=>m,Empty:()=>_,FirstLevelExpanded:()=>g,RequiredWithError:()=>v,SelectParent:()=>h,__namedExportsOrder:()=>y,default:()=>p});function u({args:e,updateArgs:t}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:n?void 0:e.fieldError})}}),(0,d.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),s(),a(),d=n(),f=i((e,t)=>(0,d.jsx)(u,{args:e,updateArgs:t})),p={title:`UI/TreeSelect`,component:c,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:o,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узла как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранного узла под полем.`,control:`text`},placeholder:{description:`Текст без выбранного узла.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Выбранный узел в формате codeKey/value.`,control:!1},onChange:{description:`Вызывается при выборе узла.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},clearable:{description:`Показывает действие очистки выбора.`,control:`boolean`},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},m={render:f,args:{value:{codeKey:`BRANCH`,value:`B0101`}}},h={render:f,args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},g={render:f,args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},_={render:f,args:{nodes:[],description:`Состояние без доступных узлов.`}},v={name:`Обязательное поле с ошибкой`,render:f,args:{required:!0,fieldError:`Выберите узел дерева.`,value:void 0}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderTreeSelectStory,
|
|
3
3
|
args: {
|
|
4
4
|
value: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DvVybOVR.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-DDcnv5XB.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 должны выглядеть как дерево.
|
package/storybook-static/assets/{TreeTable.stories-Lx2ImfgC.js → TreeTable.stories-DDcnv5XB.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./chevron-down-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./chevron-down-BjxDxv4C.js";import{n as a,t as o}from"./chevron-right-Bo0n7sEl.js";import{n as s}from"./iframe-BwMqUCxF.js";import{a as c,i as l}from"./utils-DiA8FLax.js";import{h as u,u as ee}from"./formatters-DVE1YVNQ-CimVV-di.js";import{n as te,t as d}from"./useTable-CK68Q4S4.js";import{_ as ne,a as re,c as ie,d as ae,f as oe,g as se,h as ce,i as le,l as ue,m as de,n as fe,o as pe,p as me,r as he,s as ge,t as _e,u as ve,v as ye,y as be}from"./FormattedTableCell-SClhK1-d.js";import{n as xe,t as f}from"./createControlledStoryRender-BouhvX-R.js";import{A as Se,D as Ce,O as we,T as Te,_ as Ee,a as De,b as Oe,g as ke,h as Ae,i as je,k as Me,y as p}from"./odata-B4ZS5oGx.js";function Ne(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function m(e){return Array.from(new Set(e))}function Pe(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[],s=[],c=[];for(let o of e){let e=t.getRowId(o);if(n.has(e)){a.push(e);continue}let s=t.getParentRowId(o)??null;n.set(e,o),r.set(e,s),c.push(e),s!==null&&s!==e&&Ne(i,s,e)}let l=[];for(let e of c){let t=r.get(e)??null;if(t===null){l.push(e);continue}if(t===e){s.push(e),l.push(e);continue}n.has(t)||(o.push(e),l.push(e))}let u=new Set,ee=(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(ee(e,a))}return l.length>0&&(o.children=l),o},te=[],d=[];for(let e of l)u.has(e)||(te.push(ee(e,new Set)),d.push(e));for(let e of c)u.has(e)||(s.push(e),te.push(ee(e,new Set)),d.push(e));return{rows:te,rowById:n,allRowIds:c,rootRowIds:m(d),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function Fe(){return(Fe=e((()=>{})))()}var Ie,h,g,Le,_,v,y,b;function x(){return(x=e((()=>{Ie=`jOS9rT`,h=`zHOAf7`,g=`j48cXg`,Le=`mf4-Kr`,_=`p8pb0F`,v=`KIudLf`,y=`bJsPGU`,b={treeColumnCell:Ie,selectedIndicatorCell:h,treeCell:g,treeCellContent:Le,expanderButton:_,expanderSpacer:v,sentinel:y}})))()}function Re(e){return Object.fromEntries(e.map(e=>[e,!0]))}function ze(e){return typeof e==`boolean`?[]:Object.keys(e).filter(t=>e[t])}function Be(e,t){return t.get(e.id)??e.original}function Ve(e,t,n,r){return e.cell.column.id===n?(0,w.jsxs)(`div`,{className:b.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${p(r)??`0em`})`},children:[e.row.getCanExpand()?(0,w.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,w.jsx)(i,{size:16}):(0,w.jsx)(o,{size:16})}):(0,w.jsx)(`span`,{className:b.expanderSpacer,"aria-hidden":`true`}),(0,w.jsx)(`div`,{className:b.treeCellContent,children:t})]}):t}function S({title:e,isLoading:t,isFetching:n,data:r,columns:i,hierarchy:a,selectionMode:o=`none`,expandFirstLevel:s=!1,defaultExpandedRowIds:l,treeColumnId:u,indentSize:d=1,className:re,tableClassName:ae,columnVisibility:se,defaultColumnVisibility:le,columnOrder:ue,defaultColumnOrder:de,columnSizing:fe,defaultColumnSizing:ge,columnPinning:be,defaultColumnPinning:xe,enableColumnResizing:f=!1,enableColumnReordering:Se=!1,columnResizeMinWidth:Ce,onColumnVisibilityChange:we,onColumnOrderChange:Te,onColumnSizingChange:De,onColumnPinningChange:Oe,onRowClick:Ae,onRowSelectionChange:je,onExpandedRowIdsChange:Me,onReachEnd:p,getRowCanSelect:Ne,getRowClassName:m,renderHeaderContextMenu:Fe,renderCellContent:Ie}){let h=(0,C.useMemo)(()=>Pe(r??[],a),[r,a]),g=(0,C.useMemo)(()=>ce(i),[i]),Le=(0,C.useMemo)(()=>{let e=new Set(l??[]);if(s)for(let t of h.rootRowIds)e.add(t);return Array.from(e)},[l,s,h.rootRowIds]),[_,v]=(0,C.useState)({}),y=(0,C.useRef)(!1),x=(0,C.useRef)(null),S=(0,C.useRef)(null),{rowSelection:He,activateRowSelection:Ue}=ke({availableRowIds:h.allRowIds,rowById:h.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:T,onColumnVisibilityChange:E}=pe({columnVisibility:se,defaultColumnVisibility:le,onColumnVisibilityChange:we}),{columnOrder:D,onColumnOrderChange:We}=oe({columnOrder:ue,defaultColumnOrder:de,onColumnOrderChange:Te}),{columnSizing:O,onColumnSizingChange:k}=ie({columnSizing:fe,defaultColumnSizing:ge,columnResizeMinWidth:Ce,onColumnSizingChange:De}),{columnPinning:A,onColumnPinningChange:Ge}=ve({columnPinning:be,defaultColumnPinning:xe,onColumnPinningChange:Oe}),Ke=(0,C.useMemo)(()=>({columnOrder:D,columnPinning:A,columnSizing:O,columnVisibility:T}),[D,A,O,T]),qe=(0,C.useEffectEvent)((e,t)=>{if(e.length===0){y.current=!1,v({});return}let n=new Set(e);v(e=>{let r=ze(e).filter(e=>n.has(e));return y.current?Re(r):(y.current=!0,Re(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),j=(0,C.useEffectEvent)(e=>{Me?.(ze(e))}),Je=(0,C.useEffectEvent)(()=>{p?.()});(0,C.useEffect)(()=>{qe(h.allRowIds,Le)},[Le,h.allRowIds]),(0,C.useEffect)(()=>{j(_)},[_]),(0,C.useEffect)(()=>{if(!p||!x.current||!S.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Je()},{root:x.current,threshold:.1});return e.observe(S.current),()=>e.disconnect()},[t,p,h.rows.length]);let M=te({features:Ee,data:h.rows,columns:i,state:{columnOrder:D,columnPinning:A,columnSizing:O,columnVisibility:T,expanded:_,rowSelection:He},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,onColumnOrderChange:We,onColumnPinningChange:Ge,onColumnSizingChange:k,onColumnVisibilityChange:E,onExpandedChange:v,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=Be(e,h.rowById);return!Ne||Ne(t)}}),N=ye(M,Ke),P=u??N[0]?.id,Ye=M.getRowModel().rows,Xe=(0,C.useMemo)(()=>me({rows:Ye,columns:N,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:P?new Set([P]):void 0}),[Ye,N,P]);return(0,w.jsx)(he,{table:M,columnState:Ke,title:e,isLoading:t,isFetching:n,className:re,tableClassName:ae,selectionMode:o,scrollableRef:x,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||Ae?e=>{let t=Be(e,h.rowById);Ue(e.id,e.getCanSelect()),Ae?.(t)}:void 0,isRowInteractive:e=>!!(Ae||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=Be(e,h.rowById);return m?.(t)},getCellClassName:({row:e,cell:t})=>c(t.column.id===P&&b.treeColumnCell,t.column.id===P&&e.getIsSelected()&&b.selectedIndicatorCell),getCellLayout:({cell:e})=>Xe.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:f,enableColumnReordering:Se,columnResizeMinWidth:Ce,renderCellContent:e=>{let t=Be(e.row,h.rowById),n=ee({field:g.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=ne({columnId:e.cell.column.id,runtimeByColumnId:g.runtimeByColumnId,customCellColumnIds:g.customCellColumnIds})?(0,w.jsx)(_e,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return Ve(e,Ie?Ie({...e,defaultContent:r,displayValue:n}):r,P,d)},afterTableContent:p?(0,w.jsx)(`div`,{ref:S,className:b.sentinel,"aria-hidden":`true`}):null})}var C,w;function He(){return(He=e((()=>{C=n(),u(),Oe(),Fe(),l(),d(),r(),a(),le(),de(),se(),fe(),be(),ae(),ue(),ge(),re(),x(),w=s(),S.__docgenInfo={description:`Древовидная таблица на базе TanStack Table для плоских OData-данных.`,methods:[],displayName:`TreeTable`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок через исходный тип строки.`},hierarchy:{required:!0,tsType:{name:`TreeTableFlatHierarchy`,elements:[{name:`TData`}],raw:`TreeTableFlatHierarchy<TData>`},description:`Правила восстановления дерева из плоского списка.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},expandFirstLevel:{required:!1,tsType:{name:`boolean`},description:"Если `true`, при первом появлении данных раскрывает корневой уровень.",defaultValue:{value:`false`,computed:!1}},defaultExpandedRowIds:{required:!1,tsType:{name:`unknown`},description:`Дополнительные строки, которые должны быть раскрыты при первой инициализации.`},treeColumnId:{required:!1,tsType:{name:`string`},description:`Идентификатор колонки, в которой нужно рисовать tree-toggle и отступы.
|
|
2
2
|
|
|
3
3
|
Если не указан, используется первая видимая колонка.`},indentSize:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:`Отступ на один уровень вложенности.
|
|
4
4
|
|