@ryuzaki13/react-foundation-ui 1.4.2 → 1.4.3
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/advanced-search/index.js +12 -11
- package/dist/advanced-search/index.js.map +1 -1
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +2 -2
- package/dist/button/index.js +1 -1
- package/dist/chunks/{CalendarView-KCkhCtK-.js → CalendarView-Z_XWk7aI.js} +8 -8
- package/dist/chunks/{CalendarView-KCkhCtK-.js.map → CalendarView-Z_XWk7aI.js.map} +1 -1
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js → ImageViewerRuntime-BMs3BBkV.js} +4 -4
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js.map → ImageViewerRuntime-BMs3BBkV.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js → TextEditorLexicalClient-CK8j3RA4.js} +16 -18
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js.map → TextEditorLexicalClient-CK8j3RA4.js.map} +1 -1
- package/dist/chunks/{badge-Cri0-kVK.js → badge-DwIUjH0a.js} +2 -2
- package/dist/chunks/{badge-Cri0-kVK.js.map → badge-DwIUjH0a.js.map} +1 -1
- package/dist/chunks/{base-table-D5IqsjQD.js → base-table-BFsVwXg3.js} +13 -12
- package/dist/chunks/{base-table-D5IqsjQD.js.map → base-table-BFsVwXg3.js.map} +1 -1
- package/dist/chunks/{button-CC0Jdx1j.js → button-BU2kRzwu.js} +2 -2
- package/dist/chunks/{button-CC0Jdx1j.js.map → button-BU2kRzwu.js.map} +1 -1
- package/dist/chunks/check-box-Dd3YFuxd.js.map +1 -1
- package/dist/chunks/{context-menu-DQeR3y7M.js → context-menu-C6RO7soI.js} +7 -2
- package/dist/chunks/{context-menu-DQeR3y7M.js.map → context-menu-C6RO7soI.js.map} +1 -1
- package/dist/chunks/{date-input-DBJisPRz.js → date-input-BzExUQnc.js} +5 -5
- package/dist/chunks/{date-input-DBJisPRz.js.map → date-input-BzExUQnc.js.map} +1 -1
- package/dist/chunks/{flex-DYZ0IbU6.js → flex-C7njxZ74.js} +10 -7
- package/dist/chunks/{flex-DYZ0IbU6.js.map → flex-C7njxZ74.js.map} +1 -1
- package/dist/chunks/floating-arrow-BE-z4QkE.js.map +1 -1
- package/dist/chunks/{input-BCJfUdK_.js → input-Bp6_Ucgr.js} +15 -15
- package/dist/chunks/{input-BCJfUdK_.js.map → input-Bp6_Ucgr.js.map} +1 -1
- package/dist/chunks/{input-files-Dcc5K-_1.js → input-files-D1JzSw_Y.js} +2 -2
- package/dist/chunks/{input-files-Dcc5K-_1.js.map → input-files-D1JzSw_Y.js.map} +1 -1
- package/dist/chunks/{input-search-B7HmrAM7.js → input-search-Bkhcinru.js} +2 -2
- package/dist/chunks/{input-search-B7HmrAM7.js.map → input-search-Bkhcinru.js.map} +1 -1
- package/dist/chunks/{misc-DIF5h9ba.js → misc-BYxxlJz6.js} +3 -3
- package/dist/chunks/{misc-DIF5h9ba.js.map → misc-BYxxlJz6.js.map} +1 -1
- package/dist/chunks/{modal-DXHX_sA-.js → modal-paexEF0j.js} +4 -5
- package/dist/chunks/{modal-DXHX_sA-.js.map → modal-paexEF0j.js.map} +1 -1
- package/dist/chunks/{multi-select-CWx12rgb.js → multi-select-COa6-owj.js} +3 -3
- package/dist/chunks/{multi-select-CWx12rgb.js.map → multi-select-COa6-owj.js.map} +1 -1
- package/dist/chunks/{picker-BAQ9NeHe.js → picker-e6IsrMUG.js} +3 -3
- package/dist/chunks/{picker-BAQ9NeHe.js.map → picker-e6IsrMUG.js.map} +1 -1
- package/dist/chunks/{popover-xJJqy1v6.js → popover-CGU3MlsH.js} +14 -14
- package/dist/chunks/{popover-xJJqy1v6.js.map → popover-CGU3MlsH.js.map} +1 -1
- package/dist/chunks/radio-group-CM9Lg_nc.js.map +1 -1
- package/dist/chunks/{select-BPb-eL3O.js → select-C95db02j.js} +32 -31
- package/dist/chunks/{select-BPb-eL3O.js.map → select-C95db02j.js.map} +1 -1
- package/dist/chunks/sortable-DcTIAbjD.js.map +1 -1
- package/dist/chunks/{table-xMAjqtcY.js → table-Dd5BcC0k.js} +3 -3
- package/dist/chunks/{table-xMAjqtcY.js.map → table-Dd5BcC0k.js.map} +1 -1
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js → table-column-interactions-DzEvVuXe.js} +8 -5
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js.map → table-column-interactions-DzEvVuXe.js.map} +1 -1
- package/dist/chunks/useODataSelectBase-CKe1AVMI.js.map +1 -1
- package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +4 -4
- package/dist/date-time-input/index.js.map +1 -1
- package/dist/detail/index.js.map +1 -1
- package/dist/dialog/index.js.map +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/drop-zone/index.js.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/expandable-action-panel/index.js +2 -2
- package/dist/expandable-action-panel/index.js.map +1 -1
- package/dist/flex/index.js +1 -1
- package/dist/fullscreen-portal/index.js +3 -3
- package/dist/fullscreen-portal/index.js.map +1 -1
- package/dist/image/index.js +5 -5
- package/dist/image/index.js.map +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-date-time/index.js.map +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-file/index.js.map +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-image/index.js.map +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +3 -3
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/list/index.js +7 -7
- package/dist/list/index.js.map +1 -1
- package/dist/listbox/index.js.map +1 -1
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +13 -11
- package/dist/notifications/index.js.map +1 -1
- package/dist/pages/index.js.map +1 -1
- package/dist/panel/index.js.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/preset-range-date-input/index.js +2 -2
- package/dist/preset-range-date-input/index.js.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +27 -24
- package/dist/slider/index.js.map +1 -1
- package/dist/splitter/index.js.map +1 -1
- package/dist/state-select/index.js +12 -10
- package/dist/state-select/index.js.map +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/switch/index.js.map +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-column-interactions/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/table-sorting/index.js.map +1 -1
- package/dist/tabs/index.js +6 -6
- package/dist/tabs/index.js.map +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text/index.js +10 -8
- package/dist/text/index.js.map +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/index.js.map +1 -1
- package/dist/toggle/index.js.map +1 -1
- package/dist/toolbar/index.js +1 -2
- package/dist/toolbar/index.js.map +1 -1
- package/dist/tree/index.js.map +1 -1
- package/dist/tree-select/index.js +83 -80
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +2 -2
- package/dist/tree-table/index.js.map +1 -1
- package/package.json +51 -59
- package/storybook-static/assets/{Badge-SZ48u9qp.js → Badge-DHexWW92.js} +11 -11
- package/storybook-static/assets/Badge.stories-CeWDekpP.js +54 -0
- package/storybook-static/assets/Button-VdPdxcvG.js +12 -0
- package/storybook-static/assets/{Button-CFCpYiPy.js → Button-kybsFNS9.js} +10 -10
- package/storybook-static/assets/Button.stories-DhgYDM_q.js +75 -0
- package/storybook-static/assets/{DateInput-BfFTwd_P.css → CalendarView-DKvrkS40.css} +1 -1
- package/storybook-static/assets/CalendarView-DTX0eO8t.js +1 -0
- package/storybook-static/assets/CheckBox-B6rTemHK.js +2 -0
- package/storybook-static/assets/{CheckBox-FoMSruZC.js → CheckBox-CDwboiFD.js} +11 -11
- package/storybook-static/assets/CheckBox.module-BBzuj5He.js +1 -0
- package/storybook-static/assets/CheckBox.stories-BSMihxpY.js +60 -0
- package/storybook-static/assets/Color-6AOWCN3U-D5F38IUU.js +1 -0
- package/storybook-static/assets/{ContextMenu-CU_1kOzV.js → ContextMenu-2ZQAeo_p.js} +9 -9
- package/storybook-static/assets/ContextMenu-CQtvL8kx.js +1 -0
- package/storybook-static/assets/ContextMenu.stories-Dtz2YIGk.js +90 -0
- package/storybook-static/assets/{DateInput-BeZ5esVE.js → DateInput-D41aWZ7_.js} +11 -11
- package/storybook-static/assets/DateInput-DBwgBhFj.js +1 -0
- package/storybook-static/assets/DateInput-pmGiwdvw.css +1 -0
- package/storybook-static/assets/{DateInput.stories-Bkw2r8CD.js → DateInput.stories-CMV96t-8.js} +2 -2
- package/storybook-static/assets/{DateRangePresetSelect-C_mLvEoK.js → DateRangePresetSelect-BLKJkg8X.js} +8 -8
- package/storybook-static/assets/DateRangePresetSelect-DXYYFJJn.js +3 -0
- package/storybook-static/assets/DateRangePresetSelect.stories-BNtFx_iG.js +11 -0
- package/storybook-static/assets/{Detail-WzciiK9S.js → Detail-BHcGLZok.js} +11 -11
- package/storybook-static/assets/Detail.stories-C4smn8Uu.js +44 -0
- package/storybook-static/assets/{Dialog-CwLsVxJY.js → Dialog-kji1ho-G.js} +9 -9
- package/storybook-static/assets/Dialog.stories-DYzrVcIT.js +31 -0
- package/storybook-static/assets/{Disclosure-BlRuGrk2.js → Disclosure-BVLfp53o.js} +10 -10
- package/storybook-static/assets/Disclosure.stories-DcV1pGCt.js +41 -0
- package/storybook-static/assets/DocsRenderer-JROSPFPF-CCwX0YiR.js +2 -0
- package/storybook-static/assets/{DropZone-Cr3nfCWA.js → DropZone-6iWHt6C_.js} +10 -10
- package/storybook-static/assets/DropZone.stories-bASZNbD5.js +44 -0
- package/storybook-static/assets/ExpandableActionPanel.stories-CMMbHs_d.js +20 -0
- package/storybook-static/assets/{Flex-C10912WS.js → Flex-BJViOwhH.js} +18 -18
- package/storybook-static/assets/Flex.stories-CI6DdxU7.js +300 -0
- package/storybook-static/assets/FlexContainer-LmZIdhq2.js +1 -0
- package/storybook-static/assets/FlexItem-vkDYa5tA.js +3 -0
- package/storybook-static/assets/FloatingPopover-CPLOruAY.js +1 -0
- package/storybook-static/assets/FloatingPopover-DC84VrV3.css +1 -0
- package/storybook-static/assets/FormattedTableCell-CV4yLuxl.js +18 -0
- package/storybook-static/assets/FormattedTableCell-CY3E21k8.css +1 -0
- package/storybook-static/assets/Grid-BCzygAqy.js +52 -0
- package/storybook-static/assets/{Grid-G88y3oB_.js → Grid-CNEn2bRE.js} +18 -18
- package/storybook-static/assets/{Grid.stories-BV7zL-6n.js → Grid.stories-qFo5E3qE.js} +2 -2
- package/storybook-static/assets/{Grid-Bb0gH6CX.js → GridContainer-qDguE1HS.js} +2 -53
- package/storybook-static/assets/ImageCropper.stories-BeQI7oKQ.js +115 -0
- package/storybook-static/assets/ImageRenderer-DK2ibQyr.js +2 -0
- package/storybook-static/assets/ImageRenderer.stories-C1T4ne0G.js +22 -0
- package/storybook-static/assets/ImageView.stories-D_Q-ZBtQ.js +9 -0
- package/storybook-static/assets/{ImageViewer.stories-PlFXSB5n.js → ImageViewer.stories-boombTJI.js} +5 -5
- package/storybook-static/assets/ImageViewerRuntime-D8KSESgf.js +51 -0
- package/storybook-static/assets/{Input-pyUNDVtk.js → Input-CGHba0oM.js} +11 -11
- package/storybook-static/assets/Input-DtOsW7ur.js +3 -0
- package/storybook-static/assets/Input.stories-C0qWd6SH.js +38 -0
- package/storybook-static/assets/{InputDateTime-CWk5KBwD.js → InputDateTime-CgYkmVYu.js} +11 -11
- package/storybook-static/assets/InputDateTime.stories-Brxo7Chn.js +35 -0
- package/storybook-static/assets/{InputFile-BLQq7mY9.js → InputFile-Bsxafe88.js} +10 -10
- package/storybook-static/assets/InputFile.stories-BzEV7ybE.js +36 -0
- package/storybook-static/assets/{InputFiles-B6J4XBdP.js → InputFiles-KJFUsmSS.js} +10 -10
- package/storybook-static/assets/InputFiles.stories-ffjxiHSh.js +33 -0
- package/storybook-static/assets/InputFilesList-D6B5g99M.js +1 -0
- package/storybook-static/assets/{InputImage--2PSB_E_.js → InputImage-Cd39V4Vc.js} +10 -10
- package/storybook-static/assets/InputImage.stories-n-tpY8OO.js +51 -0
- package/storybook-static/assets/{LayoutPicker-RZDisgZ_.js → LayoutPicker-CGQFfQk6.js} +13 -13
- package/storybook-static/assets/LayoutPicker.stories-xSL2qafC.js +449 -0
- package/storybook-static/assets/{Listbox-xwfNjBpV.js → Listbox-CxISK8c5.js} +10 -10
- package/storybook-static/assets/Listbox.stories-BdQBmVFI.js +47 -0
- package/storybook-static/assets/{Modal-HJt_Y-a6.js → Modal-BiaAWMdV.js} +12 -12
- package/storybook-static/assets/Modal.stories-GV7fGqyd.js +180 -0
- package/storybook-static/assets/MultiSelect-D5XFosSU.js +2 -0
- package/storybook-static/assets/{MultiSelect-CvNsFdE4.js → MultiSelect-Df2CpyNH.js} +11 -11
- package/storybook-static/assets/MultiSelect.stories-BEVQF6hO.js +29 -0
- package/storybook-static/assets/MultiSelectToken-CrVawISu.js +1 -0
- package/storybook-static/assets/NoData-C7KqaHUh.css +1 -0
- package/storybook-static/assets/NoData-Fm23iF4n.js +1 -0
- package/storybook-static/assets/{NotificationsHost-DXCf3CQX.js → NotificationsHost-C2vSwAjz.js} +9 -9
- package/storybook-static/assets/NotificationsHost.stories-IbgayDlM.js +25 -0
- package/storybook-static/assets/{ODataMultiSelect-CIJNiwGb.js → ODataMultiSelect-oW3kW0nO.js} +15 -15
- package/storybook-static/assets/ODataMultiSelect.stories-CP6_jGSr.js +73 -0
- package/storybook-static/assets/{ODataSelect-BDga9TUb.js → ODataSelect-CrGF8fyC.js} +15 -15
- package/storybook-static/assets/ODataSelect.stories-DTv31Rkv.js +73 -0
- package/storybook-static/assets/ODataTreeMultiSelect-D0h8H3gw.js +19 -0
- package/storybook-static/assets/ODataTreeMultiSelect.stories-CM8QjG8r.js +30 -0
- package/storybook-static/assets/ODataTreeSelect-PWn0-hI4.js +17 -0
- package/storybook-static/assets/ODataTreeSelect.stories-2UkFTnbE.js +24 -0
- package/storybook-static/assets/OneStepScroller-CH6K7wiO.js +5 -0
- package/storybook-static/assets/OneStepScroller-NRYd-egY.css +1 -0
- package/storybook-static/assets/{PeriodSelect-BJbjl62O.js → PeriodSelect-BtwJuAO6.js} +13 -13
- package/storybook-static/assets/PeriodSelect.stories-BH8I5Wmg.js +64 -0
- package/storybook-static/assets/PickerSelectionToolbar-BcL8-O6n.js +2 -0
- package/storybook-static/assets/PickerTriggerActions-C8Asdp5e.js +1 -0
- package/storybook-static/assets/{Popover-Dg2T0DoN.js → Popover-Ch5btFhR.js} +11 -11
- package/storybook-static/assets/Popover-DGX7JNNK.css +1 -0
- package/storybook-static/assets/Popover-Djns7yXR.js +2 -0
- package/storybook-static/assets/Popover.stories-Bask2I1I.js +69 -0
- package/storybook-static/assets/{PresetRangeDateInput-CNmTMNHF.js → PresetRangeDateInput-DvsTjQNP.js} +8 -8
- package/storybook-static/assets/PresetRangeDateInput.stories-BNfOUWgp.js +15 -0
- package/storybook-static/assets/PresetSelect-9zitP0-V.js +5 -0
- package/storybook-static/assets/{RadioButton-2rfUPkwC.js → RadioButton-Yb9bQKYe.js} +10 -10
- package/storybook-static/assets/RadioButton.stories-FIFxXFVP.js +36 -0
- package/storybook-static/assets/RadioGroup-CWsVqwtm.js +1 -0
- package/storybook-static/assets/{RadioGroup-BduGGVKj.js → RadioGroup-Dn0zL838.js} +10 -10
- package/storybook-static/assets/RadioGroup.stories-B_drop9x.js +42 -0
- package/storybook-static/assets/Scrollable-3Z6b5g0Z.js +1 -0
- package/storybook-static/assets/{Select-DnZ83aZs.js → Select-BaR8D89E.js} +13 -13
- package/storybook-static/assets/Select-BiOxxy0y.js +12 -0
- package/storybook-static/assets/Select.stories-CMlWu7vC.js +46 -0
- package/storybook-static/assets/SelectOptionContent-DhtCMwz6.js +1 -0
- package/storybook-static/assets/{SerializableSelect-BiFhAxAJ.js → SerializableSelect-BDiZo_-M.js} +12 -12
- package/storybook-static/assets/SerializableSelect.stories-DgC6oiRx.js +46 -0
- package/storybook-static/assets/{SingleDateTimeInput-Bc-ifbML.js → SingleDateTimeInput-Dx1fvzyr.js} +12 -12
- package/storybook-static/assets/SingleDateTimeInput.stories-NRUE7nnA.js +78 -0
- package/storybook-static/assets/Slider-DJpzPo7f.js +1 -0
- package/storybook-static/assets/{Slider-DfjBSsR3.js → Slider-aiFcrSGY.js} +15 -15
- package/storybook-static/assets/Slider.stories-B0YHmFf5.js +77 -0
- package/storybook-static/assets/{SliderInput-o9uCcVMP.js → SliderInput-sOoxvdku.js} +16 -16
- package/storybook-static/assets/SliderInput.stories-BYk1V19Z.js +68 -0
- package/storybook-static/assets/{Sortable-B6Y9Q9Yn.js → Sortable-CuVT40f8.js} +13 -13
- package/storybook-static/assets/Sortable.stories-KSWGoKrN.js +141 -0
- package/storybook-static/assets/{Splitter-CfUVnAs7.js → Splitter-EoNOj4XF.js} +11 -11
- package/storybook-static/assets/Splitter.stories-CuAZab2y.js +22 -0
- package/storybook-static/assets/{StateSelect-h0i4M4vO.js → StateSelect-B_M50HZl.js} +10 -10
- package/storybook-static/assets/StateSelect.stories-DQ_MzvL4.js +47 -0
- package/storybook-static/assets/StringToggle.stories-BbRysCKA.js +6 -0
- package/storybook-static/assets/{Switch-CPKaENqL.js → Switch-DO_tyZIc.js} +10 -10
- package/storybook-static/assets/Switch.stories-BQakMoPp.js +26 -0
- package/storybook-static/assets/{Table-xV66crR1.js → Table-CVK5rwmT.js} +22 -22
- package/storybook-static/assets/Table.stories-IZaleOjp.js +122 -0
- package/storybook-static/assets/{Tabs-v9YZeJoc.js → Tabs-DAaWUQb4.js} +15 -15
- package/storybook-static/assets/Tabs.stories-BC8LwG22.js +58 -0
- package/storybook-static/assets/TagInput.stories-CrXD57LV.js +18 -0
- package/storybook-static/assets/Text-cVBcGheg.js +1 -0
- package/storybook-static/assets/{Textarea-CRThqX0z.js → Textarea-9VdIC6G0.js} +10 -10
- package/storybook-static/assets/Textarea.stories-CEaMwEau.js +27 -0
- package/storybook-static/assets/TimePanel-vx1aOwT4.js +1 -0
- package/storybook-static/assets/TimePanel.stories-BKyiLEgy.js +25 -0
- package/storybook-static/assets/Toggle-CyajrRVE.js +1 -0
- package/storybook-static/assets/{Toggle-CzopviU2.js → Toggle-DrNoVpGe.js} +10 -10
- package/storybook-static/assets/Toggle.stories-CT0mQbdm.js +30 -0
- package/storybook-static/assets/TreeMultiSelect-CtDZ1cXU.js +1 -0
- package/storybook-static/assets/TreeMultiSelect-ag5i_Hw_.js +19 -0
- package/storybook-static/assets/TreeMultiSelect.stories-BxrbKopS.js +35 -0
- package/storybook-static/assets/TreePickerBase-DQzUtuAm.js +22 -0
- package/storybook-static/assets/TreeSelect-BNuJBo9x.js +1 -0
- package/storybook-static/assets/TreeSelect-CL8REXC5.js +16 -0
- package/storybook-static/assets/TreeSelect.stories-CsWGc9X0.js +18 -0
- package/storybook-static/assets/{TreeTable-DbzoCcR5.js → TreeTable-DrIFC4Oh.js} +22 -22
- package/storybook-static/assets/TreeTable.stories-Dq5c4_qe.js +83 -0
- package/storybook-static/assets/WithTooltip-7X4HQR7L-Cakt_JaX.js +9 -0
- package/storybook-static/assets/array-BBSjoTRy-CIRmlF93.js +1 -0
- package/storybook-static/assets/{async-D27PcxoG.js → async-0-Te_uje.js} +3 -3
- package/storybook-static/assets/axe-Bq-2xuso.js +20 -0
- package/storybook-static/assets/blocks-Dz3dJBcm.js +48 -0
- package/storybook-static/assets/browserAndReact-kZBm3nQe.js +105 -0
- package/storybook-static/assets/check-BMyoSD8F.js +1 -0
- package/storybook-static/assets/chevron-down-QDFtnGcg.js +1 -0
- package/storybook-static/assets/chevron-left-BoVuWD4h.js +1 -0
- package/storybook-static/assets/chevron-right-DS62_o_9.js +1 -0
- package/storybook-static/assets/chunk-242VQQM5-BMWWiybC.js +1 -0
- package/storybook-static/assets/chunk-DRQKCCAG-CqE-Zrl9.js +1 -0
- package/storybook-static/assets/chunk-IMSF75WX-yvVUwIQZ.js +6 -0
- package/storybook-static/assets/chunk-KJHJLCBK-D-yQfkOi.js +1 -0
- package/storybook-static/assets/chunk-QQBDHPVZ-B98qboss.js +1 -0
- package/storybook-static/assets/chunk-W22LQPXL-DDIvKskF.js +18 -0
- package/storybook-static/assets/circle-alert-CXg50Gb0.js +1 -0
- package/storybook-static/assets/circle-check-BPfYNWmz.js +1 -0
- package/storybook-static/assets/components-BejapTpU.js +241 -0
- package/storybook-static/assets/contextMenu-DtXkMNr6.js +2 -0
- package/storybook-static/assets/date-segments-D3HouZ37.js +1 -0
- package/storybook-static/assets/dom-B3G_GtJw.js +1 -0
- package/storybook-static/assets/download-DnZ6jhvY.js +1 -0
- package/storybook-static/assets/error-BZrNlEUO.js +1 -0
- package/storybook-static/assets/file-vPGnhPr-.js +1 -0
- package/storybook-static/assets/filesAndExcel-CXMXtMjq.js +122 -0
- package/storybook-static/assets/floating-ui.react-PN45KvBS.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +1 -0
- package/storybook-static/assets/formatters--mhLir82-v41eaI4a.js +1 -0
- package/storybook-static/assets/formatters-DGXR8csR.js +291 -0
- package/storybook-static/assets/formatters-runtime-GsS-hTg9.js +384 -0
- package/storybook-static/assets/foundationLib-XrLbqi3r.js +82 -0
- package/storybook-static/assets/hooks-Ddmw7JMF.js +5 -0
- package/storybook-static/assets/iframe-CrnMVMTc.js +1151 -0
- package/storybook-static/assets/iframe-FUHzX0Mr.js +1 -0
- package/storybook-static/assets/info-Dqq5QHG7.js +1 -0
- package/storybook-static/assets/{matchers-JIUQ3HVY-BPS-eazD.js → matchers-JIUQ3HVY-DvR2XErZ.js} +3 -3
- package/storybook-static/assets/media-BycWpjAl.js +1 -0
- package/storybook-static/assets/odata-BaxgzNGj.js +1 -0
- package/storybook-static/assets/odata-service-DnPlNGpU-Bpd4Zh9L.js +3 -0
- package/storybook-static/assets/odataAndTables-OEVW-gFK.js +126 -0
- package/storybook-static/assets/{odataFetchFn-BVgXXKgx.js → odataFetchFn-BLWeF0ZQ.js} +3 -3
- package/storybook-static/assets/odataStoryFixtures-BbswaX_5.js +25 -0
- package/storybook-static/assets/{persisted-D8qUQbts.js → persisted-BpFojVXw.js} +3 -3
- package/storybook-static/assets/preload-helper-BHmFeTtP.js +1 -0
- package/storybook-static/assets/pureUtilities-3afQk5ld.js +69 -0
- package/storybook-static/assets/react-18-CgkwBzTo.js +9 -0
- package/storybook-static/assets/react-C21x__mS.js +1 -0
- package/storybook-static/assets/react-CpOcCp9T.js +9 -0
- package/storybook-static/assets/react-CvkUhHUq.js +1 -0
- package/storybook-static/assets/react-dom-2o2phaJG.js +1 -0
- package/storybook-static/assets/react-qN2cStNd.js +1 -0
- package/storybook-static/assets/refresh-cw-B2VU4UNA.js +1 -0
- package/storybook-static/assets/rolldown-runtime-C0FnF6B9.js +1 -0
- package/storybook-static/assets/runtimeAndState-BEFDbOiZ.js +117 -0
- package/storybook-static/assets/settings-2-CLJhjWJl.js +1 -0
- package/storybook-static/assets/sortable-DW_Veba0.js +1 -0
- package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-D0RhvxXU.js +6 -0
- package/storybook-static/assets/theming-mTWhffkp.js +39 -0
- package/storybook-static/assets/trash-2-yLqdtpz8.js +1 -0
- package/storybook-static/assets/treeStoryFixtures-Ci7STpiz.js +1 -0
- package/storybook-static/assets/triangle-alert-wI8Cd8tI.js +1 -0
- package/storybook-static/assets/ui.module-DoMIk8Oc.js +1 -0
- package/storybook-static/assets/uiClasses-CO3Cdv1E.js +1 -0
- package/storybook-static/assets/useFlexClasses-Gn9spXEB.js +1 -0
- package/storybook-static/assets/useODataSelectBase-WnxdcAM4.js +1 -0
- package/storybook-static/assets/useODataTreeData-C7L5TOjl.js +1 -0
- package/storybook-static/assets/usePickerDefaultFilter-DdxyE_i8.js +1 -0
- package/storybook-static/assets/usePickerQuery-CAWYFpCv.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-BRXUlggw.js +1 -0
- package/storybook-static/assets/utils-DUM89eIj.js +1 -0
- package/storybook-static/assets/x-CyFk00QC.js +1 -0
- package/storybook-static/iframe.html +8 -3
- package/storybook-static/index.html +6 -0
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/a11y-3/manager-bundle.js +3 -3
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +17 -17
- package/storybook-static/sb-addons/docs-2/manager-bundle.js +16 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +85 -83
- package/storybook-static/sb-addons/vitest-4/manager-bundle.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +9939 -7695
- package/storybook-static/sb-manager/runtime.js +16128 -15326
- package/storybook-static/vite-inject-mocker-entry.js +2 -2
- package/storybook-static/assets/Badge.stories-CzsgAfG9.js +0 -51
- package/storybook-static/assets/Button-MoWVKehO.js +0 -12
- package/storybook-static/assets/Button.stories-wwep4c2p.js +0 -75
- package/storybook-static/assets/CheckBox-DHvne_6w.js +0 -2
- package/storybook-static/assets/CheckBox.module-ezWPE2pa.js +0 -1
- package/storybook-static/assets/CheckBox.stories-C14Axs5p.js +0 -60
- package/storybook-static/assets/Color-KMSTOMOX-CmMBFN4-.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-Dr-tkpqd.js +0 -90
- package/storybook-static/assets/DateInput-erobPRG_.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect-Cg90Kc_w.js +0 -3
- package/storybook-static/assets/DateRangePresetSelect.stories-BVap0joC.js +0 -11
- package/storybook-static/assets/Detail.stories-CLdtvJ7q.js +0 -44
- package/storybook-static/assets/Dialog.stories-Dx0jZO19.js +0 -31
- package/storybook-static/assets/Disclosure.stories-DhUdeDK6.js +0 -41
- package/storybook-static/assets/DocsRenderer-JROSPFPF-Dd1n83Uq.js +0 -2
- package/storybook-static/assets/DropZone.stories-6yYrwQOe.js +0 -44
- package/storybook-static/assets/DropdownMenu-D_2LfViU.js +0 -1
- package/storybook-static/assets/ExpandableActionPanel.stories-DVOFSOlm.js +0 -20
- package/storybook-static/assets/Flex-V-qg6Ejw.js +0 -3
- package/storybook-static/assets/Flex.stories-BZv94LD8.js +0 -300
- package/storybook-static/assets/ImageCropper.stories-MLFZyJxZ.js +0 -115
- package/storybook-static/assets/ImageRenderer-DHhD7mUz.js +0 -2
- package/storybook-static/assets/ImageRenderer.stories-ChcPymk2.js +0 -22
- package/storybook-static/assets/ImageView.stories-DszVNgC8.js +0 -9
- package/storybook-static/assets/ImageViewerRuntime-D8wFAKx5.js +0 -51
- package/storybook-static/assets/Input-BGdz8TmT.js +0 -3
- package/storybook-static/assets/Input.stories-Ban0Gnck.js +0 -38
- package/storybook-static/assets/InputDateTime.stories-DgKVmf54.js +0 -35
- package/storybook-static/assets/InputFile.stories-VnRv_q2r.js +0 -36
- package/storybook-static/assets/InputFiles-Dn9afnyd.js +0 -1
- package/storybook-static/assets/InputFiles.stories-CLVn5Xfq.js +0 -33
- package/storybook-static/assets/InputImage.stories-D__QcSho.js +0 -51
- package/storybook-static/assets/LayoutPicker.stories-BCnR-zBu.js +0 -449
- package/storybook-static/assets/Listbox.stories-B0HctqVp.js +0 -47
- package/storybook-static/assets/Modal.stories-BE-VpK-a.js +0 -180
- package/storybook-static/assets/MultiSelect-CaCNRNIe.js +0 -2
- package/storybook-static/assets/MultiSelect.stories-CNkbVGsb.js +0 -29
- package/storybook-static/assets/NotificationsHost.stories-BgqvZzT3.js +0 -25
- package/storybook-static/assets/ODataMultiSelect-CMyI4yYs.js +0 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DTGCC6np.js +0 -73
- package/storybook-static/assets/ODataSelect-CGplYBh_.js +0 -1
- package/storybook-static/assets/ODataSelect.stories-CsxqRAvn.js +0 -73
- package/storybook-static/assets/ODataTreeMultiSelect-4ZiAtFZk.js +0 -19
- package/storybook-static/assets/ODataTreeMultiSelect.stories-B29Od8BL.js +0 -30
- package/storybook-static/assets/ODataTreeSelect-yZy7MBsZ.js +0 -17
- package/storybook-static/assets/ODataTreeSelect.stories-H7eaj1Sz.js +0 -24
- package/storybook-static/assets/PeriodSelect.stories-6CEzS2_H.js +0 -64
- package/storybook-static/assets/Popover.stories-BNgWOHlJ.js +0 -69
- package/storybook-static/assets/PresetRangeDateInput.stories-6UPVDF62.js +0 -15
- package/storybook-static/assets/RadioButton.stories-DbdFfJqO.js +0 -36
- package/storybook-static/assets/RadioGroup-BA21indC.js +0 -1
- package/storybook-static/assets/RadioGroup.stories-Ce6x0WUN.js +0 -42
- package/storybook-static/assets/Select-DyO25wSA.js +0 -12
- package/storybook-static/assets/Select.stories-CQ8f9fY9.js +0 -46
- package/storybook-static/assets/SelectOptionContent-fC4HFG5Q.js +0 -1
- package/storybook-static/assets/SerializableSelect-ki4BThj7.js +0 -4
- package/storybook-static/assets/SerializableSelect.stories-BzXBkWPI.js +0 -43
- package/storybook-static/assets/SingleDateTimeInput.stories-CI2yrD-f.js +0 -78
- package/storybook-static/assets/Slider.stories-D3O3_tqE.js +0 -77
- package/storybook-static/assets/SliderInput.stories-D1puleZB.js +0 -67
- package/storybook-static/assets/Sortable.stories-BoaL4W6r.js +0 -141
- package/storybook-static/assets/Splitter.stories-DJpFzZVJ.js +0 -22
- package/storybook-static/assets/StateSelect.stories-Ch2Gzzmd.js +0 -47
- package/storybook-static/assets/StringToggle.stories-B8qIG0M3.js +0 -6
- package/storybook-static/assets/Switch.stories-BysIhUHa.js +0 -26
- package/storybook-static/assets/Table.stories-CBpgmq7b.js +0 -122
- package/storybook-static/assets/Tabs.stories-BPYZuvzR.js +0 -58
- package/storybook-static/assets/TagInput.stories-BwOEnVpz.js +0 -18
- package/storybook-static/assets/Textarea.stories-BSJGz7JF.js +0 -27
- package/storybook-static/assets/TimePanel-ClMfq_py.js +0 -1
- package/storybook-static/assets/TimePanel.stories-_FqWdmta.js +0 -25
- package/storybook-static/assets/Toggle-BFhzeK2e.js +0 -1
- package/storybook-static/assets/Toggle.stories-Dw5UkD_b.js +0 -30
- package/storybook-static/assets/TreeMultiSelect-CerqHY2K.js +0 -19
- package/storybook-static/assets/TreeMultiSelect-Dw7FI3ic.js +0 -1
- package/storybook-static/assets/TreeMultiSelect.stories-BTQKFbeP.js +0 -35
- package/storybook-static/assets/TreePickerBase-rJISGJBT.js +0 -22
- package/storybook-static/assets/TreeSelect-CQ1vj_c9.js +0 -16
- package/storybook-static/assets/TreeSelect-Cp_lX0-B.js +0 -1
- package/storybook-static/assets/TreeSelect.stories-D6Q02Phx.js +0 -18
- package/storybook-static/assets/TreeTable.stories-YfyhkqH9.js +0 -83
- package/storybook-static/assets/WithTooltip-7X4HQR7L-BSQyvCOM.js +0 -9
- package/storybook-static/assets/axe-GLfyhAYL.js +0 -20
- package/storybook-static/assets/base-table-BNO0lnTL.css +0 -1
- package/storybook-static/assets/base-table-Dy3fEhQe.js +0 -18
- package/storybook-static/assets/blocks-ixiC6_NZ.js +0 -285
- package/storybook-static/assets/button-DZpTIXz2.js +0 -1
- package/storybook-static/assets/check-box-DByHwJGx.js +0 -1
- package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +0 -1
- package/storybook-static/assets/chunk-3LY4VQVK-BohfESrT.js +0 -6
- package/storybook-static/assets/chunk-LITCR56V-XaMGADKk.js +0 -18
- package/storybook-static/assets/contextMenu-BbMrBF3b.js +0 -2
- package/storybook-static/assets/date-7kR6zFX5.js +0 -461
- package/storybook-static/assets/date-segments-CzU9k5bl.js +0 -1
- package/storybook-static/assets/error-BRUjWXbJ.js +0 -1
- package/storybook-static/assets/file-CI_sonB1.js +0 -291
- package/storybook-static/assets/file-hArYcyES.js +0 -1
- package/storybook-static/assets/flex-C--89Z3g.js +0 -1
- package/storybook-static/assets/floating-ui.react-DLXcGGFR.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-DgyzUf7M.js +0 -1
- package/storybook-static/assets/formatters-BtIOYENB.js +0 -3
- package/storybook-static/assets/formulas-DRh9I2eS.js +0 -2
- package/storybook-static/assets/grid-DLxeTZJe.js +0 -1
- package/storybook-static/assets/hooks-DWeJq8G1.js +0 -5
- package/storybook-static/assets/iframe-BJGIOdSH.js +0 -1119
- package/storybook-static/assets/input-DXi75xv1.js +0 -1
- package/storybook-static/assets/mdx-react-shim-CmoAsjhK.js +0 -1
- package/storybook-static/assets/media-DWFaNgLM.js +0 -1
- package/storybook-static/assets/misc-BElIqBdV.css +0 -1
- package/storybook-static/assets/misc-DNZTbWc6.js +0 -5
- package/storybook-static/assets/notifications-DjtgzFqT.js +0 -1
- package/storybook-static/assets/number-Xkw1yPJo.js +0 -2
- package/storybook-static/assets/odata-C4Liwkjx.js +0 -1
- package/storybook-static/assets/odata-service-C2oJ-ZmZ.js +0 -1
- package/storybook-static/assets/odataStoryFixtures-eEGvvtmw.js +0 -25
- package/storybook-static/assets/picker-DsP4xCcJ.js +0 -2
- package/storybook-static/assets/popover-BiQHI7Wi.css +0 -1
- package/storybook-static/assets/popover-CuFTypCp.js +0 -2
- package/storybook-static/assets/preload-helper-B45gAKPr.js +0 -1
- package/storybook-static/assets/preset-select-SPNHA-mp.js +0 -5
- package/storybook-static/assets/pwa-B7uYfAPd.js +0 -640
- package/storybook-static/assets/queryClient-CA0puYc0.js +0 -567
- package/storybook-static/assets/react-18-CaNSmcD-.js +0 -9
- package/storybook-static/assets/react-3qMIUlAf.js +0 -9
- package/storybook-static/assets/react-dom-BC7xZNHy.js +0 -1
- package/storybook-static/assets/select-sUla5-3b.js +0 -1
- package/storybook-static/assets/slider--Yp_sa_W.js +0 -2
- package/storybook-static/assets/sortable-jALaQqYE.js +0 -1
- package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-u_WDwfDn.js +0 -6
- package/storybook-static/assets/text-D5xgciF8.js +0 -4
- package/storybook-static/assets/theming-oB64gsjY.js +0 -39
- package/storybook-static/assets/treeStoryFixtures-Y_nnjz0_.js +0 -1
- package/storybook-static/assets/ui-DWDaBPQx.js +0 -1
- package/storybook-static/assets/ui.module-wFHXkJzp.js +0 -1
- package/storybook-static/assets/uiClasses-CaHp0EWd.js +0 -1
- package/storybook-static/assets/useODataSelectBase-DjlPxmxr.js +0 -1
- package/storybook-static/assets/useODataTreeData-1W6cbuec.js +0 -1
- package/storybook-static/assets/utils-DzbSigQl.js +0 -1
- package/storybook-static/assets/valueState-GnkKWBTr.js +0 -277
- /package/storybook-static/assets/{DropdownMenu-BgzIzwzM.css → ContextMenu-BgzIzwzM.css} +0 -0
- /package/storybook-static/assets/{Grid-K9R_IHaw.css → GridContainer-K9R_IHaw.css} +0 -0
- /package/storybook-static/assets/{InputFiles-ByK52qUe.css → InputFilesList-ByK52qUe.css} +0 -0
- /package/storybook-static/assets/{MultiSelect-BoIwmje6.css → MultiSelectToken-BoIwmje6.css} +0 -0
- /package/storybook-static/assets/{slider-DMDFRH6B.css → Slider-DMDFRH6B.css} +0 -0
- /package/storybook-static/assets/{Flex-IXK2se1Y.css → useFlexClasses-IXK2se1Y.css} +0 -0
- /package/storybook-static/assets/{picker-DzBkX15M.css → usePickerTriggerController-DzBkX15M.css} +0 -0
package/dist/toggle/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/toggle/stringToggleState.ts","../../src/toggle/Toggle.module.scss","../../src/toggle/Toggle.tsx","../../src/toggle/StringToggle.tsx"],"sourcesContent":["/**\n * Строковые значения по умолчанию позволяют использовать StringToggle\n * как строковое представление обычного boolean-переключателя.\n */\nexport const DEFAULT_STRING_TOGGLE_CHECKED_VALUE = \"true\";\nexport const DEFAULT_STRING_TOGGLE_UNCHECKED_VALUE = \"false\";\n\n/**\n * Возвращает переданную строку буквально, включая пустую строку и пробелы.\n * Fallback применяется только когда строковое значение отсутствует.\n */\nexport function resolveStringToggleStateValue(value: unknown, fallback: string): string {\n\treturn typeof value === \"string\" ? value : fallback;\n}\n","@use \"@/styles/mixins\" as *;\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n}\n\n.wrapper {\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 1 0 auto;\n\tmin-width: calc(var(--drp-ui-width-xs, var(--ui-width-xs)) - var(--width-add));\n}\n\n.input {\n\twidth: 100%;\n\tmargin: 0;\n\tpadding: 0;\n\tappearance: none;\n\tcursor: pointer;\n\n\t&:checked + .track {\n\t\t.thumb {\n\t\t\ttransform: translateX(100%);\n\t\t}\n\n\t\t.unchecked {\n\t\t\tcolor: var(--content-2);\n\t\t}\n\n\t\t.checked {\n\t\t\tcolor: var(--status-info-on-fill);\n\t\t}\n\t}\n\n\t&:focus-visible + .track {\n\t\t@include focusVisible;\n\t}\n}\n\n.track {\n\t.unchecked {\n\t\tcolor: var(--status-info-on-fill);\n\t}\n\n\t.checked {\n\t\tcolor: var(--content-2);\n\t}\n\n\tposition: absolute;\n\tinset: calc(var(--border-width) * 2);\n\tpointer-events: none;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\talign-items: center;\n\tmin-width: 6.5em;\n\tpadding: 0;\n\toverflow: hidden;\n\n\t&[data-disabled] {\n\t\t.thumb {\n\t\t\topacity: var(--disabled-opacity);\n\t\t}\n\t}\n}\n\n.option {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 var(--space-sm);\n\tline-height: 1;\n\twhite-space: nowrap;\n\tuser-select: none;\n\tpointer-events: none;\n\tposition: relative;\n\tz-index: 1;\n\ttransition: color var(--transition-fast) linear;\n}\n\n.thumb {\n\tposition: absolute;\n\ttop: 0; // var(--border-width);\n\tleft: 0; //var(--border-width);\n\twidth: 50%; // calc(50% - var(--border-width));\n\theight: 100%; // calc(100% - var(--border-width) * 2);\n\tborder-radius: var(--radius-xs);\n\tbackground-color: var(--status-info-fill);\n\ttransition:\n\t\ttransform var(--transition-fast) ease-in-out,\n\t\topacity var(--transition-fast) ease-in-out;\n}\n","import React, { useId } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Toggle.module.scss\";\n\ntype ToggleLabelPosition = \"before\" | \"after\";\n\nexport interface ToggleProps\n\textends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"checked\" | \"value\" | \"onChange\" | \"type\">, UiBaseProps<boolean> {\n\tcheckedText?: string;\n\tuncheckedText?: string;\n\tlabelPosition?: ToggleLabelPosition;\n}\n\n/**\n * Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.\n */\nexport function Toggle({\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tdisabled,\n\tsize,\n\tclassName,\n\tonChange,\n\tvalue,\n\tid: externalId,\n\tcheckedText = \"ВКЛ\",\n\tuncheckedText = \"ВЫКЛ\",\n\tlabelPosition = \"before\",\n\t...props\n}: ToggleProps) {\n\tconst autoId = useId();\n\tconst id = externalId ?? autoId;\n\tconst descriptionId = description ? `${id}-description` : undefined;\n\tconst text = label ?? placeholder;\n\tconst isChecked = Boolean(value);\n\tconst fallbackAriaLabel = !text && !props[\"aria-label\"] ? `${uncheckedText} / ${checkedText}` : undefined;\n\n\tconst labelElement = text ? (\n\t\t<label htmlFor={id} className={uiStyles.uiLabel}>\n\t\t\t{text}\n\t\t</label>\n\t) : null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(uiStyles.uiElement, disabled && uiStyles.disabled, size && uiStyles.uiSizable, size && uiStyles[size], className)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t<div className={styles.row}>\n\t\t\t\t{labelPosition === \"before\" && labelElement}\n\t\t\t\t<div className={styles.wrapper}>\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-checked={isChecked}\n\t\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\t\taria-label={fallbackAriaLabel}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input)}\n\t\t\t\t\t\tonChange={(event) => onChange?.(event.currentTarget.checked)}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={styles.track} data-disabled={disabled || undefined} aria-hidden=\"true\">\n\t\t\t\t\t\t<div className={styles.thumb} />\n\t\t\t\t\t\t<div className={cn(styles.option, styles.unchecked)}>{uncheckedText}</div>\n\t\t\t\t\t\t<div className={cn(styles.option, styles.checked)}>{checkedText}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{labelPosition === \"after\" && labelElement}\n\t\t\t</div>\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { type ComponentProps } from \"react\";\n\nimport {\n\tDEFAULT_STRING_TOGGLE_CHECKED_VALUE,\n\tDEFAULT_STRING_TOGGLE_UNCHECKED_VALUE,\n\tresolveStringToggleStateValue\n} from \"./stringToggleState\";\nimport { Toggle } from \"./Toggle\";\n\n/**\n * Публичный контракт Toggle, который принимает и возвращает два настраиваемых\n * строковых значения вместо boolean.\n */\nexport type StringToggleProps = Omit<ComponentProps<typeof Toggle>, \"value\" | \"onChange\"> & {\n\tcheckedValue?: string;\n\tuncheckedValue?: string;\n\tvalue: string;\n\tonChange: (value: string) => void;\n};\n\n/**\n * Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.\n */\nexport function StringToggle({\n\tvalue,\n\tonChange,\n\tcheckedValue: configuredCheckedValue,\n\tuncheckedValue: configuredUncheckedValue,\n\tdefaultChecked: _defaultChecked,\n\t...props\n}: StringToggleProps) {\n\t/*\n\t * StringToggle является controlled-компонентом: визуальное состояние всегда\n\t * определяется `value`, поэтому native defaultChecked не передаётся в input.\n\t */\n\tvoid _defaultChecked;\n\n\tconst checkedValue = resolveStringToggleStateValue(configuredCheckedValue, DEFAULT_STRING_TOGGLE_CHECKED_VALUE);\n\tconst uncheckedValue = resolveStringToggleStateValue(configuredUncheckedValue, DEFAULT_STRING_TOGGLE_UNCHECKED_VALUE);\n\tconst isChecked = value === checkedValue;\n\n\treturn <Toggle {...props} value={isChecked} onChange={(checked) => onChange(checked ? checkedValue : uncheckedValue)} />;\n}\n"],"mappings":";;;;;AAIA,IAAa,IAAsC,QACtC,IAAwC;AAMrD,SAAgB,EAA8B,GAAgB,GAA0B;CACvF,OAAO,OAAO,KAAU,WAAW,IAAQ;AAC5C;;;;;;;;;;;;;AEQA,SAAgB,EAAO,EACtB,UACA,gBACA,gBACA,aACA,SACA,cACA,aACA,UACA,IAAI,GACJ,iBAAc,OACd,mBAAgB,QAChB,mBAAgB,UAChB,GAAG,KACY;CACf,IAAM,IAAS,EAAM,GACf,IAAK,KAAc,GACnB,IAAgB,IAAc,GAAG,EAAG,gBAAgB,KAAA,GACpD,IAAO,KAAS,GAChB,IAAY,EAAQ,GACpB,IAAoB,CAAC,KAAQ,CAAC,EAAM,gBAAgB,GAAG,EAAc,KAAK,MAAgB,KAAA,GAE1F,IAAe,IACpB,kBAAC,SAAD;EAAO,SAAS;EAAI,WAAW,EAAS;
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/toggle/stringToggleState.ts","../../src/toggle/Toggle.module.scss","../../src/toggle/Toggle.tsx","../../src/toggle/StringToggle.tsx"],"sourcesContent":["/**\n * Строковые значения по умолчанию позволяют использовать StringToggle\n * как строковое представление обычного boolean-переключателя.\n */\nexport const DEFAULT_STRING_TOGGLE_CHECKED_VALUE = \"true\";\nexport const DEFAULT_STRING_TOGGLE_UNCHECKED_VALUE = \"false\";\n\n/**\n * Возвращает переданную строку буквально, включая пустую строку и пробелы.\n * Fallback применяется только когда строковое значение отсутствует.\n */\nexport function resolveStringToggleStateValue(value: unknown, fallback: string): string {\n\treturn typeof value === \"string\" ? value : fallback;\n}\n","@use \"@/styles/mixins\" as *;\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n}\n\n.wrapper {\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 1 0 auto;\n\tmin-width: calc(var(--drp-ui-width-xs, var(--ui-width-xs)) - var(--width-add));\n}\n\n.input {\n\twidth: 100%;\n\tmargin: 0;\n\tpadding: 0;\n\tappearance: none;\n\tcursor: pointer;\n\n\t&:checked + .track {\n\t\t.thumb {\n\t\t\ttransform: translateX(100%);\n\t\t}\n\n\t\t.unchecked {\n\t\t\tcolor: var(--content-2);\n\t\t}\n\n\t\t.checked {\n\t\t\tcolor: var(--status-info-on-fill);\n\t\t}\n\t}\n\n\t&:focus-visible + .track {\n\t\t@include focusVisible;\n\t}\n}\n\n.track {\n\t.unchecked {\n\t\tcolor: var(--status-info-on-fill);\n\t}\n\n\t.checked {\n\t\tcolor: var(--content-2);\n\t}\n\n\tposition: absolute;\n\tinset: calc(var(--border-width) * 2);\n\tpointer-events: none;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\talign-items: center;\n\tmin-width: 6.5em;\n\tpadding: 0;\n\toverflow: hidden;\n\n\t&[data-disabled] {\n\t\t.thumb {\n\t\t\topacity: var(--disabled-opacity);\n\t\t}\n\t}\n}\n\n.option {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0 var(--space-sm);\n\tline-height: 1;\n\twhite-space: nowrap;\n\tuser-select: none;\n\tpointer-events: none;\n\tposition: relative;\n\tz-index: 1;\n\ttransition: color var(--transition-fast) linear;\n}\n\n.thumb {\n\tposition: absolute;\n\ttop: 0; // var(--border-width);\n\tleft: 0; //var(--border-width);\n\twidth: 50%; // calc(50% - var(--border-width));\n\theight: 100%; // calc(100% - var(--border-width) * 2);\n\tborder-radius: var(--radius-xs);\n\tbackground-color: var(--status-info-fill);\n\ttransition:\n\t\ttransform var(--transition-fast) ease-in-out,\n\t\topacity var(--transition-fast) ease-in-out;\n}\n","import React, { useId } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Toggle.module.scss\";\n\ntype ToggleLabelPosition = \"before\" | \"after\";\n\nexport interface ToggleProps\n\textends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"checked\" | \"value\" | \"onChange\" | \"type\">, UiBaseProps<boolean> {\n\tcheckedText?: string;\n\tuncheckedText?: string;\n\tlabelPosition?: ToggleLabelPosition;\n}\n\n/**\n * Переключаемая кнопка с сохранением активного состояния. Используется для локального выбора режима, фильтра или форматирования.\n */\nexport function Toggle({\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tdisabled,\n\tsize,\n\tclassName,\n\tonChange,\n\tvalue,\n\tid: externalId,\n\tcheckedText = \"ВКЛ\",\n\tuncheckedText = \"ВЫКЛ\",\n\tlabelPosition = \"before\",\n\t...props\n}: ToggleProps) {\n\tconst autoId = useId();\n\tconst id = externalId ?? autoId;\n\tconst descriptionId = description ? `${id}-description` : undefined;\n\tconst text = label ?? placeholder;\n\tconst isChecked = Boolean(value);\n\tconst fallbackAriaLabel = !text && !props[\"aria-label\"] ? `${uncheckedText} / ${checkedText}` : undefined;\n\n\tconst labelElement = text ? (\n\t\t<label htmlFor={id} className={uiStyles.uiLabel}>\n\t\t\t{text}\n\t\t</label>\n\t) : null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(uiStyles.uiElement, disabled && uiStyles.disabled, size && uiStyles.uiSizable, size && uiStyles[size], className)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t<div className={styles.row}>\n\t\t\t\t{labelPosition === \"before\" && labelElement}\n\t\t\t\t<div className={styles.wrapper}>\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-checked={isChecked}\n\t\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\t\taria-label={fallbackAriaLabel}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input)}\n\t\t\t\t\t\tonChange={(event) => onChange?.(event.currentTarget.checked)}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={styles.track} data-disabled={disabled || undefined} aria-hidden=\"true\">\n\t\t\t\t\t\t<div className={styles.thumb} />\n\t\t\t\t\t\t<div className={cn(styles.option, styles.unchecked)}>{uncheckedText}</div>\n\t\t\t\t\t\t<div className={cn(styles.option, styles.checked)}>{checkedText}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{labelPosition === \"after\" && labelElement}\n\t\t\t</div>\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { type ComponentProps } from \"react\";\n\nimport {\n\tDEFAULT_STRING_TOGGLE_CHECKED_VALUE,\n\tDEFAULT_STRING_TOGGLE_UNCHECKED_VALUE,\n\tresolveStringToggleStateValue\n} from \"./stringToggleState\";\nimport { Toggle } from \"./Toggle\";\n\n/**\n * Публичный контракт Toggle, который принимает и возвращает два настраиваемых\n * строковых значения вместо boolean.\n */\nexport type StringToggleProps = Omit<ComponentProps<typeof Toggle>, \"value\" | \"onChange\"> & {\n\tcheckedValue?: string;\n\tuncheckedValue?: string;\n\tvalue: string;\n\tonChange: (value: string) => void;\n};\n\n/**\n * Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.\n */\nexport function StringToggle({\n\tvalue,\n\tonChange,\n\tcheckedValue: configuredCheckedValue,\n\tuncheckedValue: configuredUncheckedValue,\n\tdefaultChecked: _defaultChecked,\n\t...props\n}: StringToggleProps) {\n\t/*\n\t * StringToggle является controlled-компонентом: визуальное состояние всегда\n\t * определяется `value`, поэтому native defaultChecked не передаётся в input.\n\t */\n\tvoid _defaultChecked;\n\n\tconst checkedValue = resolveStringToggleStateValue(configuredCheckedValue, DEFAULT_STRING_TOGGLE_CHECKED_VALUE);\n\tconst uncheckedValue = resolveStringToggleStateValue(configuredUncheckedValue, DEFAULT_STRING_TOGGLE_UNCHECKED_VALUE);\n\tconst isChecked = value === checkedValue;\n\n\treturn <Toggle {...props} value={isChecked} onChange={(checked) => onChange(checked ? checkedValue : uncheckedValue)} />;\n}\n"],"mappings":";;;;;AAIA,IAAa,IAAsC,QACtC,IAAwC;AAMrD,SAAgB,EAA8B,GAAgB,GAA0B;CACvF,OAAO,OAAO,KAAU,WAAW,IAAQ;AAC5C;;;;;;;;;;;;;AEQA,SAAgB,EAAO,EACtB,UACA,gBACA,gBACA,aACA,SACA,cACA,aACA,UACA,IAAI,GACJ,iBAAc,OACd,mBAAgB,QAChB,mBAAgB,UAChB,GAAG,KACY;CACf,IAAM,IAAS,EAAM,GACf,IAAK,KAAc,GACnB,IAAgB,IAAc,GAAG,EAAG,gBAAgB,KAAA,GACpD,IAAO,KAAS,GAChB,IAAY,EAAQ,GACpB,IAAoB,CAAC,KAAQ,CAAC,EAAM,gBAAgB,GAAG,EAAc,KAAK,MAAgB,KAAA,GAE1F,IAAe,IACpB,kBAAC,SAAD;EAAO,SAAS;EAAI,WAAW,EAAS;EACtC,UAAA;CACK,CAAA,IACJ;CAEJ,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,EAAS,WAAW,KAAY,EAAS,UAAU,KAAQ,EAAS,WAAW,KAAQ,EAAS,IAAO,CAAS;EAC9H,iBAAe,KAAY,KAAA;EAF5B,UAAA,CAGC,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAvB,UAAA;IACE,MAAkB,YAAY;IAC/B,kBAAC,OAAD;KAAK,WAAW,EAAO;KAAvB,UAAA,CACC,kBAAC,SAAD;MACC,GAAI;MACA;MACJ,MAAK;MACL,MAAK;MACL,SAAS;MACC;MACV,gBAAc;MACd,oBAAkB;MAClB,cAAY;MACZ,WAAW,EAAG,EAAS,gBAAgB,EAAO,KAAK;MACnD,WAAW,MAAU,IAAW,EAAM,cAAc,OAAO;KAC3D,CAAA,GACD,kBAAC,OAAD;MAAK,WAAW,EAAO;MAAO,iBAAe,KAAY,KAAA;MAAW,eAAY;MAAhF,UAAA;OACC,kBAAC,OAAD,EAAK,WAAW,EAAO,MAAQ,CAAA;OAC/B,kBAAC,OAAD;QAAK,WAAW,EAAG,EAAO,QAAQ,EAAO,SAAS;QAAI,UAAA;OAAmB,CAAA;OACzE,kBAAC,OAAD;QAAK,WAAW,EAAG,EAAO,QAAQ,EAAO,OAAO;QAAI,UAAA;OAAiB,CAAA;MACjE;KACD,CAAA,CAAA;;IACJ,MAAkB,WAAW;GAC1B;EACJ,CAAA,GAAA,KACA,kBAAC,KAAD;GAAG,IAAI;GAAe,WAAW,EAAS;GACxC,UAAA;EACC,CAAA,CAEA;;AAEP;;;AC7DA,SAAgB,EAAa,EAC5B,UACA,aACA,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,GAAG,KACkB;CAOrB,IAAM,IAAe,EAA8B,GAAwB,CAAmC,GACxG,IAAiB,EAA8B,GAA0B,CAAqC,GAC9G,IAAY,MAAU;CAE5B,OAAO,kBAAC,GAAD;EAAQ,GAAI;EAAO,OAAO;EAAW,WAAW,MAAY,EAAS,IAAU,IAAe,CAAc;CAAI,CAAA;AACxH"}
|
package/dist/toolbar/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as e, t } from "../chunks/flex-
|
|
1
|
+
import { r as e, t } from "../chunks/flex-C7njxZ74.js";
|
|
2
2
|
import { t as n } from "../chunks/grid-dI94AAbi.js";
|
|
3
3
|
import { Children as r } from "react";
|
|
4
4
|
import { childrenCount as i } from "@ryuzaki13/react-foundation-lib/utils";
|
|
@@ -18,7 +18,6 @@ function u({ children: a, className: u }) {
|
|
|
18
18
|
case l.displayName:
|
|
19
19
|
if (f) throw Error("Toolbar: duplicate <ToolbarEnd> found");
|
|
20
20
|
f = e.props.children;
|
|
21
|
-
break;
|
|
22
21
|
}
|
|
23
22
|
return /* @__PURE__ */ s(e.Container, {
|
|
24
23
|
wrap: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/toolbar/Toolbar.tsx"],"sourcesContent":["import React, { Children, PropsWithChildren, ReactNode } from \"react\";\n\nimport { childrenCount } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { Flex, FlexSpacer } from \"../flex\";\nimport { Grid } from \"../grid\";\n\nexport const ToolbarStart: React.FC<PropsWithChildren> = ({ children }) => <>{children}</>;\nToolbarStart.displayName = \"Toolbar.Start\";\n\nexport const ToolbarEnd: React.FC<PropsWithChildren> = ({ children }) => <>{children}</>;\nToolbarEnd.displayName = \"Toolbar.End\";\n\ntype ToolbarStartElement = React.ReactElement<{ children: ReactNode }, typeof ToolbarStart>;\ntype ToolbarEndElement = React.ReactElement<{ children: ReactNode }, typeof ToolbarEnd>;\n\ntype ToolbarChildren = [ToolbarStartElement, ToolbarEndElement] | ToolbarStartElement | ToolbarEndElement;\n\ninterface ToolbarProps {\n\tchildren: ToolbarChildren;\n\tclassName?: string;\n}\n\nexport function Toolbar({ children, className }: ToolbarProps) {\n\tlet toolbarStart: ReactNode = null;\n\tlet toolbarEnd: ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarStartElement | ToolbarEndElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ToolbarStart.displayName:\n\t\t\t\tif (toolbarStart) throw new Error(\"Toolbar: duplicate <ToolbarStart> found\");\n\t\t\t\ttoolbarStart = child.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ToolbarEnd.displayName:\n\t\t\t\tif (toolbarEnd) throw new Error(\"Toolbar: duplicate <ToolbarEnd> found\");\n\t\t\t\ttoolbarEnd = child.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn (\n\t\t<Flex.Container wrap align=\"center\" gap=\"md\" className={className}>\n\t\t\t{toolbarStart && (\n\t\t\t\t<Flex.Item flex0>\n\t\t\t\t\t<Grid.Container\n\t\t\t\t\t\ttemplateColumns={`repeat(${childrenCount(toolbarStart)}, calc(15em + var(--width-add)))`}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tgap=\"sm\">\n\t\t\t\t\t\t{toolbarStart}\n\t\t\t\t\t</Grid.Container>\n\t\t\t\t</Flex.Item>\n\t\t\t)}\n\n\t\t\t<FlexSpacer />\n\n\t\t\t{toolbarEnd && (\n\t\t\t\t<Flex.Item flex0>\n\t\t\t\t\t<Grid.Container\n\t\t\t\t\t\ttemplateColumns={`repeat(${childrenCount(toolbarEnd)}, calc(15em + var(--width-add)))`}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tgap=\"sm\">\n\t\t\t\t\t\t{toolbarEnd}\n\t\t\t\t\t</Grid.Container>\n\t\t\t\t</Flex.Item>\n\t\t\t)}\n\t\t</Flex.Container>\n\t);\n}\n"],"mappings":";;;;;;AAOA,IAAa,KAA6C,EAAE,kBAAe,kBAAA,GAAA,EAAG,YAAW,CAAA;AACzF,EAAa,cAAc;AAE3B,IAAa,KAA2C,EAAE,kBAAe,kBAAA,GAAA,EAAG,YAAW,CAAA;AACvF,EAAW,cAAc;AAYzB,SAAgB,EAAQ,EAAE,aAAU,gBAA2B;CAC9D,IAAI,IAA0B,MAC1B,IAAwB,MAEtB,IAAa,EAAS,QAAQ,CAAQ;CAE5C,KAAK,IAAM,KAAS,GAGnB,QAFiB,EAAM,KAAK,aAE5B;EACC,KAAK,EAAa;GACjB,IAAI,GAAc,MAAU,MAAM,yCAAyC;GAC3E,IAAe,EAAM,MAAM;GAC3B;EACD,KAAK,EAAW;GACf,IAAI,GAAY,MAAU,MAAM,uCAAuC;GACvE,IAAa,EAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/toolbar/Toolbar.tsx"],"sourcesContent":["import React, { Children, PropsWithChildren, ReactNode } from \"react\";\n\nimport { childrenCount } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { Flex, FlexSpacer } from \"../flex\";\nimport { Grid } from \"../grid\";\n\nexport const ToolbarStart: React.FC<PropsWithChildren> = ({ children }) => <>{children}</>;\nToolbarStart.displayName = \"Toolbar.Start\";\n\nexport const ToolbarEnd: React.FC<PropsWithChildren> = ({ children }) => <>{children}</>;\nToolbarEnd.displayName = \"Toolbar.End\";\n\ntype ToolbarStartElement = React.ReactElement<{ children: ReactNode }, typeof ToolbarStart>;\ntype ToolbarEndElement = React.ReactElement<{ children: ReactNode }, typeof ToolbarEnd>;\n\ntype ToolbarChildren = [ToolbarStartElement, ToolbarEndElement] | ToolbarStartElement | ToolbarEndElement;\n\ninterface ToolbarProps {\n\tchildren: ToolbarChildren;\n\tclassName?: string;\n}\n\nexport function Toolbar({ children, className }: ToolbarProps) {\n\tlet toolbarStart: ReactNode = null;\n\tlet toolbarEnd: ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarStartElement | ToolbarEndElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ToolbarStart.displayName:\n\t\t\t\tif (toolbarStart) throw new Error(\"Toolbar: duplicate <ToolbarStart> found\");\n\t\t\t\ttoolbarStart = child.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ToolbarEnd.displayName:\n\t\t\t\tif (toolbarEnd) throw new Error(\"Toolbar: duplicate <ToolbarEnd> found\");\n\t\t\t\ttoolbarEnd = child.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn (\n\t\t<Flex.Container wrap align=\"center\" gap=\"md\" className={className}>\n\t\t\t{toolbarStart && (\n\t\t\t\t<Flex.Item flex0>\n\t\t\t\t\t<Grid.Container\n\t\t\t\t\t\ttemplateColumns={`repeat(${childrenCount(toolbarStart)}, calc(15em + var(--width-add)))`}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tgap=\"sm\">\n\t\t\t\t\t\t{toolbarStart}\n\t\t\t\t\t</Grid.Container>\n\t\t\t\t</Flex.Item>\n\t\t\t)}\n\n\t\t\t<FlexSpacer />\n\n\t\t\t{toolbarEnd && (\n\t\t\t\t<Flex.Item flex0>\n\t\t\t\t\t<Grid.Container\n\t\t\t\t\t\ttemplateColumns={`repeat(${childrenCount(toolbarEnd)}, calc(15em + var(--width-add)))`}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tgap=\"sm\">\n\t\t\t\t\t\t{toolbarEnd}\n\t\t\t\t\t</Grid.Container>\n\t\t\t\t</Flex.Item>\n\t\t\t)}\n\t\t</Flex.Container>\n\t);\n}\n"],"mappings":";;;;;;AAOA,IAAa,KAA6C,EAAE,kBAAe,kBAAA,GAAA,EAAG,YAAW,CAAA;AACzF,EAAa,cAAc;AAE3B,IAAa,KAA2C,EAAE,kBAAe,kBAAA,GAAA,EAAG,YAAW,CAAA;AACvF,EAAW,cAAc;AAYzB,SAAgB,EAAQ,EAAE,aAAU,gBAA2B;CAC9D,IAAI,IAA0B,MAC1B,IAAwB,MAEtB,IAAa,EAAS,QAAQ,CAAQ;CAE5C,KAAK,IAAM,KAAS,GAGnB,QAFiB,EAAM,KAAK,aAE5B;EACC,KAAK,EAAa;GACjB,IAAI,GAAc,MAAU,MAAM,yCAAyC;GAC3E,IAAe,EAAM,MAAM;GAC3B;EACD,KAAK,EAAW;GACf,IAAI,GAAY,MAAU,MAAM,uCAAuC;GACvE,IAAa,EAAM,MAAM;CAE3B;CAGD,OACC,kBAAC,EAAK,WAAN;EAAgB,MAAA;EAAK,OAAM;EAAS,KAAI;EAAgB;EAAxD,UAAA;GACE,KACA,kBAAC,EAAK,MAAN;IAAW,OAAA;IACV,UAAA,kBAAC,EAAK,WAAN;KACC,iBAAiB,UAAU,EAAc,CAAY,EAAE;KACvD,OAAM;KACN,KAAI;KACH,UAAA;IACc,CAAA;GACN,CAAA;GAGZ,kBAAC,GAAD,CAAa,CAAA;GAEZ,KACA,kBAAC,EAAK,MAAN;IAAW,OAAA;IACV,UAAA,kBAAC,EAAK,WAAN;KACC,iBAAiB,UAAU,EAAc,CAAU,EAAE;KACrD,OAAM;KACN,KAAI;KACH,UAAA;IACc,CAAA;GACN,CAAA;EAEG;;AAElB"}
|
package/dist/tree/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/tree/Tree.module.scss","../../src/tree/Tree.tsx"],"sourcesContent":[".nodeItem {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.treeContainer {\n\tpadding: var(--space-md);\n}\n\n.nestedList {\n\tpadding-left: var(--space-md);\n}\n\n.nestedСounter {\n\tcounter-reset: item;\n\tlist-style-type: none;\n\tpadding-left: var(--space-md);\n\n\t.nestedList {\n\t\tmargin-left: var(--space-md);\n\t}\n\n\tol {\n\t\tcounter-reset: item;\n\t}\n\n\tli {\n\t\tcounter-increment: item;\n\t\tposition: relative;\n\n\t\t&::before {\n\t\t\tcontent: counters(item, \".\") \". \";\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t\ttransform: translateX(calc(-100% - 0.25em));\n\t\t}\n\t}\n}\n","// Tree.tsx\nimport React, { createElement, CSSProperties, KeyboardEvent, useMemo } from \"react\";\n\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./Tree.module.scss\";\n\n/**\n * Базовый тип — любое дерево с возможным полем children\n */\nexport interface TreeNodeBase {\n\tchildren?: readonly TreeNodeBase[] | undefined;\n\t[key: string]: unknown;\n}\n\n/**\n * Пропсы, которые получает callback рендера узла\n */\nexport interface TreeNodeRenderProps<T extends TreeNodeBase> {\n\tnode: T;\n\tlevel: number;\n\thasChildren: boolean;\n\tisLeaf: boolean;\n\tpath: (string | number)[];\n}\n\n/**\n * Основные пропсы компонента Tree\n */\nexport interface TreeProps<T extends TreeNodeBase> {\n\tdata: readonly T[];\n\t/**\n\t * Ключ для дочерних нод (по умолчанию \"children\")\n\t */\n\tchildrenKey?: keyof T;\n\t/**\n\t * Альтернатива childrenKey — функция, возвращающая children\n\t */\n\tgetChildren?: (node: T) => readonly T[] | undefined;\n\t/**\n\t * Как брать ключ для каждого узла (по умолчанию node.id || node.key || index)\n\t */\n\tgetKey?: (node: T, index: number, path: (string | number)[]) => React.Key;\n\t/**\n\t * Функция, которая рисует содержимое узла.\n\t * Если не передана — делается \"разумный\" дефолт (node.title || node.text || JSON).\n\t */\n\trenderNode?: (props: TreeNodeRenderProps<T>) => React.ReactNode;\n\t/**\n\t * Если задано — узел считается интерактивным и будет обёрнут в кнопку для клавиатурной доступности.\n\t */\n\tonNodeClick?: (node: T, path: (string | number)[]) => void;\n\n\t/* Стилизация и классы — внешняя настройка */\n\tcontainerElement?: \"ol\" | \"ul\" | \"div\"; // по умолчанию \"ol\"\n\tcontainerClassName?: string;\n\tcontainerStyle?: CSSProperties;\n\tnestedCounter?: boolean;\n\n\titemClassName?: string;\n\titemStyle?: CSSProperties;\n\n\tnestedListClassName?: string;\n\tnestedListStyle?: CSSProperties;\n\n\tlabelClassName?: string;\n\tlabelStyle?: CSSProperties;\n}\n\n/* ---- Вспомогательные реализации ---- */\n\nconst defaultChildrenKey = \"children\";\n\n/** Умный дефолт для получения ключа */\nfunction defaultGetKey<T extends TreeNodeBase>(node: T, index: number) {\n\t// часто встречающиеся поля — id, key\n\tconst maybeId = (node as Record<string, string>).id ?? (node as Record<string, string>).key;\n\treturn (maybeId as React.Key) ?? index;\n}\n\n/** Умолчание для рендера узла (если пользователь не передал renderNode) */\nfunction defaultRenderNode<T extends TreeNodeBase>({ node, level }: TreeNodeRenderProps<T>) {\n\tconst title = (node as Record<string, string>).title ?? (node as Record<string, string>).text ?? (node as Record<string, string>).label;\n\tif (typeof title === \"string\" || typeof title === \"number\") {\n\t\treturn (\n\t\t\t<div aria-level={level + 1} style={{ display: \"inline-block\" }}>\n\t\t\t\t{title}\n\t\t\t</div>\n\t\t);\n\t}\n\t// fallback — краткое представление объекта\n\treturn <div aria-level={level + 1}>{JSON.stringify(title ?? node)}</div>;\n}\n\n/* ---- Компонент ---- */\n\n/**\n * Универсальный компонент Tree\n * Не использует глобальный state и не знает бизнес-логики — всё через renderNode / callbacks.\n */\nexport function Tree<T extends TreeNodeBase>(props: TreeProps<T>) {\n\tconst {\n\t\tdata,\n\t\tchildrenKey = defaultChildrenKey as keyof T,\n\t\tgetChildren,\n\t\tgetKey = defaultGetKey,\n\t\trenderNode,\n\t\tonNodeClick,\n\t\tcontainerElement = \"ol\",\n\t\tcontainerClassName,\n\t\tcontainerStyle,\n\t\tnestedCounter: isContainerNested,\n\t\titemClassName,\n\t\titemStyle,\n\t\tnestedListClassName,\n\t\tnestedListStyle,\n\t\tlabelClassName,\n\t\tlabelStyle\n\t} = props;\n\n\t/**\n\t * Получить children для ноды — сначала getChildren, иначе node[childrenKey]\n\t */\n\tconst resolveChildren = (node: T): readonly T[] | undefined => {\n\t\tif (typeof getChildren === \"function\") return getChildren(node);\n\t\tconst maybe = node[childrenKey];\n\t\treturn Array.isArray(maybe) ? (maybe as readonly T[]) : undefined;\n\t};\n\n\t/**\n\t * Компонент/функция, рендерящая один узел (рекурсивно)\n\t *\n\t * Определяем как вложенную функцию — она использует замыкания resolveChildren, getKey и т.д.\n\t * Это простая рекурсия, и ключи выставляются родителем при map'е.\n\t */\n\tconst renderNodeRecursively = (node: T, index: number, level: number, path: (string | number)[]): React.ReactElement => {\n\t\tconst children = resolveChildren(node);\n\t\tconst hasChildren = Array.isArray(children) && children.length > 0;\n\t\tconst isLeaf = !hasChildren;\n\n\t\t// Контент узла — либо через renderNode проп, либо дефолтный\n\t\tconst nodeContent =\n\t\t\ttypeof renderNode === \"function\"\n\t\t\t\t? renderNode({ node, level, hasChildren, isLeaf, path })\n\t\t\t\t: defaultRenderNode<T>({ node, level, hasChildren, isLeaf, path });\n\n\t\t// NodeItem — оболочка, которая делает узел интерактивным при наличии onNodeClick\n\t\tfunction NodeItem() {\n\t\t\tconst label = (\n\t\t\t\t<div className={labelClassName} style={labelStyle} aria-current={isLeaf ? undefined : false}>\n\t\t\t\t\t{nodeContent}\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t\tif (!onNodeClick) {\n\t\t\t\t// Неинтерактивный вариант — semantic wrapper (div)\n\t\t\t\treturn <div role=\"presentation\">{label}</div>;\n\t\t\t}\n\n\t\t\t// Интерактивный вариант — кнопка, доступная с клавиатуры\n\t\t\tconst handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n\t\t\t\t// Enter и Space должны срабатывать как клик\n\t\t\t\thandleKeyboardActivation(e, () => onNodeClick(node, path));\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onNodeClick(node, path)}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tdata-ui=\"tree-node-button\"\n\t\t\t\t\tdata-action=\"select-tree-node\"\n\t\t\t\t\t// семантика уровня — aria-level при необходимости можно добавить\n\t\t\t\t\taria-expanded={hasChildren ? true : undefined}\n\t\t\t\t\tstyle={{ background: \"transparent\", border: 0, padding: 0, cursor: \"pointer\" }}>\n\t\t\t\t\t{label}\n\t\t\t\t</button>\n\t\t\t);\n\t\t}\n\n\t\t// Собираем <li> с контентом и, при наличии детей, вложенным списком\n\t\tconst Li = (\n\t\t\t<li key={getKey(node, index, path)} className={cn(styles.nodeItem, itemClassName)} style={itemStyle}>\n\t\t\t\t<NodeItem />\n\n\t\t\t\t{hasChildren &&\n\t\t\t\t\t// дочерний список — используем тот же контейнер, что и root (ol|ul|div)\n\t\t\t\t\tcreateElement(\n\t\t\t\t\t\tcontainerElement,\n\t\t\t\t\t\t{ className: nestedListClassName ?? styles.nestedList, style: nestedListStyle },\n\t\t\t\t\t\tchildren!.map((child, ci) => renderNodeRecursively(child as T, ci, level + 1, [...path, ci]))\n\t\t\t\t\t)}\n\t\t\t</li>\n\t\t);\n\n\t\treturn Li;\n\t};\n\n\tconst treeContent = useMemo(\n\t\t() =>\n\t\t\tdata.map((node, i) => {\n\t\t\t\tconst paths: (string | number)[] = [i];\n\t\t\t\treturn renderNodeRecursively(node as T, i, 0, paths);\n\t\t\t}),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\t// кусок deps — включаем те пропсы, которые влияют на результат\n\t\t\tdata,\n\t\t\tchildrenKey,\n\t\t\t// getChildren и getKey — функции, которые могут быть изменены пользователем\n\t\t\tgetChildren,\n\t\t\tgetKey,\n\t\t\trenderNode,\n\t\t\tonNodeClick,\n\t\t\tcontainerElement,\n\t\t\titemClassName,\n\t\t\titemStyle,\n\t\t\tnestedListClassName,\n\t\t\tnestedListStyle,\n\t\t\tlabelClassName,\n\t\t\tlabelStyle\n\t\t]\n\t);\n\n\t// Рендер внешнего контейнера (по умолчанию ol)\n\treturn createElement(\n\t\tcontainerElement,\n\t\t{\n\t\t\tclassName: cn(containerClassName ?? styles.treeContainer, isContainerNested && styles.nestedСounter),\n\t\t\tstyle: containerStyle\n\t\t},\n\t\ttreeContent\n\t);\n}\n"],"mappings":";;;;;;;;GCuEM,IAAqB;AAG3B,SAAS,EAAsC,GAAS,GAAe;CAGtE,OADiB,EAAgC,MAAO,EAAgC,OACvD;AAClC;AAGA,SAAS,EAA0C,EAAE,SAAM,YAAiC;CAC3F,IAAM,IAAS,EAAgC,SAAU,EAAgC,QAAS,EAAgC;CASlI,OARI,OAAO,KAAU,YAAY,OAAO,KAAU,WAEhD,kBAAC,OAAD;EAAK,cAAY,IAAQ;EAAG,OAAO,EAAE,SAAS,eAAe;YAC3D;CACG,CAAA,IAIA,kBAAC,OAAD;EAAK,cAAY,IAAQ;YAAI,KAAK,UAAU,KAAS,CAAI;CAAO,CAAA;AACxE;AAQA,SAAgB,EAA6B,GAAqB;CACjE,IAAM,EACL,SACA,iBAAc,GACd,gBACA,YAAS,GACT,eACA,gBACA,sBAAmB,MACnB,uBACA,mBACA,eAAe,GACf,kBACA,cACA,wBACA,oBACA,mBACA,kBACG,GAKE,KAAmB,MAAsC;EAC9D,IAAI,OAAO,KAAgB,YAAY,OAAO,EAAY,CAAI;EAC9D,IAAM,IAAQ,EAAK;EACnB,OAAO,MAAM,QAAQ,CAAK,IAAK,IAAyB,KAAA;CACzD,GAQM,KAAyB,GAAS,GAAe,GAAe,MAAkD;EACvH,IAAM,IAAW,EAAgB,CAAI,GAC/B,IAAc,MAAM,QAAQ,CAAQ,KAAK,EAAS,SAAS,GAC3D,IAAS,CAAC,GAGV,IACL,OAAO,KAAe,aACnB,EAAW;GAAE;GAAM;GAAO;GAAa;GAAQ;EAAK,CAAC,IACrD,EAAqB;GAAE;GAAM;GAAO;GAAa;GAAQ;EAAK,CAAC;EAGnE,SAAS,IAAW;GACnB,IAAM,IACL,kBAAC,OAAD;IAAK,WAAW;IAAgB,OAAO;IAAY,gBAAc,IAAS,KAAA,IAAY;cACpF;GACG,CAAA;GAcN,OAXK,IAYJ,kBAAC,UAAD;IACC,MAAK;IACL,eAAe,EAAY,GAAM,CAAI;IACrC,YATqB,MAAwC;KAE9D,EAAyB,SAAS,EAAY,GAAM,CAAI,CAAC;IAC1D;IAOE,WAAQ;IACR,eAAY;IAEZ,iBAAe,IAAc,KAAO,KAAA;IACpC,OAAO;KAAE,YAAY;KAAe,QAAQ;KAAG,SAAS;KAAG,QAAQ;IAAU;cAC5E;GACM,CAAA,IApBD,kBAAC,OAAD;IAAK,MAAK;cAAgB;GAAW,CAAA;EAsB9C;EAiBA,OAbC,kBAAC,MAAD;GAAoC,WAAW,EAAG,EAAO,UAAU,CAAa;GAAG,OAAO;aAA1F,CACC,kBAAC,GAAD,CAAW,CAAA,GAEV,KAEA,EACC,GACA;IAAE,WAAW,KAAuB,EAAO;IAAY,OAAO;GAAgB,GAC9E,EAAU,KAAK,GAAO,MAAO,EAAsB,GAAY,GAAI,IAAQ,GAAG,CAAC,GAAG,GAAM,CAAE,CAAC,CAAC,CAC7F,CACE;KAVK,EAAO,GAAM,GAAO,CAAI,CAa3B;CACR,GAEM,IAAc,QAElB,EAAK,KAAK,GAAM,MAER,EAAsB,GAAW,GAAG,GAAG,CADV,CACU,CAAK,CACnD,GAEF;EAEC;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,CACD;CAGA,OAAO,EACN,GACA;EACC,WAAW,EAAG,KAAsB,EAAO,eAAe,KAAqB,EAAO,aAAa;EACnG,OAAO;CACR,GACA,CACD;AACD"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/tree/Tree.module.scss","../../src/tree/Tree.tsx"],"sourcesContent":[".nodeItem {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.treeContainer {\n\tpadding: var(--space-md);\n}\n\n.nestedList {\n\tpadding-left: var(--space-md);\n}\n\n.nestedСounter {\n\tcounter-reset: item;\n\tlist-style-type: none;\n\tpadding-left: var(--space-md);\n\n\t.nestedList {\n\t\tmargin-left: var(--space-md);\n\t}\n\n\tol {\n\t\tcounter-reset: item;\n\t}\n\n\tli {\n\t\tcounter-increment: item;\n\t\tposition: relative;\n\n\t\t&::before {\n\t\t\tcontent: counters(item, \".\") \". \";\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t\ttransform: translateX(calc(-100% - 0.25em));\n\t\t}\n\t}\n}\n","// Tree.tsx\nimport React, { createElement, CSSProperties, KeyboardEvent, useMemo } from \"react\";\n\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./Tree.module.scss\";\n\n/**\n * Базовый тип — любое дерево с возможным полем children\n */\nexport interface TreeNodeBase {\n\tchildren?: readonly TreeNodeBase[] | undefined;\n\t[key: string]: unknown;\n}\n\n/**\n * Пропсы, которые получает callback рендера узла\n */\nexport interface TreeNodeRenderProps<T extends TreeNodeBase> {\n\tnode: T;\n\tlevel: number;\n\thasChildren: boolean;\n\tisLeaf: boolean;\n\tpath: (string | number)[];\n}\n\n/**\n * Основные пропсы компонента Tree\n */\nexport interface TreeProps<T extends TreeNodeBase> {\n\tdata: readonly T[];\n\t/**\n\t * Ключ для дочерних нод (по умолчанию \"children\")\n\t */\n\tchildrenKey?: keyof T;\n\t/**\n\t * Альтернатива childrenKey — функция, возвращающая children\n\t */\n\tgetChildren?: (node: T) => readonly T[] | undefined;\n\t/**\n\t * Как брать ключ для каждого узла (по умолчанию node.id || node.key || index)\n\t */\n\tgetKey?: (node: T, index: number, path: (string | number)[]) => React.Key;\n\t/**\n\t * Функция, которая рисует содержимое узла.\n\t * Если не передана — делается \"разумный\" дефолт (node.title || node.text || JSON).\n\t */\n\trenderNode?: (props: TreeNodeRenderProps<T>) => React.ReactNode;\n\t/**\n\t * Если задано — узел считается интерактивным и будет обёрнут в кнопку для клавиатурной доступности.\n\t */\n\tonNodeClick?: (node: T, path: (string | number)[]) => void;\n\n\t/* Стилизация и классы — внешняя настройка */\n\tcontainerElement?: \"ol\" | \"ul\" | \"div\"; // по умолчанию \"ol\"\n\tcontainerClassName?: string;\n\tcontainerStyle?: CSSProperties;\n\tnestedCounter?: boolean;\n\n\titemClassName?: string;\n\titemStyle?: CSSProperties;\n\n\tnestedListClassName?: string;\n\tnestedListStyle?: CSSProperties;\n\n\tlabelClassName?: string;\n\tlabelStyle?: CSSProperties;\n}\n\n/* ---- Вспомогательные реализации ---- */\n\nconst defaultChildrenKey = \"children\";\n\n/** Умный дефолт для получения ключа */\nfunction defaultGetKey<T extends TreeNodeBase>(node: T, index: number) {\n\t// часто встречающиеся поля — id, key\n\tconst maybeId = (node as Record<string, string>).id ?? (node as Record<string, string>).key;\n\treturn (maybeId as React.Key) ?? index;\n}\n\n/** Умолчание для рендера узла (если пользователь не передал renderNode) */\nfunction defaultRenderNode<T extends TreeNodeBase>({ node, level }: TreeNodeRenderProps<T>) {\n\tconst title = (node as Record<string, string>).title ?? (node as Record<string, string>).text ?? (node as Record<string, string>).label;\n\tif (typeof title === \"string\" || typeof title === \"number\") {\n\t\treturn (\n\t\t\t<div aria-level={level + 1} style={{ display: \"inline-block\" }}>\n\t\t\t\t{title}\n\t\t\t</div>\n\t\t);\n\t}\n\t// fallback — краткое представление объекта\n\treturn <div aria-level={level + 1}>{JSON.stringify(title ?? node)}</div>;\n}\n\n/* ---- Компонент ---- */\n\n/**\n * Универсальный компонент Tree\n * Не использует глобальный state и не знает бизнес-логики — всё через renderNode / callbacks.\n */\nexport function Tree<T extends TreeNodeBase>(props: TreeProps<T>) {\n\tconst {\n\t\tdata,\n\t\tchildrenKey = defaultChildrenKey as keyof T,\n\t\tgetChildren,\n\t\tgetKey = defaultGetKey,\n\t\trenderNode,\n\t\tonNodeClick,\n\t\tcontainerElement = \"ol\",\n\t\tcontainerClassName,\n\t\tcontainerStyle,\n\t\tnestedCounter: isContainerNested,\n\t\titemClassName,\n\t\titemStyle,\n\t\tnestedListClassName,\n\t\tnestedListStyle,\n\t\tlabelClassName,\n\t\tlabelStyle\n\t} = props;\n\n\t/**\n\t * Получить children для ноды — сначала getChildren, иначе node[childrenKey]\n\t */\n\tconst resolveChildren = (node: T): readonly T[] | undefined => {\n\t\tif (typeof getChildren === \"function\") return getChildren(node);\n\t\tconst maybe = node[childrenKey];\n\t\treturn Array.isArray(maybe) ? (maybe as readonly T[]) : undefined;\n\t};\n\n\t/**\n\t * Компонент/функция, рендерящая один узел (рекурсивно)\n\t *\n\t * Определяем как вложенную функцию — она использует замыкания resolveChildren, getKey и т.д.\n\t * Это простая рекурсия, и ключи выставляются родителем при map'е.\n\t */\n\tconst renderNodeRecursively = (node: T, index: number, level: number, path: (string | number)[]): React.ReactElement => {\n\t\tconst children = resolveChildren(node);\n\t\tconst hasChildren = Array.isArray(children) && children.length > 0;\n\t\tconst isLeaf = !hasChildren;\n\n\t\t// Контент узла — либо через renderNode проп, либо дефолтный\n\t\tconst nodeContent =\n\t\t\ttypeof renderNode === \"function\"\n\t\t\t\t? renderNode({ node, level, hasChildren, isLeaf, path })\n\t\t\t\t: defaultRenderNode<T>({ node, level, hasChildren, isLeaf, path });\n\n\t\t// NodeItem — оболочка, которая делает узел интерактивным при наличии onNodeClick\n\t\tfunction NodeItem() {\n\t\t\tconst label = (\n\t\t\t\t<div className={labelClassName} style={labelStyle} aria-current={isLeaf ? undefined : false}>\n\t\t\t\t\t{nodeContent}\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t\tif (!onNodeClick) {\n\t\t\t\t// Неинтерактивный вариант — semantic wrapper (div)\n\t\t\t\treturn <div role=\"presentation\">{label}</div>;\n\t\t\t}\n\n\t\t\t// Интерактивный вариант — кнопка, доступная с клавиатуры\n\t\t\tconst handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n\t\t\t\t// Enter и Space должны срабатывать как клик\n\t\t\t\thandleKeyboardActivation(e, () => onNodeClick(node, path));\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onNodeClick(node, path)}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tdata-ui=\"tree-node-button\"\n\t\t\t\t\tdata-action=\"select-tree-node\"\n\t\t\t\t\t// семантика уровня — aria-level при необходимости можно добавить\n\t\t\t\t\taria-expanded={hasChildren ? true : undefined}\n\t\t\t\t\tstyle={{ background: \"transparent\", border: 0, padding: 0, cursor: \"pointer\" }}>\n\t\t\t\t\t{label}\n\t\t\t\t</button>\n\t\t\t);\n\t\t}\n\n\t\t// Собираем <li> с контентом и, при наличии детей, вложенным списком\n\t\tconst Li = (\n\t\t\t<li key={getKey(node, index, path)} className={cn(styles.nodeItem, itemClassName)} style={itemStyle}>\n\t\t\t\t<NodeItem />\n\n\t\t\t\t{hasChildren &&\n\t\t\t\t\t// дочерний список — используем тот же контейнер, что и root (ol|ul|div)\n\t\t\t\t\tcreateElement(\n\t\t\t\t\t\tcontainerElement,\n\t\t\t\t\t\t{ className: nestedListClassName ?? styles.nestedList, style: nestedListStyle },\n\t\t\t\t\t\tchildren!.map((child, ci) => renderNodeRecursively(child as T, ci, level + 1, [...path, ci]))\n\t\t\t\t\t)}\n\t\t\t</li>\n\t\t);\n\n\t\treturn Li;\n\t};\n\n\tconst treeContent = useMemo(\n\t\t() =>\n\t\t\tdata.map((node, i) => {\n\t\t\t\tconst paths: (string | number)[] = [i];\n\t\t\t\treturn renderNodeRecursively(node as T, i, 0, paths);\n\t\t\t}),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\t// кусок deps — включаем те пропсы, которые влияют на результат\n\t\t\tdata,\n\t\t\tchildrenKey,\n\t\t\t// getChildren и getKey — функции, которые могут быть изменены пользователем\n\t\t\tgetChildren,\n\t\t\tgetKey,\n\t\t\trenderNode,\n\t\t\tonNodeClick,\n\t\t\tcontainerElement,\n\t\t\titemClassName,\n\t\t\titemStyle,\n\t\t\tnestedListClassName,\n\t\t\tnestedListStyle,\n\t\t\tlabelClassName,\n\t\t\tlabelStyle\n\t\t]\n\t);\n\n\t// Рендер внешнего контейнера (по умолчанию ol)\n\treturn createElement(\n\t\tcontainerElement,\n\t\t{\n\t\t\tclassName: cn(containerClassName ?? styles.treeContainer, isContainerNested && styles.nestedСounter),\n\t\t\tstyle: containerStyle\n\t\t},\n\t\ttreeContent\n\t);\n}\n"],"mappings":";;;;;;;;GCuEM,IAAqB;AAG3B,SAAS,EAAsC,GAAS,GAAe;CAGtE,OADiB,EAAgC,MAAO,EAAgC,OACvD;AAClC;AAGA,SAAS,EAA0C,EAAE,SAAM,YAAiC;CAC3F,IAAM,IAAS,EAAgC,SAAU,EAAgC,QAAS,EAAgC;CASlI,OARI,OAAO,KAAU,YAAY,OAAO,KAAU,WAEhD,kBAAC,OAAD;EAAK,cAAY,IAAQ;EAAG,OAAO,EAAE,SAAS,eAAe;EAC3D,UAAA;CACG,CAAA,IAIA,kBAAC,OAAD;EAAK,cAAY,IAAQ;EAAI,UAAA,KAAK,UAAU,KAAS,CAAI;CAAO,CAAA;AACxE;AAQA,SAAgB,EAA6B,GAAqB;CACjE,IAAM,EACL,SACA,iBAAc,GACd,gBACA,YAAS,GACT,eACA,gBACA,sBAAmB,MACnB,uBACA,mBACA,eAAe,GACf,kBACA,cACA,wBACA,oBACA,mBACA,kBACG,GAKE,KAAmB,MAAsC;EAC9D,IAAI,OAAO,KAAgB,YAAY,OAAO,EAAY,CAAI;EAC9D,IAAM,IAAQ,EAAK;EACnB,OAAO,MAAM,QAAQ,CAAK,IAAK,IAAyB,KAAA;CACzD,GAQM,KAAyB,GAAS,GAAe,GAAe,MAAkD;EACvH,IAAM,IAAW,EAAgB,CAAI,GAC/B,IAAc,MAAM,QAAQ,CAAQ,KAAK,EAAS,SAAS,GAC3D,IAAS,CAAC,GAGV,IACL,OAAO,KAAe,aACnB,EAAW;GAAE;GAAM;GAAO;GAAa;GAAQ;EAAK,CAAC,IACrD,EAAqB;GAAE;GAAM;GAAO;GAAa;GAAQ;EAAK,CAAC;EAGnE,SAAS,IAAW;GACnB,IAAM,IACL,kBAAC,OAAD;IAAK,WAAW;IAAgB,OAAO;IAAY,gBAAc,IAAS,KAAA,IAAY;IACpF,UAAA;GACG,CAAA;GAcN,OAXK,IAYJ,kBAAC,UAAD;IACC,MAAK;IACL,eAAe,EAAY,GAAM,CAAI;IACrC,YATqB,MAAwC;KAE9D,EAAyB,SAAS,EAAY,GAAM,CAAI,CAAC;IAC1D;IAOE,WAAQ;IACR,eAAY;IAEZ,iBAAe,IAAc,KAAO,KAAA;IACpC,OAAO;KAAE,YAAY;KAAe,QAAQ;KAAG,SAAS;KAAG,QAAQ;IAAU;IAC5E,UAAA;GACM,CAAA,IApBD,kBAAC,OAAD;IAAK,MAAK;IAAgB,UAAA;GAAW,CAAA;EAsB9C;EAiBA,OAbC,kBAAC,MAAD;GAAoC,WAAW,EAAG,EAAO,UAAU,CAAa;GAAG,OAAO;GAA1F,UAAA,CACC,kBAAC,GAAD,CAAW,CAAA,GAEV,KAEA,EACC,GACA;IAAE,WAAW,KAAuB,EAAO;IAAY,OAAO;GAAgB,GAC9E,EAAU,KAAK,GAAO,MAAO,EAAsB,GAAY,GAAI,IAAQ,GAAG,CAAC,GAAG,GAAM,CAAE,CAAC,CAAC,CAC7F,CACE;EAVK,GAAA,EAAO,GAAM,GAAO,CAAI,CAa3B;CACR,GAEM,IAAc,QAElB,EAAK,KAAK,GAAM,MAER,EAAsB,GAAW,GAAG,GAAG,CADV,CACU,CAAK,CACnD,GAEF;EAEC;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,CACD;CAGA,OAAO,EACN,GACA;EACC,WAAW,EAAG,KAAsB,EAAO,eAAe,KAAqB,EAAO,aAAa;EACnG,OAAO;CACR,GACA,CACD;AACD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as e } from "../chunks/ui.module-BisoTevy.js";
|
|
2
|
-
import { o as t } from "../chunks/input-
|
|
2
|
+
import { o as t } from "../chunks/input-Bp6_Ucgr.js";
|
|
3
3
|
import { t as n } from "../chunks/check-box-Dd3YFuxd.js";
|
|
4
|
-
import { c as r, d as i, f as a, i as o, l as s, n as c, p as l, r as u, t as d, u as f } from "../chunks/picker-
|
|
4
|
+
import { c as r, d as i, f as a, i as o, l as s, n as c, p as l, r as u, t as d, u as f } from "../chunks/picker-e6IsrMUG.js";
|
|
5
5
|
import { r as p } from "../chunks/useODataSelectBase-CKe1AVMI.js";
|
|
6
|
-
import { o as m } from "../chunks/multi-select-
|
|
6
|
+
import { o as m } from "../chunks/multi-select-COa6-owj.js";
|
|
7
7
|
import { useCallback as h, useEffect as g, useLayoutEffect as _, useMemo as v, useRef as y, useState as ee } from "react";
|
|
8
8
|
import { flattenODataDependentServices as b, sortODataDependentSegmentItemsByChains as x, useODataCollection as S, useODataCollectionChains as te, useODataCollectionModel as C } from "@ryuzaki13/react-foundation-api/odata";
|
|
9
9
|
import { cn as w } from "@ryuzaki13/react-foundation-lib/utils";
|
|
@@ -44,7 +44,10 @@ function oe(e) {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
function se(e, t) {
|
|
47
|
-
e.sort((e, n) =>
|
|
47
|
+
e.sort((e, n) => {
|
|
48
|
+
let r = t ? e.sortCode : e.label, i = t ? n.sortCode : n.label;
|
|
49
|
+
return ae(r, i) || ae(e.sortCode, n.sortCode);
|
|
50
|
+
});
|
|
48
51
|
for (let n of e) se(n.children, t);
|
|
49
52
|
}
|
|
50
53
|
function ce(e) {
|
|
@@ -101,42 +104,42 @@ function P({ odata: e, segments: t, model: n }) {
|
|
|
101
104
|
e,
|
|
102
105
|
t,
|
|
103
106
|
n
|
|
104
|
-
]), a = te([e]), o = v(() => ue(i, a), [i, a]), s = v(() => o.map((e) => e.id), [o]), c =
|
|
107
|
+
]), a = te([e]), o = v(() => ue(i, a), [i, a]), s = v(() => o.map((e) => e.id), [o]), c = de(o) ?? Object.keys(t)[0], l = C({
|
|
108
|
+
codeKey: c,
|
|
109
|
+
...n
|
|
110
|
+
}), u = S({
|
|
105
111
|
odata: e,
|
|
106
|
-
model:
|
|
107
|
-
|
|
108
|
-
...n
|
|
109
|
-
})
|
|
110
|
-
}), { hiddenCodeKeys: l, textValueCodeKeys: u } = v(() => {
|
|
112
|
+
model: l
|
|
113
|
+
}), { hiddenCodeKeys: d, textValueCodeKeys: f } = v(() => {
|
|
111
114
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
112
115
|
for (let r of o) (r.segment.hideCode ?? e.hideCode) && t.add(r.id), r.segment.selectText && n.add(r.id);
|
|
113
116
|
return {
|
|
114
117
|
hiddenCodeKeys: t,
|
|
115
118
|
textValueCodeKeys: n
|
|
116
119
|
};
|
|
117
|
-
}, [e.hideCode, o]),
|
|
118
|
-
items:
|
|
120
|
+
}, [e.hideCode, o]), p = v(() => le({
|
|
121
|
+
items: u.data?.items ?? [],
|
|
119
122
|
orderedCodeKeys: s,
|
|
120
|
-
keyPairsMap:
|
|
121
|
-
hiddenCodeKeys:
|
|
122
|
-
textValueCodeKeys:
|
|
123
|
+
keyPairsMap: u.data?.keyPairsMap ?? {},
|
|
124
|
+
hiddenCodeKeys: d,
|
|
125
|
+
textValueCodeKeys: f,
|
|
123
126
|
sortByCode: e.sortByCode
|
|
124
127
|
}), [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
u.data?.items,
|
|
129
|
+
u.data?.keyPairsMap,
|
|
130
|
+
d,
|
|
128
131
|
e.sortByCode,
|
|
129
132
|
s,
|
|
130
|
-
|
|
131
|
-
]),
|
|
133
|
+
f
|
|
134
|
+
]), m = o[0]?.segment.placeholder ?? "Выберите значение", h = !!a[r]?.length;
|
|
132
135
|
return {
|
|
133
|
-
nodes:
|
|
136
|
+
nodes: p,
|
|
134
137
|
orderedSegmentItems: o,
|
|
135
138
|
orderedCodeKeys: s,
|
|
136
|
-
isLoading:
|
|
137
|
-
isError:
|
|
138
|
-
placeholder:
|
|
139
|
-
hasResolvedChain:
|
|
139
|
+
isLoading: u.isLoading,
|
|
140
|
+
isError: u.isError,
|
|
141
|
+
placeholder: m,
|
|
142
|
+
hasResolvedChain: h
|
|
140
143
|
};
|
|
141
144
|
}
|
|
142
145
|
//#endregion
|
|
@@ -201,7 +204,7 @@ function B(e, t, n) {
|
|
|
201
204
|
if (t.has(e)) return !0;
|
|
202
205
|
if (n.nodeById.get(e)?.disabled) return !1;
|
|
203
206
|
let r = n.childrenById.get(e) ?? [];
|
|
204
|
-
return r.length
|
|
207
|
+
return r.length !== 0 && r.every((e) => B(e, t, n));
|
|
205
208
|
}
|
|
206
209
|
function V(e, t) {
|
|
207
210
|
let n = new Set(e);
|
|
@@ -362,15 +365,15 @@ function Ce(e) {
|
|
|
362
365
|
}
|
|
363
366
|
//#endregion
|
|
364
367
|
//#region src/tree-select/model/resolveBalancedTreeColumnsLayout.ts
|
|
365
|
-
var
|
|
366
|
-
function
|
|
368
|
+
var we = 16, K = 48, Te = 224, q = 10, J = 32, Ee = 6, De = 3;
|
|
369
|
+
function Y(e, t) {
|
|
367
370
|
return Number.isFinite(e) && e > 0 ? e : t;
|
|
368
371
|
}
|
|
369
372
|
function Oe(e) {
|
|
370
373
|
let t = e.endIndexExclusive - e.startIndex;
|
|
371
374
|
return Math.min(De, t);
|
|
372
375
|
}
|
|
373
|
-
function
|
|
376
|
+
function X(e, t) {
|
|
374
377
|
let n = Math.max(1, t), r = [], i = 1, a = 1, o = 0;
|
|
375
378
|
for (let t of e.groups) {
|
|
376
379
|
let e = Oe(t), s = n - a + 1;
|
|
@@ -386,8 +389,8 @@ function ke(e, t) {
|
|
|
386
389
|
intentionalGapCount: o
|
|
387
390
|
};
|
|
388
391
|
}
|
|
389
|
-
function
|
|
390
|
-
let o = Math.max(0, Math.floor(Number.isFinite(e.itemCount) ? e.itemCount : 0)), s =
|
|
392
|
+
function ke({ descriptor: e, availableWidth: t, availableHeight: n, viewportWidth: r, viewportHeight: i, referenceWidth: a }) {
|
|
393
|
+
let o = Math.max(0, Math.floor(Number.isFinite(e.itemCount) ? e.itemCount : 0)), s = Y(t, 240), c = Y(n, 80), l = Y(r, s + 16), u = Y(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, Y(a, 1)), m = Math.min(d, p), h = Math.max(1, Math.floor((d - we + q) / 234)), g = Math.max(1, Math.min(Ee, h, o || 1)), _ = e.groups.reduce((e, t) => Math.max(e, Oe(t)), 1);
|
|
391
394
|
if (o === 0) return {
|
|
392
395
|
columnCount: 1,
|
|
393
396
|
rowCount: 1,
|
|
@@ -398,9 +401,9 @@ function Ae({ descriptor: e, availableWidth: t, availableHeight: n, viewportWidt
|
|
|
398
401
|
};
|
|
399
402
|
let v, y = Infinity;
|
|
400
403
|
for (let t = 1; t <= g; t += 1) {
|
|
401
|
-
let n = Math.max(_, Math.ceil(o / t)), r =
|
|
402
|
-
for (; r.usedColumnCount > t && n < o;) n += 1, r =
|
|
403
|
-
let i = r.usedColumnCount, a = Math.max(m,
|
|
404
|
+
let n = Math.max(_, Math.ceil(o / t)), r = X(e, n);
|
|
405
|
+
for (; r.usedColumnCount > t && n < o;) n += 1, r = X(e, n);
|
|
406
|
+
let i = r.usedColumnCount, a = Math.max(m, we + i * Te + (i - 1) * q), s = K + n * J, 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);
|
|
404
407
|
h < y && (y = h, v = {
|
|
405
408
|
columnCount: i,
|
|
406
409
|
rowCount: n,
|
|
@@ -416,7 +419,7 @@ function Ae({ descriptor: e, availableWidth: t, availableHeight: n, viewportWidt
|
|
|
416
419
|
width: m,
|
|
417
420
|
minWidth: m,
|
|
418
421
|
maxHeight: f,
|
|
419
|
-
placements:
|
|
422
|
+
placements: X(e, o).placements
|
|
420
423
|
};
|
|
421
424
|
}
|
|
422
425
|
var Z = {
|
|
@@ -450,7 +453,7 @@ var Z = {
|
|
|
450
453
|
};
|
|
451
454
|
//#endregion
|
|
452
455
|
//#region src/tree-select/TreeNodeContent.tsx
|
|
453
|
-
function
|
|
456
|
+
function Ae({ node: e, level: t, highlight: r, hasChildren: i, isExpanded: a, selected: o, partial: s, selectionMode: c, optionsLayout: l = "tree", onToggleExpand: u, onToggleSelection: d }) {
|
|
454
457
|
let f = l === "tree", m = l === "columns" && t === 0;
|
|
455
458
|
return /* @__PURE__ */ O(ie, { children: [
|
|
456
459
|
/* @__PURE__ */ D("span", {
|
|
@@ -502,7 +505,7 @@ function je({ node: e, level: t, highlight: r, hasChildren: i, isExpanded: a, se
|
|
|
502
505
|
}
|
|
503
506
|
//#endregion
|
|
504
507
|
//#region src/tree-select/TreePickerBase.tsx
|
|
505
|
-
function
|
|
508
|
+
function je({ label: n, description: c, disabled: p, placeholder: m, size: b, nodes: x, selectedIds: S, partialIds: te, selectionMode: C, optionsLayout: T = "tree", defaultExpandedCodeKeys: E, open: ne, onOpenChange: ae, bulkActions: k, triggerMode: A = "display", selectedSummary: j, selectedSummaryText: M, query: oe, defaultQuery: se, onQuery: ce, onNodeActivate: le, onClearSelection: ue, isLoading: N, error: de }) {
|
|
506
509
|
let P = y(null), F = y(null), pe = y(!1), [I, me] = ee(() => /* @__PURE__ */ new Map()), L = A === "search" ? C === "multi" ? "search-multi" : "search-single" : "display", R = v(() => fe(x), [x]), z = v(() => new Set(E), [E]), { query: B, setQuery: V } = u({
|
|
507
510
|
open: !0,
|
|
508
511
|
query: oe,
|
|
@@ -523,10 +526,10 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
523
526
|
T,
|
|
524
527
|
U,
|
|
525
528
|
ge
|
|
526
|
-
]), G = v(() => Se(he, ve), [he, ve]),
|
|
527
|
-
let t =
|
|
529
|
+
]), G = v(() => Se(he, ve), [he, ve]), we = v(() => G.findIndex((e) => S.has(e.node.id)), [S, G]), K = v(() => Ce(G), [G]), Te = h((e) => {
|
|
530
|
+
let t = ke({
|
|
528
531
|
...e,
|
|
529
|
-
descriptor:
|
|
532
|
+
descriptor: K
|
|
530
533
|
}), n = {};
|
|
531
534
|
return t.placements.forEach((e, t) => {
|
|
532
535
|
n[`--tree-option-${t}-column`] = String(e.column), n[`--tree-option-${t}-row`] = String(e.row);
|
|
@@ -539,9 +542,9 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
539
542
|
"--tree-row-count": String(t.rowCount),
|
|
540
543
|
...n
|
|
541
544
|
};
|
|
542
|
-
}, [
|
|
545
|
+
}, [K]), { open: q, activeIndex: J, context: Ee, floatingStyles: De, getFloatingProps: Y, setReference: Oe, setFloating: X, setOptionRef: je, close: Me, openList: Ne, toggleOpen: Pe, selectOption: Q, handleReferenceKeyDown: Fe, handleFloatingKeyDown: Ie, getOptionId: Le, getActiveOptionId: Re } = o({
|
|
543
546
|
options: G,
|
|
544
|
-
selectedIndex:
|
|
547
|
+
selectedIndex: we,
|
|
545
548
|
open: ne,
|
|
546
549
|
onOpenChange: ae,
|
|
547
550
|
onSelect: (e) => le(e.node),
|
|
@@ -551,10 +554,10 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
551
554
|
allowOpenWithoutOptions: !0,
|
|
552
555
|
triggerMode: L,
|
|
553
556
|
placementStrategy: T === "columns" ? "auto" : "flip",
|
|
554
|
-
resolveFloatingSize: T === "columns" ?
|
|
555
|
-
}), ze =
|
|
557
|
+
resolveFloatingSize: T === "columns" ? Te : void 0
|
|
558
|
+
}), ze = Ee.update, Be = S.size > 0, Ve = A === "search" && (q || B.length > 0), He = Ve ? B : M ?? "", Ue = A === "display" && !!j, We = L === "search-multi" && !!j, Ge = L === "search-multi" && !Be || L === "search-single" && (!M || Ve) || L === "display" && !Be, $ = d({
|
|
556
559
|
mode: L,
|
|
557
|
-
open:
|
|
560
|
+
open: q,
|
|
558
561
|
currentQuery: B,
|
|
559
562
|
hasDisplayValue: !!M,
|
|
560
563
|
inputRef: P,
|
|
@@ -582,16 +585,16 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
582
585
|
}) : null]
|
|
583
586
|
}) : void 0;
|
|
584
587
|
g(() => {
|
|
585
|
-
pe.current && !
|
|
588
|
+
pe.current && !q && $.policy.resetQueryOnClose && V(""), pe.current = q;
|
|
586
589
|
}, [
|
|
587
|
-
|
|
590
|
+
q,
|
|
588
591
|
V,
|
|
589
592
|
$.policy.resetQueryOnClose
|
|
590
593
|
]), _(() => {
|
|
591
|
-
|
|
594
|
+
q && T === "columns" && ze();
|
|
592
595
|
}, [
|
|
593
|
-
|
|
594
|
-
|
|
596
|
+
K.signature,
|
|
597
|
+
q,
|
|
595
598
|
T,
|
|
596
599
|
ze
|
|
597
600
|
]);
|
|
@@ -615,7 +618,7 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
615
618
|
let c = `${t}-listbox`, l = typeof n == "string" ? n : m;
|
|
616
619
|
return /* @__PURE__ */ O(ie, { children: [/* @__PURE__ */ D(r, {
|
|
617
620
|
ref: Ye,
|
|
618
|
-
rootRef:
|
|
621
|
+
rootRef: Oe,
|
|
619
622
|
id: t,
|
|
620
623
|
type: "text",
|
|
621
624
|
role: "combobox",
|
|
@@ -628,17 +631,17 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
628
631
|
"aria-label": i ? void 0 : m,
|
|
629
632
|
"aria-describedby": o,
|
|
630
633
|
"aria-haspopup": T === "columns" ? "dialog" : "listbox",
|
|
631
|
-
"aria-expanded":
|
|
632
|
-
"aria-controls":
|
|
634
|
+
"aria-expanded": q,
|
|
635
|
+
"aria-controls": q ? c : void 0,
|
|
633
636
|
"aria-autocomplete": T !== "columns" && A === "search" ? "list" : "none",
|
|
634
|
-
"aria-activedescendant": T !== "columns" &&
|
|
637
|
+
"aria-activedescendant": T !== "columns" && q && G.length > 0 ? Re(c) : void 0,
|
|
635
638
|
inputClassName: w(Be && Z.treeSummary, Ue && Z.inputWithOverlay),
|
|
636
639
|
overlay: Ue ? /* @__PURE__ */ D("div", {
|
|
637
640
|
className: Z.valueOverlay,
|
|
638
641
|
children: j
|
|
639
642
|
}) : void 0,
|
|
640
643
|
endAdornment: /* @__PURE__ */ O(s, {
|
|
641
|
-
open:
|
|
644
|
+
open: q,
|
|
642
645
|
disabled: p || N,
|
|
643
646
|
onToggleMouseDown: $.handleToggleMouseDown,
|
|
644
647
|
onToggleClick: $.handleToggleClick,
|
|
@@ -663,23 +666,23 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
663
666
|
$.handleTriggerFocus(e.currentTarget);
|
|
664
667
|
},
|
|
665
668
|
onKeyDown: (e) => {
|
|
666
|
-
if (T === "columns" &&
|
|
669
|
+
if (T === "columns" && q && e.key === "Tab" && !e.shiftKey && F.current) {
|
|
667
670
|
e.preventDefault(), F.current.focus();
|
|
668
671
|
return;
|
|
669
672
|
}
|
|
670
673
|
Fe(e), !e.defaultPrevented && $.handleTriggerKeyDown({
|
|
671
674
|
event: e,
|
|
672
675
|
onActivateWhenOpen: () => {
|
|
673
|
-
let e =
|
|
676
|
+
let e = J >= 0 ? G[J] : void 0;
|
|
674
677
|
e && Q(e);
|
|
675
678
|
},
|
|
676
679
|
enableSpaceActivation: A === "display"
|
|
677
680
|
});
|
|
678
681
|
}
|
|
679
682
|
}), /* @__PURE__ */ D(a, {
|
|
680
|
-
open:
|
|
681
|
-
context:
|
|
682
|
-
floatingStyles:
|
|
683
|
+
open: q,
|
|
684
|
+
context: Ee,
|
|
685
|
+
floatingStyles: De,
|
|
683
686
|
listId: c,
|
|
684
687
|
labelId: i,
|
|
685
688
|
popupAriaLabel: l,
|
|
@@ -687,8 +690,8 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
687
690
|
activeOptionId: T !== "columns" && G.length > 0 ? Re(c) : void 0,
|
|
688
691
|
ariaMultiselectable: T !== "columns" && C === "multi",
|
|
689
692
|
popupRole: T === "columns" ? "dialog" : "listbox",
|
|
690
|
-
setFloating:
|
|
691
|
-
getFloatingProps:
|
|
693
|
+
setFloating: X,
|
|
694
|
+
getFloatingProps: Y,
|
|
692
695
|
onKeyDown: Ie,
|
|
693
696
|
className: e.uiPopupOptions,
|
|
694
697
|
layoutClassName: T === "columns" ? Z.treeColumnsPopupLayout : void 0,
|
|
@@ -701,11 +704,11 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
701
704
|
loadingState: N ? "Загрузка..." : void 0,
|
|
702
705
|
emptyState: !de && !N ? "Нет данных" : void 0
|
|
703
706
|
}) : G.map((e, t) => {
|
|
704
|
-
let n = C === "multi" ? H(e.node.id, S, R) : S.has(e.node.id), r = C === "multi" && !n && te.has(e.node.id), i = t ===
|
|
707
|
+
let n = C === "multi" ? H(e.node.id, S, R) : S.has(e.node.id), r = C === "multi" && !n && te.has(e.node.id), i = t === J, a = e.node.disabled === !0;
|
|
705
708
|
return /* @__PURE__ */ D("div", {
|
|
706
709
|
"data-ui": "tree-select-option",
|
|
707
710
|
id: Le(c, t),
|
|
708
|
-
ref: (e) =>
|
|
711
|
+
ref: (e) => je(t, e),
|
|
709
712
|
role: T === "columns" ? void 0 : "option",
|
|
710
713
|
"aria-selected": T === "columns" ? void 0 : n,
|
|
711
714
|
"aria-disabled": a || void 0,
|
|
@@ -720,7 +723,7 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
720
723
|
onClick: () => Q(e),
|
|
721
724
|
children: /* @__PURE__ */ D("div", {
|
|
722
725
|
className: Z.treeNodeButton,
|
|
723
|
-
children: /* @__PURE__ */ D(
|
|
726
|
+
children: /* @__PURE__ */ D(Ae, {
|
|
724
727
|
node: e.node,
|
|
725
728
|
level: e.level,
|
|
726
729
|
highlight: B,
|
|
@@ -743,7 +746,7 @@ function Me({ label: n, description: c, disabled: p, placeholder: m, size: b, no
|
|
|
743
746
|
}
|
|
744
747
|
//#endregion
|
|
745
748
|
//#region src/tree-select/TreeMultiSelect.tsx
|
|
746
|
-
function
|
|
749
|
+
function Me(e, t) {
|
|
747
750
|
if (e.size !== 0) {
|
|
748
751
|
if (e.size === 1) {
|
|
749
752
|
let n = t.nodeById.get([...e][0]);
|
|
@@ -752,18 +755,18 @@ function Ne(e, t) {
|
|
|
752
755
|
return `${e.size} элементов`;
|
|
753
756
|
}
|
|
754
757
|
}
|
|
755
|
-
function
|
|
758
|
+
function Ne(e, t, n) {
|
|
756
759
|
let r = I(e, n), i = I(t, n);
|
|
757
760
|
return r.size === i.size && [...r].every((e) => i.has(e));
|
|
758
761
|
}
|
|
759
|
-
function
|
|
762
|
+
function Pe({ label: e, description: t, disabled: n, placeholder: r = "Выберите значения", size: i, nodes: a, value: o, onChange: s, query: l, defaultQuery: u, onQuery: d, isLoading: f, error: p, optionsLayout: h = "tree", defaultExpandedCodeKeys: g }) {
|
|
760
763
|
let [_, y] = ee(!1), b = v(() => fe(a), [a]), { draftValue: x, setDraftValue: S, prepareOpen: te } = c({
|
|
761
764
|
value: o,
|
|
762
765
|
open: _,
|
|
763
766
|
onCommit: s,
|
|
764
|
-
isEqual: (e, t) =>
|
|
765
|
-
}), C = _ ? x : o, w = v(() => I(C, b), [C, b]), T = v(() => ge(w, b), [w, b]), E = v(() =>
|
|
766
|
-
return /* @__PURE__ */ D(
|
|
767
|
+
isEqual: (e, t) => Ne(e, t, b)
|
|
768
|
+
}), C = _ ? x : o, w = v(() => I(C, b), [C, b]), T = v(() => ge(w, b), [w, b]), E = v(() => Me(w, b), [w, b]);
|
|
769
|
+
return /* @__PURE__ */ D(je, {
|
|
767
770
|
label: e,
|
|
768
771
|
description: t,
|
|
769
772
|
disabled: n,
|
|
@@ -802,13 +805,13 @@ function Q({ label: e, description: t, disabled: n, placeholder: r = "Выбер
|
|
|
802
805
|
}
|
|
803
806
|
//#endregion
|
|
804
807
|
//#region src/tree-select/ODataTreeMultiSelect.tsx
|
|
805
|
-
function
|
|
808
|
+
function Q({ label: e, description: t, disabled: n, size: r, placeholder: i, query: a, defaultQuery: o, onQuery: s, optionsLayout: c, value: l, onChange: u, odata: d, segments: f, model: p, defaultExpandedCodeKeys: m }) {
|
|
806
809
|
let h = P({
|
|
807
810
|
odata: d,
|
|
808
811
|
segments: f,
|
|
809
812
|
model: p
|
|
810
813
|
});
|
|
811
|
-
return /* @__PURE__ */ D(
|
|
814
|
+
return /* @__PURE__ */ D(Pe, {
|
|
812
815
|
label: e,
|
|
813
816
|
description: t,
|
|
814
817
|
disabled: n || h.isLoading,
|
|
@@ -828,12 +831,12 @@ function Fe({ label: e, description: t, disabled: n, size: r, placeholder: i, qu
|
|
|
828
831
|
}
|
|
829
832
|
//#endregion
|
|
830
833
|
//#region src/tree-select/TreeSelect.tsx
|
|
831
|
-
function
|
|
834
|
+
function Fe(e) {
|
|
832
835
|
if (e) return e.code && e.code !== e.label ? `${e.label} · ${e.code}` : e.label;
|
|
833
836
|
}
|
|
834
|
-
function
|
|
837
|
+
function Ie({ label: e, description: t, disabled: n, placeholder: r = "Выберите значение", size: i, nodes: a, value: o, onChange: s, query: c, defaultQuery: l, onQuery: u, isLoading: d, error: f, clearable: p = !1, defaultExpandedCodeKeys: m }) {
|
|
835
838
|
let h = v(() => fe(a), [a]), g = pe(o, h), _ = g ? h.nodeById.get(g) : void 0;
|
|
836
|
-
return /* @__PURE__ */ D(
|
|
839
|
+
return /* @__PURE__ */ D(je, {
|
|
837
840
|
label: e,
|
|
838
841
|
description: t,
|
|
839
842
|
disabled: n,
|
|
@@ -845,7 +848,7 @@ function Le({ label: e, description: t, disabled: n, placeholder: r = "Выбе
|
|
|
845
848
|
selectionMode: "single",
|
|
846
849
|
defaultExpandedCodeKeys: m,
|
|
847
850
|
triggerMode: "search",
|
|
848
|
-
selectedSummaryText:
|
|
851
|
+
selectedSummaryText: Fe(_),
|
|
849
852
|
query: c,
|
|
850
853
|
defaultQuery: l,
|
|
851
854
|
onQuery: u,
|
|
@@ -860,13 +863,13 @@ function Le({ label: e, description: t, disabled: n, placeholder: r = "Выбе
|
|
|
860
863
|
}
|
|
861
864
|
//#endregion
|
|
862
865
|
//#region src/tree-select/ODataTreeSelect.tsx
|
|
863
|
-
function
|
|
866
|
+
function Le({ label: e, description: t, disabled: n, size: r, placeholder: i, query: a, defaultQuery: o, onQuery: s, value: c, onChange: l, odata: u, segments: d, model: f, clearable: p, defaultExpandedCodeKeys: m }) {
|
|
864
867
|
let h = P({
|
|
865
868
|
odata: u,
|
|
866
869
|
segments: d,
|
|
867
870
|
model: f
|
|
868
871
|
});
|
|
869
|
-
return /* @__PURE__ */ D(
|
|
872
|
+
return /* @__PURE__ */ D(Ie, {
|
|
870
873
|
label: e,
|
|
871
874
|
description: t,
|
|
872
875
|
disabled: n || h.isLoading,
|
|
@@ -885,6 +888,6 @@ function Re({ label: e, description: t, disabled: n, size: r, placeholder: i, qu
|
|
|
885
888
|
});
|
|
886
889
|
}
|
|
887
890
|
//#endregion
|
|
888
|
-
export {
|
|
891
|
+
export { Q as ODataTreeMultiSelect, Le as ODataTreeSelect, Pe as TreeMultiSelect, Ie as TreeSelect, k as treeSelectValueToSelectedFilters };
|
|
889
892
|
|
|
890
893
|
//# sourceMappingURL=index.js.map
|