@ryuzaki13/react-foundation-ui 1.5.0 → 1.5.1
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 +4 -4
- package/dist/base-table/index.js +1 -1
- package/dist/chunks/CalendarView-Cfih7hjD.js +439 -0
- package/dist/chunks/{CalendarView-DtacoN_c.js.map → CalendarView-Cfih7hjD.js.map} +1 -1
- package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/{TextEditorLexicalClient-DVML-Nhd.js → TextEditorLexicalClient-BSafrkLJ.js} +241 -275
- package/dist/chunks/TextEditorLexicalClient-BSafrkLJ.js.map +1 -0
- package/dist/chunks/{base-table-BPcdSitC.js → base-table-X7aSSjXa.js} +2 -2
- package/dist/chunks/{base-table-BPcdSitC.js.map → base-table-X7aSSjXa.js.map} +1 -1
- package/dist/chunks/{context-menu-BY4pYGwB.js → context-menu-tcD3kVAc.js} +58 -62
- package/dist/chunks/context-menu-tcD3kVAc.js.map +1 -0
- package/dist/chunks/date-input-Bsl9dxxY.js +341 -0
- package/dist/chunks/date-input-Bsl9dxxY.js.map +1 -0
- package/dist/chunks/{input-BWCaVC06.js → input-CAw1Loze.js} +54 -47
- package/dist/chunks/input-CAw1Loze.js.map +1 -0
- package/dist/chunks/{input-files-62qH2TMj.js → input-files-CLtQ7p8j.js} +2 -2
- package/dist/chunks/{input-files-62qH2TMj.js.map → input-files-CLtQ7p8j.js.map} +1 -1
- package/dist/chunks/{input-search-CdPI1cb6.js → input-search-F6MPrUGF.js} +2 -2
- package/dist/chunks/{input-search-CdPI1cb6.js.map → input-search-F6MPrUGF.js.map} +1 -1
- package/dist/chunks/{multi-select-01xmD1nZ.js → multi-select-Dypew65l.js} +60 -59
- package/dist/chunks/multi-select-Dypew65l.js.map +1 -0
- package/dist/chunks/{picker-Mdb73_uW.js → picker-TYLwgl1c.js} +82 -92
- package/dist/chunks/{picker-Mdb73_uW.js.map → picker-TYLwgl1c.js.map} +1 -1
- package/dist/chunks/{select-DRf4_a1Z.js → select-DCSNVEYW.js} +34 -33
- package/dist/chunks/select-DCSNVEYW.js.map +1 -0
- package/dist/chunks/{table-DSg9gi_l.js → table-DihiNNJt.js} +2 -2
- package/dist/chunks/{table-DSg9gi_l.js.map → table-DihiNNJt.js.map} +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-input/lib/dateInputValue.d.ts +2 -6
- package/dist/date-input/lib/dateInputValue.d.ts.map +1 -1
- package/dist/date-input/lib/types.d.ts +0 -4
- package/dist/date-input/lib/types.d.ts.map +1 -1
- package/dist/date-input/model/useDateInput.d.ts +2 -2
- package/dist/date-input/model/useDateInput.d.ts.map +1 -1
- package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
- package/dist/date-input/ui/DateInput.d.ts +0 -4
- package/dist/date-input/ui/DateInput.d.ts.map +1 -1
- package/dist/date-time-input/index.js +229 -234
- package/dist/date-time-input/index.js.map +1 -1
- package/dist/date-time-input/model/useDateTimeSegments.d.ts.map +1 -1
- package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/image/index.js +2 -2
- package/dist/input/Input.d.ts.map +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/list/List.d.ts.map +1 -1
- package/dist/list/index.js +74 -45
- package/dist/list/index.js.map +1 -1
- package/dist/list/useListVirtualizer.d.ts +13 -0
- package/dist/list/useListVirtualizer.d.ts.map +1 -0
- package/dist/multi-select/index.js +1 -1
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/picker/model/usePickerQuery.d.ts +6 -2
- package/dist/picker/model/usePickerQuery.d.ts.map +1 -1
- package/dist/picker/model/usePickerSelectionLifecycle.d.ts.map +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/SliderInput.d.ts.map +1 -1
- package/dist/slider/index.js +333 -290
- package/dist/slider/index.js.map +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js.map +1 -1
- package/dist/tag-input/TagInput.d.ts.map +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text-editor/EmailDialog.d.ts +1 -2
- package/dist/text-editor/EmailDialog.d.ts.map +1 -1
- package/dist/text-editor/LinkDialog.d.ts +1 -2
- package/dist/text-editor/LinkDialog.d.ts.map +1 -1
- package/dist/text-editor/PhoneDialog.d.ts +1 -2
- package/dist/text-editor/PhoneDialog.d.ts.map +1 -1
- package/dist/text-editor/SemanticDialog.d.ts +1 -2
- package/dist/text-editor/SemanticDialog.d.ts.map +1 -1
- package/dist/text-editor/TextEditorDialogs.d.ts +2 -1
- package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -1
- package/dist/text-editor/TimeDialog.d.ts +1 -2
- package/dist/text-editor/TimeDialog.d.ts.map +1 -1
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +243 -248
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-CblO4qSx.js → Badge-DUTHAQCE.js} +1 -1
- package/storybook-static/assets/{Badge.stories-CtRrqjAo.js → Badge.stories-6iI-UG0f.js} +1 -1
- package/storybook-static/assets/{Button-BVt4jmN4.js → Button-B0C3LMAw.js} +1 -1
- package/storybook-static/assets/{Button-Bzc9jBAF.js → Button-CqVTrqw2.js} +1 -1
- package/storybook-static/assets/{Button.stories-tqfxm0ox.js → Button.stories-DjUmGByS.js} +1 -1
- package/storybook-static/assets/{CalendarView-MkrPd5D-.js → CalendarView-hiZ9ETaP.js} +1 -1
- package/storybook-static/assets/{CheckBox-CWipX4CI.js → CheckBox-DBQ50PCI.js} +1 -1
- package/storybook-static/assets/{CheckBox-0BK2dgdD.js → CheckBox-De010n9y.js} +1 -1
- package/storybook-static/assets/CheckBox-Dw4nDCv8.css +1 -0
- package/storybook-static/assets/{CheckBox.stories-B5yWzlQa.js → CheckBox.stories-BfC6OQx3.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-WdTzF_2p.js → Color-6AOWCN3U-C_KzRv-S.js} +1 -1
- package/storybook-static/assets/ContextMenu-BwrqtNnY.js +1 -0
- package/storybook-static/assets/{ContextMenu-kbSWsoCE.js → ContextMenu-CGLg47OY.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CQcrX3sj.js → ContextMenu.stories-JnUlLk_E.js} +1 -1
- package/storybook-static/assets/DateInput-BWbKmFEc.js +1 -0
- package/storybook-static/assets/{DateInput-CyNIW9Md.js → DateInput-CUPdoLCw.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-DyB3PjTl.js → DateInput.stories-DOOukQsB.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-BwibZk_q.js → DateRangePresetSelect-BWm1txZP.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CBZ0OAmn.js → DateRangePresetSelect-CegjuKSa.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-kmmKl-3j.js → DateRangePresetSelect.stories-BGCOqCf7.js} +1 -1
- package/storybook-static/assets/{Detail-pHBZ5bkR.js → Detail-DLDL5IhK.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Bs5YNmLn.js → Detail.stories-BcP01iwW.js} +1 -1
- package/storybook-static/assets/{Dialog-DbFhCtF1.js → Dialog-BYLrz-6d.js} +1 -1
- package/storybook-static/assets/{Dialog-DBTU-LRR.js → Dialog-DcQbPiWK.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-_WQW8YNs.js → Dialog.stories-C5o4OhEy.js} +1 -1
- package/storybook-static/assets/{Disclosure-vOJWmhLt.js → Disclosure-ChpGjvgZ.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-wyulIOoJ.js → Disclosure.stories-CTL8h6Q3.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-DjObX5Qs.css → DisclosureGroup-CNoH2D1R.css} +1 -1
- package/storybook-static/assets/{DisclosureGroup-BUDxwl5C.js → DisclosureGroup-CUelavR4.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-B7vhvrpB.js → DocsRenderer-JROSPFPF-BQTqLgKs.js} +1 -1
- package/storybook-static/assets/{DropZone-BvRT0gUm.js → DropZone-5Xw6HUNa.js} +1 -1
- package/storybook-static/assets/{DropZone-B7Q1qQqP.js → DropZone-ULl7tScR.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-WmoR3uPj.js → DropZone.stories-Btud72HY.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BW35W6_U.js → DropdownMenu-CZDVKXjD.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-C9G9PsZx.js → ExpandableActionPanel-CwamleZX.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Dllpmeu_.js → ExpandableActionPanel.stories-BUBvJAPp.js} +1 -1
- package/storybook-static/assets/{Flex-Cydb-4MR.js → Flex-cO3yZG-t.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Dczj9g4W.js → Flex.stories-BAuXOTSJ.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-C-W77AcJ.js → FloatingPopover-C56UHmzH.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-fePg_bmP.js → FormattedTableCell-B4ObrqF1.js} +1 -1
- package/storybook-static/assets/{Grid-Dal3v5dj.js → Grid-B3-t0FmJ.js} +1 -1
- package/storybook-static/assets/{Grid.stories-Byb4mMpE.js → Grid.stories-Cr_GpL6X.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-B9OD2pur.js → ImageCropper.stories-BDqwBC8C.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BcUjptiu.js → ImageRenderer-CigIY2hD.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BuO2nhom.js → ImageRenderer.stories-CI8r-V1l.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-mSkR535R.js → ImageView.stories-D_OG6Deg.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-DVdR3-_j.js → ImageViewer.stories-CQSqogxL.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DiR_HwIE.js → ImageViewerRuntime-DerEzrYU.js} +1 -1
- package/storybook-static/assets/{Input-BdCavSu1.js → Input-Bm1cMHGo.js} +1 -1
- package/storybook-static/assets/{Input-DZQKV4DP.js → Input-Bot494Bx.js} +1 -1
- package/storybook-static/assets/{Input.stories-Cu66SvKb.js → Input.stories-BovBOurM.js} +1 -1
- package/storybook-static/assets/{InputDateTime-Day94W-O.js → InputDateTime-BekBAEPs.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-990MuicZ.js → InputDateTime.stories-w3S5IslS.js} +1 -1
- package/storybook-static/assets/{InputFile-Cp8x84ZG.js → InputFile-CuQb2x1k.js} +1 -1
- package/storybook-static/assets/{InputFile-CJll5mC-.js → InputFile-GBGGdgQh.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-fNNwbNfa.js → InputFile.stories-f_IZth6c.js} +1 -1
- package/storybook-static/assets/{InputFiles-OusF5Lfq.js → InputFiles-C74DVQhN.js} +1 -1
- package/storybook-static/assets/{InputFiles-CBvR3Szf.js → InputFiles-CrLCcwgR.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-DcpEbOOo.js → InputFiles.stories-BsuddNi0.js} +1 -1
- package/storybook-static/assets/{InputFilesList-zuNP1QIB.js → InputFilesList-Djxwuhlq.js} +1 -1
- package/storybook-static/assets/{InputImage-Dl2bJNZk.js → InputImage-CwlTJmns.js} +1 -1
- package/storybook-static/assets/{InputImage-CjMAL3uq.js → InputImage-DMaYEhTE.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-BzxEndIe.js → InputImage.stories-CnN_t-Bq.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-CXF1nGLl.js → InteractiveComponents.stories-B87LSnhG.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BahcFBzK.js → LayoutPicker-DKMVqnzr.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DzAN3gGO.js → LayoutPicker-I0mjwTRq.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-ByamaGlv.js → LayoutPicker.stories-B94m5_5E.js} +1 -1
- package/storybook-static/assets/{Listbox-C5hwzE4s.js → Listbox-2CNZxFrM.js} +1 -1
- package/storybook-static/assets/{Listbox-CHsNGsDc.js → Listbox-BOCPTICI.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-CvXZeESb.js → Listbox.stories-DkRL364d.js} +1 -1
- package/storybook-static/assets/{Modal-Dib11Lzy.js → Modal-BF5Wtu_Z.js} +1 -1
- package/storybook-static/assets/{Modal.stories-DYMy-kLP.js → Modal.stories-BuBDjhkS.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-natWXnSM.js → ModalManagerProvider-DtAfcujR.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Cl9MkPZw.js → MultiSelect-B5MJePks.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DlCZ7dhH.js → MultiSelect-B75x42Va.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-202TRBKq.js → MultiSelect.stories-pCDFxnvP.js} +1 -1
- package/storybook-static/assets/{NoData-DcHZdLTJ.js → NoData-kWRpCxvl.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-DzqEi2vc.js → NotificationsHost-lblab1gc.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-CvoQfIjj.js → NotificationsHost.stories-a3NIcVIj.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-CHQguikm.js → ODataMultiSelect-BDqBjXSe.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-BZbWK4CP.js → ODataMultiSelect.stories-8nYfEOBa.js} +1 -1
- package/storybook-static/assets/{ODataSelect-C1YGDpg_.js → ODataSelect-BmcZs-Q9.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-D4tQXs2c.js → ODataSelect.stories-fiEuKGVT.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BjR7zhyJ.js → ODataTreeMultiSelect-ZAlccR5J.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-Drg8mLhi.js → ODataTreeMultiSelect.stories-sP-IANic.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-D_fcT3Aw.js → ODataTreeSelect-DSpeH-SQ.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-BWFdmmvf.js → ODataTreeSelect.stories-C_G-ryCy.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-DWCRXFHq.js → OneStepScroller-BPYnBbTY.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DtfTzrNK.js → PeriodSelect-Dj1G9UDW.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-C7QQKxZ4.js → PeriodSelect-v-ybkTTW.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-CF65LIHm.js → PeriodSelect.stories-DcAJ8fkJ.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-D9atWyWj.js → PickerSelectionToolbar-7gktfdu3.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-C7WeaOKN.js → PickerTriggerActions-Bd-vIbv8.js} +1 -1
- package/storybook-static/assets/{Popover-DQJIeny_.js → Popover-5dsoQ1_b.js} +1 -1
- package/storybook-static/assets/{Popover-CUJF-IMC.js → Popover-BoMs5h0y.js} +1 -1
- package/storybook-static/assets/{Popover.stories-BON0z3PX.js → Popover.stories-CbNVj_hu.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DpA1KOCo.js → PresetRangeDateInput-BeQMoRpC.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D3_uzWzQ.js → PresetRangeDateInput-DyGnRjp4.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CDDJDiei.js → PresetRangeDateInput.stories-C7gwDup9.js} +1 -1
- package/storybook-static/assets/{PresetSelect-DlV2eC-b.js → PresetSelect-C8e1Xzbh.js} +1 -1
- package/storybook-static/assets/{RadioButton-BLyqp88m.js → RadioButton-blBN8xkq.js} +1 -1
- package/storybook-static/assets/{RadioButton-wkLEwRaH.js → RadioButton-kIVy3cCo.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-DS9RYBEJ.js → RadioButton.stories-B8U30Wqk.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CsWIje1J.js → RadioGroup-CuWLCtLr.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DERcyzA0.js → RadioGroup-D4fwjGGp.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DkgUPavS.js → RadioGroup.stories-CGo-8-Bv.js} +1 -1
- package/storybook-static/assets/{Scrollable-DvJ3T3Ik.js → Scrollable-CeGzYD_u.js} +1 -1
- package/storybook-static/assets/{Select-DmEm2boi.js → Select-rdcqkPnE.js} +1 -1
- package/storybook-static/assets/Select-txovgbTh.js +12 -0
- package/storybook-static/assets/{Select.stories-BEPJovVd.js → Select.stories-DPM22VkR.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-B5E2W8PZ.js → SelectOptionContent-HqUICxHy.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-wgzDfqEi.js → SerializableSelect-btIwjUkv.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-V8IqyO9Y.js → SerializableSelect.stories-EodX_I8R.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-B7v0t9f5.js → SingleDateTimeInput-CMKsQ13r.js} +1 -1
- package/storybook-static/assets/SingleDateTimeInput-coulKUC8.js +1 -0
- package/storybook-static/assets/{SingleDateTimeInput.stories-FOoEMoyF.js → SingleDateTimeInput.stories-BkSaW82_.js} +1 -1
- package/storybook-static/assets/{Slider-24H5ASxG.js → Slider-BDjIIhGp.js} +1 -1
- package/storybook-static/assets/{Slider-3HQKHpoi.js → Slider-DhBLW1at.js} +1 -1
- package/storybook-static/assets/{Slider.stories-DeeP8cmV.js → Slider.stories-DpTr65-r.js} +1 -1
- package/storybook-static/assets/SliderInput-BEV5I_1l.js +2 -0
- package/storybook-static/assets/{SliderInput-CFbx-GW7.js → SliderInput-CiuILy6K.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-Djli653m.js → SliderInput.stories-CL7SlLhr.js} +1 -1
- package/storybook-static/assets/{Sortable-CMo2PMKX.js → Sortable-CtNygGoQ.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BFsQvwMx.js → Sortable.stories-BbNoyvN9.js} +1 -1
- package/storybook-static/assets/{Splitter-dwOhGuIg.js → Splitter-BYaydk0U.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-DZ3nAxpo.js → Splitter.stories-Bo2rHdcD.js} +1 -1
- package/storybook-static/assets/{StateSelect-j3gi4kbM.js → StateSelect-D2MILxIu.js} +1 -1
- package/storybook-static/assets/{StateSelect-IigEzRom.js → StateSelect-DNKjfPR-.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-Bj-2m2hS.js → StateSelect.stories-D_NhQBcN.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-ClSl76ts.js → StringToggle.stories-CS507_cT.js} +1 -1
- package/storybook-static/assets/{Switch-C9OAPzUM.js → Switch-9gK7d4Is.js} +1 -1
- package/storybook-static/assets/{Switch-BDbBZjMA.js → Switch-i3aW21Wi.js} +1 -1
- package/storybook-static/assets/{Switch.stories-CQ3ueThx.js → Switch.stories-BRIuS4_o.js} +1 -1
- package/storybook-static/assets/{Table-BbGcLQ81.js → Table-CytIsA37.js} +1 -1
- package/storybook-static/assets/{Table.stories-DvaHP59R.js → Table.stories-DYPLk3TC.js} +1 -1
- package/storybook-static/assets/{Tabs-CNEYvzUv.js → Tabs-BMee-SUy.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-BpyQokl8.js → Tabs.stories-KqQTRqYo.js} +1 -1
- package/storybook-static/assets/TabsBox-B5ugO318.css +1 -0
- package/storybook-static/assets/{TabsBox-ClZCbgKB.js → TabsBox-BM1mIOmT.js} +1 -1
- package/storybook-static/assets/{TagInput-DorsSF_V.js → TagInput-yEIGCMwZ.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-ChgRz4Co.js → TagInput.stories-DmuVnRfR.js} +1 -1
- package/storybook-static/assets/{Text-DUqtop-c.js → Text-DUN8T0sU.js} +1 -1
- package/storybook-static/assets/{Textarea-ZfZJmHsp.js → Textarea-BeKW8LG0.js} +1 -1
- package/storybook-static/assets/{Textarea-yZWv6QdW.js → Textarea-W648f4l-.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-B5Q7syxH.js → Textarea.stories-BbZ-hCVF.js} +1 -1
- package/storybook-static/assets/{TimePanel-C39f__j8.js → TimePanel-D-RygTSo.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DtjILTPk.js → TimePanel.stories-CzVur3oq.js} +1 -1
- package/storybook-static/assets/{Toggle-CdpPJI_O.js → Toggle-CCZ3ekPb.js} +1 -1
- package/storybook-static/assets/{Toggle-BndjhQFY.js → Toggle-Dc5aTAHb.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BD_C0YTw.js → Toggle.stories-R3abtezP.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-BPz5kISi.js → TreeMultiSelect-Bi-LirPw.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect--M1WiE_f.js → TreeMultiSelect-CzKVkvZd.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-BgkDJur9.js → TreeMultiSelect.stories-Co_PUawN.js} +1 -1
- package/storybook-static/assets/TreePickerBase-BIbhsg5t.js +22 -0
- package/storybook-static/assets/{TreeSelect-BrQGgG40.js → TreeSelect-B4G9gk8x.js} +1 -1
- package/storybook-static/assets/{TreeSelect-B0RWsDT4.js → TreeSelect-Dm3zEY1S.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DkgdJ5XX.js → TreeSelect.stories-sRek_0PI.js} +1 -1
- package/storybook-static/assets/{TreeTable-HQr8pb9r.js → TreeTable-ybfR3-5k.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-C4hcph6x.js → TreeTable.stories-BoZjeFKM.js} +1 -1
- package/storybook-static/assets/{async-lzSWdC34.js → async-Df2RUQlC.js} +1 -1
- package/storybook-static/assets/{blocks-D8l_hmHU.js → blocks-BcJ54T3V.js} +3 -3
- package/storybook-static/assets/{browserAndReact-BwvRFhzI.js → browserAndReact-Bfk1cWqT.js} +1 -1
- package/storybook-static/assets/{check-DpX8PMs_.js → check-Dl-iF50o.js} +1 -1
- package/storybook-static/assets/{chevron-down-DE8FRR-h.js → chevron-down-DOIDj8WF.js} +1 -1
- package/storybook-static/assets/{chevron-left-Cy3TEG_Y.js → chevron-left-DHEBK_X7.js} +1 -1
- package/storybook-static/assets/{chevron-right-CZ4-4s1X.js → chevron-right-Cf6T-grH.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-Ci-XApFb.js → chunk-W22LQPXL-DLMJSt_s.js} +1 -1
- package/storybook-static/assets/{circle-alert-CWbgc3Jn.js → circle-alert-DmNt0Uwi.js} +1 -1
- package/storybook-static/assets/{circle-check-DODquDnH.js → circle-check-DN8HwnBX.js} +1 -1
- package/storybook-static/assets/{components-BdUOCBP9.js → components-DI9O99vY.js} +3 -3
- package/storybook-static/assets/{contextMenu-XvvXJEpW.js → contextMenu-DWXX4ZHr.js} +1 -1
- package/storybook-static/assets/defaultRenderers-DwI2nLiY.js +1 -0
- package/storybook-static/assets/{download-BEGaHxQc.js → download-oMaZX_8z.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-C9FnZv9P.js → filesAndExcel-ur50Ve27.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-GziJy4gA.js → floating-ui.react-zHdvT_EM.js} +1 -1
- package/storybook-static/assets/{formatters-CVj-3Vn0-C5-BLq9O.js → formatters-CVj-3Vn0-BFaHJqZL.js} +1 -1
- package/storybook-static/assets/{formatters-vWial7jf.js → formatters-CnFJmQFO.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-DO0szrYr.js → formatters-runtime-LyrD5drJ.js} +1 -1
- package/storybook-static/assets/{foundationLib-CIqc9fhG.js → foundationLib-D-8O61ay.js} +1 -1
- package/storybook-static/assets/{hooks-DfgvMSqN.js → hooks-DbzqJvP-.js} +1 -1
- package/storybook-static/assets/iframe-hjgtoR20.js +1 -0
- package/storybook-static/assets/{iframe-BHhbrImE.js → iframe-jqJCNVG-.js} +3 -3
- package/storybook-static/assets/{info-DSZ4aUvi.js → info-DTU0XXKY.js} +1 -1
- package/storybook-static/assets/{odata-DmijE2H9.js → odata-BBbQt4pn.js} +1 -1
- package/storybook-static/assets/odata-service-B5w4YBao-BW9QLSrS.js +3 -0
- package/storybook-static/assets/{odataAndTables-m2AMS6oI.js → odataAndTables-VK5X4V6B.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-CwpkgKoz.js → odataFetchFn-T6FIbpPz.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CBtJYQsv.js → odataStoryFixtures-pMgI1q6n.js} +1 -1
- package/storybook-static/assets/{persisted-DpSU25AR.js → persisted-EtS4vVCD.js} +1 -1
- package/storybook-static/assets/{pureUtilities-BG4ZSO63.js → pureUtilities-BIjOnY3J.js} +1 -1
- package/storybook-static/assets/{react-Bz35HWpn.js → react-BG6GAoHo.js} +1 -1
- package/storybook-static/assets/{refresh-cw-ltgf4cUB.js → refresh-cw-1qKqpsOV.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-C_GrWjr8.js → runtimeAndState-BorNVnh8.js} +1 -1
- package/storybook-static/assets/{settings-2-qpVYfZn_.js → settings-2-CPrjOIso.js} +1 -1
- package/storybook-static/assets/{sortable-CrCQ3H1V.js → sortable-D6C8wTse.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-eOr9ght-.js → syntaxhighlighter-T5IQBZDB-ifBULuBx.js} +1 -1
- package/storybook-static/assets/{trash-2-lfhUDclN.js → trash-2-CIrQtNzc.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D9YGTafY.js → triangle-alert-D3piZGn9.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-BVgxJPNn.js → useODataSelectBase-CwDThJRi.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-CdLHOBnD.js → useODataTreeData-C4v28uFV.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-B6U-oOS6.js → usePickerQuery-BodFjGup.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-C-VxrzSe.js → usePickerTriggerController-BjnU7tfr.js} +1 -1
- package/storybook-static/assets/{x-CNM39xuu.js → x-CaGImgpS.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/dist/chunks/CalendarView-DtacoN_c.js +0 -439
- package/dist/chunks/TextEditorLexicalClient-DVML-Nhd.js.map +0 -1
- package/dist/chunks/context-menu-BY4pYGwB.js.map +0 -1
- package/dist/chunks/date-input-DKkJO_-h.js +0 -340
- package/dist/chunks/date-input-DKkJO_-h.js.map +0 -1
- package/dist/chunks/input-BWCaVC06.js.map +0 -1
- package/dist/chunks/multi-select-01xmD1nZ.js.map +0 -1
- package/dist/chunks/select-DRf4_a1Z.js.map +0 -1
- package/storybook-static/assets/CheckBox-8XczNrjq.css +0 -1
- package/storybook-static/assets/ContextMenu-BjWu5DHB.js +0 -1
- package/storybook-static/assets/DateInput-BUgBb3aH.js +0 -1
- package/storybook-static/assets/Select-g0c0XGQY.js +0 -12
- package/storybook-static/assets/SingleDateTimeInput-CN7PyOsb.js +0 -1
- package/storybook-static/assets/SliderInput-bqFr-Lyp.js +0 -2
- package/storybook-static/assets/TabsBox-Co1vxD90.css +0 -1
- package/storybook-static/assets/TreePickerBase-Dup03AiC.js +0 -22
- package/storybook-static/assets/defaultRenderers-lMEgLPIU.js +0 -1
- package/storybook-static/assets/iframe-oIP1aL7X.js +0 -1
- package/storybook-static/assets/odata-service-B5w4YBao-BcP2cvfZ.js +0 -3
- /package/storybook-static/assets/{CheckBox.module-DPvJxTHD.js → CheckBox.module-CM_GPl_E.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./ui.module-BfaIVBba.js";
|
|
2
|
-
import { c as t } from "./input-
|
|
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-
|
|
2
|
+
import { c as t } from "./input-CAw1Loze.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-TYLwgl1c.js";
|
|
4
4
|
import { n as f, r as p } from "./useODataSelectBase-DI_wwKgw.js";
|
|
5
5
|
import { Fragment as m, useCallback as h, useMemo as g, useRef as ee, useState as te } from "react";
|
|
6
6
|
import { useODataCollectionModel as _ } from "@ryuzaki13/react-foundation-api/odata";
|
|
@@ -66,13 +66,14 @@ var C = {
|
|
|
66
66
|
//#endregion
|
|
67
67
|
//#region src/select/Select.tsx
|
|
68
68
|
function w(t) {
|
|
69
|
-
let { label: f, description: p, disabled: _, placeholder: S, size: ae, options: w, value: T, onChange: E, getOptionKey: D, getOptionLabel: O, getOptionCode: k, getOptionDisabled: A, getOptionAriaLabel: se, getOptionGroup: j, getOptionClassName: ce, renderOption: M, renderValue: N, className: le, buttonClassName: ue, optionsClassName: de, optionsMaxWidth: fe, optionsContentClassName: pe, searchable: P = !1, defaultFilter: me = !0, query: he, defaultQuery: ge, onQuery: _e, renderPopupHeader: ve, emptyState: ye, loadingState: be, errorState: xe, placement: Se = "bottom-start", clearable: F = !1 } = t, I = E, L = ee(null), [R, Ce] = te(!1), z = P ? "search-single" : "display", B = T === void 0 ? void 0 : D(T), V = B === void 0 ? void 0 : w.find((e) => D(e) === B) ?? T, { query: H, setQuery: U } = l({
|
|
70
|
-
open: R,
|
|
69
|
+
let { label: f, description: p, disabled: _, placeholder: S, size: ae, options: w, value: T, onChange: E, getOptionKey: D, getOptionLabel: O, getOptionCode: k, getOptionDisabled: A, getOptionAriaLabel: se, getOptionGroup: j, getOptionClassName: ce, renderOption: M, renderValue: N, className: le, buttonClassName: ue, optionsClassName: de, optionsMaxWidth: fe, optionsContentClassName: pe, searchable: P = !1, defaultFilter: me = !0, query: he, defaultQuery: ge, onQuery: _e, renderPopupHeader: ve, emptyState: ye, loadingState: be, errorState: xe, placement: Se = "bottom-start", clearable: F = !1 } = t, I = E, L = ee(null), [R, Ce] = te(!1), z = P ? "search-single" : "display", B = T === void 0 ? void 0 : D(T), V = B === void 0 ? void 0 : w.find((e) => D(e) === B) ?? T, { query: H, setQuery: U, resetQueryOnClose: we } = l({
|
|
71
70
|
query: he,
|
|
72
71
|
defaultQuery: ge,
|
|
73
72
|
onQuery: _e,
|
|
74
73
|
triggerMode: z
|
|
75
|
-
}),
|
|
74
|
+
}), Te = (e) => {
|
|
75
|
+
R && !e && we && U(""), Ce(e);
|
|
76
|
+
}, Ee = h((e) => ie({
|
|
76
77
|
option: e,
|
|
77
78
|
getOptionLabel: O,
|
|
78
79
|
getOptionCode: k,
|
|
@@ -85,46 +86,46 @@ function w(t) {
|
|
|
85
86
|
options: w,
|
|
86
87
|
query: H,
|
|
87
88
|
enabled: P && me,
|
|
88
|
-
getSearchText:
|
|
89
|
-
}), G = g(() => j ? oe(W, j) : void 0, [j, W]),
|
|
89
|
+
getSearchText: Ee
|
|
90
|
+
}), G = g(() => j ? oe(W, j) : void 0, [j, W]), De = B === void 0 ? -1 : W.findIndex((e) => D(e) === B), { activeIndex: Oe, context: ke, floatingStyles: Ae, getFloatingProps: je, setReference: Me, setFloating: Ne, setOptionRef: Pe, close: K, openList: Fe, toggleOpen: Ie, selectOption: Le, selectActiveOption: Re, handleReferenceKeyDown: ze, handleFloatingKeyDown: Be, getOptionId: Ve, getActiveOptionId: q } = a({
|
|
90
91
|
options: W,
|
|
91
|
-
selectedIndex:
|
|
92
|
+
selectedIndex: De,
|
|
92
93
|
open: R,
|
|
93
|
-
onOpenChange:
|
|
94
|
+
onOpenChange: Te,
|
|
94
95
|
getOptionDisabled: A,
|
|
95
96
|
onSelect: I,
|
|
96
97
|
disabled: _,
|
|
97
98
|
placement: Se,
|
|
98
99
|
triggerMode: z
|
|
99
|
-
}), J = W.length > 0, Y = V === void 0 ? void 0 : O(V), X = V === void 0 ? void 0 : N ? N(V) : Y,
|
|
100
|
+
}), J = W.length > 0, Y = V === void 0 ? void 0 : O(V), X = V === void 0 ? void 0 : N ? N(V) : Y, He = s(Y), Ue = V === void 0 ? void 0 : s(k?.(V)), We = s(X) ?? He ?? Ue ?? (B === void 0 ? "" : String(B)), Z = P && (R || H.length > 0), Ge = Z ? H : V === void 0 ? "" : We, Q = V !== void 0 && X !== void 0 && s(X) === void 0 && !Z, $ = u({
|
|
100
101
|
mode: z,
|
|
101
102
|
open: R,
|
|
102
103
|
currentQuery: H,
|
|
103
104
|
hasDisplayValue: V !== void 0,
|
|
104
105
|
inputRef: L,
|
|
105
106
|
setQuery: U,
|
|
106
|
-
openList:
|
|
107
|
+
openList: Fe,
|
|
107
108
|
close: K,
|
|
108
|
-
toggleOpen:
|
|
109
|
-
}),
|
|
109
|
+
toggleOpen: Ie
|
|
110
|
+
}), Ke = (e) => {
|
|
110
111
|
L.current = e;
|
|
111
|
-
},
|
|
112
|
+
}, qe = () => {
|
|
112
113
|
F && I(void 0), U(""), K();
|
|
113
|
-
},
|
|
114
|
-
let i = D(n), a = B !== void 0 && i === B, o = r ===
|
|
114
|
+
}, Je = (t, n, r) => {
|
|
115
|
+
let i = D(n), a = B !== void 0 && i === B, o = r === Oe, s = A?.(n) ?? !1, c = {
|
|
115
116
|
active: o,
|
|
116
117
|
selected: a,
|
|
117
118
|
disabled: s
|
|
118
119
|
};
|
|
119
120
|
return /* @__PURE__ */ b("div", {
|
|
120
|
-
id:
|
|
121
|
-
ref: (e) =>
|
|
121
|
+
id: Ve(t, r),
|
|
122
|
+
ref: (e) => Pe(r, e),
|
|
122
123
|
role: "option",
|
|
123
124
|
"aria-selected": a,
|
|
124
125
|
"aria-disabled": s || void 0,
|
|
125
126
|
"aria-label": se?.(n),
|
|
126
127
|
className: v(e.uiPopupOption, s && e.disabled, o && e.uiPopupOptionActive, a && e.selected, ce?.(n, c)),
|
|
127
|
-
onClick: () =>
|
|
128
|
+
onClick: () => Le(n),
|
|
128
129
|
children: M ? M(n, c) : /* @__PURE__ */ x(y, { children: [
|
|
129
130
|
b(a ? ne : "span", { className: e.uiPopupOptionIcon }),
|
|
130
131
|
/* @__PURE__ */ b("div", {
|
|
@@ -147,15 +148,15 @@ function w(t) {
|
|
|
147
148
|
children: ({ controlId: t, labelId: n, describedBy: a }) => {
|
|
148
149
|
let s = `${t}-listbox`;
|
|
149
150
|
return /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(r, {
|
|
150
|
-
ref:
|
|
151
|
-
rootRef:
|
|
151
|
+
ref: Ke,
|
|
152
|
+
rootRef: Me,
|
|
152
153
|
id: t,
|
|
153
154
|
type: "text",
|
|
154
155
|
disabled: _,
|
|
155
156
|
readOnly: !P,
|
|
156
157
|
autoComplete: "off",
|
|
157
158
|
role: "combobox",
|
|
158
|
-
value:
|
|
159
|
+
value: Ge,
|
|
159
160
|
placeholder: V === void 0 || Z ? `${S ?? f ?? ""} <${w.length}>` : void 0,
|
|
160
161
|
"aria-labelledby": n,
|
|
161
162
|
"aria-describedby": a,
|
|
@@ -183,7 +184,7 @@ function w(t) {
|
|
|
183
184
|
e.preventDefault(), e.stopPropagation();
|
|
184
185
|
},
|
|
185
186
|
onClick: (e) => {
|
|
186
|
-
e.preventDefault(), e.stopPropagation(),
|
|
187
|
+
e.preventDefault(), e.stopPropagation(), qe();
|
|
187
188
|
},
|
|
188
189
|
"aria-label": "Очистить выбор",
|
|
189
190
|
children: /* @__PURE__ */ b(re, {})
|
|
@@ -197,30 +198,30 @@ function w(t) {
|
|
|
197
198
|
$.handleTriggerFocus(e.currentTarget);
|
|
198
199
|
},
|
|
199
200
|
onKeyDown: (e) => {
|
|
200
|
-
|
|
201
|
+
ze(e), !e.defaultPrevented && $.handleTriggerKeyDown({
|
|
201
202
|
event: e,
|
|
202
|
-
onActivateWhenOpen:
|
|
203
|
+
onActivateWhenOpen: Re,
|
|
203
204
|
enableSpaceActivation: !P
|
|
204
205
|
});
|
|
205
206
|
}
|
|
206
207
|
}), /* @__PURE__ */ b(i, {
|
|
207
208
|
open: R,
|
|
208
|
-
context:
|
|
209
|
-
floatingStyles:
|
|
209
|
+
context: ke,
|
|
210
|
+
floatingStyles: Ae,
|
|
210
211
|
listId: s,
|
|
211
212
|
labelId: n,
|
|
212
213
|
descriptionId: a,
|
|
213
214
|
activeOptionId: J ? q(s) : void 0,
|
|
214
|
-
setFloating:
|
|
215
|
-
getFloatingProps:
|
|
216
|
-
onKeyDown:
|
|
215
|
+
setFloating: Ne,
|
|
216
|
+
getFloatingProps: je,
|
|
217
|
+
onKeyDown: Be,
|
|
217
218
|
className: v(e.uiPopupOptions, de),
|
|
218
219
|
maxWidth: fe,
|
|
219
220
|
header: ve,
|
|
220
221
|
children: /* @__PURE__ */ b("div", {
|
|
221
222
|
className: v(pe, "h100 scrollable"),
|
|
222
223
|
children: J ? G ? G.map((t, n) => {
|
|
223
|
-
let r = t.group ? `${s}-group-${n}` : void 0, i = t.items.map(({ option: e, index: t }) =>
|
|
224
|
+
let r = t.group ? `${s}-group-${n}` : void 0, i = t.items.map(({ option: e, index: t }) => Je(s, e, t));
|
|
224
225
|
return t.group ? /* @__PURE__ */ x("div", {
|
|
225
226
|
role: "group",
|
|
226
227
|
"aria-labelledby": r,
|
|
@@ -230,7 +231,7 @@ function w(t) {
|
|
|
230
231
|
children: t.group.label
|
|
231
232
|
}), i]
|
|
232
233
|
}, `group-${String(t.group.key)}-${n}`) : /* @__PURE__ */ b(m, { children: i }, `options-${n}`);
|
|
233
|
-
}) : W.map((e, t) =>
|
|
234
|
+
}) : W.map((e, t) => Je(s, e, t)) : /* @__PURE__ */ b(d, {
|
|
234
235
|
emptyState: ye,
|
|
235
236
|
loadingState: be,
|
|
236
237
|
errorState: xe
|
|
@@ -324,4 +325,4 @@ function k({ label: e, description: t, disabled: n, placeholder: r, size: i, opt
|
|
|
324
325
|
//#endregion
|
|
325
326
|
export { S as i, E as n, w as r, k as t };
|
|
326
327
|
|
|
327
|
-
//# sourceMappingURL=select-
|
|
328
|
+
//# sourceMappingURL=select-DCSNVEYW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-DCSNVEYW.js","names":[],"sources":["../../src/select/lib/getOptionSearchText.ts","../../src/select/model/useODataSelect.ts","../../src/select/lib/createSelectOptionSections.ts","../../src/select/Select.module.scss","../../src/select/Select.tsx","../../src/select/ODataSelect.tsx","../../src/select/SerializableSelect.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nimport { InputType } from \"@ryuzaki13/react-foundation-lib/types\";\n\nimport { extractPickerTextContent } from \"../../picker\";\nimport { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport function getOptionSearchText<T extends InputType>({\n\toption,\n\tgetOptionLabel,\n\tgetOptionCode,\n\tgetOptionGroup\n}: {\n\toption: T;\n\tgetOptionLabel: (option: T) => ReactNode;\n\tgetOptionCode?: (option: T) => ReactNode;\n\tgetOptionGroup?: (option: T) => SelectOptionGroup | undefined;\n}) {\n\treturn [\n\t\textractPickerTextContent(getOptionLabel(option)),\n\t\textractPickerTextContent(getOptionCode?.(option)),\n\t\textractPickerTextContent(getOptionGroup?.(option)?.label)\n\t]\n\t\t.filter((part): part is string => Boolean(part))\n\t\t.join(\" \")\n\t\t.toLowerCase();\n}\n\n/** Находит selected option по value и возвращает fallback, если значение еще не нормализовано. */\nexport function resolveSelectedOption<TOption extends { value: string }>(\n\toptions: readonly TOption[],\n\tvalue: string,\n\tfallback: TOption\n): TOption {\n\treturn options.find((option) => option.value === value) ?? fallback;\n}\n","import { useMemo } from \"react\";\n\nimport { ODataCollectionModel, ODataSingleSelectProps } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { useODataSelectBase } from \"./useODataSelectBase\";\n\ninterface UseODataSelectOptions extends Omit<ODataSingleSelectProps, \"model\"> {\n\tmodel: Required<ODataCollectionModel>;\n\tonChange: (value: string | undefined) => void;\n}\n\nexport function useODataSelect({ odata, segment, model, value, dependencies, onChange }: UseODataSelectOptions) {\n\tconst odataModel = useODataSelectBase({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue: value ? [value] : [],\n\t\tdependencies\n\t});\n\n\tconst selectedItem = odataModel.selectedItems[0];\n\tconst options = useMemo(() => {\n\t\tif (!selectedItem) {\n\t\t\treturn odataModel.filteredItems;\n\t\t}\n\n\t\treturn [selectedItem, ...odataModel.filteredItems];\n\t}, [odataModel.filteredItems, selectedItem]);\n\n\tconst handleChange = (item: CollectionItem | undefined) => {\n\t\tonChange(item?.[odataModel.selectionKey]);\n\t};\n\n\treturn {\n\t\t...odataModel,\n\t\tselectedItem,\n\t\toptions,\n\t\thandleChange\n\t};\n}\n","import { type SelectOptionGroup } from \"../SelectOptionGroup\";\n\nexport type SelectOptionSectionItem<TOption> = {\n\treadonly option: TOption;\n\treadonly index: number;\n};\n\nexport type SelectOptionSection<TOption> = {\n\treadonly group: SelectOptionGroup | undefined;\n\treadonly items: readonly SelectOptionSectionItem<TOption>[];\n};\n\n/**\n * Собирает соседние опции с одинаковым group key в секции, сохраняя исходные индексы для клавиатурной навигации listbox.\n */\nexport function createSelectOptionSections<TOption>(\n\toptions: readonly TOption[],\n\tgetOptionGroup: (option: TOption) => SelectOptionGroup | undefined\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\trenderPopupHeader?: ReactNode;\n\temptyState?: ReactNode;\n\tloadingState?: ReactNode;\n\terrorState?: ReactNode;\n\tplacement?: Placement;\n};\n\ntype SelectChangeValue<TOption extends InputType, TClearable extends boolean | undefined> = true extends TClearable\n\t? TOption | undefined\n\t: TOption;\n\nexport type SelectProps<TOption extends InputType, TClearable extends boolean | undefined = false> = SelectSharedProps<TOption> & {\n\tclearable?: TClearable;\n\tonChange: ChangeHandler<SelectChangeValue<TOption, TClearable>>;\n};\n\n/**\n * Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.\n */\nexport function Select<TOption extends InputType, TClearable extends boolean | undefined = false>(props: SelectProps<TOption, TClearable>) {\n\tconst {\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tplaceholder,\n\t\tsize,\n\t\toptions,\n\t\tvalue,\n\t\tonChange,\n\t\tgetOptionKey,\n\t\tgetOptionLabel,\n\t\tgetOptionCode,\n\t\tgetOptionDisabled,\n\t\tgetOptionAriaLabel,\n\t\tgetOptionGroup,\n\t\tgetOptionClassName,\n\t\trenderOption,\n\t\trenderValue,\n\t\tclassName,\n\t\tbuttonClassName,\n\t\toptionsClassName,\n\t\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\tloadingState,\n\t\terrorState,\n\t\tplacement = \"bottom-start\",\n\t\tclearable = false\n\t} = props;\n\tconst emitChange = onChange as ChangeHandler<TOption | undefined>;\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst triggerMode = searchable ? \"search-single\" : \"display\";\n\tconst selectedKey = value === undefined ? undefined : getOptionKey(value);\n\tconst selectedOption =\n\t\tselectedKey === undefined ? undefined : (options.find((option) => getOptionKey(option) === selectedKey) ?? value);\n\tconst {\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\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} loadingState={loadingState} errorState={errorState} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n","import React from \"react\";\n\nimport { ODataSingleSelectProps, useODataCollectionModel } from \"@ryuzaki13/react-foundation-api/odata\";\nimport { CollectionItem } from \"@ryuzaki13/react-foundation-lib/odata\";\n\nimport { InputUILoading } from \"../input\";\nimport { UiBaseProps } from \"../types\";\n\nimport { useODataSelect } from \"./model/useODataSelect\";\nimport { Select } from \"./Select\";\nimport { SelectOptionContent } from \"./SelectOptionContent\";\n\ntype ODataSelectProps = Omit<ODataSingleSelectProps, \"value\"> & UiBaseProps<string | undefined> & { clearable?: boolean };\n\nfunction getODataOptionTextKey(item: CollectionItem | undefined, textKey: string, codeKey: string) {\n\tif (!item) {\n\t\treturn textKey || codeKey;\n\t}\n\n\treturn textKey || Object.keys(item).find((key) => key !== codeKey) || codeKey;\n}\n\nexport const ODataSelect: React.FC<ODataSelectProps> = ({\n\todata,\n\tsegment,\n\tmodel: initialModel,\n\tsize,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tvalue,\n\tdependencies,\n\tonChange,\n\tclearable\n}) => {\n\tconst model = useODataCollectionModel(initialModel);\n\tconst odataModel = useODataSelect({\n\t\todata,\n\t\tsegment,\n\t\tmodel,\n\t\tvalue,\n\t\tdependencies,\n\t\tonChange\n\t});\n\n\tif (odataModel.isLoading) {\n\t\treturn <InputUILoading size={size} label={label} description={description} />;\n\t}\n\n\tconst hideCode = segment.hideCode ?? odata.hideCode;\n\tconst resolvedTextKey = getODataOptionTextKey(odataModel.selectedItem ?? odataModel.options[0], odataModel.textKey, odataModel.codeKey);\n\n\treturn (\n\t\t<Select\n\t\t\tsize={size}\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\toptions={odataModel.options}\n\t\t\tvalue={odataModel.selectedItem}\n\t\t\tonChange={odataModel.handleChange}\n\t\t\tgetOptionKey={(item) => item[odataModel.codeKey]}\n\t\t\tgetOptionLabel={(item) => item[resolvedTextKey]}\n\t\t\tgetOptionCode={hideCode ? undefined : (item) => item[odataModel.codeKey]}\n\t\t\tgetOptionAriaLabel={(item) =>\n\t\t\t\thideCode || item[resolvedTextKey] === item[odataModel.codeKey]\n\t\t\t\t\t? String(item[resolvedTextKey])\n\t\t\t\t\t: `${item[resolvedTextKey]} ${item[odataModel.codeKey]}`\n\t\t\t}\n\t\t\trenderValue={(item) => (\n\t\t\t\t<SelectOptionContent label={item[resolvedTextKey]} code={hideCode ? undefined : item[odataModel.codeKey]} />\n\t\t\t)}\n\t\t\trenderOption={(item) => (\n\t\t\t\t<SelectOptionContent\n\t\t\t\t\tlabel={item[resolvedTextKey]}\n\t\t\t\t\tcode={hideCode ? undefined : item[odataModel.codeKey]}\n\t\t\t\t\thighlight={odataModel.debouncedQuery}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tsearchable\n\t\t\tquery={odataModel.query}\n\t\t\tonQuery={odataModel.setQuery}\n\t\t\tdefaultFilter={false}\n\t\t\tdisabled={disabled || odataModel.isLoading}\n\t\t\tplaceholder={odataModel.placeholder}\n\t\t\tloadingState=\"Загрузка...\"\n\t\t\terrorState={odataModel.isError ? \"Ошибка загрузки\" : undefined}\n\t\t\temptyState={!odataModel.isLoading && !odataModel.isError ? \"Нет данных\" : undefined}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n};\n","import { Select } from \"./Select\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { SelectOptionKey } from \"./Select\";\n\ntype SerializableOptionRecord = Record<string, unknown>;\n\ntype SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {\n\t[K in keyof TOption]: Extract<TOption[K], SelectOptionKey> extends never ? never : K;\n}[keyof TOption];\n\ntype SerializableOptionValue<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>> = Extract<\n\tTOption[TOptionKey],\n\tSelectOptionKey\n>;\n\nexport interface SerializableSelectProps<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n> extends Omit<UiBaseProps<SerializableOptionValue<TOption, TOptionKey> | undefined>, \"onChange\"> {\n\toptions: readonly TOption[];\n\tonChange: (value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void;\n\toptionKey: TOptionKey;\n\toptionLabel: TOptionLabel;\n\trenderCode?: true;\n\tclassName?: string;\n\tclearable?: boolean;\n}\n\nfunction getSerializableOptionKey<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>>(\n\toption: TOption,\n\toptionKey: TOptionKey\n): Extract<TOption[TOptionKey], SelectOptionKey> {\n\treturn option[optionKey] as Extract<TOption[TOptionKey], SelectOptionKey>;\n}\n\nfunction getSerializableOptionLabel<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>(option: TOption, optionLabel: TOptionLabel, optionKey: TOptionKey): string | number {\n\tconst label = option[optionLabel];\n\n\tif (typeof label === \"string\" || typeof label === \"number\") {\n\t\treturn label;\n\t}\n\n\tconst key = getSerializableOptionKey(option, optionKey);\n\treturn typeof key === \"string\" || typeof key === \"number\" ? key : String(key);\n}\n\nexport function SerializableSelect<\n\tTOption extends SerializableOptionRecord,\n\tTOptionKey extends SerializableOptionKeyField<TOption>,\n\tTOptionLabel extends keyof TOption\n>({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tplaceholder,\n\tsize,\n\toptions,\n\tvalue,\n\tonChange,\n\toptionKey,\n\toptionLabel,\n\trenderCode,\n\tclassName,\n\tclearable\n}: SerializableSelectProps<TOption, TOptionKey, TOptionLabel>) {\n\tconst selectedOption =\n\t\tvalue === undefined ? undefined : options.find((option) => getSerializableOptionKey(option, optionKey) === value);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\toptions={options}\n\t\t\tvalue={selectedOption}\n\t\t\tonChange={(option: TOption | undefined) => onChange(option ? getSerializableOptionKey(option, optionKey) : undefined)}\n\t\t\tgetOptionKey={(option: TOption) => getSerializableOptionKey(option, optionKey)}\n\t\t\tgetOptionLabel={(option: TOption) => getSerializableOptionLabel(option, optionLabel, optionKey)}\n\t\t\tgetOptionCode={renderCode ? (option: TOption) => getSerializableOptionKey(option, optionKey) : undefined}\n\t\t\tclassName={className}\n\t\t\tclearable={clearable}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, i as r, m as i, n as a, o as ee, r as te, s as ne, t as re } from "./base-table-
|
|
1
|
+
import { a as e, c as t, d as n, i as r, m as i, n as a, o as ee, r as te, s as ne, t as re } from "./base-table-X7aSSjXa.js";
|
|
2
2
|
import { useEffect as ie, useEffectEvent as ae, useMemo as o, useRef as s } from "react";
|
|
3
3
|
import { jsx as c } from "react/jsx-runtime";
|
|
4
4
|
import { formatPipelineDisplayValue as l } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
@@ -138,4 +138,4 @@ function m({ title: m, isLoading: h, isFetching: se, data: g, columns: _, select
|
|
|
138
138
|
//#endregion
|
|
139
139
|
export { m as t };
|
|
140
140
|
|
|
141
|
-
//# sourceMappingURL=table-
|
|
141
|
+
//# sourceMappingURL=table-DihiNNJt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-DSg9gi_l.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","/* eslint-disable react-hooks/incompatible-library */\nimport { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { getCoreRowModel, useReactTable, type Row, type VisibilityState } from \"@tanstack/react-table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: VisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: VisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние left-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние left-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: VisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения left-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useReactTable<TData>({\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: Row<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-DihiNNJt.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","/* eslint-disable react-hooks/incompatible-library */\nimport { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { getCoreRowModel, useReactTable, type Row, type VisibilityState } from \"@tanstack/react-table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: VisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: VisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние left-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние left-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: VisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения left-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useReactTable<TData>({\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: Row<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuRoot.d.ts","sourceRoot":"","sources":["../../../src/context-menu/components/MenuRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MenuRoot.d.ts","sourceRoot":"","sources":["../../../src/context-menu/components/MenuRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAA4B,SAAS,EAAsB,MAAM,oBAAoB,CAAC;AAU7F,OAAO,EAAe,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7D,UAAU,aAAa;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgL5C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/context-menu-
|
|
1
|
+
import { n as e, t } from "../chunks/context-menu-tcD3kVAc.js";
|
|
2
2
|
export { e as ContextMenu, t as DropdownMenu };
|
package/dist/date-input/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../chunks/CalendarView-
|
|
2
|
-
import { a as c, c as l, d as u, f as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S } from "../chunks/date-input-
|
|
1
|
+
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../chunks/CalendarView-Cfih7hjD.js";
|
|
2
|
+
import { a as c, c as l, d as u, f as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S } from "../chunks/date-input-Bsl9dxxY.js";
|
|
3
3
|
export { s as CalendarView, r as DATE_INPUT_SELECTION_MODES, a as DATE_INPUT_WEEK_END_DAYS, n as DATE_PICKER_LEVELS, y as DEFAULT_DATE_INPUT_FORMAT, p as DEFAULT_DATE_INPUT_PRESET, x as RangeDateInput, g as SingleDateInput, c as areRangeDateValuesEqual, _ as areSingleDateValuesEqual, b as formatDateInputValue, l as formatRangeDateValue, m as formatSingleDateValue, e as getDatePickerLevelForSelectionMode, i as isDatePickerLevelAvailable, S as normalizeRangeDateValue, u as normalizeRangeEndDateValue, d as normalizeSingleDateValue, v as parseRangeDateValue, h as parseRangeEndDateValue, f as parseSingleDateValue, o as resolveAvailableDatePickerLevel, t as resolveDateInputPeriodRangeState };
|
|
@@ -12,10 +12,6 @@ export type DateInputValueOptions = {
|
|
|
12
12
|
* Имя пресета форматирования даты.
|
|
13
13
|
*/
|
|
14
14
|
datePreset?: string;
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated Используйте `datePreset`.
|
|
17
|
-
*/
|
|
18
|
-
dateFormat?: string;
|
|
19
15
|
/**
|
|
20
16
|
* Точность календарного значения.
|
|
21
17
|
*/
|
|
@@ -67,11 +63,11 @@ export declare function formatRangeDateValue(range: NullableDateRange | null, op
|
|
|
67
63
|
*/
|
|
68
64
|
export declare function formatDateInputValue(value: DateRangeInput, optionsOrPreset?: DateInputValueOptionsInput, datePickerLevel?: DateFormatPrecision): string;
|
|
69
65
|
/**
|
|
70
|
-
* Парсит строку одиночной даты по заданному
|
|
66
|
+
* Парсит строку одиночной даты по заданному пресету.
|
|
71
67
|
*/
|
|
72
68
|
export declare function parseSingleDateValue(value: string, optionsOrPreset?: DateInputValueOptionsInput, datePickerLevel?: DateFormatPrecision): Date | null;
|
|
73
69
|
/**
|
|
74
|
-
* Парсит строку диапазона дат по заданному
|
|
70
|
+
* Парсит строку диапазона дат по заданному пресету.
|
|
75
71
|
*/
|
|
76
72
|
export declare function parseRangeDateValue(value: string, optionsOrPreset?: DateInputValueOptionsInput, datePickerLevel?: DateFormatPrecision): NullableDateRange;
|
|
77
73
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateInputValue.d.ts","sourceRoot":"","sources":["../../../src/date-input/lib/dateInputValue.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dateInputValue.d.ts","sourceRoot":"","sources":["../../../src/date-input/lib/dateInputValue.ts"],"names":[],"mappings":"AAAA,OAAO,EASN,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAiC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAItD,MAAM,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjD;;OAEG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAC;AAqEpF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAExG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,IAAI,CAKlI;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAE1G;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAExH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAQT;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,cAAc,EACrB,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,IAAI,GAAG,IAAI,CAMb;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,iBAAiB,CAKnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,0BAA0B,EAC5C,eAAe,CAAC,EAAE,mBAAmB,GACnC,IAAI,GAAG,IAAI,CAGb"}
|
|
@@ -9,10 +9,6 @@ interface BaseUiProps<T = unknown> {
|
|
|
9
9
|
}
|
|
10
10
|
export interface BaseDateInputOptions<T = unknown> extends BaseUiProps<T> {
|
|
11
11
|
datePreset?: string;
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Используйте `datePreset`.
|
|
14
|
-
*/
|
|
15
|
-
dateFormat?: string;
|
|
16
12
|
datePickerLevel?: DatePickerLevel;
|
|
17
13
|
selectionMode?: DateInputSelectionMode;
|
|
18
14
|
weekEndDay?: DateInputWeekEndDay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/date-input/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,MAAM,4CAA4C,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAC3C,MAAM,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAGrD,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO;IAChC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/date-input/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,MAAM,4CAA4C,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAC3C,MAAM,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAGrD,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO;IAChC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC;IAChF,YAAY,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC5F,YAAY,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAG9E,UAAU,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;CACf;AAED,UAAU,mBAAoB,SAAQ,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACnE,YAAY,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,UAAU,kBAAmB,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC;IACxE,YAAY,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC"}
|
|
@@ -5,9 +5,9 @@ import { type DateInputOptions } from "../lib";
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const useDateInput: (options: DateInputOptions) => {
|
|
7
7
|
inputValue: string;
|
|
8
|
-
setInputValue:
|
|
8
|
+
setInputValue: (nextInputValue: string) => void;
|
|
9
9
|
selectedDate: Date | NullableDateRange | null;
|
|
10
|
-
setSelectedDate:
|
|
10
|
+
setSelectedDate: (nextSelectedDate: Date | NullableDateRange | null) => void;
|
|
11
11
|
handleSelect: (date: Date | NullableDateRange) => boolean;
|
|
12
12
|
formatDate: (value: Date | NullableDateRange | null) => string;
|
|
13
13
|
parseDate: (dateString: string) => Date | NullableDateRange | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateInput.d.ts","sourceRoot":"","sources":["../../../src/date-input/model/useDateInput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAEtG,OAAO,EAQN,KAAK,gBAAgB,EACrB,MAAM,QAAQ,CAAC;AAUhB;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB
|
|
1
|
+
{"version":3,"file":"useDateInput.d.ts","sourceRoot":"","sources":["../../../src/date-input/model/useDateInput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAEtG,OAAO,EAQN,KAAK,gBAAgB,EACrB,MAAM,QAAQ,CAAC;AAUhB;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB;;oCA8Cd,MAAM;;wCAgBF,IAAI,GAAG,iBAAiB,GAAG,IAAI;yBAqC9C,IAAI,GAAG,iBAAiB;wBArBxB,IAAI,GAAG,iBAAiB,GAAG,IAAI,KAAG,MAAM;4BAKrC,MAAM,KAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI;CA6EvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarView.d.ts","sourceRoot":"","sources":["../../../src/date-input/ui/CalendarView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQN,KAAK,iBAAiB,EACtB,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAO9H,UAAU,qBAAqB;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE,YAAY,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,iBAAkB,SAAQ,qBAAqB;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,IAAI,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC3C;
|
|
1
|
+
{"version":3,"file":"CalendarView.d.ts","sourceRoot":"","sources":["../../../src/date-input/ui/CalendarView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQN,KAAK,iBAAiB,EACtB,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAO9H,UAAU,qBAAqB;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE,YAAY,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,iBAAkB,SAAQ,qBAAqB;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,IAAI,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC3C;AAeD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC5B,IAAI,EACJ,eAAe,EACf,aAAqB,EACrB,UAAqB,EACrB,YAAY,EACZ,GAAG,KAAK,EACR,EAAE,iBAAiB,+BAuOnB"}
|
|
@@ -8,10 +8,6 @@ interface BaseDateInputProps {
|
|
|
8
8
|
minDate?: Date;
|
|
9
9
|
maxDate?: Date;
|
|
10
10
|
datePreset?: string;
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Используйте `datePreset`.
|
|
13
|
-
*/
|
|
14
|
-
dateFormat?: string;
|
|
15
11
|
/**
|
|
16
12
|
* Минимальный уровень календарной навигации. Размер выбранного периода задаёт `selectionMode`.
|
|
17
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../src/date-input/ui/DateInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAA4C,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAMtG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAMN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,MAAM,QAAQ,CAAC;AAMhB,UAAU,kBAAkB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../src/date-input/ui/DateInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAA4C,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAMtG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAMN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,MAAM,QAAQ,CAAC;AAMhB,UAAU,kBAAkB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;OAEG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,oBAAoB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,aAAa,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB,EAAE,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;IACzF,YAAY,CAAC,EAAE,KAAK,CAAC;CACrB;AACD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB,EAAE,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACrG,YAAY,EAAE,IAAI,CAAC;CACnB;AAqPD,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,eAEhF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,eAE9E"}
|