@ryuzaki13/react-foundation-ui 1.8.1 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-search/index.js +8 -8
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +1 -1
- package/dist/button/index.js +1 -1
- package/dist/check-box/index.js +1 -1
- package/dist/chunks/{CalendarView-DGElHRTJ.js → CalendarView-BJx6akIp.js} +2 -2
- package/dist/chunks/{CalendarView-DGElHRTJ.js.map → CalendarView-BJx6akIp.js.map} +1 -1
- package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/{TextEditorLexicalClient-C6b5N8AO.js → TextEditorLexicalClient-Ca89d-Db.js} +6 -6
- package/dist/chunks/{TextEditorLexicalClient-C6b5N8AO.js.map → TextEditorLexicalClient-Ca89d-Db.js.map} +1 -1
- package/dist/chunks/{badge-DMM8cOHd.js → badge-DUI2ET6q.js} +2 -2
- package/dist/chunks/{badge-DMM8cOHd.js.map → badge-DUI2ET6q.js.map} +1 -1
- package/dist/chunks/{base-table-DNSYOO9t.js → base-table-CsnUiMTe.js} +2 -2
- package/dist/chunks/{base-table-DNSYOO9t.js.map → base-table-CsnUiMTe.js.map} +1 -1
- package/dist/chunks/{button-BsvHGWPc.js → button-C53OkqTg.js} +3 -3
- package/dist/chunks/{button-BsvHGWPc.js.map → button-C53OkqTg.js.map} +1 -1
- package/dist/chunks/{check-box-sfGjYczQ.js → check-box-CC8CDnSR.js} +3 -3
- package/dist/chunks/{check-box-sfGjYczQ.js.map → check-box-CC8CDnSR.js.map} +1 -1
- package/dist/chunks/context-menu-C8sA7xCN.js +525 -0
- package/dist/chunks/context-menu-C8sA7xCN.js.map +1 -0
- package/dist/chunks/{date-input-C4GcKul6.js → date-input-g6l1iDmf.js} +5 -5
- package/dist/chunks/{date-input-C4GcKul6.js.map → date-input-g6l1iDmf.js.map} +1 -1
- package/dist/chunks/defaultRenderers-Dbhg2hHc.js +38 -0
- package/dist/chunks/defaultRenderers-Dbhg2hHc.js.map +1 -0
- package/dist/chunks/{input-CCdBtl-C.js → input-d08WN5FV.js} +2 -2
- package/dist/chunks/{input-CCdBtl-C.js.map → input-d08WN5FV.js.map} +1 -1
- package/dist/chunks/{input-files-TXdXrSAs.js → input-files-_NdSQM_3.js} +3 -3
- package/dist/chunks/{input-files-TXdXrSAs.js.map → input-files-_NdSQM_3.js.map} +1 -1
- package/dist/chunks/{input-search-Ca8iqeK2.js → input-search-BjtTMoRu.js} +2 -2
- package/dist/chunks/{input-search-Ca8iqeK2.js.map → input-search-BjtTMoRu.js.map} +1 -1
- package/dist/chunks/{modal-DLRYn-Lr.js → modal-Bar-j5a4.js} +2 -2
- package/dist/chunks/{modal-DLRYn-Lr.js.map → modal-Bar-j5a4.js.map} +1 -1
- package/dist/chunks/multi-select-Cvjz9W07.js +466 -0
- package/dist/chunks/multi-select-Cvjz9W07.js.map +1 -0
- package/dist/chunks/picker-0I1yMKIY.js +435 -0
- package/dist/chunks/picker-0I1yMKIY.js.map +1 -0
- package/dist/chunks/{radio-group-BAeJjyZ5.js → radio-group-DhpP7JSJ.js} +2 -2
- package/dist/chunks/{radio-group-BAeJjyZ5.js.map → radio-group-DhpP7JSJ.js.map} +1 -1
- package/dist/chunks/select-CUQ91FIc.js +363 -0
- package/dist/chunks/select-CUQ91FIc.js.map +1 -0
- package/dist/chunks/{table-RO4dfMAj.js → table-z9kyd9U3.js} +2 -2
- package/dist/chunks/{table-RO4dfMAj.js.map → table-z9kyd9U3.js.map} +1 -1
- package/dist/chunks/{ui.module-DHVTOqZ0.js → ui.module-BsDio9A3.js} +4 -3
- package/dist/chunks/ui.module-BsDio9A3.js.map +1 -0
- package/dist/chunks/{uiClasses-UkaejTdf.js → uiClasses-BVwFzzsr.js} +2 -2
- package/dist/chunks/{uiClasses-UkaejTdf.js.map → uiClasses-BVwFzzsr.js.map} +1 -1
- package/dist/chunks/useODataSelectBase-DR4PrY1j.js +117 -0
- package/dist/chunks/useODataSelectBase-DR4PrY1j.js.map +1 -0
- package/dist/context-menu/components/ContextMenu.d.ts +2 -1
- package/dist/context-menu/components/ContextMenu.d.ts.map +1 -1
- package/dist/context-menu/components/DropdownMenu.d.ts +2 -1
- package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -1
- package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
- package/dist/context-menu/components/MenuItem.d.ts +6 -6
- package/dist/context-menu/components/MenuItem.d.ts.map +1 -1
- package/dist/context-menu/components/MenuRoot.d.ts +1 -1
- package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +3 -3
- package/dist/disclosure/index.js +2 -2
- package/dist/drop-zone/index.js +1 -1
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/image/index.js +4 -4
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +2 -2
- package/dist/input-file/index.js +2 -2
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +2 -2
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +66 -68
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
- package/dist/listbox/Listbox.d.ts +1 -1
- package/dist/listbox/Listbox.d.ts.map +1 -1
- package/dist/listbox/index.js +71 -59
- package/dist/listbox/index.js.map +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +2 -2
- package/dist/multi-select/ui/MultiSelect.d.ts +11 -1
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/defaultRenderers.d.ts +6 -4
- package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -1
- package/dist/multi-select/ui/index.d.ts +0 -1
- package/dist/multi-select/ui/index.d.ts.map +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/option/CustomOptionButton.d.ts +6 -0
- package/dist/option/CustomOptionButton.d.ts.map +1 -0
- package/dist/option/Option.d.ts +14 -0
- package/dist/option/Option.d.ts.map +1 -0
- package/dist/option/OptionButton.d.ts +8 -0
- package/dist/option/OptionButton.d.ts.map +1 -0
- package/dist/option/OptionCode.d.ts +6 -0
- package/dist/option/OptionCode.d.ts.map +1 -0
- package/dist/option/OptionContent.d.ts +19 -0
- package/dist/option/OptionContent.d.ts.map +1 -0
- package/dist/option/OptionHotkey.d.ts +6 -0
- package/dist/option/OptionHotkey.d.ts.map +1 -0
- package/dist/option/OptionIcon.d.ts +6 -0
- package/dist/option/OptionIcon.d.ts.map +1 -0
- package/dist/option/OptionLink.d.ts +8 -0
- package/dist/option/OptionLink.d.ts.map +1 -0
- package/dist/option/OptionText.d.ts +6 -0
- package/dist/option/OptionText.d.ts.map +1 -0
- package/dist/option/index.d.ts +10 -0
- package/dist/option/index.d.ts.map +1 -0
- package/dist/option/index.js +112 -0
- package/dist/option/index.js.map +1 -0
- package/dist/picker/PickerClearButton.d.ts +9 -0
- package/dist/picker/PickerClearButton.d.ts.map +1 -0
- package/dist/picker/PickerOptions.d.ts +22 -0
- package/dist/picker/PickerOptions.d.ts.map +1 -0
- package/dist/picker/PickerPlaceholder.d.ts +14 -0
- package/dist/picker/PickerPlaceholder.d.ts.map +1 -0
- package/dist/picker/PickerPopup.d.ts +4 -3
- package/dist/picker/PickerPopup.d.ts.map +1 -1
- package/dist/picker/PickerSelectedToken.d.ts +7 -0
- package/dist/picker/PickerSelectedToken.d.ts.map +1 -0
- package/dist/picker/PickerTrigger.d.ts +29 -0
- package/dist/picker/PickerTrigger.d.ts.map +1 -0
- package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
- package/dist/picker/PickerTriggerInput.d.ts +1 -2
- package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
- package/dist/picker/index.d.ts +5 -0
- package/dist/picker/index.d.ts.map +1 -1
- package/dist/picker/index.js +2 -2
- package/dist/picker/model/extractPickerTextContent.d.ts +1 -1
- package/dist/picker/model/extractPickerTextContent.d.ts.map +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/PresetSelect.d.ts +1 -1
- package/dist/preset-select/PresetSelect.d.ts.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/preset-select/index.js.map +1 -1
- package/dist/radio-button/index.js +2 -2
- package/dist/radio-group/index.js +1 -1
- package/dist/select/Select.d.ts +4 -2
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/SelectOptionGroup.d.ts +1 -1
- package/dist/select/SelectOptionGroup.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/select/model/useODataSelectBase.d.ts.map +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +3 -3
- package/dist/state-select/StateSelect.d.ts +1 -1
- package/dist/state-select/StateSelect.d.ts.map +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/state-select/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +2 -2
- package/dist/tag-input/index.js +2 -2
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +2 -2
- package/dist/toggle/index.js +1 -1
- package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -1
- package/dist/tree-select/TreeNodeContent.d.ts +2 -1
- package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
- package/dist/tree-select/TreePickerBase.d.ts +4 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +322 -353
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +5 -1
- package/src/styles/themes/_interactive-surface.scss +67 -0
- package/storybook-static/assets/{Badge-vnYXe1um.js → Badge-Wsl03RiZ.js} +1 -1
- package/storybook-static/assets/{Badge.stories-5LcplF_Q.js → Badge.stories-C5FJ05zx.js} +1 -1
- package/storybook-static/assets/{BadgeList-B1Mn9GtM.js → BadgeList-DHcmb--r.js} +1 -1
- package/storybook-static/assets/{Button-tokZDQsV.js → Button-9Vdg-8pF.js} +1 -1
- package/storybook-static/assets/{Button-Ez6zTRLH.js → Button-CEzU6vMY.js} +1 -1
- package/storybook-static/assets/{Button.stories-BeJ5wldz.js → Button.stories-BfDF7T_l.js} +1 -1
- package/storybook-static/assets/{CalendarView-BYiJjzKd.js → CalendarView-DCLQ6cmR.js} +1 -1
- package/storybook-static/assets/{CheckBox-BFCmk9Is.js → CheckBox-BJ3STl44.js} +1 -1
- package/storybook-static/assets/CheckBox-DWrG0yT0.css +1 -0
- package/storybook-static/assets/{CheckBox-O5kReKiZ.js → CheckBox-UlZDcbgz.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-BUNYAiF-.js → CheckBox.stories-Pt5RIIb4.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-CYSLqqAa.js → Color-6AOWCN3U-3Ir6qwTW.js} +1 -1
- package/storybook-static/assets/ContextMenu-BrYtLHPB.css +1 -0
- package/storybook-static/assets/{ContextMenu-D7IH0vrL.js → ContextMenu-CU7qp0QU.js} +1 -1
- package/storybook-static/assets/ContextMenu-teXimUtT.js +1 -0
- package/storybook-static/assets/ContextMenu.stories-BhkVXZCg.js +37 -0
- package/storybook-static/assets/CustomOptionButton-BWYYtI_M.js +1 -0
- package/storybook-static/assets/{DateInput-xKfdW4xy.js → DateInput-B0xrPmg8.js} +1 -1
- package/storybook-static/assets/{DateInput-Clx9NJfT.js → DateInput-CRNvZef4.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-VgCgoB2M.js → DateInput.stories-CrMRn_FQ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-PvUDbbbE.js → DateRangePresetSelect-B96SINg3.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CalAPOdY.js → DateRangePresetSelect-BGdt7rCz.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-B20eqYGr.js +19 -0
- package/storybook-static/assets/{Detail-Bls5nJys.js → Detail-CUNNfYz6.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BS7JQ0sv.js → Detail.stories-DPp7roXv.js} +1 -1
- package/storybook-static/assets/{Dialog-DzFUQBt1.js → Dialog-B7eTlIWU.js} +1 -1
- package/storybook-static/assets/{Dialog-T74XF-bA.js → Dialog-DdONtJUb.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-DwAyLLWR.js → Dialog.stories-CF6Q0tJ-.js} +1 -1
- package/storybook-static/assets/{Disclosure-DukYcfZ8.js → Disclosure-BI4KMSDK.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BwbQhJLc.js → Disclosure.stories-BaTneJlv.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-C2j4-sfq.js → DisclosureGroup-Dx2-SHha.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-aOEkU93H.js → DocsRenderer-JROSPFPF-mMjwDILp.js} +1 -1
- package/storybook-static/assets/{DropZone-DmXfqTac.js → DropZone-BizNinsQ.js} +1 -1
- package/storybook-static/assets/{DropZone-CX6FCvI6.js → DropZone-D93x3skJ.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-CWUYTr9y.js → DropZone.stories-Dn72HUME.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-9_GcY2uX.js → DropdownMenu-Bpjyamf_.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-nt3MqFv9.js → ExpandableActionPanel-Q4xXTfPB.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-olHfqsW_.js → ExpandableActionPanel.stories-Dr40xqrz.js} +1 -1
- package/storybook-static/assets/{Flex-RLn0K4Ow.js → Flex-Qj0CmbNT.js} +1 -1
- package/storybook-static/assets/{Flex.stories-DQDMHquA.js → Flex.stories-CMB4ZAgy.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-C3zX8ub-.js → FloatingPopover-jH57LEGX.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-B4pCfcrR.js → FormattedTableCell-vbqJ5gib.js} +1 -1
- package/storybook-static/assets/{Grid-tCvypgeR.js → Grid-AZBb1w5n.js} +1 -1
- package/storybook-static/assets/{Grid.stories-B5vW8L5j.js → Grid.stories-BaeYzAP-.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-ZYBRPrX5.js → ImageCropper.stories-Da9IaNLO.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BNfa_o00.js → ImageRenderer-CNFqjqvE.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Dpnwae9g.js → ImageRenderer.stories-8pPWqLHi.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-B0AdmHu8.js → ImageView.stories-P0OBwcHv.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-BjS-HrS8.js → ImageViewer.stories-A8gBQaCk.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CUjlGhkL.js → ImageViewerRuntime-C2LHl9xa.js} +1 -1
- package/storybook-static/assets/{Input-BfxuEl-U.js → Input-LI8Ij2VV.js} +1 -1
- package/storybook-static/assets/{Input-BZvdvztj.js → Input-X5FLaExp.js} +1 -1
- package/storybook-static/assets/{Input.stories-CRyRl5-A.js → Input.stories-r4hSNMWI.js} +1 -1
- package/storybook-static/assets/{InputDateTime-BoHXIqs0.js → InputDateTime-B9IQGLxQ.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-4TKy1puk.js → InputDateTime.stories-t-IFoW6A.js} +1 -1
- package/storybook-static/assets/{InputFile-9rfT18Tp.js → InputFile-YhjpMsir.js} +1 -1
- package/storybook-static/assets/{InputFile-cHVEMDCa.js → InputFile-yUYuRSfc.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Dfz4dP6-.js → InputFile.stories-DvMCOp6p.js} +1 -1
- package/storybook-static/assets/{InputFiles-B7hAFUUH.js → InputFiles-Dq9QZAWM.js} +1 -1
- package/storybook-static/assets/{InputFiles-D-yaCNy7.js → InputFiles-b6Ne7Ph9.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BuyS7aob.js → InputFiles.stories-Q7rdTg-e.js} +1 -1
- package/storybook-static/assets/{InputFilesList-AVN7l6tF.js → InputFilesList-u59R9lsq.js} +1 -1
- package/storybook-static/assets/{InputImage-B9XqXq0w.js → InputImage-BTap4i1_.js} +1 -1
- package/storybook-static/assets/{InputImage-HJDF6igx.js → InputImage-_b_bmfXz.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-BV70MC-m.js → InputImage.stories-F08TWbxk.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-CHY0kEDq.js → InteractiveComponents-CpJd5e3W.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-D6arBycE.js → InteractiveComponents.stories-CM9yNzcF.js} +1 -1
- package/storybook-static/assets/LayoutPicker-8Q1MpMYR.js +376 -0
- package/storybook-static/assets/LayoutPicker-BY4-fUQa.css +1 -0
- package/storybook-static/assets/{LayoutPicker-SjhPWivQ.js → LayoutPicker-vwoAIGrk.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-CbEGkcsV.js → LayoutPicker.stories-BW8B8i8S.js} +1 -1
- package/storybook-static/assets/{Listbox-C3sJ_hRZ.js → Listbox-Cf_DMAva.js} +1 -1
- package/storybook-static/assets/Listbox-D7r9R1Of.js +1 -0
- package/storybook-static/assets/{Listbox.stories-CVdUd7oX.js → Listbox.stories-CxYyfkFU.js} +1 -1
- package/storybook-static/assets/{Modal-0PfZiQTc.js → Modal-BaprwyBJ.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CVsQnsPB.js → Modal.stories-Rn_bgNdm.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-CtrgehPS.js → ModalManagerProvider-BoJChAx2.js} +1 -1
- package/storybook-static/assets/MultiSelect-CILXhKyj.js +2 -0
- package/storybook-static/assets/{MultiSelect-C4uTzWsY.js → MultiSelect-CU7avopN.js} +1 -1
- package/storybook-static/assets/MultiSelect-DI_UD1B-.css +1 -0
- package/storybook-static/assets/{MultiSelect.stories-BbRKK0p6.js → MultiSelect.stories-DFtFExi3.js} +1 -1
- package/storybook-static/assets/{NoData-FOwrLS3D.js → NoData-u6T3MI60.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CvUyoPxm.js → NotificationsHost-63IJh9Kr.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-CxAmUl63.js → NotificationsHost.stories-CRKVOYWB.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-MtLFqFdV.js → ODataMultiSelect-tfqbyVgv.js} +1 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DuC1gg-Q.js +126 -0
- package/storybook-static/assets/{ODataSelect-C2mNXOs7.js → ODataSelect-0ax3OIQy.js} +1 -1
- package/storybook-static/assets/ODataSelect.stories-aGZEvBIO.js +148 -0
- package/storybook-static/assets/{ODataTreeMultiSelect-DKuQpEHJ.js → ODataTreeMultiSelect-C4ZN4DaL.js} +1 -1
- package/storybook-static/assets/ODataTreeMultiSelect.stories-BThoYYsE.js +74 -0
- package/storybook-static/assets/{ODataTreeSelect-iOpfYI9F.js → ODataTreeSelect-DvrUSJsi.js} +1 -1
- package/storybook-static/assets/ODataTreeSelect.stories-B9582VZ6.js +46 -0
- package/storybook-static/assets/{OneStepScroller-BMbG0e_H.js → OneStepScroller-BoIh7KcH.js} +1 -1
- package/storybook-static/assets/Option-CJBK9i2B.css +1 -0
- package/storybook-static/assets/Option-DqmRqyOQ.js +10 -0
- package/storybook-static/assets/OptionButton-CQVIwI2y.js +1 -0
- package/storybook-static/assets/{PeriodSelect-Cs81vXtY.js → PeriodSelect-CdTxjZC3.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-MupKtCZ2.js → PeriodSelect-Dw3EsMrL.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-B2FDkAfy.js → PeriodSelect.stories-DYinImmY.js} +1 -1
- package/storybook-static/assets/PickerTriggerActions-B0z5qfFF.js +1 -0
- package/storybook-static/assets/{Popover-UdAXxj_x.js → Popover-0xwjVe6K.js} +1 -1
- package/storybook-static/assets/{Popover-dlyvIeXz.js → Popover-ijEoQcUp.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CO2yrZc-.js → Popover.stories-CMNjjwu5.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Bbgpqy-r.js → PresetRangeDateInput-CdvdO4mf.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-TTU2ggx2.js → PresetRangeDateInput-DysqM_NV.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DUMiMPe7.js → PresetRangeDateInput.stories-nVojLSRm.js} +1 -1
- package/storybook-static/assets/{PresetSelect-DmdRTAVo.js → PresetSelect-mjBaMbt6.js} +1 -1
- package/storybook-static/assets/{RadioButton-CsZACDyv.js → RadioButton-CVGKMhGV.js} +1 -1
- package/storybook-static/assets/{RadioButton-CMxc7Jvy.js → RadioButton-jB744vXz.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-Aav_OAcv.js → RadioButton.stories-CJsU4D3L.js} +1 -1
- package/storybook-static/assets/{RadioGroup-C34FTwLU.js → RadioGroup-BGF3aoOc.js} +1 -1
- package/storybook-static/assets/{RadioGroup-U2EEs5od.js → RadioGroup-DbqvBGw3.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-wL2AX-Yg.js → RadioGroup.stories-Bkny6-9V.js} +1 -1
- package/storybook-static/assets/{Scrollable-DUOHq_cZ.js → Scrollable-DZp3ByoS.js} +1 -1
- package/storybook-static/assets/{Select-CaoNBi5X.js → Select-BJcT2K35.js} +1 -1
- package/storybook-static/assets/Select-CcuhYAW8.js +12 -0
- package/storybook-static/assets/{Select.stories-Db-PRiir.js → Select.stories-BowB7kdj.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-HSwx4Kn2.js → SerializableSelect-DRczsfxk.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DdHotcES.js → SerializableSelect.stories-BcYeXF_R.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-MYajYmv1.js → SingleDateTimeInput-HDsmYVP2.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CQVoGA2w.js → SingleDateTimeInput-pHA1ci5g.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BbUphbSp.js → SingleDateTimeInput.stories-KUrLpnh_.js} +1 -1
- package/storybook-static/assets/{Slider-BrQ4ksxF.js → Slider-DaJGOEf-.js} +1 -1
- package/storybook-static/assets/{Slider-s7ST-3RJ.js → Slider-XnQRU_In.js} +1 -1
- package/storybook-static/assets/{Slider.stories-w50A1paF.js → Slider.stories-ByS4Bo7v.js} +1 -1
- package/storybook-static/assets/{SliderInput-1_Egcch8.js → SliderInput-BjyCba0D.js} +1 -1
- package/storybook-static/assets/{SliderInput-Cnm3KcyF.js → SliderInput-Dan5pyQh.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-DLBBUxKz.js → SliderInput.stories-d4F5pqct.js} +1 -1
- package/storybook-static/assets/{Sortable-B0TvDh0j.js → Sortable-Bdzx4D0R.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-B31jbM4x.js → Sortable.stories-BIhgYQ1m.js} +1 -1
- package/storybook-static/assets/{Splitter-D4B3BVbz.js → Splitter-B3hepEkw.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-szzG_E9V.js → Splitter.stories-L6R3ImTr.js} +1 -1
- package/storybook-static/assets/{StateSelect-BNneTJ8H.js → StateSelect-C4oHSG2B.js} +1 -1
- package/storybook-static/assets/{StateSelect-Ceh8_VLn.js → StateSelect-CylM2NVF.js} +3 -3
- package/storybook-static/assets/{StateSelect.stories-CJxr-Qm_.js → StateSelect.stories-Djw_nuLJ.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-Cwdk9yWF.js → StringToggle.stories-pqZzNPRQ.js} +1 -1
- package/storybook-static/assets/{Switch-uGSRbqVn.js → Switch-BK5DQYpV.js} +1 -1
- package/storybook-static/assets/{Switch-f5NHm5hJ.js → Switch-BkHwzkeD.js} +1 -1
- package/storybook-static/assets/{Switch.stories-HaYKntQH.js → Switch.stories-BG1MHajd.js} +1 -1
- package/storybook-static/assets/{Table-DxQuA1Dc.js → Table-BQPiMPmF.js} +1 -1
- package/storybook-static/assets/{Table.stories-SMhKCmIb.js → Table.stories-b5gmGDu_.js} +1 -1
- package/storybook-static/assets/{Tabs-BDX7aIIu.js → Tabs-B13rDpZt.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-CjlYBZ8E.js → Tabs.stories-D0sg-2Nx.js} +1 -1
- package/storybook-static/assets/{TabsBox-t8UA3Ghh.js → TabsBox-DZwTlYNa.js} +1 -1
- package/storybook-static/assets/{TagInput-YHV8sAGl.js → TagInput-RYhIr0kM.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-VKkEKC9A.js → TagInput.stories-7iTWdjmj.js} +1 -1
- package/storybook-static/assets/{Text-BQ5vHbkZ.js → Text-5-YdhIB8.js} +1 -1
- package/storybook-static/assets/{Textarea-ogSh20Tb.js → Textarea-0L2M-xFG.js} +1 -1
- package/storybook-static/assets/{Textarea-BY_dHgap.js → Textarea-pQp1ju2W.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-BixCwInt.js → Textarea.stories-pJFWbXcf.js} +1 -1
- package/storybook-static/assets/{TimePanel-CgR59Au6.js → TimePanel-DlfW-4Rv.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-D3uV3m77.js → TimePanel.stories-DpXHb66k.js} +1 -1
- package/storybook-static/assets/{Toggle-Cit9qQ37.js → Toggle-CwgQ0NbP.js} +1 -1
- package/storybook-static/assets/{Toggle-BbYcoBEJ.js → Toggle-Q04RQyAN.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-uPLdFwPH.js → Toggle.stories-DOYwhorJ.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-RMw3Sgov.js → TreeMultiSelect--Z9jdUna.js} +1 -1
- package/storybook-static/assets/TreeMultiSelect-CcBXMmXH.js +1 -0
- package/storybook-static/assets/{TreeMultiSelect.stories-eVCsLnck.js → TreeMultiSelect.stories-CSlNe1qA.js} +1 -1
- package/storybook-static/assets/TreePickerBase-B6DED6Hz.css +1 -0
- package/storybook-static/assets/TreePickerBase-BBHbtNFV.js +34 -0
- package/storybook-static/assets/{TreeSelect-MAH_yWl9.js → TreeSelect-BMcChauO.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CAWkriLu.js → TreeSelect-DMC-rviy.js} +1 -1
- package/storybook-static/assets/TreeSelect.stories-68LYkP9A.js +32 -0
- package/storybook-static/assets/{TreeTable-0VRrM8GW.js → TreeTable-DNArfw0m.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-CNS5t3Hd.js → TreeTable.stories-GybZTfJf.js} +1 -1
- package/storybook-static/assets/{async-D1pthPMH.js → async-BpUNPciD.js} +1 -1
- package/storybook-static/assets/{blocks-DGyM6J7r.js → blocks-CdL0FBl-.js} +3 -3
- package/storybook-static/assets/{browserAndReact-nVftiNpl.js → browserAndReact-DJiCma8q.js} +1 -1
- package/storybook-static/assets/{check-CiBhUcLr.js → check-Bff_8tRJ.js} +1 -1
- package/storybook-static/assets/{chevron-down-B5rz2XNJ.js → chevron-down-D9beWxJi.js} +1 -1
- package/storybook-static/assets/{chevron-left-CzhF1KUP.js → chevron-left-0YewhZTT.js} +1 -1
- package/storybook-static/assets/{chevron-right-B0yOnjFl.js → chevron-right-_-7FrDV5.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-8PHxgOk1.js → chunk-W22LQPXL-O2d-a7Cd.js} +1 -1
- package/storybook-static/assets/{circle-alert-BoM4TTd8.js → circle-alert-Ch96LToC.js} +1 -1
- package/storybook-static/assets/{circle-check-Dehe_1cN.js → circle-check-a4WDWsNJ.js} +1 -1
- package/storybook-static/assets/{components-pGFA2Z8i.js → components-DdhcMCr2.js} +3 -3
- package/storybook-static/assets/{contextMenu-CVWcJjzy.js → contextMenu-BGjkv4UB.js} +1 -1
- package/storybook-static/assets/defaultRenderers-V5HI39JH.js +1 -0
- package/storybook-static/assets/{download-OLJFBMAt.js → download-CX1IvM3C.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-BA3jxJBm.js → filesAndExcel-dK5pwBOD.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CdJawQTm.js → floating-ui.react-CxLdvcYS.js} +1 -1
- package/storybook-static/assets/{formatters-wR_e2lQa.js → formatters-j9sx7DvH.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-C4C-phHX.js → formatters-runtime-CHMYu4ZC.js} +1 -1
- package/storybook-static/assets/{foundationLib-Bz2ZS9e8.js → foundationLib-C_06ZSSf.js} +1 -1
- package/storybook-static/assets/{hooks-B3pvBii1.js → hooks-Bykafh9C.js} +1 -1
- package/storybook-static/assets/{iframe-Baz8D-0E.css → iframe-BIt4o49Q.css} +1 -1
- package/storybook-static/assets/{iframe-CE1ro1AE.js → iframe-CIzkWNwp.js} +3 -3
- package/storybook-static/assets/iframe-sQ6b5u6U.js +1 -0
- package/storybook-static/assets/{info-D18FxvY-.js → info-DmoUv3Za.js} +1 -1
- package/storybook-static/assets/{odata-BBdp3RzK.js → odata-BOmzCjsk.js} +1 -1
- package/storybook-static/assets/{odataAndTables-CcXirND0.js → odataAndTables-CCmlxLmc.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-vrHbdkDn.js → odataFetchFn-CTQe0sIR.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BPO4gqpN.js → odataStoryFixtures-BSZ-qA-M.js} +2 -2
- package/storybook-static/assets/{persisted-1Sxmb7Az.js → persisted--WJ7KKPs.js} +1 -1
- package/storybook-static/assets/{pureUtilities-CvNXMzzV.js → pureUtilities-GyB4PF6P.js} +1 -1
- package/storybook-static/assets/{react-B2hhruMd.js → react-BBjpR4Fr.js} +1 -1
- package/storybook-static/assets/{refresh-cw-pmQ0tFtI.js → refresh-cw-Bc5fTdGR.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-DV7ilYb6.js → runtimeAndState-B2HA42QC.js} +1 -1
- package/storybook-static/assets/{settings-2-BEyMy2Fq.js → settings-2-Cm9uvgs-.js} +1 -1
- package/storybook-static/assets/{sortable-BNF14v_A.js → sortable-U9GPAzJm.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-CaaXbF-I.js → syntaxhighlighter-T5IQBZDB-Do8Zvv4y.js} +1 -1
- package/storybook-static/assets/{trash-2-CQnHnUJa.js → trash-2-D6H0PpPX.js} +1 -1
- package/storybook-static/assets/{triangle-alert-DSpoU8D0.js → triangle-alert-5r13MQCo.js} +1 -1
- package/storybook-static/assets/{ui-BMhMvV6y.css → ui-CatTcSJL.css} +1 -1
- package/storybook-static/assets/ui.module-D4CuGr8r.js +1 -0
- package/storybook-static/assets/{uiClasses-DiXn3Hc-.js → uiClasses-CVGbL980.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-Czwwb448.js → useODataSelectBase-bY7vnHqq.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-CnsLoUDj.js → useODataTreeData-Dsp1d8h5.js} +1 -1
- package/storybook-static/assets/usePickerQuery-BfayEntP.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-B1Mub3-v.js +6 -0
- package/storybook-static/assets/{x-DRm1wyYI.js → x-DpV1OV1-.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/dist/chunks/context-menu-6nJkPmKV.js +0 -535
- package/dist/chunks/context-menu-6nJkPmKV.js.map +0 -1
- package/dist/chunks/multi-select-D5b3Gxsv.js +0 -538
- package/dist/chunks/multi-select-D5b3Gxsv.js.map +0 -1
- package/dist/chunks/picker-CrRdwdA5.js +0 -340
- package/dist/chunks/picker-CrRdwdA5.js.map +0 -1
- package/dist/chunks/select-D3EnRya6.js +0 -355
- package/dist/chunks/select-D3EnRya6.js.map +0 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +0 -1
- package/dist/chunks/useODataSelectBase-Cc79kBNk.js +0 -125
- package/dist/chunks/useODataSelectBase-Cc79kBNk.js.map +0 -1
- package/dist/multi-select/ui/MultiSelectOption.d.ts +0 -14
- package/dist/multi-select/ui/MultiSelectOption.d.ts.map +0 -1
- package/dist/multi-select/ui/MultiSelectToken.d.ts +0 -9
- package/dist/multi-select/ui/MultiSelectToken.d.ts.map +0 -1
- package/storybook-static/assets/CheckBox-BnO90VKX.css +0 -1
- package/storybook-static/assets/ContextMenu-BgzIzwzM.css +0 -1
- package/storybook-static/assets/ContextMenu-CXsCt4Ca.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-BugHcFL7.js +0 -37
- package/storybook-static/assets/DateRangePresetSelect.stories-DrLZercZ.js +0 -19
- package/storybook-static/assets/LayoutPicker-BGk1niU3.js +0 -376
- package/storybook-static/assets/LayoutPicker-DudPIiwb.css +0 -1
- package/storybook-static/assets/Listbox-D8KrJkpi.js +0 -1
- package/storybook-static/assets/MultiSelect-BmMO3Np9.js +0 -2
- package/storybook-static/assets/ODataMultiSelect.stories-BqdZ_SmQ.js +0 -139
- package/storybook-static/assets/ODataSelect.stories-Ch9pJFtV.js +0 -161
- package/storybook-static/assets/ODataTreeMultiSelect.stories-rhaGxNb0.js +0 -87
- package/storybook-static/assets/ODataTreeSelect.stories-DO1bOEQc.js +0 -55
- package/storybook-static/assets/PickerSelectionToolbar-DkWserZQ.js +0 -2
- package/storybook-static/assets/PickerTriggerActions-BOhoXiBt.js +0 -1
- package/storybook-static/assets/Select-CO4ZHP9h.css +0 -1
- package/storybook-static/assets/Select-JY35jdqV.js +0 -12
- package/storybook-static/assets/SelectOptionContent-BcvkiM5d.js +0 -1
- package/storybook-static/assets/TreeMultiSelect-CYvFBp49.js +0 -1
- package/storybook-static/assets/TreePickerBase-CU303uk2.js +0 -24
- package/storybook-static/assets/TreePickerBase-hyMFakp7.css +0 -1
- package/storybook-static/assets/TreeSelect.stories-CIfGlEJN.js +0 -40
- package/storybook-static/assets/defaultRenderers-B7PDT-nL.css +0 -1
- package/storybook-static/assets/defaultRenderers-DvwV_t0j.js +0 -1
- package/storybook-static/assets/iframe-D3TD9_FU.js +0 -1
- package/storybook-static/assets/ui.module-CiLQZm_L.js +0 -1
- package/storybook-static/assets/usePickerQuery-DSDKSoxY.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-CTVRGuZE.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-DzBkX15M.css +0 -1
- /package/storybook-static/assets/{CheckBox.module-BNQm6HXI.js → CheckBox.module-CoYygdZx.js} +0 -0
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
import { t as e } from "./ui.module-BsDio9A3.js";
|
|
2
|
+
import { Text as t } from "../text/index.js";
|
|
3
|
+
import { t as n } from "./check-box-CC8CDnSR.js";
|
|
4
|
+
import { Option as r, OptionButton as i } from "../option/index.js";
|
|
5
|
+
import { a, f as o, i as s, n as c, r as l, s as u, t as d, u as f, v as p } from "./picker-0I1yMKIY.js";
|
|
6
|
+
import { t as ee } from "./separator-B72Aq-6a.js";
|
|
7
|
+
import { i as te, n as m, t as h } from "./defaultRenderers-Dbhg2hHc.js";
|
|
8
|
+
import { t as g } from "./odata-dependent-C_DCbKY2.js";
|
|
9
|
+
import { n as _, t as v } from "./useODataSelectBase-DR4PrY1j.js";
|
|
10
|
+
import { forwardRef as y, useCallback as ne, useMemo as b, useRef as re, useState as ie } from "react";
|
|
11
|
+
import { flattenODataDependentServices as ae, useODataCollectionModel as oe } from "@ryuzaki13/react-foundation-api/odata";
|
|
12
|
+
import { Fragment as se, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
13
|
+
var ce = {
|
|
14
|
+
multiSelect: "_9oSdQi",
|
|
15
|
+
optionCheckBox: "d9SDKQ"
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/multi-select/ui/MultiSelectOptionSkeleton.tsx
|
|
19
|
+
function C({ text: n, isError: r }) {
|
|
20
|
+
return /* @__PURE__ */ S("div", {
|
|
21
|
+
className: e.uiPopupOption,
|
|
22
|
+
children: [/* @__PURE__ */ x("span", { className: e.uiPopupOptionIcon }), /* @__PURE__ */ x(t, {
|
|
23
|
+
color: r ? "error" : "primary",
|
|
24
|
+
children: n
|
|
25
|
+
})]
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/multi-select/ui/MultiSelect.tsx
|
|
30
|
+
function le({ isNoData: e, error: t, children: n }) {
|
|
31
|
+
return e ? /* @__PURE__ */ x(f, { emptyState: /* @__PURE__ */ x(C, { text: "Нет данных" }) }) : t ? /* @__PURE__ */ x(f, { errorState: /* @__PURE__ */ x(C, {
|
|
32
|
+
isError: !0,
|
|
33
|
+
text: "Ошибка загрузки"
|
|
34
|
+
}) }) : /* @__PURE__ */ x(se, { children: n });
|
|
35
|
+
}
|
|
36
|
+
var ue = [];
|
|
37
|
+
function w(e, t) {
|
|
38
|
+
return e[t];
|
|
39
|
+
}
|
|
40
|
+
function T(e, t, n) {
|
|
41
|
+
return Array.from(/* @__PURE__ */ new Set([
|
|
42
|
+
e[n],
|
|
43
|
+
e[t],
|
|
44
|
+
...Object.values(e)
|
|
45
|
+
]));
|
|
46
|
+
}
|
|
47
|
+
function de(e, t, n) {
|
|
48
|
+
if (e.length !== t.length) return !1;
|
|
49
|
+
let r = new Set(t.map((e) => w(e, n)));
|
|
50
|
+
return e.every((e) => r.has(w(e, n)));
|
|
51
|
+
}
|
|
52
|
+
function fe({ entries: e, listId: t, activeIndex: a, selectedKeys: o, codeKey: s, query: c, highlightQuery: l, getOptionDisabled: u, getOptionId: d, setOptionRef: f, toggleOption: p, selectOnlyOption: ee, renderItem: te }) {
|
|
53
|
+
return e.map(({ item: e, index: m }) => {
|
|
54
|
+
let h = m === a, g = w(e, s), _ = o.has(g), v = u?.(e) ?? !1, y = te(e, {
|
|
55
|
+
selected: _,
|
|
56
|
+
active: h,
|
|
57
|
+
disabled: v,
|
|
58
|
+
query: c,
|
|
59
|
+
highlightQuery: l
|
|
60
|
+
});
|
|
61
|
+
return /* @__PURE__ */ S(r, {
|
|
62
|
+
id: d(t, m),
|
|
63
|
+
ref: (e) => f(m, e),
|
|
64
|
+
role: "option",
|
|
65
|
+
"aria-selected": _,
|
|
66
|
+
"aria-disabled": v || void 0,
|
|
67
|
+
selected: _,
|
|
68
|
+
active: h,
|
|
69
|
+
disabled: v,
|
|
70
|
+
children: [/* @__PURE__ */ x("div", {
|
|
71
|
+
className: ce.optionCheckBox,
|
|
72
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
73
|
+
onClick: (e) => e.stopPropagation(),
|
|
74
|
+
children: /* @__PURE__ */ x(n, {
|
|
75
|
+
value: _,
|
|
76
|
+
disabled: v,
|
|
77
|
+
"aria-label": `Выбрать ${l ?? g}`,
|
|
78
|
+
onChange: () => p(e)
|
|
79
|
+
})
|
|
80
|
+
}), /* @__PURE__ */ x(i, {
|
|
81
|
+
tabIndex: -1,
|
|
82
|
+
disabled: v,
|
|
83
|
+
text: y.text,
|
|
84
|
+
code: y.code,
|
|
85
|
+
searchText: l,
|
|
86
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
87
|
+
onClick: () => ee(e)
|
|
88
|
+
})]
|
|
89
|
+
}, `${g}-${m}`);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
var E = y(({ codeKey: e, textKey: t, hideCode: n, items: r, value: i, onChange: f, label: g, description: _, placeholder: v, size: y, query: ae, defaultQuery: oe, highlightQuery: C, onQuery: E, defaultFilter: D = !0, onOpen: O, onClose: k, getOptionDisabled: A, disabled: j, error: M, isLoading: N, renderToken: pe, renderToolbar: P, renderItem: me }, F) => {
|
|
93
|
+
let I = re(null), [L, he] = ie(!1), R = "search-multi", z = i ?? ue, ge = b(() => new Set(z.map((t) => w(t, e))), [e, z]), _e = b(() => r.filter((t) => !ge.has(w(t, e))), [
|
|
94
|
+
e,
|
|
95
|
+
ge,
|
|
96
|
+
r
|
|
97
|
+
]), B = b(() => te([...z, ...r], e, t), [
|
|
98
|
+
e,
|
|
99
|
+
z,
|
|
100
|
+
r,
|
|
101
|
+
t
|
|
102
|
+
]), { query: V, setQuery: ve, resetQueryOnClose: ye } = l({
|
|
103
|
+
query: ae,
|
|
104
|
+
defaultQuery: oe,
|
|
105
|
+
onQuery: E,
|
|
106
|
+
triggerMode: R
|
|
107
|
+
}), be = (e) => {
|
|
108
|
+
L && !e && ye && ve(""), he(e);
|
|
109
|
+
}, H = a({
|
|
110
|
+
options: z,
|
|
111
|
+
query: V,
|
|
112
|
+
enabled: D,
|
|
113
|
+
getSearchText: (t) => T(t, e, B)
|
|
114
|
+
}), U = a({
|
|
115
|
+
options: _e,
|
|
116
|
+
query: V,
|
|
117
|
+
enabled: D,
|
|
118
|
+
getSearchText: (t) => T(t, e, B)
|
|
119
|
+
}), W = b(() => [...H, ...U], [U, H]), xe = H.length > 0 ? 0 : -1, { draftValue: G, setDraftValue: K, prepareOpen: Se } = c({
|
|
120
|
+
value: z,
|
|
121
|
+
open: L,
|
|
122
|
+
onCommit: f,
|
|
123
|
+
onOpen: O,
|
|
124
|
+
onClose: k,
|
|
125
|
+
isEqual: (t, n) => de(t, n, e)
|
|
126
|
+
}), q = b(() => new Set(G.map((t) => w(t, e))), [e, G]), Ce = b(() => ({
|
|
127
|
+
selectedItems: G,
|
|
128
|
+
committedSelectedItems: z,
|
|
129
|
+
selectedKeys: q,
|
|
130
|
+
open: L
|
|
131
|
+
}), [
|
|
132
|
+
z,
|
|
133
|
+
G,
|
|
134
|
+
L,
|
|
135
|
+
q
|
|
136
|
+
]), J = ne((e) => A?.(e, Ce) ?? !1, [A, Ce]), { activeIndex: Y, context: we, floatingStyles: Te, getFloatingProps: Ee, setReference: De, setFloating: Oe, setOptionRef: ke, close: Ae, openList: je, toggleOpen: Me, selectActiveOption: Ne, handleReferenceKeyDown: Pe, handleFloatingKeyDown: Fe, getOptionId: Ie, getActiveOptionId: Le } = s({
|
|
137
|
+
options: W,
|
|
138
|
+
selectedIndex: xe,
|
|
139
|
+
open: L,
|
|
140
|
+
onOpenChange: be,
|
|
141
|
+
onSelect: void 0,
|
|
142
|
+
disabled: j,
|
|
143
|
+
getOptionDisabled: J,
|
|
144
|
+
closeOnSelect: !1,
|
|
145
|
+
allowOpenWithoutOptions: !0,
|
|
146
|
+
triggerMode: R
|
|
147
|
+
}), Re = C ?? V, X = (t) => {
|
|
148
|
+
let n = w(t, e);
|
|
149
|
+
K((r) => r.some((t) => w(t, e) === n) ? r.filter((t) => w(t, e) !== n) : J(t) ? r : [...r, t]);
|
|
150
|
+
}, ze = (e) => {
|
|
151
|
+
if (I.current = e, typeof F == "function") {
|
|
152
|
+
F(e);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
F && (F.current = e);
|
|
156
|
+
}, Be = () => {
|
|
157
|
+
K([]), L || f([]);
|
|
158
|
+
}, Ve = () => {
|
|
159
|
+
K((t) => {
|
|
160
|
+
let n = [...t], r = new Set(t.map((t) => w(t, e)));
|
|
161
|
+
for (let t of W) {
|
|
162
|
+
let i = w(t, e);
|
|
163
|
+
!r.has(i) && !J(t) && (r.add(i), n.push(t));
|
|
164
|
+
}
|
|
165
|
+
return n;
|
|
166
|
+
});
|
|
167
|
+
}, Z = () => {
|
|
168
|
+
K([]);
|
|
169
|
+
}, He = (e) => {
|
|
170
|
+
J(e) || (K([e]), Ae());
|
|
171
|
+
}, Ue = L ? G : z, We = Ue.length > 0, Ge = {
|
|
172
|
+
selectedItems: Ue,
|
|
173
|
+
committedSelectedItems: z,
|
|
174
|
+
availableItems: U,
|
|
175
|
+
query: V,
|
|
176
|
+
open: L,
|
|
177
|
+
clearSelection: Be,
|
|
178
|
+
selectAll: Ve,
|
|
179
|
+
deselectAll: Z
|
|
180
|
+
}, Ke = pe === void 0 ? m({
|
|
181
|
+
codeKey: e,
|
|
182
|
+
textKey: B
|
|
183
|
+
}) : pe, qe = me ?? h({
|
|
184
|
+
codeKey: e,
|
|
185
|
+
textKey: B,
|
|
186
|
+
hideCode: n
|
|
187
|
+
}), Je = typeof Ke == "function" ? Ke(Ge) : null, Ye = typeof P == "function" ? P(Ge) : P, Q = H.map((e, t) => ({
|
|
188
|
+
item: e,
|
|
189
|
+
index: t
|
|
190
|
+
})), Xe = U.map((e, t) => ({
|
|
191
|
+
item: e,
|
|
192
|
+
index: t + Q.length
|
|
193
|
+
})), Ze = !N && !M && W.length === 0, $ = d({
|
|
194
|
+
mode: R,
|
|
195
|
+
open: L,
|
|
196
|
+
currentQuery: V,
|
|
197
|
+
hasDisplayValue: !1,
|
|
198
|
+
inputRef: I,
|
|
199
|
+
setQuery: ve,
|
|
200
|
+
openList: je,
|
|
201
|
+
close: Ae,
|
|
202
|
+
toggleOpen: Me,
|
|
203
|
+
onBeforeOpen: () => {
|
|
204
|
+
L || Se();
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
return /* @__PURE__ */ x(p, {
|
|
208
|
+
label: g,
|
|
209
|
+
description: _,
|
|
210
|
+
disabled: j,
|
|
211
|
+
size: y,
|
|
212
|
+
className: ce.multiSelect,
|
|
213
|
+
children: ({ controlId: t, labelId: n, describedBy: i }) => {
|
|
214
|
+
let a = `${t}-listbox`;
|
|
215
|
+
return /* @__PURE__ */ S(se, { children: [/* @__PURE__ */ x(u, {
|
|
216
|
+
ref: ze,
|
|
217
|
+
rootRef: De,
|
|
218
|
+
id: t,
|
|
219
|
+
type: "text",
|
|
220
|
+
role: "combobox",
|
|
221
|
+
autoComplete: "off",
|
|
222
|
+
isLoading: N,
|
|
223
|
+
disabled: j,
|
|
224
|
+
open: L,
|
|
225
|
+
optionCount: r.length,
|
|
226
|
+
label: g,
|
|
227
|
+
placeholder: v,
|
|
228
|
+
placeholderFallback: "Выберите значения",
|
|
229
|
+
value: V,
|
|
230
|
+
selectedValue: Je,
|
|
231
|
+
hasSelection: We,
|
|
232
|
+
showSelectedValue: We && V.length === 0,
|
|
233
|
+
clearable: !0,
|
|
234
|
+
onClear: Be,
|
|
235
|
+
clearAriaLabel: "Очистить все",
|
|
236
|
+
onToggleMouseDown: $.handleToggleMouseDown,
|
|
237
|
+
onToggleClick: $.handleToggleClick,
|
|
238
|
+
"aria-labelledby": n,
|
|
239
|
+
"aria-describedby": i,
|
|
240
|
+
"aria-haspopup": "listbox",
|
|
241
|
+
"aria-expanded": L,
|
|
242
|
+
"aria-controls": L ? a : void 0,
|
|
243
|
+
"aria-autocomplete": "list",
|
|
244
|
+
"aria-activedescendant": L ? Le(a) : void 0,
|
|
245
|
+
rootClassName: "flex alignItemsCenter",
|
|
246
|
+
onChange: (e) => {
|
|
247
|
+
$.handleTriggerInputChange(e.target.value);
|
|
248
|
+
},
|
|
249
|
+
onClick: $.handleTriggerClick,
|
|
250
|
+
onFocus: (e) => {
|
|
251
|
+
$.handleTriggerFocus(e.currentTarget);
|
|
252
|
+
},
|
|
253
|
+
onKeyDown: (e) => {
|
|
254
|
+
Pe(e), !e.defaultPrevented && $.handleTriggerKeyDown({
|
|
255
|
+
event: e,
|
|
256
|
+
onActivateWhenOpen: () => {
|
|
257
|
+
if (Y >= 0) {
|
|
258
|
+
let e = W[Y];
|
|
259
|
+
if (e) {
|
|
260
|
+
X(e);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
Ne();
|
|
265
|
+
},
|
|
266
|
+
enableClosedArrowDownOpen: !0,
|
|
267
|
+
suppressClosedArrowUp: !0
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
}), /* @__PURE__ */ x(o, {
|
|
271
|
+
open: L,
|
|
272
|
+
context: we,
|
|
273
|
+
floatingStyles: Te,
|
|
274
|
+
listId: a,
|
|
275
|
+
labelId: n,
|
|
276
|
+
descriptionId: i,
|
|
277
|
+
activeOptionId: L ? Le(a) : void 0,
|
|
278
|
+
setFloating: Oe,
|
|
279
|
+
getFloatingProps: Ee,
|
|
280
|
+
onKeyDown: Fe,
|
|
281
|
+
initialFocus: -1,
|
|
282
|
+
returnFocus: !1,
|
|
283
|
+
tabIndex: -1,
|
|
284
|
+
toolbar: Ye,
|
|
285
|
+
selectionActions: P === void 0 ? {
|
|
286
|
+
onSelectAll: Ve,
|
|
287
|
+
onDeselectAll: Z
|
|
288
|
+
} : void 0,
|
|
289
|
+
children: /* @__PURE__ */ x(le, {
|
|
290
|
+
isNoData: Ze,
|
|
291
|
+
error: M,
|
|
292
|
+
children: /* @__PURE__ */ S("div", {
|
|
293
|
+
className: "scrollable h100",
|
|
294
|
+
children: [
|
|
295
|
+
/* @__PURE__ */ x(fe, {
|
|
296
|
+
entries: Q,
|
|
297
|
+
listId: a,
|
|
298
|
+
activeIndex: Y,
|
|
299
|
+
selectedKeys: q,
|
|
300
|
+
codeKey: e,
|
|
301
|
+
query: V,
|
|
302
|
+
highlightQuery: Re,
|
|
303
|
+
getOptionDisabled: J,
|
|
304
|
+
getOptionId: Ie,
|
|
305
|
+
setOptionRef: ke,
|
|
306
|
+
toggleOption: X,
|
|
307
|
+
selectOnlyOption: He,
|
|
308
|
+
renderItem: qe
|
|
309
|
+
}),
|
|
310
|
+
Q.length > 0 && _e.length > 0 && /* @__PURE__ */ x(ee, { className: "marginBlockSm" }),
|
|
311
|
+
/* @__PURE__ */ x(fe, {
|
|
312
|
+
entries: Xe,
|
|
313
|
+
listId: a,
|
|
314
|
+
activeIndex: Y,
|
|
315
|
+
selectedKeys: q,
|
|
316
|
+
codeKey: e,
|
|
317
|
+
query: V,
|
|
318
|
+
highlightQuery: Re,
|
|
319
|
+
getOptionDisabled: J,
|
|
320
|
+
getOptionId: Ie,
|
|
321
|
+
setOptionRef: ke,
|
|
322
|
+
toggleOption: X,
|
|
323
|
+
selectOnlyOption: He,
|
|
324
|
+
renderItem: qe
|
|
325
|
+
})
|
|
326
|
+
]
|
|
327
|
+
})
|
|
328
|
+
})
|
|
329
|
+
})] });
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
E.displayName = "MultiSelect";
|
|
334
|
+
//#endregion
|
|
335
|
+
//#region src/multi-select/model/useODataMultiSelect.ts
|
|
336
|
+
function D({ odata: e, segment: t, model: n, value: r, dependencies: i, onChange: a }) {
|
|
337
|
+
let o = _({
|
|
338
|
+
odata: e,
|
|
339
|
+
segment: t,
|
|
340
|
+
model: n,
|
|
341
|
+
value: r,
|
|
342
|
+
dependencies: i
|
|
343
|
+
}), s = (e) => {
|
|
344
|
+
a(v(e, o.selectionKey));
|
|
345
|
+
};
|
|
346
|
+
return {
|
|
347
|
+
...o,
|
|
348
|
+
handleChange: s
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
//#endregion
|
|
352
|
+
//#region src/multi-select/ui/ODataMultiSelect.tsx
|
|
353
|
+
var O = ({ odata: e, segment: t, model: n, label: r, description: i, disabled: a, value: o, dependencies: s, onChange: c, size: l }) => {
|
|
354
|
+
let u = D({
|
|
355
|
+
odata: e,
|
|
356
|
+
segment: t,
|
|
357
|
+
model: oe(n),
|
|
358
|
+
value: o,
|
|
359
|
+
dependencies: s,
|
|
360
|
+
onChange: c
|
|
361
|
+
});
|
|
362
|
+
return /* @__PURE__ */ x(E, {
|
|
363
|
+
label: r,
|
|
364
|
+
description: i,
|
|
365
|
+
size: l,
|
|
366
|
+
codeKey: u.codeKey,
|
|
367
|
+
textKey: u.textKey,
|
|
368
|
+
hideCode: t.hideCode ?? e.hideCode,
|
|
369
|
+
items: u.filteredItems,
|
|
370
|
+
value: u.selectedItems,
|
|
371
|
+
onChange: u.handleChange,
|
|
372
|
+
onQuery: u.setQuery,
|
|
373
|
+
query: u.query,
|
|
374
|
+
defaultFilter: !1,
|
|
375
|
+
highlightQuery: u.debouncedQuery,
|
|
376
|
+
isLoading: u.isLoading,
|
|
377
|
+
disabled: a,
|
|
378
|
+
placeholder: u.placeholder,
|
|
379
|
+
error: u.isError ? "Ошибка загрузки" : void 0
|
|
380
|
+
});
|
|
381
|
+
};
|
|
382
|
+
//#endregion
|
|
383
|
+
//#region src/multi-select/ui/ODataDependentSegmentMultiSelect.tsx
|
|
384
|
+
function k(e) {
|
|
385
|
+
let { item: t, disabled: n, label: r, description: i, size: a, width: o = 15 } = e, s = g(e), { updateSegment: c } = s, l = `calc(${o}em + var(--width-add))`, u = ne((e) => {
|
|
386
|
+
c(t.id, e);
|
|
387
|
+
}, [t.id, c]);
|
|
388
|
+
return /* @__PURE__ */ x("div", {
|
|
389
|
+
style: {
|
|
390
|
+
maxWidth: l,
|
|
391
|
+
minWidth: l
|
|
392
|
+
},
|
|
393
|
+
children: /* @__PURE__ */ x(O, {
|
|
394
|
+
odata: t.odata,
|
|
395
|
+
segment: t.segment,
|
|
396
|
+
model: t.model,
|
|
397
|
+
dependencies: s.values,
|
|
398
|
+
value: s.values[t.id],
|
|
399
|
+
onChange: u,
|
|
400
|
+
disabled: n || s.isSegmentDisabled(t.id),
|
|
401
|
+
label: r,
|
|
402
|
+
description: i,
|
|
403
|
+
size: a
|
|
404
|
+
})
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
//#endregion
|
|
408
|
+
//#region src/multi-select/ui/ODataDependentMultiSelect.tsx
|
|
409
|
+
function A(e) {
|
|
410
|
+
let { width: t = 15, odata: n, segments: r, model: i, values: a, defaultValues: o, onChange: s, selectionMode: c, segmentOrder: l } = e, u = g({
|
|
411
|
+
values: a,
|
|
412
|
+
defaultValues: o,
|
|
413
|
+
onChange: s
|
|
414
|
+
}), d = c === "sequential" ? {
|
|
415
|
+
selectionMode: "sequential",
|
|
416
|
+
segmentOrder: l
|
|
417
|
+
} : {
|
|
418
|
+
selectionMode: c,
|
|
419
|
+
segmentOrder: l
|
|
420
|
+
};
|
|
421
|
+
return ae([{
|
|
422
|
+
odata: n,
|
|
423
|
+
segments: r,
|
|
424
|
+
model: i
|
|
425
|
+
}]).map((e) => /* @__PURE__ */ x(k, {
|
|
426
|
+
item: e,
|
|
427
|
+
values: u.values,
|
|
428
|
+
onChange: u.updateValues,
|
|
429
|
+
...d,
|
|
430
|
+
width: t
|
|
431
|
+
}, e.id));
|
|
432
|
+
}
|
|
433
|
+
//#endregion
|
|
434
|
+
//#region src/multi-select/ui/SerializableMultiSelect.tsx
|
|
435
|
+
function j(e, t) {
|
|
436
|
+
return e[t];
|
|
437
|
+
}
|
|
438
|
+
function M(e, t, n) {
|
|
439
|
+
let r = e[t];
|
|
440
|
+
if (typeof r == "string") return r;
|
|
441
|
+
let i = j(e, n);
|
|
442
|
+
return typeof i == "string" ? i : String(i);
|
|
443
|
+
}
|
|
444
|
+
function N({ label: e, description: t, disabled: n, placeholder: r, size: i, options: a, value: o, onChange: s, optionKey: c, optionLabel: l, renderCode: u }) {
|
|
445
|
+
let d = a.map((e) => ({
|
|
446
|
+
key: String(j(e, c)),
|
|
447
|
+
text: M(e, l, c)
|
|
448
|
+
})), f = new Set((o ?? []).map((e) => String(e))), p = d.filter((e) => f.has(e.key));
|
|
449
|
+
return /* @__PURE__ */ x(E, {
|
|
450
|
+
label: e,
|
|
451
|
+
description: t,
|
|
452
|
+
disabled: n,
|
|
453
|
+
placeholder: r,
|
|
454
|
+
size: i,
|
|
455
|
+
items: d,
|
|
456
|
+
codeKey: "key",
|
|
457
|
+
textKey: "text",
|
|
458
|
+
hideCode: !u || void 0,
|
|
459
|
+
value: p,
|
|
460
|
+
onChange: (e) => s(e.map((e) => e.key))
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
//#endregion
|
|
464
|
+
export { E as a, O as i, A as n, k as r, N as t };
|
|
465
|
+
|
|
466
|
+
//# sourceMappingURL=multi-select-Cvjz9W07.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-select-Cvjz9W07.js","names":[],"sources":["../../src/multi-select/ui/MultiSelect.module.scss","../../src/multi-select/ui/MultiSelectOptionSkeleton.tsx","../../src/multi-select/ui/MultiSelect.tsx","../../src/multi-select/model/useODataMultiSelect.ts","../../src/multi-select/ui/ODataMultiSelect.tsx","../../src/multi-select/ui/ODataDependentSegmentMultiSelect.tsx","../../src/multi-select/ui/ODataDependentMultiSelect.tsx","../../src/multi-select/ui/SerializableMultiSelect.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.multiSelect {\n\t// Общий контейнер\n\tpadding: 0;\n}\n\n.optionCheckBox {\n\tdisplay: inline-flex;\n\tflex-shrink: 0;\n\n\t--check-box-control-size: auto;\n\tpadding-left: var(--space-sm);\n}\n","import { Text } from \"../../text\";\nimport uiStyles from \"../../ui.module.scss\";\n\ninterface MultiSelectOptionSkeletonProps {\n\ttext: string;\n\tisError?: boolean;\n}\n\n/**\n * Скелетон строки опции для `MultiSelect`. Используется во время загрузки или при отображении ошибок получения списка.\n */\nexport function MultiSelectOptionSkeleton({ text, isError }: MultiSelectOptionSkeletonProps) {\n\treturn (\n\t\t<div className={uiStyles.uiPopupOption}>\n\t\t\t<span className={uiStyles.uiPopupOptionIcon}></span>\n\t\t\t<Text color={isError ? \"error\" : \"primary\"}>{text}</Text>\n\t\t</div>\n\t);\n}\n","import React, { forwardRef, type PropsWithChildren, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { CheckBox } from \"../../check-box\";\nimport { Option, OptionButton } from \"../../option\";\nimport {\n\tPickerField,\n\tPickerPopup,\n\tPickerStatus,\n\tPickerTrigger,\n\tusePickerDefaultFilter,\n\tusePickerFloatingListbox,\n\tusePickerQuery,\n\tusePickerSelectionLifecycle,\n\tusePickerTriggerController\n} from \"../../picker\";\nimport { Separator } from \"../../separator\";\nimport { type UiBaseProps } from \"../../types\";\n\nimport { createDefaultMultiSelectItemRenderer, createDefaultMultiSelectTokenRenderer, resolveMultiSelectTextKey } from \"./defaultRenderers\";\nimport styles from \"./MultiSelect.module.scss\";\nimport { MultiSelectOptionSkeleton } from \"./MultiSelectOptionSkeleton\";\n\nimport type { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\ninterface MultiSelectOptionsProps extends PropsWithChildren {\n\tisNoData?: boolean;\n\t// isLoading?: boolean;\n\terror?: string;\n}\n\nfunction MultiSelectOptionsWrapper({ isNoData, error, children }: MultiSelectOptionsProps) {\n\tif (isNoData) return <PickerStatus emptyState={<MultiSelectOptionSkeleton text=\"Нет данных\" />} />;\n\t// if (isLoading) return <PickerStatus loadingState={<MultiSelectOptionSkeleton text=\"Загрузка...\" />} />;\n\tif (error) return <PickerStatus errorState={<MultiSelectOptionSkeleton isError text=\"Ошибка загрузки\" />} />;\n\n\treturn <>{children}</>;\n}\n\nexport interface MultiSelectItemState {\n\tselected: boolean;\n\tactive: boolean;\n\tdisabled: boolean;\n\tquery: string;\n\thighlightQuery: string;\n}\n\n/**\n * Структурированное содержимое опции множественного выбора. `MultiSelect` владеет\n * интерактивной оболочкой и checkbox-слотом, а renderer отвечает только за данные\n * текстовой части, поэтому единая композиция `OptionButton` сохраняется и для\n * произвольного ReactNode.\n */\nexport interface MultiSelectOptionContent {\n\ttext: string;\n\tcode: string;\n}\n\nexport interface MultiSelectRenderContext {\n\tselectedItems: CollectionItem[];\n\tcommittedSelectedItems: CollectionItem[];\n\tavailableItems: CollectionItem[];\n\tquery: string;\n\topen: boolean;\n\tclearSelection: () => void;\n\tselectAll: () => void;\n\tdeselectAll: () => void;\n}\n\nexport interface MultiSelectOptionDisableContext {\n\tselectedItems: CollectionItem[];\n\tcommittedSelectedItems: CollectionItem[];\n\tselectedKeys: ReadonlySet<string>;\n\topen: boolean;\n}\n\ntype MultiSelectOptionalRenderer<TContext> = ((context: TContext) => React.ReactNode) | null | false;\n\ninterface MultiSelectRenderers {\n\trenderToken?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;\n\trenderToolbar?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;\n\trenderItem?: (item: CollectionItem, state: MultiSelectItemState) => MultiSelectOptionContent;\n}\n\nexport interface MultiSelectProps<TOption extends Record<string, string> = CollectionItem>\n\textends MultiSelectRenderers, UiBaseProps<TOption[]> {\n\tcodeKey: string;\n\ttextKey?: string;\n\thideCode?: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\thighlightQuery?: string;\n\tonQuery?: (value: string) => void;\n\tdefaultFilter?: boolean;\n\titems: TOption[];\n\tgetOptionDisabled?: (item: TOption, context: MultiSelectOptionDisableContext) => boolean;\n\tonOpen?: () => void;\n\tonClose?: (value: TOption[]) => void;\n\terror?: string;\n\tisLoading?: boolean;\n}\n\nconst fallback: CollectionItem[] = [];\n\nfunction getItemKey(item: CollectionItem, codeKey: string) {\n\treturn item[codeKey];\n}\n\nfunction getItemSearchParts(item: CollectionItem, codeKey: string, textKey: string) {\n\treturn Array.from(new Set([item[textKey], item[codeKey], ...Object.values(item)]));\n}\n\nfunction areSelectionsEqual(left: CollectionItem[], right: CollectionItem[], codeKey: string) {\n\tif (left.length !== right.length) {\n\t\treturn false;\n\t}\n\n\tconst rightKeys = new Set(right.map((item) => getItemKey(item, codeKey)));\n\n\treturn left.every((item) => rightKeys.has(getItemKey(item, codeKey)));\n}\n\ninterface MultiSelectOptionEntry {\n\titem: CollectionItem;\n\tindex: number;\n}\n\ninterface MultiSelectOptionGroupProps {\n\tentries: MultiSelectOptionEntry[];\n\tlistId: string;\n\tactiveIndex: number;\n\tselectedKeys: Set<string>;\n\tcodeKey: string;\n\tquery: string;\n\thighlightQuery: string;\n\tgetOptionDisabled?: (item: CollectionItem) => boolean;\n\tgetOptionId: (listId: string, index: number) => string;\n\tsetOptionRef: (index: number, node: HTMLElement | null) => void;\n\ttoggleOption: (item: CollectionItem) => void;\n\tselectOnlyOption: (item: CollectionItem) => void;\n\trenderItem: (item: CollectionItem, state: MultiSelectItemState) => MultiSelectOptionContent;\n}\n\nfunction MultiSelectOptionGroup({\n\tentries,\n\tlistId,\n\tactiveIndex,\n\tselectedKeys,\n\tcodeKey,\n\tquery,\n\thighlightQuery,\n\tgetOptionDisabled,\n\tgetOptionId,\n\tsetOptionRef,\n\ttoggleOption,\n\tselectOnlyOption,\n\trenderItem\n}: MultiSelectOptionGroupProps) {\n\treturn entries.map(({ item, index }) => {\n\t\tconst active = index === activeIndex;\n\t\tconst itemKey = getItemKey(item, codeKey);\n\t\tconst selected = selectedKeys.has(itemKey);\n\t\tconst optionDisabled = getOptionDisabled?.(item) ?? false;\n\t\tconst content = renderItem(item, { selected, active, disabled: optionDisabled, query, highlightQuery });\n\n\t\treturn (\n\t\t\t<Option\n\t\t\t\tkey={`${itemKey}-${index}`}\n\t\t\t\tid={getOptionId(listId, index)}\n\t\t\t\tref={(node) => setOptionRef(index, node)}\n\t\t\t\trole=\"option\"\n\t\t\t\taria-selected={selected}\n\t\t\t\taria-disabled={optionDisabled || undefined}\n\t\t\t\tselected={selected}\n\t\t\t\tactive={active}\n\t\t\t\tdisabled={optionDisabled}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.optionCheckBox}\n\t\t\t\t\tonMouseDown={(event) => event.stopPropagation()}\n\t\t\t\t\tonClick={(event) => event.stopPropagation()}>\n\t\t\t\t\t<CheckBox\n\t\t\t\t\t\tvalue={selected}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\taria-label={`Выбрать ${highlightQuery ?? itemKey}`}\n\t\t\t\t\t\tonChange={() => toggleOption(item)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<OptionButton\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\ttext={content.text}\n\t\t\t\t\tcode={content.code}\n\t\t\t\t\tsearchText={highlightQuery}\n\t\t\t\t\tonMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\tonClick={() => selectOnlyOption(item)}\n\t\t\t\t/>\n\t\t\t</Option>\n\t\t);\n\t});\n}\n\n/**\n * Поле множественного выбора с внутренним черновиком значений и подтверждением выбора при закрытии списка.\n * Подходит как для самостоятельного использования, так и как базовый слой для OData-оберток.\n */\nexport const MultiSelect = forwardRef<HTMLInputElement, MultiSelectProps>(\n\t(\n\t\t{\n\t\t\tcodeKey,\n\t\t\ttextKey,\n\t\t\thideCode,\n\t\t\titems,\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\tplaceholder,\n\t\t\tsize,\n\t\t\tquery,\n\t\t\tdefaultQuery,\n\t\t\thighlightQuery,\n\t\t\tonQuery,\n\t\t\tdefaultFilter = true,\n\t\t\tonOpen,\n\t\t\tonClose,\n\t\t\tgetOptionDisabled,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tisLoading,\n\t\t\trenderToken,\n\t\t\trenderToolbar,\n\t\t\trenderItem\n\t\t},\n\t\tref\n\t) => {\n\t\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\t\tconst [open, setOpen] = useState(false);\n\t\tconst triggerMode = \"search-multi\";\n\t\tconst committedSelectedItems = value ?? fallback;\n\t\tconst committedSelectedKeys = useMemo(\n\t\t\t() => new Set(committedSelectedItems.map((item) => getItemKey(item, codeKey))),\n\t\t\t[codeKey, committedSelectedItems]\n\t\t);\n\t\tconst availableItems = useMemo(\n\t\t\t() => items.filter((item) => !committedSelectedKeys.has(getItemKey(item, codeKey))),\n\t\t\t[codeKey, committedSelectedKeys, items]\n\t\t);\n\t\tconst resolvedTextKey = useMemo(\n\t\t\t() => resolveMultiSelectTextKey([...committedSelectedItems, ...items], codeKey, textKey),\n\t\t\t[codeKey, committedSelectedItems, items, textKey]\n\t\t);\n\t\tconst {\n\t\t\tquery: currentQuery,\n\t\t\tsetQuery,\n\t\t\tresetQueryOnClose\n\t\t} = usePickerQuery({\n\t\t\tquery,\n\t\t\tdefaultQuery,\n\t\t\tonQuery,\n\t\t\ttriggerMode\n\t\t});\n\t\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\t\tif (open && !nextOpen && resetQueryOnClose) {\n\t\t\t\tsetQuery(\"\");\n\t\t\t}\n\n\t\t\tsetOpen(nextOpen);\n\t\t};\n\t\tconst filteredCommittedSelectedItems = usePickerDefaultFilter({\n\t\t\toptions: committedSelectedItems,\n\t\t\tquery: currentQuery,\n\t\t\tenabled: defaultFilter,\n\t\t\tgetSearchText: (item) => getItemSearchParts(item, codeKey, resolvedTextKey)\n\t\t});\n\t\tconst filteredAvailableItems = usePickerDefaultFilter({\n\t\t\toptions: availableItems,\n\t\t\tquery: currentQuery,\n\t\t\tenabled: defaultFilter,\n\t\t\tgetSearchText: (item) => getItemSearchParts(item, codeKey, resolvedTextKey)\n\t\t});\n\t\tconst visibleOptions = useMemo(\n\t\t\t() => [...filteredCommittedSelectedItems, ...filteredAvailableItems],\n\t\t\t[filteredAvailableItems, filteredCommittedSelectedItems]\n\t\t);\n\t\tconst selectedIndex = filteredCommittedSelectedItems.length > 0 ? 0 : -1;\n\t\tconst {\n\t\t\tdraftValue: draftSelectedItems,\n\t\t\tsetDraftValue: setDraftSelectedItems,\n\t\t\tprepareOpen\n\t\t} = usePickerSelectionLifecycle({\n\t\t\tvalue: committedSelectedItems,\n\t\t\topen,\n\t\t\tonCommit: onChange,\n\t\t\tonOpen,\n\t\t\tonClose,\n\t\t\tisEqual: (left, right) => areSelectionsEqual(left, right, codeKey)\n\t\t});\n\t\tconst selectedKeys = useMemo(\n\t\t\t() => new Set(draftSelectedItems.map((item) => getItemKey(item, codeKey))),\n\t\t\t[codeKey, draftSelectedItems]\n\t\t);\n\t\tconst optionDisableContext = useMemo<MultiSelectOptionDisableContext>(\n\t\t\t() => ({\n\t\t\t\tselectedItems: draftSelectedItems,\n\t\t\t\tcommittedSelectedItems,\n\t\t\t\tselectedKeys,\n\t\t\t\topen\n\t\t\t}),\n\t\t\t[committedSelectedItems, draftSelectedItems, open, selectedKeys]\n\t\t);\n\t\tconst isOptionDisabled = useCallback(\n\t\t\t(item: CollectionItem) => getOptionDisabled?.(item, optionDisableContext) ?? false,\n\t\t\t[getOptionDisabled, optionDisableContext]\n\t\t);\n\t\tconst {\n\t\t\tactiveIndex,\n\t\t\tcontext,\n\t\t\tfloatingStyles,\n\t\t\tgetFloatingProps,\n\t\t\tsetReference,\n\t\t\tsetFloating,\n\t\t\tsetOptionRef,\n\t\t\tclose,\n\t\t\topenList,\n\t\t\ttoggleOpen,\n\t\t\tselectActiveOption,\n\t\t\thandleReferenceKeyDown,\n\t\t\thandleFloatingKeyDown,\n\t\t\tgetOptionId,\n\t\t\tgetActiveOptionId\n\t\t} = usePickerFloatingListbox({\n\t\t\toptions: visibleOptions,\n\t\t\tselectedIndex,\n\t\t\topen,\n\t\t\tonOpenChange: handleOpenChange,\n\t\t\tonSelect: undefined,\n\t\t\tdisabled,\n\t\t\tgetOptionDisabled: isOptionDisabled,\n\t\t\tcloseOnSelect: false,\n\t\t\tallowOpenWithoutOptions: true,\n\t\t\ttriggerMode\n\t\t});\n\n\t\tconst currentHighlightQuery = highlightQuery ?? currentQuery;\n\t\tconst toggleDraftSelection = (item: CollectionItem) => {\n\t\t\tconst itemKey = getItemKey(item, codeKey);\n\n\t\t\tsetDraftSelectedItems((currentItems) => {\n\t\t\t\tconst isSelected = currentItems.some((selectedItem) => getItemKey(selectedItem, codeKey) === itemKey);\n\n\t\t\t\tif (isSelected) {\n\t\t\t\t\treturn currentItems.filter((selectedItem) => getItemKey(selectedItem, codeKey) !== itemKey);\n\t\t\t\t}\n\n\t\t\t\tif (isOptionDisabled(item)) {\n\t\t\t\t\treturn currentItems;\n\t\t\t\t}\n\n\t\t\t\treturn [...currentItems, item];\n\t\t\t});\n\t\t};\n\n\t\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\t\tinputRef.current = node;\n\n\t\t\tif (typeof ref === \"function\") {\n\t\t\t\tref(node);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (ref) {\n\t\t\t\tref.current = node;\n\t\t\t}\n\t\t};\n\n\t\tconst clearSelection = () => {\n\t\t\tsetDraftSelectedItems([]);\n\n\t\t\tif (!open) {\n\t\t\t\tonChange([]);\n\t\t\t}\n\t\t};\n\n\t\tconst selectAll = () => {\n\t\t\tsetDraftSelectedItems((currentItems) => {\n\t\t\t\tconst nextItems = [...currentItems];\n\t\t\t\tconst selectedKeys = new Set(currentItems.map((item) => getItemKey(item, codeKey)));\n\n\t\t\t\tfor (const item of visibleOptions) {\n\t\t\t\t\tconst itemKey = getItemKey(item, codeKey);\n\n\t\t\t\t\tif (!selectedKeys.has(itemKey) && !isOptionDisabled(item)) {\n\t\t\t\t\t\tselectedKeys.add(itemKey);\n\t\t\t\t\t\tnextItems.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn nextItems;\n\t\t\t});\n\t\t};\n\n\t\tconst deselectAll = () => {\n\t\t\tsetDraftSelectedItems([]);\n\t\t};\n\n\t\tconst selectOnlyOption = (item: CollectionItem) => {\n\t\t\tif (isOptionDisabled(item)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDraftSelectedItems([item]);\n\t\t\tclose();\n\t\t};\n\n\t\tconst currentSelectedItems = open ? draftSelectedItems : committedSelectedItems;\n\t\tconst hasSelectedItems = currentSelectedItems.length > 0;\n\t\tconst renderContext: MultiSelectRenderContext = {\n\t\t\tselectedItems: currentSelectedItems,\n\t\t\tcommittedSelectedItems,\n\t\t\tavailableItems: filteredAvailableItems,\n\t\t\tquery: currentQuery,\n\t\t\topen,\n\t\t\tclearSelection,\n\t\t\tselectAll,\n\t\t\tdeselectAll\n\t\t};\n\t\tconst tokenRenderer =\n\t\t\trenderToken === undefined ? createDefaultMultiSelectTokenRenderer({ codeKey, textKey: resolvedTextKey }) : renderToken;\n\t\tconst itemRenderer =\n\t\t\trenderItem ??\n\t\t\tcreateDefaultMultiSelectItemRenderer({\n\t\t\t\tcodeKey,\n\t\t\t\ttextKey: resolvedTextKey,\n\t\t\t\thideCode\n\t\t\t});\n\t\tconst tokenNode = typeof tokenRenderer === \"function\" ? tokenRenderer(renderContext) : null;\n\t\tconst toolbarNode = typeof renderToolbar === \"function\" ? renderToolbar(renderContext) : renderToolbar;\n\t\tconst selectedEntries = filteredCommittedSelectedItems.map((item, index) => ({ item, index }));\n\t\tconst itemEntries = filteredAvailableItems.map((item, index) => ({ item, index: index + selectedEntries.length }));\n\t\tconst isNoData = !isLoading && !error && visibleOptions.length === 0;\n\t\tconst triggerController = usePickerTriggerController({\n\t\t\tmode: triggerMode,\n\t\t\topen,\n\t\t\tcurrentQuery,\n\t\t\thasDisplayValue: false,\n\t\t\tinputRef,\n\t\t\tsetQuery,\n\t\t\topenList,\n\t\t\tclose,\n\t\t\ttoggleOpen,\n\t\t\tonBeforeOpen: () => {\n\t\t\t\tif (!open) {\n\t\t\t\t\tprepareOpen();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn (\n\t\t\t<PickerField label={label} description={description} disabled={disabled} size={size} className={styles.multiSelect}>\n\t\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PickerTrigger\n\t\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\toptionCount={items.length}\n\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\tplaceholderFallback=\"Выберите значения\"\n\t\t\t\t\t\t\t\tvalue={currentQuery}\n\t\t\t\t\t\t\t\tselectedValue={tokenNode}\n\t\t\t\t\t\t\t\thasSelection={hasSelectedItems}\n\t\t\t\t\t\t\t\tshowSelectedValue={hasSelectedItems && currentQuery.length === 0}\n\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\tonClear={clearSelection}\n\t\t\t\t\t\t\t\tclearAriaLabel=\"Очистить все\"\n\t\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}\n\t\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\t\trootClassName=\"flex alignItemsCenter\"\n\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerInputChange(event.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\t\tonActivateWhenOpen: () => {\n\t\t\t\t\t\t\t\t\t\t\tif (activeIndex >= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst activeItem = visibleOptions[activeIndex];\n\t\t\t\t\t\t\t\t\t\t\t\tif (activeItem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleDraftSelection(activeItem);\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tselectActiveOption();\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tenableClosedArrowDownOpen: true,\n\t\t\t\t\t\t\t\t\t\tsuppressClosedArrowUp: true\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/>\n\n\t\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\t\tactiveOptionId={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\t\tinitialFocus={-1}\n\t\t\t\t\t\t\t\treturnFocus={false}\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\ttoolbar={toolbarNode}\n\t\t\t\t\t\t\t\tselectionActions={\n\t\t\t\t\t\t\t\t\trenderToolbar === undefined ? { onSelectAll: selectAll, onDeselectAll: deselectAll } : undefined\n\t\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\t<MultiSelectOptionsWrapper isNoData={isNoData} error={error}>\n\t\t\t\t\t\t\t\t\t<div className=\"scrollable h100\">\n\t\t\t\t\t\t\t\t\t\t<MultiSelectOptionGroup\n\t\t\t\t\t\t\t\t\t\t\tentries={selectedEntries}\n\t\t\t\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\t\t\t\tactiveIndex={activeIndex}\n\t\t\t\t\t\t\t\t\t\t\tselectedKeys={selectedKeys}\n\t\t\t\t\t\t\t\t\t\t\tcodeKey={codeKey}\n\t\t\t\t\t\t\t\t\t\t\tquery={currentQuery}\n\t\t\t\t\t\t\t\t\t\t\thighlightQuery={currentHighlightQuery}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionDisabled={isOptionDisabled}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionId={getOptionId}\n\t\t\t\t\t\t\t\t\t\t\tsetOptionRef={setOptionRef}\n\t\t\t\t\t\t\t\t\t\t\ttoggleOption={toggleDraftSelection}\n\t\t\t\t\t\t\t\t\t\t\tselectOnlyOption={selectOnlyOption}\n\t\t\t\t\t\t\t\t\t\t\trenderItem={itemRenderer}\n\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t{selectedEntries.length > 0 && availableItems.length > 0 && <Separator className=\"marginBlockSm\" />}\n\n\t\t\t\t\t\t\t\t\t\t<MultiSelectOptionGroup\n\t\t\t\t\t\t\t\t\t\t\tentries={itemEntries}\n\t\t\t\t\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\t\t\t\t\tactiveIndex={activeIndex}\n\t\t\t\t\t\t\t\t\t\t\tselectedKeys={selectedKeys}\n\t\t\t\t\t\t\t\t\t\t\tcodeKey={codeKey}\n\t\t\t\t\t\t\t\t\t\t\tquery={currentQuery}\n\t\t\t\t\t\t\t\t\t\t\thighlightQuery={currentHighlightQuery}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionDisabled={isOptionDisabled}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionId={getOptionId}\n\t\t\t\t\t\t\t\t\t\t\tsetOptionRef={setOptionRef}\n\t\t\t\t\t\t\t\t\t\t\ttoggleOption={toggleDraftSelection}\n\t\t\t\t\t\t\t\t\t\t\tselectOnlyOption={selectOnlyOption}\n\t\t\t\t\t\t\t\t\t\t\trenderItem={itemRenderer}\n\t\t\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</MultiSelectOptionsWrapper>\n\t\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t</PickerField>\n\t\t);\n\t}\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n","import { ODataCollectionModel, ODataSelectBaseProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { mapSelectedItemsToValues, useODataSelectBase } from \"../../select/model/useODataSelectBase\";\n\ninterface UseODataMultiSelectOptions extends Omit<ODataSelectBaseProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (keys: string[]) => void;\n}\n\nexport function useODataMultiSelect({ odata, segment, model, value, dependencies, onChange }: UseODataMultiSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies\n\t});\n\n\tconst handleChange = (items: CollectionItem[]) => {\n\t\tonChange(mapSelectedItemsToValues(items, odataModel.selectionKey));\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\thandleChange\n\t};\n}\n","import React from \"react\";\n\nimport { ODataSelectBaseProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\n\nimport { UiBaseProps } from \"../../types\";\nimport { useODataMultiSelect } from \"../model/useODataMultiSelect\";\n\nimport { MultiSelect } from \"./MultiSelect\";\n\ntype ODataMultiSelectProps = ODataSelectBaseProps & Omit<UiBaseProps<string[]>, \"placeholder\"> & {};\n\nexport const ODataMultiSelect: React.FC<ODataMultiSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tsize\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataMultiSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\treturn (\n\t\t<MultiSelect\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tsize={size}\n\t\t\tcodeKey={odataModel.codeKey}\n\t\t\ttextKey={odataModel.textKey}\n\t\t\thideCode={segment.hideCode ?? odata.hideCode}\n\t\t\titems={odataModel.filteredItems}\n\t\t\tvalue={odataModel.selectedItems}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tquery={odataModel.query}\n\t\t\tdefaultFilter={false}\n\t\t\thighlightQuery={odataModel.debouncedQuery}\n\t\t\tisLoading={odataModel.isLoading}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\terror={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t/>\n\t);\n};\n","import { useCallback } from \"react\";\n\nimport { useODataDependentSelection } from \"../../odata-dependent\";\n\nimport { ODataMultiSelect } from \"./ODataMultiSelect\";\n\nimport type { ODataDependentSegmentControlProps } from \"../../odata-dependent\";\n\nexport type ODataDependentSegmentMultiSelectProps = ODataDependentSegmentControlProps;\n\nexport function ODataDependentSegmentMultiSelect(props: ODataDependentSegmentMultiSelectProps) {\n\tconst { item, disabled, label, description, size, width = 15 } = props;\n\tconst selection = useODataDependentSelection(props);\n\tconst { updateSegment } = selection;\n\tconst widthStyle = `calc(${width}em + var(--width-add))`;\n\n\tconst handleSelectionChange = useCallback(\n\t\t(keys: string[]) => {\n\t\t\tupdateSegment(item.id, keys);\n\t\t},\n\t\t[item.id, updateSegment]\n\t);\n\n\treturn (\n\t\t<div style={{ maxWidth: widthStyle, minWidth: widthStyle }}>\n\t\t\t<ODataMultiSelect\n\t\t\t\todata={item.odata}\n\t\t\t\tsegment={item.segment}\n\t\t\t\tmodel={item.model}\n\t\t\t\tdependencies={selection.values}\n\t\t\t\tvalue={selection.values[item.id]}\n\t\t\t\tonChange={handleSelectionChange}\n\t\t\t\tdisabled={disabled || selection.isSegmentDisabled(item.id)}\n\t\t\t\tlabel={label}\n\t\t\t\tdescription={description}\n\t\t\t\tsize={size}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n","import { flattenODataDependentServices, type ODataDependentBaseProps } from \"@ryuzaki13/react-foundation-api/odata\";\n\nimport { useODataDependentSelection } from \"../../odata-dependent\";\n\nimport { ODataDependentSegmentMultiSelect } from \"./ODataDependentSegmentMultiSelect\";\n\nimport type { UseODataDependentSelectionOptions } from \"../../odata-dependent\";\n\nexport type ODataDependentMultiSelectProps = Omit<ODataDependentBaseProps, \"dependencies\" | \"value\"> &\n\tUseODataDependentSelectionOptions & {\n\t\t/**\n\t\t * Ширина одного элемента в `em` единицах.\n\t\t *\n\t\t * @default 15\n\t\t */\n\t\twidth?: number;\n\t};\n\nexport function ODataDependentMultiSelect(props: ODataDependentMultiSelectProps) {\n\tconst { width = 15, odata, segments, model, values, defaultValues, onChange, selectionMode, segmentOrder } = props;\n\tconst selection = useODataDependentSelection({ values, defaultValues, onChange });\n\tconst segmentSelectionProps =\n\t\tselectionMode === \"sequential\" ? { selectionMode: \"sequential\" as const, segmentOrder } : { selectionMode, segmentOrder };\n\tconst items = flattenODataDependentServices([\n\t\t{\n\t\t\todata,\n\t\t\tsegments,\n\t\t\tmodel\n\t\t}\n\t]);\n\n\treturn items.map((item) => (\n\t\t<ODataDependentSegmentMultiSelect\n\t\t\tkey={item.id}\n\t\t\titem={item}\n\t\t\tvalues={selection.values}\n\t\t\tonChange={selection.updateValues}\n\t\t\t{...segmentSelectionProps}\n\t\t\twidth={width}\n\t\t/>\n\t));\n}\n","import { MultiSelect } from \"./MultiSelect\";\n\nimport type { UiBaseProps } from \"../../types\";\nimport type { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], string> extends never ? never : K;\n}[keyof TOption];\n\nexport interface SerializableMultiSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends UiBaseProps<Extract<TOption[TOptionKey], string>[]> {\n\toptions: readonly TOption[];\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], string> {\n\treturn option[optionKey] as Extract<TOption[TOptionKey], string>;\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 {\n\tconst label = option[optionLabel];\n\n\tif (typeof label === \"string\") {\n\t\treturn label;\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn typeof key === \"string\" ? key : String(key);\n}\n\nexport function SerializableMultiSelect<\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}: SerializableMultiSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\t// Как будто можно не мемоизировать, нет смысла\n\tconst items = options.map<CollectionItem>((option) => ({\n\t\tkey: String(getSerializableOptionKey(option, optionKey)),\n\t\ttext: getSerializableOptionLabel(option, optionLabel, optionKey)\n\t}));\n\tconst selectedKeys = new Set((value ?? []).map((item) => String(item)));\n\tconst selectedItems = items.filter((item) => selectedKeys.has(item.key));\n\n\treturn (\n\t\t<MultiSelect\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\titems={items}\n\t\t\tcodeKey=\"key\"\n\t\t\ttextKey=\"text\"\n\t\t\thideCode={renderCode ? undefined : true}\n\t\t\tvalue={selectedItems}\n\t\t\tonChange={(nextItems) => onChange(nextItems.map((item) => item.key) as Extract<TOption[TOptionKey], string>[])}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|