@ryuzaki13/react-foundation-ui 1.0.1 → 1.0.2
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.d.ts +3 -0
- package/dist/advanced-search/index.d.ts.map +1 -0
- package/dist/advanced-search/index.js +361 -0
- package/dist/advanced-search/index.js.map +1 -0
- package/dist/advanced-search/lib/index.d.ts +2 -0
- package/dist/advanced-search/lib/index.d.ts.map +1 -0
- package/dist/advanced-search/lib/searchParts.d.ts +3 -0
- package/dist/advanced-search/lib/searchParts.d.ts.map +1 -0
- package/dist/advanced-search/model/index.d.ts +5 -0
- package/dist/advanced-search/model/index.d.ts.map +1 -0
- package/dist/advanced-search/model/types.d.ts +55 -0
- package/dist/advanced-search/model/types.d.ts.map +1 -0
- package/dist/advanced-search/model/useAdvancedSearch.d.ts +11 -0
- package/dist/advanced-search/model/useAdvancedSearch.d.ts.map +1 -0
- package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts +6 -0
- package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts.map +1 -0
- package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts +13 -0
- package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts.map +1 -0
- package/dist/advanced-search/ui/AdvancedSearchModal.d.ts +13 -0
- package/dist/advanced-search/ui/AdvancedSearchModal.d.ts.map +1 -0
- package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts +8 -0
- package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts.map +1 -0
- package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts +9 -0
- package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts.map +1 -0
- package/dist/advanced-search/ui/index.d.ts +2 -0
- package/dist/advanced-search/ui/index.d.ts.map +1 -0
- package/dist/badge/index.js +1 -1
- package/dist/badge/stories/Badge.stories.js +22 -22
- package/dist/base-table/index.js +2 -2
- package/dist/button/index.js +7 -7
- package/dist/button/stories/Button.stories.js +1 -1
- package/dist/check-box/index.js +1 -1
- package/dist/check-box/stories/CheckBox.stories.js +25 -25
- package/dist/chunks/{BadgeList-6qL9oNAp.js → BadgeList-DYgun2rf.js} +16 -16
- package/dist/chunks/{BadgeList-6qL9oNAp.js.map → BadgeList-DYgun2rf.js.map} +1 -1
- package/dist/chunks/{Button-BZ_b-Kin.js → Button-CCWuggdA.js} +16 -16
- package/dist/chunks/{Button-BZ_b-Kin.js.map → Button-CCWuggdA.js.map} +1 -1
- package/dist/chunks/CalendarView-DjeTJkTT.js +435 -0
- package/dist/chunks/{CalendarView-DjShdvRD.js.map → CalendarView-DjeTJkTT.js.map} +1 -1
- package/dist/chunks/CheckBox-BowNqqd3.js +48 -0
- package/dist/chunks/{CheckBox-CulnjNvJ.js.map → CheckBox-BowNqqd3.js.map} +1 -1
- package/dist/chunks/{DateInput-LSSvObtg.js → DateInput--tfofQ2x.js} +68 -68
- package/dist/chunks/{DateInput-LSSvObtg.js.map → DateInput--tfofQ2x.js.map} +1 -1
- package/dist/chunks/{DateRangePresetSelect-CyzGMvVp.js → DateRangePresetSelect-UgsfaOeM.js} +22 -22
- package/dist/chunks/{DateRangePresetSelect-CyzGMvVp.js.map → DateRangePresetSelect-UgsfaOeM.js.map} +1 -1
- package/dist/chunks/Detail-DHDMsg8q.js +80 -0
- package/dist/chunks/{Detail-DKolHye4.js.map → Detail-DHDMsg8q.js.map} +1 -1
- package/dist/chunks/{Dialog-BPS4BeWZ.js → Dialog-CFIvGxER.js} +8 -8
- package/dist/chunks/{Dialog-BPS4BeWZ.js.map → Dialog-CFIvGxER.js.map} +1 -1
- package/dist/chunks/DisclosureGroup-CfRTkl6Z.js +49 -0
- package/dist/chunks/{DisclosureGroup-Plk2M_Vl.js.map → DisclosureGroup-CfRTkl6Z.js.map} +1 -1
- package/dist/chunks/{DropZone-DPGTpHI6.js → DropZone-kJfbZU5g.js} +22 -22
- package/dist/chunks/{DropZone-DPGTpHI6.js.map → DropZone-kJfbZU5g.js.map} +1 -1
- package/dist/chunks/{DropdownMenu-Ds-trH4M.js → DropdownMenu-DQeR3y7M.js} +138 -138
- package/dist/chunks/{DropdownMenu-Ds-trH4M.js.map → DropdownMenu-DQeR3y7M.js.map} +1 -1
- package/dist/chunks/{Flex-DbBdq336.js → Flex-DUYSL5TE.js} +16 -16
- package/dist/chunks/{Flex-DbBdq336.js.map → Flex-DUYSL5TE.js.map} +1 -1
- package/dist/chunks/Input-BmjlpA09.js +227 -0
- package/dist/chunks/{Input-Wrew1puH.js.map → Input-BmjlpA09.js.map} +1 -1
- package/dist/chunks/{InputDateTime-2PCX8an8.js → InputDateTime-CxfAFe2L.js} +56 -56
- package/dist/chunks/{InputDateTime-2PCX8an8.js.map → InputDateTime-CxfAFe2L.js.map} +1 -1
- package/dist/chunks/{InputFile-Ca-bRo93.js → InputFile-CyZu__B_.js} +17 -17
- package/dist/chunks/{InputFile-Ca-bRo93.js.map → InputFile-CyZu__B_.js.map} +1 -1
- package/dist/chunks/{InputFiles-pI9rQXOI.js → InputFiles-CrTJV27R.js} +31 -31
- package/dist/chunks/{InputFiles-pI9rQXOI.js.map → InputFiles-CrTJV27R.js.map} +1 -1
- package/dist/chunks/{InputImage-B522AQzl.js → InputImage-Cw8rPYQu.js} +18 -18
- package/dist/chunks/{InputImage-B522AQzl.js.map → InputImage-Cw8rPYQu.js.map} +1 -1
- package/dist/chunks/{LabeledExpandableActionPanel-CWmOSWeS.js → LabeledExpandableActionPanel-D3kUvmFH.js} +26 -26
- package/dist/chunks/{LabeledExpandableActionPanel-CWmOSWeS.js.map → LabeledExpandableActionPanel-D3kUvmFH.js.map} +1 -1
- package/dist/chunks/Listbox-BZlp5qHz.js +81 -0
- package/dist/chunks/{Listbox-B6F_IKQv.js.map → Listbox-BZlp5qHz.js.map} +1 -1
- package/dist/chunks/{MultiSelect-CUXA8gx-.js → MultiSelect-D1XYuwH1.js} +113 -113
- package/dist/chunks/{MultiSelect-CUXA8gx-.js.map → MultiSelect-D1XYuwH1.js.map} +1 -1
- package/dist/chunks/{NotificationsHost-Bnq7xFKO.js → NotificationsHost-_icJx4xR.js} +44 -44
- package/dist/chunks/{NotificationsHost-Bnq7xFKO.js.map → NotificationsHost-_icJx4xR.js.map} +1 -1
- package/dist/chunks/{PresetRangeDateInput-B_8jsilZ.js → PresetRangeDateInput-CapirptQ.js} +11 -11
- package/dist/chunks/{PresetRangeDateInput-B_8jsilZ.js.map → PresetRangeDateInput-CapirptQ.js.map} +1 -1
- package/dist/chunks/RadioButton-D0uA0rX_.js +48 -0
- package/dist/chunks/{RadioButton-D5vPW4Yr.js.map → RadioButton-D0uA0rX_.js.map} +1 -1
- package/dist/chunks/RadioGroup-B9XjkcOy.js +121 -0
- package/dist/chunks/{RadioGroup-BAhN1d1X.js.map → RadioGroup-B9XjkcOy.js.map} +1 -1
- package/dist/chunks/{Select-CoAYWNOn.js → Select-CXeVjVKA.js} +11 -11
- package/dist/chunks/{Select-CoAYWNOn.js.map → Select-CXeVjVKA.js.map} +1 -1
- package/dist/chunks/{SerializableSelect-awBOWKTj.js → SerializableSelect-DkYeJtAO.js} +2 -2
- package/dist/chunks/{SerializableSelect-awBOWKTj.js.map → SerializableSelect-DkYeJtAO.js.map} +1 -1
- package/dist/chunks/{SingleDateTimeInput-o44Vlwdk.js → SingleDateTimeInput-BmeuVGQT.js} +78 -78
- package/dist/chunks/{SingleDateTimeInput-o44Vlwdk.js.map → SingleDateTimeInput-BmeuVGQT.js.map} +1 -1
- package/dist/chunks/{Splitter-NjNFuEq4.js → Splitter-BFkVGVRb.js} +32 -32
- package/dist/chunks/{Splitter-NjNFuEq4.js.map → Splitter-BFkVGVRb.js.map} +1 -1
- package/dist/chunks/StateSelect-1jH3uLz9.js +78 -0
- package/dist/chunks/{StateSelect-abZq176J.js.map → StateSelect-1jH3uLz9.js.map} +1 -1
- package/dist/chunks/{Switch-DHMnZVmN.js → Switch-B57Qmy1z.js} +19 -19
- package/dist/chunks/{Switch-DHMnZVmN.js.map → Switch-B57Qmy1z.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-Dt4eaPA3.js → TextEditorLexicalClient-DRhAswpP.js} +204 -204
- package/dist/chunks/{TextEditorLexicalClient-Dt4eaPA3.js.map → TextEditorLexicalClient-DRhAswpP.js.map} +1 -1
- package/dist/chunks/{Textarea-DOVrPH4I.js → Textarea-C9UdUueF.js} +2 -2
- package/dist/chunks/{Textarea-DOVrPH4I.js.map → Textarea-C9UdUueF.js.map} +1 -1
- package/dist/chunks/{TimePanel-_kF2RtHk.js → TimePanel-b4saqoUY.js} +27 -27
- package/dist/chunks/{TimePanel-_kF2RtHk.js.map → TimePanel-b4saqoUY.js.map} +1 -1
- package/dist/chunks/{Toggle-C_fE-bkM.js → Toggle-DVqOQXmt.js} +18 -18
- package/dist/chunks/{Toggle-C_fE-bkM.js.map → Toggle-DVqOQXmt.js.map} +1 -1
- package/dist/chunks/{TreeMultiSelect-C76RYavo.js → TreeMultiSelect-CfQhlfnC.js} +6 -6
- package/dist/chunks/{TreeMultiSelect-C76RYavo.js.map → TreeMultiSelect-CfQhlfnC.js.map} +1 -1
- package/dist/chunks/{TreePickerBase-qNHIWbYL.js → TreePickerBase-BBUOWsSu.js} +49 -49
- package/dist/chunks/{TreePickerBase-qNHIWbYL.js.map → TreePickerBase-BBUOWsSu.js.map} +1 -1
- package/dist/chunks/{TreeSelect-LEhNdPCX.js → TreeSelect-2wUXs90E.js} +6 -6
- package/dist/chunks/{TreeSelect-LEhNdPCX.js.map → TreeSelect-2wUXs90E.js.map} +1 -1
- package/dist/chunks/base-table-CoQlKABk.js +514 -0
- package/dist/chunks/{base-table-ij2guVMB.js.map → base-table-CoQlKABk.js.map} +1 -1
- package/dist/chunks/{floating-arrow-CdRV69sg.js → floating-arrow-BE-z4QkE.js} +7 -7
- package/dist/chunks/{floating-arrow-CdRV69sg.js.map → floating-arrow-BE-z4QkE.js.map} +1 -1
- package/dist/chunks/input-search-Dw4rnJBq.js +30 -0
- package/dist/chunks/input-search-Dw4rnJBq.js.map +1 -0
- package/dist/chunks/{layout-picker-CzZ8Xzkk.js → layout-picker-MWaImn3L.js} +34 -34
- package/dist/chunks/{layout-picker-CzZ8Xzkk.js.map → layout-picker-MWaImn3L.js.map} +1 -1
- package/dist/chunks/{misc-Bj0y3ERC.js → misc-DoqZBMof.js} +110 -110
- package/dist/chunks/{misc-Bj0y3ERC.js.map → misc-DoqZBMof.js.map} +1 -1
- package/dist/chunks/{modal-B4ivQb2h.js → modal-B3HY3laL.js} +40 -40
- package/dist/chunks/{modal-B4ivQb2h.js.map → modal-B3HY3laL.js.map} +1 -1
- package/dist/chunks/multi-select-BzYIviCU.js +1305 -0
- package/dist/chunks/multi-select-BzYIviCU.js.map +1 -0
- package/dist/chunks/{picker-gIUs0nE_.js → picker-Dg55Ss-B.js} +74 -74
- package/dist/chunks/{picker-gIUs0nE_.js.map → picker-Dg55Ss-B.js.map} +1 -1
- package/dist/chunks/{popover-C79P5bm2.js → popover-xJJqy1v6.js} +52 -52
- package/dist/chunks/{popover-C79P5bm2.js.map → popover-xJJqy1v6.js.map} +1 -1
- package/dist/chunks/{separator-CIqnk2z9.js → separator-B72Aq-6a.js} +2 -2
- package/dist/chunks/{separator-CIqnk2z9.js.map → separator-B72Aq-6a.js.map} +1 -1
- package/dist/chunks/{slider-CigVo4Ju.js → slider-CFKsfxFp.js} +83 -83
- package/dist/chunks/{slider-CigVo4Ju.js.map → slider-CFKsfxFp.js.map} +1 -1
- package/dist/chunks/sortable-DcTIAbjD.js +185 -0
- package/dist/chunks/{sortable-BZqnZ_LA.js.map → sortable-DcTIAbjD.js.map} +1 -1
- package/dist/chunks/{table-CK-CM2zD.js → table-Dc3AqMzP.js} +21 -21
- package/dist/chunks/{table-CK-CM2zD.js.map → table-Dc3AqMzP.js.map} +1 -1
- package/dist/chunks/{table-column-interactions-DPyJDD7P.js → table-column-interactions-6RGjmiI5.js} +24 -24
- package/dist/chunks/{table-column-interactions-DPyJDD7P.js.map → table-column-interactions-6RGjmiI5.js.map} +1 -1
- package/dist/chunks/{tabs-D5ikIIng.js → tabs-DlnVVMJl.js} +96 -96
- package/dist/chunks/{tabs-D5ikIIng.js.map → tabs-DlnVVMJl.js.map} +1 -1
- package/dist/chunks/{toolbar-C-Ziw_Uh.js → toolbar-BCZNdRXM.js} +2 -2
- package/dist/chunks/{toolbar-C-Ziw_Uh.js.map → toolbar-BCZNdRXM.js.map} +1 -1
- package/dist/chunks/{wheel-picker-DUHGy7wE.js → wheel-picker-FS58cRsQ.js} +23 -23
- package/dist/chunks/{wheel-picker-DUHGy7wE.js.map → wheel-picker-FS58cRsQ.js.map} +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/context-menu/stories/ContextMenu.stories.js +45 -45
- package/dist/date-input/index.js +2 -2
- package/dist/date-input/stories/DateInput.stories.js +2 -2
- package/dist/date-range-preset-select/index.js +1 -1
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +8 -8
- package/dist/date-time-input/index.js +1 -1
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +38 -38
- package/dist/date-time-input/stories/TimePanel.stories.js +9 -9
- package/dist/detail/index.js +1 -1
- package/dist/detail/stories/Detail.stories.js +1 -1
- package/dist/dialog/index.js +1 -1
- package/dist/dialog/stories/Dialog.stories.js +16 -16
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/stories/Disclosure.stories.js +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/drop-zone/stories/DropZone.stories.js +14 -14
- package/dist/errors/index.js +47 -47
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +28 -28
- package/dist/flex/index.js +2 -2
- package/dist/flex/stories/Flex.stories.js +2 -2
- package/dist/floating-arrow/index.js +1 -1
- package/dist/fullscreen-portal/index.js +6 -6
- package/dist/grid/stories/Grid.stories.js +1 -1
- package/dist/image/index.js +123 -123
- package/dist/input/index.js +1 -1
- package/dist/input/stories/Input.stories.js +11 -11
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-date-time/stories/InputDateTime.stories.js +11 -11
- package/dist/input-file/index.js +1 -1
- package/dist/input-file/stories/InputFile.stories.js +9 -9
- package/dist/input-files/index.js +1 -1
- package/dist/input-files/stories/InputFiles.stories.js +9 -9
- package/dist/input-image/index.js +1 -1
- package/dist/input-image/stories/InputImage.stories.js +15 -15
- package/dist/input-search/index.js +2 -30
- package/dist/layout-picker/index.js +1 -1
- package/dist/layout-picker/stories/LayoutPicker.stories.js +52 -52
- package/dist/list/index.js +27 -27
- package/dist/listbox/index.js +1 -1
- package/dist/listbox/stories/Listbox.stories.js +19 -19
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/modal/stories/Modal.stories.js +55 -55
- package/dist/multi-select/index.js +3 -1141
- package/dist/multi-select/ui/stories/MultiSelect.stories.js +17 -17
- package/dist/notifications/index.js +1 -1
- package/dist/notifications/ui/stories/NotificationsHost.stories.js +59 -59
- package/dist/period-select/index.js +20 -20
- package/dist/period-select/stories/PeriodSelect.stories.js +17 -17
- package/dist/picker/index.js +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/popover/stories/Popover.stories.js +16 -16
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +9 -9
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js +1 -1
- package/dist/radio-button/stories/RadioButton.stories.js +11 -11
- package/dist/radio-group/index.js +1 -1
- package/dist/radio-group/stories/RadioGroup.stories.js +21 -21
- package/dist/select/index.js +2 -2
- package/dist/select/stories/Select.stories.js +23 -23
- package/dist/select/stories/SerializableSelect.stories.js +22 -22
- package/dist/separator/index.js +1 -1
- package/dist/simple-table/index.js +5 -5
- package/dist/slider/index.js +1 -1
- package/dist/slider/stories/Slider.stories.js +32 -32
- package/dist/slider/stories/SliderInput.stories.js +39 -39
- package/dist/sortable/index.js +1 -1
- package/dist/sortable/stories/Sortable.stories.js +23 -23
- package/dist/splitter/index.js +1 -1
- package/dist/splitter/stories/Splitter.stories.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/state-select/stories/StateSelect.stories.js +23 -23
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/switch/stories/Switch.stories.js +11 -11
- package/dist/table/index.js +1 -1
- package/dist/table-column-interactions/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/tabs/stories/Tabs.stories.js +39 -39
- package/dist/text/index.js +20 -20
- package/dist/text-editor/index.js +3 -3
- package/dist/text-editor/toolbar/index.js +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/stories/Textarea.stories.js +8 -8
- package/dist/three-scene/index.js +7 -7
- package/dist/toggle/index.js +1 -1
- package/dist/toggle/stories/Toggle.stories.js +7 -7
- package/dist/toolbar/index.js +16 -16
- package/dist/tree/index.js +24 -24
- package/dist/tree-select/index.js +2 -2
- package/dist/tree-select/stories/TreeMultiSelect.stories.js +9 -9
- package/dist/tree-select/stories/TreeSelect.stories.js +9 -9
- package/dist/tree-table/index.js +32 -32
- package/dist/wheel-picker/index.js +1 -1
- package/package.json +11 -1
- package/dist/chunks/CalendarView-DjShdvRD.js +0 -435
- package/dist/chunks/CheckBox-CulnjNvJ.js +0 -48
- package/dist/chunks/Detail-DKolHye4.js +0 -80
- package/dist/chunks/DisclosureGroup-Plk2M_Vl.js +0 -49
- package/dist/chunks/Input-Wrew1puH.js +0 -227
- package/dist/chunks/Listbox-B6F_IKQv.js +0 -81
- package/dist/chunks/RadioButton-D5vPW4Yr.js +0 -48
- package/dist/chunks/RadioGroup-BAhN1d1X.js +0 -121
- package/dist/chunks/StateSelect-abZq176J.js +0 -78
- package/dist/chunks/base-table-ij2guVMB.js +0 -514
- package/dist/chunks/sortable-BZqnZ_LA.js +0 -185
- package/dist/input-search/index.js.map +0 -1
- package/dist/multi-select/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Listbox-
|
|
1
|
+
{"version":3,"file":"Listbox-BZlp5qHz.js","names":[],"sources":["../../src/listbox/Listbox.tsx"],"sourcesContent":["import { HTMLAttributes, JSX, KeyboardEvent, ReactNode, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\n\nimport {\n\tcn,\n\tfindFirstEnabledIndex,\n\tfindLastEnabledIndex,\n\tfindNextEnabledIndex,\n\thandleKeyboardActivation\n} from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\ntype ListboxOption<T> = {\n\tvalue: T;\n\tlabel?: string;\n\tdisabled?: boolean;\n};\n\ninterface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLUListElement>, \"onChange\" | \"defaultValue\" | \"value\"> {\n\toptions: ListboxOption<T>[];\n\tfocusOnMount?: boolean;\n\trenderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;\n\tgetKey?: (option: ListboxOption<T>, index: number) => string;\n}\n\n// Вариант для single-select\ninterface ListboxSingleProps<T> extends ListboxBaseProps<T> {\n\tmultiple?: false;\n\tvalue?: T;\n\tdefaultValue?: T;\n\tonChange?: (value: T, option: ListboxOption<T>) => void;\n}\n\n// Вариант для multi-select\ninterface ListboxMultiProps<T> extends ListboxBaseProps<T> {\n\tmultiple: true;\n\tvalue?: T[];\n\tdefaultValue?: T[];\n\tonChange?: (value: T[], option: ListboxOption<T>) => void;\n}\n\ntype ListboxProps<T> = ListboxSingleProps<T> | ListboxMultiProps<T>;\n\nconst isOptionDisabled = <T,>(option: ListboxOption<T>) => option.disabled === true;\n\nfunction getInitialFocusIndex<T>(options: ListboxOption<T>[], value: T | T[] | undefined, multiple: boolean | undefined) {\n\tif (multiple) {\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\tconst selectedIndex = options.findIndex((option) => value.includes(option.value) && !option.disabled);\n\t\t\tif (selectedIndex >= 0) {\n\t\t\t\treturn selectedIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn findFirstEnabledIndex(options, isOptionDisabled);\n\t}\n\n\tif (value !== undefined) {\n\t\tconst selectedIndex = options.findIndex((option) => option.value === value && !option.disabled);\n\t\tif (selectedIndex >= 0) {\n\t\t\treturn selectedIndex;\n\t\t}\n\t}\n\n\treturn findFirstEnabledIndex(options, isOptionDisabled);\n}\n\n/**\n * Компонент выбора одного или нескольких элементов из списка. Поддерживает controlled API, поиск по данным и рендер кастомных опций.\n */\nexport function Listbox<T>(props: ListboxSingleProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxMultiProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxProps<T>): JSX.Element {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { value, defaultValue, multiple, focusOnMount, renderItem, getKey, options, onChange, id: externalId, ...rest } = props;\n\n\tconst isControlled = value !== undefined;\n\tconst autoId = useId();\n\tconst listId = externalId ?? `${autoId}-listbox`;\n\tconst [internalValue, setInternalValue] = useState<T | T[] | undefined>(defaultValue);\n\tconst listRef = useRef<HTMLUListElement>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState(() => getInitialFocusIndex(options, value ?? defaultValue, multiple));\n\t// const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\n\tconst selectedValues = useMemo(\n\t\t() => (isControlled ? value : internalValue) ?? (multiple ? [] : null),\n\t\t[internalValue, isControlled, multiple, value]\n\t);\n\tconst activeIndex = /*hoveredIndex ??*/ focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (option.disabled) return;\n\n\t\tlet newValue: T | T[];\n\t\tif (props.multiple) {\n\t\t\tconst arr = Array.isArray(selectedValues) ? selectedValues : [];\n\t\t\tnewValue = arr.includes(option.value) ? arr.filter((v) => v !== option.value) : [...arr, option.value];\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t} else {\n\t\t\tnewValue = option.value;\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t}\n\n\t\tif (!isControlled) setInternalValue(newValue);\n\t};\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n\t\tif (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, 1, isOptionDisabled));\n\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\te.preventDefault();\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, -1, isOptionDisabled));\n\t\t} else if (e.key === \"Home\") {\n\t\t\te.preventDefault();\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findFirstEnabledIndex(options, isOptionDisabled));\n\t\t} else if (e.key === \"End\") {\n\t\t\te.preventDefault();\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findLastEnabledIndex(options, isOptionDisabled));\n\t\t} else if (\n\t\t\thandleKeyboardActivation(e, () => {\n\t\t\t\tconst activeOption = options[activeIndex];\n\t\t\t\tif (activeOption) {\n\t\t\t\t\thandleSelect(activeOption);\n\t\t\t\t}\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst el = listRef.current?.querySelectorAll<HTMLElement>('[role=\"option\"]')[activeIndex];\n\t\tif (el) el.scrollIntoView({ block: \"nearest\" });\n\t}, [activeIndex]);\n\n\tuseLayoutEffect(() => {\n\t\tif (focusOnMount) {\n\t\t\tlistRef.current?.focus();\n\t\t}\n\t}, [focusOnMount]);\n\n\treturn (\n\t\t<ul\n\t\t\tref={listRef}\n\t\t\tid={listId}\n\t\t\trole=\"listbox\"\n\t\t\taria-multiselectable={multiple || undefined}\n\t\t\taria-activedescendant={activeIndex >= 0 ? `${listId}-option-${activeIndex}` : undefined}\n\t\t\ttabIndex={0}\n\t\t\t// onMouseLeave={() => setHoveredIndex(null)}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...rest}\n\t\t\tclassName={cn(uiStyles.uiPanel, \"scrollable\")}>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst selected = multiple\n\t\t\t\t\t? Array.isArray(selectedValues) && selectedValues.includes(option.value)\n\t\t\t\t\t: selectedValues === option.value;\n\t\t\t\tconst active = index === activeIndex;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={getKey ? getKey(option, index) : index}\n\t\t\t\t\t\tid={`${listId}-option-${index}`}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\taria-disabled={option.disabled || undefined}\n\t\t\t\t\t\tonMouseDown={(e) => {\n\t\t\t\t\t\t\te.preventDefault(); // чтобы не сбрасывался фокус listbox\n\t\t\t\t\t\t\tif (option.disabled) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetFocusedIndex(index);\n\t\t\t\t\t\t\t// setHoveredIndex(index);\n\t\t\t\t\t\t\thandleSelect(option);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t// onMouseEnter={() => setHoveredIndex(index)}\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tuiStyles.uiPopupOption,\n\t\t\t\t\t\t\toption.disabled && uiStyles.disabled,\n\t\t\t\t\t\t\tactive && uiStyles.uiPopupOptionActive,\n\t\t\t\t\t\t\tselected && uiStyles.selected\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t{selected ? (\n\t\t\t\t\t\t\t<CheckIcon className={uiStyles.uiPopupOptionIcon} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className={uiStyles.uiPopupOptionIcon}></span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div /*className={uiStyles.uiOptionText}*/>\n\t\t\t\t\t\t\t{renderItem ? renderItem(option, selected, active) : (option.label ?? String(option.value))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ul>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { Text as e } from "../text/index.js";
|
|
2
2
|
import { t } from "./ui.module-BisoTevy.js";
|
|
3
3
|
import { t as n } from "./Grid-ByIIytjh.js";
|
|
4
|
-
import { t as r } from "./CheckBox-
|
|
5
|
-
import { a as i, c as a, d as o, f as s, i as
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
4
|
+
import { t as r } from "./CheckBox-BowNqqd3.js";
|
|
5
|
+
import { a as i, c as a, d as o, f as s, i as c, l, n as ee, r as u, t as d, u as f } from "./picker-Dg55Ss-B.js";
|
|
6
|
+
import { t as p } from "./separator-B72Aq-6a.js";
|
|
7
|
+
import { t as m } from "./SelectOptionContent-CI7wq9Oi.js";
|
|
8
|
+
import { forwardRef as h, useCallback as g, useMemo as _, useRef as te, useState as ne } from "react";
|
|
9
|
+
import { cn as re } from "@ryuzaki13/react-foundation-lib/utils";
|
|
10
|
+
import { XIcon as ie } from "lucide-react";
|
|
11
|
+
import { Fragment as ae, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
12
12
|
//#region src/multi-select/ui/MultiSelectOption.tsx
|
|
13
|
-
function
|
|
14
|
-
return /* @__PURE__ */
|
|
13
|
+
function b({ item: e, textKey: t, codeKey: n, highlight: r }) {
|
|
14
|
+
return /* @__PURE__ */ v(m, {
|
|
15
15
|
label: e[t],
|
|
16
16
|
code: n && e[n],
|
|
17
17
|
highlight: r
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
var
|
|
20
|
+
var x = {
|
|
21
21
|
multiSelect: "_9oSdQi",
|
|
22
22
|
multiSelectTokens: "iobHig",
|
|
23
23
|
multiSelectToken: "yatXso",
|
|
@@ -25,20 +25,20 @@ var b = {
|
|
|
25
25
|
};
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/multi-select/ui/MultiSelectOptionsToolbar.tsx
|
|
28
|
-
function
|
|
29
|
-
return /* @__PURE__ */
|
|
28
|
+
function S({ onSelectAll: e, onDeselectAll: t }) {
|
|
29
|
+
return /* @__PURE__ */ y(n.Container, {
|
|
30
30
|
gap: "xs",
|
|
31
31
|
templateColumns: "1fr 1fr",
|
|
32
|
-
children: [/* @__PURE__ */
|
|
32
|
+
children: [/* @__PURE__ */ v("button", {
|
|
33
33
|
type: "button",
|
|
34
|
-
className:
|
|
34
|
+
className: x.selectAllButton,
|
|
35
35
|
onClick: e,
|
|
36
36
|
"data-ui": "multi-select-select-all",
|
|
37
37
|
"data-action": "select-all",
|
|
38
38
|
children: "Выбрать все"
|
|
39
|
-
}), /* @__PURE__ */
|
|
39
|
+
}), /* @__PURE__ */ v("button", {
|
|
40
40
|
type: "button",
|
|
41
|
-
className:
|
|
41
|
+
className: x.selectAllButton,
|
|
42
42
|
onClick: t,
|
|
43
43
|
"data-ui": "multi-select-deselect-all",
|
|
44
44
|
"data-action": "deselect-all",
|
|
@@ -48,56 +48,56 @@ function x({ onSelectAll: e, onDeselectAll: t }) {
|
|
|
48
48
|
}
|
|
49
49
|
//#endregion
|
|
50
50
|
//#region src/multi-select/ui/MultiSelectToken.tsx
|
|
51
|
-
function
|
|
52
|
-
return e ? /* @__PURE__ */
|
|
53
|
-
className:
|
|
54
|
-
children: /* @__PURE__ */
|
|
55
|
-
className:
|
|
51
|
+
function C({ value: e }) {
|
|
52
|
+
return e ? /* @__PURE__ */ v("div", {
|
|
53
|
+
className: x.multiSelectTokens,
|
|
54
|
+
children: /* @__PURE__ */ v("div", {
|
|
55
|
+
className: x.multiSelectToken,
|
|
56
56
|
children: e
|
|
57
57
|
})
|
|
58
58
|
}) : null;
|
|
59
59
|
}
|
|
60
60
|
//#endregion
|
|
61
61
|
//#region src/multi-select/ui/defaultRenderers.tsx
|
|
62
|
-
function
|
|
62
|
+
function w(e, t, n) {
|
|
63
63
|
if (n) return n;
|
|
64
64
|
let r = e[0];
|
|
65
65
|
return r ? Object.keys(r).find((e) => e !== t) ?? t : t;
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function oe(e, t, n) {
|
|
68
68
|
if (e.length === 0) return;
|
|
69
69
|
if (e.length > 1) return `${e.length} элемент${e.length > 5 ? "ов" : "а"})`;
|
|
70
|
-
let r =
|
|
70
|
+
let r = w(e, t, n);
|
|
71
71
|
return e[0]?.[r] ?? e[0]?.[t];
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function se(e) {
|
|
74
74
|
return function(t) {
|
|
75
|
-
return /* @__PURE__ */
|
|
75
|
+
return /* @__PURE__ */ v(C, { value: oe(t.selectedItems, e.codeKey, e.textKey) });
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
-
function
|
|
79
|
-
return /* @__PURE__ */
|
|
78
|
+
function ce(e) {
|
|
79
|
+
return /* @__PURE__ */ v(S, {
|
|
80
80
|
onSelectAll: e.selectAll,
|
|
81
81
|
onDeselectAll: e.deselectAll
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function le(e) {
|
|
85
85
|
return function(t, n) {
|
|
86
|
-
return /* @__PURE__ */
|
|
86
|
+
return /* @__PURE__ */ v(b, {
|
|
87
87
|
item: t,
|
|
88
88
|
selected: n.selected,
|
|
89
89
|
highlight: n.highlightQuery,
|
|
90
|
-
textKey:
|
|
90
|
+
textKey: w([t], e.codeKey, e.textKey),
|
|
91
91
|
codeKey: e.hideCode ? void 0 : e.codeKey
|
|
92
92
|
});
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region src/multi-select/ui/MultiSelectOptionSkeleton.tsx
|
|
97
|
-
function
|
|
98
|
-
return /* @__PURE__ */
|
|
97
|
+
function T({ text: n, isError: r }) {
|
|
98
|
+
return /* @__PURE__ */ y("div", {
|
|
99
99
|
className: t.uiPopupOption,
|
|
100
|
-
children: [/* @__PURE__ */
|
|
100
|
+
children: [/* @__PURE__ */ v("span", { className: t.uiPopupOptionIcon }), /* @__PURE__ */ v(e, {
|
|
101
101
|
color: r ? "error" : "primary",
|
|
102
102
|
children: n
|
|
103
103
|
})]
|
|
@@ -105,50 +105,50 @@ function w({ text: n, isError: r }) {
|
|
|
105
105
|
}
|
|
106
106
|
//#endregion
|
|
107
107
|
//#region src/multi-select/ui/MultiSelect.tsx
|
|
108
|
-
function
|
|
109
|
-
return e ? /* @__PURE__ */
|
|
108
|
+
function ue({ isNoData: e, isLoading: t, error: n, children: r }) {
|
|
109
|
+
return e ? /* @__PURE__ */ v(f, { emptyState: /* @__PURE__ */ v(T, { text: "Нет данных" }) }) : t ? /* @__PURE__ */ v(f, { loadingState: /* @__PURE__ */ v(T, { text: "Загрузка..." }) }) : n ? /* @__PURE__ */ v(f, { errorState: /* @__PURE__ */ v(T, {
|
|
110
110
|
isError: !0,
|
|
111
111
|
text: "Ошибка загрузки"
|
|
112
|
-
}) }) : /* @__PURE__ */
|
|
112
|
+
}) }) : /* @__PURE__ */ v(ae, { children: r });
|
|
113
113
|
}
|
|
114
|
-
var
|
|
115
|
-
function
|
|
114
|
+
var de = [];
|
|
115
|
+
function E(e, t) {
|
|
116
116
|
return e[t];
|
|
117
117
|
}
|
|
118
|
-
function
|
|
118
|
+
function fe(e, t, n) {
|
|
119
119
|
return Array.from(/* @__PURE__ */ new Set([
|
|
120
120
|
e[n],
|
|
121
121
|
e[t],
|
|
122
122
|
...Object.values(e)
|
|
123
123
|
]));
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function pe(e, t, n) {
|
|
126
126
|
if (e.length !== t.length) return !1;
|
|
127
|
-
let r = new Set(t.map((e) =>
|
|
128
|
-
return e.every((e) => r.has(
|
|
127
|
+
let r = new Set(t.map((e) => E(e, n)));
|
|
128
|
+
return e.every((e) => r.has(E(e, n)));
|
|
129
129
|
}
|
|
130
|
-
function
|
|
131
|
-
return e.map(({ item: e, index:
|
|
132
|
-
let
|
|
133
|
-
return /* @__PURE__ */
|
|
134
|
-
id:
|
|
135
|
-
ref: (e) =>
|
|
130
|
+
function D({ entries: e, listId: n, activeIndex: i, selectedKeys: a, codeKey: o, query: s, highlightQuery: c, getOptionDisabled: l, getOptionId: ee, setOptionRef: u, toggleOption: d, selectOnlyOption: f, renderItem: p }) {
|
|
131
|
+
return e.map(({ item: e, index: m }) => {
|
|
132
|
+
let h = m === i, g = a.has(E(e, o)), _ = l?.(e) ?? !1;
|
|
133
|
+
return /* @__PURE__ */ y("div", {
|
|
134
|
+
id: ee(n, m),
|
|
135
|
+
ref: (e) => u(m, e),
|
|
136
136
|
role: "option",
|
|
137
|
-
"aria-selected":
|
|
137
|
+
"aria-selected": g,
|
|
138
138
|
"aria-disabled": _ || void 0,
|
|
139
|
-
className:
|
|
139
|
+
className: re(t.uiSelectOption, _ && t.disabled, g && t.selected, h && t.uiPopupOptionActive),
|
|
140
140
|
onMouseDown: (e) => {
|
|
141
141
|
e.preventDefault();
|
|
142
142
|
},
|
|
143
|
-
children: [/* @__PURE__ */
|
|
143
|
+
children: [/* @__PURE__ */ v("div", {
|
|
144
144
|
onClick: (e) => {
|
|
145
145
|
e.stopPropagation();
|
|
146
146
|
},
|
|
147
|
-
children: /* @__PURE__ */
|
|
148
|
-
value:
|
|
147
|
+
children: /* @__PURE__ */ v(r, {
|
|
148
|
+
value: g,
|
|
149
149
|
disabled: _,
|
|
150
150
|
onChange: () => {
|
|
151
|
-
_ ||
|
|
151
|
+
_ || d(e);
|
|
152
152
|
},
|
|
153
153
|
onClick: (e) => {
|
|
154
154
|
e.stopPropagation();
|
|
@@ -157,56 +157,56 @@ function E({ entries: e, listId: n, activeIndex: i, selectedKeys: a, codeKey: o,
|
|
|
157
157
|
e.stopPropagation();
|
|
158
158
|
}
|
|
159
159
|
})
|
|
160
|
-
}), /* @__PURE__ */
|
|
160
|
+
}), /* @__PURE__ */ v("div", {
|
|
161
161
|
className: "overflowHidden",
|
|
162
162
|
onClick: () => {
|
|
163
|
-
_ ||
|
|
163
|
+
_ || f(e);
|
|
164
164
|
},
|
|
165
|
-
children:
|
|
166
|
-
selected:
|
|
167
|
-
active:
|
|
165
|
+
children: p(e, {
|
|
166
|
+
selected: g,
|
|
167
|
+
active: h,
|
|
168
168
|
disabled: _,
|
|
169
169
|
query: s,
|
|
170
|
-
highlightQuery:
|
|
170
|
+
highlightQuery: c
|
|
171
171
|
})
|
|
172
172
|
})]
|
|
173
|
-
}, `${
|
|
173
|
+
}, `${E(e, o)}-${m}`);
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
|
-
var
|
|
177
|
-
let I =
|
|
176
|
+
var O = h(({ codeKey: e, textKey: n, hideCode: r, items: f, value: m, onChange: h, label: re, description: b, placeholder: S, size: C, query: oe, defaultQuery: T, highlightQuery: O, onQuery: me, defaultFilter: he = !0, onOpen: ge, onClose: _e, getOptionDisabled: k, disabled: A, error: j, isLoading: M, renderToken: N, renderToolbar: P, renderItem: ve }, F) => {
|
|
177
|
+
let I = te(null), [L, ye] = ne(!1), R = "search-multi", z = m ?? de, be = _(() => new Set(z.map((t) => E(t, e))), [e, z]), xe = _(() => f.filter((t) => !be.has(E(t, e))), [
|
|
178
178
|
e,
|
|
179
179
|
be,
|
|
180
|
-
|
|
181
|
-
]), B =
|
|
180
|
+
f
|
|
181
|
+
]), B = _(() => w([...z, ...f], e, n), [
|
|
182
182
|
e,
|
|
183
183
|
z,
|
|
184
|
-
|
|
184
|
+
f,
|
|
185
185
|
n
|
|
186
|
-
]), { query: V, setQuery: Se } =
|
|
186
|
+
]), { query: V, setQuery: Se } = u({
|
|
187
187
|
open: L,
|
|
188
|
-
query:
|
|
189
|
-
defaultQuery:
|
|
190
|
-
onQuery:
|
|
188
|
+
query: oe,
|
|
189
|
+
defaultQuery: T,
|
|
190
|
+
onQuery: me,
|
|
191
191
|
triggerMode: R
|
|
192
192
|
}), H = i({
|
|
193
193
|
options: z,
|
|
194
194
|
query: V,
|
|
195
|
-
enabled:
|
|
196
|
-
getSearchText: (t) =>
|
|
195
|
+
enabled: he,
|
|
196
|
+
getSearchText: (t) => fe(t, e, B)
|
|
197
197
|
}), U = i({
|
|
198
198
|
options: xe,
|
|
199
199
|
query: V,
|
|
200
|
-
enabled:
|
|
201
|
-
getSearchText: (t) =>
|
|
202
|
-
}), W =
|
|
200
|
+
enabled: he,
|
|
201
|
+
getSearchText: (t) => fe(t, e, B)
|
|
202
|
+
}), W = _(() => [...H, ...U], [U, H]), Ce = H.length > 0 ? 0 : -1, { draftValue: G, setDraftValue: K, prepareOpen: we } = ee({
|
|
203
203
|
value: z,
|
|
204
204
|
open: L,
|
|
205
|
-
onCommit:
|
|
205
|
+
onCommit: h,
|
|
206
206
|
onOpen: ge,
|
|
207
207
|
onClose: _e,
|
|
208
|
-
isEqual: (t, n) =>
|
|
209
|
-
}), q =
|
|
208
|
+
isEqual: (t, n) => pe(t, n, e)
|
|
209
|
+
}), q = _(() => new Set(G.map((t) => E(t, e))), [e, G]), Te = _(() => ({
|
|
210
210
|
selectedItems: G,
|
|
211
211
|
committedSelectedItems: z,
|
|
212
212
|
selectedKeys: q,
|
|
@@ -216,7 +216,7 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
216
216
|
G,
|
|
217
217
|
L,
|
|
218
218
|
q
|
|
219
|
-
]), J =
|
|
219
|
+
]), J = g((e) => k?.(e, Te) ?? !1, [k, Te]), { activeIndex: Y, context: Ee, floatingStyles: De, getFloatingProps: Oe, setReference: ke, setFloating: Ae, setOptionRef: je, close: Me, openList: Ne, toggleOpen: Pe, selectActiveOption: Fe, handleReferenceKeyDown: Ie, handleFloatingKeyDown: Le, getOptionId: Re, getActiveOptionId: ze } = c({
|
|
220
220
|
options: W,
|
|
221
221
|
selectedIndex: Ce,
|
|
222
222
|
open: L,
|
|
@@ -227,9 +227,9 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
227
227
|
closeOnSelect: !1,
|
|
228
228
|
allowOpenWithoutOptions: !0,
|
|
229
229
|
triggerMode: R
|
|
230
|
-
}), Be =
|
|
231
|
-
let n =
|
|
232
|
-
K((r) => r.some((t) =>
|
|
230
|
+
}), Be = O ?? V, X = (t) => {
|
|
231
|
+
let n = E(t, e);
|
|
232
|
+
K((r) => r.some((t) => E(t, e) === n) ? r.filter((t) => E(t, e) !== n) : J(t) ? r : [...r, t]);
|
|
233
233
|
}, Ve = (e) => {
|
|
234
234
|
if (I.current = e, typeof F == "function") {
|
|
235
235
|
F(e);
|
|
@@ -237,12 +237,12 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
237
237
|
}
|
|
238
238
|
F && (F.current = e);
|
|
239
239
|
}, He = () => {
|
|
240
|
-
K([]), L ||
|
|
240
|
+
K([]), L || h([]);
|
|
241
241
|
}, Ue = () => {
|
|
242
242
|
K((t) => {
|
|
243
|
-
let n = [...t], r = new Set(t.map((t) =>
|
|
243
|
+
let n = [...t], r = new Set(t.map((t) => E(t, e)));
|
|
244
244
|
for (let t of W) {
|
|
245
|
-
let i =
|
|
245
|
+
let i = E(t, e);
|
|
246
246
|
!r.has(i) && !J(t) && (r.add(i), n.push(t));
|
|
247
247
|
}
|
|
248
248
|
return n;
|
|
@@ -251,8 +251,8 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
251
251
|
K([]);
|
|
252
252
|
}, Ge = (e) => {
|
|
253
253
|
J(e) || (K([e]), Me());
|
|
254
|
-
},
|
|
255
|
-
selectedItems:
|
|
254
|
+
}, Ke = L ? G : z, Z = Ke.length > 0, qe = {
|
|
255
|
+
selectedItems: Ke,
|
|
256
256
|
committedSelectedItems: z,
|
|
257
257
|
availableItems: U,
|
|
258
258
|
query: V,
|
|
@@ -260,10 +260,10 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
260
260
|
clearSelection: He,
|
|
261
261
|
selectAll: Ue,
|
|
262
262
|
deselectAll: We
|
|
263
|
-
}, Je = N === void 0 ?
|
|
263
|
+
}, Je = N === void 0 ? se({
|
|
264
264
|
codeKey: e,
|
|
265
265
|
textKey: B
|
|
266
|
-
}) : N, Ye = P === void 0 ?
|
|
266
|
+
}) : N, Ye = P === void 0 ? ce : P, Xe = ve ?? le({
|
|
267
267
|
codeKey: e,
|
|
268
268
|
textKey: B,
|
|
269
269
|
hideCode: r
|
|
@@ -273,7 +273,7 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
273
273
|
})), $e = U.map((e, t) => ({
|
|
274
274
|
item: e,
|
|
275
275
|
index: t + Q.length
|
|
276
|
-
})), et = !M && !j && W.length === 0, $ =
|
|
276
|
+
})), et = !M && !j && W.length === 0, $ = d({
|
|
277
277
|
mode: R,
|
|
278
278
|
open: L,
|
|
279
279
|
currentQuery: V,
|
|
@@ -287,16 +287,16 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
287
287
|
L || we();
|
|
288
288
|
}
|
|
289
289
|
});
|
|
290
|
-
return /* @__PURE__ */
|
|
291
|
-
label:
|
|
292
|
-
description:
|
|
290
|
+
return /* @__PURE__ */ v(s, {
|
|
291
|
+
label: re,
|
|
292
|
+
description: b,
|
|
293
293
|
disabled: A,
|
|
294
|
-
placeholder:
|
|
295
|
-
size:
|
|
296
|
-
className:
|
|
294
|
+
placeholder: S,
|
|
295
|
+
size: C,
|
|
296
|
+
className: x.multiSelect,
|
|
297
297
|
children: ({ controlId: n, labelId: r, describedBy: i }) => {
|
|
298
298
|
let s = `${n}-listbox`;
|
|
299
|
-
return /* @__PURE__ */
|
|
299
|
+
return /* @__PURE__ */ y(ae, { children: [/* @__PURE__ */ v(a, {
|
|
300
300
|
ref: Ve,
|
|
301
301
|
rootRef: ke,
|
|
302
302
|
id: n,
|
|
@@ -305,7 +305,7 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
305
305
|
autoComplete: "off",
|
|
306
306
|
disabled: A,
|
|
307
307
|
value: V,
|
|
308
|
-
placeholder:
|
|
308
|
+
placeholder: Z ? void 0 : S,
|
|
309
309
|
"aria-labelledby": r,
|
|
310
310
|
"aria-describedby": i,
|
|
311
311
|
"aria-haspopup": "listbox",
|
|
@@ -314,20 +314,20 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
314
314
|
"aria-autocomplete": "list",
|
|
315
315
|
"aria-activedescendant": L ? ze(s) : void 0,
|
|
316
316
|
rootClassName: "flex alignItemsCenter",
|
|
317
|
-
endAdornment: /* @__PURE__ */
|
|
317
|
+
endAdornment: /* @__PURE__ */ y(l, {
|
|
318
318
|
open: L,
|
|
319
319
|
disabled: A,
|
|
320
320
|
onToggleMouseDown: $.handleToggleMouseDown,
|
|
321
321
|
onToggleClick: $.handleToggleClick,
|
|
322
|
-
children: [Ze, /* @__PURE__ */
|
|
322
|
+
children: [Ze, /* @__PURE__ */ v("button", {
|
|
323
323
|
type: "button",
|
|
324
|
-
disabled: !
|
|
324
|
+
disabled: !Z,
|
|
325
325
|
className: t.uiClearButton,
|
|
326
326
|
"data-ui": "multi-select-clear-button",
|
|
327
327
|
"data-action": "clear-multi-select",
|
|
328
328
|
onClick: He,
|
|
329
329
|
"aria-label": "Очистить все",
|
|
330
|
-
children: /* @__PURE__ */
|
|
330
|
+
children: /* @__PURE__ */ v(ie, {})
|
|
331
331
|
})]
|
|
332
332
|
}),
|
|
333
333
|
onChange: (e) => {
|
|
@@ -354,7 +354,7 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
354
354
|
suppressClosedArrowUp: !0
|
|
355
355
|
});
|
|
356
356
|
}
|
|
357
|
-
}), /* @__PURE__ */
|
|
357
|
+
}), /* @__PURE__ */ v(o, {
|
|
358
358
|
open: L,
|
|
359
359
|
context: Ee,
|
|
360
360
|
floatingStyles: De,
|
|
@@ -370,14 +370,14 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
370
370
|
tabIndex: -1,
|
|
371
371
|
className: t.uiPopupOptions,
|
|
372
372
|
header: Qe,
|
|
373
|
-
children: /* @__PURE__ */
|
|
373
|
+
children: /* @__PURE__ */ v(ue, {
|
|
374
374
|
isNoData: et,
|
|
375
375
|
isLoading: M,
|
|
376
376
|
error: j,
|
|
377
|
-
children: /* @__PURE__ */
|
|
377
|
+
children: /* @__PURE__ */ y("div", {
|
|
378
378
|
className: "scrollable h100",
|
|
379
379
|
children: [
|
|
380
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ v(D, {
|
|
381
381
|
entries: Q,
|
|
382
382
|
listId: s,
|
|
383
383
|
activeIndex: Y,
|
|
@@ -392,8 +392,8 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
392
392
|
selectOnlyOption: Ge,
|
|
393
393
|
renderItem: Xe
|
|
394
394
|
}),
|
|
395
|
-
Q.length > 0 && xe.length > 0 && /* @__PURE__ */
|
|
396
|
-
/* @__PURE__ */
|
|
395
|
+
Q.length > 0 && xe.length > 0 && /* @__PURE__ */ v(p, { className: "marginBlockSm" }),
|
|
396
|
+
/* @__PURE__ */ v(D, {
|
|
397
397
|
entries: $e,
|
|
398
398
|
listId: s,
|
|
399
399
|
activeIndex: Y,
|
|
@@ -415,8 +415,8 @@ var D = _(({ codeKey: e, textKey: n, hideCode: r, items: l, value: d, onChange:
|
|
|
415
415
|
}
|
|
416
416
|
});
|
|
417
417
|
});
|
|
418
|
-
|
|
418
|
+
O.displayName = "MultiSelect";
|
|
419
419
|
//#endregion
|
|
420
|
-
export {
|
|
420
|
+
export { C as n, O as t };
|
|
421
421
|
|
|
422
|
-
//# sourceMappingURL=MultiSelect-
|
|
422
|
+
//# sourceMappingURL=MultiSelect-D1XYuwH1.js.map
|