@ryuzaki13/react-foundation-ui 1.8.2 → 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/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-Dis0WdSI.js → Badge-Wsl03RiZ.js} +1 -1
- package/storybook-static/assets/{Badge.stories-DKUJOyg3.js → Badge.stories-C5FJ05zx.js} +1 -1
- package/storybook-static/assets/{BadgeList-C_ImRsat.js → BadgeList-DHcmb--r.js} +1 -1
- package/storybook-static/assets/{Button-BSsRzaxX.js → Button-9Vdg-8pF.js} +1 -1
- package/storybook-static/assets/{Button-DxGg9rB3.js → Button-CEzU6vMY.js} +1 -1
- package/storybook-static/assets/{Button.stories-fHvDvt2w.js → Button.stories-BfDF7T_l.js} +1 -1
- package/storybook-static/assets/{CalendarView-BFcwl9Vq.js → CalendarView-DCLQ6cmR.js} +1 -1
- package/storybook-static/assets/{CheckBox-CSbi2BEU.js → CheckBox-BJ3STl44.js} +1 -1
- package/storybook-static/assets/CheckBox-DWrG0yT0.css +1 -0
- package/storybook-static/assets/{CheckBox-SuVeN-FY.js → CheckBox-UlZDcbgz.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-C6PF0zG1.js → CheckBox.stories-Pt5RIIb4.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-DX3p6XEG.js → Color-6AOWCN3U-3Ir6qwTW.js} +1 -1
- package/storybook-static/assets/ContextMenu-BrYtLHPB.css +1 -0
- package/storybook-static/assets/{ContextMenu-f0QZPgBQ.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-BmL4c3wO.js → DateInput-B0xrPmg8.js} +1 -1
- package/storybook-static/assets/{DateInput-C0K0JvWe.js → DateInput-CRNvZef4.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-65WMYAML.js → DateInput.stories-CrMRn_FQ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DdpNa-Yj.js → DateRangePresetSelect-B96SINg3.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DVAqXJt1.js → DateRangePresetSelect-BGdt7rCz.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-B20eqYGr.js +19 -0
- package/storybook-static/assets/{Detail-1rmVP04K.js → Detail-CUNNfYz6.js} +1 -1
- package/storybook-static/assets/{Detail.stories-CW2YXAPy.js → Detail.stories-DPp7roXv.js} +1 -1
- package/storybook-static/assets/{Dialog-DcdGv_Bv.js → Dialog-B7eTlIWU.js} +1 -1
- package/storybook-static/assets/{Dialog-CszRheXL.js → Dialog-DdONtJUb.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CN9vtGuI.js → Dialog.stories-CF6Q0tJ-.js} +1 -1
- package/storybook-static/assets/{Disclosure-DWeZZ2i8.js → Disclosure-BI4KMSDK.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-pZXR5BOM.js → Disclosure.stories-BaTneJlv.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-BWba17wI.js → DisclosureGroup-Dx2-SHha.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BYN3Mg4U.js → DocsRenderer-JROSPFPF-mMjwDILp.js} +1 -1
- package/storybook-static/assets/{DropZone-ByDIyQgI.js → DropZone-BizNinsQ.js} +1 -1
- package/storybook-static/assets/{DropZone-BCe20YiO.js → DropZone-D93x3skJ.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-CLXe7D8H.js → DropZone.stories-Dn72HUME.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BD-pc32j.js → DropdownMenu-Bpjyamf_.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-v-DZaEKX.js → ExpandableActionPanel-Q4xXTfPB.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BhHYM4mJ.js → ExpandableActionPanel.stories-Dr40xqrz.js} +1 -1
- package/storybook-static/assets/{Flex-DukB58MF.js → Flex-Qj0CmbNT.js} +1 -1
- package/storybook-static/assets/{Flex.stories-DQmoW5jb.js → Flex.stories-CMB4ZAgy.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-fnwAyZil.js → FloatingPopover-jH57LEGX.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-CK1yXePp.js → FormattedTableCell-vbqJ5gib.js} +1 -1
- package/storybook-static/assets/{Grid-BoLaxbR_.js → Grid-AZBb1w5n.js} +1 -1
- package/storybook-static/assets/{Grid.stories-CSuOTbao.js → Grid.stories-BaeYzAP-.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BRi_qlO4.js → ImageCropper.stories-Da9IaNLO.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BiV2g53B.js → ImageRenderer-CNFqjqvE.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Da7QE7_Q.js → ImageRenderer.stories-8pPWqLHi.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DSFBxOa6.js → ImageView.stories-P0OBwcHv.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D2rcovap.js → ImageViewer.stories-A8gBQaCk.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-B2CS1UFL.js → ImageViewerRuntime-C2LHl9xa.js} +1 -1
- package/storybook-static/assets/{Input-BIy4zhlA.js → Input-LI8Ij2VV.js} +1 -1
- package/storybook-static/assets/{Input-CVs7SVMJ.js → Input-X5FLaExp.js} +1 -1
- package/storybook-static/assets/{Input.stories-BBXrateo.js → Input.stories-r4hSNMWI.js} +1 -1
- package/storybook-static/assets/{InputDateTime-VUiW2Znv.js → InputDateTime-B9IQGLxQ.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-lqECZY7T.js → InputDateTime.stories-t-IFoW6A.js} +1 -1
- package/storybook-static/assets/{InputFile-DEeRFq2f.js → InputFile-YhjpMsir.js} +1 -1
- package/storybook-static/assets/{InputFile-D0aHVW1q.js → InputFile-yUYuRSfc.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-9fBhIus4.js → InputFile.stories-DvMCOp6p.js} +1 -1
- package/storybook-static/assets/{InputFiles-DTy038xW.js → InputFiles-Dq9QZAWM.js} +1 -1
- package/storybook-static/assets/{InputFiles-C_KIqiN9.js → InputFiles-b6Ne7Ph9.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CspkI6-Y.js → InputFiles.stories-Q7rdTg-e.js} +1 -1
- package/storybook-static/assets/{InputFilesList-BQdSFOI1.js → InputFilesList-u59R9lsq.js} +1 -1
- package/storybook-static/assets/{InputImage-VJaqApEh.js → InputImage-BTap4i1_.js} +1 -1
- package/storybook-static/assets/{InputImage-C0kyUtT0.js → InputImage-_b_bmfXz.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-DKXeva5i.js → InputImage.stories-F08TWbxk.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-B8zzCcZ_.js → InteractiveComponents-CpJd5e3W.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DP0Jma43.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-BpcPcCDz.js → LayoutPicker-vwoAIGrk.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-POpVHww7.js → LayoutPicker.stories-BW8B8i8S.js} +1 -1
- package/storybook-static/assets/{Listbox-gHitzePa.js → Listbox-Cf_DMAva.js} +1 -1
- package/storybook-static/assets/Listbox-D7r9R1Of.js +1 -0
- package/storybook-static/assets/{Listbox.stories-Dw3IdYZA.js → Listbox.stories-CxYyfkFU.js} +1 -1
- package/storybook-static/assets/{Modal-CY7qfD1u.js → Modal-BaprwyBJ.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Boa7oW-a.js → Modal.stories-Rn_bgNdm.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-GYXaQe-7.js → ModalManagerProvider-BoJChAx2.js} +1 -1
- package/storybook-static/assets/MultiSelect-CILXhKyj.js +2 -0
- package/storybook-static/assets/{MultiSelect-DToMWi-I.js → MultiSelect-CU7avopN.js} +1 -1
- package/storybook-static/assets/MultiSelect-DI_UD1B-.css +1 -0
- package/storybook-static/assets/{MultiSelect.stories-DLuXOl9Q.js → MultiSelect.stories-DFtFExi3.js} +1 -1
- package/storybook-static/assets/{NoData-Bzj7vNCz.js → NoData-u6T3MI60.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-Bs93X8Nv.js → NotificationsHost-63IJh9Kr.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-DxVOVOf8.js → NotificationsHost.stories-CRKVOYWB.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-Dh33YJP6.js → ODataMultiSelect-tfqbyVgv.js} +1 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DuC1gg-Q.js +126 -0
- package/storybook-static/assets/{ODataSelect-lpN9sKth.js → ODataSelect-0ax3OIQy.js} +1 -1
- package/storybook-static/assets/ODataSelect.stories-aGZEvBIO.js +148 -0
- package/storybook-static/assets/{ODataTreeMultiSelect-DFY2FJBX.js → ODataTreeMultiSelect-C4ZN4DaL.js} +1 -1
- package/storybook-static/assets/ODataTreeMultiSelect.stories-BThoYYsE.js +74 -0
- package/storybook-static/assets/{ODataTreeSelect-DdniMRRE.js → ODataTreeSelect-DvrUSJsi.js} +1 -1
- package/storybook-static/assets/ODataTreeSelect.stories-B9582VZ6.js +46 -0
- package/storybook-static/assets/{OneStepScroller-CHvIHlYx.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-BgAak8GG.js → PeriodSelect-CdTxjZC3.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-T1qaj11S.js → PeriodSelect-Dw3EsMrL.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DYEtD47p.js → PeriodSelect.stories-DYinImmY.js} +1 -1
- package/storybook-static/assets/PickerTriggerActions-B0z5qfFF.js +1 -0
- package/storybook-static/assets/{Popover-DQKHL6wc.js → Popover-0xwjVe6K.js} +1 -1
- package/storybook-static/assets/{Popover-BVP-wMdK.js → Popover-ijEoQcUp.js} +1 -1
- package/storybook-static/assets/{Popover.stories-Pt4-7Aof.js → Popover.stories-CMNjjwu5.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DQ3rlCp5.js → PresetRangeDateInput-CdvdO4mf.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-C4_NegG_.js → PresetRangeDateInput-DysqM_NV.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-3AzmySZv.js → PresetRangeDateInput.stories-nVojLSRm.js} +1 -1
- package/storybook-static/assets/{PresetSelect-BTh53LoO.js → PresetSelect-mjBaMbt6.js} +1 -1
- package/storybook-static/assets/{RadioButton-Ci25eUL_.js → RadioButton-CVGKMhGV.js} +1 -1
- package/storybook-static/assets/{RadioButton-BfBSX73Y.js → RadioButton-jB744vXz.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-JVGXFlz8.js → RadioButton.stories-CJsU4D3L.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CL7EHd6O.js → RadioGroup-BGF3aoOc.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CW39hD_-.js → RadioGroup-DbqvBGw3.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-MS9Jl6AT.js → RadioGroup.stories-Bkny6-9V.js} +1 -1
- package/storybook-static/assets/{Scrollable-Bo4197LC.js → Scrollable-DZp3ByoS.js} +1 -1
- package/storybook-static/assets/{Select-CxQqH8H5.js → Select-BJcT2K35.js} +1 -1
- package/storybook-static/assets/Select-CcuhYAW8.js +12 -0
- package/storybook-static/assets/{Select.stories-DfjNWXba.js → Select.stories-BowB7kdj.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BktENdyg.js → SerializableSelect-DRczsfxk.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-B8zxcu66.js → SerializableSelect.stories-BcYeXF_R.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DZBRm3dM.js → SingleDateTimeInput-HDsmYVP2.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DvpU1DkI.js → SingleDateTimeInput-pHA1ci5g.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-Bku5Zc05.js → SingleDateTimeInput.stories-KUrLpnh_.js} +1 -1
- package/storybook-static/assets/{Slider-BN2xXBOi.js → Slider-DaJGOEf-.js} +1 -1
- package/storybook-static/assets/{Slider-BJkB6IoW.js → Slider-XnQRU_In.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CM3yNojO.js → Slider.stories-ByS4Bo7v.js} +1 -1
- package/storybook-static/assets/{SliderInput-CPX2bJK3.js → SliderInput-BjyCba0D.js} +1 -1
- package/storybook-static/assets/{SliderInput-2ZiuvbpQ.js → SliderInput-Dan5pyQh.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-dJX-tRtA.js → SliderInput.stories-d4F5pqct.js} +1 -1
- package/storybook-static/assets/{Sortable-Bkr-xnO4.js → Sortable-Bdzx4D0R.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BPEg99e5.js → Sortable.stories-BIhgYQ1m.js} +1 -1
- package/storybook-static/assets/{Splitter-D4en_f5n.js → Splitter-B3hepEkw.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Cynn_kHV.js → Splitter.stories-L6R3ImTr.js} +1 -1
- package/storybook-static/assets/{StateSelect-BgbwMGGc.js → StateSelect-C4oHSG2B.js} +1 -1
- package/storybook-static/assets/{StateSelect-PcH0VuO_.js → StateSelect-CylM2NVF.js} +3 -3
- package/storybook-static/assets/{StateSelect.stories-CShqVH9Y.js → StateSelect.stories-Djw_nuLJ.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CypR3oB_.js → StringToggle.stories-pqZzNPRQ.js} +1 -1
- package/storybook-static/assets/{Switch-D-cSDh8j.js → Switch-BK5DQYpV.js} +1 -1
- package/storybook-static/assets/{Switch-BVN6TcVZ.js → Switch-BkHwzkeD.js} +1 -1
- package/storybook-static/assets/{Switch.stories-C0s7gvBf.js → Switch.stories-BG1MHajd.js} +1 -1
- package/storybook-static/assets/{Table-CwXJDDe6.js → Table-BQPiMPmF.js} +1 -1
- package/storybook-static/assets/{Table.stories-vqttnROX.js → Table.stories-b5gmGDu_.js} +1 -1
- package/storybook-static/assets/{Tabs-BRSEvQpk.js → Tabs-B13rDpZt.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-R_7jiTQc.js → Tabs.stories-D0sg-2Nx.js} +1 -1
- package/storybook-static/assets/{TabsBox-CqSxAUdJ.js → TabsBox-DZwTlYNa.js} +1 -1
- package/storybook-static/assets/{TagInput-C3ahaF-B.js → TagInput-RYhIr0kM.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-C3O2gBUY.js → TagInput.stories-7iTWdjmj.js} +1 -1
- package/storybook-static/assets/{Text-b8fMr5Hd.js → Text-5-YdhIB8.js} +1 -1
- package/storybook-static/assets/{Textarea-CCgxNL6F.js → Textarea-0L2M-xFG.js} +1 -1
- package/storybook-static/assets/{Textarea-BDL_MwcM.js → Textarea-pQp1ju2W.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-kc_LXBix.js → Textarea.stories-pJFWbXcf.js} +1 -1
- package/storybook-static/assets/{TimePanel-BCotjEKQ.js → TimePanel-DlfW-4Rv.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-B8paqA-_.js → TimePanel.stories-DpXHb66k.js} +1 -1
- package/storybook-static/assets/{Toggle-CT4IyZPI.js → Toggle-CwgQ0NbP.js} +1 -1
- package/storybook-static/assets/{Toggle-CbsKNs_c.js → Toggle-Q04RQyAN.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-YsQZk4DA.js → Toggle.stories-DOYwhorJ.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DRLoUCXF.js → TreeMultiSelect--Z9jdUna.js} +1 -1
- package/storybook-static/assets/TreeMultiSelect-CcBXMmXH.js +1 -0
- package/storybook-static/assets/{TreeMultiSelect.stories-CV65ZVUo.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-FhEH7bMx.js → TreeSelect-BMcChauO.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CsYGUC6s.js → TreeSelect-DMC-rviy.js} +1 -1
- package/storybook-static/assets/TreeSelect.stories-68LYkP9A.js +32 -0
- package/storybook-static/assets/{TreeTable-Bajr80HM.js → TreeTable-DNArfw0m.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-DDCGoB2u.js → TreeTable.stories-GybZTfJf.js} +1 -1
- package/storybook-static/assets/{async-CWrFMaux.js → async-BpUNPciD.js} +1 -1
- package/storybook-static/assets/{blocks-CrYcG0WD.js → blocks-CdL0FBl-.js} +3 -3
- package/storybook-static/assets/{browserAndReact-DSxaVMjM.js → browserAndReact-DJiCma8q.js} +1 -1
- package/storybook-static/assets/{check-Cnuffb78.js → check-Bff_8tRJ.js} +1 -1
- package/storybook-static/assets/{chevron-down-ChPfAmdy.js → chevron-down-D9beWxJi.js} +1 -1
- package/storybook-static/assets/{chevron-left-CEB5eAVk.js → chevron-left-0YewhZTT.js} +1 -1
- package/storybook-static/assets/{chevron-right-DHw2yjh1.js → chevron-right-_-7FrDV5.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-i9Cm4c-p.js → chunk-W22LQPXL-O2d-a7Cd.js} +1 -1
- package/storybook-static/assets/{circle-alert-B0REyiCt.js → circle-alert-Ch96LToC.js} +1 -1
- package/storybook-static/assets/{circle-check-D6WZ24rj.js → circle-check-a4WDWsNJ.js} +1 -1
- package/storybook-static/assets/{components-BCe0UvQp.js → components-DdhcMCr2.js} +3 -3
- package/storybook-static/assets/{contextMenu-De66k1si.js → contextMenu-BGjkv4UB.js} +1 -1
- package/storybook-static/assets/defaultRenderers-V5HI39JH.js +1 -0
- package/storybook-static/assets/{download-C1DiezfA.js → download-CX1IvM3C.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-BVMGH9OS.js → filesAndExcel-dK5pwBOD.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-BswSORmJ.js → floating-ui.react-CxLdvcYS.js} +1 -1
- package/storybook-static/assets/{formatters-D27XMzPd.js → formatters-j9sx7DvH.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-B_C8yQOS.js → formatters-runtime-CHMYu4ZC.js} +1 -1
- package/storybook-static/assets/{foundationLib-BmwSyi1e.js → foundationLib-C_06ZSSf.js} +1 -1
- package/storybook-static/assets/{hooks-CXlVTo5i.js → hooks-Bykafh9C.js} +1 -1
- package/storybook-static/assets/{iframe-Baz8D-0E.css → iframe-BIt4o49Q.css} +1 -1
- package/storybook-static/assets/{iframe-Bbj4T0X2.js → iframe-CIzkWNwp.js} +3 -3
- package/storybook-static/assets/iframe-sQ6b5u6U.js +1 -0
- package/storybook-static/assets/{info-D_YlGthq.js → info-DmoUv3Za.js} +1 -1
- package/storybook-static/assets/{odata-CDuIqs1a.js → odata-BOmzCjsk.js} +1 -1
- package/storybook-static/assets/{odataAndTables-D4R4KHZc.js → odataAndTables-CCmlxLmc.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-Sw0FicJe.js → odataFetchFn-CTQe0sIR.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-z1HaQHNb.js → odataStoryFixtures-BSZ-qA-M.js} +2 -2
- package/storybook-static/assets/{persisted-TRx901TV.js → persisted--WJ7KKPs.js} +1 -1
- package/storybook-static/assets/{pureUtilities-B8KVYaZx.js → pureUtilities-GyB4PF6P.js} +1 -1
- package/storybook-static/assets/{react-CTGFMmtV.js → react-BBjpR4Fr.js} +1 -1
- package/storybook-static/assets/{refresh-cw-BuhtDwqw.js → refresh-cw-Bc5fTdGR.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-DDPlVhTs.js → runtimeAndState-B2HA42QC.js} +1 -1
- package/storybook-static/assets/{settings-2-DESCgIcH.js → settings-2-Cm9uvgs-.js} +1 -1
- package/storybook-static/assets/{sortable-BxGw7kip.js → sortable-U9GPAzJm.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-B0d7LXTh.js → syntaxhighlighter-T5IQBZDB-Do8Zvv4y.js} +1 -1
- package/storybook-static/assets/{trash-2-D0Ed43_3.js → trash-2-D6H0PpPX.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CpgcfVSf.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-CFR7eJND.js → useODataSelectBase-bY7vnHqq.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DgEKknmd.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-_GQ6nyHW.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-Clsst6DE.js +0 -538
- package/dist/chunks/multi-select-Clsst6DE.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-B0xc6g81.js +0 -355
- package/dist/chunks/select-B0xc6g81.js.map +0 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +0 -1
- package/dist/chunks/useODataSelectBase-Bq36Wp1U.js +0 -141
- package/dist/chunks/useODataSelectBase-Bq36Wp1U.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-BhGu3QoC.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-V9d5mjak.js +0 -37
- package/storybook-static/assets/DateRangePresetSelect.stories-BGgd7TOu.js +0 -19
- package/storybook-static/assets/LayoutPicker-DjUZ5y7M.js +0 -376
- package/storybook-static/assets/LayoutPicker-DudPIiwb.css +0 -1
- package/storybook-static/assets/Listbox-Cg1OczYK.js +0 -1
- package/storybook-static/assets/MultiSelect-D8qN-i5f.js +0 -2
- package/storybook-static/assets/ODataMultiSelect.stories-DUmFRMTU.js +0 -139
- package/storybook-static/assets/ODataSelect.stories-BkFs5uIY.js +0 -161
- package/storybook-static/assets/ODataTreeMultiSelect.stories-B_Izm4eH.js +0 -87
- package/storybook-static/assets/ODataTreeSelect.stories-DxNhuLVU.js +0 -55
- package/storybook-static/assets/PickerSelectionToolbar-DWtGYc4E.js +0 -2
- package/storybook-static/assets/PickerTriggerActions-BIH8_o_b.js +0 -1
- package/storybook-static/assets/Select-CO4ZHP9h.css +0 -1
- package/storybook-static/assets/Select-DBsWg0wv.js +0 -12
- package/storybook-static/assets/SelectOptionContent-Bie2pzia.js +0 -1
- package/storybook-static/assets/TreeMultiSelect-CmAa_Gin.js +0 -1
- package/storybook-static/assets/TreePickerBase-hyMFakp7.css +0 -1
- package/storybook-static/assets/TreePickerBase-rB-Q9Uwf.js +0 -24
- package/storybook-static/assets/TreeSelect.stories-Cw4IkrNG.js +0 -40
- package/storybook-static/assets/defaultRenderers-B7PDT-nL.css +0 -1
- package/storybook-static/assets/defaultRenderers-D0Z-7t0H.js +0 -1
- package/storybook-static/assets/iframe-DLZ4F2nx.js +0 -1
- package/storybook-static/assets/ui.module-CiLQZm_L.js +0 -1
- package/storybook-static/assets/usePickerQuery-Be3WSeUa.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-BZZv-jDV.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
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./ui.module-DHVTOqZ0.js";
|
|
2
|
-
import { u as t } from "./input-CCdBtl-C.js";
|
|
3
|
-
import { a as n, c as r, f as i, i as a, l as o, o as s, p as c, r as l, t as u, u as d } from "./picker-CrRdwdA5.js";
|
|
4
|
-
import { n as f, r as p } from "./useODataSelectBase-Bq36Wp1U.js";
|
|
5
|
-
import { t as m } from "./odata-dependent-C_DCbKY2.js";
|
|
6
|
-
import { Fragment as h, useCallback as g, useMemo as _, useRef as ee, useState as te } from "react";
|
|
7
|
-
import { useODataCollectionModel as v } from "@ryuzaki13/react-foundation-api/odata";
|
|
8
|
-
import { cn as y } from "@ryuzaki13/react-foundation-lib/utils";
|
|
9
|
-
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
10
|
-
import { CheckIcon as ne, XIcon as re } from "lucide-react";
|
|
11
|
-
//#region src/select/lib/getOptionSearchText.ts
|
|
12
|
-
function ie({ option: e, getOptionLabel: t, getOptionCode: n, getOptionGroup: r }) {
|
|
13
|
-
return [
|
|
14
|
-
s(t(e)),
|
|
15
|
-
s(n?.(e)),
|
|
16
|
-
s(r?.(e)?.label)
|
|
17
|
-
].filter((e) => !!e).join(" ").toLowerCase();
|
|
18
|
-
}
|
|
19
|
-
function C(e, t, n) {
|
|
20
|
-
return e.find((e) => e.value === t) ?? n;
|
|
21
|
-
}
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region src/select/model/useODataSelect.ts
|
|
24
|
-
function w({ odata: e, segment: t, model: n, value: r, dependencies: i, onChange: a }) {
|
|
25
|
-
let o = f({
|
|
26
|
-
odata: e,
|
|
27
|
-
segment: t,
|
|
28
|
-
model: n,
|
|
29
|
-
value: r ? [r] : [],
|
|
30
|
-
dependencies: i
|
|
31
|
-
}), s = o.selectedItems[0], c = _(() => s ? [s, ...o.filteredItems] : o.filteredItems, [o.filteredItems, s]), l = (e) => {
|
|
32
|
-
a(e?.[o.selectionKey]);
|
|
33
|
-
};
|
|
34
|
-
return {
|
|
35
|
-
...o,
|
|
36
|
-
selectedItem: s,
|
|
37
|
-
options: c,
|
|
38
|
-
handleChange: l
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
//#endregion
|
|
42
|
-
//#region src/select/lib/createSelectOptionSections.ts
|
|
43
|
-
function ae(e, t) {
|
|
44
|
-
let n = [];
|
|
45
|
-
return e.forEach((e, r) => {
|
|
46
|
-
let i = t(e), a = n.at(-1), o = a?.group?.key === i?.key;
|
|
47
|
-
if (a && o) {
|
|
48
|
-
a.items.push({
|
|
49
|
-
option: e,
|
|
50
|
-
index: r
|
|
51
|
-
});
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
n.push({
|
|
55
|
-
group: i,
|
|
56
|
-
items: [{
|
|
57
|
-
option: e,
|
|
58
|
-
index: r
|
|
59
|
-
}]
|
|
60
|
-
});
|
|
61
|
-
}), n;
|
|
62
|
-
}
|
|
63
|
-
var T = {
|
|
64
|
-
inputWithOverlay: "aEEqH1",
|
|
65
|
-
valueOverlay: "_4HQKa7"
|
|
66
|
-
};
|
|
67
|
-
//#endregion
|
|
68
|
-
//#region src/select/Select.tsx
|
|
69
|
-
function E(t) {
|
|
70
|
-
let { label: f, description: p, disabled: m, placeholder: v, size: C, options: w, value: E, onChange: oe, getOptionKey: D, getOptionLabel: O, getOptionCode: k, getOptionDisabled: A, getOptionAriaLabel: j, getOptionGroup: M, getOptionClassName: se, renderOption: N, renderValue: P, className: ce, buttonClassName: le, optionsClassName: ue, optionsMaxWidth: de, optionsContentClassName: fe, searchable: F = !1, defaultFilter: pe = !0, query: me, defaultQuery: he, onQuery: ge, renderPopupHeader: _e, emptyState: ve, isLoading: ye, errorState: be, placement: xe = "bottom-start", clearable: I = !1 } = t, L = oe, R = ee(null), [z, Se] = te(!1), B = F ? "search-single" : "display", V = E === void 0 ? void 0 : D(E), H = V === void 0 ? void 0 : w.find((e) => D(e) === V) ?? E, { query: U, setQuery: W, resetQueryOnClose: Ce } = l({
|
|
71
|
-
query: me,
|
|
72
|
-
defaultQuery: he,
|
|
73
|
-
onQuery: ge,
|
|
74
|
-
triggerMode: B
|
|
75
|
-
}), we = (e) => {
|
|
76
|
-
z && !e && Ce && W(""), Se(e);
|
|
77
|
-
}, Te = g((e) => ie({
|
|
78
|
-
option: e,
|
|
79
|
-
getOptionLabel: O,
|
|
80
|
-
getOptionCode: k,
|
|
81
|
-
getOptionGroup: M
|
|
82
|
-
}), [
|
|
83
|
-
k,
|
|
84
|
-
M,
|
|
85
|
-
O
|
|
86
|
-
]), G = n({
|
|
87
|
-
options: w,
|
|
88
|
-
query: U,
|
|
89
|
-
enabled: F && pe,
|
|
90
|
-
getSearchText: Te
|
|
91
|
-
}), K = _(() => M ? ae(G, M) : void 0, [M, G]), Ee = V === void 0 ? -1 : G.findIndex((e) => D(e) === V), { activeIndex: De, context: Oe, floatingStyles: ke, getFloatingProps: Ae, setReference: je, setFloating: Me, setOptionRef: Ne, close: q, openList: Pe, toggleOpen: Fe, selectOption: Ie, selectActiveOption: Le, handleReferenceKeyDown: Re, handleFloatingKeyDown: ze, getOptionId: Be, getActiveOptionId: J } = a({
|
|
92
|
-
options: G,
|
|
93
|
-
selectedIndex: Ee,
|
|
94
|
-
open: z,
|
|
95
|
-
onOpenChange: we,
|
|
96
|
-
getOptionDisabled: A,
|
|
97
|
-
onSelect: L,
|
|
98
|
-
disabled: m,
|
|
99
|
-
placement: xe,
|
|
100
|
-
triggerMode: B
|
|
101
|
-
}), Y = G.length > 0, X = H === void 0 ? void 0 : O(H), Z = H === void 0 ? void 0 : P ? P(H) : X, Ve = s(X), He = H === void 0 ? void 0 : s(k?.(H)), Ue = s(Z) ?? Ve ?? He ?? (V === void 0 ? "" : String(V)), Q = F && (z || U.length > 0), We = Q ? U : H === void 0 ? "" : Ue, Ge = H !== void 0 && Z !== void 0 && s(Z) === void 0 && !Q, $ = u({
|
|
102
|
-
mode: B,
|
|
103
|
-
open: z,
|
|
104
|
-
currentQuery: U,
|
|
105
|
-
hasDisplayValue: H !== void 0,
|
|
106
|
-
inputRef: R,
|
|
107
|
-
setQuery: W,
|
|
108
|
-
openList: Pe,
|
|
109
|
-
close: q,
|
|
110
|
-
toggleOpen: Fe
|
|
111
|
-
}), Ke = (e) => {
|
|
112
|
-
R.current = e;
|
|
113
|
-
}, qe = () => {
|
|
114
|
-
I && L(void 0), W(""), q();
|
|
115
|
-
}, Je = (t, n, r) => {
|
|
116
|
-
let i = D(n), a = V !== void 0 && i === V, o = r === De, s = A?.(n) ?? !1, c = {
|
|
117
|
-
active: o,
|
|
118
|
-
selected: a,
|
|
119
|
-
disabled: s
|
|
120
|
-
};
|
|
121
|
-
return /* @__PURE__ */ x("div", {
|
|
122
|
-
id: Be(t, r),
|
|
123
|
-
ref: (e) => Ne(r, e),
|
|
124
|
-
role: "option",
|
|
125
|
-
"aria-selected": a,
|
|
126
|
-
"aria-disabled": s || void 0,
|
|
127
|
-
"aria-label": j?.(n),
|
|
128
|
-
className: y(e.uiPopupOption, s && e.disabled, o && e.uiPopupOptionActive, a && e.selected, se?.(n, c)),
|
|
129
|
-
onClick: () => Ie(n),
|
|
130
|
-
children: N ? N(n, c) : /* @__PURE__ */ S(b, { children: [
|
|
131
|
-
x(a ? ne : "span", { className: e.uiPopupOptionIcon }),
|
|
132
|
-
/* @__PURE__ */ x("div", {
|
|
133
|
-
className: e.uiOptionText,
|
|
134
|
-
children: O(n)
|
|
135
|
-
}),
|
|
136
|
-
k && /* @__PURE__ */ x("div", {
|
|
137
|
-
className: e.uiOptionCode,
|
|
138
|
-
children: k(n)
|
|
139
|
-
})
|
|
140
|
-
] })
|
|
141
|
-
}, i);
|
|
142
|
-
};
|
|
143
|
-
return /* @__PURE__ */ x(c, {
|
|
144
|
-
label: f,
|
|
145
|
-
description: p,
|
|
146
|
-
disabled: m,
|
|
147
|
-
size: C,
|
|
148
|
-
className: ce,
|
|
149
|
-
children: ({ controlId: t, labelId: n, describedBy: a }) => {
|
|
150
|
-
let s = `${t}-listbox`;
|
|
151
|
-
return /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(r, {
|
|
152
|
-
ref: Ke,
|
|
153
|
-
rootRef: je,
|
|
154
|
-
id: t,
|
|
155
|
-
type: "text",
|
|
156
|
-
disabled: m,
|
|
157
|
-
readOnly: !F,
|
|
158
|
-
autoComplete: "off",
|
|
159
|
-
role: "combobox",
|
|
160
|
-
isLoading: ye,
|
|
161
|
-
value: We,
|
|
162
|
-
placeholder: H === void 0 || Q ? `${v ?? f ?? ""} <${w.length}>` : void 0,
|
|
163
|
-
"aria-labelledby": n,
|
|
164
|
-
"aria-describedby": a,
|
|
165
|
-
"aria-haspopup": "listbox",
|
|
166
|
-
"aria-expanded": z,
|
|
167
|
-
"aria-controls": z ? s : void 0,
|
|
168
|
-
"aria-autocomplete": F ? "list" : "none",
|
|
169
|
-
"aria-activedescendant": z ? J(s) : void 0,
|
|
170
|
-
inputClassName: y(Ge && T.inputWithOverlay, le, "textOverflow"),
|
|
171
|
-
overlay: Ge ? /* @__PURE__ */ x("div", {
|
|
172
|
-
className: T.valueOverlay,
|
|
173
|
-
children: Z
|
|
174
|
-
}) : void 0,
|
|
175
|
-
endAdornment: /* @__PURE__ */ x(o, {
|
|
176
|
-
open: z,
|
|
177
|
-
disabled: m,
|
|
178
|
-
onToggleMouseDown: $.handleToggleMouseDown,
|
|
179
|
-
onToggleClick: $.handleToggleClick,
|
|
180
|
-
children: I && H !== void 0 && !m ? /* @__PURE__ */ x("button", {
|
|
181
|
-
type: "button",
|
|
182
|
-
className: e.uiClearButton,
|
|
183
|
-
"data-ui": "select-clear-button",
|
|
184
|
-
"data-action": "clear-select",
|
|
185
|
-
onMouseDown: (e) => {
|
|
186
|
-
e.preventDefault(), e.stopPropagation();
|
|
187
|
-
},
|
|
188
|
-
onClick: (e) => {
|
|
189
|
-
e.preventDefault(), e.stopPropagation(), qe();
|
|
190
|
-
},
|
|
191
|
-
"aria-label": "Очистить выбор",
|
|
192
|
-
children: /* @__PURE__ */ x(re, {})
|
|
193
|
-
}) : null
|
|
194
|
-
}),
|
|
195
|
-
onChange: (e) => {
|
|
196
|
-
F && $.handleTriggerInputChange(e.target.value);
|
|
197
|
-
},
|
|
198
|
-
onClick: $.handleTriggerClick,
|
|
199
|
-
onFocus: (e) => {
|
|
200
|
-
$.handleTriggerFocus(e.currentTarget);
|
|
201
|
-
},
|
|
202
|
-
onKeyDown: (e) => {
|
|
203
|
-
Re(e), !e.defaultPrevented && $.handleTriggerKeyDown({
|
|
204
|
-
event: e,
|
|
205
|
-
onActivateWhenOpen: Le,
|
|
206
|
-
enableSpaceActivation: !F
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
}), /* @__PURE__ */ x(i, {
|
|
210
|
-
open: z,
|
|
211
|
-
context: Oe,
|
|
212
|
-
floatingStyles: ke,
|
|
213
|
-
listId: s,
|
|
214
|
-
labelId: n,
|
|
215
|
-
descriptionId: a,
|
|
216
|
-
activeOptionId: Y ? J(s) : void 0,
|
|
217
|
-
setFloating: Me,
|
|
218
|
-
getFloatingProps: Ae,
|
|
219
|
-
onKeyDown: ze,
|
|
220
|
-
className: y(e.uiPopupOptions, ue),
|
|
221
|
-
maxWidth: de,
|
|
222
|
-
header: _e,
|
|
223
|
-
children: /* @__PURE__ */ x("div", {
|
|
224
|
-
className: y(fe, "h100 scrollable"),
|
|
225
|
-
children: Y ? K ? K.map((t, n) => {
|
|
226
|
-
let r = t.group ? `${s}-group-${n}` : void 0, i = t.items.map(({ option: e, index: t }) => Je(s, e, t));
|
|
227
|
-
return t.group ? /* @__PURE__ */ S("div", {
|
|
228
|
-
role: "group",
|
|
229
|
-
"aria-labelledby": r,
|
|
230
|
-
children: [/* @__PURE__ */ x("div", {
|
|
231
|
-
id: r,
|
|
232
|
-
className: e.uiPopupGroupLabel,
|
|
233
|
-
children: t.group.label
|
|
234
|
-
}), i]
|
|
235
|
-
}, `group-${String(t.group.key)}-${n}`) : /* @__PURE__ */ x(h, { children: i }, `options-${n}`);
|
|
236
|
-
}) : G.map((e, t) => Je(s, e, t)) : /* @__PURE__ */ x(d, {
|
|
237
|
-
emptyState: ve,
|
|
238
|
-
errorState: be
|
|
239
|
-
})
|
|
240
|
-
})
|
|
241
|
-
})] });
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
//#endregion
|
|
246
|
-
//#region src/select/ODataSelect.tsx
|
|
247
|
-
function oe(e, t, n) {
|
|
248
|
-
return e ? t || Object.keys(e).find((e) => e !== n) || n : t || n;
|
|
249
|
-
}
|
|
250
|
-
var D = ({ odata: e, segment: n, model: r, size: i, label: a, description: o, disabled: s, value: c, dependencies: l, onChange: u, clearable: d }) => {
|
|
251
|
-
let f = w({
|
|
252
|
-
odata: e,
|
|
253
|
-
segment: n,
|
|
254
|
-
model: v(r),
|
|
255
|
-
value: c,
|
|
256
|
-
dependencies: l,
|
|
257
|
-
onChange: u
|
|
258
|
-
});
|
|
259
|
-
if (f.isLoading) return /* @__PURE__ */ x(t, {
|
|
260
|
-
size: i,
|
|
261
|
-
label: a,
|
|
262
|
-
description: o
|
|
263
|
-
});
|
|
264
|
-
let m = n.hideCode ?? e.hideCode, h = oe(f.selectedItem ?? f.options[0], f.textKey, f.codeKey);
|
|
265
|
-
return /* @__PURE__ */ x(E, {
|
|
266
|
-
size: i,
|
|
267
|
-
label: a,
|
|
268
|
-
description: o,
|
|
269
|
-
options: f.options,
|
|
270
|
-
value: f.selectedItem,
|
|
271
|
-
onChange: f.handleChange,
|
|
272
|
-
getOptionKey: (e) => e[f.codeKey],
|
|
273
|
-
getOptionLabel: (e) => e[h],
|
|
274
|
-
getOptionCode: m ? void 0 : (e) => e[f.codeKey],
|
|
275
|
-
getOptionAriaLabel: (e) => m || e[h] === e[f.codeKey] ? String(e[h]) : `${e[h]} ${e[f.codeKey]}`,
|
|
276
|
-
renderValue: (e) => /* @__PURE__ */ x(p, {
|
|
277
|
-
label: e[h],
|
|
278
|
-
code: m ? void 0 : e[f.codeKey]
|
|
279
|
-
}),
|
|
280
|
-
renderOption: (e) => /* @__PURE__ */ x(p, {
|
|
281
|
-
label: e[h],
|
|
282
|
-
code: m ? void 0 : e[f.codeKey],
|
|
283
|
-
highlight: f.debouncedQuery
|
|
284
|
-
}),
|
|
285
|
-
searchable: !0,
|
|
286
|
-
query: f.query,
|
|
287
|
-
onQuery: f.setQuery,
|
|
288
|
-
defaultFilter: !1,
|
|
289
|
-
disabled: s || f.isLoading,
|
|
290
|
-
placeholder: f.placeholder,
|
|
291
|
-
isLoading: f.isLoading,
|
|
292
|
-
errorState: f.isError ? "Ошибка загрузки" : void 0,
|
|
293
|
-
emptyState: !f.isLoading && !f.isError ? "Нет данных" : void 0,
|
|
294
|
-
clearable: d
|
|
295
|
-
});
|
|
296
|
-
};
|
|
297
|
-
//#endregion
|
|
298
|
-
//#region src/select/ODataDependentSegmentSelect.tsx
|
|
299
|
-
function O(e) {
|
|
300
|
-
let { item: t, disabled: n, label: r, description: i, size: a, width: o = 15, clearable: s } = e, c = m(e), { updateSegment: l } = c, u = `calc(${o}em + var(--width-add))`, d = g((e) => {
|
|
301
|
-
l(t.id, e === void 0 ? [] : [e]);
|
|
302
|
-
}, [t.id, l]);
|
|
303
|
-
return /* @__PURE__ */ x("div", {
|
|
304
|
-
style: {
|
|
305
|
-
maxWidth: u,
|
|
306
|
-
minWidth: u
|
|
307
|
-
},
|
|
308
|
-
children: /* @__PURE__ */ x(D, {
|
|
309
|
-
odata: t.odata,
|
|
310
|
-
segment: t.segment,
|
|
311
|
-
model: t.model,
|
|
312
|
-
dependencies: c.values,
|
|
313
|
-
value: c.values[t.id]?.[0],
|
|
314
|
-
onChange: d,
|
|
315
|
-
disabled: n || c.isSegmentDisabled(t.id),
|
|
316
|
-
label: r,
|
|
317
|
-
description: i,
|
|
318
|
-
size: a,
|
|
319
|
-
clearable: s
|
|
320
|
-
})
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
//#endregion
|
|
324
|
-
//#region src/select/SerializableSelect.tsx
|
|
325
|
-
function k(e, t) {
|
|
326
|
-
return e[t];
|
|
327
|
-
}
|
|
328
|
-
function A(e, t, n) {
|
|
329
|
-
let r = e[t];
|
|
330
|
-
if (typeof r == "string" || typeof r == "number") return r;
|
|
331
|
-
let i = k(e, n);
|
|
332
|
-
return typeof i == "string" || typeof i == "number" ? i : String(i);
|
|
333
|
-
}
|
|
334
|
-
function j({ label: e, description: t, disabled: n, placeholder: r, size: i, options: a, value: o, onChange: s, optionKey: c, optionLabel: l, renderCode: u, className: d, clearable: f }) {
|
|
335
|
-
let p = o === void 0 ? void 0 : a.find((e) => k(e, c) === o);
|
|
336
|
-
return /* @__PURE__ */ x(E, {
|
|
337
|
-
label: e,
|
|
338
|
-
description: t,
|
|
339
|
-
disabled: n,
|
|
340
|
-
placeholder: r,
|
|
341
|
-
size: i,
|
|
342
|
-
options: a,
|
|
343
|
-
value: p,
|
|
344
|
-
onChange: (e) => s(e ? k(e, c) : void 0),
|
|
345
|
-
getOptionKey: (e) => k(e, c),
|
|
346
|
-
getOptionLabel: (e) => A(e, l, c),
|
|
347
|
-
getOptionCode: u ? (e) => k(e, c) : void 0,
|
|
348
|
-
className: d,
|
|
349
|
-
clearable: f
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
//#endregion
|
|
353
|
-
export { C as a, E as i, O as n, D as r, j as t };
|
|
354
|
-
|
|
355
|
-
//# sourceMappingURL=select-B0xc6g81.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-B0xc6g81.js","names":[],"sources":["../../src/select/lib/getOptionSearchText.ts","../../src/select/model/useODataSelect.ts","../../src/select/lib/createSelectOptionSections.ts","../../src/select/Select.module.scss","../../src/select/Select.tsx","../../src/select/ODataSelect.tsx","../../src/select/ODataDependentSegmentSelect.tsx","../../src/select/SerializableSelect.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { extractPickerTextContent } from \"../../picker\";\nimport { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport function getOptionSearchText<T extends InputType>({\n\toption,\n\tgetOptionLabel,\n\tgetOptionCode,\n\tgetOptionGroup\n}: {\n\toption: T;\n\tgetOptionLabel: (option: T) => ReactNode;\n\tgetOptionCode?: (option: T) => ReactNode;\n\tgetOptionGroup?: (option: T) => SelectOptionGroup | undefined;\n}) {\n\treturn [\n\t\textractPickerTextContent(getOptionLabel(option)),\n\t\textractPickerTextContent(getOptionCode?.(option)),\n\t\textractPickerTextContent(getOptionGroup?.(option)?.label)\n\t]\n\t\t.filter((part): part is string => Boolean(part))\n\t\t.join(\" \")\n\t\t.toLowerCase();\n}\n\n/** Находит selected option по value и возвращает fallback, если значение еще не нормализовано. */\nexport function resolveSelectedOption<TOption extends { value: string }>(\n\toptions: readonly TOption[],\n\tvalue: string,\n\tfallback: TOption\n): TOption {\n\treturn options.find((option) => option.value === value) ?? fallback;\n}\n","import { useMemo } from \"react\";\n\nimport { ODataCollectionModel, ODataSingleSelectProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { useODataSelectBase } from \"./useODataSelectBase\";\n\ninterface UseODataSelectOptions extends Omit<ODataSingleSelectProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (value: string | undefined) => void;\n}\n\nexport function useODataSelect({ odata, segment, model, value, dependencies, onChange }: UseODataSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue: value ? [value] : [],\n\t\tdependencies\n\t});\n\n\tconst selectedItem = odataModel.selectedItems[0];\n\tconst options = useMemo(() => {\n\t\tif (!selectedItem) {\n\t\t\treturn odataModel.filteredItems;\n\t\t}\n\n\t\treturn [selectedItem, ...odataModel.filteredItems];\n\t}, [odataModel.filteredItems, selectedItem]);\n\n\tconst handleChange = (item: CollectionItem | undefined) => {\n\t\tonChange(item?.[odataModel.selectionKey]);\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\tselectedItem,\n\t\toptions,\n\t\thandleChange\n\t};\n}\n","import { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport type SelectOptionSectionItem<TOption> = {\n\treadonly option: TOption;\n\treadonly index: number;\n};\n\nexport type SelectOptionSection<TOption> = {\n\treadonly group: SelectOptionGroup | undefined;\n\treadonly items: readonly SelectOptionSectionItem<TOption>[];\n};\n\n/**\n * Собирает соседние опции с одинаковым group key в секции, сохраняя исходные индексы для клавиатурной навигации listbox.\n */\nexport function createSelectOptionSections<TOption>(\n\toptions: readonly TOption[],\n\tgetOptionGroup: (option: TOption) => SelectOptionGroup | undefined\n): readonly SelectOptionSection<TOption>[] {\n\tconst sections: Array<{ group: SelectOptionGroup | undefined; items: SelectOptionSectionItem<TOption>[] }> = [];\n\n\toptions.forEach((option, index) => {\n\t\tconst group = getOptionGroup(option);\n\t\tconst currentSection = sections.at(-1);\n\t\tconst belongsToCurrentSection = currentSection?.group?.key === group?.key;\n\n\t\tif (currentSection && belongsToCurrentSection) {\n\t\t\tcurrentSection.items.push({ option, index });\n\t\t\treturn;\n\t\t}\n\n\t\tsections.push({\n\t\t\tgroup,\n\t\t\titems: [{ option, index }]\n\t\t});\n\t});\n\n\treturn sections;\n}\n",".inputWithOverlay {\n\tcolor: transparent;\n\tcaret-color: transparent;\n}\n\n.valueOverlay {\n\tposition: absolute;\n\tinset: 0 calc(var(--control-height) + var(--space-xs)) 0 var(--space-md);\n\tdisplay: flex;\n\talign-items: center;\n\tpointer-events: none;\n\toverflow: hidden;\n}\n","import { type CSSProperties, Fragment, ReactNode, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { Placement } from \"@floating-ui/react\";\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon, XIcon } from \"lucide-react\";\n\nimport {\n\textractPickerTextContent,\n\tPickerField,\n\tPickerPopup,\n\tPickerStatus,\n\tPickerTriggerActions,\n\tPickerTriggerInput,\n\tusePickerDefaultFilter,\n\tusePickerFloatingListbox,\n\tusePickerQuery,\n\tusePickerTriggerController\n} from \"../picker\";\nimport { ChangeHandler, UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport { getOptionSearchText } from \"./lib\";\nimport { createSelectOptionSections } from \"./lib/createSelectOptionSections\";\nimport styles from \"./Select.module.scss\";\nimport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport { type SelectOptionGroup, type SelectOptionKey } from \"./SelectOptionGroup\";\n\nexport type SelectOptionState = {\n\tactive: boolean;\n\tselected: boolean;\n\tdisabled: boolean;\n};\n\ntype SelectSharedProps<TOption extends InputType> = Omit<UiBaseProps<TOption, TOption | undefined>, \"onChange\"> & {\n\toptions: readonly TOption[];\n\tgetOptionKey: (option: TOption) => SelectOptionKey;\n\tgetOptionLabel: (option: TOption) => ReactNode;\n\tgetOptionCode?: (option: TOption) => ReactNode;\n\tgetOptionDisabled?: (option: TOption) => boolean;\n\tgetOptionAriaLabel?: (option: TOption) => string;\n\tgetOptionGroup?: (option: TOption) => SelectOptionGroup | undefined;\n\tgetOptionClassName?: (option: TOption, state: SelectOptionState) => string | undefined;\n\trenderOption?: (option: TOption, state: SelectOptionState) => ReactNode;\n\trenderValue?: (option: TOption) => ReactNode;\n\tclassName?: string;\n\tbuttonClassName?: string;\n\toptionsClassName?: string;\n\toptionsMaxWidth?: CSSProperties[\"maxWidth\"];\n\toptionsContentClassName?: string;\n\tsearchable?: boolean;\n\tquery?: string;\n\tdefaultQuery?: string;\n\tonQuery?: (value: string) => void;\n\tdefaultFilter?: boolean;\n\tisLoading?: boolean;\n\trenderPopupHeader?: ReactNode;\n\temptyState?: ReactNode;\n\terrorState?: ReactNode;\n\tplacement?: Placement;\n};\n\ntype SelectChangeValue<TOption extends InputType, TClearable extends boolean | undefined> = true extends TClearable\n\t? TOption | undefined\n\t: TOption;\n\nexport type SelectProps<TOption extends InputType, TClearable extends boolean | undefined = false> = SelectSharedProps<TOption> & {\n\tclearable?: TClearable;\n\tonChange: ChangeHandler<SelectChangeValue<TOption, TClearable>>;\n};\n\n/**\n * Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.\n */\nexport function Select<TOption extends InputType, TClearable extends boolean | undefined = false>(props: SelectProps<TOption, TClearable>) {\n\tconst {\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tplaceholder,\n\t\tsize,\n\t\toptions,\n\t\tvalue,\n\t\tonChange,\n\t\tgetOptionKey,\n\t\tgetOptionLabel,\n\t\tgetOptionCode,\n\t\tgetOptionDisabled,\n\t\tgetOptionAriaLabel,\n\t\tgetOptionGroup,\n\t\tgetOptionClassName,\n\t\trenderOption,\n\t\trenderValue,\n\t\tclassName,\n\t\tbuttonClassName,\n\t\toptionsClassName,\n\t\toptionsMaxWidth,\n\t\toptionsContentClassName,\n\t\tsearchable = false,\n\t\tdefaultFilter = true,\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\trenderPopupHeader,\n\t\temptyState,\n\t\tisLoading,\n\t\terrorState,\n\t\tplacement = \"bottom-start\",\n\t\tclearable = false\n\t} = props;\n\tconst emitChange = onChange as ChangeHandler<TOption | undefined>;\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst triggerMode = searchable ? \"search-single\" : \"display\";\n\tconst selectedKey = value === undefined ? undefined : getOptionKey(value);\n\tconst selectedOption =\n\t\tselectedKey === undefined ? undefined : (options.find((option) => getOptionKey(option) === selectedKey) ?? value);\n\tconst {\n\t\tquery: currentQuery,\n\t\tsetQuery,\n\t\tresetQueryOnClose\n\t} = usePickerQuery({\n\t\tquery,\n\t\tdefaultQuery,\n\t\tonQuery,\n\t\ttriggerMode\n\t});\n\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\tif (open && !nextOpen && resetQueryOnClose) {\n\t\t\tsetQuery(\"\");\n\t\t}\n\n\t\tsetOpen(nextOpen);\n\t};\n\tconst getSearchText = useCallback(\n\t\t(option: TOption) =>\n\t\t\tgetOptionSearchText({\n\t\t\t\toption,\n\t\t\t\tgetOptionLabel,\n\t\t\t\tgetOptionCode,\n\t\t\t\tgetOptionGroup\n\t\t\t}),\n\t\t[getOptionCode, getOptionGroup, getOptionLabel]\n\t);\n\tconst visibleOptions = usePickerDefaultFilter({\n\t\toptions,\n\t\tquery: currentQuery,\n\t\tenabled: searchable && defaultFilter,\n\t\tgetSearchText\n\t});\n\tconst optionSections = useMemo(\n\t\t() => (getOptionGroup ? createSelectOptionSections(visibleOptions, getOptionGroup) : undefined),\n\t\t[getOptionGroup, visibleOptions]\n\t);\n\tconst selectedIndex = selectedKey === undefined ? -1 : visibleOptions.findIndex((option) => getOptionKey(option) === selectedKey);\n\tconst {\n\t\tactiveIndex,\n\t\tcontext,\n\t\tfloatingStyles,\n\t\tgetFloatingProps,\n\t\tsetReference,\n\t\tsetFloating,\n\t\tsetOptionRef,\n\t\tclose,\n\t\topenList,\n\t\ttoggleOpen,\n\t\tselectOption,\n\t\tselectActiveOption,\n\t\thandleReferenceKeyDown,\n\t\thandleFloatingKeyDown,\n\t\tgetOptionId,\n\t\tgetActiveOptionId\n\t} = usePickerFloatingListbox({\n\t\toptions: visibleOptions,\n\t\tselectedIndex,\n\t\topen,\n\t\tonOpenChange: handleOpenChange,\n\t\tgetOptionDisabled,\n\t\tonSelect: emitChange,\n\t\tdisabled,\n\t\tplacement,\n\t\ttriggerMode\n\t});\n\n\tconst hasOptions = visibleOptions.length > 0;\n\tconst labelContent = selectedOption !== undefined ? getOptionLabel(selectedOption) : undefined;\n\tconst displayContent = selectedOption !== undefined ? (renderValue ? renderValue(selectedOption) : labelContent) : undefined;\n\tconst labelText = extractPickerTextContent(labelContent);\n\tconst codeText = selectedOption !== undefined ? extractPickerTextContent(getOptionCode?.(selectedOption)) : undefined;\n\tconst displayText =\n\t\textractPickerTextContent(displayContent) ?? labelText ?? codeText ?? (selectedKey !== undefined ? String(selectedKey) : \"\");\n\tconst showSearchValue = searchable && (open || currentQuery.length > 0);\n\tconst inputValue = showSearchValue ? currentQuery : selectedOption !== undefined ? displayText : \"\";\n\tconst showDisplayOverlay =\n\t\tselectedOption !== undefined &&\n\t\tdisplayContent !== undefined &&\n\t\textractPickerTextContent(displayContent) === undefined &&\n\t\t!showSearchValue;\n\tconst triggerController = usePickerTriggerController({\n\t\tmode: triggerMode,\n\t\topen,\n\t\tcurrentQuery,\n\t\thasDisplayValue: selectedOption !== undefined,\n\t\tinputRef,\n\t\tsetQuery,\n\t\topenList,\n\t\tclose,\n\t\ttoggleOpen\n\t});\n\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\tinputRef.current = node;\n\t};\n\tconst handleClear = () => {\n\t\tif (clearable) {\n\t\t\temitChange(undefined);\n\t\t}\n\n\t\tsetQuery(\"\");\n\t\tclose();\n\t};\n\tconst renderOptionNode = (listId: string, option: TOption, index: number) => {\n\t\tconst optionKey = getOptionKey(option);\n\t\tconst selected = selectedKey !== undefined && optionKey === selectedKey;\n\t\tconst active = index === activeIndex;\n\t\tconst optionDisabled = getOptionDisabled?.(option) ?? false;\n\t\tconst optionState = { active, selected, disabled: optionDisabled };\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tkey={optionKey}\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\taria-label={getOptionAriaLabel?.(option)}\n\t\t\t\tclassName={cn(\n\t\t\t\t\tuiStyles.uiPopupOption,\n\t\t\t\t\toptionDisabled && uiStyles.disabled,\n\t\t\t\t\tactive && uiStyles.uiPopupOptionActive,\n\t\t\t\t\tselected && uiStyles.selected,\n\t\t\t\t\tgetOptionClassName?.(option, optionState)\n\t\t\t\t)}\n\t\t\t\tonClick={() => selectOption(option)}>\n\t\t\t\t{renderOption ? (\n\t\t\t\t\trenderOption(option, optionState)\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{selected ? <CheckIcon className={uiStyles.uiPopupOptionIcon} /> : <span className={uiStyles.uiPopupOptionIcon} />}\n\t\t\t\t\t\t<div className={uiStyles.uiOptionText}>{getOptionLabel(option)}</div>\n\t\t\t\t\t\t{getOptionCode && <div className={uiStyles.uiOptionCode}>{getOptionCode(option)}</div>}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\treturn (\n\t\t<PickerField label={label} description={description} disabled={disabled} size={size} className={className}>\n\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PickerTriggerInput\n\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\treadOnly={!searchable}\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\tselectedOption === undefined || showSearchValue\n\t\t\t\t\t\t\t\t\t? `${placeholder ?? label ?? \"\"} <${options.length}>`\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\taria-autocomplete={searchable ? \"list\" : \"none\"}\n\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tinputClassName={cn(showDisplayOverlay && styles.inputWithOverlay, buttonClassName, \"textOverflow\")}\n\t\t\t\t\t\t\toverlay={showDisplayOverlay ? <div className={styles.valueOverlay}>{displayContent}</div> : undefined}\n\t\t\t\t\t\t\tendAdornment={\n\t\t\t\t\t\t\t\t<PickerTriggerActions\n\t\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}>\n\t\t\t\t\t\t\t\t\t{clearable && selectedOption !== undefined && !disabled ? (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={uiStyles.uiClearButton}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"select-clear-button\"\n\t\t\t\t\t\t\t\t\t\t\tdata-action=\"clear-select\"\n\t\t\t\t\t\t\t\t\t\t\tonMouseDown={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\thandleClear();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\taria-label=\"Очистить выбор\">\n\t\t\t\t\t\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</PickerTriggerActions>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\tif (!searchable) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerInputChange(event.target.value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\tonActivateWhenOpen: selectActiveOption,\n\t\t\t\t\t\t\t\t\tenableSpaceActivation: !searchable\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\tactiveOptionId={hasOptions ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\tclassName={cn(uiStyles.uiPopupOptions, optionsClassName)}\n\t\t\t\t\t\t\tmaxWidth={optionsMaxWidth}\n\t\t\t\t\t\t\theader={renderPopupHeader}>\n\t\t\t\t\t\t\t<div className={cn(optionsContentClassName, \"h100 scrollable\")}>\n\t\t\t\t\t\t\t\t{hasOptions ? (\n\t\t\t\t\t\t\t\t\toptionSections ? (\n\t\t\t\t\t\t\t\t\t\toptionSections.map((section, sectionIndex) => {\n\t\t\t\t\t\t\t\t\t\t\tconst groupLabelId = section.group ? `${listId}-group-${sectionIndex}` : undefined;\n\t\t\t\t\t\t\t\t\t\t\tconst optionNodes = section.items.map(({ option, index }) =>\n\t\t\t\t\t\t\t\t\t\t\t\trenderOptionNode(listId, option, index)\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\treturn section.group ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`group-${String(section.group.key)}-${sectionIndex}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-labelledby={groupLabelId}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div id={groupLabelId} className={uiStyles.uiPopupGroupLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{section.group.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{optionNodes}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<Fragment key={`options-${sectionIndex}`}>{optionNodes}</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tvisibleOptions.map((option, index) => renderOptionNode(listId, option, index))\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<PickerStatus emptyState={emptyState} errorState={errorState} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n","import React from \"react\";\n\nimport { ODataSingleSelectProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { InputUILoading } from \"../input\";\nimport { UiBaseProps } from \"../types\";\n\nimport { useODataSelect } from \"./model/useODataSelect\";\nimport { Select } from \"./Select\";\nimport { SelectOptionContent } from \"./SelectOptionContent\";\n\ntype ODataSelectProps = Omit<ODataSingleSelectProps, \"value\"> & UiBaseProps<string | undefined> & { clearable?: boolean };\n\nfunction getODataOptionTextKey(item: CollectionItem | undefined, textKey: string, codeKey: string) {\n\tif (!item) {\n\t\treturn textKey || codeKey;\n\t}\n\n\treturn textKey || Object.keys(item).find((key) => key !== codeKey) || codeKey;\n}\n\nexport const ODataSelect: React.FC<ODataSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tsize,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tclearable\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\tif (odataModel.isLoading) {\n\t\treturn <InputUILoading size={size} label={label} description={description} />;\n\t}\n\n\tconst hideCode = segment.hideCode ?? odata.hideCode;\n\tconst resolvedTextKey = getODataOptionTextKey(odataModel.selectedItem ?? odataModel.options[0], odataModel.textKey, odataModel.codeKey);\n\n\treturn (\n\t\t<Select\n\t\t\tsize={size}\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\toptions={odataModel.options}\n\t\t\tvalue={odataModel.selectedItem}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tgetOptionKey={(item) => item[odataModel.codeKey]}\n\t\t\tgetOptionLabel={(item) => item[resolvedTextKey]}\n\t\t\tgetOptionCode={hideCode ? undefined : (item) => item[odataModel.codeKey]}\n\t\t\tgetOptionAriaLabel={(item) =>\n\t\t\t\thideCode || item[resolvedTextKey] === item[odataModel.codeKey]\n\t\t\t\t\t? String(item[resolvedTextKey])\n\t\t\t\t\t: `${item[resolvedTextKey]} ${item[odataModel.codeKey]}`\n\t\t\t}\n\t\t\trenderValue={(item) => (\n\t\t\t\t<SelectOptionContent label={item[resolvedTextKey]} code={hideCode ? undefined : item[odataModel.codeKey]} />\n\t\t\t)}\n\t\t\trenderOption={(item) => (\n\t\t\t\t<SelectOptionContent\n\t\t\t\t\tlabel={item[resolvedTextKey]}\n\t\t\t\t\tcode={hideCode ? undefined : item[odataModel.codeKey]}\n\t\t\t\t\thighlight={odataModel.debouncedQuery}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tsearchable\n\t\t\tquery={odataModel.query}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tdefaultFilter={false}\n\t\t\tdisabled={disabled || odataModel.isLoading}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\tisLoading={odataModel.isLoading}\n\t\t\terrorState={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t\temptyState={!odataModel.isLoading && !odataModel.isError ? \"Нет данных\" : undefined}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n};\n","import { useCallback } from \"react\";\n\nimport { useODataDependentSelection } from \"../odata-dependent\";\n\nimport { ODataSelect } from \"./ODataSelect\";\n\nimport type { ODataDependentSegmentControlProps } from \"../odata-dependent\";\n\nexport type ODataDependentSegmentSelectProps = ODataDependentSegmentControlProps & {\n\t/** Показывает действие очистки выбранного значения. */\n\tclearable?: boolean;\n};\n\n/**\n * Адаптирует один развёрнутый зависимый OData-сегмент к single-select UI.\n * Общий снимок остаётся массивным, поэтому совместим с `dependencies` и\n * может совместно использоваться с segment-level MultiSelect-контролами.\n */\nexport function ODataDependentSegmentSelect(props: ODataDependentSegmentSelectProps) {\n\tconst { item, disabled, label, description, size, width = 15, clearable } = 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(value: string | undefined) => {\n\t\t\tupdateSegment(item.id, value === undefined ? [] : [value]);\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<ODataSelect\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]?.[0]}\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\tclearable={clearable}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n","import { Select } from \"./Select\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { SelectOptionKey } from \"./Select\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], SelectOptionKey> extends never ? never : K;\n}[keyof TOption];\n\ntype SerializableOptionValue<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>> = Extract<\n\tTOption[TOptionKey],\n\tSelectOptionKey\n>;\n\nexport interface SerializableSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends Omit<UiBaseProps<SerializableOptionValue<TOption, TOptionKey> | undefined>, \"onChange\"> {\n\toptions: readonly TOption[];\n\tonChange: (value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void;\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n\tclassName?: string;\n\tclearable?: boolean;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], SelectOptionKey> {\n\treturn option[optionKey] as Extract<TOption[TOptionKey], SelectOptionKey>;\n}\n\nfunction getSerializableOptionLabel<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>(option: TOption, optionLabel: TOptionLabel, optionKey: TOptionKey): string | number {\n\tconst label = option[optionLabel];\n\n\tif (typeof label === \"string\" || typeof label === \"number\") {\n\t\treturn label;\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn typeof key === \"string\" || typeof key === \"number\" ? key : String(key);\n}\n\nexport function SerializableSelect<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tplaceholder,\n\tsize,\n\toptions,\n\tvalue,\n\tonChange,\n\toptionKey,\n\toptionLabel,\n\trenderCode,\n\tclassName,\n\tclearable\n}: SerializableSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\tconst selectedOption =\n\t\tvalue === undefined ? undefined : options.find((option) => getSerializableOptionKey(option, optionKey) === value);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\toptions={options}\n\t\t\tvalue={selectedOption}\n\t\t\tonChange={(option: TOption | undefined) => onChange(option ? getSerializableOptionKey(option, optionKey) : undefined)}\n\t\t\tgetOptionKey={(option: TOption) => getSerializableOptionKey(option, optionKey)}\n\t\t\tgetOptionLabel={(option: TOption) => getSerializableOptionLabel(option, optionLabel, optionKey)}\n\t\t\tgetOptionCode={renderCode ? (option: TOption) => getSerializableOptionKey(option, optionKey) : undefined}\n\t\t\tclassName={className}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;;;;AAOA,SAAgB,GAAyC,EACxD,WACA,mBACA,kBACA,qBAME;CACF,OAAO;EACN,EAAyB,EAAe,CAAM,CAAC;EAC/C,EAAyB,IAAgB,CAAM,CAAC;EAChD,EAAyB,IAAiB,CAAM,CAAC,EAAE,KAAK;CACzD,CAAC,CACC,QAAQ,MAAyB,EAAQ,CAAK,CAAC,CAC/C,KAAK,GAAG,CAAC,CACT,YAAY;AACf;AAGA,SAAgB,EACf,GACA,GACA,GACU;CACV,OAAO,EAAQ,MAAM,MAAW,EAAO,UAAU,CAAK,KAAK;AAC5D;;;ACvBA,SAAgB,EAAe,EAAE,UAAO,YAAS,UAAO,UAAO,iBAAc,eAAmC;CAC/G,IAAM,IAAa,EAAmB;EACrC;EACA;EACA;EACA,OAAO,IAAQ,CAAC,CAAK,IAAI,CAAC;EAC1B;CACD,CAAC,GAEK,IAAe,EAAW,cAAc,IACxC,IAAU,QACV,IAIE,CAAC,GAAc,GAAG,EAAW,aAAa,IAHzC,EAAW,eAIjB,CAAC,EAAW,eAAe,CAAY,CAAC,GAErC,KAAgB,MAAqC;EAC1D,EAAS,IAAO,EAAW,aAAa;CACzC;CAEA,OAAO;EACN,GAAG;EACH;EACA;EACA;CACD;AACD;;;ACzBA,SAAgB,GACf,GACA,GAC0C;CAC1C,IAAM,IAAuG,CAAC;CAkB9G,OAhBA,EAAQ,SAAS,GAAQ,MAAU;EAClC,IAAM,IAAQ,EAAe,CAAM,GAC7B,IAAiB,EAAS,GAAG,EAAE,GAC/B,IAA0B,GAAgB,OAAO,QAAQ,GAAO;EAEtE,IAAI,KAAkB,GAAyB;GAC9C,EAAe,MAAM,KAAK;IAAE;IAAQ;GAAM,CAAC;GAC3C;EACD;EAEA,EAAS,KAAK;GACb;GACA,OAAO,CAAC;IAAE;IAAQ;GAAM,CAAC;EAC1B,CAAC;CACF,CAAC,GAEM;AACR;;;;;;;AEqCA,SAAgB,EAAkF,GAAyC;CAC1I,IAAM,EACL,UACA,gBACA,aACA,gBACA,SACA,YACA,UACA,cACA,iBACA,mBACA,kBACA,sBACA,uBACA,mBACA,wBACA,iBACA,gBACA,eACA,qBACA,sBACA,qBACA,6BACA,gBAAa,IACb,oBAAgB,IAChB,WACA,kBACA,aACA,uBACA,gBACA,eACA,gBACA,gBAAY,gBACZ,eAAY,OACT,GACE,IAAa,IAEb,IAAW,GAAgC,IAAI,GAC/C,CAAC,GAAM,MAAW,GAAS,EAAK,GAChC,IAAc,IAAa,kBAAkB,WAC7C,IAAc,MAAU,KAAA,IAAY,KAAA,IAAY,EAAa,CAAK,GAClE,IACL,MAAgB,KAAA,IAAY,KAAA,IAAa,EAAQ,MAAM,MAAW,EAAa,CAAM,MAAM,CAAW,KAAK,GACtG,EACL,OAAO,GACP,aACA,0BACG,EAAe;EAClB;EACA;EACA;EACA;CACD,CAAC,GACK,MAAoB,MAAsB;EAK/C,AAJI,KAAQ,CAAC,KAAY,MACxB,EAAS,EAAE,GAGZ,GAAQ,CAAQ;CACjB,GACM,KAAgB,GACpB,MACA,GAAoB;EACnB;EACA;EACA;EACA;CACD,CAAC,GACF;EAAC;EAAe;EAAgB;CAAc,CAC/C,GACM,IAAiB,EAAuB;EAC7C;EACA,OAAO;EACP,SAAS,KAAc;EACvB;CACD,CAAC,GACK,IAAiB,QACf,IAAiB,GAA2B,GAAgB,CAAc,IAAI,KAAA,GACrF,CAAC,GAAgB,CAAc,CAChC,GACM,KAAgB,MAAgB,KAAA,IAAY,KAAK,EAAe,WAAW,MAAW,EAAa,CAAM,MAAM,CAAW,GAC1H,EACL,iBACA,aACA,oBACA,sBACA,kBACA,iBACA,kBACA,UACA,cACA,gBACA,kBACA,wBACA,4BACA,2BACA,iBACA,yBACG,EAAyB;EAC5B,SAAS;EACT;EACA;EACA,cAAc;EACd;EACA,UAAU;EACV;EACA;EACA;CACD,CAAC,GAEK,IAAa,EAAe,SAAS,GACrC,IAAe,MAAmB,KAAA,IAA6C,KAAA,IAAjC,EAAe,CAAc,GAC3E,IAAiB,MAAmB,KAAA,IAAyE,KAAA,IAA5D,IAAc,EAAY,CAAc,IAAI,GAC7F,KAAY,EAAyB,CAAY,GACjD,KAAW,MAAmB,KAAA,IAAwE,KAAA,IAA5D,EAAyB,IAAgB,CAAc,CAAC,GAClG,KACL,EAAyB,CAAc,KAAK,MAAa,OAAa,MAAgB,KAAA,IAAkC,KAAtB,OAAO,CAAW,IAC/G,IAAkB,MAAe,KAAQ,EAAa,SAAS,IAC/D,KAAa,IAAkB,IAAe,MAAmB,KAAA,IAA0B,KAAd,IAC7E,KACL,MAAmB,KAAA,KACnB,MAAmB,KAAA,KACnB,EAAyB,CAAc,MAAM,KAAA,KAC7C,CAAC,GACI,IAAoB,EAA2B;EACpD,MAAM;EACN;EACA;EACA,iBAAiB,MAAmB,KAAA;EACpC;EACA;EACA;EACA;EACA;CACD,CAAC,GACK,MAAgB,MAAkC;EACvD,EAAS,UAAU;CACpB,GACM,WAAoB;EAMzB,AALI,KACH,EAAW,KAAA,CAAS,GAGrB,EAAS,EAAE,GACX,EAAM;CACP,GACM,MAAoB,GAAgB,GAAiB,MAAkB;EAC5E,IAAM,IAAY,EAAa,CAAM,GAC/B,IAAW,MAAgB,KAAA,KAAa,MAAc,GACtD,IAAS,MAAU,IACnB,IAAiB,IAAoB,CAAM,KAAK,IAChD,IAAc;GAAE;GAAQ;GAAU,UAAU;EAAe;EAEjE,OACC,kBAAC,OAAD;GAEC,IAAI,GAAY,GAAQ,CAAK;GAC7B,MAAM,MAAS,GAAa,GAAO,CAAI;GACvC,MAAK;GACL,iBAAe;GACf,iBAAe,KAAkB,KAAA;GACjC,cAAY,IAAqB,CAAM;GACvC,WAAW,EACV,EAAS,eACT,KAAkB,EAAS,UAC3B,KAAU,EAAS,qBACnB,KAAY,EAAS,UACrB,KAAqB,GAAQ,CAAW,CACzC;GACA,eAAe,GAAa,CAAM;GACjC,UAAA,IACA,EAAa,GAAQ,CAAW,IAEhC,kBAAA,GAAA,EAAA,UAAA;IACa,EAAX,IAAY,KAAuD,QAAxD,EAAW,WAAW,EAAS,kBAAoB,CAAkD;IACjH,kBAAC,OAAD;KAAK,WAAW,EAAS;KAAe,UAAA,EAAe,CAAM;IAAO,CAAA;IACnE,KAAiB,kBAAC,OAAD;KAAK,WAAW,EAAS;KAAe,UAAA,EAAc,CAAM;IAAO,CAAA;GACpF,EAAA,CAAA;EAEC,GAxBC,CAwBD;CAEP;CAEA,OACC,kBAAC,GAAD;EAAoB;EAAoB;EAAuB;EAAgB;EAAiB;EAC7F,WAAA,EAAE,cAAW,YAAS,qBAAkB;GACzC,IAAM,IAAS,GAAG,EAAU;GAE5B,OACC,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,GAAD;IACC,KAAK;IACL,SAAS;IACT,IAAI;IACJ,MAAK;IACK;IACV,UAAU,CAAC;IACX,cAAa;IACb,MAAK;IACM;IACX,OAAO;IACP,aACC,MAAmB,KAAA,KAAa,IAC7B,GAAG,KAAe,KAAS,GAAG,IAAI,EAAQ,OAAO,KACjD,KAAA;IAEJ,mBAAiB;IACjB,oBAAkB;IAClB,iBAAc;IACd,iBAAe;IACf,iBAAe,IAAO,IAAS,KAAA;IAC/B,qBAAmB,IAAa,SAAS;IACzC,yBAAuB,IAAO,EAAkB,CAAM,IAAI,KAAA;IAC1D,gBAAgB,EAAG,MAAsB,EAAO,kBAAkB,IAAiB,cAAc;IACjG,SAAS,KAAqB,kBAAC,OAAD;KAAK,WAAW,EAAO;KAAe,UAAA;IAAoB,CAAA,IAAI,KAAA;IAC5F,cACC,kBAAC,GAAD;KACO;KACI;KACV,mBAAmB,EAAkB;KACrC,eAAe,EAAkB;KAChC,UAAA,KAAa,MAAmB,KAAA,KAAa,CAAC,IAC9C,kBAAC,UAAD;MACC,MAAK;MACL,WAAW,EAAS;MACpB,WAAQ;MACR,eAAY;MACZ,cAAc,MAAU;OAEvB,AADA,EAAM,eAAe,GACrB,EAAM,gBAAgB;MACvB;MACA,UAAU,MAAU;OAGnB,AAFA,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,GAAY;MACb;MACA,cAAW;MACX,UAAA,kBAAC,IAAD,CAAQ,CAAA;KACD,CAAA,IACL;IACiB,CAAA;IAEvB,WAAW,MAAU;KACf,KAIL,EAAkB,yBAAyB,EAAM,OAAO,KAAK;IAC9D;IACA,SAAS,EAAkB;IAC3B,UAAU,MAAU;KACnB,EAAkB,mBAAmB,EAAM,aAAa;IACzD;IACA,YAAY,MAAU;KACrB,GAAuB,CAAK,GAExB,GAAM,oBAIV,EAAkB,qBAAqB;MACtC;MACA,oBAAoB;MACpB,uBAAuB,CAAC;KACzB,CAAC;IACF;GACA,CAAA,GAED,kBAAC,GAAD;IACO;IACG;IACO;IACR;IACC;IACT,eAAe;IACf,gBAAgB,IAAa,EAAkB,CAAM,IAAI,KAAA;IAC5C;IACK;IAClB,WAAW;IACX,WAAW,EAAG,EAAS,gBAAgB,EAAgB;IACvD,UAAU;IACV,QAAQ;IACR,UAAA,kBAAC,OAAD;KAAK,WAAW,EAAG,IAAyB,iBAAiB;KAC3D,UAAA,IACA,IACC,EAAe,KAAK,GAAS,MAAiB;MAC7C,IAAM,IAAe,EAAQ,QAAQ,GAAG,EAAO,SAAS,MAAiB,KAAA,GACnE,IAAc,EAAQ,MAAM,KAAK,EAAE,WAAQ,eAChD,GAAiB,GAAQ,GAAQ,CAAK,CACvC;MAEA,OAAO,EAAQ,QACd,kBAAC,OAAD;OAEC,MAAK;OACL,mBAAiB;OAHlB,UAAA,CAIC,kBAAC,OAAD;QAAK,IAAI;QAAc,WAAW,EAAS;QACzC,UAAA,EAAQ,MAAM;OACX,CAAA,GACJ,CACG;MAPC,GAAA,SAAS,OAAO,EAAQ,MAAM,GAAG,EAAE,GAAG,GAOvC,IAEL,kBAAC,GAAD,EAAA,UAA2C,EAAsB,GAAlD,WAAW,GAAuC;KAEnE,CAAC,IAED,EAAe,KAAK,GAAQ,MAAU,GAAiB,GAAQ,GAAQ,CAAK,CAAC,IAG9E,kBAAC,GAAD;MAA0B;MAAwB;KAAa,CAAA;IAE5D,CAAA;GACO,CAAA,CACZ,EAAA,CAAA;EAEJ;CACY,CAAA;AAEf;;;AC5XA,SAAS,GAAsB,GAAkC,GAAiB,GAAiB;CAKlG,OAJK,IAIE,KAAW,OAAO,KAAK,CAAI,CAAC,CAAC,MAAM,MAAQ,MAAQ,CAAO,KAAK,IAH9D,KAAW;AAIpB;AAEA,IAAa,KAA2C,EACvD,UACA,YACA,OAAO,GACP,SACA,UACA,gBACA,aACA,UACA,iBACA,aACA,mBACK;CAEL,IAAM,IAAa,EAAe;EACjC;EACA;EACA,OAJa,EAAwB,CAIrC;EACA;EACA;EACA;CACD,CAAC;CAED,IAAI,EAAW,WACd,OAAO,kBAAC,GAAD;EAAsB;EAAa;EAAoB;CAAc,CAAA;CAG7E,IAAM,IAAW,EAAQ,YAAY,EAAM,UACrC,IAAkB,GAAsB,EAAW,gBAAgB,EAAW,QAAQ,IAAI,EAAW,SAAS,EAAW,OAAO;CAEtI,OACC,kBAAC,GAAD;EACO;EACC;EACM;EACb,SAAS,EAAW;EACpB,OAAO,EAAW;EAClB,UAAU,EAAW;EACrB,eAAe,MAAS,EAAK,EAAW;EACxC,iBAAiB,MAAS,EAAK;EAC/B,eAAe,IAAW,KAAA,KAAa,MAAS,EAAK,EAAW;EAChE,qBAAqB,MACpB,KAAY,EAAK,OAAqB,EAAK,EAAW,WACnD,OAAO,EAAK,EAAgB,IAC5B,GAAG,EAAK,GAAiB,GAAG,EAAK,EAAW;EAEhD,cAAc,MACb,kBAAC,GAAD;GAAqB,OAAO,EAAK;GAAkB,MAAM,IAAW,KAAA,IAAY,EAAK,EAAW;EAAW,CAAA;EAE5G,eAAe,MACd,kBAAC,GAAD;GACC,OAAO,EAAK;GACZ,MAAM,IAAW,KAAA,IAAY,EAAK,EAAW;GAC7C,WAAW,EAAW;EACtB,CAAA;EAEF,YAAA;EACA,OAAO,EAAW;EAClB,SAAS,EAAW;EACpB,eAAe;EACf,UAAU,KAAY,EAAW;EACjC,aAAa,EAAW;EACxB,WAAW,EAAW;EACtB,YAAY,EAAW,UAAU,oBAAoB,KAAA;EACrD,YAAY,CAAC,EAAW,aAAa,CAAC,EAAW,UAAU,eAAe,KAAA;EAC/D;CACX,CAAA;AAEH;;;ACxEA,SAAgB,EAA4B,GAAyC;CACpF,IAAM,EAAE,SAAM,aAAU,UAAO,gBAAa,SAAM,WAAQ,IAAI,iBAAc,GACtE,IAAY,EAA2B,CAAK,GAC5C,EAAE,qBAAkB,GACpB,IAAa,QAAQ,EAAM,yBAE3B,IAAwB,GAC5B,MAA8B;EAC9B,EAAc,EAAK,IAAI,MAAU,KAAA,IAAY,CAAC,IAAI,CAAC,CAAK,CAAC;CAC1D,GACA,CAAC,EAAK,IAAI,CAAa,CACxB;CAEA,OACC,kBAAC,OAAD;EAAK,OAAO;GAAE,UAAU;GAAY,UAAU;EAAW;EACxD,UAAA,kBAAC,GAAD;GACC,OAAO,EAAK;GACZ,SAAS,EAAK;GACd,OAAO,EAAK;GACZ,cAAc,EAAU;GACxB,OAAO,EAAU,OAAO,EAAK,GAAG,GAAG;GACnC,UAAU;GACV,UAAU,KAAY,EAAU,kBAAkB,EAAK,EAAE;GAClD;GACM;GACP;GACK;EACX,CAAA;CACG,CAAA;AAEP;;;AClBA,SAAS,EACR,GACA,GACgD;CAChD,OAAO,EAAO;AACf;AAEA,SAAS,EAIP,GAAiB,GAA2B,GAAwC;CACrF,IAAM,IAAQ,EAAO;CAErB,IAAI,OAAO,KAAU,YAAY,OAAO,KAAU,UACjD,OAAO;CAGR,IAAM,IAAM,EAAyB,GAAQ,CAAS;CACtD,OAAO,OAAO,KAAQ,YAAY,OAAO,KAAQ,WAAW,IAAM,OAAO,CAAG;AAC7E;AAEA,SAAgB,EAId,EACD,UACA,gBACA,aACA,gBACA,SACA,YACA,UACA,aACA,cACA,gBACA,eACA,cACA,gBAC8D;CAC9D,IAAM,IACL,MAAU,KAAA,IAAY,KAAA,IAAY,EAAQ,MAAM,MAAW,EAAyB,GAAQ,CAAS,MAAM,CAAK;CAEjH,OACC,kBAAC,GAAD;EACQ;EACM;EACH;EACG;EACP;EACG;EACT,OAAO;EACP,WAAW,MAAgC,EAAS,IAAS,EAAyB,GAAQ,CAAS,IAAI,KAAA,CAAS;EACpH,eAAe,MAAoB,EAAyB,GAAQ,CAAS;EAC7E,iBAAiB,MAAoB,EAA2B,GAAQ,GAAa,CAAS;EAC9F,eAAe,KAAc,MAAoB,EAAyB,GAAQ,CAAS,IAAI,KAAA;EACpF;EACA;CACX,CAAA;AAEH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.module-DHVTOqZ0.js","names":[],"sources":["../../src/ui.module.scss"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.uiSizable {\n\t--base-width: 100%;\n\n\twidth: var(--base-width);\n\n\t&.xs {\n\t\t--base-width: calc(var(--drp-ui-width-xs, var(--ui-width-xs)) - var(--width-add));\n\t}\n\n\t&.sm {\n\t\t--base-width: calc(var(--drp-ui-width-sm, var(--ui-width-sm)) - var(--width-add));\n\t}\n\n\t&.md {\n\t\t--base-width: calc(var(--drp-ui-width-md, var(--ui-width-md)) - var(--width-add));\n\t}\n\n\t&.lg {\n\t\t--base-width: calc(var(--drp-ui-width-lg, var(--ui-width-lg)) - var(--width-add));\n\t}\n\n\t&.xl {\n\t\t--base-width: calc(var(--drp-ui-width-xl, var(--ui-width-xl)) - var(--width-add));\n\t}\n}\n\n// TODO: Тестовый класс\n.uiErrorElement {\n\t--grid-size: var(--space-sm);\n\t--grid-line-size: var(--border-width);\n\t--grid-line-color: var(--status-error-soft);\n\n\theight: var(--control-height);\n\twidth: 100%; // calc(10em - var(--width-add));\n\tflex-shrink: 0;\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\tborder: var(--focus-width) solid var(--status-error-border);\n\tborder-radius: var(--radius-sm);\n\toutline: none;\n\n\tfont-weight: 700;\n\tfont-variation-settings: \"wght\" 700;\n\n\tcolor: var(--status-error-text);\n\tbackground-color: var(--surface-0);\n\tbackground-image:\n\t\trepeating-linear-gradient(\n\t\t\t45deg,\n\t\t\tvar(--grid-line-color) 0 var(--grid-line-size),\n\t\t\ttransparent var(--grid-line-size) var(--grid-size)\n\t\t),\n\t\trepeating-linear-gradient(\n\t\t\t-45deg,\n\t\t\tvar(--grid-line-color) 0 var(--grid-line-size),\n\t\t\ttransparent var(--grid-line-size) var(--grid-size)\n\t\t);\n}\n\n.uiContainer {\n\tposition: relative;\n\twidth: 100%;\n}\n\n.uiInputContainer {\n\t@extend .uiContainer;\n\n\t--padding-right: var(--control-height);\n}\n\n.uiLabelBase {\n\tdisplay: inline-block;\n\tfont-weight: 400;\n\tfont-variation-settings: \"wght\" 400;\n}\n\n.uiLabel {\n\t@extend .uiLabelBase;\n\n\tmargin-block: var(--space-xs);\n}\n\n.uiDescription {\n\t--paragraph-margin: 0;\n\n\tpadding-bottom: var(--space-xs);\n\tcolor: var(--content-1);\n\tfont-weight: 300;\n\tfont-variation-settings: \"wght\" 300;\n}\n\n.uiLabel,\n.uiDescription {\n\tmargin-inline: var(--space-xs);\n}\n\n.uiPlaceholder {\n\tcolor: var(--content-2);\n\tfont-weight: 100;\n\tfont-variation-settings: \"wght\" 100;\n\t// font-size: var(--font-size-sm);\n\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.required {\n\t.uiLabelBase::after {\n\t\tcontent: \" *\";\n\t\tcolor: var(--status-error-text);\n\t}\n}\n\n.uiControl {\n\t@include ui-tone(\"neutral\");\n\t@include ui-appearance-outline;\n\t@include ui-control-base;\n\n\t--ui-radius: var(--radius-sm);\n\n\t&.invalid,\n\t&:invalid {\n\t\t@include ui-tone(\"error\");\n\t\t@include ui-appearance-outline;\n\t}\n\n\t&::placeholder {\n\t\t@extend .uiPlaceholder;\n\t}\n}\n\n.uiToneNeutral {\n\t@include ui-tone(\"neutral\");\n}\n\n.uiToneBrand {\n\t@include ui-tone(\"brand\");\n}\n\n.uiToneError {\n\t@include ui-tone(\"error\");\n}\n\n.uiToneWarning {\n\t@include ui-tone(\"warning\");\n}\n\n.uiToneSuccess {\n\t@include ui-tone(\"success\");\n}\n\n.uiToneInfo {\n\t@include ui-tone(\"info\");\n}\n\n.uiAppearanceSolid {\n\t@include ui-appearance-solid;\n}\n\n.uiAppearanceOutline {\n\t@include ui-appearance-outline;\n}\n\n.uiAppearanceGhost {\n\t@include ui-appearance-ghost;\n}\n\n.uiAppearanceTransparent {\n\t@include ui-appearance-transparent;\n}\n\n.uiInputControl {\n\t@extend .uiControl;\n\n\theight: var(--control-height);\n}\n\n.uiInputWithToggle {\n\t@extend .uiInputControl;\n\n\tcolor: var(--content-0);\n\n\tpadding: 0 var(--padding-right) 0 var(--space-sm);\n\twidth: 100%;\n\ttext-align: left;\n\n\t// &[type=\"button\"] {\n\t// \twhite-space: nowrap;\n\t// }\n}\n\n.uiSelectionControl {\n\t@include ui-control-base;\n\n\t--ui-color: var(--content-0);\n\t--ui-color-hover: var(--content-0);\n\t--ui-color-active: var(--content-0);\n\t--ui-background: var(--surface-0);\n\t--ui-background-hover: var(--ui-tone-soft);\n\t--ui-background-active: var(--ui-tone-soft);\n\t--ui-border-color: var(--ui-tone-border);\n\t--ui-border-hover: var(--ui-tone-border-hover);\n\t--ui-border-active: var(--ui-tone-border-active);\n\t--ui-border-focus: var(--ui-tone-border-focus);\n\n\tappearance: none;\n\tmargin: 0;\n\tcursor: pointer;\n\n\t&:checked {\n\t\tborder-color: var(--ui-tone-border-active);\n\n\t\t& + .uiSelectionIcon {\n\t\t\tcolor: var(--ui-tone-fill);\n\t\t}\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\n\t\tborder-color: var(--border-0);\n\n\t\t&:checked {\n\t\t\t& + .uiSelectionIcon {\n\t\t\t\tcolor: var(--border-0);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.uiSelectionIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tpointer-events: none;\n\tcolor: transparent;\n\ttransition:\n\t\tcolor var(--transition-fast) ease,\n\t\topacity var(--transition-fast) ease;\n}\n\n.uiElement,\n.uiSelectOption,\n.uiPopupOption {\n\t&.disabled,\n\t&:disabled {\n\t\tcursor: default;\n\t\tpointer-events: none;\n\t\tuser-select: none;\n\n\t\t.uiLabel,\n\t\t.uiDescription {\n\t\t\tcolor: var(--content-2);\n\t\t}\n\n\t\t.uiPlaceholder,\n\t\t.uiOptionText,\n\t\t.uiOptionCode {\n\t\t\topacity: 0.25;\n\t\t}\n\t}\n}\n\n.uiPanelTonePrimary {\n\t--ui-panel-background: var(--surface-0);\n}\n\n.uiPanelToneSecondary {\n\t--ui-panel-background: var(--surface-1);\n}\n\n.uiPanelToneTertiary {\n\t--ui-panel-background: var(--surface-2);\n}\n\n.uiFilledPanel {\n\tbackground-color: var(--ui-panel-background, var(--surface-0));\n}\n\n.uiFramedPanel {\n\tborder: var(--border);\n\tborder-radius: var(--radius-sm);\n\tpadding: var(--space-sm);\n}\n\n.uiPanel {\n\t@extend .uiFramedPanel;\n\t@extend .uiFilledPanel;\n}\n\n.uiPopupOptions {\n\t@extend .uiPanel;\n\n\tbackground-color: var(--surface-0);\n\n\t--anchor-gap: var(--space-xs);\n\t--anchor-padding: var(--space-xs);\n\t--anchor-offset: 0;\n\t--input-width: min(100vw, var(--base-width, 15em));\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\tmin-width: var(--input-width);\n\ttransform-origin: top;\n\tbox-shadow: var(--shadow-md);\n\tz-index: var(--z-dropdown);\n\n\t&:empty {\n\t\tvisibility: hidden;\n\t}\n}\n\n.uiStateFocus {\n\t@include focusVisible;\n\n\tbackground-color: var(--surface-1);\n\tborder-color: var(--border-1);\n\tcursor: pointer;\n}\n\n.uiOptionBase {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n\tgap: var(--space-sm);\n\theight: 100%;\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.uiPopupOption {\n\t@extend .uiOptionBase;\n\n\theight: auto;\n\tpadding: var(--space-xs) var(--space-sm);\n}\n\n.uiSelectOption,\n.uiPopupOption {\n\tborder-radius: var(--radius-sm);\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: var(--content-0);\n\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease;\n\n\t.uiMenuOptionIcon,\n\t.uiPopupOptionIcon {\n\t\tflex-shrink: 0;\n\t\twidth: var(--space-md);\n\t\theight: var(--space-md);\n\t}\n\n\t.uiMenuOptionIcon,\n\t.keyboard {\n\t\tcolor: var(--content-2);\n\t}\n\n\t&.selected {\n\t\tcolor: var(--content-accent);\n\t\tcursor: default;\n\t}\n\n\t&.uiPopupOptionActive {\n\t\tbackground-color: var(--surface-1);\n\t}\n\n\t&.disabled {\n\t\tbackground-color: transparent;\n\t\tcolor: var(--content-2);\n\t}\n\n\t&:focus {\n\t\t@extend .uiStateFocus;\n\t}\n\n\t@include hover(true) {\n\t\tbackground-color: var(--surface-accent);\n\t\tcursor: pointer;\n\t}\n}\n\n.uiPopupOptionSeparator {\n\tborder-top: var(--border);\n\tmargin-block: var(--space-xs);\n}\n\n.uiPopupGroupLabel {\n\tpadding: var(--space-xs) var(--space-sm);\n\tcolor: var(--content-2);\n\tfont-weight: 300;\n\ttext-transform: uppercase;\n\tfont-size: var(--font-size-sm);\n}\n\n.uiMenuOptionIcon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.uiSelectOption {\n\tdisplay: grid;\n\tgrid-template-columns: auto 1fr;\n\tgap: var(--space-xs);\n\n\tpadding-right: var(--space-xs);\n}\n\n.uiOptionText {\n\t// font-size: var(--font-size-sm);\n\tflex: 1;\n}\n\n.uiOptionCode {\n\tfont-family: var(--font-family-mono);\n\t// font-size: var(--font-size-sm);\n\tcolor: var(--content-1);\n\tfont-weight: 300;\n\tfont-variation-settings: \"wght\" 300;\n}\n\n.uiToggleButtonContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\theight: 100%;\n\twidth: 100%;\n\n\ttransition-property: width;\n\ttransition-duration: var(--transition-fast);\n\ttransition-timing-function: cubic-bezier(1, 0, 0.5, 0.5);\n\n\t> button {\n\t\tbackground: transparent;\n\t\tborder: none;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: var(--control-height);\n\t\twidth: var(--control-height);\n\t\tborder-radius: var(--radius-sm);\n\t\tflex: 0 0 var(--control-height);\n\t}\n\n\t// &[data-disabled] {\n\t// \tcursor: default;\n\t// \tpointer-events: none;\n\t// \topacity: var(--disabled-opacity);\n\t// }\n}\n\n.uiToggleButton {\n\tcolor: var(--content-0);\n\n\t&:hover {\n\t\tcolor: var(--content-accent);\n\t}\n}\n\n.uiToggleIcon {\n\ttransition: transform var(--transition-fast) ease-in-out;\n\n\t&.uiToggleIconOpen {\n\t\ttransform: rotate(180deg);\n\t}\n}\n\n@include mobile {\n\t.uiPopupOptions {\n\t\t--input-width: calc(100dvw - var(--space-xl));\n\t}\n}\n\n// TODO: пока в свалку стили для дата-подобных компонентов\n\n// Для компонентов, который не являются input, но выставляют себя за него\n.uiInputControlFake {\n\t@extend .uiInputControl;\n\n\twidth: 100%;\n\tpadding: 0 var(--space-sm);\n\tfont-size: var(--font-size-md);\n\n\tdisplay: flex;\n\talign-items: center;\n\n\tcursor: text;\n}\n\n.uiClearButton {\n\tcolor: var(--status-error-text);\n\n\t&:disabled {\n\t\topacity: 0;\n\t\tpointer-events: none;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t}\n}\n\n.uiButtonSeparator {\n\tborder-left: var(--border);\n\theight: calc(100% - var(--space-sm));\n}\n"],"mappings":""}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./ui.module-DHVTOqZ0.js";
|
|
2
|
-
import { HighlightText as t } from "../text/index.js";
|
|
3
|
-
import { useEffect as n, useMemo as r, useState as i } from "react";
|
|
4
|
-
import { useODataCollection as a } from "@ryuzaki13/react-foundation-api/odata";
|
|
5
|
-
import { cn as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
6
|
-
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
-
import { startsWithIgnoringZeros as l } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
8
|
-
//#region src/select/SelectOptionContent.tsx
|
|
9
|
-
function u({ label: n, code: r, highlight: i, labelClassName: a, codeClassName: l }) {
|
|
10
|
-
return /* @__PURE__ */ c("div", {
|
|
11
|
-
className: e.uiOptionBase,
|
|
12
|
-
children: [/* @__PURE__ */ s("div", {
|
|
13
|
-
className: o(e.uiOptionText, "flexEllipsis", a),
|
|
14
|
-
children: /* @__PURE__ */ s(t, {
|
|
15
|
-
text: n,
|
|
16
|
-
highlight: i
|
|
17
|
-
})
|
|
18
|
-
}), r && /* @__PURE__ */ s("div", {
|
|
19
|
-
className: o(e.uiOptionCode, l),
|
|
20
|
-
children: /* @__PURE__ */ s(t, {
|
|
21
|
-
text: r,
|
|
22
|
-
highlight: i
|
|
23
|
-
})
|
|
24
|
-
})]
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
//#endregion
|
|
28
|
-
//#region src/select/model/useODataSelectBase.ts
|
|
29
|
-
var d = "", f = "";
|
|
30
|
-
function p(e) {
|
|
31
|
-
return e?.length ? [...new Set(e)].sort() : [];
|
|
32
|
-
}
|
|
33
|
-
function m(e, t, n) {
|
|
34
|
-
let r = [];
|
|
35
|
-
for (let i of Object.keys(t).sort()) {
|
|
36
|
-
if (i === e) continue;
|
|
37
|
-
let t = p(n?.[i]);
|
|
38
|
-
t.length && r.push(`${i}:${t.join(f)}`);
|
|
39
|
-
}
|
|
40
|
-
return r.join(d);
|
|
41
|
-
}
|
|
42
|
-
function h(e) {
|
|
43
|
-
let t = /* @__PURE__ */ new Map();
|
|
44
|
-
if (!e) return t;
|
|
45
|
-
for (let n of e.split(d)) {
|
|
46
|
-
let e = n.indexOf(":");
|
|
47
|
-
if (e < 0) continue;
|
|
48
|
-
let r = n.slice(0, e), i = n.slice(e + 1).split(f).filter(Boolean);
|
|
49
|
-
r && i.length && t.set(r, i);
|
|
50
|
-
}
|
|
51
|
-
return t;
|
|
52
|
-
}
|
|
53
|
-
function g({ odata: e, segment: t, model: o, value: s, dependencies: c }) {
|
|
54
|
-
let [u, d] = i(""), [f, p] = i(""), { codeKey: g, searchDebounceDelay: _, minSearchCodeLength: v, minSearchTextLength: y } = o, { data: b, textKey: x, isLoading: S, isError: C, getItems: w, separatedItems: T, findSourceItemsByKeys: E, setFilteredItems: D, debounce: O } = a({
|
|
55
|
-
odata: e,
|
|
56
|
-
model: o
|
|
57
|
-
}), k = T.length, A = t.selectText && x ? x : g, j = r(() => b ? m(g, b.keyPairsMap, c) : "", [
|
|
58
|
-
b,
|
|
59
|
-
g,
|
|
60
|
-
c
|
|
61
|
-
]);
|
|
62
|
-
n(() => {
|
|
63
|
-
if (!b) return;
|
|
64
|
-
let e = b.chain.findIndex((e) => e.codeKey === g), t = h(j), n = (e) => {
|
|
65
|
-
let n = b.chain[e].codeKey, r = t.get(n);
|
|
66
|
-
if (r?.length) return E(n, r);
|
|
67
|
-
};
|
|
68
|
-
for (let t = b.chain.length - 1; t > e; t--) {
|
|
69
|
-
let e = n(t);
|
|
70
|
-
if (e) {
|
|
71
|
-
D(e);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
for (let t = 0; t < e; t++) {
|
|
76
|
-
let e = n(t);
|
|
77
|
-
if (e) {
|
|
78
|
-
D(e);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
D(void 0);
|
|
83
|
-
}, [
|
|
84
|
-
b,
|
|
85
|
-
j,
|
|
86
|
-
g,
|
|
87
|
-
E,
|
|
88
|
-
D
|
|
89
|
-
]), n(() => {
|
|
90
|
-
O("search", () => {
|
|
91
|
-
p(u.trim().toLowerCase());
|
|
92
|
-
}, _);
|
|
93
|
-
}, [
|
|
94
|
-
O,
|
|
95
|
-
u,
|
|
96
|
-
_
|
|
97
|
-
]);
|
|
98
|
-
let M = r(() => {
|
|
99
|
-
if (!s?.length || !A) return [];
|
|
100
|
-
let e = new Set(s);
|
|
101
|
-
return T.filter((t) => e.has(t[A]));
|
|
102
|
-
}, [
|
|
103
|
-
T,
|
|
104
|
-
A,
|
|
105
|
-
s
|
|
106
|
-
]);
|
|
107
|
-
return {
|
|
108
|
-
query: u,
|
|
109
|
-
setQuery: d,
|
|
110
|
-
debouncedQuery: f,
|
|
111
|
-
selectedItems: M,
|
|
112
|
-
filteredItems: r(() => {
|
|
113
|
-
if (!b) return [];
|
|
114
|
-
if (!(f.length >= y)) return w(void 0, M);
|
|
115
|
-
let e = f.length >= y, n = !t.hideCode && f.length >= v && !Number.isNaN(Number(f));
|
|
116
|
-
return w((t, r) => !!(t && r && (n && l(t, f) || e && r.toLowerCase().includes(f))), M);
|
|
117
|
-
}, [
|
|
118
|
-
f,
|
|
119
|
-
w,
|
|
120
|
-
v,
|
|
121
|
-
y,
|
|
122
|
-
b,
|
|
123
|
-
t.hideCode,
|
|
124
|
-
M
|
|
125
|
-
]),
|
|
126
|
-
itemsCount: k,
|
|
127
|
-
isLoading: S,
|
|
128
|
-
isError: C,
|
|
129
|
-
codeKey: g,
|
|
130
|
-
textKey: x,
|
|
131
|
-
selectionKey: A,
|
|
132
|
-
placeholder: t.placeholder
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
function _(e, t) {
|
|
136
|
-
return e.map((e) => e[t]);
|
|
137
|
-
}
|
|
138
|
-
//#endregion
|
|
139
|
-
export { g as n, u as r, _ as t };
|
|
140
|
-
|
|
141
|
-
//# sourceMappingURL=useODataSelectBase-Bq36Wp1U.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useODataSelectBase-Bq36Wp1U.js","names":[],"sources":["../../src/select/SelectOptionContent.tsx","../../src/select/model/useODataSelectBase.ts"],"sourcesContent":["import { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { HighlightText } from \"../text\";\nimport uiStyles from \"../ui.module.scss\";\n\ninterface OptionContentProps {\n\tlabel: string;\n\tcode?: string;\n\thighlight?: string;\n\t/** Приватный визуальный modifier label для специализированного владельца option. */\n\tlabelClassName?: string;\n\t/** Отдельный modifier code, потому что code задаёт собственный variable-font weight. */\n\tcodeClassName?: string;\n}\n\n/**\n * Универсальный рендерер опции. Используется и в single-select, и в multi-select.\n */\nexport function SelectOptionContent({ label, code, highlight, labelClassName, codeClassName }: OptionContentProps) {\n\treturn (\n\t\t<div className={uiStyles.uiOptionBase}>\n\t\t\t<div className={cn(uiStyles.uiOptionText, \"flexEllipsis\", labelClassName)}>\n\t\t\t\t<HighlightText text={label} highlight={highlight} />\n\t\t\t</div>\n\t\t\t{code && (\n\t\t\t\t<div className={cn(uiStyles.uiOptionCode, codeClassName)}>\n\t\t\t\t\t<HighlightText text={code} highlight={highlight} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { ODataCollectionModel, ODataSelectBaseProps, useODataCollection } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { startsWithIgnoringZeros } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\ninterface UseODataSelectBaseOptions extends Omit<ODataSelectBaseProps, \"model\" | \"value\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tvalue?: string[];\n}\n\nconst DEPENDENCY_KEY_SEPARATOR = \"\\u0002\";\nconst DEPENDENCY_VALUE_SEPARATOR = \"\\u0001\";\n\nfunction normalizeDependencyValues(values?: readonly string[]) {\n\tif (!values?.length) return [];\n\treturn [...new Set(values)].sort();\n}\n\nfunction createDependencySignature(codeKey: string, availableKeys: Record<string, unknown>, dependencies?: Record<string, string[]>) {\n\tconst parts: string[] = [];\n\n\tfor (const key of Object.keys(availableKeys).sort()) {\n\t\tif (key === codeKey) continue;\n\n\t\tconst values = normalizeDependencyValues(dependencies?.[key]);\n\t\tif (!values.length) continue;\n\n\t\tparts.push(`${key}:${values.join(DEPENDENCY_VALUE_SEPARATOR)}`);\n\t}\n\n\treturn parts.join(DEPENDENCY_KEY_SEPARATOR);\n}\n\nfunction parseDependencySignature(signature: string) {\n\tconst dependencies = new Map<string, string[]>();\n\tif (!signature) return dependencies;\n\n\tfor (const part of signature.split(DEPENDENCY_KEY_SEPARATOR)) {\n\t\tconst separatorIndex = part.indexOf(\":\");\n\t\tif (separatorIndex < 0) continue;\n\n\t\tconst key = part.slice(0, separatorIndex);\n\t\tconst values = part\n\t\t\t.slice(separatorIndex + 1)\n\t\t\t.split(DEPENDENCY_VALUE_SEPARATOR)\n\t\t\t.filter(Boolean);\n\t\tif (key && values.length) {\n\t\t\tdependencies.set(key, values);\n\t\t}\n\t}\n\n\treturn dependencies;\n}\n\nexport function useODataSelectBase({ odata, segment, model, value, dependencies }: UseODataSelectBaseOptions) {\n\tconst [query, setQuery] = useState(\"\");\n\tconst [debouncedQuery, setDebouncedQuery] = useState(\"\");\n\n\tconst { codeKey, searchDebounceDelay, minSearchCodeLength, minSearchTextLength: minSearchLength } = model;\n\n\tconst {\n\t\tdata: rawData,\n\t\ttextKey,\n\t\tisLoading,\n\t\tisError,\n\t\tgetItems,\n\t\tseparatedItems,\n\t\tfindSourceItemsByKeys,\n\t\tsetFilteredItems,\n\t\tdebounce\n\t} = useODataCollection({ odata, model });\n\n\tconst itemsCount = separatedItems.length;\n\tconst selectionKey = segment.selectText && textKey ? textKey : codeKey;\n\n\tconst dependencySignature = useMemo(() => {\n\t\tif (!rawData) return \"\";\n\t\treturn createDependencySignature(codeKey, rawData.keyPairsMap, dependencies);\n\t}, [rawData, codeKey, dependencies]);\n\n\tuseEffect(() => {\n\t\tif (!rawData) return;\n\n\t\tconst selfIndex = rawData.chain.findIndex((c) => c.codeKey === codeKey);\n\t\tconst currentDependencies = parseDependencySignature(dependencySignature);\n\n\t\tconst resolveFilteredItems = (index: number) => {\n\t\t\tconst key = rawData.chain[index].codeKey;\n\t\t\tconst dependenciesValues = currentDependencies.get(key);\n\t\t\tif (dependenciesValues?.length) {\n\t\t\t\treturn findSourceItemsByKeys(key, dependenciesValues);\n\t\t\t}\n\t\t};\n\n\t\tfor (let i = rawData.chain.length - 1; i > selfIndex; i--) {\n\t\t\tconst filteredItems = resolveFilteredItems(i);\n\t\t\tif (filteredItems) {\n\t\t\t\tsetFilteredItems(filteredItems);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = 0; i < selfIndex; i++) {\n\t\t\tconst filteredItems = resolveFilteredItems(i);\n\t\t\tif (filteredItems) {\n\t\t\t\tsetFilteredItems(filteredItems);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tsetFilteredItems(undefined);\n\t}, [rawData, dependencySignature, codeKey, findSourceItemsByKeys, setFilteredItems]);\n\n\tuseEffect(() => {\n\t\tdebounce(\n\t\t\t\"search\",\n\t\t\t() => {\n\t\t\t\tsetDebouncedQuery(query.trim().toLowerCase());\n\t\t\t},\n\t\t\tsearchDebounceDelay\n\t\t);\n\t}, [debounce, query, searchDebounceDelay]);\n\n\tconst selectedItems = useMemo(() => {\n\t\tif (!value?.length || !selectionKey) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst selectedValues = new Set(value);\n\t\treturn separatedItems.filter((item) => selectedValues.has(item[selectionKey]));\n\t}, [separatedItems, selectionKey, value]);\n\n\tconst filteredItems = useMemo(() => {\n\t\tif (!rawData) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst isFiltered = debouncedQuery.length >= minSearchLength;\n\n\t\tif (!isFiltered) {\n\t\t\treturn getItems(undefined, selectedItems);\n\t\t}\n\n\t\tconst isAheadText = debouncedQuery.length >= minSearchLength;\n\t\tconst isAheadCode = !segment.hideCode && debouncedQuery.length >= minSearchCodeLength && !Number.isNaN(Number(debouncedQuery));\n\n\t\treturn getItems((codeValue: string, textValue: string) => {\n\t\t\tif (codeValue && textValue) {\n\t\t\t\tif (isAheadCode && startsWithIgnoringZeros(codeValue, debouncedQuery)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (isAheadText && textValue.toLowerCase().includes(debouncedQuery)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}, selectedItems);\n\t}, [debouncedQuery, getItems, minSearchCodeLength, minSearchLength, rawData, segment.hideCode, selectedItems]);\n\n\t// const placeholder = useMemo(() => {\n\t// \tconst filteredItemsLength = filteredItems.length;\n\n\t// \tif (!itemsCount) {\n\t// \t\treturn `${segment.placeholder} <пусто>`;\n\t// \t}\n\n\t// \tif (filteredItemsLength < itemsCount) {\n\t// \t\treturn `${segment.placeholder} <${filteredItemsLength}+>`;\n\t// \t}\n\n\t// \treturn `${segment.placeholder} <${itemsCount > model.maxVisibleItems ? `${model.maxVisibleItems}+` : itemsCount}>`;\n\t// }, [filteredItems.length, itemsCount, model.maxVisibleItems, segment.placeholder]);\n\n\treturn {\n\t\tquery,\n\t\tsetQuery,\n\t\tdebouncedQuery,\n\t\tselectedItems,\n\t\tfilteredItems,\n\t\titemsCount,\n\t\tisLoading,\n\t\tisError,\n\t\tcodeKey,\n\t\ttextKey,\n\t\tselectionKey,\n\t\tplaceholder: segment.placeholder\n\t};\n}\n\nexport type ODataSelectBaseModel = ReturnType<typeof useODataSelectBase>;\n\nexport function mapSelectedItemsToValues(items: CollectionItem[], selectionKey: string) {\n\treturn items.map((item) => item[selectionKey]);\n}\n"],"mappings":";;;;;;;;AAkBA,SAAgB,EAAoB,EAAE,UAAO,SAAM,cAAW,mBAAgB,oBAAqC;CAClH,OACC,kBAAC,OAAD;EAAK,WAAW,EAAS;EAAzB,UAAA,CACC,kBAAC,OAAD;GAAK,WAAW,EAAG,EAAS,cAAc,gBAAgB,CAAc;GACvE,UAAA,kBAAC,GAAD;IAAe,MAAM;IAAkB;GAAY,CAAA;EAC/C,CAAA,GACJ,KACA,kBAAC,OAAD;GAAK,WAAW,EAAG,EAAS,cAAc,CAAa;GACtD,UAAA,kBAAC,GAAD;IAAe,MAAM;IAAiB;GAAY,CAAA;EAC9C,CAAA,CAEF;;AAEP;;;ACpBA,IAAM,IAA2B,KAC3B,IAA6B;AAEnC,SAAS,EAA0B,GAA4B;CAE9D,OADK,GAAQ,SACN,CAAC,GAAG,IAAI,IAAI,CAAM,CAAC,CAAC,CAAC,KAAK,IADL,CAAC;AAE9B;AAEA,SAAS,EAA0B,GAAiB,GAAwC,GAAyC;CACpI,IAAM,IAAkB,CAAC;CAEzB,KAAK,IAAM,KAAO,OAAO,KAAK,CAAa,CAAC,CAAC,KAAK,GAAG;EACpD,IAAI,MAAQ,GAAS;EAErB,IAAM,IAAS,EAA0B,IAAe,EAAI;EACvD,EAAO,UAEZ,EAAM,KAAK,GAAG,EAAI,GAAG,EAAO,KAAK,CAA0B,GAAG;CAC/D;CAEA,OAAO,EAAM,KAAK,CAAwB;AAC3C;AAEA,SAAS,EAAyB,GAAmB;CACpD,IAAM,oBAAe,IAAI,IAAsB;CAC/C,IAAI,CAAC,GAAW,OAAO;CAEvB,KAAK,IAAM,KAAQ,EAAU,MAAM,CAAwB,GAAG;EAC7D,IAAM,IAAiB,EAAK,QAAQ,GAAG;EACvC,IAAI,IAAiB,GAAG;EAExB,IAAM,IAAM,EAAK,MAAM,GAAG,CAAc,GAClC,IAAS,EACb,MAAM,IAAiB,CAAC,CAAC,CACzB,MAAM,CAA0B,CAAC,CACjC,OAAO,OAAO;EAChB,AAAI,KAAO,EAAO,UACjB,EAAa,IAAI,GAAK,CAAM;CAE9B;CAEA,OAAO;AACR;AAEA,SAAgB,EAAmB,EAAE,UAAO,YAAS,UAAO,UAAO,mBAA2C;CAC7G,IAAM,CAAC,GAAO,KAAY,EAAS,EAAE,GAC/B,CAAC,GAAgB,KAAqB,EAAS,EAAE,GAEjD,EAAE,YAAS,wBAAqB,wBAAqB,qBAAqB,MAAoB,GAE9F,EACL,MAAM,GACN,YACA,cACA,YACA,aACA,mBACA,0BACA,qBACA,gBACG,EAAmB;EAAE;EAAO;CAAM,CAAC,GAEjC,IAAa,EAAe,QAC5B,IAAe,EAAQ,cAAc,IAAU,IAAU,GAEzD,IAAsB,QACtB,IACE,EAA0B,GAAS,EAAQ,aAAa,CAAY,IADtD,IAEnB;EAAC;EAAS;EAAS;CAAY,CAAC;CAmCnC,AAjCA,QAAgB;EACf,IAAI,CAAC,GAAS;EAEd,IAAM,IAAY,EAAQ,MAAM,WAAW,MAAM,EAAE,YAAY,CAAO,GAChE,IAAsB,EAAyB,CAAmB,GAElE,KAAwB,MAAkB;GAC/C,IAAM,IAAM,EAAQ,MAAM,EAAM,CAAC,SAC3B,IAAqB,EAAoB,IAAI,CAAG;GACtD,IAAI,GAAoB,QACvB,OAAO,EAAsB,GAAK,CAAkB;EAEtD;EAEA,KAAK,IAAI,IAAI,EAAQ,MAAM,SAAS,GAAG,IAAI,GAAW,KAAK;GAC1D,IAAM,IAAgB,EAAqB,CAAC;GAC5C,IAAI,GAAe;IAClB,EAAiB,CAAa;IAC9B;GACD;EACD;EAEA,KAAK,IAAI,IAAI,GAAG,IAAI,GAAW,KAAK;GACnC,IAAM,IAAgB,EAAqB,CAAC;GAC5C,IAAI,GAAe;IAClB,EAAiB,CAAa;IAC9B;GACD;EACD;EAEA,EAAiB,KAAA,CAAS;CAC3B,GAAG;EAAC;EAAS;EAAqB;EAAS;EAAuB;CAAgB,CAAC,GAEnF,QAAgB;EACf,EACC,gBACM;GACL,EAAkB,EAAM,KAAK,CAAC,CAAC,YAAY,CAAC;EAC7C,GACA,CACD;CACD,GAAG;EAAC;EAAU;EAAO;CAAmB,CAAC;CAEzC,IAAM,IAAgB,QAAc;EACnC,IAAI,CAAC,GAAO,UAAU,CAAC,GACtB,OAAO,CAAC;EAGT,IAAM,IAAiB,IAAI,IAAI,CAAK;EACpC,OAAO,EAAe,QAAQ,MAAS,EAAe,IAAI,EAAK,EAAa,CAAC;CAC9E,GAAG;EAAC;EAAgB;EAAc;CAAK,CAAC;CA6CxC,OAAO;EACN;EACA;EACA;EACA;EACA,eAhDqB,QAAc;GACnC,IAAI,CAAC,GACJ,OAAO,CAAC;GAKT,IAAI,EAFe,EAAe,UAAU,IAG3C,OAAO,EAAS,KAAA,GAAW,CAAa;GAGzC,IAAM,IAAc,EAAe,UAAU,GACvC,IAAc,CAAC,EAAQ,YAAY,EAAe,UAAU,KAAuB,CAAC,OAAO,MAAM,OAAO,CAAc,CAAC;GAE7H,OAAO,GAAU,GAAmB,MACnC,GAAI,KAAa,MACZ,KAAe,EAAwB,GAAW,CAAc,KAIhE,KAAe,EAAU,YAAY,CAAC,CAAC,SAAS,CAAc,KAMjE,CAAa;EACjB,GAAG;GAAC;GAAgB;GAAU;GAAqB;GAAiB;GAAS,EAAQ;GAAU;EAAa,CAqB3G;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa,EAAQ;CACtB;AACD;AAIA,SAAgB,EAAyB,GAAyB,GAAsB;CACvF,OAAO,EAAM,KAAK,MAAS,EAAK,EAAa;AAC9C"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CollectionItem } from "@ryuzaki13/react-foundation-lib/odata";
|
|
2
|
-
interface MultiSelectOptionProps {
|
|
3
|
-
item: CollectionItem;
|
|
4
|
-
textKey: string;
|
|
5
|
-
codeKey?: string;
|
|
6
|
-
highlight?: string;
|
|
7
|
-
selected: boolean;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Отдельная опция внутри `MultiSelect`. Отрисовывает состояние выбора и подсветку текста для найденных совпадений.
|
|
11
|
-
*/
|
|
12
|
-
export declare function MultiSelectOption({ item, textKey, codeKey, highlight }: MultiSelectOptionProps): import("react").JSX.Element;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=MultiSelectOption.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectOption.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/MultiSelectOption.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAIvE,UAAU,sBAAsB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,sBAAsB,+BAE9F"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
interface MultiSelectTokenProps {
|
|
2
|
-
value: string | undefined;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Токен выбранного значения в `MultiSelect`. Показывает выбранный элемент и кнопку его удаления из текущего набора.
|
|
6
|
-
*/
|
|
7
|
-
export declare function MultiSelectToken({ value }: MultiSelectTokenProps): import("react").JSX.Element | null;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=MultiSelectToken.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectToken.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/MultiSelectToken.tsx"],"names":[],"mappings":"AAEA,UAAU,qBAAqB;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,qBAAqB,sCAQhE"}
|