@ryuzaki13/react-foundation-ui 1.0.19 → 1.0.20
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 +1 -1
- package/dist/chunks/{multi-select-DkfdFYm4.js → multi-select-DaOKgHKE.js} +2 -2
- package/dist/chunks/{multi-select-DkfdFYm4.js.map → multi-select-DaOKgHKE.js.map} +1 -1
- package/dist/chunks/{picker-beNX-cW9.js → picker-BZ05h_ZJ.js} +12 -9
- package/dist/chunks/picker-BZ05h_ZJ.js.map +1 -0
- package/dist/chunks/select-Dj3FfpS0.js +327 -0
- package/dist/chunks/select-Dj3FfpS0.js.map +1 -0
- package/dist/layout-picker/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/picker/PickerPopup.d.ts +2 -1
- package/dist/picker/PickerPopup.d.ts.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/select/Select.d.ts +2 -1
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/select/lib/createSelectOptionSections.d.ts +1 -1
- package/dist/select/lib/createSelectOptionSections.d.ts.map +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/tree-select/index.js +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-D_WmNn4y.js → Badge-BV0mSOnT.js} +1 -1
- package/storybook-static/assets/{Badge.stories-U00ZjiZG.js → Badge.stories-Bc5VWqwH.js} +1 -1
- package/storybook-static/assets/{Button-D6lDbX3u.js → Button-4r19WCQg.js} +1 -1
- package/storybook-static/assets/{Button-CSAUZh28.js → Button-BBolHr48.js} +1 -1
- package/storybook-static/assets/{Button.stories-BoqlEzDC.js → Button.stories-Dk7Y6gP4.js} +1 -1
- package/storybook-static/assets/{CheckBox-O0Riv4G0.js → CheckBox-97WntM4f.js} +1 -1
- package/storybook-static/assets/{CheckBox-D5RDuslx.js → CheckBox-DgYqSI7C.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-C5vwe09O.js → CheckBox.stories-B4fLCKYI.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-BPWB1F58.js → Color-KMSTOMOX-eKd5gW4e.js} +1 -1
- package/storybook-static/assets/{ContextMenu-C7VPqNQh.js → ContextMenu-DYtAb1at.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-DMJS0eVK.js → ContextMenu.stories-CBmt3Nce.js} +1 -1
- package/storybook-static/assets/{DateInput-D2Y798Qp.js → DateInput-B564qoCJ.js} +1 -1
- package/storybook-static/assets/{DateInput-BTsGvu-I.js → DateInput-D3CVjjRE.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-UVnlKxGm.js → DateInput.stories-nbu0Zyqz.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CgneHL9m.js → DateRangePresetSelect-CMmZ74dM.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-BrHpjOGn.js → DateRangePresetSelect-mrGDA-7A.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-ax9vHEAe.js → DateRangePresetSelect.stories-DDAeJZ4X.js} +1 -1
- package/storybook-static/assets/{Detail-DsUqYKBL.js → Detail-BwY-EQgO.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BfLSCMUs.js → Detail.stories-ua3nDl0m.js} +1 -1
- package/storybook-static/assets/{Dialog-BH4bk-0Z.js → Dialog-CA0kOezM.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BnVA_xxd.js → Dialog.stories-BvM8gHpD.js} +1 -1
- package/storybook-static/assets/{Disclosure-Y5wcCyNo.js → Disclosure-ByimcEi9.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-Cj-6MIBl.js → Disclosure.stories-CJY3r6cV.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DBs6q2X7.js → DocsRenderer-JROSPFPF-Bnyaajwf.js} +2 -2
- package/storybook-static/assets/{DropZone-CoHuwX-b.js → DropZone-z5IWbRY7.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-CRo1gU6s.js → DropZone.stories-DP36CnJJ.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-B4k8SvXE.js → DropdownMenu-xjRYOnob.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BzCwb5XY.js → ExpandableActionPanel.stories-ehW5CvFA.js} +1 -1
- package/storybook-static/assets/{Flex-_SHSjraN.js → Flex-CrDAzWzv.js} +1 -1
- package/storybook-static/assets/{Flex-DAlPnoyb.js → Flex-R3eoDv0F.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CoFPyXJs.js → Flex.stories-BQv9sIrD.js} +1 -1
- package/storybook-static/assets/{Grid-Iuqk9TTe.js → Grid-CtejGOaQ.js} +1 -1
- package/storybook-static/assets/{Grid-DcybsfOE.js → Grid-DyJMlQ3m.js} +1 -1
- package/storybook-static/assets/{Grid.stories-Bk96A8KC.js → Grid.stories-BfREL6xj.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-ByrSBnja.js → ImageCropper.stories-DuNl320E.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-gf_q-ONP.js → ImageRenderer-DrxwqLJS.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BLYBSARQ.js → ImageRenderer.stories-B6m2ldKq.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-titYp-MM.js → ImageView.stories-KPwqFsZ0.js} +1 -1
- package/storybook-static/assets/{Input-DQAmwpKH.js → Input-C9Qh868c.js} +1 -1
- package/storybook-static/assets/{Input-BUCw6LuQ.js → Input-DqWznlyA.js} +1 -1
- package/storybook-static/assets/{Input.stories-BxQePDp5.js → Input.stories-CJSTGfw9.js} +1 -1
- package/storybook-static/assets/{InputDateTime-Ddecrzyl.js → InputDateTime-BvDTq_D6.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DureL-Mi.js → InputDateTime.stories-CszmbzWn.js} +1 -1
- package/storybook-static/assets/{InputFile-CMaET8Mf.js → InputFile-CWalPPYz.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-DjcYO4oK.js → InputFile.stories-DldrI9as.js} +1 -1
- package/storybook-static/assets/{InputFiles-CJP_43yk.js → InputFiles-B8p6AaeB.js} +1 -1
- package/storybook-static/assets/{InputFiles-D4QBkXR-.js → InputFiles-DDTcP-at.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-D59JNRfr.js → InputFiles.stories-Bm2uOv3p.js} +1 -1
- package/storybook-static/assets/{InputImage-CD6r23HA.js → InputImage-DlJxgHAF.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-MSQPxiUk.js → InputImage.stories-B6M59-NN.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-bfpPHWZQ.js → LayoutPicker-CNtQpDzd.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-C4mw3v4r.js → LayoutPicker.stories-BziRPv8X.js} +1 -1
- package/storybook-static/assets/{Listbox-B48HH949.js → Listbox-Bh7Y7gA9.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-P6m6Xtp9.js → Listbox.stories-2gPVzr15.js} +1 -1
- package/storybook-static/assets/{Modal-60wYxR1C.js → Modal-GnqkmW-e.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CW75CTPA.js → Modal.stories-CRvYZ9J0.js} +1 -1
- package/storybook-static/assets/{MultiSelect-1FTahVkX.js → MultiSelect-5W9Vl2ra.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DbkLpHKL.js → MultiSelect-BFWO2tMT.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-DtNSoSgt.js → MultiSelect.stories-C0v5FEuQ.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-Cons6grm.js → NotificationsHost-CE8UZDlb.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BOwlyZjS.js → NotificationsHost.stories-Dapge5tU.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DfnQQURe.js → ODataMultiSelect-YpMCzv29.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DXFgJSI2.js → ODataMultiSelect.stories-DqKnuVMc.js} +1 -1
- package/storybook-static/assets/{ODataSelect-YSvYEbvr.js → ODataSelect-B4apxrUc.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BT-65yUm.js → ODataSelect-COkJhPGX.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-CvGMCPLU.js → ODataSelect.stories-Dg-frZo3.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-C2Md-SrL.js → ODataTreeMultiSelect-CyCiBb9b.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-C8ApR1Sv.js → ODataTreeMultiSelect.stories-CC4XyMv0.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-x8sFI-u2.js → ODataTreeSelect-C7l7tUJD.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CPriRr5I.js → ODataTreeSelect.stories-D2JMx8BE.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BZJyFSdN.js → PeriodSelect-DhG_ndZb.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-CtX4Ibbs.js → PeriodSelect.stories-BhljncVI.js} +1 -1
- package/storybook-static/assets/{Popover-DaeR4BV_.js → Popover-CZxtXntz.js} +1 -1
- package/storybook-static/assets/{Popover.stories-C63N21sy.js → Popover.stories-DwZxRALu.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-aaXvHNQh.js → PresetRangeDateInput-CBFgSr-v.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-BM34C5xi.js → PresetRangeDateInput.stories-D1ntb4LH.js} +1 -1
- package/storybook-static/assets/{RadioButton-mvrQ8VSg.js → RadioButton-C1CglVPy.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-ROTAgef0.js → RadioButton.stories-C6mWkk58.js} +1 -1
- package/storybook-static/assets/{RadioGroup-D8X2vCGo.js → RadioGroup-BKBCbxB-.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BcUi-6jJ.js → RadioGroup-qgu6eGKx.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-D_XdSCvW.js → RadioGroup.stories-CeKve5Jx.js} +1 -1
- package/storybook-static/assets/{Select-DshPuDqw.js → Select-Bf6yq8O2.js} +3 -2
- package/storybook-static/assets/Select-Rn-J2OV3.js +12 -0
- package/storybook-static/assets/{Select.stories-B0CUlClA.js → Select.stories-DYVi0Rmc.js} +2 -2
- package/storybook-static/assets/{SelectOptionContent-Bp6u5oGr.js → SelectOptionContent-DAsNz7Yz.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BaC_djq_.js → SerializableSelect-4RmEI_we.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-DxFWB3Yw.js → SerializableSelect-B9v1pJhT.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-CxBEpJLW.js → SerializableSelect.stories-BZBSbvLl.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-BSH4emHu.js → SingleDateTimeInput-BxNi0zXt.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-cYnhzTMl.js → SingleDateTimeInput.stories-CcTlhsLA.js} +1 -1
- package/storybook-static/assets/{Slider-DkjesSkp.js → Slider-HZgB69JS.js} +1 -1
- package/storybook-static/assets/{Slider.stories-DLUrasL5.js → Slider.stories-BgCn4o7z.js} +1 -1
- package/storybook-static/assets/{SliderInput-CmPkAcqZ.js → SliderInput-DqoTda5t.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-Fv5urNKI.js → SliderInput.stories-LssuHy1J.js} +1 -1
- package/storybook-static/assets/{Sortable-BSnDSyV0.js → Sortable-DDrEmApe.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BE3qPo0z.js → Sortable.stories-Cja60_18.js} +1 -1
- package/storybook-static/assets/{Splitter-AiSG0IlN.js → Splitter-BkxC_61k.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CULtDRbv.js → Splitter.stories-ks1DOPj3.js} +1 -1
- package/storybook-static/assets/{StateSelect-BOK8WQ0m.js → StateSelect-BtTk1kLj.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-9EwRNcC9.js → StateSelect.stories-BM2PRlDX.js} +1 -1
- package/storybook-static/assets/{Switch-6vYGq9ue.js → Switch-DuRjvsAW.js} +1 -1
- package/storybook-static/assets/{Switch.stories-Ce72-4pP.js → Switch.stories-DnPXcklX.js} +1 -1
- package/storybook-static/assets/{Table-p190sNTC.js → Table-iVoz-Hh3.js} +1 -1
- package/storybook-static/assets/{Table.stories-CmvShH-p.js → Table.stories-eRGyLO14.js} +1 -1
- package/storybook-static/assets/{Tabs-wkUiX8Um.js → Tabs-Drauw9Qt.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Byc-KGY4.js → Tabs.stories-Dh00tUgR.js} +1 -1
- package/storybook-static/assets/{Textarea-B7q_RUGj.js → Textarea-EYQsC0q0.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CKjpOMUz.js → Textarea.stories-Bz0_Pslr.js} +1 -1
- package/storybook-static/assets/{TimePanel-CnKzYllv.js → TimePanel-B4P9f6lx.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-B46ia-wr.js → TimePanel.stories-DnENfatO.js} +1 -1
- package/storybook-static/assets/{Toggle-5uy0fJIB.js → Toggle-DawMrGtP.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-DqX_UZ8G.js → Toggle.stories-CSx1wgFG.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DL_QLoGE.js → TreeMultiSelect-B9cXZLYG.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DHrLU10w.js → TreeMultiSelect-Cpe6awfF.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-B-1UUmQx.js → TreeMultiSelect.stories-BMp7_dX9.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-G2hDDb9o.js → TreePickerBase-DZHqq3sm.js} +1 -1
- package/storybook-static/assets/{TreeSelect-D1vY-eaq.js → TreeSelect-BXUhdoFa.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CgrwO1Mj.js → TreeSelect-qPU53Vg1.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-Dyaq1OjM.js → TreeSelect.stories-CofjiT2J.js} +1 -1
- package/storybook-static/assets/{TreeTable-DHvrer9V.js → TreeTable-BdH4aoOU.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-DPDIRJL3.js → TreeTable.stories-B1Fc8DFw.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-DaLQMgLn.js → WithTooltip-7X4HQR7L-DJ-k5EDh.js} +1 -1
- package/storybook-static/assets/{base-table-BsLxwUBH.js → base-table-D3hWPtFP.js} +1 -1
- package/storybook-static/assets/{blocks-DsR25Fmw.js → blocks-DZjGeeGb.js} +6 -6
- package/storybook-static/assets/{button-aRaBdQCW.js → button-CJIIZdyL.js} +1 -1
- package/storybook-static/assets/{check-box-DSDs6bO5.js → check-box-DHGm0H-j.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-M6BQinGY.js → chunk-3LY4VQVK-xQmQ9wgJ.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-CSkoC43Y.js → chunk-LITCR56V-AH0bDa1_.js} +1 -1
- package/storybook-static/assets/{contextMenu-DchOLs7K.js → contextMenu-DGip9X8L.js} +1 -1
- package/storybook-static/assets/{error-CK7Ijx9I.js → error-DbmF8WL4.js} +1 -1
- package/storybook-static/assets/{flex-DjjdXv7K.js → flex-DDFcQoiF.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-D6FeyKn7.js → floating-ui.react-CFspDa0I.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-P261Kqp5.js +1 -0
- package/storybook-static/assets/{formatters-CGNSDKn9.js → formatters-C4D-1Rmz.js} +1 -1
- package/storybook-static/assets/grid-CUZXK-4q.js +1 -0
- package/storybook-static/assets/{hooks-DSj02t4H.js → hooks-O9aO_nHR.js} +1 -1
- package/storybook-static/assets/{iframe-DLkjf7A9.js → iframe-CJ5lBt-e.js} +3 -3
- package/storybook-static/assets/{input-TIwx4iZp.js → input-H7y7HIGk.js} +1 -1
- package/storybook-static/assets/{lucide-react-p2Eti-TY.js → lucide-react-BtYRZG_1.js} +1 -1
- package/storybook-static/assets/{mdx-react-shim-R_VK5jlr.js → mdx-react-shim-C4ot-lG2.js} +1 -1
- package/storybook-static/assets/{media-bpDsa4CN.js → media-tZwPMhiy.js} +1 -1
- package/storybook-static/assets/{misc-DSA_vfBB.js → misc-B7IdO_Bp.js} +1 -1
- package/storybook-static/assets/{notifications-3_qt4j1E.js → notifications-Dolxc4gH.js} +1 -1
- package/storybook-static/assets/{odata-Cdpm4W6w.js → odata-D8Npa3bK.js} +1 -1
- package/storybook-static/assets/odata-service-Dt1Cp9iX.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-DpHrb-x0.js → odataStoryFixtures-lUZdxCwx.js} +1 -1
- package/storybook-static/assets/picker-B0M9z_CQ.js +1 -0
- package/storybook-static/assets/{popover-CQelsqcy.js → popover-ALqQHWmp.js} +1 -1
- package/storybook-static/assets/{preset-select-DIzVw_fy.js → preset-select-BWYEfLK1.js} +1 -1
- package/storybook-static/assets/{react-18-D0MFaVsj.js → react-18-BwJXfkA2.js} +1 -1
- package/storybook-static/assets/{react-CyKnGS7r.js → react-BD_WqLoy.js} +1 -1
- package/storybook-static/assets/{react-dom-DafrFoS3.js → react-dom-B9EGEDBK.js} +1 -1
- package/storybook-static/assets/select-BmjbSGub.js +1 -0
- package/storybook-static/assets/{slider-B1Jh8YgP.js → slider-CSJuH7Wx.js} +1 -1
- package/storybook-static/assets/{sortable-Dw0f2WU0.js → sortable-BNcFOgbT.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-3G4G11vY.js → syntaxhighlighter-RTCFPKCB-sU9mgauS.js} +1 -1
- package/storybook-static/assets/{text-j7jiqOeo.js → text-REr1prCl.js} +1 -1
- package/storybook-static/assets/{theming-DobiTi6v.js → theming-HLKBFFc3.js} +1 -1
- package/storybook-static/assets/ui-B3C45-Qp.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-CnyHkhKg.js → useODataSelectBase-DcRsZl18.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DQ9adG05.js → useODataTreeData-gBDUdA_U.js} +1 -1
- package/storybook-static/assets/{utils-5U72nYIV.js → utils-CYMJlQCP.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/picker-beNX-cW9.js.map +0 -1
- package/dist/chunks/select-CniUoHU_.js +0 -322
- package/dist/chunks/select-CniUoHU_.js.map +0 -1
- package/storybook-static/assets/Select-B3mAjoSF.js +0 -12
- package/storybook-static/assets/formatter-L2YTDE3Q-gZmLdNYr.js +0 -1
- package/storybook-static/assets/grid-x1BgS-2p.js +0 -1
- package/storybook-static/assets/odata-service-CK4udXRv.js +0 -1
- package/storybook-static/assets/picker-DiKffa5D.js +0 -1
- package/storybook-static/assets/select-3BhbB83-.js +0 -1
- package/storybook-static/assets/ui-awvruYe3.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"picker-beNX-cW9.js","names":[],"sources":["../../src/picker/PickerField.tsx","../../src/picker/Picker.module.scss","../../src/picker/PickerPopup.tsx","../../src/picker/PickerStatus.tsx","../../src/picker/PickerTriggerActions.tsx","../../src/picker/PickerTriggerInput.tsx","../../src/picker/model/createPickerTriggerPolicy.ts","../../src/picker/model/extractPickerTextContent.ts","../../src/picker/model/usePickerDefaultFilter.ts","../../src/picker/model/usePickerFloatingListbox.ts","../../src/picker/model/usePickerQuery.ts","../../src/picker/model/usePickerSelectionLifecycle.ts","../../src/picker/model/usePickerTriggerController.ts"],"sourcesContent":["import { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { InputUI } from \"../input\";\nimport { useInputFieldIds } from \"../input/lib/useInputFieldIds\";\n\nimport { PickerFieldProps } from \"./types\";\n\nexport function PickerField<TValue extends InputType>({\n\tid,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tsize,\n\tclassName,\n\terror,\n\tchildren\n}: PickerFieldProps<TValue>) {\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tsize={size}\n\t\t\tclassName={className}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t{children({ controlId, labelId, descriptionId, errorId, describedBy })}\n\t\t</InputUI>\n\t);\n}\n",".popupLayout {\n\tdisplay: grid;\n\tgrid-template-rows: auto 1fr;\n\tmin-height: 0;\n\tmax-height: 75vh;\n\toverflow: hidden;\n\n\tflex: 1 1 auto;\n}\n\n.popupBody {\n\tmin-height: 0;\n}\n\n.status {\n\tpadding: var(--space-xs) var(--space-sm);\n\tcolor: var(--content-2);\n}\n\n.statusError {\n\tcolor: var(--status-error-text);\n}\n\n.triggerContainer {\n\tposition: relative;\n}\n","import { type CSSProperties, type KeyboardEvent, type MouseEvent, type ReactNode } from \"react\";\n\nimport { FloatingContext, FloatingFocusManager, FloatingPortal } from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AnimatePresence, motion } from \"motion/react\";\n\nimport { Separator } from \"../separator\";\n\nimport styles from \"./Picker.module.scss\";\n\ninterface PickerPopupProps {\n\topen: boolean;\n\tcontext: FloatingContext;\n\tfloatingStyles: CSSProperties;\n\tlistId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\tactiveOptionId?: string;\n\tsetFloating: (node: HTMLElement | null) => void;\n\tgetFloatingProps: (userProps?: Record<string, unknown>) => Record<string, unknown>;\n\tonKeyDown: (event: KeyboardEvent<HTMLElement>) => void;\n\tinitialFocus?: number;\n\treturnFocus?: boolean;\n\ttabIndex?: number;\n\tclassName?: string;\n\tlayoutClassName?: string;\n\theaderClassName?: string;\n\tbodyClassName?: string;\n\theader?: ReactNode;\n\tchildren: ReactNode;\n}\n\nfunction stopNestedFloatingMouseDown(event: MouseEvent<HTMLElement>): void {\n\tevent.stopPropagation();\n}\n\nexport function PickerPopup({\n\topen,\n\tcontext,\n\tfloatingStyles,\n\tlistId,\n\tlabelId,\n\tdescriptionId,\n\tactiveOptionId,\n\tsetFloating,\n\tgetFloatingProps,\n\tonKeyDown,\n\tinitialFocus = -1,\n\treturnFocus = false,\n\ttabIndex = 0,\n\tclassName,\n\tlayoutClassName,\n\theaderClassName,\n\tbodyClassName,\n\theader,\n\tchildren\n}: PickerPopupProps) {\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t{open && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<FloatingFocusManager context={context} modal={false} initialFocus={initialFocus} returnFocus={returnFocus}>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tref={setFloating}\n\t\t\t\t\t\t\tstyle={floatingStyles}\n\t\t\t\t\t\t\tinitial={{ opacity: 0, scale: 0.95 }}\n\t\t\t\t\t\t\tanimate={{ opacity: 1, scale: 1 }}\n\t\t\t\t\t\t\texit={{ opacity: 0, scale: 0.95 }}\n\t\t\t\t\t\t\t{...getFloatingProps({\n\t\t\t\t\t\t\t\tid: listId,\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\"aria-labelledby\": labelId,\n\t\t\t\t\t\t\t\t\"aria-describedby\": descriptionId,\n\t\t\t\t\t\t\t\t\"aria-activedescendant\": activeOptionId,\n\t\t\t\t\t\t\t\tonMouseDown: stopNestedFloatingMouseDown,\n\t\t\t\t\t\t\t\tonKeyDown,\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t})}>\n\t\t\t\t\t\t\t<div className={cn(styles.popupLayout, layoutClassName)}>\n\t\t\t\t\t\t\t\t{header ? (\n\t\t\t\t\t\t\t\t\t<div className={headerClassName}>\n\t\t\t\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t\t\t\t<Separator className=\"marginBlockSm\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<div />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div className={cn(styles.popupBody, bodyClassName)}>{children}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</FloatingFocusManager>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</AnimatePresence>\n\t);\n}\n","import { ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Picker.module.scss\";\n\ninterface PickerStatusProps {\n\temptyState?: ReactNode;\n\tloadingState?: ReactNode;\n\terrorState?: ReactNode;\n}\n\nexport function PickerStatus({ emptyState, loadingState, errorState }: PickerStatusProps) {\n\tconst content = errorState ?? loadingState ?? emptyState;\n\n\tif (content === undefined || content === null) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={cn(uiStyles.uiPopupOption, styles.status, errorState !== undefined && styles.statusError)} aria-disabled={true}>\n\t\t\t{content}\n\t\t</div>\n\t);\n}\n","import { MouseEvent, ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\ninterface PickerTriggerActionsProps {\n\topen: boolean;\n\tdisabled?: boolean;\n\tchildren?: ReactNode;\n\tonToggleMouseDown?: (event: MouseEvent<HTMLButtonElement>) => void;\n\tonToggleClick: () => void;\n\topenAriaLabel?: string;\n\tcloseAriaLabel?: string;\n}\n\nexport function PickerTriggerActions({\n\topen,\n\tdisabled,\n\tchildren,\n\tonToggleMouseDown,\n\tonToggleClick,\n\topenAriaLabel = \"Открыть список\",\n\tcloseAriaLabel = \"Закрыть список\"\n}: PickerTriggerActionsProps) {\n\treturn (\n\t\t<div className={uiStyles.uiToggleButtonContainer} data-disabled={disabled || undefined}>\n\t\t\t{children}\n\n\t\t\t<div className={uiStyles.uiButtonSeparator} />\n\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={open ? closeAriaLabel : openAriaLabel}\n\t\t\t\tclassName={uiStyles.uiToggleButton}\n\t\t\t\tonMouseDown={onToggleMouseDown}\n\t\t\t\tonClick={onToggleClick}>\n\t\t\t\t<ChevronDownIcon className={cn(uiStyles.uiToggleIcon, open && uiStyles.uiToggleIconOpen)} />\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","import { ComponentPropsWithoutRef, forwardRef, ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputControl } from \"../input\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Picker.module.scss\";\n\ninterface PickerTriggerInputProps extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\"> {\n\trootRef?: (node: HTMLDivElement | null) => void;\n\tendAdornment?: ReactNode;\n\toverlay?: ReactNode;\n\trootClassName?: string;\n\tinputClassName?: string;\n}\n\nexport const PickerTriggerInput = forwardRef<HTMLInputElement, PickerTriggerInputProps>(\n\t({ rootRef, endAdornment, overlay, rootClassName, inputClassName, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={rootRef} className={cn(uiStyles.uiInputContainer, styles.triggerContainer, rootClassName)}>\n\t\t\t\t<InputControl endAdornment={endAdornment}>\n\t\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t\t<input {...props} ref={ref} className={cn(uiStyles.uiInputWithToggle, controlClassName, inputClassName)} />\n\t\t\t\t\t)}\n\t\t\t\t</InputControl>\n\t\t\t\t{overlay}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPickerTriggerInput.displayName = \"PickerTriggerInput\";\n","export type PickerTriggerMode = \"display\" | \"search-single\" | \"search-multi\";\n\ninterface PickerTriggerTextFocusParams {\n\topen: boolean;\n\tcurrentQuery: string;\n\thasDisplayValue: boolean;\n}\n\nexport interface PickerTriggerPolicy {\n\tfocusFloatingOnOpen: boolean;\n\trestoreFocusOnClose: boolean;\n\tresetQueryOnClose: boolean;\n\tshouldOpenOnTriggerClick: (open: boolean) => boolean;\n\tshouldOpenOnInputChange: (open: boolean) => boolean;\n\tshouldFocusReferenceOnToggle: (open: boolean) => boolean;\n\tshouldSelectTriggerTextOnFocus: (params: PickerTriggerTextFocusParams) => boolean;\n}\n\n/**\n * Единая политика поведения trigger-input для picker-компонентов.\n * Нормализует различия между display-режимом, single-search и multi-search.\n */\nexport function createPickerTriggerPolicy(mode: PickerTriggerMode): PickerTriggerPolicy {\n\tswitch (mode) {\n\t\tcase \"search-single\":\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: false,\n\t\t\t\trestoreFocusOnClose: false,\n\t\t\t\tresetQueryOnClose: true,\n\t\t\t\tshouldOpenOnTriggerClick: () => false,\n\t\t\t\tshouldOpenOnInputChange: (open) => !open,\n\t\t\t\tshouldFocusReferenceOnToggle: (open) => !open,\n\t\t\t\tshouldSelectTriggerTextOnFocus: ({ open, currentQuery, hasDisplayValue }) =>\n\t\t\t\t\t!open && currentQuery.length === 0 && hasDisplayValue\n\t\t\t};\n\t\tcase \"search-multi\":\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: false,\n\t\t\t\trestoreFocusOnClose: false,\n\t\t\t\tresetQueryOnClose: true,\n\t\t\t\tshouldOpenOnTriggerClick: () => false,\n\t\t\t\tshouldOpenOnInputChange: (open) => !open,\n\t\t\t\tshouldFocusReferenceOnToggle: (open) => !open,\n\t\t\t\tshouldSelectTriggerTextOnFocus: () => false\n\t\t\t};\n\t\tcase \"display\":\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\tfocusFloatingOnOpen: true,\n\t\t\t\trestoreFocusOnClose: true,\n\t\t\t\tresetQueryOnClose: false,\n\t\t\t\tshouldOpenOnTriggerClick: (open) => !open,\n\t\t\t\tshouldOpenOnInputChange: () => false,\n\t\t\t\tshouldFocusReferenceOnToggle: () => false,\n\t\t\t\tshouldSelectTriggerTextOnFocus: () => false\n\t\t\t};\n\t}\n}\n","import { ReactNode } from \"react\";\n\nexport function extractPickerTextContent(node: ReactNode): string | undefined {\n\tif (typeof node === \"string\" || typeof node === \"number\") {\n\t\treturn String(node);\n\t}\n\n\tif (Array.isArray(node)) {\n\t\tconst values = node.map(extractPickerTextContent).filter((value): value is string => Boolean(value));\n\t\treturn values.length ? values.join(\" \") : undefined;\n\t}\n\n\treturn undefined;\n}\n","import { useMemo } from \"react\";\n\nimport { normalizeTextToLower } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\ninterface UsePickerDefaultFilterOptions<T> {\n\toptions: readonly T[];\n\tquery: string;\n\tenabled?: boolean;\n\tgetSearchText: (option: T) => unknown;\n}\n\nfunction normalizeSearchText(value: unknown) {\n\tconst parts = Array.isArray(value) ? value : [value];\n\n\treturn normalizeTextToLower(parts.filter(Boolean).join(\" \"));\n}\n\nexport function usePickerDefaultFilter<T>({ options, query, enabled = true, getSearchText }: UsePickerDefaultFilterOptions<T>) {\n\tconst normalizedQuery = normalizeTextToLower(query);\n\n\treturn useMemo(() => {\n\t\tif (!enabled || !normalizedQuery) {\n\t\t\treturn [...options];\n\t\t}\n\n\t\treturn options.filter((option) => normalizeSearchText(getSearchText(option)).includes(normalizedQuery));\n\t}, [enabled, getSearchText, normalizedQuery, options]);\n}\n","import { Placement } from \"@floating-ui/react\";\nimport { useFloatingListbox } from \"@ryuzaki13/react-foundation-lib/hooks\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerFloatingListboxParams<T> {\n\toptions: readonly T[];\n\tselectedIndex: number;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tgetOptionDisabled?: (option: T) => boolean;\n\tonSelect?: (option: T) => void;\n\tdisabled?: boolean;\n\tplacement?: Placement;\n\tcloseOnSelect?: boolean;\n\tfocusFloatingOnOpen?: boolean;\n\tallowOpenWithoutOptions?: boolean;\n\trestoreFocusOnClose?: boolean;\n\ttriggerMode?: PickerTriggerMode;\n}\n\n/**\n * Единая точка входа для popup/listbox поведения во всех picker-компонентах.\n */\nexport function usePickerFloatingListbox<T>(params: UsePickerFloatingListboxParams<T>) {\n\tconst triggerPolicy = params.triggerMode ? createPickerTriggerPolicy(params.triggerMode) : undefined;\n\n\treturn useFloatingListbox({\n\t\t...params,\n\t\tfocusFloatingOnOpen: params.focusFloatingOnOpen ?? triggerPolicy?.focusFloatingOnOpen,\n\t\trestoreFocusOnClose: params.restoreFocusOnClose ?? triggerPolicy?.restoreFocusOnClose\n\t});\n}\n","import { useEffect, useEffectEvent, useRef, useState } from \"react\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerQueryOptions {\n\topen: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\tonQuery?: (value: string) => void;\n\tresetOnClose?: boolean;\n\ttriggerMode?: PickerTriggerMode;\n}\n\nexport function usePickerQuery({ open, query, defaultQuery, onQuery, resetOnClose, triggerMode }: UsePickerQueryOptions) {\n\tconst previousOpenRef = useRef(false);\n\tconst isControlled = query !== undefined;\n\tconst [internalQuery, setInternalQuery] = useState(defaultQuery ?? \"\");\n\tconst currentQuery = isControlled ? (query ?? \"\") : internalQuery;\n\tconst syncResetInternalQuery = useEffectEvent(() => setInternalQuery(\"\"));\n\tconst resolvedResetOnClose = resetOnClose ?? (triggerMode ? createPickerTriggerPolicy(triggerMode).resetQueryOnClose : true);\n\n\tuseEffect(() => {\n\t\tif (previousOpenRef.current && !open && resolvedResetOnClose) {\n\t\t\tif (!isControlled) {\n\t\t\t\tsyncResetInternalQuery();\n\t\t\t}\n\n\t\t\tonQuery?.(\"\");\n\t\t}\n\n\t\tpreviousOpenRef.current = open;\n\t}, [isControlled, onQuery, open, resolvedResetOnClose]);\n\n\tconst setQuery = (nextValue: string) => {\n\t\tif (!isControlled) {\n\t\t\tsetInternalQuery(nextValue);\n\t\t}\n\n\t\tonQuery?.(nextValue);\n\t};\n\n\treturn {\n\t\tquery: currentQuery,\n\t\tsetQuery,\n\t\tclearQuery: () => setQuery(\"\")\n\t};\n}\n","import { useEffect, useEffectEvent, useRef, useState } from \"react\";\n\ninterface UsePickerSelectionLifecycleOptions<TValue> {\n\tvalue: TValue;\n\topen: boolean;\n\tonCommit: (value: TValue) => void;\n\tonOpen?: () => void;\n\tonClose?: (value: TValue) => void;\n\tisEqual: (left: TValue, right: TValue) => boolean;\n}\n\n/**\n * Общий жизненный цикл чернового выбора для picker-компонентов,\n * где изменения подтверждаются при закрытии popup.\n */\nexport function usePickerSelectionLifecycle<TValue>({\n\tvalue,\n\topen,\n\tonCommit,\n\tonOpen,\n\tonClose,\n\tisEqual\n}: UsePickerSelectionLifecycleOptions<TValue>) {\n\tconst previousOpenRef = useRef(false);\n\tconst [draftValue, setDraftValue] = useState(value);\n\tconst syncDraftValue = useEffectEvent((value: TValue) => setDraftValue(value));\n\n\tuseEffect(() => {\n\t\tif (!open) {\n\t\t\tsyncDraftValue(value);\n\t\t}\n\t}, [open, value]);\n\n\tuseEffect(() => {\n\t\tif (previousOpenRef.current && !open) {\n\t\t\tif (!isEqual(draftValue, value)) {\n\t\t\t\tonCommit(draftValue);\n\t\t\t}\n\n\t\t\tonClose?.(draftValue);\n\t\t}\n\n\t\tpreviousOpenRef.current = open;\n\t}, [draftValue, isEqual, onClose, onCommit, open, value]);\n\n\tconst prepareOpen = () => {\n\t\tsetDraftValue(value);\n\t\tonOpen?.();\n\t};\n\n\treturn {\n\t\tdraftValue,\n\t\tsetDraftValue,\n\t\tprepareOpen\n\t};\n}\n","import { MouseEvent, RefObject } from \"react\";\n\nimport { PickerTriggerMode, createPickerTriggerPolicy } from \"./createPickerTriggerPolicy\";\n\ninterface UsePickerTriggerControllerOptions {\n\tmode: PickerTriggerMode;\n\topen: boolean;\n\tcurrentQuery: string;\n\thasDisplayValue: boolean;\n\tinputRef: RefObject<HTMLInputElement | null>;\n\tsetQuery?: (value: string) => void;\n\topenList?: () => void;\n\tclose?: () => void;\n\ttoggleOpen?: () => void;\n\tonBeforeOpen?: () => void;\n}\n\ninterface HandleTriggerKeyDownOptions {\n\tevent: React.KeyboardEvent<HTMLElement>;\n\tonActivateWhenOpen?: () => void;\n\tenableSpaceActivation?: boolean;\n\tenableClosedArrowDownOpen?: boolean;\n\tsuppressClosedArrowUp?: boolean;\n}\n\nfunction focusInput(inputRef: RefObject<HTMLInputElement | null>) {\n\trequestAnimationFrame(() => {\n\t\tinputRef.current?.focus();\n\t});\n}\n\n/**\n * Единый контроллер пользовательских действий на trigger-input.\n * Держит поведение display/search-single/search-multi в одном месте.\n */\nexport function usePickerTriggerController({\n\tmode,\n\topen,\n\tcurrentQuery,\n\thasDisplayValue,\n\tinputRef,\n\tsetQuery,\n\topenList,\n\tclose,\n\ttoggleOpen,\n\tonBeforeOpen\n}: UsePickerTriggerControllerOptions) {\n\tconst policy = createPickerTriggerPolicy(mode);\n\n\tconst openTrigger = () => {\n\t\tonBeforeOpen?.();\n\n\t\tif (openList) {\n\t\t\topenList();\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleOpen?.();\n\t};\n\n\tconst closeTrigger = () => {\n\t\tif (close) {\n\t\t\tclose();\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleOpen?.();\n\t};\n\n\tconst toggleTrigger = () => {\n\t\tif (open) {\n\t\t\tcloseTrigger();\n\t\t} else {\n\t\t\topenTrigger();\n\t\t}\n\n\t\tif (policy.shouldFocusReferenceOnToggle(open)) {\n\t\t\tfocusInput(inputRef);\n\t\t}\n\t};\n\n\treturn {\n\t\tpolicy,\n\t\thandleTriggerInputChange: (nextValue: string) => {\n\t\t\tsetQuery?.(nextValue);\n\n\t\t\tif (policy.shouldOpenOnInputChange(open)) {\n\t\t\t\topenTrigger();\n\t\t\t}\n\t\t},\n\t\thandleTriggerClick: () => {\n\t\t\tif (policy.shouldOpenOnTriggerClick(open)) {\n\t\t\t\topenTrigger();\n\t\t\t}\n\t\t},\n\t\thandleTriggerFocus: (input: HTMLInputElement) => {\n\t\t\tif (\n\t\t\t\tpolicy.shouldSelectTriggerTextOnFocus({\n\t\t\t\t\topen,\n\t\t\t\t\tcurrentQuery,\n\t\t\t\t\thasDisplayValue\n\t\t\t\t})\n\t\t\t) {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tinput.select();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\thandleToggleMouseDown: (event: MouseEvent<HTMLButtonElement>) => {\n\t\t\tevent.preventDefault();\n\t\t},\n\t\thandleToggleClick: () => {\n\t\t\ttoggleTrigger();\n\t\t},\n\t\thandleTriggerKeyDown: ({\n\t\t\tevent,\n\t\t\tonActivateWhenOpen,\n\t\t\tenableSpaceActivation = false,\n\t\t\tenableClosedArrowDownOpen = false,\n\t\t\tsuppressClosedArrowUp = false\n\t\t}: HandleTriggerKeyDownOptions) => {\n\t\t\tif (!open && suppressClosedArrowUp && event.key === \"ArrowUp\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!open && enableClosedArrowDownOpen && event.key === \"ArrowDown\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleTrigger();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"Enter\") {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (open) {\n\t\t\t\t\tonActivateWhenOpen?.();\n\t\t\t\t} else {\n\t\t\t\t\ttoggleTrigger();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (enableSpaceActivation && event.key === \" \") {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (open) {\n\t\t\t\t\tonActivateWhenOpen?.();\n\t\t\t\t} else {\n\t\t\t\t\ttoggleTrigger();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttoggleTrigger\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import { o as e, t } from "./SelectOptionContent-lfEtHXfO.js";
|
|
2
|
-
import { t as n } from "./ui.module-BisoTevy.js";
|
|
3
|
-
import { c as r } from "./input-CZLUUggm.js";
|
|
4
|
-
import { a as i, c as a, d as o, f as s, i as c, l, o as u, r as d, t as f, u as p } from "./picker-beNX-cW9.js";
|
|
5
|
-
import { n as m } from "./useODataSelectBase-BxAvhDww.js";
|
|
6
|
-
import { Fragment as h, useMemo as g, useRef as ee, useState as te } from "react";
|
|
7
|
-
import { cn as _ } from "@ryuzaki13/react-foundation-lib/utils";
|
|
8
|
-
import { CheckIcon as ne, XIcon as re } from "lucide-react";
|
|
9
|
-
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
10
|
-
//#region src/select/lib/getOptionSearchText.ts
|
|
11
|
-
function ie({ option: e, getOptionLabel: t, getOptionCode: n, getOptionGroup: r }) {
|
|
12
|
-
return [
|
|
13
|
-
u(t(e)),
|
|
14
|
-
u(n?.(e)),
|
|
15
|
-
u(r?.(e)?.label)
|
|
16
|
-
].filter((e) => !!e).join(" ").toLowerCase();
|
|
17
|
-
}
|
|
18
|
-
function x(e, t, n) {
|
|
19
|
-
return e.find((e) => e.value === t) ?? n;
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
22
|
-
//#region src/select/model/useODataSelect.ts
|
|
23
|
-
function S({ odata: e, segment: t, model: n, value: r, dependencies: i, onChange: a }) {
|
|
24
|
-
let o = m({
|
|
25
|
-
odata: e,
|
|
26
|
-
segment: t,
|
|
27
|
-
model: n,
|
|
28
|
-
value: r ? [r] : [],
|
|
29
|
-
dependencies: i
|
|
30
|
-
}), s = o.selectedItems[0], c = g(() => s ? [s, ...o.filteredItems] : o.filteredItems, [o.filteredItems, s]), l = (e) => {
|
|
31
|
-
a(e?.[o.selectionKey]);
|
|
32
|
-
};
|
|
33
|
-
return {
|
|
34
|
-
...o,
|
|
35
|
-
selectedItem: s,
|
|
36
|
-
options: c,
|
|
37
|
-
handleChange: l
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
//#endregion
|
|
41
|
-
//#region src/select/lib/createSelectOptionSections.ts
|
|
42
|
-
function ae(e, t) {
|
|
43
|
-
let n = [];
|
|
44
|
-
return e.forEach((e, r) => {
|
|
45
|
-
let i = t?.(e), a = n.at(-1), o = a?.group?.key === i?.key;
|
|
46
|
-
if (a && o) {
|
|
47
|
-
a.items.push({
|
|
48
|
-
option: e,
|
|
49
|
-
index: r
|
|
50
|
-
});
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
n.push({
|
|
54
|
-
group: i,
|
|
55
|
-
items: [{
|
|
56
|
-
option: e,
|
|
57
|
-
index: r
|
|
58
|
-
}]
|
|
59
|
-
});
|
|
60
|
-
}), n;
|
|
61
|
-
}
|
|
62
|
-
var C = {
|
|
63
|
-
inputWithOverlay: "aEEqH1",
|
|
64
|
-
valueOverlay: "_4HQKa7"
|
|
65
|
-
};
|
|
66
|
-
//#endregion
|
|
67
|
-
//#region src/select/Select.tsx
|
|
68
|
-
function w(e) {
|
|
69
|
-
let { label: t, description: r, disabled: m, placeholder: g, size: x, options: S, value: w, onChange: T, getOptionKey: E, getOptionLabel: D, getOptionCode: O, getOptionDisabled: k, getOptionAriaLabel: oe, getOptionGroup: A, getOptionClassName: se, renderOption: j, renderValue: M, className: ce, buttonClassName: le, optionsClassName: ue, optionsContentClassName: de, searchable: N = !1, defaultFilter: fe = !0, query: pe, defaultQuery: me, onQuery: he, renderPopupHeader: ge, emptyState: _e, loadingState: ve, errorState: ye, placement: P = "bottom-start", clearable: F = !1 } = e, I = T, L = ee(null), [R, be] = te(!1), z = N ? "search-single" : "display", B = w === void 0 ? void 0 : E(w), V = B === void 0 ? void 0 : S.find((e) => E(e) === B) ?? w, { query: H, setQuery: U } = d({
|
|
70
|
-
open: R,
|
|
71
|
-
query: pe,
|
|
72
|
-
defaultQuery: me,
|
|
73
|
-
onQuery: he,
|
|
74
|
-
triggerMode: z
|
|
75
|
-
}), W = i({
|
|
76
|
-
options: S,
|
|
77
|
-
query: H,
|
|
78
|
-
enabled: N && fe,
|
|
79
|
-
getSearchText: (e) => ie({
|
|
80
|
-
option: e,
|
|
81
|
-
getOptionLabel: D,
|
|
82
|
-
getOptionCode: O,
|
|
83
|
-
getOptionGroup: A
|
|
84
|
-
})
|
|
85
|
-
}), xe = ae(W, A), { activeIndex: Se, context: Ce, floatingStyles: we, getFloatingProps: Te, setReference: Ee, setFloating: De, setOptionRef: Oe, close: G, openList: ke, toggleOpen: Ae, selectOption: je, selectActiveOption: Me, handleReferenceKeyDown: Ne, handleFloatingKeyDown: Pe, getOptionId: K, getActiveOptionId: q } = c({
|
|
86
|
-
options: W,
|
|
87
|
-
selectedIndex: B === void 0 ? -1 : W.findIndex((e) => E(e) === B),
|
|
88
|
-
open: R,
|
|
89
|
-
onOpenChange: be,
|
|
90
|
-
getOptionDisabled: k,
|
|
91
|
-
onSelect: I,
|
|
92
|
-
disabled: m,
|
|
93
|
-
placement: P,
|
|
94
|
-
triggerMode: z
|
|
95
|
-
}), J = W.length > 0, Y = V === void 0 ? void 0 : D(V), X = V === void 0 ? void 0 : M ? M(V) : Y, Fe = u(Y), Ie = V === void 0 ? void 0 : u(O?.(V)), Le = u(X) ?? Fe ?? Ie ?? (B === void 0 ? "" : String(B)), Z = N && (R || H.length > 0), Re = Z ? H : V === void 0 ? "" : Le, Q = V !== void 0 && X !== void 0 && u(X) === void 0 && !Z, $ = f({
|
|
96
|
-
mode: z,
|
|
97
|
-
open: R,
|
|
98
|
-
currentQuery: H,
|
|
99
|
-
hasDisplayValue: V !== void 0,
|
|
100
|
-
inputRef: L,
|
|
101
|
-
setQuery: U,
|
|
102
|
-
openList: ke,
|
|
103
|
-
close: G,
|
|
104
|
-
toggleOpen: Ae
|
|
105
|
-
}), ze = (e) => {
|
|
106
|
-
L.current = e;
|
|
107
|
-
}, Be = () => {
|
|
108
|
-
F && I(void 0), U(""), G();
|
|
109
|
-
};
|
|
110
|
-
return /* @__PURE__ */ y(s, {
|
|
111
|
-
label: t,
|
|
112
|
-
description: r,
|
|
113
|
-
disabled: m,
|
|
114
|
-
placeholder: g,
|
|
115
|
-
size: x,
|
|
116
|
-
className: ce,
|
|
117
|
-
children: ({ controlId: e, labelId: t, describedBy: r }) => {
|
|
118
|
-
let i = `${e}-listbox`;
|
|
119
|
-
return /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(a, {
|
|
120
|
-
ref: ze,
|
|
121
|
-
rootRef: Ee,
|
|
122
|
-
id: e,
|
|
123
|
-
type: "text",
|
|
124
|
-
disabled: m,
|
|
125
|
-
readOnly: !N,
|
|
126
|
-
autoComplete: "off",
|
|
127
|
-
role: "combobox",
|
|
128
|
-
value: Re,
|
|
129
|
-
placeholder: V === void 0 || Z ? g : void 0,
|
|
130
|
-
"aria-labelledby": t,
|
|
131
|
-
"aria-describedby": r,
|
|
132
|
-
"aria-haspopup": "listbox",
|
|
133
|
-
"aria-expanded": R,
|
|
134
|
-
"aria-controls": R ? i : void 0,
|
|
135
|
-
"aria-autocomplete": N ? "list" : "none",
|
|
136
|
-
"aria-activedescendant": R ? q(i) : void 0,
|
|
137
|
-
inputClassName: _(Q && C.inputWithOverlay, le, "textOverflow"),
|
|
138
|
-
overlay: Q ? /* @__PURE__ */ y("div", {
|
|
139
|
-
className: C.valueOverlay,
|
|
140
|
-
children: X
|
|
141
|
-
}) : void 0,
|
|
142
|
-
endAdornment: /* @__PURE__ */ y(l, {
|
|
143
|
-
open: R,
|
|
144
|
-
disabled: m,
|
|
145
|
-
onToggleMouseDown: $.handleToggleMouseDown,
|
|
146
|
-
onToggleClick: $.handleToggleClick,
|
|
147
|
-
children: F && V !== void 0 && !m ? /* @__PURE__ */ y("button", {
|
|
148
|
-
type: "button",
|
|
149
|
-
className: n.uiClearButton,
|
|
150
|
-
"data-ui": "select-clear-button",
|
|
151
|
-
"data-action": "clear-select",
|
|
152
|
-
onMouseDown: (e) => {
|
|
153
|
-
e.preventDefault(), e.stopPropagation();
|
|
154
|
-
},
|
|
155
|
-
onClick: (e) => {
|
|
156
|
-
e.preventDefault(), e.stopPropagation(), Be();
|
|
157
|
-
},
|
|
158
|
-
"aria-label": "Очистить выбор",
|
|
159
|
-
children: /* @__PURE__ */ y(re, {})
|
|
160
|
-
}) : null
|
|
161
|
-
}),
|
|
162
|
-
onChange: (e) => {
|
|
163
|
-
N && $.handleTriggerInputChange(e.target.value);
|
|
164
|
-
},
|
|
165
|
-
onClick: $.handleTriggerClick,
|
|
166
|
-
onFocus: (e) => {
|
|
167
|
-
$.handleTriggerFocus(e.currentTarget);
|
|
168
|
-
},
|
|
169
|
-
onKeyDown: (e) => {
|
|
170
|
-
Ne(e), !e.defaultPrevented && $.handleTriggerKeyDown({
|
|
171
|
-
event: e,
|
|
172
|
-
onActivateWhenOpen: Me,
|
|
173
|
-
enableSpaceActivation: !N
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}), /* @__PURE__ */ y(o, {
|
|
177
|
-
open: R,
|
|
178
|
-
context: Ce,
|
|
179
|
-
floatingStyles: we,
|
|
180
|
-
listId: i,
|
|
181
|
-
labelId: t,
|
|
182
|
-
descriptionId: r,
|
|
183
|
-
activeOptionId: J ? q(i) : void 0,
|
|
184
|
-
setFloating: De,
|
|
185
|
-
getFloatingProps: Te,
|
|
186
|
-
onKeyDown: Pe,
|
|
187
|
-
className: _(n.uiPopupOptions, ue),
|
|
188
|
-
header: ge,
|
|
189
|
-
children: /* @__PURE__ */ y("div", {
|
|
190
|
-
className: _(de, "h100 scrollable"),
|
|
191
|
-
children: J ? xe.map((e, t) => {
|
|
192
|
-
let r = e.group ? `${i}-group-${t}` : void 0, a = e.items.map(({ option: e, index: t }) => {
|
|
193
|
-
let r = E(e), a = B !== void 0 && r === B, o = t === Se, s = k?.(e) ?? !1, c = {
|
|
194
|
-
active: o,
|
|
195
|
-
selected: a,
|
|
196
|
-
disabled: s
|
|
197
|
-
};
|
|
198
|
-
return /* @__PURE__ */ y("div", {
|
|
199
|
-
id: K(i, t),
|
|
200
|
-
ref: (e) => Oe(t, e),
|
|
201
|
-
role: "option",
|
|
202
|
-
"aria-selected": a,
|
|
203
|
-
"aria-disabled": s || void 0,
|
|
204
|
-
"aria-label": oe?.(e),
|
|
205
|
-
className: _(n.uiPopupOption, s && n.disabled, o && n.uiPopupOptionActive, a && n.selected, se?.(e, c)),
|
|
206
|
-
onClick: () => je(e),
|
|
207
|
-
children: j ? j(e, c) : /* @__PURE__ */ b(v, { children: [
|
|
208
|
-
y(a ? ne : "span", { className: n.uiPopupOptionIcon }),
|
|
209
|
-
/* @__PURE__ */ y("div", {
|
|
210
|
-
className: n.uiOptionText,
|
|
211
|
-
children: D(e)
|
|
212
|
-
}),
|
|
213
|
-
O && /* @__PURE__ */ y("div", {
|
|
214
|
-
className: n.uiOptionCode,
|
|
215
|
-
children: O(e)
|
|
216
|
-
})
|
|
217
|
-
] })
|
|
218
|
-
}, r);
|
|
219
|
-
});
|
|
220
|
-
return e.group ? /* @__PURE__ */ b("div", {
|
|
221
|
-
role: "group",
|
|
222
|
-
"aria-labelledby": r,
|
|
223
|
-
children: [/* @__PURE__ */ y("div", {
|
|
224
|
-
id: r,
|
|
225
|
-
className: n.uiPopupGroupLabel,
|
|
226
|
-
children: e.group.label
|
|
227
|
-
}), a]
|
|
228
|
-
}, `group-${String(e.group.key)}-${t}`) : /* @__PURE__ */ y(h, { children: a }, `options-${t}`);
|
|
229
|
-
}) : /* @__PURE__ */ y(p, {
|
|
230
|
-
emptyState: _e,
|
|
231
|
-
loadingState: ve,
|
|
232
|
-
errorState: ye
|
|
233
|
-
})
|
|
234
|
-
})
|
|
235
|
-
})] });
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
//#endregion
|
|
240
|
-
//#region src/select/ODataSelect.tsx
|
|
241
|
-
function T(e, t, n) {
|
|
242
|
-
return e ? t || Object.keys(e).find((e) => e !== n) || n : t || n;
|
|
243
|
-
}
|
|
244
|
-
var E = ({ odata: n, segment: i, model: a, size: o, label: s, description: c, disabled: l, value: u, dependencies: d, onChange: f, clearable: p }) => {
|
|
245
|
-
let m = S({
|
|
246
|
-
odata: n,
|
|
247
|
-
segment: i,
|
|
248
|
-
model: e(a),
|
|
249
|
-
value: u,
|
|
250
|
-
dependencies: d,
|
|
251
|
-
onChange: f
|
|
252
|
-
});
|
|
253
|
-
if (m.isLoading) return /* @__PURE__ */ y(r, {
|
|
254
|
-
size: o,
|
|
255
|
-
label: s,
|
|
256
|
-
description: c
|
|
257
|
-
});
|
|
258
|
-
let h = i.hideCode ?? n.hideCode, g = T(m.selectedItem ?? m.options[0], m.textKey, m.codeKey);
|
|
259
|
-
return /* @__PURE__ */ y(w, {
|
|
260
|
-
size: o,
|
|
261
|
-
label: s,
|
|
262
|
-
description: c,
|
|
263
|
-
options: m.options,
|
|
264
|
-
value: m.selectedItem,
|
|
265
|
-
onChange: m.handleChange,
|
|
266
|
-
getOptionKey: (e) => e[m.codeKey],
|
|
267
|
-
getOptionLabel: (e) => e[g],
|
|
268
|
-
getOptionCode: h ? void 0 : (e) => e[m.codeKey],
|
|
269
|
-
getOptionAriaLabel: (e) => h || e[g] === e[m.codeKey] ? String(e[g]) : `${e[g]} ${e[m.codeKey]}`,
|
|
270
|
-
renderValue: (e) => /* @__PURE__ */ y(t, {
|
|
271
|
-
label: e[g],
|
|
272
|
-
code: h ? void 0 : e[m.codeKey]
|
|
273
|
-
}),
|
|
274
|
-
renderOption: (e) => /* @__PURE__ */ y(t, {
|
|
275
|
-
label: e[g],
|
|
276
|
-
code: h ? void 0 : e[m.codeKey],
|
|
277
|
-
highlight: m.debouncedQuery
|
|
278
|
-
}),
|
|
279
|
-
searchable: !0,
|
|
280
|
-
query: m.query,
|
|
281
|
-
onQuery: m.setQuery,
|
|
282
|
-
defaultFilter: !1,
|
|
283
|
-
disabled: l || m.isLoading,
|
|
284
|
-
placeholder: m.placeholder,
|
|
285
|
-
loadingState: "Загрузка...",
|
|
286
|
-
errorState: m.isError ? "Ошибка загрузки" : void 0,
|
|
287
|
-
emptyState: !m.isLoading && !m.isError ? "Нет данных" : void 0,
|
|
288
|
-
clearable: p
|
|
289
|
-
});
|
|
290
|
-
};
|
|
291
|
-
//#endregion
|
|
292
|
-
//#region src/select/SerializableSelect.tsx
|
|
293
|
-
function D(e, t) {
|
|
294
|
-
return e[t];
|
|
295
|
-
}
|
|
296
|
-
function O(e, t, n) {
|
|
297
|
-
let r = e[t];
|
|
298
|
-
if (typeof r == "string" || typeof r == "number") return r;
|
|
299
|
-
let i = D(e, n);
|
|
300
|
-
return typeof i == "string" || typeof i == "number" ? i : String(i);
|
|
301
|
-
}
|
|
302
|
-
function k({ label: e, description: t, disabled: n, placeholder: r, size: i, options: a, value: o, onChange: s, optionKey: c, optionLabel: l, renderCode: u, className: d, clearable: f }) {
|
|
303
|
-
return /* @__PURE__ */ y(w, {
|
|
304
|
-
label: e,
|
|
305
|
-
description: t,
|
|
306
|
-
disabled: n,
|
|
307
|
-
placeholder: r,
|
|
308
|
-
size: i,
|
|
309
|
-
options: a,
|
|
310
|
-
value: o === void 0 ? void 0 : a.find((e) => D(e, c) === o),
|
|
311
|
-
onChange: (e) => s(e ? D(e, c) : void 0),
|
|
312
|
-
getOptionKey: (e) => D(e, c),
|
|
313
|
-
getOptionLabel: (e) => O(e, l, c),
|
|
314
|
-
getOptionCode: u ? (e) => D(e, c) : void 0,
|
|
315
|
-
className: d,
|
|
316
|
-
clearable: f
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
//#endregion
|
|
320
|
-
export { x as i, E as n, w as r, k as t };
|
|
321
|
-
|
|
322
|
-
//# sourceMappingURL=select-CniUoHU_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-CniUoHU_.js","names":[],"sources":["../../src/select/lib/getOptionSearchText.ts","../../src/select/model/useODataSelect.ts","../../src/select/lib/createSelectOptionSections.ts","../../src/select/Select.module.scss","../../src/select/Select.tsx","../../src/select/ODataSelect.tsx","../../src/select/SerializableSelect.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { extractPickerTextContent } from \"../../picker\";\nimport { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport function getOptionSearchText<T extends InputType>({\n\toption,\n\tgetOptionLabel,\n\tgetOptionCode,\n\tgetOptionGroup\n}: {\n\toption: T;\n\tgetOptionLabel: (option: T) => ReactNode;\n\tgetOptionCode?: (option: T) => ReactNode;\n\tgetOptionGroup?: (option: T) => SelectOptionGroup | undefined;\n}) {\n\treturn [\n\t\textractPickerTextContent(getOptionLabel(option)),\n\t\textractPickerTextContent(getOptionCode?.(option)),\n\t\textractPickerTextContent(getOptionGroup?.(option)?.label)\n\t]\n\t\t.filter((part): part is string => Boolean(part))\n\t\t.join(\" \")\n\t\t.toLowerCase();\n}\n\n/** Находит selected option по value и возвращает fallback, если значение еще не нормализовано. */\nexport function resolveSelectedOption<TOption extends { value: string }>(\n\toptions: readonly TOption[],\n\tvalue: string,\n\tfallback: TOption\n): TOption {\n\treturn options.find((option) => option.value === value) ?? fallback;\n}\n","import { useMemo } from \"react\";\n\nimport { ODataCollectionModel, ODataSingleSelectProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { useODataSelectBase } from \"./useODataSelectBase\";\n\ninterface UseODataSelectOptions extends Omit<ODataSingleSelectProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (value: string | undefined) => void;\n}\n\nexport function useODataSelect({ odata, segment, model, value, dependencies, onChange }: UseODataSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue: value ? [value] : [],\n\t\tdependencies\n\t});\n\n\tconst selectedItem = odataModel.selectedItems[0];\n\tconst options = useMemo(() => {\n\t\tif (!selectedItem) {\n\t\t\treturn odataModel.filteredItems;\n\t\t}\n\n\t\treturn [selectedItem, ...odataModel.filteredItems];\n\t}, [odataModel.filteredItems, selectedItem]);\n\n\tconst handleChange = (item: CollectionItem | undefined) => {\n\t\tonChange(item?.[odataModel.selectionKey]);\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\tselectedItem,\n\t\toptions,\n\t\thandleChange\n\t};\n}\n","import { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport type SelectOptionSectionItem<TOption> = {\n\treadonly option: TOption;\n\treadonly index: number;\n};\n\nexport type SelectOptionSection<TOption> = {\n\treadonly group: SelectOptionGroup | undefined;\n\treadonly items: readonly SelectOptionSectionItem<TOption>[];\n};\n\n/**\n * Собирает соседние опции с одинаковым group key в секции, сохраняя исходные индексы для клавиатурной навигации listbox.\n */\nexport function createSelectOptionSections<TOption>(\n\toptions: readonly TOption[],\n\tgetOptionGroup: ((option: TOption) => SelectOptionGroup | undefined) | undefined\n): readonly SelectOptionSection<TOption>[] {\n\tconst sections: Array<{ group: SelectOptionGroup | undefined; items: SelectOptionSectionItem<TOption>[] }> = [];\n\n\toptions.forEach((option, index) => {\n\t\tconst group = getOptionGroup?.(option);\n\t\tconst currentSection = sections.at(-1);\n\t\tconst belongsToCurrentSection = currentSection?.group?.key === group?.key;\n\n\t\tif (currentSection && belongsToCurrentSection) {\n\t\t\tcurrentSection.items.push({ option, index });\n\t\t\treturn;\n\t\t}\n\n\t\tsections.push({\n\t\t\tgroup,\n\t\t\titems: [{ option, index }]\n\t\t});\n\t});\n\n\treturn sections;\n}\n",".inputWithOverlay {\n\tcolor: transparent;\n\tcaret-color: transparent;\n}\n\n.valueOverlay {\n\tposition: absolute;\n\tinset: 0 calc(var(--control-height) + var(--space-xs)) 0 var(--space-md);\n\tdisplay: flex;\n\talign-items: center;\n\tpointer-events: none;\n\toverflow: hidden;\n}\n","import { Fragment, ReactNode, useRef, useState } from \"react\";\n\nimport { Placement } from \"@floating-ui/react\";\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon, XIcon } from \"lucide-react\";\n\nimport {\n\textractPickerTextContent,\n\tPickerField,\n\tPickerPopup,\n\tPickerStatus,\n\tPickerTriggerActions,\n\tPickerTriggerInput,\n\tusePickerDefaultFilter,\n\tusePickerFloatingListbox,\n\tusePickerQuery,\n\tusePickerTriggerController\n} from \"../picker\";\nimport { ChangeHandler, UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport { getOptionSearchText } from \"./lib\";\nimport { createSelectOptionSections } from \"./lib/createSelectOptionSections\";\nimport styles from \"./Select.module.scss\";\nimport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport type SelectOptionState = {\n\tactive: boolean;\n\tselected: boolean;\n\tdisabled: boolean;\n};\n\ntype SelectSharedProps<TOption extends InputType> = Omit<UiBaseProps<TOption, TOption | undefined>, \"onChange\"> & {\n\toptions: readonly TOption[];\n\tgetOptionKey: (option: TOption) => SelectOptionKey;\n\tgetOptionLabel: (option: TOption) => ReactNode;\n\tgetOptionCode?: (option: TOption) => ReactNode;\n\tgetOptionDisabled?: (option: TOption) => boolean;\n\tgetOptionAriaLabel?: (option: TOption) => string;\n\tgetOptionGroup?: (option: TOption) => SelectOptionGroup | undefined;\n\tgetOptionClassName?: (option: TOption, state: SelectOptionState) => string | undefined;\n\trenderOption?: (option: TOption, state: SelectOptionState) => ReactNode;\n\trenderValue?: (option: TOption) => ReactNode;\n\tclassName?: string;\n\tbuttonClassName?: string;\n\toptionsClassName?: string;\n\toptionsContentClassName?: string;\n\tsearchable?: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\tonQuery?: (value: string) => void;\n\tdefaultFilter?: boolean;\n\trenderPopupHeader?: ReactNode;\n\temptyState?: ReactNode;\n\tloadingState?: ReactNode;\n\terrorState?: ReactNode;\n\tplacement?: Placement;\n};\n\ntype SelectChangeValue<TOption extends InputType, TClearable extends boolean | undefined> = true extends TClearable\n\t? TOption | undefined\n\t: TOption;\n\nexport type SelectProps<TOption extends InputType, TClearable extends boolean | undefined = false> = SelectSharedProps<TOption> & {\n\tclearable?: TClearable;\n\tonChange: ChangeHandler<SelectChangeValue<TOption, TClearable>>;\n};\n\n/**\n * Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.\n */\nexport function Select<TOption extends InputType, TClearable extends boolean | undefined = false>(props: SelectProps<TOption, TClearable>) {\n\tconst {\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tplaceholder,\n\t\tsize,\n\t\toptions,\n\t\tvalue,\n\t\tonChange,\n\t\tgetOptionKey,\n\t\tgetOptionLabel,\n\t\tgetOptionCode,\n\t\tgetOptionDisabled,\n\t\tgetOptionAriaLabel,\n\t\tgetOptionGroup,\n\t\tgetOptionClassName,\n\t\trenderOption,\n\t\trenderValue,\n\t\tclassName,\n\t\tbuttonClassName,\n\t\toptionsClassName,\n\t\toptionsContentClassName,\n\t\tsearchable = false,\n\t\tdefaultFilter = true,\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\trenderPopupHeader,\n\t\temptyState,\n\t\tloadingState,\n\t\terrorState,\n\t\tplacement = \"bottom-start\",\n\t\tclearable = false\n\t} = props;\n\tconst emitChange = onChange as ChangeHandler<TOption | undefined>;\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst triggerMode = searchable ? \"search-single\" : \"display\";\n\tconst selectedKey = value === undefined ? undefined : getOptionKey(value);\n\tconst selectedOption =\n\t\tselectedKey === undefined ? undefined : (options.find((option) => getOptionKey(option) === selectedKey) ?? value);\n\tconst { query: currentQuery, setQuery } = usePickerQuery({\n\t\topen,\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\ttriggerMode\n\t});\n\tconst visibleOptions = usePickerDefaultFilter({\n\t\toptions,\n\t\tquery: currentQuery,\n\t\tenabled: searchable && defaultFilter,\n\t\tgetSearchText: (option) =>\n\t\t\tgetOptionSearchText({\n\t\t\t\toption,\n\t\t\t\tgetOptionLabel,\n\t\t\t\tgetOptionCode,\n\t\t\t\tgetOptionGroup\n\t\t\t})\n\t});\n\tconst optionSections = createSelectOptionSections(visibleOptions, getOptionGroup);\n\tconst selectedIndex = selectedKey === undefined ? -1 : visibleOptions.findIndex((option) => getOptionKey(option) === selectedKey);\n\tconst {\n\t\tactiveIndex,\n\t\tcontext,\n\t\tfloatingStyles,\n\t\tgetFloatingProps,\n\t\tsetReference,\n\t\tsetFloating,\n\t\tsetOptionRef,\n\t\tclose,\n\t\topenList,\n\t\ttoggleOpen,\n\t\tselectOption,\n\t\tselectActiveOption,\n\t\thandleReferenceKeyDown,\n\t\thandleFloatingKeyDown,\n\t\tgetOptionId,\n\t\tgetActiveOptionId\n\t} = usePickerFloatingListbox({\n\t\toptions: visibleOptions,\n\t\tselectedIndex,\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tgetOptionDisabled,\n\t\tonSelect: emitChange,\n\t\tdisabled,\n\t\tplacement,\n\t\ttriggerMode\n\t});\n\n\tconst hasOptions = visibleOptions.length > 0;\n\tconst labelContent = selectedOption !== undefined ? getOptionLabel(selectedOption) : undefined;\n\tconst displayContent = selectedOption !== undefined ? (renderValue ? renderValue(selectedOption) : labelContent) : undefined;\n\tconst labelText = extractPickerTextContent(labelContent);\n\tconst codeText = selectedOption !== undefined ? extractPickerTextContent(getOptionCode?.(selectedOption)) : undefined;\n\tconst displayText =\n\t\textractPickerTextContent(displayContent) ?? labelText ?? codeText ?? (selectedKey !== undefined ? String(selectedKey) : \"\");\n\tconst showSearchValue = searchable && (open || currentQuery.length > 0);\n\tconst inputValue = showSearchValue ? currentQuery : selectedOption !== undefined ? displayText : \"\";\n\tconst showDisplayOverlay =\n\t\tselectedOption !== undefined &&\n\t\tdisplayContent !== undefined &&\n\t\textractPickerTextContent(displayContent) === undefined &&\n\t\t!showSearchValue;\n\tconst triggerController = usePickerTriggerController({\n\t\tmode: triggerMode,\n\t\topen,\n\t\tcurrentQuery,\n\t\thasDisplayValue: selectedOption !== undefined,\n\t\tinputRef,\n\t\tsetQuery,\n\t\topenList,\n\t\tclose,\n\t\ttoggleOpen\n\t});\n\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\tinputRef.current = node;\n\t};\n\tconst handleClear = () => {\n\t\tif (clearable) {\n\t\t\temitChange(undefined);\n\t\t}\n\n\t\tsetQuery(\"\");\n\t\tclose();\n\t};\n\n\treturn (\n\t\t<PickerField\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\tclassName={className}>\n\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PickerTriggerInput\n\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\treadOnly={!searchable}\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tplaceholder={selectedOption === undefined || showSearchValue ? placeholder : undefined}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\taria-autocomplete={searchable ? \"list\" : \"none\"}\n\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tinputClassName={cn(showDisplayOverlay && styles.inputWithOverlay, buttonClassName, \"textOverflow\")}\n\t\t\t\t\t\t\toverlay={showDisplayOverlay ? <div className={styles.valueOverlay}>{displayContent}</div> : undefined}\n\t\t\t\t\t\t\tendAdornment={\n\t\t\t\t\t\t\t\t<PickerTriggerActions\n\t\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}>\n\t\t\t\t\t\t\t\t\t{clearable && selectedOption !== undefined && !disabled ? (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={uiStyles.uiClearButton}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"select-clear-button\"\n\t\t\t\t\t\t\t\t\t\t\tdata-action=\"clear-select\"\n\t\t\t\t\t\t\t\t\t\t\tonMouseDown={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\thandleClear();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\taria-label=\"Очистить выбор\">\n\t\t\t\t\t\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</PickerTriggerActions>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\tif (!searchable) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerInputChange(event.target.value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\tonActivateWhenOpen: selectActiveOption,\n\t\t\t\t\t\t\t\t\tenableSpaceActivation: !searchable\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\tactiveOptionId={hasOptions ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\tclassName={cn(uiStyles.uiPopupOptions, optionsClassName)}\n\t\t\t\t\t\t\theader={renderPopupHeader}>\n\t\t\t\t\t\t\t<div className={cn(optionsContentClassName, \"h100 scrollable\")}>\n\t\t\t\t\t\t\t\t{hasOptions ? (\n\t\t\t\t\t\t\t\t\toptionSections.map((section, sectionIndex) => {\n\t\t\t\t\t\t\t\t\t\tconst groupLabelId = section.group ? `${listId}-group-${sectionIndex}` : undefined;\n\t\t\t\t\t\t\t\t\t\tconst optionNodes = section.items.map(({ option, index }) => {\n\t\t\t\t\t\t\t\t\t\t\tconst optionKey = getOptionKey(option);\n\t\t\t\t\t\t\t\t\t\t\tconst selected = selectedKey !== undefined && optionKey === selectedKey;\n\t\t\t\t\t\t\t\t\t\t\tconst active = index === activeIndex;\n\t\t\t\t\t\t\t\t\t\t\tconst optionDisabled = getOptionDisabled?.(option) ?? false;\n\t\t\t\t\t\t\t\t\t\t\tconst optionState = { active, selected, disabled: optionDisabled };\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={optionKey}\n\t\t\t\t\t\t\t\t\t\t\t\t\tid={getOptionId(listId, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tref={(node) => setOptionRef(index, node)}\n\t\t\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-disabled={optionDisabled || undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={getOptionAriaLabel?.(option)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuiStyles.uiPopupOption,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toptionDisabled && uiStyles.disabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive && uiStyles.uiPopupOptionActive,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tselected && uiStyles.selected,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetOptionClassName?.(option, optionState)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => selectOption(option)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{renderOption ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderOption(option, optionState)\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{selected ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CheckIcon className={uiStyles.uiPopupOptionIcon} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className={uiStyles.uiPopupOptionIcon} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={uiStyles.uiOptionText}>{getOptionLabel(option)}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getOptionCode && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={uiStyles.uiOptionCode}>{getOptionCode(option)}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\treturn section.group ? (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tkey={`group-${String(section.group.key)}-${sectionIndex}`}\n\t\t\t\t\t\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-labelledby={groupLabelId}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div id={groupLabelId} className={uiStyles.uiPopupGroupLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{section.group.label}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t{optionNodes}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Fragment key={`options-${sectionIndex}`}>{optionNodes}</Fragment>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<PickerStatus emptyState={emptyState} loadingState={loadingState} errorState={errorState} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n","import React from \"react\";\n\nimport { ODataSingleSelectProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { InputUILoading } from \"../input\";\nimport { UiBaseProps } from \"../types\";\n\nimport { useODataSelect } from \"./model/useODataSelect\";\nimport { Select } from \"./Select\";\nimport { SelectOptionContent } from \"./SelectOptionContent\";\n\ntype ODataSelectProps = Omit<ODataSingleSelectProps, \"value\"> & UiBaseProps<string | undefined> & { clearable?: boolean };\n\nfunction getODataOptionTextKey(item: CollectionItem | undefined, textKey: string, codeKey: string) {\n\tif (!item) {\n\t\treturn textKey || codeKey;\n\t}\n\n\treturn textKey || Object.keys(item).find((key) => key !== codeKey) || codeKey;\n}\n\nexport const ODataSelect: React.FC<ODataSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tsize,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tclearable\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\tif (odataModel.isLoading) {\n\t\treturn <InputUILoading size={size} label={label} description={description} />;\n\t}\n\n\tconst hideCode = segment.hideCode ?? odata.hideCode;\n\tconst resolvedTextKey = getODataOptionTextKey(odataModel.selectedItem ?? odataModel.options[0], odataModel.textKey, odataModel.codeKey);\n\n\treturn (\n\t\t<Select\n\t\t\tsize={size}\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\toptions={odataModel.options}\n\t\t\tvalue={odataModel.selectedItem}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tgetOptionKey={(item) => item[odataModel.codeKey]}\n\t\t\tgetOptionLabel={(item) => item[resolvedTextKey]}\n\t\t\tgetOptionCode={hideCode ? undefined : (item) => item[odataModel.codeKey]}\n\t\t\tgetOptionAriaLabel={(item) =>\n\t\t\t\thideCode || item[resolvedTextKey] === item[odataModel.codeKey]\n\t\t\t\t\t? String(item[resolvedTextKey])\n\t\t\t\t\t: `${item[resolvedTextKey]} ${item[odataModel.codeKey]}`\n\t\t\t}\n\t\t\trenderValue={(item) => (\n\t\t\t\t<SelectOptionContent label={item[resolvedTextKey]} code={hideCode ? undefined : item[odataModel.codeKey]} />\n\t\t\t)}\n\t\t\trenderOption={(item) => (\n\t\t\t\t<SelectOptionContent\n\t\t\t\t\tlabel={item[resolvedTextKey]}\n\t\t\t\t\tcode={hideCode ? undefined : item[odataModel.codeKey]}\n\t\t\t\t\thighlight={odataModel.debouncedQuery}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tsearchable\n\t\t\tquery={odataModel.query}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tdefaultFilter={false}\n\t\t\tdisabled={disabled || odataModel.isLoading}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\tloadingState=\"Загрузка...\"\n\t\t\terrorState={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t\temptyState={!odataModel.isLoading && !odataModel.isError ? \"Нет данных\" : undefined}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n};\n","import { Select } from \"./Select\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { SelectOptionKey } from \"./Select\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], SelectOptionKey> extends never ? never : K;\n}[keyof TOption];\n\ntype SerializableOptionValue<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>> = Extract<\n\tTOption[TOptionKey],\n\tSelectOptionKey\n>;\n\nexport interface SerializableSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends Omit<UiBaseProps<SerializableOptionValue<TOption, TOptionKey> | undefined>, \"onChange\"> {\n\toptions: readonly TOption[];\n\tonChange: (value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void;\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n\tclassName?: string;\n\tclearable?: boolean;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], SelectOptionKey> {\n\treturn option[optionKey] as Extract<TOption[TOptionKey], SelectOptionKey>;\n}\n\nfunction getSerializableOptionLabel<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>(option: TOption, optionLabel: TOptionLabel, optionKey: TOptionKey): string | number {\n\tconst label = option[optionLabel];\n\n\tif (typeof label === \"string\" || typeof label === \"number\") {\n\t\treturn label;\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn typeof key === \"string\" || typeof key === \"number\" ? key : String(key);\n}\n\nexport function SerializableSelect<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tplaceholder,\n\tsize,\n\toptions,\n\tvalue,\n\tonChange,\n\toptionKey,\n\toptionLabel,\n\trenderCode,\n\tclassName,\n\tclearable\n}: SerializableSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\tconst selectedOption =\n\t\tvalue === undefined ? undefined : options.find((option) => getSerializableOptionKey(option, optionKey) === value);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\toptions={options}\n\t\t\tvalue={selectedOption}\n\t\t\tonChange={(option: TOption | undefined) => onChange(option ? getSerializableOptionKey(option, optionKey) : undefined)}\n\t\t\tgetOptionKey={(option: TOption) => getSerializableOptionKey(option, optionKey)}\n\t\t\tgetOptionLabel={(option: TOption) => getSerializableOptionLabel(option, optionLabel, optionKey)}\n\t\t\tgetOptionCode={renderCode ? (option: TOption) => getSerializableOptionKey(option, optionKey) : undefined}\n\t\t\tclassName={className}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DLkjf7A9.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-5U72nYIV.js";import{n as o,t as s,ut as c}from"./lucide-react-p2Eti-TY.js";import{n as l,t as u}from"./ui.module-DS2qtZts.js";import{T as ee,b as te,d as ne,f as d,g as f,l as p,m,r as re,s as ie,t as h,v as ae}from"./picker-DiKffa5D.js";function oe({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[d(t(e)),d(n?.(e)),d(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}var g=t((()=>{h()})),_=t((()=>{g()}));function se(e,t){let n=[];return e.forEach((e,r)=>{let i=t?.(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}var v=t((()=>{})),y,b,x,S=t((()=>{y=`aEEqH1`,b=`_4HQKa7`,x={inputWithOverlay:y,valueOverlay:b}}));function C(e){let{label:t,description:n,disabled:r,placeholder:a,size:s,options:u,value:h,onChange:g,getOptionKey:_,getOptionLabel:v,getOptionCode:y,getOptionDisabled:b,getOptionAriaLabel:S,getOptionGroup:C,getOptionClassName:E,renderOption:D,renderValue:O,className:ce,buttonClassName:le,optionsClassName:ue,optionsContentClassName:de,searchable:k=!1,defaultFilter:fe=!0,query:pe,defaultQuery:me,onQuery:he,renderPopupHeader:A,emptyState:j,loadingState:M,errorState:N,placement:P=`bottom-start`,clearable:F=!1}=e,I=g,L=(0,w.useRef)(null),[R,ge]=(0,w.useState)(!1),z=k?`search-single`:`display`,B=h===void 0?void 0:_(h),V=B===void 0?void 0:u.find(e=>_(e)===B)??h,{query:H,setQuery:U}=ie({open:R,query:pe,defaultQuery:me,onQuery:he,triggerMode:z}),W=ne({options:u,query:H,enabled:k&&fe,getSearchText:e=>oe({option:e,getOptionLabel:v,getOptionCode:y,getOptionGroup:C})}),_e=se(W,C),{activeIndex:ve,context:ye,floatingStyles:be,getFloatingProps:xe,setReference:Se,setFloating:Ce,setOptionRef:we,close:G,openList:Te,toggleOpen:Ee,selectOption:De,selectActiveOption:Oe,handleReferenceKeyDown:ke,handleFloatingKeyDown:Ae,getOptionId:je,getActiveOptionId:K}=p({options:W,selectedIndex:B===void 0?-1:W.findIndex(e=>_(e)===B),open:R,onOpenChange:ge,getOptionDisabled:b,onSelect:I,disabled:r,placement:P,triggerMode:z}),q=W.length>0,J=V===void 0?void 0:v(V),Y=V===void 0?void 0:O?O(V):J,Me=d(J),Ne=V===void 0?void 0:d(y?.(V)),X=d(Y)??Me??Ne??(B===void 0?``:String(B)),Z=k&&(R||H.length>0),Pe=Z?H:V===void 0?``:X,Q=V!==void 0&&Y!==void 0&&d(Y)===void 0&&!Z,$=re({mode:z,open:R,currentQuery:H,hasDisplayValue:V!==void 0,inputRef:L,setQuery:U,openList:Te,close:G,toggleOpen:Ee}),Fe=e=>{L.current=e},Ie=()=>{F&&I(void 0),U(``),G()};return(0,T.jsx)(ee,{label:t,description:n,disabled:r,placeholder:a,size:s,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let s=`${e}-listbox`;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(m,{ref:Fe,rootRef:Se,id:e,type:`text`,disabled:r,readOnly:!k,autoComplete:`off`,role:`combobox`,value:Pe,placeholder:V===void 0||Z?a:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-haspopup":`listbox`,"aria-expanded":R,"aria-controls":R?s:void 0,"aria-autocomplete":k?`list`:`none`,"aria-activedescendant":R?K(s):void 0,inputClassName:i(Q&&x.inputWithOverlay,le,`textOverflow`),overlay:Q?(0,T.jsx)(`div`,{className:x.valueOverlay,children:Y}):void 0,endAdornment:(0,T.jsx)(f,{open:R,disabled:r,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,children:F&&V!==void 0&&!r?(0,T.jsx)(`button`,{type:`button`,className:l.uiClearButton,"data-ui":`select-clear-button`,"data-action":`clear-select`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),Ie()},"aria-label":`Очистить выбор`,children:(0,T.jsx)(o,{})}):null}),onChange:e=>{k&&$.handleTriggerInputChange(e.target.value)},onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{ke(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:Oe,enableSpaceActivation:!k})}}),(0,T.jsx)(te,{open:R,context:ye,floatingStyles:be,listId:s,labelId:t,descriptionId:n,activeOptionId:q?K(s):void 0,setFloating:Ce,getFloatingProps:xe,onKeyDown:Ae,className:i(l.uiPopupOptions,ue),header:A,children:(0,T.jsx)(`div`,{className:i(de,`h100 scrollable`),children:q?_e.map((e,t)=>{let n=e.group?`${s}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>{let n=_(e),r=B!==void 0&&n===B,a=t===ve,o=b?.(e)??!1,u={active:a,selected:r,disabled:o};return(0,T.jsx)(`div`,{id:je(s,t),ref:e=>we(t,e),role:`option`,"aria-selected":r,"aria-disabled":o||void 0,"aria-label":S?.(e),className:i(l.uiPopupOption,o&&l.disabled,a&&l.uiPopupOptionActive,r&&l.selected,E?.(e,u)),onClick:()=>De(e),children:D?D(e,u):(0,T.jsxs)(T.Fragment,{children:[r?(0,T.jsx)(c,{className:l.uiPopupOptionIcon}):(0,T.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,T.jsx)(`div`,{className:l.uiOptionText,children:v(e)}),y&&(0,T.jsx)(`div`,{className:l.uiOptionCode,children:y(e)})]})},n)});return e.group?(0,T.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,T.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,T.jsx)(w.Fragment,{children:r},`options-${t}`)}):(0,T.jsx)(ae,{emptyState:j,loadingState:M,errorState:N})})})]})}})}var w,T,E=t((()=>{w=e(n(),1),a(),s(),h(),u(),_(),v(),S(),T=r(),C.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
|
|
2
|
-
readonly key: SelectOptionKey;
|
|
3
|
-
readonly label: ReactNode;
|
|
4
|
-
}`,signature:{properties:[{key:`key`,value:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}],required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
5
|
-
active: boolean;
|
|
6
|
-
selected: boolean;
|
|
7
|
-
disabled: boolean;
|
|
8
|
-
}`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
9
|
-
active: boolean;
|
|
10
|
-
selected: boolean;
|
|
11
|
-
disabled: boolean;
|
|
12
|
-
}`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`ReactNode`}}},description:``},renderValue:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},className:{required:!1,tsType:{name:`string`},description:``},buttonClassName:{required:!1,tsType:{name:`string`},description:``},optionsClassName:{required:!1,tsType:{name:`string`},description:``},optionsContentClassName:{required:!1,tsType:{name:`string`},description:``},searchable:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},defaultFilter:{required:!1,tsType:{name:`boolean`},description:``},renderPopupHeader:{required:!1,tsType:{name:`ReactNode`},description:``},emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},loadingState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``},clearable:{required:!1,tsType:{name:`TClearable`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`unknown`},name:`value`}],return:{name:`void`}}},description:``}}}}));export{E as n,C as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{m as t,p as n}from"./iframe-DLkjf7A9.js";import{i as r,n as i,r as a,t as o}from"./chunk-3LY4VQVK-M6BQinGY.js";var s;e((()=>{a(),i(),t(),s=(0,n(r(),1).default)(2)(async(e,t)=>e===!1?t:o(t))}))();export{s as formatter};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{a as t,n,r}from"./Grid-Iuqk9TTe.js";var i=e((()=>{n(),t(),r()}));export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{P as t}from"./formatters-CGNSDKn9.js";var n=e((()=>{t()}));export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DLkjf7A9.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-5U72nYIV.js";import{ct as o,t as s}from"./lucide-react-p2Eti-TY.js";import{et as c,t as l}from"./formatters-CGNSDKn9.js";import{n as u,r as d,t as f}from"./floating-ui.react-D6FeyKn7.js";import{n as p,t as m}from"./ui.module-DS2qtZts.js";import{n as ee,r as te,t as h}from"./react-CyKnGS7r.js";import{l as g,o as _,r as v,u as y}from"./Input-BUCw6LuQ.js";import{t as b}from"./input-TIwx4iZp.js";import{n as x,r as ne}from"./hooks-DSj02t4H.js";function S({id:e,label:t,description:n,disabled:r,size:i,className:a,error:o,children:s}){let{controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f}=y({id:e,hasLabel:t!=null,hasDescription:!!n,hasError:!!o});return(0,re.jsx)(_,{label:t,description:n,disabled:r,size:i,className:a,error:o,controlId:c,labelId:l,descriptionId:u,errorId:d,children:s({controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f})})}var re,ie=t((()=>{b(),g(),re=r(),S.__docgenInfo={description:``,methods:[],displayName:`PickerField`,props:{id:{required:!1,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(context: PickerFieldContext) => ReactNode`,signature:{arguments:[{type:{name:`PickerFieldContext`},name:`context`}],return:{name:`ReactNode`}}},description:``}},composes:[`Omit`]}})),ae,C,oe=t((()=>{ae=e(n(),1),C=({as:e,children:t,...n})=>(0,ae.createElement)(e||`div`,{...n},t),C.__docgenInfo={description:``,methods:[],displayName:`PolymorphicComponent`,props:{as:{required:!1,tsType:{name:`E`},description:``}}}})),se=t((()=>{oe()})),w,T,E=t((()=>{n(),a(),se(),w=r(),T=({as:e,orientation:t=`horizontal`,className:n,...r})=>(0,w.jsx)(C,{as:e,"aria-orientation":t,className:i(n,t===`horizontal`?`separator`:`separatorVertical`),...r}),T.__docgenInfo={description:``,methods:[],displayName:`Separator`,props:{as:{required:!1,tsType:{name:`E`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"horizontal" | "vertical"`,elements:[{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"vertical"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``}}}})),D=t((()=>{E()})),O,k,A,j,M,N,P=t((()=>{O=`DRJ4hy`,k=`U4CULi`,A=`bupTWA`,j=`GkeyGF`,M=`_8F667e`,N={popupLayout:O,popupBody:k,status:A,statusError:j,triggerContainer:M}}));function ce(e){e.stopPropagation()}function F({open:e,context:t,floatingStyles:n,listId:r,labelId:a,descriptionId:o,activeOptionId:s,setFloating:c,getFloatingProps:l,onKeyDown:d,initialFocus:p=-1,returnFocus:m=!1,tabIndex:h=0,className:g,layoutClassName:_,headerClassName:v,bodyClassName:y,header:b,children:x}){return(0,I.jsx)(te,{children:e&&(0,I.jsx)(u,{children:(0,I.jsx)(f,{context:t,modal:!1,initialFocus:p,returnFocus:m,children:(0,I.jsx)(ee.div,{ref:c,style:n,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},...l({id:r,tabIndex:h,"aria-labelledby":a,"aria-describedby":o,"aria-activedescendant":s,onMouseDown:ce,onKeyDown:d,className:g}),children:(0,I.jsxs)(`div`,{className:i(N.popupLayout,_),children:[b?(0,I.jsxs)(`div`,{className:v,children:[b,(0,I.jsx)(T,{className:`marginBlockSm`})]}):(0,I.jsx)(`div`,{}),(0,I.jsx)(`div`,{className:i(N.popupBody,y),children:x})]})})})})})}var I,L=t((()=>{d(),a(),h(),D(),P(),I=r(),F.__docgenInfo={description:``,methods:[],displayName:`PickerPopup`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},context:{required:!0,tsType:{name:`FloatingContext`},description:``},floatingStyles:{required:!0,tsType:{name:`CSSProperties`},description:``},listId:{required:!0,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},activeOptionId:{required:!1,tsType:{name:`string`},description:``},setFloating:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: HTMLElement | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`HTMLElement | null`,elements:[{name:`HTMLElement`},{name:`null`}]},name:`node`}],return:{name:`void`}}},description:``},getFloatingProps:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(userProps?: Record<string, unknown>) => Record<string, unknown>`,signature:{arguments:[{type:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`},name:`userProps`}],return:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`}}},description:``},onKeyDown:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(event: KeyboardEvent<HTMLElement>) => void`,signature:{arguments:[{type:{name:`KeyboardEvent`,elements:[{name:`HTMLElement`}],raw:`KeyboardEvent<HTMLElement>`},name:`event`}],return:{name:`void`}}},description:``},initialFocus:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`-1`,computed:!1}},returnFocus:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},tabIndex:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},layoutClassName:{required:!1,tsType:{name:`string`},description:``},headerClassName:{required:!1,tsType:{name:`string`},description:``},bodyClassName:{required:!1,tsType:{name:`string`},description:``},header:{required:!1,tsType:{name:`ReactNode`},description:``},children:{required:!0,tsType:{name:`ReactNode`},description:``}}}}));function R({emptyState:e,loadingState:t,errorState:n}){let r=n??t??e;return r==null?null:(0,le.jsx)(`div`,{className:i(p.uiPopupOption,N.status,n!==void 0&&N.statusError),"aria-disabled":!0,children:r})}var le,z=t((()=>{a(),m(),P(),le=r(),R.__docgenInfo={description:``,methods:[],displayName:`PickerStatus`,props:{emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},loadingState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``}}}}));function B({open:e,disabled:t,children:n,onToggleMouseDown:r,onToggleClick:a,openAriaLabel:s=`Открыть список`,closeAriaLabel:c=`Закрыть список`}){return(0,V.jsxs)(`div`,{className:p.uiToggleButtonContainer,"data-disabled":t||void 0,children:[n,(0,V.jsx)(`div`,{className:p.uiButtonSeparator}),(0,V.jsx)(`button`,{type:`button`,"aria-label":e?c:s,className:p.uiToggleButton,onMouseDown:r,onClick:a,children:(0,V.jsx)(o,{className:i(p.uiToggleIcon,e&&p.uiToggleIconOpen)})})]})}var V,H=t((()=>{a(),s(),m(),V=r(),B.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerActions`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},children:{required:!1,tsType:{name:`ReactNode`},description:``},onToggleMouseDown:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLButtonElement`}],raw:`MouseEvent<HTMLButtonElement>`},name:`event`}],return:{name:`void`}}},description:``},onToggleClick:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},openAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Открыть список"`,computed:!1}},closeAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Закрыть список"`,computed:!1}}}}})),U,W,G,K=t((()=>{U=e(n(),1),a(),b(),m(),P(),W=r(),G=(0,U.forwardRef)(({rootRef:e,endAdornment:t,overlay:n,rootClassName:r,inputClassName:a,...o},s)=>(0,W.jsxs)(`div`,{ref:e,className:i(p.uiInputContainer,N.triggerContainer,r),children:[(0,W.jsx)(v,{endAdornment:t,children:({controlClassName:e})=>(0,W.jsx)(`input`,{...o,ref:s,className:i(p.uiInputWithToggle,e,a)})}),n]})),G.displayName=`PickerTriggerInput`,G.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerInput`,props:{rootRef:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(node: HTMLDivElement | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`HTMLDivElement | null`,elements:[{name:`HTMLDivElement`},{name:`null`}]},name:`node`}],return:{name:`void`}}},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},overlay:{required:!1,tsType:{name:`ReactNode`},description:``},rootClassName:{required:!1,tsType:{name:`string`},description:``},inputClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})),ue=t((()=>{}));function q(e){switch(e){case`search-single`:return{focusFloatingOnOpen:!1,restoreFocusOnClose:!1,resetQueryOnClose:!0,shouldOpenOnTriggerClick:()=>!1,shouldOpenOnInputChange:e=>!e,shouldFocusReferenceOnToggle:e=>!e,shouldSelectTriggerTextOnFocus:({open:e,currentQuery:t,hasDisplayValue:n})=>!e&&t.length===0&&n};case`search-multi`:return{focusFloatingOnOpen:!1,restoreFocusOnClose:!1,resetQueryOnClose:!0,shouldOpenOnTriggerClick:()=>!1,shouldOpenOnInputChange:e=>!e,shouldFocusReferenceOnToggle:e=>!e,shouldSelectTriggerTextOnFocus:()=>!1};default:return{focusFloatingOnOpen:!0,restoreFocusOnClose:!0,resetQueryOnClose:!1,shouldOpenOnTriggerClick:e=>!e,shouldOpenOnInputChange:()=>!1,shouldFocusReferenceOnToggle:()=>!1,shouldSelectTriggerTextOnFocus:()=>!1}}}var J=t((()=>{}));function Y(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(Y).filter(e=>!!e);return t.length?t.join(` `):void 0}}var de=t((()=>{}));function fe(e){return c((Array.isArray(e)?e:[e]).filter(Boolean).join(` `))}function pe({options:e,query:t,enabled:n=!0,getSearchText:r}){let i=c(t);return(0,me.useMemo)(()=>!n||!i?[...e]:e.filter(e=>fe(r(e)).includes(i)),[n,r,i,e])}var me,he=t((()=>{me=e(n(),1),l()}));function ge(e){let t=e.triggerMode?q(e.triggerMode):void 0;return ne({...e,focusFloatingOnOpen:e.focusFloatingOnOpen??t?.focusFloatingOnOpen,restoreFocusOnClose:e.restoreFocusOnClose??t?.restoreFocusOnClose})}var X=t((()=>{x(),J()}));function _e({open:e,query:t,defaultQuery:n,onQuery:r,resetOnClose:i,triggerMode:a}){let o=(0,Z.useRef)(!1),s=t!==void 0,[c,l]=(0,Z.useState)(n??``),u=s?t??``:c,d=(0,Z.useEffectEvent)(()=>l(``)),f=i??(a?q(a).resetQueryOnClose:!0);(0,Z.useEffect)(()=>{o.current&&!e&&f&&(s||d(),r?.(``)),o.current=e},[s,r,e,f]);let p=e=>{s||l(e),r?.(e)};return{query:u,setQuery:p,clearQuery:()=>p(``)}}var Z,ve=t((()=>{Z=e(n(),1),J()}));function ye({value:e,open:t,onCommit:n,onOpen:r,onClose:i,isEqual:a}){let o=(0,Q.useRef)(!1),[s,c]=(0,Q.useState)(e),l=(0,Q.useEffectEvent)(e=>c(e));return(0,Q.useEffect)(()=>{t||l(e)},[t,e]),(0,Q.useEffect)(()=>{o.current&&!t&&(a(s,e)||n(s),i?.(s)),o.current=t},[s,a,i,n,t,e]),{draftValue:s,setDraftValue:c,prepareOpen:()=>{c(e),r?.()}}}var Q,be=t((()=>{Q=e(n(),1)}));function xe(e){requestAnimationFrame(()=>{e.current?.focus()})}function Se({mode:e,open:t,currentQuery:n,hasDisplayValue:r,inputRef:i,setQuery:a,openList:o,close:s,toggleOpen:c,onBeforeOpen:l}){let u=q(e),d=()=>{if(l?.(),o){o();return}c?.()},f=()=>{if(s){s();return}c?.()},p=()=>{t?f():d(),u.shouldFocusReferenceOnToggle(t)&&xe(i)};return{policy:u,handleTriggerInputChange:e=>{a?.(e),u.shouldOpenOnInputChange(t)&&d()},handleTriggerClick:()=>{u.shouldOpenOnTriggerClick(t)&&d()},handleTriggerFocus:e=>{u.shouldSelectTriggerTextOnFocus({open:t,currentQuery:n,hasDisplayValue:r})&&requestAnimationFrame(()=>{e.select()})},handleToggleMouseDown:e=>{e.preventDefault()},handleToggleClick:()=>{p()},handleTriggerKeyDown:({event:e,onActivateWhenOpen:n,enableSpaceActivation:r=!1,enableClosedArrowDownOpen:i=!1,suppressClosedArrowUp:a=!1})=>{if(!t&&a&&e.key===`ArrowUp`){e.preventDefault();return}if(!t&&i&&e.key===`ArrowDown`){e.preventDefault(),p();return}if(e.key===`Enter`){e.preventDefault(),t?n?.():p();return}r&&e.key===` `&&(e.preventDefault(),t?n?.():p())},toggleTrigger:p}}var $=t((()=>{J()})),Ce=t((()=>{J(),de(),he(),X(),ve(),be(),$()})),we=t((()=>{ie(),L(),z(),H(),K(),ue(),Ce()}));export{T as C,ie as E,D as S,S as T,H as _,ye as a,F as b,X as c,pe as d,Y as f,B as g,K as h,be as i,ge as l,G as m,$ as n,ve as o,de as p,Se as r,_e as s,we as t,he as u,R as v,E as w,L as x,z as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{n as t}from"./Select-B3mAjoSF.js";import{n}from"./ODataSelect-YSvYEbvr.js";import{n as r}from"./SerializableSelect-DxFWB3Yw.js";var i=e((()=>{n(),t(),r()}));export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{a as t,r as n}from"./DateInput-BTsGvu-I.js";var r=e((()=>{t(),n()}));export{r as t};
|