@ryuzaki13/react-foundation-ui 1.2.7 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -1
- package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
- package/storybook-static/assets/Badge-BqGrcxAM.js +139 -0
- package/storybook-static/assets/Badge.stories-D-4FPPMr.js +51 -0
- package/storybook-static/assets/Button-Dk2YMZua.js +12 -0
- package/storybook-static/assets/{Button-R2ebF86Y.js → Button-iCkwBEDP.js} +47 -47
- package/storybook-static/assets/Button.stories-BkV_xVnD.js +75 -0
- package/storybook-static/assets/{CheckBox-CaI3XPfw.js → CheckBox-BQhsynyB.js} +1 -1
- package/storybook-static/assets/{CheckBox-jIOKCtKS.js → CheckBox-C-f5AsCI.js} +31 -31
- package/storybook-static/assets/CheckBox.stories-7V9WkaKi.js +60 -0
- package/storybook-static/assets/Color-KMSTOMOX-CYcFidZH.js +1 -0
- package/storybook-static/assets/ContextMenu-DinzhWx_.js +40 -0
- package/storybook-static/assets/{ContextMenu.stories-DuHhaMZG.js → ContextMenu.stories-B9O_FkLB.js} +1 -1
- package/storybook-static/assets/DateInput-BT_5pRV0.js +40 -0
- package/storybook-static/assets/DateInput-CvJvdtwa.js +1 -0
- package/storybook-static/assets/{DateInput.stories-DA4m_bt-.js → DateInput.stories-BDKMX9K3.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect-Bck3ITZr.js +30 -0
- package/storybook-static/assets/DateRangePresetSelect-CPZ6FKGz.js +3 -0
- package/storybook-static/assets/DateRangePresetSelect.stories-D5fRZmWy.js +11 -0
- package/storybook-static/assets/Detail-DBH4WUCF.js +40 -0
- package/storybook-static/assets/Detail.stories-Kvnqo8Un.js +44 -0
- package/storybook-static/assets/{Dialog-DRwO9iJS.js → Dialog-Cv_od09Q.js} +22 -22
- package/storybook-static/assets/Dialog.stories-CY8mr-2o.js +31 -0
- package/storybook-static/assets/Disclosure-BVz61VJq.js +32 -0
- package/storybook-static/assets/{Disclosure.stories-Bu_i_1U_.js → Disclosure.stories-CufTvUiK.js} +2 -2
- package/storybook-static/assets/DocsRenderer-JROSPFPF-BJw82UhU.js +2 -0
- package/storybook-static/assets/DropZone-DOvkWmBD.js +36 -0
- package/storybook-static/assets/{DropZone.stories-DlaN01G9.js → DropZone.stories-K1bqdB2U.js} +2 -2
- package/storybook-static/assets/DropdownMenu-Cx08nIaY.js +1 -0
- package/storybook-static/assets/{ExpandableActionPanel.stories-DzfL1phg.js → ExpandableActionPanel.stories-BZ3P24ES.js} +2 -2
- package/storybook-static/assets/Flex-Brzvr0YX.js +3 -0
- package/storybook-static/assets/Flex-CVjyrD9i.js +61 -0
- package/storybook-static/assets/{Flex.stories-BYls_CQf.js → Flex.stories-B9dkwuh5.js} +1 -1
- package/storybook-static/assets/{Grid-C-xko03k.js → Grid-DhASlspp.js} +1 -1
- package/storybook-static/assets/Grid-blnYLgOs.js +61 -0
- package/storybook-static/assets/{Grid.stories-D_D0IapG.js → Grid.stories-DafgjrQm.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-CswLqd0C.js → ImageCropper.stories-638pLg4D.js} +1 -1
- package/storybook-static/assets/ImageRenderer-C6DwGwQl.js +2 -0
- package/storybook-static/assets/{ImageRenderer.stories-Bw_FhRQS.js → ImageRenderer.stories-DJJiqQFU.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-W43xyxSy.js → ImageView.stories-DVeX-CzY.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-p81pm72u.js → ImageViewer.stories-NqiR5Eyj.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DkG2C2vh.js → ImageViewerRuntime-C0uGYGQl.js} +2 -2
- package/storybook-static/assets/Input-4QsBT-dh.js +39 -0
- package/storybook-static/assets/Input-CjJUuLEX.js +3 -0
- package/storybook-static/assets/Input.stories-DX8FX7AI.js +38 -0
- package/storybook-static/assets/InputDateTime-C6cR1WP9.js +39 -0
- package/storybook-static/assets/InputDateTime.stories-DPK8Y5p2.js +35 -0
- package/storybook-static/assets/{InputFile-ZiotxlMe.js → InputFile-BwI_udQQ.js} +26 -26
- package/storybook-static/assets/InputFile.stories-BdWP2iBM.js +36 -0
- package/storybook-static/assets/InputFiles-CPY6AJQJ.js +1 -0
- package/storybook-static/assets/{InputFiles-DWUxFStB.js → InputFiles-CfmNIDk_.js} +26 -26
- package/storybook-static/assets/InputFiles.stories-DnXD0hgD.js +33 -0
- package/storybook-static/assets/{InputImage-DmGIfR7v.js → InputImage-CgjrjJiq.js} +26 -26
- package/storybook-static/assets/{InputImage.stories-BD6OuYSL.js → InputImage.stories-CFHzEXGv.js} +1 -1
- package/storybook-static/assets/LayoutPicker-BfwRb9HQ.js +66 -0
- package/storybook-static/assets/{LayoutPicker.stories-CHQeF27J.js → LayoutPicker.stories-C9sMcU1k.js} +3 -3
- package/storybook-static/assets/Listbox-B2FoYInE.js +38 -0
- package/storybook-static/assets/Listbox.stories-BnGRDEMg.js +47 -0
- package/storybook-static/assets/{Modal-Cu6UplI8.js → Modal-Bd8v3vU8.js} +32 -32
- package/storybook-static/assets/Modal.stories-CmYJeAAz.js +180 -0
- package/storybook-static/assets/MultiSelect-BeRfLM-g.js +2 -0
- package/storybook-static/assets/MultiSelect-Bswj23vq.js +56 -0
- package/storybook-static/assets/MultiSelect.stories-iKlesibJ.js +29 -0
- package/storybook-static/assets/{NotificationsHost-CzBey-gZ.js → NotificationsHost-Cf0puFJk.js} +22 -22
- package/storybook-static/assets/NotificationsHost.stories-DX1niytc.js +25 -0
- package/storybook-static/assets/ODataMultiSelect-BvFXZlGZ.js +53 -0
- package/storybook-static/assets/ODataMultiSelect-CiZ3aEy3.js +1 -0
- package/storybook-static/assets/ODataMultiSelect.stories-BcRrzHnf.js +73 -0
- package/storybook-static/assets/ODataSelect-Bo0yPtod.js +1 -0
- package/storybook-static/assets/{ODataSelect-BTue1iaA.js → ODataSelect-DgH5G-C_.js} +32 -32
- package/storybook-static/assets/ODataSelect.stories-DEOly20_.js +73 -0
- package/storybook-static/assets/ODataTreeMultiSelect-IKfvxL7p.js +17 -0
- package/storybook-static/assets/ODataTreeMultiSelect.stories-uPDVAyMu.js +28 -0
- package/storybook-static/assets/ODataTreeSelect-BujgjSkl.js +16 -0
- package/storybook-static/assets/ODataTreeSelect.stories-BzlUExoW.js +21 -0
- package/storybook-static/assets/{PeriodSelect-BMZas-k8.js → PeriodSelect-BJIPDLq1.js} +31 -31
- package/storybook-static/assets/{PeriodSelect.stories-3w66x0Wx.js → PeriodSelect.stories-D12q6-YO.js} +1 -1
- package/storybook-static/assets/{Popover-Cp69zYWt.js → Popover-D25DhaiJ.js} +29 -29
- package/storybook-static/assets/{Popover.stories-Dm2olc8x.js → Popover.stories-CF3zUe0j.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-7DV2qzpJ.js → PresetRangeDateInput-CDw6HtWA.js} +19 -19
- package/storybook-static/assets/PresetRangeDateInput.stories-BQZI6HOn.js +15 -0
- package/storybook-static/assets/{RadioButton-CZgaZarn.js → RadioButton-BgEBxZJi.js} +27 -27
- package/storybook-static/assets/{RadioButton.stories-DRGhwy-6.js → RadioButton.stories-BkFGEJXb.js} +2 -2
- package/storybook-static/assets/{RadioGroup-B9pw-kxR.js → RadioGroup-C-K84fCC.js} +26 -26
- package/storybook-static/assets/RadioGroup-Jq-lWcgE.js +1 -0
- package/storybook-static/assets/RadioGroup.stories-DyuW8DaF.js +42 -0
- package/storybook-static/assets/Select-BrRZA3Up.js +12 -0
- package/storybook-static/assets/{Select-DcRA8coi.js → Select-ChYAdfkx.js} +35 -35
- package/storybook-static/assets/Select.stories-D-onxXmT.js +46 -0
- package/storybook-static/assets/SelectOptionContent-Cwd0p14r.js +1 -0
- package/storybook-static/assets/SerializableSelect-CcBh49iS.js +4 -0
- package/storybook-static/assets/{SerializableSelect-BFMP4RoU.js → SerializableSelect-D9BlCZ4x.js} +32 -32
- package/storybook-static/assets/SerializableSelect.stories-BXMFTNDx.js +43 -0
- package/storybook-static/assets/SingleDateTimeInput-cHIGelrz.js +53 -0
- package/storybook-static/assets/SingleDateTimeInput.stories-BdPyEPUr.js +78 -0
- package/storybook-static/assets/Slider-Cb_nb9P2.js +63 -0
- package/storybook-static/assets/Slider.stories-CoKGxwRT.js +77 -0
- package/storybook-static/assets/SliderInput-DyxDl1Mo.js +58 -0
- package/storybook-static/assets/{SliderInput.stories-CDS4YS_3.js → SliderInput.stories-DgbBm38V.js} +1 -1
- package/storybook-static/assets/Sortable-DC3bPcbn.js +72 -0
- package/storybook-static/assets/{Sortable.stories--yPzhn7U.js → Sortable.stories-B_IhqW5F.js} +1 -1
- package/storybook-static/assets/{Splitter-6_oQu3c4.js → Splitter-CGw6p5-z.js} +39 -39
- package/storybook-static/assets/Splitter.stories-DNlOAJY9.js +22 -0
- package/storybook-static/assets/{StateSelect-ClrBKHfD.js → StateSelect-cU_bLcpU.js} +25 -25
- package/storybook-static/assets/{StateSelect.stories-DtpIwsdv.js → StateSelect.stories-D0Z05ltu.js} +2 -2
- package/storybook-static/assets/Switch-C-3mRPBf.js +36 -0
- package/storybook-static/assets/Switch.stories-Csqx8bKj.js +26 -0
- package/storybook-static/assets/Table-4x8XIQpa.js +197 -0
- package/storybook-static/assets/{Table.stories-BZOmuXFd.js → Table.stories-DLsx7_5W.js} +1 -1
- package/storybook-static/assets/Tabs-BYxa2MdO.js +72 -0
- package/storybook-static/assets/{Tabs.stories-p59QJ2Tc.js → Tabs.stories-Bs2uE5X2.js} +1 -1
- package/storybook-static/assets/TagInput.stories-8_Uk7z4a.js +18 -0
- package/storybook-static/assets/{Textarea-DtmMCSxT.js → Textarea-C9do4TkE.js} +26 -26
- package/storybook-static/assets/Textarea.stories-khYPBnjL.js +27 -0
- package/storybook-static/assets/TimePanel-DAQw6BvJ.js +1 -0
- package/storybook-static/assets/{TimePanel.stories-D2scop0x.js → TimePanel.stories-D8uZoVpL.js} +1 -1
- package/storybook-static/assets/{Toggle-C9Yg9JE_.js → Toggle-C4pQIuyy.js} +26 -26
- package/storybook-static/assets/Toggle.stories-DhF17j-W.js +30 -0
- package/storybook-static/assets/TreeMultiSelect-B6_6vRxE.js +15 -0
- package/storybook-static/assets/TreeMultiSelect-Drs35VVA.js +1 -0
- package/storybook-static/assets/TreeMultiSelect.stories-D6YSwiei.js +31 -0
- package/storybook-static/assets/{TreePickerBase-p_zyJtun.js → TreePickerBase-DCognf3p.js} +2 -2
- package/storybook-static/assets/TreeSelect-CAAu7_OB.js +15 -0
- package/storybook-static/assets/TreeSelect-DxdqUuJ6.js +1 -0
- package/storybook-static/assets/TreeSelect.stories-BqF-qAB9.js +16 -0
- package/storybook-static/assets/TreeTable-TKNA-uIN.js +175 -0
- package/storybook-static/assets/{TreeTable.stories-BZLmxdzp.js → TreeTable.stories-yeAD18Zw.js} +2 -2
- package/storybook-static/assets/WithTooltip-7X4HQR7L-CxfB6hD8.js +9 -0
- package/storybook-static/assets/{base-table-C7bVdENP.js → base-table-ByITBr1J.js} +1 -1
- package/storybook-static/assets/blocks-0RiOsxIK.js +285 -0
- package/storybook-static/assets/button-B1ZGqKIL.js +1 -0
- package/storybook-static/assets/{check-box-B71d1lgw.js → check-box-NnScD6BH.js} +1 -1
- package/storybook-static/assets/chunk-3LY4VQVK-DprWWQ6L.js +6 -0
- package/storybook-static/assets/{chunk-LITCR56V-kr_6KJh-.js → chunk-LITCR56V-CsoWERay.js} +2 -2
- package/storybook-static/assets/contextMenu-B7OY9AUe.js +2 -0
- package/storybook-static/assets/error-B-BZQLMk.js +1 -0
- package/storybook-static/assets/flex-DjZzX5cW.js +1 -0
- package/storybook-static/assets/floating-ui.react-6aWiJn-w.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-Bhbxmhyr.js +1 -0
- package/storybook-static/assets/{formatters-Br290Dmy.js → formatters-3Nbt_zpw.js} +1 -1
- package/storybook-static/assets/grid-CXx-3eN4.js +1 -0
- package/storybook-static/assets/{hooks-DzbwAWAd.js → hooks-cOC2wx_S.js} +1 -1
- package/storybook-static/assets/{iframe-B1Ua6ocI.js → iframe-GmIo3IOR.js} +199 -197
- package/storybook-static/assets/input-BZoBzauA.js +1 -0
- package/storybook-static/assets/{mdx-react-shim-DHWnLJR9.js → mdx-react-shim-DQ40dZsI.js} +1 -1
- package/storybook-static/assets/media-CaNRzUMK.js +1 -0
- package/storybook-static/assets/misc-DSZ85X5k.js +5 -0
- package/storybook-static/assets/notifications-dwTsOfAG.js +1 -0
- package/storybook-static/assets/odata-BXYPW5TY.js +1 -0
- package/storybook-static/assets/odata-service-CdmjwNQZ.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-DS1zYaZm.js → odataStoryFixtures-qHROzCso.js} +1 -1
- package/storybook-static/assets/picker-Ly9fNo5I.js +2 -0
- package/storybook-static/assets/popover-hHS3Q1Eb.js +2 -0
- package/storybook-static/assets/preset-select-DSUOhzZJ.js +5 -0
- package/storybook-static/assets/{react-18-D4G2zUNp.js → react-18-C8dLShAR.js} +1 -1
- package/storybook-static/assets/react-CufbfMTd.js +9 -0
- package/storybook-static/assets/react-dom-B1EOrd4K.js +1 -0
- package/storybook-static/assets/select-CjW1dQXg.js +1 -0
- package/storybook-static/assets/slider-CKtA1jkD.js +2 -0
- package/storybook-static/assets/sortable-C7z1FJM0.js +1 -0
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-D-6cX_EQ.js → syntaxhighlighter-RTCFPKCB-DUS1jW_J.js} +2 -2
- package/storybook-static/assets/text-Cw7Vu082.js +4 -0
- package/storybook-static/assets/theming-Ce0TAFtT.js +39 -0
- package/storybook-static/assets/ui-Dlg5NgOB.js +1 -0
- package/storybook-static/assets/useODataSelectBase-BE8nJXZo.js +1 -0
- package/storybook-static/assets/useODataTreeData-Dli9NQVP.js +1 -0
- package/storybook-static/assets/utils-B73_kE2n.js +1 -0
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.html +16 -6
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +352 -0
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js.LEGAL.txt +31 -0
- package/storybook-static/sb-addons/vitest-4/manager-bundle.js +3 -0
- package/storybook-static/assets/Badge-BNG4jaAG.js +0 -139
- package/storybook-static/assets/Badge.stories-DBR_TCrU.js +0 -51
- package/storybook-static/assets/Button-CV6qRYrS.js +0 -12
- package/storybook-static/assets/Button.stories-BxQyR9Jj.js +0 -75
- package/storybook-static/assets/CheckBox.stories-B53ABl5i.js +0 -60
- package/storybook-static/assets/Color-KMSTOMOX-Cyl8cJgb.js +0 -1
- package/storybook-static/assets/ContextMenu-BwtAOupO.js +0 -40
- package/storybook-static/assets/DateInput-BdC-rKjp.js +0 -40
- package/storybook-static/assets/DateInput-Bn8ERC92.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect-9x2PXji2.js +0 -3
- package/storybook-static/assets/DateRangePresetSelect-BAxLf-sI.js +0 -30
- package/storybook-static/assets/DateRangePresetSelect.stories-Cpm9i1Gs.js +0 -11
- package/storybook-static/assets/Detail-jSNmxeK-.js +0 -40
- package/storybook-static/assets/Detail.stories-CnI5n5T5.js +0 -44
- package/storybook-static/assets/Dialog.stories-BzFqMgrU.js +0 -31
- package/storybook-static/assets/Disclosure-BbjuwgPN.js +0 -32
- package/storybook-static/assets/DocsRenderer-JROSPFPF-BijI6psg.js +0 -2
- package/storybook-static/assets/DropZone-8RM16_68.js +0 -36
- package/storybook-static/assets/DropdownMenu-COmcfMmT.js +0 -1
- package/storybook-static/assets/Flex-BQBzh4Tr.js +0 -3
- package/storybook-static/assets/Flex-CHaV6K7m.js +0 -61
- package/storybook-static/assets/Grid-DloPlrCB.js +0 -61
- package/storybook-static/assets/ImageRenderer-DbFiaYXn.js +0 -2
- package/storybook-static/assets/Input--cNyU-Ag.js +0 -3
- package/storybook-static/assets/Input-ZH34LSnz.js +0 -39
- package/storybook-static/assets/Input.stories-DM-fUL_7.js +0 -38
- package/storybook-static/assets/InputDateTime-BZGJSifI.js +0 -39
- package/storybook-static/assets/InputDateTime.stories-BVdDIO_9.js +0 -35
- package/storybook-static/assets/InputFile.stories-CU0wd7SJ.js +0 -36
- package/storybook-static/assets/InputFiles-B3vHz3jd.js +0 -1
- package/storybook-static/assets/InputFiles.stories-DfzkzBu8.js +0 -33
- package/storybook-static/assets/LayoutPicker-DO0Hq5wg.js +0 -66
- package/storybook-static/assets/Listbox-BoBf1VYa.js +0 -38
- package/storybook-static/assets/Listbox.stories-Cs6ABkXs.js +0 -47
- package/storybook-static/assets/Modal.stories-DDHOCfX1.js +0 -180
- package/storybook-static/assets/MultiSelect-BVATOh-_.js +0 -2
- package/storybook-static/assets/MultiSelect-Dkv3SI5J.js +0 -56
- package/storybook-static/assets/MultiSelect.stories-CPNipIbC.js +0 -29
- package/storybook-static/assets/NotificationsHost.stories-CeRXDmBa.js +0 -25
- package/storybook-static/assets/ODataMultiSelect-BIDgmui6.js +0 -53
- package/storybook-static/assets/ODataMultiSelect-U8WlXc3y.js +0 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DmeX7-ss.js +0 -73
- package/storybook-static/assets/ODataSelect-BO4av_hn.js +0 -1
- package/storybook-static/assets/ODataSelect.stories-DpQp77ZX.js +0 -73
- package/storybook-static/assets/ODataTreeMultiSelect-tcWnebHq.js +0 -17
- package/storybook-static/assets/ODataTreeMultiSelect.stories-C6of8u9F.js +0 -28
- package/storybook-static/assets/ODataTreeSelect-B88XSjq4.js +0 -16
- package/storybook-static/assets/ODataTreeSelect.stories-CXN2zOja.js +0 -21
- package/storybook-static/assets/PresetRangeDateInput.stories-CWwkINdd.js +0 -15
- package/storybook-static/assets/RadioGroup-DPNg9UXg.js +0 -1
- package/storybook-static/assets/RadioGroup.stories-D_nQ2UMX.js +0 -42
- package/storybook-static/assets/Select-C5DH0hMi.js +0 -12
- package/storybook-static/assets/Select.stories-BxlItwVq.js +0 -46
- package/storybook-static/assets/SelectOptionContent-RFIk8-W0.js +0 -1
- package/storybook-static/assets/SerializableSelect-CJtC_MVh.js +0 -4
- package/storybook-static/assets/SerializableSelect.stories-Cwk9kf8V.js +0 -43
- package/storybook-static/assets/SingleDateTimeInput-BM_emntS.js +0 -53
- package/storybook-static/assets/SingleDateTimeInput.stories-DK0JJ19r.js +0 -78
- package/storybook-static/assets/Slider-BjAGWnmv.js +0 -63
- package/storybook-static/assets/Slider.stories-AFZ3sK6N.js +0 -77
- package/storybook-static/assets/SliderInput-CEmHsnm3.js +0 -58
- package/storybook-static/assets/Sortable-BwTtVBVt.js +0 -72
- package/storybook-static/assets/Splitter.stories-BLDqjnbb.js +0 -22
- package/storybook-static/assets/Switch-cwvSIlOe.js +0 -36
- package/storybook-static/assets/Switch.stories-BNMmFr3z.js +0 -26
- package/storybook-static/assets/Table-BScnaCwl.js +0 -197
- package/storybook-static/assets/Tabs-WCUd456k.js +0 -72
- package/storybook-static/assets/TagInput.stories-UojVk_Jy.js +0 -18
- package/storybook-static/assets/Textarea.stories-Db3Pigr7.js +0 -27
- package/storybook-static/assets/TimePanel-Bjn51Vi_.js +0 -1
- package/storybook-static/assets/Toggle.stories-Ok2NhICE.js +0 -30
- package/storybook-static/assets/TreeMultiSelect-DJzqY2Hd.js +0 -1
- package/storybook-static/assets/TreeMultiSelect-DxFQkzpN.js +0 -15
- package/storybook-static/assets/TreeMultiSelect.stories-BOgyH5ny.js +0 -31
- package/storybook-static/assets/TreeSelect-C2_2A0_N.js +0 -15
- package/storybook-static/assets/TreeSelect-CejsBEz8.js +0 -1
- package/storybook-static/assets/TreeSelect.stories-DerIIWQL.js +0 -16
- package/storybook-static/assets/TreeTable-3l5conv1.js +0 -175
- package/storybook-static/assets/WithTooltip-7X4HQR7L-C39XELKG.js +0 -9
- package/storybook-static/assets/blocks-DBWaa853.js +0 -285
- package/storybook-static/assets/button-DhCvGY9d.js +0 -1
- package/storybook-static/assets/chunk-3LY4VQVK-Cy15UFby.js +0 -6
- package/storybook-static/assets/contextMenu-P53ulGd4.js +0 -2
- package/storybook-static/assets/error-BF58nufO.js +0 -1
- package/storybook-static/assets/flex-OzI2qdBD.js +0 -1
- package/storybook-static/assets/floating-ui.react-BCZnZKor.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-Bu16EJYG.js +0 -1
- package/storybook-static/assets/grid-BRIKMdnO.js +0 -1
- package/storybook-static/assets/input-CKW6wgYr.js +0 -1
- package/storybook-static/assets/jsx-runtime-BBQGix-2.js +0 -1
- package/storybook-static/assets/lucide-react-DiTL2FZl.js +0 -1
- package/storybook-static/assets/media-CP09Ak2C.js +0 -1
- package/storybook-static/assets/misc-CI386biM.js +0 -5
- package/storybook-static/assets/notifications-El-91bgG.js +0 -1
- package/storybook-static/assets/odata-jXHOPHLv.js +0 -1
- package/storybook-static/assets/odata-service-DMzLjWr8.js +0 -1
- package/storybook-static/assets/picker-DhufeWWq.js +0 -2
- package/storybook-static/assets/popover-DCygDZB4.js +0 -2
- package/storybook-static/assets/preset-select-C0o8oMRZ.js +0 -5
- package/storybook-static/assets/react-DXmRDR8e.js +0 -9
- package/storybook-static/assets/react-dom-DaUZFAdI.js +0 -1
- package/storybook-static/assets/select-Dcb4X2qB.js +0 -1
- package/storybook-static/assets/slider-D7YUv9lW.js +0 -2
- package/storybook-static/assets/sortable-_Ry8I9Yk.js +0 -1
- package/storybook-static/assets/text-DpidzPjQ.js +0 -4
- package/storybook-static/assets/theming-BWpdH-US.js +0 -39
- package/storybook-static/assets/ui-wilQ6cnk.js +0 -1
- package/storybook-static/assets/useODataSelectBase-8RpFkVBi.js +0 -1
- package/storybook-static/assets/useODataTreeData-Bc19nm97.js +0 -1
- package/storybook-static/assets/utils-DKOsD-4R.js +0 -1
- /package/storybook-static/sb-addons/{a11y-2 → a11y-3}/manager-bundle.js +0 -0
- /package/storybook-static/sb-addons/{docs-1 → docs-2}/manager-bundle.js +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{BasicDivision as p,CollectionError as m,HideCode as h,LinkedFilters as g,LoadingState as _,MetadataError as v,SelectTextValue as y,StaticDependency as b,n as x,t as S}from"./ODataMultiSelect.stories-BcRrzHnf.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(o,{of:S,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,T.jsx)(l,{children:`ODataMultiSelect`}),`
|
|
3
|
+
`,(0,T.jsx)(a,{children:`Мультиселект с загрузкой коллекций по OData и зависимостями от внешних фильтров`}),`
|
|
4
|
+
`,(0,T.jsx)(t.p,{children:`ODataMultiSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
5
|
+
Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента. Отдельно разобраны загрузку, ошибочные состояния.`}),`
|
|
6
|
+
`,(0,T.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
7
|
+
`,(0,T.jsx)(d,{}),`
|
|
8
|
+
`,(0,T.jsx)(r,{of:p}),`
|
|
9
|
+
`,(0,T.jsx)(t.pre,{children:(0,T.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
|
|
10
|
+
|
|
11
|
+
import { ODataMultiSelect } from "@/shared/ui";
|
|
12
|
+
|
|
13
|
+
export function Example() {
|
|
14
|
+
const [value, setValue] = useState([]);
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<ODataMultiSelect label="Подразделения" value={value} onChange={setValue} entitySet="Departments" textKey="Name" codeKey="Code" />
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
`})}),`
|
|
21
|
+
`,(0,T.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
|
|
22
|
+
`,(0,T.jsxs)(t.ul,{children:[`
|
|
23
|
+
`,(0,T.jsx)(t.li,{children:`Для асинхронных сценариев предусмотрите не только успешный путь, но и загрузку, пустой результат и ошибку.`}),`
|
|
24
|
+
`]}),`
|
|
25
|
+
`,(0,T.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
|
|
26
|
+
`,(0,T.jsx)(t.h3,{id:`базовый-сценарий-загрузки-odata-коллекции`,children:`Базовый сценарий загрузки OData-коллекции`}),`
|
|
27
|
+
`,(0,T.jsx)(t.p,{children:`Базовый сценарий загрузки OData-коллекции.`}),`
|
|
28
|
+
`,(0,T.jsx)(u,{of:p}),`
|
|
29
|
+
`,(0,T.jsx)(t.h3,{id:`сценарий-скрытия-кода-option-в-интерфейсе`,children:`Сценарий скрытия кода option в интерфейсе`}),`
|
|
30
|
+
`,(0,T.jsx)(t.p,{children:`Сценарий скрытия кода option в интерфейсе.`}),`
|
|
31
|
+
`,(0,T.jsx)(u,{of:h}),`
|
|
32
|
+
`,(0,T.jsx)(t.h3,{id:`работа-с-текстовым-значением`,children:`Работа с текстовым значением`}),`
|
|
33
|
+
`,(0,T.jsx)(t.p,{children:`Работа с текстовым значением.`}),`
|
|
34
|
+
`,(0,T.jsx)(u,{of:y}),`
|
|
35
|
+
`,(0,T.jsx)(t.h3,{id:`статическая-зависимость-от-другого-фильтра`,children:`Статическая зависимость от другого фильтра`}),`
|
|
36
|
+
`,(0,T.jsx)(t.p,{children:`Статическая зависимость от другого фильтра.`}),`
|
|
37
|
+
`,(0,T.jsx)(u,{of:b}),`
|
|
38
|
+
`,(0,T.jsx)(t.h3,{id:`связка-нескольких-фильтров-между-собой`,children:`Связка нескольких фильтров между собой`}),`
|
|
39
|
+
`,(0,T.jsx)(t.p,{children:`Связка нескольких фильтров между собой.`}),`
|
|
40
|
+
`,(0,T.jsx)(u,{of:g}),`
|
|
41
|
+
`,(0,T.jsx)(t.h3,{id:`состояние-загрузки-данных`,children:`Состояние загрузки данных`}),`
|
|
42
|
+
`,(0,T.jsx)(t.p,{children:`Состояние загрузки данных.`}),`
|
|
43
|
+
`,(0,T.jsx)(u,{of:_}),`
|
|
44
|
+
`,(0,T.jsx)(t.h3,{id:`ошибки-загрузки-или-разбора-метаданных`,children:`Ошибки загрузки или разбора метаданных`}),`
|
|
45
|
+
`,(0,T.jsx)(t.p,{children:`Ошибки загрузки или разбора метаданных.`}),`
|
|
46
|
+
`,(0,T.jsx)(u,{of:v}),`
|
|
47
|
+
`,(0,T.jsx)(t.h3,{id:`ошибки-получения-коллекции-значений`,children:`Ошибки получения коллекции значений`}),`
|
|
48
|
+
`,(0,T.jsx)(t.p,{children:`Ошибки получения коллекции значений.`}),`
|
|
49
|
+
`,(0,T.jsx)(u,{of:m}),`
|
|
50
|
+
`,(0,T.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
51
|
+
`,(0,T.jsx)(c,{of:S}),`
|
|
52
|
+
`,(0,T.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
53
|
+
`,(0,T.jsx)(i,{includePrimary:!1})]})}function w(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,T.jsx)(t,{...e,children:(0,T.jsx)(C,{...e})}):C(e)}var T;e((()=>{T=t(),f(),s(),x()}))();export{w as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{pn as t,t as n}from"./iframe-GmIo3IOR.js";import{a as r,s as i}from"./odata-BXYPW5TY.js";import{n as a,r as o,t as s}from"./useODataSelectBase-BE8nJXZo.js";import{n as c,t as l}from"./MultiSelect-BeRfLM-g.js";function u({odata:e,segment:t,model:n,value:r,dependencies:i,onChange:s}){let c=o({odata:e,segment:t,model:n,value:r,dependencies:i}),l=e=>{s(a(e,c.selectionKey))};return{...c,handleChange:l}}var d=e((()=>{s()})),f,p,m=e((()=>{t(),i(),d(),c(),f=n(),p=({odata:e,segment:t,model:n,label:i,description:a,disabled:o,value:s,dependencies:c,onChange:d,size:p})=>{let m=u({odata:e,segment:t,model:r(n),value:s,dependencies:c,onChange:d});return(0,f.jsx)(l,{label:i,description:a,size:p,codeKey:m.codeKey,textKey:m.textKey,hideCode:t.hideCode??e.hideCode,items:m.filteredItems,value:m.selectedItems,onChange:m.handleChange,onQuery:m.setQuery,query:m.query,defaultFilter:!1,highlightQuery:m.debouncedQuery,disabled:o||m.isLoading,placeholder:m.placeholder,error:m.isError?`Ошибка загрузки`:void 0})},p.__docgenInfo={description:``,methods:[],displayName:`ODataMultiSelect`}}));export{m as n,p as t};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{a,i as o,n as s,r as c,s as l,t as u}from"./odataStoryFixtures-qHROzCso.js";import{n as d,t as f}from"./ODataMultiSelect-CiZ3aEy3.js";var p=e({BasicDivision:()=>y,CollectionError:()=>E,HideCode:()=>b,LinkedFilters:()=>C,LoadingState:()=>w,MetadataError:()=>T,SelectTextValue:()=>x,StaticDependency:()=>S,__namedExportsOrder:()=>D,default:()=>v});function m({initialValue:e=[],odata:t=s,model:n=u,segment:r=c,dependencies:i,label:a=`OData MultiSelect`,description:o}){let[l,d]=(0,g.useState)(e);return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,_.jsx)(f,{label:a,description:o,odata:t,model:n,segment:r,value:l,dependencies:i,onChange:d}),(0,_.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,l.length?l.join(`, `):`пусто`]})]})}function h(){let[e,t]=(0,g.useState)([a.region]),[n,r]=(0,g.useState)([a.branch,a.branchAlt]),[i,o]=(0,g.useState)([a.team]),[c,l]=(0,g.useState)([a.owner,a.ownerAlt]),d=e.length?{REGION:e}:void 0,p=e.length&&n.length?{REGION:e,BRANCH:n}:d,m=e.length&&n.length&&i.length?{REGION:e,BRANCH:n,TEAM:i}:p;return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:16,maxWidth:720},children:[(0,_.jsx)(f,{label:`Регион`,description:`Корневой фильтр для цепочки. После смены значения downstream-фильтры сбрасываются.`,odata:s,model:{...u,codeKey:`REGION`},segment:{placeholder:`Регион`},value:e,onChange:e=>{t(e),r([]),o([]),l([])}}),(0,_.jsx)(f,{label:`Подразделение`,description:`Выбор нескольких подразделений внутри выбранных регионов.`,odata:s,model:{...u,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:d,value:n,onChange:e=>{r(e),o([]),l([])}}),(0,_.jsx)(f,{label:`Команда`,description:`Третий уровень зависит от текущего набора подразделений.`,odata:s,model:{...u,codeKey:`TEAM`},segment:{placeholder:`Команда`},dependencies:p,value:i,onChange:e=>{o(e),l([])}}),(0,_.jsx)(f,{label:`Ответственный`,description:`Leaf-уровень для выбранных команд.`,odata:s,model:{...u,codeKey:`OWNER`},segment:{placeholder:`Ответственный`},dependencies:m,value:c,onChange:l}),(0,_.jsxs)(`div`,{style:{display:`grid`,gap:4,fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[(0,_.jsxs)(`div`,{children:[`Регион: `,e.length?e.join(`, `):`пусто`]}),(0,_.jsxs)(`div`,{children:[`Подразделение: `,n.length?n.join(`, `):`пусто`]}),(0,_.jsxs)(`div`,{children:[`Команда: `,i.length?i.join(`, `):`пусто`]}),(0,_.jsxs)(`div`,{children:[`Ответственный: `,c.length?c.join(`, `):`пусто`]})]})]})}var g,_,v,y,b,x,S,C,w,T,E,D,O=n((()=>{g=t(r(),1),o(),d(),_=i(),v={title:`Shared/UI/ODataMultiSelect`,component:f,decorators:[l],parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`Регион`,description:`Пример OData MultiSelect на основе конфигурации ui control.`,odata:s,model:u,segment:c,value:[],onChange:()=>{}},argTypes:{onChange:{control:!1},value:{control:!1},dependencies:{control:!1}}},y={name:`Базовый регион`,render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Базовая настройка из multiSelectConfig: выбор кодов REGION с текстовым отображением.`,model:{...u,codeKey:`REGION`},segment:{placeholder:`Регион`},initialValue:[a.region]})},b={name:`Скрытый код`,render:()=>(0,_.jsx)(m,{label:`Подразделение`,description:`Сценарий segment.hideCode: в списке и токене показывается только текст без кода.`,model:{...u,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`,hideCode:!0},initialValue:[a.branch,a.branchAlt]})},x={name:`Выбор текста вместо кода`,render:()=>(0,_.jsx)(m,{label:`Регион по тексту`,description:`Сценарий segment.selectText: наружу возвращаются текстовые значения, а не коды.`,model:{...u,codeKey:`REGION`},segment:{placeholder:`Регион`,selectText:!0},initialValue:[a.regionText]})},S={name:`Зависимость от региона`,render:()=>(0,_.jsx)(m,{label:`Подразделение c зависимостью`,description:`Фильтрация подразделений по уже выбранному региону через props.dependencies.`,model:{...u,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:{REGION:[a.region]},initialValue:[a.branch]})},C={name:`Связанная цепочка фильтров`,render:()=>(0,_.jsx)(h,{})},w={name:`Состояние загрузки`,parameters:{odataMockMode:`loading`},render:()=>(0,_.jsx)(m,{label:`Команда`,description:`Mock с задержкой ответа, чтобы проверить loading-state и skeleton.`,model:{...u,codeKey:`TEAM`},segment:{placeholder:`Команда`}})},T={name:`Ошибка metadata`,parameters:{odataMockMode:`metadataError`},render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Сервис возвращает ошибку metadata. Полезно для проверки поведения хука useODataEntity.`,model:{...u,codeKey:`REGION`},segment:{placeholder:`Регион`}})},E={name:`Ошибка коллекции`,parameters:{odataMockMode:`collectionError`},render:()=>(0,_.jsx)(m,{label:`Ответственный`,description:`Metadata доступна, но загрузка коллекции завершается ошибкой.`,model:{...u,codeKey:`OWNER`},segment:{placeholder:`Ответственный`}})},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
name: "Базовый регион",
|
|
3
|
+
render: () => <StatefulODataMultiSelect label="Регион" description="Базовая настройка из multiSelectConfig: выбор кодов REGION с текстовым отображением." model={{
|
|
4
|
+
...baseModel,
|
|
5
|
+
codeKey: "REGION"
|
|
6
|
+
}} segment={{
|
|
7
|
+
placeholder: "Регион"
|
|
8
|
+
}} initialValue={[storyValues.region]} />
|
|
9
|
+
}`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
|
|
10
|
+
name: "Скрытый код",
|
|
11
|
+
render: () => <StatefulODataMultiSelect label="Подразделение" description="Сценарий segment.hideCode: в списке и токене показывается только текст без кода." model={{
|
|
12
|
+
...baseModel,
|
|
13
|
+
codeKey: "BRANCH"
|
|
14
|
+
}} segment={{
|
|
15
|
+
placeholder: "Подразделение",
|
|
16
|
+
hideCode: true
|
|
17
|
+
}} initialValue={[storyValues.branch, storyValues.branchAlt]} />
|
|
18
|
+
}`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
19
|
+
name: "Выбор текста вместо кода",
|
|
20
|
+
render: () => <StatefulODataMultiSelect label="Регион по тексту" description="Сценарий segment.selectText: наружу возвращаются текстовые значения, а не коды." model={{
|
|
21
|
+
...baseModel,
|
|
22
|
+
codeKey: "REGION"
|
|
23
|
+
}} segment={{
|
|
24
|
+
placeholder: "Регион",
|
|
25
|
+
selectText: true
|
|
26
|
+
}} initialValue={[storyValues.regionText]} />
|
|
27
|
+
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
28
|
+
name: "Зависимость от региона",
|
|
29
|
+
render: () => <StatefulODataMultiSelect label="Подразделение c зависимостью" description="Фильтрация подразделений по уже выбранному региону через props.dependencies." model={{
|
|
30
|
+
...baseModel,
|
|
31
|
+
codeKey: "BRANCH"
|
|
32
|
+
}} segment={{
|
|
33
|
+
placeholder: "Подразделение"
|
|
34
|
+
}} dependencies={{
|
|
35
|
+
REGION: [storyValues.region]
|
|
36
|
+
}} initialValue={[storyValues.branch]} />
|
|
37
|
+
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
38
|
+
name: "Связанная цепочка фильтров",
|
|
39
|
+
render: () => <LinkedFiltersDemo />
|
|
40
|
+
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
41
|
+
name: "Состояние загрузки",
|
|
42
|
+
parameters: {
|
|
43
|
+
odataMockMode: "loading"
|
|
44
|
+
},
|
|
45
|
+
render: () => <StatefulODataMultiSelect label="Команда" description="Mock с задержкой ответа, чтобы проверить loading-state и skeleton." model={{
|
|
46
|
+
...baseModel,
|
|
47
|
+
codeKey: "TEAM"
|
|
48
|
+
}} segment={{
|
|
49
|
+
placeholder: "Команда"
|
|
50
|
+
}} />
|
|
51
|
+
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
52
|
+
name: "Ошибка metadata",
|
|
53
|
+
parameters: {
|
|
54
|
+
odataMockMode: "metadataError"
|
|
55
|
+
},
|
|
56
|
+
render: () => <StatefulODataMultiSelect label="Регион" description="Сервис возвращает ошибку metadata. Полезно для проверки поведения хука useODataEntity." model={{
|
|
57
|
+
...baseModel,
|
|
58
|
+
codeKey: "REGION"
|
|
59
|
+
}} segment={{
|
|
60
|
+
placeholder: "Регион"
|
|
61
|
+
}} />
|
|
62
|
+
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
63
|
+
name: "Ошибка коллекции",
|
|
64
|
+
parameters: {
|
|
65
|
+
odataMockMode: "collectionError"
|
|
66
|
+
},
|
|
67
|
+
render: () => <StatefulODataMultiSelect label="Ответственный" description="Metadata доступна, но загрузка коллекции завершается ошибкой." model={{
|
|
68
|
+
...baseModel,
|
|
69
|
+
codeKey: "OWNER"
|
|
70
|
+
}} segment={{
|
|
71
|
+
placeholder: "Ответственный"
|
|
72
|
+
}} />
|
|
73
|
+
}`,...E.parameters?.docs?.source}}},D=[`BasicDivision`,`HideCode`,`SelectTextValue`,`StaticDependency`,`LinkedFilters`,`LoadingState`,`MetadataError`,`CollectionError`]}));O();export{y as BasicDivision,E as CollectionError,b as HideCode,C as LinkedFilters,w as LoadingState,T as MetadataError,x as SelectTextValue,S as StaticDependency,D as __namedExportsOrder,v as default,O as n,p as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n,t as r}from"./iframe-GmIo3IOR.js";import{s as i}from"./Input-CjJUuLEX.js";import{t as a}from"./input-BZoBzauA.js";import{n as o,t as s}from"./Select-BrRZA3Up.js";import{a as c,s as l}from"./odata-BXYPW5TY.js";import{r as u,t as d}from"./useODataSelectBase-BE8nJXZo.js";import{n as f,t as p}from"./SelectOptionContent-Cwd0p14r.js";function m({odata:e,segment:t,model:n,value:r,dependencies:i,onChange:a}){let o=u({odata:e,segment:t,model:n,value:r?[r]:[],dependencies:i}),s=o.selectedItems[0],c=(0,h.useMemo)(()=>s?[s,...o.filteredItems]:o.filteredItems,[o.filteredItems,s]),l=e=>{a(e?.[o.selectionKey])};return{...o,selectedItem:s,options:c,handleChange:l}}var h,g=t((()=>{h=e(n(),1),d()}));function _(e,t,n){return e?t||Object.keys(e).find(e=>e!==n)||n:t||n}var v,y,b=t((()=>{n(),l(),a(),g(),o(),f(),v=r(),y=({odata:e,segment:t,model:n,size:r,label:a,description:o,disabled:l,value:u,dependencies:d,onChange:f,clearable:h})=>{let g=m({odata:e,segment:t,model:c(n),value:u,dependencies:d,onChange:f});if(g.isLoading)return(0,v.jsx)(i,{size:r,label:a,description:o});let y=t.hideCode??e.hideCode,b=_(g.selectedItem??g.options[0],g.textKey,g.codeKey);return(0,v.jsx)(s,{size:r,label:a,description:o,options:g.options,value:g.selectedItem,onChange:g.handleChange,getOptionKey:e=>e[g.codeKey],getOptionLabel:e=>e[b],getOptionCode:y?void 0:e=>e[g.codeKey],getOptionAriaLabel:e=>y||e[b]===e[g.codeKey]?String(e[b]):`${e[b]} ${e[g.codeKey]}`,renderValue:e=>(0,v.jsx)(p,{label:e[b],code:y?void 0:e[g.codeKey]}),renderOption:e=>(0,v.jsx)(p,{label:e[b],code:y?void 0:e[g.codeKey],highlight:g.debouncedQuery}),searchable:!0,query:g.query,onQuery:g.setQuery,defaultFilter:!1,disabled:l||g.isLoading,placeholder:g.placeholder,loadingState:`Загрузка...`,errorState:g.isError?`Ошибка загрузки`:void 0,emptyState:!g.isLoading&&!g.isError?`Нет данных`:void 0,clearable:h})},y.__docgenInfo={description:``,methods:[],displayName:`ODataSelect`,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:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}}}}));export{b as n,y as t};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as
|
|
2
|
-
`,(0,T.jsx)(
|
|
3
|
-
`,(0,T.jsx)(
|
|
4
|
-
`,(0,T.jsx)(
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{BasicDivision as p,CollectionError as m,HideCode as h,LinkedFilters as g,LoadingState as _,MetadataError as v,SelectTextValue as y,StaticDependency as b,n as x,t as S}from"./ODataSelect.stories-DEOly20_.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(o,{of:S,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,T.jsx)(l,{children:`ODataSelect`}),`
|
|
3
|
+
`,(0,T.jsx)(a,{children:`Single-select с загрузкой OData-справочника, поиском и зависимостями от внешних фильтров`}),`
|
|
4
|
+
`,(0,T.jsx)(t.p,{children:`ODataSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
5
5
|
Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента.`}),`
|
|
6
|
-
`,(0,T.jsx)(
|
|
7
|
-
`,(0,T.jsx)(
|
|
8
|
-
`,(0,T.jsx)(
|
|
9
|
-
`,(0,T.jsx)(
|
|
6
|
+
`,(0,T.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
7
|
+
`,(0,T.jsx)(d,{}),`
|
|
8
|
+
`,(0,T.jsx)(r,{of:p}),`
|
|
9
|
+
`,(0,T.jsx)(t.pre,{children:(0,T.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
|
|
10
10
|
|
|
11
11
|
import { ODataSelect } from "@/shared/ui";
|
|
12
12
|
|
|
@@ -25,28 +25,28 @@ export function Example() {
|
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
`})}),`
|
|
28
|
-
`,(0,T.jsx)(
|
|
29
|
-
`,(0,T.jsxs)(
|
|
30
|
-
`,(0,T.jsx)(
|
|
28
|
+
`,(0,T.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
|
|
29
|
+
`,(0,T.jsxs)(t.ul,{children:[`
|
|
30
|
+
`,(0,T.jsx)(t.li,{children:`Для OData-сценариев проверяйте не только выбор значения, но и поиск, загрузку, пустой результат и ошибочные ответы сервиса.`}),`
|
|
31
31
|
`]}),`
|
|
32
|
-
`,(0,T.jsx)(
|
|
33
|
-
`,(0,T.jsx)(
|
|
34
|
-
`,(0,T.jsx)(
|
|
35
|
-
`,(0,T.jsx)(
|
|
36
|
-
`,(0,T.jsx)(
|
|
37
|
-
`,(0,T.jsx)(
|
|
38
|
-
`,(0,T.jsx)(
|
|
39
|
-
`,(0,T.jsx)(
|
|
40
|
-
`,(0,T.jsx)(
|
|
41
|
-
`,(0,T.jsx)(
|
|
42
|
-
`,(0,T.jsx)(
|
|
43
|
-
`,(0,T.jsx)(
|
|
44
|
-
`,(0,T.jsx)(
|
|
45
|
-
`,(0,T.jsx)(
|
|
46
|
-
`,(0,T.jsx)(
|
|
47
|
-
`,(0,T.jsx)(
|
|
48
|
-
`,(0,T.jsx)(
|
|
49
|
-
`,(0,T.jsx)(
|
|
50
|
-
`,(0,T.jsx)(
|
|
51
|
-
`,(0,T.jsx)(
|
|
52
|
-
`,(0,T.jsx)(
|
|
32
|
+
`,(0,T.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
|
|
33
|
+
`,(0,T.jsx)(t.h3,{id:`базовый-сценарий-загрузки-odata-коллекции`,children:`Базовый сценарий загрузки OData-коллекции`}),`
|
|
34
|
+
`,(0,T.jsx)(u,{of:p}),`
|
|
35
|
+
`,(0,T.jsx)(t.h3,{id:`сценарий-скрытия-кода-option-в-интерфейсе`,children:`Сценарий скрытия кода option в интерфейсе`}),`
|
|
36
|
+
`,(0,T.jsx)(u,{of:h}),`
|
|
37
|
+
`,(0,T.jsx)(t.h3,{id:`работа-с-текстовым-значением`,children:`Работа с текстовым значением`}),`
|
|
38
|
+
`,(0,T.jsx)(u,{of:y}),`
|
|
39
|
+
`,(0,T.jsx)(t.h3,{id:`статическая-зависимость-от-другого-фильтра`,children:`Статическая зависимость от другого фильтра`}),`
|
|
40
|
+
`,(0,T.jsx)(u,{of:b}),`
|
|
41
|
+
`,(0,T.jsx)(t.h3,{id:`связка-нескольких-фильтров-между-собой`,children:`Связка нескольких фильтров между собой`}),`
|
|
42
|
+
`,(0,T.jsx)(u,{of:g}),`
|
|
43
|
+
`,(0,T.jsx)(t.h3,{id:`состояние-загрузки-данных`,children:`Состояние загрузки данных`}),`
|
|
44
|
+
`,(0,T.jsx)(u,{of:_}),`
|
|
45
|
+
`,(0,T.jsx)(t.h3,{id:`ошибки-загрузки-или-разбора-метаданных`,children:`Ошибки загрузки или разбора метаданных`}),`
|
|
46
|
+
`,(0,T.jsx)(u,{of:v}),`
|
|
47
|
+
`,(0,T.jsx)(t.h3,{id:`ошибки-получения-коллекции-значений`,children:`Ошибки получения коллекции значений`}),`
|
|
48
|
+
`,(0,T.jsx)(u,{of:m}),`
|
|
49
|
+
`,(0,T.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
50
|
+
`,(0,T.jsx)(c,{of:S}),`
|
|
51
|
+
`,(0,T.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
52
|
+
`,(0,T.jsx)(i,{includePrimary:!1})]})}function w(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,T.jsx)(t,{...e,children:(0,T.jsx)(C,{...e})}):C(e)}var T;e((()=>{T=t(),f(),s(),x()}))();export{w as default};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{n as a,t as o}from"./ODataSelect-Bo0yPtod.js";import{a as s,i as c,n as l,r as u,s as d,t as f}from"./odataStoryFixtures-qHROzCso.js";var p=e({BasicDivision:()=>y,CollectionError:()=>E,HideCode:()=>b,LinkedFilters:()=>C,LoadingState:()=>w,MetadataError:()=>T,SelectTextValue:()=>x,StaticDependency:()=>S,__namedExportsOrder:()=>D,default:()=>v});function m({initialValue:e,odata:t=l,model:n=f,segment:r=u,dependencies:i,label:a=`OData Select`,description:s}){let[c,d]=(0,g.useState)(e);return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,_.jsx)(o,{label:a,description:s,odata:t,model:n,segment:r,value:c,dependencies:i,onChange:d}),(0,_.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,c||`пусто`]})]})}function h(){let[e,t]=(0,g.useState)(s.region),[n,r]=(0,g.useState)(s.branch),[i,a]=(0,g.useState)(s.team),[c,u]=(0,g.useState)(s.owner),d=e?{REGION:[e]}:void 0,p=e&&n?{REGION:[e],BRANCH:[n]}:d,m=e&&n&&i?{REGION:[e],BRANCH:[n],TEAM:[i]}:p;return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:16,maxWidth:720},children:[(0,_.jsx)(o,{label:`Регион`,description:`Первый фильтр в цепочке. Меняет доступный набор подразделений.`,odata:l,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`},value:e,onChange:e=>{t(e),r(void 0),a(void 0),u(void 0)}}),(0,_.jsx)(o,{label:`Подразделение`,description:`Второй фильтр зависит от выбранного региона.`,odata:l,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:d,value:n,onChange:e=>{r(e),a(void 0),u(void 0)}}),(0,_.jsx)(o,{label:`Команда`,description:`Третий фильтр зависит от сочетания региона и подразделения.`,odata:l,model:{...f,codeKey:`TEAM`},segment:{placeholder:`Команда`},dependencies:p,value:i,onChange:e=>{a(e),u(void 0)}}),(0,_.jsx)(o,{label:`Ответственный`,description:`Последний фильтр показывает leaf-узлы для выбранного пути.`,odata:l,model:{...f,codeKey:`OWNER`},segment:{placeholder:`Ответственный`},dependencies:m,value:c,onChange:u}),(0,_.jsxs)(`div`,{style:{display:`grid`,gap:4,fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[(0,_.jsxs)(`div`,{children:[`Регион: `,e||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Подразделение: `,n||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Команда: `,i||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Ответственный: `,c||`пусто`]})]})]})}var g,_,v,y,b,x,S,C,w,T,E,D,O=n((()=>{g=t(r(),1),a(),c(),_=i(),v={title:`Shared/UI/ODataSelect`,component:o,decorators:[d],parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`Регион`,description:`Пример OData Select на основе конфигурации ui control.`,odata:l,model:f,segment:u,value:void 0,onChange:()=>{}},argTypes:{onChange:{control:!1},value:{control:!1},dependencies:{control:!1}}},y={name:`Базовый регион`,render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Базовая настройка single-select для выбора кода REGION.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`},initialValue:s.region})},b={name:`Скрытый код`,render:()=>(0,_.jsx)(m,{label:`Подразделение`,description:`Код скрыт и в выпадающем списке, и в выбранном значении.`,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`,hideCode:!0},initialValue:s.branch})},x={name:`Выбор текста вместо кода`,render:()=>(0,_.jsx)(m,{label:`Регион по тексту`,description:`Снаружи хранится текстовое значение, а не код.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`,selectText:!0},initialValue:s.regionText})},S={name:`Зависимость от региона`,render:()=>(0,_.jsx)(m,{label:`Подразделение c зависимостью`,description:`Фильтрация подразделений по уже выбранному региону через props.dependencies.`,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:{REGION:[s.region]},initialValue:s.branch})},C={name:`Связанная цепочка фильтров`,render:()=>(0,_.jsx)(h,{})},w={name:`Состояние загрузки`,parameters:{odataMockMode:`loading`},render:()=>(0,_.jsx)(m,{label:`Команда`,description:`Mock с задержкой ответа, чтобы проверить loading-state.`,model:{...f,codeKey:`TEAM`},segment:{placeholder:`Команда`}})},T={name:`Ошибка metadata`,parameters:{odataMockMode:`metadataError`},render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Сервис возвращает ошибку metadata.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`}})},E={name:`Ошибка коллекции`,parameters:{odataMockMode:`collectionError`},render:()=>(0,_.jsx)(m,{label:`Ответственный`,description:`Metadata доступна, но загрузка коллекции завершается ошибкой.`,model:{...f,codeKey:`OWNER`},segment:{placeholder:`Ответственный`}})},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
name: "Базовый регион",
|
|
3
|
+
render: () => <StatefulODataSelect label="Регион" description="Базовая настройка single-select для выбора кода REGION." model={{
|
|
4
|
+
...baseModel,
|
|
5
|
+
codeKey: "REGION"
|
|
6
|
+
}} segment={{
|
|
7
|
+
placeholder: "Регион"
|
|
8
|
+
}} initialValue={storyValues.region} />
|
|
9
|
+
}`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
|
|
10
|
+
name: "Скрытый код",
|
|
11
|
+
render: () => <StatefulODataSelect label="Подразделение" description="Код скрыт и в выпадающем списке, и в выбранном значении." model={{
|
|
12
|
+
...baseModel,
|
|
13
|
+
codeKey: "BRANCH"
|
|
14
|
+
}} segment={{
|
|
15
|
+
placeholder: "Подразделение",
|
|
16
|
+
hideCode: true
|
|
17
|
+
}} initialValue={storyValues.branch} />
|
|
18
|
+
}`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
19
|
+
name: "Выбор текста вместо кода",
|
|
20
|
+
render: () => <StatefulODataSelect label="Регион по тексту" description="Снаружи хранится текстовое значение, а не код." model={{
|
|
21
|
+
...baseModel,
|
|
22
|
+
codeKey: "REGION"
|
|
23
|
+
}} segment={{
|
|
24
|
+
placeholder: "Регион",
|
|
25
|
+
selectText: true
|
|
26
|
+
}} initialValue={storyValues.regionText} />
|
|
27
|
+
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
28
|
+
name: "Зависимость от региона",
|
|
29
|
+
render: () => <StatefulODataSelect label="Подразделение c зависимостью" description="Фильтрация подразделений по уже выбранному региону через props.dependencies." model={{
|
|
30
|
+
...baseModel,
|
|
31
|
+
codeKey: "BRANCH"
|
|
32
|
+
}} segment={{
|
|
33
|
+
placeholder: "Подразделение"
|
|
34
|
+
}} dependencies={{
|
|
35
|
+
REGION: [storyValues.region]
|
|
36
|
+
}} initialValue={storyValues.branch} />
|
|
37
|
+
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
38
|
+
name: "Связанная цепочка фильтров",
|
|
39
|
+
render: () => <LinkedFiltersDemo />
|
|
40
|
+
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
41
|
+
name: "Состояние загрузки",
|
|
42
|
+
parameters: {
|
|
43
|
+
odataMockMode: "loading"
|
|
44
|
+
},
|
|
45
|
+
render: () => <StatefulODataSelect label="Команда" description="Mock с задержкой ответа, чтобы проверить loading-state." model={{
|
|
46
|
+
...baseModel,
|
|
47
|
+
codeKey: "TEAM"
|
|
48
|
+
}} segment={{
|
|
49
|
+
placeholder: "Команда"
|
|
50
|
+
}} />
|
|
51
|
+
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
52
|
+
name: "Ошибка metadata",
|
|
53
|
+
parameters: {
|
|
54
|
+
odataMockMode: "metadataError"
|
|
55
|
+
},
|
|
56
|
+
render: () => <StatefulODataSelect label="Регион" description="Сервис возвращает ошибку metadata." model={{
|
|
57
|
+
...baseModel,
|
|
58
|
+
codeKey: "REGION"
|
|
59
|
+
}} segment={{
|
|
60
|
+
placeholder: "Регион"
|
|
61
|
+
}} />
|
|
62
|
+
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
63
|
+
name: "Ошибка коллекции",
|
|
64
|
+
parameters: {
|
|
65
|
+
odataMockMode: "collectionError"
|
|
66
|
+
},
|
|
67
|
+
render: () => <StatefulODataSelect label="Ответственный" description="Metadata доступна, но загрузка коллекции завершается ошибкой." model={{
|
|
68
|
+
...baseModel,
|
|
69
|
+
codeKey: "OWNER"
|
|
70
|
+
}} segment={{
|
|
71
|
+
placeholder: "Ответственный"
|
|
72
|
+
}} />
|
|
73
|
+
}`,...E.parameters?.docs?.source}}},D=[`BasicDivision`,`HideCode`,`SelectTextValue`,`StaticDependency`,`LinkedFilters`,`LoadingState`,`MetadataError`,`CollectionError`]}));O();export{y as BasicDivision,E as CollectionError,b as HideCode,C as LinkedFilters,w as LoadingState,T as MetadataError,x as SelectTextValue,S as StaticDependency,D as __namedExportsOrder,v as default,O as n,p as t};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Basic as p,ErrorState as m,LoadingState as h,MixedSelection as g,ParentCompression as _,n as v,t as y}from"./ODataTreeMultiSelect.stories-uPDVAyMu.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)(o,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,S.jsx)(l,{children:`ODataTreeMultiSelect`}),`
|
|
3
|
+
`,(0,S.jsx)(a,{children:`Мультивыбор по одной OData-цепочке в виде дерева`}),`
|
|
4
|
+
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`ODataTreeMultiSelect`}),` строит дерево из одной OData-цепочки и отдает наружу канонизированный выбор в формате `,(0,S.jsx)(t.code,{children:`Record<string, string[]>`}),`.`]}),`
|
|
5
|
+
`,(0,S.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
6
|
+
`,(0,S.jsx)(d,{}),`
|
|
7
|
+
`,(0,S.jsx)(r,{of:p}),`
|
|
8
|
+
`,(0,S.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
|
|
9
|
+
`,(0,S.jsx)(u,{of:p}),`
|
|
10
|
+
`,(0,S.jsx)(u,{of:_}),`
|
|
11
|
+
`,(0,S.jsx)(u,{of:g}),`
|
|
12
|
+
`,(0,S.jsx)(u,{of:h}),`
|
|
13
|
+
`,(0,S.jsx)(u,{of:m}),`
|
|
14
|
+
`,(0,S.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
15
|
+
`,(0,S.jsx)(c,{of:y}),`
|
|
16
|
+
`,(0,S.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
17
|
+
`,(0,S.jsx)(i,{includePrimary:!1})]})}function x(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,S.jsx)(t,{...e,children:(0,S.jsx)(b,{...e})}):b(e)}var S;e((()=>{S=t(),f(),s(),v()}))();export{x as default};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{a,i as o,n as s,o as c,s as l}from"./odataStoryFixtures-qHROzCso.js";import{n as u,t as d}from"./useODataTreeData-Dli9NQVP.js";import{n as f,t as p}from"./TreeMultiSelect-Drs35VVA.js";function m({label:e,description:t,disabled:n,size:r,placeholder:i,query:a,defaultQuery:o,onQuery:s,optionsLayout:c,value:l,onChange:d,odata:f,segments:m,model:g}){let _=u({odata:f,segments:m,model:g});return(0,h.jsx)(p,{label:e,description:t,disabled:n||_.isLoading,size:r,placeholder:i??_.placeholder,nodes:_.nodes,value:l,onChange:d,query:a,defaultQuery:o,onQuery:s,optionsLayout:c,isLoading:_.isLoading,error:_.isError?`Ошибка загрузки`:void 0})}var h,g=n((()=>{d(),f(),h=i(),m.__docgenInfo={description:``,methods:[],displayName:`ODataTreeMultiSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{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:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Переключает способ показа загруженного OData-дерева, не меняя формат value и запросов.`}},composes:[`Omit`]}})),_=e({BalancedColumns:()=>T,Basic:()=>S,ErrorState:()=>D,LoadingState:()=>E,MixedSelection:()=>w,ParentCompression:()=>C,__namedExportsOrder:()=>O,default:()=>x});function v({initialValue:e={},odata:t=s,segments:n=c,label:r=`ODataTreeMultiSelect`,description:i,optionsLayout:a=`tree`}){let[o,l]=(0,y.useState)(e);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,b.jsx)(m,{label:r,description:i,odata:t,segments:n,value:o,onChange:l,optionsLayout:a}),(0,b.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(o)]})]})}var y,b,x,S,C,w,T,E,D,O,k=n((()=>{y=t(r(),1),o(),g(),b=i(),x={title:`Shared/UI/ODataTreeMultiSelect`,component:m,decorators:[l],parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Multi-select поверх одной OData-цепочки.`,odata:s,segments:c,value:{},onChange:()=>{}},argTypes:{segments:{control:!1},value:{control:!1},onChange:{control:!1}}},S={render:()=>(0,b.jsx)(v,{initialValue:{OWNER:[a.owner]}})},C={render:()=>(0,b.jsx)(v,{label:`Компрессия subtree`,description:`Пример, когда наружу уходит узел верхнего уровня вместо полного списка потомков.`,initialValue:{REGION:[a.region]}})},w={render:()=>(0,b.jsx)(v,{label:`Смешанный выбор`,description:`Смешанный frontier по соседним уровням в OData-дереве.`,initialValue:{BRANCH:[a.branch],OWNER:[a.ownerAlt]}})},T={render:()=>(0,b.jsx)(v,{label:`OData tree в столбцах`,description:`Все уровни открыты, а popup балансирует ширину и высоту по доступному viewport.`,optionsLayout:`columns`,initialValue:{BRANCH:[a.branch]}})},E={parameters:{odataMockMode:`loading`},render:()=>(0,b.jsx)(v,{description:`Сценарий загрузки дерева.`})},D={parameters:{odataMockMode:`collectionError`},render:()=>(0,b.jsx)(v,{description:`Сценарий ошибки загрузки дерева.`})},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
render: () => <StatefulODataTreeMultiSelect initialValue={{
|
|
3
|
+
OWNER: [storyValues.owner]
|
|
4
|
+
}} />
|
|
5
|
+
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
6
|
+
render: () => <StatefulODataTreeMultiSelect label="Компрессия subtree" description="Пример, когда наружу уходит узел верхнего уровня вместо полного списка потомков." initialValue={{
|
|
7
|
+
REGION: [storyValues.region]
|
|
8
|
+
}} />
|
|
9
|
+
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
10
|
+
render: () => <StatefulODataTreeMultiSelect label="Смешанный выбор" description="Смешанный frontier по соседним уровням в OData-дереве." initialValue={{
|
|
11
|
+
BRANCH: [storyValues.branch],
|
|
12
|
+
OWNER: [storyValues.ownerAlt]
|
|
13
|
+
}} />
|
|
14
|
+
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
15
|
+
render: () => <StatefulODataTreeMultiSelect label="OData tree в столбцах" description="Все уровни открыты, а popup балансирует ширину и высоту по доступному viewport." optionsLayout="columns" initialValue={{
|
|
16
|
+
BRANCH: [storyValues.branch]
|
|
17
|
+
}} />
|
|
18
|
+
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
19
|
+
parameters: {
|
|
20
|
+
odataMockMode: "loading"
|
|
21
|
+
},
|
|
22
|
+
render: () => <StatefulODataTreeMultiSelect description="Сценарий загрузки дерева." />
|
|
23
|
+
}`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
|
|
24
|
+
parameters: {
|
|
25
|
+
odataMockMode: "collectionError"
|
|
26
|
+
},
|
|
27
|
+
render: () => <StatefulODataTreeMultiSelect description="Сценарий ошибки загрузки дерева." />
|
|
28
|
+
}`,...D.parameters?.docs?.source}}},O=[`Basic`,`ParentCompression`,`MixedSelection`,`BalancedColumns`,`LoadingState`,`ErrorState`]}));k();export{T as BalancedColumns,S as Basic,D as ErrorState,E as LoadingState,w as MixedSelection,C as ParentCompression,O as __namedExportsOrder,x as default,k as n,_ as t};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{Basic as p,ErrorState as m,LoadingState as h,SelectParent as g,n as _,t as v}from"./ODataTreeSelect.stories-BzlUExoW.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(o,{of:v,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,x.jsx)(l,{children:`ODataTreeSelect`}),`
|
|
3
|
+
`,(0,x.jsx)(a,{children:`Single-select по одной OData-цепочке в виде дерева`}),`
|
|
4
|
+
`,(0,x.jsxs)(t.p,{children:[(0,x.jsx)(t.code,{children:`ODataTreeSelect`}),` загружает одну OData-коллекцию, строит дерево по цепочке codeKey и позволяет выбрать любой узел.`]}),`
|
|
5
|
+
`,(0,x.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
6
|
+
`,(0,x.jsx)(d,{}),`
|
|
7
|
+
`,(0,x.jsx)(r,{of:p}),`
|
|
8
|
+
`,(0,x.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
|
|
9
|
+
`,(0,x.jsx)(u,{of:p}),`
|
|
10
|
+
`,(0,x.jsx)(u,{of:g}),`
|
|
11
|
+
`,(0,x.jsx)(u,{of:h}),`
|
|
12
|
+
`,(0,x.jsx)(u,{of:m}),`
|
|
13
|
+
`,(0,x.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
14
|
+
`,(0,x.jsx)(c,{of:v}),`
|
|
15
|
+
`,(0,x.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
16
|
+
`,(0,x.jsx)(i,{includePrimary:!1})]})}function b(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,x.jsx)(t,{...e,children:(0,x.jsx)(y,{...e})}):y(e)}var x;e((()=>{x=t(),f(),s(),_()}))();export{b as default};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{a,i as o,n as s,o as c,s as l}from"./odataStoryFixtures-qHROzCso.js";import{n as u,t as d}from"./useODataTreeData-Dli9NQVP.js";import{n as f,t as p}from"./TreeSelect-DxdqUuJ6.js";function m({label:e,description:t,disabled:n,size:r,placeholder:i,query:a,defaultQuery:o,onQuery:s,value:c,onChange:l,odata:d,segments:f,model:m,clearable:g}){let _=u({odata:d,segments:f,model:m});return(0,h.jsx)(p,{label:e,description:t,disabled:n||_.isLoading,size:r,placeholder:i??_.placeholder,nodes:_.nodes,value:c,onChange:l,query:a,defaultQuery:o,onQuery:s,isLoading:_.isLoading,error:_.isError?`Ошибка загрузки`:void 0,clearable:g})}var h,g=n((()=>{d(),f(),h=i(),m.__docgenInfo={description:``,methods:[],displayName:`ODataTreeSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{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:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})),_=e({Basic:()=>S,ErrorState:()=>T,LoadingState:()=>w,SelectParent:()=>C,__namedExportsOrder:()=>E,default:()=>x});function v({initialValue:e,odata:t=s,segments:n=c,label:r=`ODataTreeSelect`,description:i}){let[a,o]=(0,y.useState)(e);return(0,b.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,b.jsx)(m,{label:r,description:i,odata:t,segments:n,value:a,onChange:o}),(0,b.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,a?`${a.codeKey}=${a.value}`:`пусто`]})]})}var y,b,x,S,C,w,T,E,D=n((()=>{y=t(r(),1),o(),g(),b=i(),x={title:`Shared/UI/ODataTreeSelect`,component:m,decorators:[l],parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Single-select поверх одной OData-цепочки.`,odata:s,segments:c,value:void 0,onChange:()=>{}},argTypes:{segments:{control:!1},value:{control:!1},onChange:{control:!1}}},S={render:()=>(0,b.jsx)(v,{initialValue:{codeKey:`OWNER`,value:a.owner}})},C={render:()=>(0,b.jsx)(v,{label:`Выбор родителя`,description:`Проверка выбора узла верхнего уровня из OData-дерева.`,initialValue:{codeKey:`REGION`,value:a.region}})},w={parameters:{odataMockMode:`loading`},render:()=>(0,b.jsx)(v,{description:`Сценарий загрузки дерева.`})},T={parameters:{odataMockMode:`collectionError`},render:()=>(0,b.jsx)(v,{description:`Сценарий ошибки загрузки дерева.`})},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
render: () => <StatefulODataTreeSelect initialValue={{
|
|
3
|
+
codeKey: "OWNER",
|
|
4
|
+
value: storyValues.owner
|
|
5
|
+
}} />
|
|
6
|
+
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
7
|
+
render: () => <StatefulODataTreeSelect label="Выбор родителя" description="Проверка выбора узла верхнего уровня из OData-дерева." initialValue={{
|
|
8
|
+
codeKey: "REGION",
|
|
9
|
+
value: storyValues.region
|
|
10
|
+
}} />
|
|
11
|
+
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
12
|
+
parameters: {
|
|
13
|
+
odataMockMode: "loading"
|
|
14
|
+
},
|
|
15
|
+
render: () => <StatefulODataTreeSelect description="Сценарий загрузки дерева." />
|
|
16
|
+
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
17
|
+
parameters: {
|
|
18
|
+
odataMockMode: "collectionError"
|
|
19
|
+
},
|
|
20
|
+
render: () => <StatefulODataTreeSelect description="Сценарий ошибки загрузки дерева." />
|
|
21
|
+
}`,...T.parameters?.docs?.source}}},E=[`Basic`,`SelectParent`,`LoadingState`,`ErrorState`]}));D();export{S as Basic,T as ErrorState,w as LoadingState,C as SelectParent,E as __namedExportsOrder,x as default,D as n,_ as t};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as
|
|
2
|
-
`,(0,S.jsx)(
|
|
3
|
-
`,(0,S.jsx)(
|
|
4
|
-
`,(0,S.jsxs)(
|
|
5
|
-
`,(0,S.jsxs)(
|
|
6
|
-
`,(0,S.jsx)(
|
|
7
|
-
`,(0,S.jsx)(
|
|
8
|
-
`,(0,S.jsx)(
|
|
9
|
-
`,(0,S.jsx)(
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-GmIo3IOR.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-0RiOsxIK.js";import{t as f}from"./mdx-react-shim-DQ40dZsI.js";import{AllAllowedOptionsDisabled as p,AutoSwitchByRange as m,Controlled as h,Disabled as g,MonthAndYear as _,n as v,t as y}from"./PeriodSelect.stories-D12q6-YO.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(o,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,S.jsx)(l,{children:`PeriodSelect`}),`
|
|
3
|
+
`,(0,S.jsx)(a,{children:`Выбор периода детализации дат с ограничением вариантов по связанному диапазону`}),`
|
|
4
|
+
`,(0,S.jsxs)(t.p,{children:[`PeriodSelect используется для выбора уровня детализации: `,(0,S.jsx)(t.code,{children:`day`}),`, `,(0,S.jsx)(t.code,{children:`week`}),`, `,(0,S.jsx)(t.code,{children:`month`}),` или `,(0,S.jsx)(t.code,{children:`year`}),`. Компонент хранит только id выбранного периода, а недоступность вариантов вычисляет по переданному `,(0,S.jsx)(t.code,{children:`dateRange`}),` и порогам `,(0,S.jsx)(t.code,{children:`maxDayRangeDays`}),` / `,(0,S.jsx)(t.code,{children:`maxWeekRangeWeeks`}),`.`]}),`
|
|
5
|
+
`,(0,S.jsxs)(t.p,{children:[`Prop `,(0,S.jsx)(t.code,{children:`presetIds`}),` ограничивает встроенный каталог разрешенными вариантами. Независимо от порядка id в конфигурации контрол отображает их в каноническом порядке `,(0,S.jsx)(t.code,{children:`day → week → month → year`}),`. Отсутствующий, пустой или полностью невалидный список безопасно заменяется полным встроенным набором. Собственный `,(0,S.jsx)(t.code,{children:`options`}),` имеет приоритет над `,(0,S.jsx)(t.code,{children:`presetIds`}),`.`]}),`
|
|
6
|
+
`,(0,S.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
7
|
+
`,(0,S.jsx)(d,{}),`
|
|
8
|
+
`,(0,S.jsx)(r,{of:h}),`
|
|
9
|
+
`,(0,S.jsx)(t.pre,{children:(0,S.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
|
|
10
10
|
|
|
11
11
|
import { PeriodSelect, type PeriodSelectPresetId } from "@ryuzaki13/react-foundation-ui/period-select";
|
|
12
12
|
|
|
@@ -26,26 +26,26 @@ export function Example() {
|
|
|
26
26
|
);
|
|
27
27
|
}
|
|
28
28
|
`})}),`
|
|
29
|
-
`,(0,S.jsx)(
|
|
30
|
-
`,(0,S.jsxs)(
|
|
31
|
-
`,(0,S.jsxs)(
|
|
32
|
-
`,(0,S.jsxs)(
|
|
33
|
-
`,(0,S.jsxs)(
|
|
34
|
-
`,(0,S.jsxs)(
|
|
35
|
-
`,(0,S.jsxs)(
|
|
29
|
+
`,(0,S.jsx)(t.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
|
|
30
|
+
`,(0,S.jsxs)(t.ul,{children:[`
|
|
31
|
+
`,(0,S.jsxs)(t.li,{children:[`Передавайте `,(0,S.jsx)(t.code,{children:`dateRange`}),`, если период должен зависеть от выбранного диапазона дат.`]}),`
|
|
32
|
+
`,(0,S.jsxs)(t.li,{children:[`Используйте `,(0,S.jsx)(t.code,{children:`presetIds`}),`, когда runtime должен предлагать только разрешенные уровни детализации; порядок массива не управляет порядком Select.`]}),`
|
|
33
|
+
`,(0,S.jsxs)(t.li,{children:[`Настраивайте `,(0,S.jsx)(t.code,{children:`maxDayRangeDays`}),` и `,(0,S.jsx)(t.code,{children:`maxWeekRangeWeeks`}),` в конфиге параметрического контрола, а не в потребителях runtime.`]}),`
|
|
34
|
+
`,(0,S.jsxs)(t.li,{children:[`Если `,(0,S.jsx)(t.code,{children:`dateRange`}),` временно блокирует все разрешенные варианты, Select показывает пустое значение, но не очищает внешний controlled-id. После появления доступного варианта отображение восстанавливается без потери runtime-параметра.`]}),`
|
|
35
|
+
`,(0,S.jsxs)(t.li,{children:[`В story `,(0,S.jsx)(t.code,{children:`Controlled`}),` значения обновляются через `,(0,S.jsx)(t.code,{children:`useArgs`}),`, поэтому Controls и сам Select остаются синхронизированы.`]}),`
|
|
36
36
|
`]}),`
|
|
37
|
-
`,(0,S.jsx)(
|
|
38
|
-
`,(0,S.jsx)(
|
|
39
|
-
`,(0,S.jsx)(
|
|
40
|
-
`,(0,S.jsx)(
|
|
41
|
-
`,(0,S.jsx)(
|
|
42
|
-
`,(0,S.jsx)(
|
|
43
|
-
`,(0,S.jsx)(
|
|
44
|
-
`,(0,S.jsx)(
|
|
45
|
-
`,(0,S.jsx)(
|
|
46
|
-
`,(0,S.jsx)(
|
|
47
|
-
`,(0,S.jsx)(
|
|
48
|
-
`,(0,S.jsx)(
|
|
49
|
-
`,(0,S.jsx)(
|
|
50
|
-
`,(0,S.jsx)(
|
|
51
|
-
`,(0,S.jsx)(
|
|
37
|
+
`,(0,S.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
|
|
38
|
+
`,(0,S.jsx)(t.h3,{id:`контролируемый-выбор-с-редактированием-props-через-storybook-controls`,children:`Контролируемый выбор с редактированием props через Storybook Controls`}),`
|
|
39
|
+
`,(0,S.jsx)(u,{of:h}),`
|
|
40
|
+
`,(0,S.jsx)(t.h3,{id:`автопереключение-при-слишком-большом-диапазоне`,children:`Автопереключение при слишком большом диапазоне`}),`
|
|
41
|
+
`,(0,S.jsx)(u,{of:m}),`
|
|
42
|
+
`,(0,S.jsx)(t.h3,{id:`ограничение-выбора-месяцами-и-годами`,children:`Ограничение выбора месяцами и годами`}),`
|
|
43
|
+
`,(0,S.jsx)(u,{of:_}),`
|
|
44
|
+
`,(0,S.jsx)(t.h3,{id:`временно-недоступны-все-разрешенные-варианты`,children:`Временно недоступны все разрешенные варианты`}),`
|
|
45
|
+
`,(0,S.jsx)(u,{of:p}),`
|
|
46
|
+
`,(0,S.jsx)(t.h3,{id:`заблокированное-состояние`,children:`Заблокированное состояние`}),`
|
|
47
|
+
`,(0,S.jsx)(u,{of:g}),`
|
|
48
|
+
`,(0,S.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
49
|
+
`,(0,S.jsx)(c,{of:y}),`
|
|
50
|
+
`,(0,S.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
51
|
+
`,(0,S.jsx)(i,{includePrimary:!1})]})}function x(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,S.jsx)(t,{...e,children:(0,S.jsx)(b,{...e})}):b(e)}var S;e((()=>{S=t(),f(),s(),v()}))();export{x as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{i as a,t as o}from"./text-Cw7Vu082.js";import{P as s,b as c,s as l,t as u}from"./formatters-3Nbt_zpw.js";import{t as d}from"./DateInput-CvJvdtwa.js";import{a as f,c as p,i as m,n as h,s as g,t as _}from"./preset-select-DSUOhzZJ.js";import{i as v}from"./Grid-DhASlspp.js";import{t as y}from"./grid-CXx-3eN4.js";var b=n((()=>{}));function x(e){return typeof e==`string`&&k.has(e)}function S(e,t=O){let n=m(e,x,t),r=n.length>0?n:O,i=new Set(r);return O.filter(e=>i.has(e))}function C(e,t=D){return g(e,t)}function w({maxDayRangeDays:e,maxWeekRangeWeeks:t}={}){let n=s(e),r=s(t);return D.map(e=>e.id===`day`&&n!==void 0?{...e,maxRangeDays:n}:e.id===`week`&&r!==void 0?{...e,maxRangeDays:r*7}:{...e})}function T(e,t){let n=s(e.maxRangeDays);if(n===void 0||t===void 0)return!1;let r=l(t);return r!==null&&r>n}function E(e,t,n){if(t.length===0)return;let r=e===void 0?-1:t.findIndex(t=>t.id===e),i=r>=0?t[r]:void 0;return i&&!T(i,n)?i.id:(r>=0?t.slice(r+1):t).find(e=>!T(e,n))?.id??t.find(e=>!T(e,n))?.id}var D,O,k,A=n((()=>{u(),f(),D=Object.freeze([{id:`day`,label:`по дням`},{id:`week`,label:`по неделям`},{id:`month`,label:`по месяцам`},{id:`year`,label:`по годам`}]),O=Object.freeze([`day`,`week`,`month`,`year`]),k=new Set(D.map(e=>e.id))})),j=n((()=>{b(),A()}));function M({value:e,onChange:t,options:n,presetIds:r,dateRange:i,maxDayRangeDays:a,maxWeekRangeWeeks:o,...s}){let c=(0,N.useMemo)(()=>n??C(S(r),w({maxDayRangeDays:a,maxWeekRangeWeeks:o})),[a,o,n,r]),l=(0,N.useMemo)(()=>E(e,c,i),[i,c,e]),u=(0,N.useRef)(null),d=(0,N.useEffectEvent)(()=>{if(l===void 0||l===e){u.current=null;return}let n=u.current;n&&n.value===e&&n.availableValue===l||(u.current={value:e,availableValue:l},t(l))});return(0,N.useEffect)(()=>{d()},[l,e]),(0,P.jsx)(h,{...s,options:c,value:l,onChange:t,getOptionDisabled:e=>T(e,i)})}var N,P,F=n((()=>{N=t(r(),1),_(),j(),P=i(),M.__docgenInfo={description:`Select периода детализации, который может ограничивать доступные варианты по диапазону дат.`,methods:[],displayName:`PeriodSelect`,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:``},options:{required:!1,tsType:{name:`unknown`},description:``},presetIds:{required:!1,tsType:{name:`unknown`},description:`Разрешенные встроенные варианты периода. Значение нормализуется в канонический
|
|
2
2
|
порядок, а пустой либо невалидный список безопасно заменяется полным набором.
|
|
3
3
|
Не применяется, когда передан собственный \`options\`.`},dateRange:{required:!1,tsType:{name:`DateRangeInput`},description:``},maxDayRangeDays:{required:!1,tsType:{name:`number`},description:``},maxWeekRangeWeeks:{required:!1,tsType:{name:`number`},description:``}}}})),I=n((()=>{j(),F()})),L=e({AllAllowedOptionsDisabled:()=>Y,AutoSwitchByRange:()=>q,Controlled:()=>K,Disabled:()=>X,MonthAndYear:()=>J,__namedExportsOrder:()=>Z,default:()=>G});function R(e){return e!==void 0&&c(e)?e:null}function z(e){let[,t]=V(),n=R(e.dateRange),r=l(e.dateRange??null);return(0,B.jsxs)(v,{gap:`md`,children:[(0,B.jsx)(M,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,B.jsx)(d,{label:`Связанный диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:n,onChange:e=>t({dateRange:e??void 0})}),(0,B.jsxs)(a,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,B.jsx)(a,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,B.jsx)(a,{as:`code`,children:r??`не задано`}),`.`]})]})}var B,V,H,U,W,G,K,q,J,Y,X,Z,Q=n((()=>{u(),p(),y(),o(),I(),B=i(),{useArgs:V}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:H}=__STORYBOOK_MODULE_TEST__,U=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],W=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],G={title:`Shared/UI/PeriodSelect`,component:M,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:H(),presetIds:O,dateRange:U,maxDayRangeDays:31,maxWeekRangeWeeks:26,disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Select периода детализации дат. Компонент работает с id периода и может блокировать слишком детальные варианты по переданному диапазону дат.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда период не выбран.`,control:`text`},value:{description:`Текущий id периода.`,control:`select`,options:O},onChange:{description:`Вызывается с id выбранного периода.`,control:!1},options:{description:"Кастомный список периодов по контракту `PeriodSelectOption`; имеет приоритет над `presetIds`.",control:!1},presetIds:{description:"Разрешенные встроенные периоды. Порядок отображения остается `day → week → month → year`.",control:`check`,options:O},dateRange:{description:`Диапазон дат, по которому вычисляются заблокированные периоды.`,control:!1},maxDayRangeDays:{description:"Максимальное количество дней, при котором доступен период `day`.",control:{type:`number`,min:1,step:1}},maxWeekRangeWeeks:{description:"Максимальное количество недель, при котором доступен период `week`.",control:{type:`number`,min:1,step:1}},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},K={name:`Контролируемый выбор`,render:function(e){return(0,B.jsx)(z,{...e})}},q={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:W,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,B.jsx)(z,{...e})}},J={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:function(e){return(0,B.jsx)(z,{...e})}},Y={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:W,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,B.jsx)(z,{...e})}},X={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
|
|
4
4
|
name: "Контролируемый выбор",
|