@ryuzaki13/react-foundation-ui 3.8.3 → 3.9.0
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/base-table/index.js +1 -1
- package/dist/chunks/{TextEditorLexicalClient-U-sTxmCU.js → TextEditorLexicalClient-BQH41FFT.js} +2 -2
- package/dist/chunks/{TextEditorLexicalClient-U-sTxmCU.js.map → TextEditorLexicalClient-BQH41FFT.js.map} +1 -1
- package/dist/chunks/{base-table-BMesCx6H.js → base-table-9H5YuVvB.js} +2 -2
- package/dist/chunks/{base-table-BMesCx6H.js.map → base-table-9H5YuVvB.js.map} +1 -1
- package/dist/chunks/{context-menu-CrSXJxQL.js → context-menu-BV8636Ou.js} +2 -2
- package/dist/chunks/{context-menu-CrSXJxQL.js.map → context-menu-BV8636Ou.js.map} +1 -1
- package/dist/chunks/{date-input-CzCDou4s.js → date-input-B7iG9cA7.js} +2 -2
- package/dist/chunks/{date-input-CzCDou4s.js.map → date-input-B7iG9cA7.js.map} +1 -1
- package/dist/chunks/{input-CuRK9Vbz.js → input-KXI7o06g.js} +7 -7
- package/dist/chunks/input-KXI7o06g.js.map +1 -0
- package/dist/chunks/{input-files-B8j6Pb_M.js → input-files-CnBNlJo0.js} +2 -2
- package/dist/chunks/{input-files-B8j6Pb_M.js.map → input-files-CnBNlJo0.js.map} +1 -1
- package/dist/chunks/{picker-SJXnHwsj.js → picker-DagDe9OH.js} +17 -16
- package/dist/chunks/picker-DagDe9OH.js.map +1 -0
- package/dist/chunks/select-C-1U-ujV.js +368 -0
- package/dist/chunks/select-C-1U-ujV.js.map +1 -0
- package/dist/chunks/{table-OvvWkKfy.js → table-BRC1OTyE.js} +2 -2
- package/dist/chunks/{table-OvvWkKfy.js.map → table-BRC1OTyE.js.map} +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +1 -1
- package/dist/date-time-input/index.js +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/image/index.js +2 -2
- package/dist/input/Input.d.ts +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/listbox/index.js +1 -1
- package/dist/multi-select/index.js +171 -161
- package/dist/multi-select/index.js.map +1 -1
- package/dist/multi-select/ui/DeprecatedMultiSelect.d.ts +2 -0
- package/dist/multi-select/ui/DeprecatedMultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/MultiSelect.d.ts +3 -0
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/MultiSelectCore.d.ts +1 -1
- package/dist/multi-select/ui/MultiSelectCore.d.ts.map +1 -1
- package/dist/multi-select/ui/ODataDependentSegmentMultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/ODataMultiSelect.d.ts +5 -2
- package/dist/multi-select/ui/ODataMultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/SerializableMultiSelect.d.ts +3 -1
- package/dist/multi-select/ui/SerializableMultiSelect.d.ts.map +1 -1
- package/dist/odata-dependent/ODataDependentSegmentControlProps.d.ts +4 -0
- package/dist/odata-dependent/ODataDependentSegmentControlProps.d.ts.map +1 -1
- package/dist/period-select/PeriodSelect.d.ts +2 -0
- package/dist/period-select/PeriodSelect.d.ts.map +1 -1
- package/dist/period-select/index.js.map +1 -1
- package/dist/picker/PickerField.d.ts +1 -1
- package/dist/picker/PickerField.d.ts.map +1 -1
- package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/picker/types.d.ts +2 -0
- package/dist/picker/types.d.ts.map +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/PresetSelect.d.ts +2 -0
- package/dist/preset-select/PresetSelect.d.ts.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/preset-select/index.js.map +1 -1
- package/dist/select/ODataDependentSegmentSelect.d.ts.map +1 -1
- package/dist/select/ODataSelect.d.ts +3 -1
- package/dist/select/ODataSelect.d.ts.map +1 -1
- package/dist/select/Select.d.ts +3 -0
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/SerializableSelect.d.ts +3 -1
- package/dist/select/SerializableSelect.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +2 -2
- package/dist/state-select/StateSelect.d.ts +3 -1
- package/dist/state-select/StateSelect.d.ts.map +1 -1
- package/dist/state-select/index.js +10 -8
- package/dist/state-select/index.js.map +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-editor/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/tree-select/ODataTreeMultiSelect.d.ts +3 -1
- package/dist/tree-select/ODataTreeMultiSelect.d.ts.map +1 -1
- package/dist/tree-select/ODataTreeSelect.d.ts +3 -1
- package/dist/tree-select/ODataTreeSelect.d.ts.map +1 -1
- package/dist/tree-select/TreeMultiSelect.d.ts +4 -1
- package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -1
- package/dist/tree-select/TreePickerBase.d.ts +3 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/TreeSelect.d.ts +4 -1
- package/dist/tree-select/TreeSelect.d.ts.map +1 -1
- package/dist/tree-select/index.js +271 -259
- 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-Exgo2liR.js → Badge-CL58JilM.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BSZPB2hP.js → Badge.stories-CXFTvV3D.js} +1 -1
- package/storybook-static/assets/{BadgeList-vXAflISJ.js → BadgeList-DLssobfd.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-B5JJTqxe.js → BarcodeScannerDialog.stories-CpMywpKq.js} +1 -1
- package/storybook-static/assets/{Button-W5ftYk1w.js → Button-CSbLv1K7.js} +1 -1
- package/storybook-static/assets/{Button-BzRtAjtM.js → Button-DMAPWgMI.js} +1 -1
- package/storybook-static/assets/{Button.stories-DcuEJMqp.js → Button.stories-CU1kYMvA.js} +1 -1
- package/storybook-static/assets/{CalendarView-C8taheM_.js → CalendarView-DuCLo_x5.js} +1 -1
- package/storybook-static/assets/{CheckBox-C-EWY4_-.js → CheckBox-BBPasWSk.js} +1 -1
- package/storybook-static/assets/{CheckBox-Cahw6EU8.js → CheckBox-Bfcdvr2o.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DL49eu_s.js → CheckBox.stories-sGH6EuU4.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-B0iuSBAP.js → Color-6AOWCN3U-5NJhf8m9.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DqLKk-wW.js → ContextMenu-CxuYkXjJ.js} +1 -1
- package/storybook-static/assets/{ContextMenu-k1Mubm6h.js → ContextMenu-z6NKmD0I.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CNnrfTxO.js → ContextMenu.stories-CI5IW_KX.js} +1 -1
- package/storybook-static/assets/{DateInput-CgBBiqYK.js → DateInput-A8NURpCX.js} +1 -1
- package/storybook-static/assets/{DateInput-NSuuc0Vu.js → DateInput-BkCbK0M5.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-eWY9Pqwp.js → DateInput.stories-DnzeyBpg.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Ch6rsktY.js → DateRangePresetSelect-Bh7qMFTr.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DibXoV_U.js → DateRangePresetSelect-CGZkf8Ty.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-B8yndfPd.js → DateRangePresetSelect.stories-Drm2FCnJ.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-D8BCr3qw.js → DeprecatedMultiSelect-8TWWhsLi.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-1K4GSVRr.js → DeprecatedMultiSelect-BebYsPmQ.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect.stories-DH7fIprL.js → DeprecatedMultiSelect.stories-7iL6YOgh.js} +1 -1
- package/storybook-static/assets/{Detail-CzQ7DLhL.js → Detail-BOZkPwOI.js} +1 -1
- package/storybook-static/assets/{Detail.stories-DzmSAGkt.js → Detail.stories-RZALoKmD.js} +1 -1
- package/storybook-static/assets/{Dialog-DEDDnDtQ.js → Dialog-BsslYClj.js} +1 -1
- package/storybook-static/assets/{Dialog-Cm7gLcJI.js → Dialog-CeukIYpx.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BzvBjaiX.js → Dialog.stories-y7MpdGQr.js} +1 -1
- package/storybook-static/assets/{Disclosure-Bpji7KuP.js → Disclosure-CiTnWx5y.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-Bwuzf5fl.js → Disclosure.stories-UWW9oheF.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-bCpsF5YE.js → DisclosureGroup-CT3BdQXr.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DQRIOLjc.js → DocsRenderer-JROSPFPF-x50rjjKP.js} +1 -1
- package/storybook-static/assets/{DropZone-Diu_Hlgs.js → DropZone-DUn9vW2w.js} +1 -1
- package/storybook-static/assets/{DropZone-qvCLdJmm.js → DropZone-gWSeoAx6.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DHgexefI.js → DropZone.stories-CmaVl9to.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-Bl2IPF3Q.js → DropdownMenu-DkeS8gOF.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-B3iQGrX8.js → ExpandableActionPanel-DdqWZDe2.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-DRnMPxSP.js → ExpandableActionPanel.stories-CA-dpb07.js} +1 -1
- package/storybook-static/assets/{Flex-CrWmRoxc.js → Flex-DpQpF63N.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Db20If9k.js → Flex.stories-DtlKiJno.js} +1 -1
- package/storybook-static/assets/{FlexContainer-YYPiKtpT.js → FlexContainer-C1d63I55.js} +1 -1
- package/storybook-static/assets/{FlexItem-CXY6tvoB.js → FlexItem-DsoW-br3.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DSRofmW2.js → FloatingPopover-7MpESGU4.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-B-t0D2oX.js → FormattedTableCell-B4RRbSFK.js} +1 -1
- package/storybook-static/assets/{Grid-Ad2q9giD.js → Grid-DsCUaz46.js} +1 -1
- package/storybook-static/assets/{Grid-CUmJniwF.js → Grid-eqZxtRIA.js} +1 -1
- package/storybook-static/assets/{Grid.stories-CsohhjMJ.js → Grid.stories-DAGg0GWi.js} +1 -1
- package/storybook-static/assets/{GridContainer-DfZnU_h-.js → GridContainer-B9JaLUGE.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Bdg7E1B6.js → ImageCropper.stories-W76XOOMv.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DEsg7Nf5.js → ImageRenderer-DYg7BkPO.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-C2uPYFbK.js → ImageRenderer.stories-rgJV0OBp.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-qFIo_3jG.js → ImageView.stories-D9h6sg3j.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D6RoxWRG.js → ImageViewer.stories-Bd0WJOp1.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DEVRfnpp.js → ImageViewerRuntime-DOjvjbv0.js} +1 -1
- package/storybook-static/assets/Input-7N70tL0u.js +3 -0
- package/storybook-static/assets/{Input-CXSVW4qb.js → Input-BxrxwNyD.js} +1 -1
- package/storybook-static/assets/{Input.stories-CKUo8mda.js → Input.stories-Df1j802b.js} +1 -1
- package/storybook-static/assets/{InputDateTime-CBgevl2k.js → InputDateTime-UdemHZXV.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-Dc_yRirT.js → InputDateTime.stories-yRwAe5_5.js} +1 -1
- package/storybook-static/assets/{InputFile-VkGuvstd.js → InputFile-5LpFR1Fq.js} +1 -1
- package/storybook-static/assets/{InputFile-BX9qIipq.js → InputFile-DDhf7A_J.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-VernHNAn.js → InputFile.stories-BVDT-BAx.js} +1 -1
- package/storybook-static/assets/{InputFiles-BpSb2G11.js → InputFiles-CgM2BwNO.js} +1 -1
- package/storybook-static/assets/{InputFiles-CRFuNd-6.js → InputFiles-D3CPIXiK.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CfrGV2lA.js → InputFiles.stories-XMHBA9Fn.js} +1 -1
- package/storybook-static/assets/{InputFilesList-BoL4jQmC.js → InputFilesList-DSivq9iT.js} +1 -1
- package/storybook-static/assets/{InputImage-BKfXCZHx.js → InputImage-BG_QyAh3.js} +1 -1
- package/storybook-static/assets/{InputImage-BcUm7aKp.js → InputImage-CY0A9Xz-.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-l1xnaTXn.js → InputImage.stories-DiGXytZU.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-DKix-b3k.js → InteractiveComponents-Bf9KitNR.js} +5 -5
- package/storybook-static/assets/{InteractiveComponents.stories-CK118Tbj.js → InteractiveComponents.stories-TwALUGGN.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-Ca57uusp.js → LayoutPicker-BLrNe8g_.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BqI2-D2r.js → LayoutPicker-MhA9N4WI.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BDRBBnj-.js → LayoutPicker.stories-BCME5Ogr.js} +1 -1
- package/storybook-static/assets/{Listbox-lrvI9Fx9.js → Listbox-B8F2xWvs.js} +1 -1
- package/storybook-static/assets/{Listbox-D_Qgzkw1.js → Listbox-y_3VijHU.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-Djb1uju9.js → Listbox.stories-mp0p0NpO.js} +1 -1
- package/storybook-static/assets/{Modal-BpqYaQXu.js → Modal-DgEV0vBs.js} +1 -1
- package/storybook-static/assets/{Modal-CLZFIZH2.js → Modal-qIsW7BkG.js} +1 -1
- package/storybook-static/assets/{Modal.stories-DNpMq9oL.js → Modal.stories-CQ-Hn4GK.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DMlNCo5h.js → ModalManagerProvider-DEoq4q_O.js} +1 -1
- package/storybook-static/assets/MultiSelect-D-6XHQUG.js +79 -0
- package/storybook-static/assets/{MultiSelect-C593f3VV.js → MultiSelect-PGooEkAK.js} +1 -1
- package/storybook-static/assets/MultiSelect.stories-B0JzMViN.js +81 -0
- package/storybook-static/assets/MultiSelectCore-B0VbnEBc.js +3 -0
- package/storybook-static/assets/{NoData-Bvl_1jH4.js → NoData-DCuuvSoD.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CdPm_hcB.js → NotificationsHost-CWqG91Yh.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Bo_dwZZe.js → NotificationsHost.stories-CEp-AppV.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-BVlJ8U90.js → ODataMultiSelect-CwVneYzi.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-CqHpctYU.js → ODataMultiSelect.stories-BRnVOZsK.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BCl-z6Sg.js → ODataSelect-DyKTFqk7.js} +1 -1
- package/storybook-static/assets/ODataSelect.stories-B-3GaeU4.js +148 -0
- package/storybook-static/assets/{ODataTreeMultiSelect-1CrmEPOx.js → ODataTreeMultiSelect-16xNi9qI.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-B2YMNMyr.js → ODataTreeMultiSelect.stories-DI9tH2qD.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-BqP9H4QH.js → ODataTreeSelect-Dk262plK.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-x_GCdGW8.js → ODataTreeSelect.stories-DfaL0dci.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-B1H-Yg0P.js → OneStepScroller-DI8qlm5c.js} +1 -1
- package/storybook-static/assets/{Option-ChGr-plg.js → Option-CG3bU2cY.js} +1 -1
- package/storybook-static/assets/{OptionButton-D6mT04a1.js → OptionButton-DF0E8aU5.js} +1 -1
- package/storybook-static/assets/{OptionContent-CXc6K3fK.js → OptionContent-BZ3FiJQ4.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-D0p7mbft.js → OptionContentContainer-CyI5IfqU.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CpnYgcOA.js → PeriodSelect-_gAbt3E6.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Bm9WdjpG.js → PeriodSelect-uR-Xk4vQ.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-4Im6GLjq.js → PeriodSelect.stories-D-Lp7QtA.js} +1 -1
- package/storybook-static/assets/PickerField-CByAoAAO.js +1 -0
- package/storybook-static/assets/{PickerTriggerActions-BCupttoF.js → PickerTriggerActions-CYM-UvRz.js} +1 -1
- package/storybook-static/assets/{Popover-CbgP8DJy.js → Popover-CRcVoLur.js} +1 -1
- package/storybook-static/assets/{Popover-CCHTXorF.js → Popover-CdnsB1ss.js} +1 -1
- package/storybook-static/assets/{Popover.stories-zZ2fYcQb.js → Popover.stories-Dxdt7Jc5.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D-Xf5CL3.js → PresetRangeDateInput-BQkK3Nmd.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-cmWbFoHz.js → PresetRangeDateInput-BmAGj8ye.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-C3VxU77P.js → PresetRangeDateInput.stories-CUIwCB6T.js} +1 -1
- package/storybook-static/assets/{PresetSelect-BmTJNeUt.js → PresetSelect-C7HG9CjN.js} +2 -2
- package/storybook-static/assets/{README-Bl2m1JMK.js → README-9DTI05kd.js} +1 -1
- package/storybook-static/assets/{README-DEOe-D4O.js → README-B-ihyEBx.js} +1 -1
- package/storybook-static/assets/{README-B_TP46xP.js → README-B0iHgO_3.js} +1 -1
- package/storybook-static/assets/{README-DcMAIy3x.js → README-B1GSwjas.js} +1 -1
- package/storybook-static/assets/{README-lHhj1ioe.js → README-BAjs7T_d.js} +1 -1
- package/storybook-static/assets/{README-BcSaq4c4.js → README-BEYMpavt.js} +1 -1
- package/storybook-static/assets/{README-DVPc9Io_.js → README-BL0-uTlP.js} +1 -1
- package/storybook-static/assets/{README-EmDsFxzc.js → README-BR8bdUjV.js} +1 -1
- package/storybook-static/assets/{README-jg6CIybs.js → README-BUnl1FiN.js} +1 -1
- package/storybook-static/assets/{README-BC4nu9of.js → README-BbUo3mGT.js} +1 -1
- package/storybook-static/assets/{README-BiyBf-O3.js → README-Bdir2bPK.js} +1 -1
- package/storybook-static/assets/{README-BMXu-jQk.js → README-BmwSZfOQ.js} +1 -1
- package/storybook-static/assets/{README-IkL3xuvr.js → README-BquP2lux.js} +1 -1
- package/storybook-static/assets/{README-Cu9QJjVK.js → README-BurB0dhj.js} +1 -1
- package/storybook-static/assets/{README-DLtEU6xV.js → README-ByIhL9zr.js} +1 -1
- package/storybook-static/assets/{README-DFF21yas.js → README-ByT9u_7g.js} +1 -1
- package/storybook-static/assets/{README-BkJ_PjJk.js → README-C41zKsq6.js} +1 -1
- package/storybook-static/assets/{README-HRwASuVm.js → README-C5-oc7fP.js} +1 -1
- package/storybook-static/assets/{README-CnX5IOsQ.js → README-C7NhXX-n.js} +1 -1
- package/storybook-static/assets/{README-T35eDlrl.js → README-C8jcwgeL.js} +1 -1
- package/storybook-static/assets/{README-DkgiAGPo.js → README-CNnGqdkH.js} +1 -1
- package/storybook-static/assets/{README-B7kN5fdq.js → README-CQlujiXR.js} +1 -1
- package/storybook-static/assets/{README-BZW-Ku8G.js → README-CTBkJ27k.js} +1 -1
- package/storybook-static/assets/{README-BsvaCxyJ.js → README-CTGZXXVP.js} +1 -1
- package/storybook-static/assets/{README-B3bdpv3F.js → README-CUghXL33.js} +1 -1
- package/storybook-static/assets/{README-xMu2rAZ4.js → README-CiJ5wkhQ.js} +1 -1
- package/storybook-static/assets/{README-CaZGDS4o.js → README-CoENtXo_.js} +1 -1
- package/storybook-static/assets/{README-UcG-T3oc.js → README-CoQeAVdv.js} +1 -1
- package/storybook-static/assets/{README-k2-wWcjY.js → README-CpJmZHQJ.js} +1 -1
- package/storybook-static/assets/{README-zF7TglyH.js → README-CtZBJdo2.js} +1 -1
- package/storybook-static/assets/{README-BfbEWAVW.js → README-CvP9yRMR.js} +1 -1
- package/storybook-static/assets/{README-CLTYPp6T.js → README-D-urpNSn.js} +1 -1
- package/storybook-static/assets/{README-3VGZSgWz.js → README-DAH3lVWd.js} +1 -1
- package/storybook-static/assets/{README-CXLnU8PY.js → README-DCWk-Vga.js} +1 -1
- package/storybook-static/assets/{README-5uy1ulgc.js → README-DMZYAdN0.js} +1 -1
- package/storybook-static/assets/{README-C_zVigpw.js → README-DNrPuueH.js} +1 -1
- package/storybook-static/assets/{README-D7IHIZJQ.js → README-DQ1aeQ_i.js} +1 -1
- package/storybook-static/assets/{README-vCy3YlCq.js → README-DTMZk60G.js} +1 -1
- package/storybook-static/assets/{README-CwqRXSIJ.js → README-DY7lgi4q.js} +1 -1
- package/storybook-static/assets/{README-Bc63jJ_g.js → README-DaaS2c7L.js} +1 -1
- package/storybook-static/assets/{README-Dv4LnFqu.js → README-De3j71sQ.js} +1 -1
- package/storybook-static/assets/{README-DnkVTJ7s.js → README-DevTRU4A.js} +1 -1
- package/storybook-static/assets/{README-CZciBX1A.js → README-DfRan6KR.js} +1 -1
- package/storybook-static/assets/{README-C4vu077M.js → README-Dhptn6UE.js} +1 -1
- package/storybook-static/assets/{README-BRE26E-6.js → README-DxTRj-9a.js} +1 -1
- package/storybook-static/assets/{README-Bfp-2y9L.js → README-DyKegKG_.js} +1 -1
- package/storybook-static/assets/{README-BW8ukk_3.js → README-KCmlmH_Z.js} +1 -1
- package/storybook-static/assets/{README-Iwf47F8s.js → README-VNB_Dj5F.js} +1 -1
- package/storybook-static/assets/{README-DXajBW2j.js → README-_8pxMMC7.js} +1 -1
- package/storybook-static/assets/{README-BeMdGWkW.js → README-j-Czw7ww.js} +1 -1
- package/storybook-static/assets/{README-DEtA9vXg.js → README-n4utUGcX.js} +1 -1
- package/storybook-static/assets/{README-Bf9aqOSG.js → README-xrMkjHIm.js} +1 -1
- package/storybook-static/assets/{README-CjwMWiHf.js → README-zlaX5PMG.js} +1 -1
- package/storybook-static/assets/{RadioButton-Cy_jQtud.js → RadioButton-CDIyYuS9.js} +1 -1
- package/storybook-static/assets/{RadioButton-BBfQWcy3.js → RadioButton-DV8K96H6.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-9V4bon68.js → RadioButton.stories-CRNqKsyz.js} +1 -1
- package/storybook-static/assets/{RadioGroup-TwFpisuE.js → RadioGroup-BnYFRvmn.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BndgLwX8.js → RadioGroup-CIIw962S.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DJLxesgz.js → RadioGroup.stories-K4AidbLa.js} +1 -1
- package/storybook-static/assets/{Scrollable-DtB02dAG.js → Scrollable-BI1k9ogH.js} +1 -1
- package/storybook-static/assets/{Scrollable-pBI6H_we.js → Scrollable-DAghtYuE.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-CahJ5rFA.js → Scrollable.stories-B6Doakiv.js} +1 -1
- package/storybook-static/assets/Select-BNHTGJqG.js +66 -0
- package/storybook-static/assets/Select-BlnKV8rc.js +12 -0
- package/storybook-static/assets/Select.stories-DZPAoL4J.js +86 -0
- package/storybook-static/assets/{Separator-BQlVHMcy.js → Separator-BCUzEQRV.js} +1 -1
- package/storybook-static/assets/{Separator-BdOz35ux.js → Separator-CiETy9yM.js} +1 -1
- package/storybook-static/assets/{Separator.stories-DRmR0Kda.js → Separator.stories-DTzurpM_.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-ClSz_VvD.js → SerializableSelect-CnQurr7F.js} +1 -1
- package/storybook-static/assets/SerializableSelect.stories-qJaV_fjJ.js +73 -0
- package/storybook-static/assets/{ShimmerText-CuhrU7uk.js → ShimmerText-I292TqXa.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-Djb6DvbN.js → ShimmerText.stories-AKqXqp1k.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-hC1Ft3qs.js → SingleDateTimeInput-BrNi93tH.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-C4jzvJ05.js → SingleDateTimeInput-DSn0vaW-.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-D-HmSpnz.js → SingleDateTimeInput.stories-C910kkYc.js} +1 -1
- package/storybook-static/assets/{Slider-u0qKNrgI.js → Slider-CXA5Zwku.js} +1 -1
- package/storybook-static/assets/{Slider-WLUfmHyw.js → Slider-DO460-pY.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CX8fS5Ax.js → Slider.stories-B874XxeK.js} +1 -1
- package/storybook-static/assets/{SliderInput-BEirf0Ys.js → SliderInput-DTidinPI.js} +1 -1
- package/storybook-static/assets/{SliderInput-ibTyal5l.js → SliderInput-DsV8o7Yy.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-xuycnRN_.js → SliderInput.stories-CDWNO90y.js} +1 -1
- package/storybook-static/assets/{Sortable-p0kUHa8E.js → Sortable-CML34YIF.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BdCtmfnr.js → Sortable.stories-C-_fvnHM.js} +1 -1
- package/storybook-static/assets/{Splitter-BzAg1cZ0.js → Splitter-BcuA2qce.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-C5zZ4lHf.js → Splitter.stories-CA0-L_Ja.js} +1 -1
- package/storybook-static/assets/StateSelect--FDEb4-v.js +4 -0
- package/storybook-static/assets/{StateSelect-CyjHfKNv.js → StateSelect-B23bb_PO.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-D94g21N9.js → StateSelect.stories-CEVPThtC.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-ylfiroPh.js → StatusIndicator-BbTCS7Ku.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-BB7y4KGW.js → StatusIndicator.stories-BIps_Ecm.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-BwuTZAGa.js → StringToggle.stories-vhOfzslq.js} +1 -1
- package/storybook-static/assets/{Switch-BXWiUOXs.js → Switch-DibS4nSc.js} +1 -1
- package/storybook-static/assets/{Switch-DRLWRp0P.js → Switch-jJgwtWFK.js} +1 -1
- package/storybook-static/assets/{Switch.stories-taC_bi5a.js → Switch.stories-Cvky3KQz.js} +1 -1
- package/storybook-static/assets/{Table-BYiIQfjA.js → Table-DcNGLEI6.js} +1 -1
- package/storybook-static/assets/{Table.stories-B9u81cAN.js → Table.stories-DbEzudxD.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-CG0ULNok.js → TableEditor.stories-Be9nCkds.js} +1 -1
- package/storybook-static/assets/{Tabs-BYp06IN2.js → Tabs-CTL4MnkZ.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-BCkUYsqs.js → Tabs.stories-CIVbz7kW.js} +1 -1
- package/storybook-static/assets/{TabsBox-DBm2a1iA.js → TabsBox-C9g1p4du.js} +1 -1
- package/storybook-static/assets/{TagInput-D9gedxBU.js → TagInput-DuJLeiyT.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-6eOGQ16t.js → TagInput.stories-BLVFWr-T.js} +1 -1
- package/storybook-static/assets/{Text-CcgH9LXI.js → Text-Cr_TUUgL.js} +1 -1
- package/storybook-static/assets/{Textarea-DXOTj2Y7.js → Textarea-BImI6Q6v.js} +1 -1
- package/storybook-static/assets/{Textarea-aGrLpQXu.js → Textarea-DGaanGLG.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-BwqxG2lk.js → Textarea.stories-DvQ2dDNh.js} +1 -1
- package/storybook-static/assets/{TimePanel-DroAbbvD.js → TimePanel-Cg2G5Hab.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DgU6ia4A.js → TimePanel.stories-qy5mb3YN.js} +1 -1
- package/storybook-static/assets/{Toggle-BUSzQ1ww.js → Toggle-CroC7YOK.js} +1 -1
- package/storybook-static/assets/{Toggle-B7MbU9HB.js → Toggle-Dj8Ic_Ak.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BYU9hS62.js → Toggle.stories-CmyyubM8.js} +1 -1
- package/storybook-static/assets/TreeMultiSelect-BHNmPW50.js +1 -0
- package/storybook-static/assets/TreeMultiSelect-DBQYLjnA.js +22 -0
- package/storybook-static/assets/TreeMultiSelect.stories-BNsE1zgF.js +68 -0
- package/storybook-static/assets/TreePickerBase-ZEBy3EVT.js +76 -0
- package/storybook-static/assets/TreeSelect-T7G2pkyK.js +1 -0
- package/storybook-static/assets/TreeSelect-aiPeW2uJ.js +19 -0
- package/storybook-static/assets/TreeSelect.stories-E6ObkYJe.js +40 -0
- package/storybook-static/assets/{TreeTable-AIcYVdfl.js → TreeTable-C0ORe5Pe.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-BKbbLMK7.js → TreeTable.stories-PtGT_1X5.js} +1 -1
- package/storybook-static/assets/{blocks-Bdsl8TP-.js → blocks-DR4JL0hD.js} +3 -3
- package/storybook-static/assets/{check-DGqyuB4O.js → check-PtABqMc1.js} +1 -1
- package/storybook-static/assets/{chevron-down-BykqjXRq.js → chevron-down-BaujB0G_.js} +1 -1
- package/storybook-static/assets/{chevron-left-Z5uCO076.js → chevron-left-C1SZ4PrE.js} +1 -1
- package/storybook-static/assets/{chevron-right-C8yfwmkk.js → chevron-right-CfCjHN8b.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-hfBk2z5K.js → chunk-W22LQPXL-Cis7lFT9.js} +1 -1
- package/storybook-static/assets/{circle-alert-C9sxb8DT.js → circle-alert-Mymt-6wl.js} +1 -1
- package/storybook-static/assets/{circle-check-BLrYJ_8h.js → circle-check-DzqMvzJX.js} +1 -1
- package/storybook-static/assets/{components-xYnqEbBt.js → components-Do91qDh3.js} +3 -3
- package/storybook-static/assets/{contextMenu-C-b4jBpY.js → contextMenu-8NKKgKoy.js} +1 -1
- package/storybook-static/assets/{download-g1fk8W6J.js → download-Cn6H3Bnv.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-cCWtY5RA.js → floating-ui.react-BFqa49jG.js} +1 -1
- package/storybook-static/assets/{foundationApi-Ci5vPKh_.js → foundationApi-CChPwNx-.js} +1 -1
- package/storybook-static/assets/{foundationLib-DNlIsEyf.js → foundationLib-ClEyfTpa.js} +1 -1
- package/storybook-static/assets/{hooks-XqeLihmr.js → hooks-DUKyfcb_.js} +1 -1
- package/storybook-static/assets/{iframe-ltYEol2F.js → iframe-1Nw_zWMi.js} +3 -3
- package/storybook-static/assets/iframe-BgBwFMGW.js +1 -0
- package/storybook-static/assets/{info-CBSXRv7d.js → info-DMI56qGy.js} +1 -1
- package/storybook-static/assets/{odata-Dd_3_5NS.js → odata-D9M3xPIL.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-3lOfs9T6.js → odataStoryFixtures-eHJgW7OK.js} +1 -1
- package/storybook-static/assets/{react-BxWB81Qy.js → react-DidV4ORc.js} +1 -1
- package/storybook-static/assets/{refresh-cw-FKHfW9eG.js → refresh-cw-B1ChlhvT.js} +1 -1
- package/storybook-static/assets/{settings-2-Cz1PtqGa.js → settings-2-BxwqnB9r.js} +1 -1
- package/storybook-static/assets/{sortable-BelHSus7.js → sortable-DMBM69Jm.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-gGot_qSq.js → syntaxhighlighter-QEQV7K2Y-BJZNAUo-.js} +1 -1
- package/storybook-static/assets/{trash-2-BT2kW3r-.js → trash-2-B768_PZU.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CPiJJHYc.js → triangle-alert-B8H-k2Bq.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-bPN0T_Xm.js → useODataSelectBase-BKAZcf4R.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-CIpE4LZu.js → useODataTreeData-Bxlcmpg8.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-OTz4Oze6.js → usePickerQuery-DJj2HmX9.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-vNC5e_t0.js → usePickerTriggerController-CiD33ccS.js} +2 -2
- package/storybook-static/assets/{x-BdAuXjBq.js → x-Dt9SO3SL.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/input-CuRK9Vbz.js.map +0 -1
- package/dist/chunks/picker-SJXnHwsj.js.map +0 -1
- package/dist/chunks/select--oIrv7SC.js +0 -357
- package/dist/chunks/select--oIrv7SC.js.map +0 -1
- package/storybook-static/assets/Input-b2F0zrLw.js +0 -3
- package/storybook-static/assets/MultiSelect-DmC3DaMc.js +0 -76
- package/storybook-static/assets/MultiSelect.stories-R6JTKnFI.js +0 -64
- package/storybook-static/assets/MultiSelectCore-BaRmQrD-.js +0 -3
- package/storybook-static/assets/ODataSelect.stories-Cm-Xkq40.js +0 -148
- package/storybook-static/assets/PickerField-w1JCZyzA.js +0 -1
- package/storybook-static/assets/Select-BOnv-Uuv.js +0 -63
- package/storybook-static/assets/Select-CClfxa48.js +0 -12
- package/storybook-static/assets/Select.stories-C0X5pvUk.js +0 -69
- package/storybook-static/assets/SerializableSelect.stories-DozN_Quy.js +0 -73
- package/storybook-static/assets/StateSelect-bHA1Vf6z.js +0 -4
- package/storybook-static/assets/TreeMultiSelect-BhFYUbr0.js +0 -1
- package/storybook-static/assets/TreeMultiSelect-CZIyMaIZ.js +0 -20
- package/storybook-static/assets/TreeMultiSelect.stories-DG_mdSkQ.js +0 -60
- package/storybook-static/assets/TreePickerBase-CbULuQpp.js +0 -76
- package/storybook-static/assets/TreeSelect-CMSolQHr.js +0 -17
- package/storybook-static/assets/TreeSelect-Cu1BsepL.js +0 -1
- package/storybook-static/assets/TreeSelect.stories-B2J0N4ke.js +0 -32
- package/storybook-static/assets/iframe-TsWsvoxA.js +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./TreeMultiSelect-BHNmPW50.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-DXHh9GL3.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RequiredWithError:()=>w,RightEdgeColumns:()=>C,__namedExportsOrder:()=>T,default:()=>g});function d({args:e,updateArgs:t}){return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:Object.values(n).some(e=>e.length>0)?void 0:e.fieldError})}}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var f,p,m,h,g,_,v,y,b,x,S,C,w,T;function E(){return(E=e((()=>{r(),a(),s(),f=n(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m=i((e,t)=>(0,f.jsx)(d,{args:e,updateArgs:t})),h=i((e,t)=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(d,{args:e,updateArgs:t})})})),g={title:`UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узлов как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранных узлов под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Контролируемое отображение выбранных узлов по codeKey.`,control:!1},onChange:{description:`Вызывается при commit набора узлов.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},optionsLayout:{description:`Способ показа: дерево или адаптивные колонки.`,control:`inline-radio`,options:[`tree`,`columns`]},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},_={render:m,args:{value:{OWNER:[`P0001`]}}},v={render:m,args:{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,value:{REGION:[`R01`]}}},y={render:m,args:{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,value:{BRANCH:[`B0101`],OWNER:[`P0004`]}}},b={render:m,args:{label:`Раскрыты два уровня`,description:`Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.`,defaultExpandedCodeKeys:[`REGION`,`BRANCH`]}},x={render:m,args:{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,value:{BRANCH:[`B0101`]}}},S={render:m,args:{label:`Защита начала большой группы`,description:`Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.`,optionsLayout:`columns`,nodes:c}},C={render:h,args:{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p}},w={name:`Обязательное поле с ошибкой`,render:m,args:{required:!0,fieldError:`Выберите хотя бы один узел.`,value:{}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
render: renderTreeMultiSelectStory,
|
|
3
|
+
args: {
|
|
4
|
+
value: {
|
|
5
|
+
OWNER: ["P0001"]
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
|
|
9
|
+
render: renderTreeMultiSelectStory,
|
|
10
|
+
args: {
|
|
11
|
+
label: "Компрессия parent",
|
|
12
|
+
description: "Когда выбран весь subtree, наружу может уйти только родительский узел.",
|
|
13
|
+
value: {
|
|
14
|
+
REGION: ["R01"]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}`,...v.parameters?.docs?.source}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
|
|
18
|
+
render: renderTreeMultiSelectStory,
|
|
19
|
+
args: {
|
|
20
|
+
label: "Смешанный выбор",
|
|
21
|
+
description: "Пример mixed frontier по соседним уровням.",
|
|
22
|
+
value: {
|
|
23
|
+
BRANCH: ["B0101"],
|
|
24
|
+
OWNER: ["P0004"]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
|
|
28
|
+
render: renderTreeMultiSelectStory,
|
|
29
|
+
args: {
|
|
30
|
+
label: "Раскрыты два уровня",
|
|
31
|
+
description: "Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.",
|
|
32
|
+
defaultExpandedCodeKeys: ["REGION", "BRANCH"]
|
|
33
|
+
}
|
|
34
|
+
}`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
35
|
+
render: renderTreeMultiSelectStory,
|
|
36
|
+
args: {
|
|
37
|
+
label: "Все уровни в столбцах",
|
|
38
|
+
description: "Popover подбирает число столбцов по количеству опций и доступному viewport.",
|
|
39
|
+
optionsLayout: "columns",
|
|
40
|
+
value: {
|
|
41
|
+
BRANCH: ["B0101"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
45
|
+
render: renderTreeMultiSelectStory,
|
|
46
|
+
args: {
|
|
47
|
+
label: "Защита начала большой группы",
|
|
48
|
+
description: "Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.",
|
|
49
|
+
optionsLayout: "columns",
|
|
50
|
+
nodes: orphanProtectionTreeNodes
|
|
51
|
+
}
|
|
52
|
+
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
53
|
+
render: renderRightEdgeTreeMultiSelectStory,
|
|
54
|
+
args: {
|
|
55
|
+
label: "Контрол у правой границы",
|
|
56
|
+
description: "Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.",
|
|
57
|
+
optionsLayout: "columns",
|
|
58
|
+
nodes: rightEdgeTreeNodes
|
|
59
|
+
}
|
|
60
|
+
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
61
|
+
name: "Обязательное поле с ошибкой",
|
|
62
|
+
render: renderTreeMultiSelectStory,
|
|
63
|
+
args: {
|
|
64
|
+
required: true,
|
|
65
|
+
fieldError: "Выберите хотя бы один узел.",
|
|
66
|
+
value: {}
|
|
67
|
+
}
|
|
68
|
+
}`,...w.parameters?.docs?.source}}},T=[`Basic`,`ParentCompression`,`MixedSelection`,`FirstTwoLevelsExpanded`,`BalancedColumns`,`OrphanProtectionColumns`,`RightEdgeColumns`,`RequiredWithError`]})))()}export{S as a,C as c,y as i,u as l,_ as n,v as o,b as r,w as s,x as t,E as u};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-right-CfCjHN8b.js";import{n as i,t as a}from"./CheckBox-BBPasWSk.js";import{n as o}from"./iframe-1Nw_zWMi.js";import{a as s,i as c,r as l,s as u,t as d}from"./utils-tg3ibbzi.js";import{n as f,t as p}from"./OptionContent-BZ3FiJQ4.js";import{l as m,o as h}from"./Input-7N70tL0u.js";import{n as g,t as ee}from"./PickerField-CByAoAAO.js";import{c as _,i as v,l as te,n as ne,r as re,s as ie,t as ae,u as y}from"./usePickerTriggerController-CiD33ccS.js";import{a as oe,n as se,o as ce,t as le}from"./Option-CG3bU2cY.js";import{i as ue,n as de,r as fe,t as pe}from"./usePickerQuery-DJj2HmX9.js";import{n as me,t as he}from"./OptionButton-DF0E8aU5.js";import{n as b,t as ge}from"./OptionContentContainer-CyI5IfqU.js";function x(e,t){return`${e}::${t}`}function _e(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=0,l=(e,u)=>{t.set(e.id,e),n.set(e.id,u),i.set(e.id,c++);let d=x(e.codeKey,e.value);a.set(d,e.id);let f=o.get(d);f?f.push(e.id):o.set(d,[e.id]);let p=(e.children??[]).map(e=>e.id);r.set(e.id,p);for(let t of e.children??[])l(t,e.id);s.set(e.id,e.disabled===!0||p.some(e=>s.get(e)===!0))};for(let t of e)l(t);return{rootIds:e.map(e=>e.id),nodeById:t,parentById:n,childrenById:r,preorderIndexById:i,nodeIdByCodeValue:a,nodeIdsByCodeValue:o,subtreeContainsDisabledById:s}}function S(e,t){let n=t.nodeById.get(e);return n?t.nodeIdsByCodeValue.get(x(n.codeKey,n.value))??[]:[]}function ve(e,t){if(e)return t.nodeIdByCodeValue.get(x(e.codeKey,e.value))}function ye(e,t){let n=new Set;if(!e)return n;for(let[r,i]of Object.entries(e))for(let e of i)for(let i of t.nodeIdsByCodeValue.get(x(r,e))??[])n.add(i);return A(n,t)}function C(e,t){let n=[...e].sort((e,n)=>(t.preorderIndexById.get(e)??2**53-1)-(t.preorderIndexById.get(n)??2**53-1)),r={},i=new Set;for(let e of n){let n=t.nodeById.get(e);if(!n)continue;let a=x(n.codeKey,n.value);i.has(a)||(r[n.codeKey]=r[n.codeKey]??[],r[n.codeKey].push(n.value),i.add(a))}return r}function w(e,t){let n=[],r=t.parentById.get(e);for(;r;)n.push(r),r=t.parentById.get(r);return n}function T(e,t,n){let r=n.parentById.get(e);for(;r;){if(r===t)return!0;r=n.parentById.get(r)}return!1}function be(e,t){let n=S(e,t);return!n.length||n.some(e=>{let n=t.nodeById.get(e);return!n||n.selectionBehavior===`descendants`||t.subtreeContainsDisabledById.get(e)===!0})?!1:!n.some((e,r)=>n.some((n,i)=>r!==i&&(T(e,n,t)||T(n,e,t))))}function xe(e,t){return be(e,t)?S(e,t):[e]}function E(e,t,n){for(let r of[...e])T(r,t,n)&&e.delete(r)}function D(e,t,n){let r=[t];for(let t=0;t<r.length;t+=1){let i=r[t];if(i){r.push(...n.childrenById.get(i)??[]);for(let t of S(i,n))e.delete(t)}}}function O(e,t,n){if(t.has(e))return!0;if(n.nodeById.get(e)?.disabled)return!1;let r=n.childrenById.get(e)??[];return r.length!==0&&r.every(e=>O(e,t,n))}function k(e,t,n){if(!n.nodeById.has(e))return!1;let r=t.childrenById.get(e)??[],i=n.childrenById.get(e)??[];return r.length===i.length&&r.every((e,r)=>i[r]===e&&k(e,t,n))}function A(e,t){let n=new Set(e);for(let e of[...n])if(t.nodeById.get(e)?.selectionBehavior===`descendants`){n.delete(e);for(let r of P(t,t.childrenById.get(e)??[]))n.add(r)}for(let e of[...n])w(e,t).some(e=>n.has(e))&&n.delete(e);let r=[...t.nodeById.keys()].sort((e,n)=>(t.preorderIndexById.get(n)??0)-(t.preorderIndexById.get(e)??0));for(let e of r){let r=t.childrenById.get(e)??[];if(!(r.length===0||n.has(e)||t.nodeById.get(e)?.disabled||t.nodeById.get(e)?.selectionBehavior===`descendants`)&&r.every(e=>O(e,n,t))){let r=S(e,t);if(be(e,t)&&r.every(e=>{let r=t.nodeById.get(e);return r&&!r.disabled&&r.selectionBehavior!==`descendants`&&O(e,n,t)}))for(let e of r)E(n,e,t),n.add(e)}}return n}function Se(e,t,n){let r=n.parentById.get(t);for(;r;){if(e.has(r)){for(let t of S(r,n))if(e.has(t)){e.delete(t);for(let r of P(n,n.childrenById.get(t)??[]))e.add(r)}return!0}r=n.parentById.get(r)}return!1}function j(e,t,n){return t.has(e)?!0:w(e,n).some(e=>t.has(e))}function M(e,t,n,r){let i=n.childrenById.get(e)??[];if(t.has(e))return r.selectedIds.add(e),{selected:!0,partial:!1};if(i.length===0)return{selected:!1,partial:!1};let a=i.map(e=>M(e,t,n,r)),o=a.every(e=>e.selected&&!e.partial),s=a.some(e=>e.selected||e.partial);return o?(r.selectedIds.add(e),{selected:!0,partial:!1}):s?(r.partialIds.add(e),{selected:!1,partial:!0}):{selected:!1,partial:!1}}function N(e,t){let n={selectedIds:new Set,partialIds:new Set};for(let r of t.rootIds)M(r,e,t,n);return n}function P(e,t=e.rootIds){let n=t=>{let r=e.nodeById.get(t),i=(e.childrenById.get(t)??[]).map(n),a=i.flatMap(e=>e.selectedIds),o=r?.disabled===!0||i.some(e=>e.containsDisabled);if(!r||r.disabled)return{containsDisabled:!0,selectedIds:a};if(r.selectionBehavior===`descendants`)return{containsDisabled:o,selectedIds:a};let s=!be(t,e);return o||s?{containsDisabled:!0,selectedIds:a}:{containsDisabled:!1,selectedIds:[t]}};return new Set(t.flatMap(e=>n(e).selectedIds))}function F(e,t,n,r){let i=ye(e,n),a=r!==void 0&&!k(t,n,r);if(!a&&O(t,i,n))return D(i,t,n),C(A(i,n),n);let o=e=>{if(i.has(e)){D(i,e,n);return}if(O(e,i,n)){D(i,e,n);return}if(j(e,i,n)){Se(i,e,n)&&(j(e,i,n)||O(e,i,n)?o(e):D(i,e,n));return}for(let t of xe(e,n))E(i,t,n),i.add(t)},s=e=>{if(!r?.nodeById.has(e))return[];if(k(e,n,r)){let t=[...P(n,[e])];return t.length>0?t:j(e,i,n)||O(e,i,n)?[e]:[]}return(r.childrenById.get(e)??[]).flatMap(s)},c=a?s(t):[...P(n,[t])],l=c.length===0&&(j(t,i,n)||O(t,i,n))?[t]:c,u=l.length>0&&l.every(e=>j(e,i,n)||O(e,i,n));for(let e of l){let t=j(e,i,n)||O(e,i,n);(u&&t||!u&&!t)&&o(e)}return C(A(i,n),n)}function I(e,t,n){let r=t.parentById.get(e);for(;r;)n.add(r),r=t.parentById.get(r)}function Ce(e,t){let n=new Set;for(let r of e)I(r,t,n);return n}function we(e,t,n){let r=new Set;for(let[i,a]of e.childrenById){if(a.length===0)continue;let o=e.nodeById.get(i);o&&(n.get(i)??t.has(o.codeKey))&&r.add(i)}return r}function Te(e,t,n){let r=(e.children??[]).map(e=>Te(e,t,n)).filter(e=>!!e);return!e.searchText.toLowerCase().includes(t)&&r.length===0?null:(r.length>0&&n.add(e.id),r.length===0?e:{...e,children:r})}function Ee(e,t){let n=t.trim().toLowerCase();if(!n)return{nodes:[...e],expandedIds:new Set};let r=new Set;return{nodes:e.map(e=>Te(e,n,r)).filter(e=>!!e),expandedIds:r}}function De(e,t){let n=[],r=(e,i,a)=>{let o=(e.children?.length??0)>0,s=o&&t.has(e.id);if(n.push({node:e,level:i,parentId:a,hasChildren:o,isExpanded:s,isLeaf:!o}),s)for(let t of e.children??[])r(t,i+1,e.id)};for(let t of e)r(t,0);return n}function Oe(){return(Oe=e((()=>{})))()}function ke(e){let t=[],n=0;for(;n<e.length;){let r=n+1;for(;r<e.length&&e[r]?.level!==0;)r+=1;t.push({startIndex:n,endIndexExclusive:r}),n=r}let r=t.map(({startIndex:e,endIndexExclusive:t})=>`${e}:${t}`).join(`|`);return{itemCount:e.length,groups:t,signature:`${e.length}|${r}`}}function L(e,t){return Number.isFinite(e)&&e>0?e:t}function Ae(e){let t=e.endIndexExclusive-e.startIndex;return Math.min(Pe,t)}function je(e,t){let n=Math.max(1,t),r=[],i=1,a=1,o=0;for(let t of e.groups){let e=Ae(t),s=n-a+1;a>1&&e>s&&(o+=s,i+=1,a=1);for(let e=t.startIndex;e<t.endIndexExclusive;e+=1)r[e]={column:i,row:a},a+=1,a>n&&(i+=1,a=1)}return{placements:r,usedColumnCount:r.length?Math.max(...r.map(e=>e.column)):1,intentionalGapCount:o}}function Me({descriptor:e,availableWidth:t,availableHeight:n,viewportWidth:r,viewportHeight:i,referenceWidth:a}){let o=Math.max(0,Math.floor(Number.isFinite(e.itemCount)?e.itemCount:0)),s=L(t,240),c=L(n,80),l=L(r,s+16),u=L(i,c),d=Math.max(1,Math.min(s,Math.max(1,l-16))),f=Math.max(1,Math.min(c,u-16)),p=Math.max(1,L(a,1)),m=Math.min(d,p),h=Math.max(1,Math.floor((d-R+V)/234)),g=Math.max(1,Math.min(H,h,o||1)),ee=e.groups.reduce((e,t)=>Math.max(e,Ae(t)),1);if(o===0)return{columnCount:1,rowCount:1,width:m,minWidth:m,maxHeight:f,placements:[]};let _,v=1/0;for(let t=1;t<=g;t+=1){let n=Math.max(ee,Math.ceil(o/t)),r=je(e,n);for(;r.usedColumnCount>t&&n<o;)n+=1,r=je(e,n);let i=r.usedColumnCount,a=Math.max(m,R+i*B+(i-1)*V),s=z+n*Ne,c=a/d,l=s/f,u=(i*n-o)/o,p=r.intentionalGapCount/o,h=Math.max(c,l)+.25*Math.abs(c-l)+.01*u+.02*p+.04*(i-1);h<v&&(v=h,_={columnCount:i,rowCount:n,width:Math.min(d,a),minWidth:m,maxHeight:f,placements:r.placements})}return _??{columnCount:1,rowCount:o,width:m,minWidth:m,maxHeight:f,placements:je(e,o).placements}}var R,z,B,V,Ne,H,Pe;function U(){return(U=e((()=>{R=16,z=48,B=224,V=10,Ne=32,H=6,Pe=3})))()}var W,Fe,G,Ie,Le,Re,ze,Be,Ve,He,Ue,We,K,q;function Ge(){return(Ge=e((()=>{W=`_6EH37F`,Fe=`UBll8Q`,G=`-y3RZP`,Ie=`ayLJ50`,Le=`_430vL2`,Re=`_2MFkGF`,ze=`JhnGSK`,Be=`_0cHzF8`,Ve=`o5NWnX`,He=`ibSd-S`,Ue=`lXezvv`,We=`FMlLGX`,K=`d2Zt7U`,q={treeNodeButton:W,treePopupHeader:Fe,treeColumns:G,treeColumnRow:Ie,treeColumnsPopupLayout:Le,treeColumnCheckBox:Re,treeNodeSelectionCell:ze,treeNodeActionCell:Be,treeIndent:Ve,treeExpander:He,treeExpanderPlaceholder:Ue,treeExpanderIcon:We,treeExpanderIconExpanded:K}})))()}function Ke({node:e,level:t,highlight:n,hasChildren:i,isExpanded:o,selected:c,partial:l,selectionMode:u,optionsLayout:d=`tree`,onToggleExpand:f,onToggleSelection:m,onActivate:h,actionRef:g}){let ee=d===`tree`,_=d===`columns`&&t===0,v=(0,J.jsx)(p,{text:e.label,code:e.code,searchText:n,emphasizeContent:_}),te=i?(0,J.jsx)(`span`,{className:q.treeExpander,"aria-hidden":`true`,onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation(),f?.()},"data-ui":`tree-select-expander`,"data-action":o?`collapse-tree-select-node`:`expand-tree-select-node`,children:(0,J.jsx)(r,{className:s(q.treeExpanderIcon,o&&q.treeExpanderIconExpanded)})}):(0,J.jsx)(`div`,{className:q.treeExpanderPlaceholder,"aria-hidden":`true`});return u===`multi`&&d===`tree`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{role:`gridcell`,className:q.treeNodeSelectionCell,children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),te,(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`${c?`Убрать`:`Добавить`} «${e.label}» ${c?`из выбора`:`в выбор`}`,onChange:()=>m?.()})})]}),(0,J.jsx)(`div`,{role:`gridcell`,className:q.treeNodeActionCell,children:(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,"aria-label":`Выбрать только «${e.label}»`,text:e.label,code:e.code,searchText:n,onMouseDown:e=>e.preventDefault(),onClick:h})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:q.treeIndent,style:{"--tree-level":t},"aria-hidden":`true`}),ee?te:null,u===`multi`?(0,J.jsx)(`div`,{className:q.treeColumnCheckBox,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,J.jsx)(a,{value:c,indeterminate:l,disabled:e.disabled,"aria-label":`Выбрать ${e.label}`,onChange:()=>m?.()})}):null,d===`tree`?(0,J.jsx)(ge,{className:q.treeNodeButton,children:v}):(0,J.jsx)(he,{ref:g,className:q.treeNodeButton,tabIndex:-1,disabled:e.disabled,text:e.label,code:e.code,searchText:n,emphasizeContent:_,onMouseDown:e=>e.preventDefault(),onClick:h})]})}var J;function qe(){return(qe=e((()=>{c(),n(),i(),me(),f(),b(),Ge(),J=o(),Ke.__docgenInfo={description:``,methods:[],displayName:`TreeNodeContent`,props:{node:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
2
|
+
id: string;
|
|
3
|
+
codeKey: string;
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
code?: string;
|
|
7
|
+
searchText: string;
|
|
8
|
+
children?: TreeSelectNode[];
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
|
|
11
|
+
}`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}},description:``},level:{required:!0,tsType:{name:`number`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},hasChildren:{required:!0,tsType:{name:`boolean`},description:``},isExpanded:{required:!0,tsType:{name:`boolean`},description:``},selected:{required:!0,tsType:{name:`boolean`},description:``},partial:{required:!0,tsType:{name:`boolean`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},onToggleExpand:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onToggleSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onActivate:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},actionRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}function Je({label:e,description:t,disabled:n,placeholder:r,size:i,nodes:a,selectedIds:o,partialIds:c,selectionMode:f,optionsLayout:p=`tree`,defaultExpandedCodeKeys:m,unavailableNodeIds:g,open:_,onOpenChange:re,bulkActions:ae,triggerMode:y=`display`,selectedSummary:se,selectedSummaryText:ce,query:ue,defaultQuery:pe,onQuery:me,onNodeActivate:he,onNodeToggleSelection:b,onClearSelection:ge,isLoading:x,error:S,fieldError:ve,required:ye}){let C=(0,Y.useRef)(null),w=(0,Y.useRef)(null),T=(0,Y.useRef)([]),[be,xe]=(0,Y.useState)(!1),[E,D]=(0,Y.useState)(),O=_!==void 0,k=O?_:be,[A,Se]=(0,Y.useState)(()=>new Map),M=y===`search`?f===`multi`?`search-multi`:`search-single`:`display`,N=(0,Y.useMemo)(()=>_e(a),[a]),P=(0,Y.useMemo)(()=>new Set(m),[m]),{query:F,setQuery:I,resetQueryOnClose:Te}=de({query:ue,defaultQuery:pe,onQuery:me,triggerMode:M}),Oe=e=>{k&&!e&&Te&&I(``),e||D(void 0),O||xe(e),re?.(e)},{nodes:L,expandedIds:Ae}=(0,Y.useMemo)(()=>Ee(a,F),[a,F]),je=(0,Y.useMemo)(()=>_e(L),[L]),R=F.trim().length>0?je:void 0,z=(0,Y.useMemo)(()=>Ce(o,N),[o,N]),B=(0,Y.useMemo)(()=>we(N,P,A),[P,A,N]),V=(0,Y.useMemo)(()=>new Set([...N.childrenById].filter(([,e])=>e.length>0).map(([e])=>e)),[N]),Ne=(0,Y.useMemo)(()=>p===`columns`?V:new Set([...B,...Ae,...z]),[V,B,p,Ae,z]),H=(0,Y.useMemo)(()=>De(L,Ne),[L,Ne]),Pe=(0,Y.useMemo)(()=>H.findIndex(e=>o.has(e.node.id)),[o,H]),U=(0,Y.useCallback)(e=>e.node.disabled===!0||g?.has(e.node.id)===!0,[g]),W=(0,Y.useMemo)(()=>ke(H),[H]),Fe=(0,Y.useCallback)(e=>{let t=Me({...e,descriptor:W}),n={};return t.placements.forEach((e,t)=>{n[`--tree-option-${t}-column`]=String(e.column),n[`--tree-option-${t}-row`]=String(e.row)}),{width:`${t.width}px`,minWidth:`${t.minWidth}px`,maxWidth:`${t.width}px`,maxHeight:`${t.maxHeight}px`,"--tree-column-count":String(t.columnCount),"--tree-row-count":String(t.rowCount),...n}},[W]),{activeIndex:G,context:Ie,floatingStyles:Le,getFloatingProps:Re,setReference:ze,setFloating:Be,setOptionRef:Ve,close:He,openList:Ue,toggleOpen:We,selectOption:K,handleReferenceKeyDown:Ge,handleFloatingKeyDown:J,getOptionId:qe,getActiveOptionId:Je}=v({options:H,selectedIndex:Pe,open:k,onOpenChange:Oe,onSelect:e=>he(e.node,R),getOptionDisabled:U,disabled:n||x,closeOnSelect:!0,allowOpenWithoutOptions:!0,triggerMode:M,placementStrategy:p===`columns`?`auto`:`flip`,resolveFloatingSize:p===`columns`?Fe:void 0}),Z=E?H.findIndex(e=>e.node.id===E):-1,Ye=Z>=0?Z:G,Xe=Ie.update,Ze=o.size>0,Qe=y===`search`&&(k||F.length>0),$e=Qe?F:ce??``,Q=ne({mode:M,open:k,currentQuery:F,hasDisplayValue:!!ce,inputRef:C,setQuery:I,openList:Ue,close:He,toggleOpen:We}),et=p===`columns`&&f===`multi`&&ae,tt=y===`display`,nt=et||tt?(0,X.jsxs)(`div`,{className:q.treePopupHeader,children:[et?(0,X.jsx)(oe,{onSelectAll:ae.onSelectAll,onDeselectAll:ae.onDeselectAll,selectAllButtonRef:w}):null,tt?(0,X.jsx)(h,{value:F,onChange:I,onClear:()=>I(``),placeholder:`Поиск по дереву`,onKeyDown:e=>{e.key!==`Escape`&&e.key!==`Tab`&&e.stopPropagation()},onClick:e=>{e.stopPropagation()}}):null]}):void 0;(0,Y.useLayoutEffect)(()=>{k&&p===`columns`&&Xe()},[W.signature,k,p,Xe]);let rt=e=>{C.current=e},it=()=>{ge?.(),I(``),f===`single`&&He()},at=e=>{e.hasChildren&&Se(t=>{let n=new Map(t),r=t.get(e.node.id)??P.has(e.node.codeKey);return n.set(e.node.id,!r),n})},ot=e=>{T.current[e]?.focus()},st=(e,t,n)=>{if(e.target===e.currentTarget){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;ot(d(H,n,t,U));return}if(e.key===`Home`||e.key===`End`){e.preventDefault();let t=e.key===`Home`?l(H,U):u(H,U);ot(t);return}if(p===`tree`&&e.key===`ArrowRight`){if(e.preventDefault(),t.hasChildren&&!t.isExpanded){at(t);return}let r=H[n+1];t.isExpanded&&r?.parentId===t.node.id&&ot(n+1);return}if(p===`tree`&&e.key===`ArrowLeft`){if(e.preventDefault(),t.hasChildren&&t.isExpanded){at(t);return}t.parentId&&ot(H.findIndex(e=>e.node.id===t.parentId));return}if(e.key===` `&&f===`multi`&&!U(t)){e.preventDefault(),b?.(t.node,R);return}e.key===`Enter`&&!U(t)&&(e.preventDefault(),K(t))}},$=p===`tree`&&f===`multi`,ct=e=>{if($&&e.target===e.currentTarget&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}J(e)};return(0,X.jsx)(ee,{label:e,description:t,disabled:n,size:i,error:ve,required:ye,children:({controlId:t,labelId:i,describedBy:a})=>{let l=`${t}-${p===`columns`?`dialog`:$?`treegrid`:`tree`}`,u=typeof e==`string`?e:r;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ie,{ref:rt,rootRef:ze,id:t,type:`text`,role:`combobox`,autoComplete:`off`,isLoading:x,disabled:n,open:k,optionCount:N.nodeById.size,label:e,placeholder:r,readOnly:y!==`search`,value:$e,selectedValue:se??ce,hasSelection:Ze,showSelectedValue:Ze&&(M===`search-multi`?F.length===0:!Qe),clearable:ge!==void 0,onClear:it,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":i,"aria-label":i?void 0:r,"aria-describedby":a,"aria-required":ye||void 0,"aria-invalid":!!ve||void 0,"aria-haspopup":p===`columns`?`dialog`:$?`grid`:`tree`,"aria-expanded":k,"aria-controls":k?l:void 0,"aria-autocomplete":p!==`columns`&&y===`search`?`list`:`none`,"aria-activedescendant":p!==`columns`&&k&&H.length>0?Je(l):void 0,onChange:e=>{y===`search`&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{D(void 0),Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{if(p===`columns`&&k&&e.key===`Tab`&&!e.shiftKey&&w.current){e.preventDefault(),w.current.focus();return}if(Ge(e),!e.defaultPrevented){if($&&k&&e.ctrlKey&&e.key===` `){e.preventDefault();let t=G>=0?H[G]:void 0;t&&!U(t)&&b?.(t.node,R);return}Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{let e=G>=0?H[G]:void 0;e&&K(e)},enableSpaceActivation:y===`display`})}}}),(0,X.jsx)(te,{open:k,context:Ie,floatingStyles:Le,listId:l,labelId:i,popupAriaLabel:u,descriptionId:a,activeOptionId:p!==`columns`&&H.length>0?Je(l):void 0,ariaMultiselectable:$,popupRole:p===`columns`?`dialog`:$?`treegrid`:`tree`,setFloating:Be,getFloatingProps:Re,onKeyDown:ct,layoutClassName:p===`columns`?q.treeColumnsPopupLayout:void 0,bodyClassName:`scrollable`,toolbar:nt,children:(0,X.jsx)(`div`,{role:`presentation`,className:s(p===`columns`&&q.treeColumns),children:H.length===0?(0,X.jsx)(fe,{errorState:S,emptyState:!S&&!x?`Нет данных`:void 0}):H.map((e,t)=>{let n=f===`multi`?j(e.node.id,o,N):o.has(e.node.id),r=f===`multi`&&!n&&c.has(e.node.id),i=t===Ye,a=e.node.disabled===!0||g?.has(e.node.id)===!0;return(0,X.jsx)(le,{"data-ui":`tree-select-option`,id:qe(l,t),ref:p===`tree`?e=>{T.current[t]=e,Ve(t,e)}:void 0,tabIndex:p===`tree`?-1:void 0,role:p===`tree`?$?`row`:`treeitem`:void 0,"aria-level":p===`tree`?e.level+1:void 0,"aria-expanded":p===`tree`&&e.hasChildren?e.isExpanded:void 0,"aria-selected":p===`columns`?void 0:n,"aria-disabled":a||void 0,disabled:a,active:i,selected:n,onFocus:()=>D(e.node.id),onKeyDown:p===`tree`?n=>st(n,e,t):void 0,onMouseDown:p===`tree`&&!$?e=>e.preventDefault():void 0,onClick:p===`tree`&&!$?()=>K(e):void 0,className:p===`columns`?q.treeColumnRow:void 0,style:p===`columns`?{"--tree-option-column":`var(--tree-option-${t}-column, auto)`,"--tree-option-row":`var(--tree-option-${t}-row, auto)`}:void 0,children:(0,X.jsx)(Ke,{node:a?{...e.node,disabled:!0}:e.node,level:e.level,highlight:F,hasChildren:e.hasChildren,isExpanded:e.isExpanded,selected:n,partial:r,selectionMode:f,optionsLayout:p,actionRef:p===`columns`?e=>{T.current[t]=e,Ve(t,e)}:void 0,onToggleExpand:()=>at(e),onToggleSelection:()=>b?.(e.node,R),onActivate:()=>K(e)})},e.node.id)})})})]})}})}var Y,X;function Z(){return(Z=e((()=>{Y=t(),c(),m(),se(),g(),y(),ce(),ue(),_(),re(),pe(),ae(),U(),qe(),Ge(),X=o(),Je.__docgenInfo={description:``,methods:[],displayName:`TreePickerBase`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},selectedIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},partialIds:{required:!0,tsType:{name:`Set`,elements:[{name:`string`}],raw:`Set<string>`},description:``},selectionMode:{required:!0,tsType:{name:`union`,raw:`"single" | "multi"`,elements:[{name:`literal`,value:`"single"`},{name:`literal`,value:`"multi"`}]},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:``,defaultValue:{value:`"tree"`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:``},unavailableNodeIds:{required:!1,tsType:{name:`ReadonlySet`,elements:[{name:`string`}],raw:`ReadonlySet<string>`},description:`Узлы, которые текущий multi-select contract не может безопасно сериализовать.`},open:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``},bulkActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
|
|
12
|
+
onSelectAll: () => void;
|
|
13
|
+
onDeselectAll: () => void;
|
|
14
|
+
}`,signature:{properties:[{key:`onSelectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}},{key:`onDeselectAll`,value:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}},required:!0}}]}},description:``},triggerMode:{required:!1,tsType:{name:`union`,raw:`"display" | "search"`,elements:[{name:`literal`,value:`"display"`},{name:`literal`,value:`"search"`}]},description:``,defaultValue:{value:`"display"`,computed:!1}},selectedSummary:{required:!1,tsType:{name:`ReactNode`},description:``},selectedSummaryText:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onNodeActivate:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: TreeSelectNode, selectionScopeIndex?: TreeNodeIndex) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
|
|
15
|
+
id: string;
|
|
16
|
+
codeKey: string;
|
|
17
|
+
value: string;
|
|
18
|
+
label: string;
|
|
19
|
+
code?: string;
|
|
20
|
+
searchText: string;
|
|
21
|
+
children?: TreeSelectNode[];
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
|
|
24
|
+
}`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}},name:`node`},{type:{name:`signature`,type:`object`,raw:`{
|
|
25
|
+
rootIds: string[];
|
|
26
|
+
nodeById: Map<string, TreeSelectNode>;
|
|
27
|
+
parentById: Map<string, string | undefined>;
|
|
28
|
+
childrenById: Map<string, string[]>;
|
|
29
|
+
preorderIndexById: Map<string, number>;
|
|
30
|
+
nodeIdByCodeValue: Map<string, string>;
|
|
31
|
+
/** Все визуальные узлы одного сериализуемого значения в порядке обхода дерева. */
|
|
32
|
+
nodeIdsByCodeValue: Map<string, string[]>;
|
|
33
|
+
/** Признак disabled-ограничения в узле или любом его потомке. */
|
|
34
|
+
subtreeContainsDisabledById: Map<string, boolean>;
|
|
35
|
+
}`,signature:{properties:[{key:`rootIds`,value:{name:`Array`,elements:[{name:`string`}],raw:`string[]`,required:!0}},{key:`nodeById`,value:{name:`Map`,elements:[{name:`string`},{name:`signature`,type:`object`,raw:`{
|
|
36
|
+
id: string;
|
|
37
|
+
codeKey: string;
|
|
38
|
+
value: string;
|
|
39
|
+
label: string;
|
|
40
|
+
code?: string;
|
|
41
|
+
searchText: string;
|
|
42
|
+
children?: TreeSelectNode[];
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
|
|
45
|
+
}`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}}],raw:`Map<string, TreeSelectNode>`,required:!0}},{key:`parentById`,value:{name:`Map`,elements:[{name:`string`},{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}],raw:`Map<string, string | undefined>`,required:!0}},{key:`childrenById`,value:{name:`Map`,elements:[{name:`string`},{name:`Array`,elements:[{name:`string`}],raw:`string[]`}],raw:`Map<string, string[]>`,required:!0}},{key:`preorderIndexById`,value:{name:`Map`,elements:[{name:`string`},{name:`number`}],raw:`Map<string, number>`,required:!0}},{key:`nodeIdByCodeValue`,value:{name:`Map`,elements:[{name:`string`},{name:`string`}],raw:`Map<string, string>`,required:!0}},{key:`nodeIdsByCodeValue`,value:{name:`Map`,elements:[{name:`string`},{name:`Array`,elements:[{name:`string`}],raw:`string[]`}],raw:`Map<string, string[]>`,required:!0},description:`Все визуальные узлы одного сериализуемого значения в порядке обхода дерева.`},{key:`subtreeContainsDisabledById`,value:{name:`Map`,elements:[{name:`string`},{name:`boolean`}],raw:`Map<string, boolean>`,required:!0},description:`Признак disabled-ограничения в узле или любом его потомке.`}]}},name:`selectionScopeIndex`}],return:{name:`void`}}},description:`Основное действие OptionButton выбирает узел и завершает текущий выбор.`},onNodeToggleSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(node: TreeSelectNode, selectionScopeIndex?: TreeNodeIndex) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
|
|
46
|
+
id: string;
|
|
47
|
+
codeKey: string;
|
|
48
|
+
value: string;
|
|
49
|
+
label: string;
|
|
50
|
+
code?: string;
|
|
51
|
+
searchText: string;
|
|
52
|
+
children?: TreeSelectNode[];
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
|
|
55
|
+
}`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}},name:`node`},{type:{name:`signature`,type:`object`,raw:`{
|
|
56
|
+
rootIds: string[];
|
|
57
|
+
nodeById: Map<string, TreeSelectNode>;
|
|
58
|
+
parentById: Map<string, string | undefined>;
|
|
59
|
+
childrenById: Map<string, string[]>;
|
|
60
|
+
preorderIndexById: Map<string, number>;
|
|
61
|
+
nodeIdByCodeValue: Map<string, string>;
|
|
62
|
+
/** Все визуальные узлы одного сериализуемого значения в порядке обхода дерева. */
|
|
63
|
+
nodeIdsByCodeValue: Map<string, string[]>;
|
|
64
|
+
/** Признак disabled-ограничения в узле или любом его потомке. */
|
|
65
|
+
subtreeContainsDisabledById: Map<string, boolean>;
|
|
66
|
+
}`,signature:{properties:[{key:`rootIds`,value:{name:`Array`,elements:[{name:`string`}],raw:`string[]`,required:!0}},{key:`nodeById`,value:{name:`Map`,elements:[{name:`string`},{name:`signature`,type:`object`,raw:`{
|
|
67
|
+
id: string;
|
|
68
|
+
codeKey: string;
|
|
69
|
+
value: string;
|
|
70
|
+
label: string;
|
|
71
|
+
code?: string;
|
|
72
|
+
searchText: string;
|
|
73
|
+
children?: TreeSelectNode[];
|
|
74
|
+
disabled?: boolean;
|
|
75
|
+
selectionBehavior?: TreeMultiSelectNodeSelectionBehavior;
|
|
76
|
+
}`,signature:{properties:[{key:`id`,value:{name:`string`,required:!0}},{key:`codeKey`,value:{name:`string`,required:!0}},{key:`value`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`string`,required:!0}},{key:`code`,value:{name:`string`,required:!1}},{key:`searchText`,value:{name:`string`,required:!0}},{key:`children`,value:{name:`Array`,elements:[{name:`TreeSelectNode`}],raw:`TreeSelectNode[]`,required:!1}},{key:`disabled`,value:{name:`boolean`,required:!1}},{key:`selectionBehavior`,value:{name:`union`,raw:`"self" | "descendants"`,elements:[{name:`literal`,value:`"self"`},{name:`literal`,value:`"descendants"`}],required:!1}}]}}],raw:`Map<string, TreeSelectNode>`,required:!0}},{key:`parentById`,value:{name:`Map`,elements:[{name:`string`},{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}],raw:`Map<string, string | undefined>`,required:!0}},{key:`childrenById`,value:{name:`Map`,elements:[{name:`string`},{name:`Array`,elements:[{name:`string`}],raw:`string[]`}],raw:`Map<string, string[]>`,required:!0}},{key:`preorderIndexById`,value:{name:`Map`,elements:[{name:`string`},{name:`number`}],raw:`Map<string, number>`,required:!0}},{key:`nodeIdByCodeValue`,value:{name:`Map`,elements:[{name:`string`},{name:`string`}],raw:`Map<string, string>`,required:!0}},{key:`nodeIdsByCodeValue`,value:{name:`Map`,elements:[{name:`string`},{name:`Array`,elements:[{name:`string`}],raw:`string[]`}],raw:`Map<string, string[]>`,required:!0},description:`Все визуальные узлы одного сериализуемого значения в порядке обхода дерева.`},{key:`subtreeContainsDisabledById`,value:{name:`Map`,elements:[{name:`string`},{name:`boolean`}],raw:`Map<string, boolean>`,required:!0},description:`Признак disabled-ограничения в узле или любом его потомке.`}]}},name:`selectionScopeIndex`}],return:{name:`void`}}},description:`Независимый checkbox меняет черновик, не закрывая popup.`},onClearSelection:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:``},required:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}export{N as a,F as c,C as d,P as i,ye as l,Z as n,Oe as o,_e as r,j as s,Je as t,ve as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,r as i,t as a,u as o}from"./TreePickerBase-ZEBy3EVT.js";function s(e){if(e)return e.code&&e.code!==e.label?`${e.label} · ${e.code}`:e.label}function c({label:e,description:t,disabled:n,placeholder:r=`Выберите значение`,size:c,nodes:d,value:f,onChange:p,query:m,defaultQuery:h,onQuery:g,isLoading:_,error:v,fieldError:y,required:b,clearable:x=!1,defaultExpandedCodeKeys:S}){let C=(0,l.useMemo)(()=>i(d),[d]),w=o(f,C),T=w?C.nodeById.get(w):void 0;return(0,u.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:c,nodes:d,selectedIds:w?new Set([w]):new Set,partialIds:new Set,selectionMode:`single`,defaultExpandedCodeKeys:S,triggerMode:`search`,selectedSummaryText:s(T),query:m,defaultQuery:h,onQuery:g,onNodeActivate:e=>p({codeKey:e.codeKey,value:e.value}),onClearSelection:x?()=>p(void 0):void 0,isLoading:_,error:v,fieldError:y,required:b})}var l,u;function d(){return(d=e((()=>{l=t(),r(),u=n(),c.__docgenInfo={description:``,methods:[],displayName:`TreeSelect`,props:{nodes:{required:!0,tsType:{name:`unknown`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите значение"`,computed:!1}},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``},fieldError:{required:!1,tsType:{name:`string`},description:`Ошибка выбранного значения; error сообщает о сбое загрузки дерева в popup.`},required:{required:!1,tsType:{name:`boolean`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи уровней, узлы которых раскрываются до ручного действия пользователя.\nЗначения сопоставляются с `TreeSelectNode.codeKey`."}},composes:[`Omit`]}})))()}export{d as n,c as t};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./TreeSelect.stories-E6ObkYJe.js";function b(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
|
+
`,(0,S.jsx)(u,{children:`TreeSelect`}),`
|
|
3
|
+
`,(0,S.jsx)(o,{children:`Single-select для выбора одного узла из дерева`}),`
|
|
4
|
+
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`TreeSelect`}),` подходит для сценариев, где выбор должен происходить по одному узлу, но пользователь работает не с плоским списком, а с иерархией.`]}),`
|
|
5
|
+
`,(0,S.jsxs)(t.p,{children:[`Popup использует роли `,(0,S.jsx)(t.code,{children:`tree/treeitem`}),`. `,(0,S.jsx)(t.code,{children:`ArrowRight`}),` раскрывает ветку или переходит к первому дочернему узлу, `,(0,S.jsx)(t.code,{children:`ArrowLeft`}),` сворачивает её или возвращает к родителю, а `,(0,S.jsx)(t.code,{children:`Enter`}),` выбирает активный узел. Состояние ветки доступно через `,(0,S.jsx)(t.code,{children:`aria-expanded`}),` без вложенных кнопок.`]}),`
|
|
6
|
+
`,(0,S.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
|
|
7
|
+
`,(0,S.jsx)(f,{}),`
|
|
8
|
+
`,(0,S.jsx)(i,{of:y}),`
|
|
9
|
+
`,(0,S.jsx)(t.h2,{id:`сценарии`,children:`Сценарии`}),`
|
|
10
|
+
`,(0,S.jsx)(d,{of:y}),`
|
|
11
|
+
`,(0,S.jsx)(d,{of:p}),`
|
|
12
|
+
`,(0,S.jsx)(d,{of:_}),`
|
|
13
|
+
`,(0,S.jsx)(d,{of:h}),`
|
|
14
|
+
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`required`}),` помечает выбор узла как обязательный. `,(0,S.jsx)(t.code,{children:`fieldError`}),` показывает ошибку значения под полем и задаёт `,(0,S.jsx)(t.code,{children:`aria-invalid`}),`; `,(0,S.jsx)(t.code,{children:`error`}),` по-прежнему описывает ошибку загрузки дерева в popup. Проверку выбора выполняет форма.`]}),`
|
|
15
|
+
`,(0,S.jsx)(d,{of:m}),`
|
|
16
|
+
`,(0,S.jsx)(t.h2,{id:`api`,children:`API`}),`
|
|
17
|
+
`,(0,S.jsx)(l,{of:g}),`
|
|
18
|
+
`,(0,S.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
|
|
19
|
+
`,(0,S.jsx)(a,{includePrimary:!1})]})}function x(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,S.jsx)(t,{...e,children:(0,S.jsx)(b,{...e})}):b(e)}var S;function C(){return(C=e((()=>{S=t(),r(),c(),v()})))()}C();export{x as default};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-1Nw_zWMi.js";import{n as r,t as i}from"./createControlledStoryRender-BouhvX-R.js";import{n as a,t as o}from"./treeStoryFixtures-DXHh9GL3.js";import{n as s,t as c}from"./TreeSelect-T7G2pkyK.js";var l=t({Basic:()=>m,Empty:()=>_,FirstLevelExpanded:()=>g,RequiredWithError:()=>v,SelectParent:()=>h,__namedExportsOrder:()=>y,default:()=>p});function u({args:e,updateArgs:t}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n,fieldError:n?void 0:e.fieldError})}}),(0,d.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,e.value?`${e.value.codeKey}=${e.value.value}`:`пусто`]})]})}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),s(),a(),d=n(),f=i((e,t)=>(0,d.jsx)(u,{args:e,updateArgs:t})),p={title:`UI/TreeSelect`,component:c,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узла`,description:`Single-select поверх дерева. Можно выбрать любой узел.`,nodes:o,value:void 0,onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},required:{description:`Помечает выбор узла как обязательный.`,control:`boolean`},fieldError:{description:`Текст ошибки выбранного узла под полем.`,control:`text`},placeholder:{description:`Текст без выбранного узла.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,control:!1},value:{description:`Выбранный узел в формате codeKey/value.`,control:!1},onChange:{description:`Вызывается при выборе узла.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},clearable:{description:`Показывает действие очистки выбора.`,control:`boolean`},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых при открытии.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},m={render:f,args:{value:{codeKey:`BRANCH`,value:`B0101`}}},h={render:f,args:{label:`Выбор родителя`,description:`Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.`,value:{codeKey:`REGION`,value:`R01`}}},g={render:f,args:{label:`Раскрыт первый уровень`,description:`Все узлы уровня REGION раскрыты до первого ручного действия пользователя.`,defaultExpandedCodeKeys:[`REGION`]}},_={render:f,args:{nodes:[],description:`Состояние без доступных узлов.`}},v={name:`Обязательное поле с ошибкой`,render:f,args:{required:!0,fieldError:`Выберите узел дерева.`,value:void 0}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
render: renderTreeSelectStory,
|
|
3
|
+
args: {
|
|
4
|
+
value: {
|
|
5
|
+
codeKey: "BRANCH",
|
|
6
|
+
value: "B0101"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
}`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
10
|
+
render: renderTreeSelectStory,
|
|
11
|
+
args: {
|
|
12
|
+
label: "Выбор родителя",
|
|
13
|
+
description: "Проверка single-select сценария, когда выбирается не leaf, а промежуточный узел.",
|
|
14
|
+
value: {
|
|
15
|
+
codeKey: "REGION",
|
|
16
|
+
value: "R01"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
20
|
+
render: renderTreeSelectStory,
|
|
21
|
+
args: {
|
|
22
|
+
label: "Раскрыт первый уровень",
|
|
23
|
+
description: "Все узлы уровня REGION раскрыты до первого ручного действия пользователя.",
|
|
24
|
+
defaultExpandedCodeKeys: ["REGION"]
|
|
25
|
+
}
|
|
26
|
+
}`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
27
|
+
render: renderTreeSelectStory,
|
|
28
|
+
args: {
|
|
29
|
+
nodes: [],
|
|
30
|
+
description: "Состояние без доступных узлов."
|
|
31
|
+
}
|
|
32
|
+
}`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
|
|
33
|
+
name: "Обязательное поле с ошибкой",
|
|
34
|
+
render: renderTreeSelectStory,
|
|
35
|
+
args: {
|
|
36
|
+
required: true,
|
|
37
|
+
fieldError: "Выберите узел дерева.",
|
|
38
|
+
value: undefined
|
|
39
|
+
}
|
|
40
|
+
}`,...v.parameters?.docs?.source}}},y=[`Basic`,`SelectParent`,`FirstLevelExpanded`,`Empty`,`RequiredWithError`]})))()}export{h as a,v as i,_ as n,l as o,g as r,b as s,m as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-1Nw_zWMi.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DR4JL0hD.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./TreeTable.stories-PtGT_1X5.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,M.jsx)(u,{children:`TreeTable`}),`
|
|
3
3
|
`,(0,M.jsx)(o,{children:`Древовидная таблица для плоских OData-данных на базе TanStack Table`}),`
|
|
4
4
|
`,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`TreeTable`}),` предназначен для сценариев, где данные приходят плоским списком, но в UI должны выглядеть как дерево.
|
package/storybook-static/assets/{TreeTable.stories-BKbbLMK7.js → TreeTable.stories-PtGT_1X5.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./chevron-down-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./chevron-down-BaujB0G_.js";import{n as a,t as o}from"./chevron-right-CfCjHN8b.js";import{n as s}from"./iframe-1Nw_zWMi.js";import{A as c,D as l,O as u,T as d,_ as ee,a as f,b as te,g as ne,h as re,i as ie,k as ae,y as oe}from"./odata-D9M3xPIL.js";import{a as se,i as ce}from"./utils-tg3ibbzi.js";import{h as le,u as ue}from"./formatters-DVE1YVNQ-YIdRxgw-.js";import{n as de,t as fe}from"./useTable-CK68Q4S4.js";import{_ as pe,a as me,c as he,d as ge,f as _e,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as Ae,y as je}from"./FormattedTableCell-B4RRbSFK.js";import{n as Me,t as p}from"./createControlledStoryRender-BouhvX-R.js";function Ne(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function m(e){return Array.from(new Set(e))}function Pe(e,t){let n=new Map,r=new Map,i=new Map,a=[],o=[],s=[],c=[];for(let o of e){let e=t.getRowId(o);if(n.has(e)){a.push(e);continue}let s=t.getParentRowId(o)??null;n.set(e,o),r.set(e,s),c.push(e),s!==null&&s!==e&&Ne(i,s,e)}let l=[];for(let e of c){let t=r.get(e)??null;if(t===null){l.push(e);continue}if(t===e){s.push(e),l.push(e);continue}n.has(t)||(o.push(e),l.push(e))}let u=new Set,d=(e,t)=>{let r=n.get(e);if(!r)throw Error(`Не удалось построить дерево: строка "${e}" отсутствует в индексе.`);u.add(e);let a=new Set(t);a.add(e);let o={...r},c=i.get(e)??[],l=[];for(let e of c){if(a.has(e)){s.push(e);continue}u.has(e)||l.push(d(e,a))}return l.length>0&&(o.children=l),o},ee=[],f=[];for(let e of l)u.has(e)||(ee.push(d(e,new Set)),f.push(e));for(let e of c)u.has(e)||(s.push(e),ee.push(d(e,new Set)),f.push(e));return{rows:ee,rowById:n,allRowIds:c,rootRowIds:m(f),orphanRowIds:m(o),duplicateRowIds:m(a),cyclicRowIds:m(s)}}function Fe(){return(Fe=e((()=>{})))()}var h,g,_,v,y,b,x,S;function C(){return(C=e((()=>{h=`jOS9rT`,g=`zHOAf7`,_=`j48cXg`,v=`mf4-Kr`,y=`p8pb0F`,b=`KIudLf`,x=`bJsPGU`,S={treeColumnCell:h,selectedIndicatorCell:g,treeCell:_,treeCellContent:v,expanderButton:y,expanderSpacer:b,sentinel:x}})))()}function Ie(e){return Object.fromEntries(e.map(e=>[e,!0]))}function Le(e){return typeof e==`boolean`?[]:Object.keys(e).filter(t=>e[t])}function Re(e,t){return t.get(e.id)??e.original}function ze(e,t,n,r){return e.cell.column.id===n?(0,E.jsxs)(`div`,{className:S.treeCell,style:{paddingInlineStart:`calc(${e.row.depth} * ${oe(r)??`0em`})`},children:[e.row.getCanExpand()?(0,E.jsx)(`button`,{type:`button`,className:S.expanderButton,"aria-label":e.row.getIsExpanded()?`Свернуть строку`:`Развернуть строку`,"data-tree-table-interactive":`true`,"data-ui":`tree-table-expander`,"data-action":e.row.getIsExpanded()?`collapse-tree-table-row`:`expand-tree-table-row`,onClick:t=>{t.stopPropagation(),e.row.toggleExpanded()},children:e.row.getIsExpanded()?(0,E.jsx)(i,{size:16}):(0,E.jsx)(o,{size:16})}):(0,E.jsx)(`span`,{className:S.expanderSpacer,"aria-hidden":`true`}),(0,E.jsx)(`div`,{className:S.treeCellContent,children:t})]}):t}function w({title:e,isLoading:t,isFetching:n,data:r,columns:i,hierarchy:a,selectionMode:o=`none`,expandFirstLevel:s=!1,defaultExpandedRowIds:c,treeColumnId:l,indentSize:u=1,className:d,tableClassName:f,columnVisibility:te,defaultColumnVisibility:re,columnOrder:ie,defaultColumnOrder:ae,columnSizing:oe,defaultColumnSizing:ce,columnPinning:le,defaultColumnPinning:fe,enableColumnResizing:me=!1,enableColumnReordering:ge=!1,columnResizeMinWidth:ve,onColumnVisibilityChange:be,onColumnOrderChange:xe,onColumnSizingChange:Se,onColumnPinningChange:Ce,onRowClick:De,onRowSelectionChange:je,onExpandedRowIdsChange:Me,onReachEnd:p,getRowCanSelect:Ne,getRowClassName:m,renderHeaderContextMenu:Fe,renderCellContent:h}){let g=(0,T.useMemo)(()=>Pe(r??[],a),[r,a]),_=(0,T.useMemo)(()=>ye(i),[i]),v=(0,T.useMemo)(()=>{let e=new Set(c??[]);if(s)for(let t of g.rootRowIds)e.add(t);return Array.from(e)},[c,s,g.rootRowIds]),[y,b]=(0,T.useState)({}),x=(0,T.useRef)(!1),C=(0,T.useRef)(null),w=(0,T.useRef)(null),{rowSelection:Be,activateRowSelection:Ve}=ne({availableRowIds:g.allRowIds,rowById:g.rowById,selectionMode:o,onRowSelectionChange:je}),{columnVisibility:He,onColumnVisibilityChange:D}=we({columnVisibility:te,defaultColumnVisibility:re,onColumnVisibilityChange:be}),{columnOrder:O,onColumnOrderChange:Ue}=_e({columnOrder:ie,defaultColumnOrder:ae,onColumnOrderChange:xe}),{columnSizing:k,onColumnSizingChange:We}=he({columnSizing:oe,defaultColumnSizing:ce,columnResizeMinWidth:ve,onColumnSizingChange:Se}),{columnPinning:A,onColumnPinningChange:Ge}=ke({columnPinning:le,defaultColumnPinning:fe,onColumnPinningChange:Ce}),Ke=(0,T.useMemo)(()=>({columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He}),[O,A,k,He]),qe=(0,T.useEffectEvent)((e,t)=>{if(e.length===0){x.current=!1,b({});return}let n=new Set(e);b(e=>{let r=Le(e).filter(e=>n.has(e));return x.current?Ie(r):(x.current=!0,Ie(Array.from(new Set([...r,...t.filter(e=>n.has(e))]))))})}),j=(0,T.useEffectEvent)(e=>{Me?.(Le(e))}),Je=(0,T.useEffectEvent)(()=>{p?.()});(0,T.useEffect)(()=>{qe(g.allRowIds,v)},[v,g.allRowIds]),(0,T.useEffect)(()=>{j(y)},[y]),(0,T.useEffect)(()=>{if(!p||!C.current||!w.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Je()},{root:C.current,threshold:.1});return e.observe(w.current),()=>e.disconnect()},[t,p,g.rows.length]);let M=de({features:ee,data:g.rows,columns:i,state:{columnOrder:O,columnPinning:A,columnSizing:k,columnVisibility:He,expanded:y,rowSelection:Be},getRowId:e=>a.getRowId(e),getSubRows:e=>e.children,onColumnOrderChange:Ue,onColumnPinningChange:Ge,onColumnSizingChange:We,onColumnVisibilityChange:D,onExpandedChange:b,enableMultiRowSelection:o===`multi`,enableRowSelection:e=>{if(o===`none`)return!1;let t=Re(e,g.rowById);return!Ne||Ne(t)}}),N=Ae(M,Ke),P=l??N[0]?.id,Ye=M.getRowModel().rows,Xe=(0,T.useMemo)(()=>Te({rows:Ye,columns:N,resolveRowBoundaryKey:e=>e.depth,excludeColumnIds:P?new Set([P]):void 0}),[Ye,N,P]);return(0,E.jsx)(Ee,{table:M,columnState:Ke,title:e,isLoading:t,isFetching:n,className:d,tableClassName:f,selectionMode:o,scrollableRef:C,interactiveElementSelector:`[data-tree-table-interactive="true"]`,onActivateRow:o!==`none`||De?e=>{let t=Re(e,g.rowById);Ve(e.id,e.getCanSelect()),De?.(t)}:void 0,isRowInteractive:e=>!!(De||o!==`none`&&e.getCanSelect()),getRowClassName:e=>{let t=Re(e,g.rowById);return m?.(t)},getCellClassName:({row:e,cell:t})=>se(t.column.id===P&&S.treeColumnCell,t.column.id===P&&e.getIsSelected()&&S.selectedIndicatorCell),getCellLayout:({cell:e})=>Xe.get(e.id),renderHeaderContextMenu:Fe,enableColumnResizing:me,enableColumnReordering:ge,columnResizeMinWidth:ve,renderCellContent:e=>{let t=Re(e.row,g.rowById),n=ue({field:_.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:t,rowKind:`tree`}),r=pe({columnId:e.cell.column.id,runtimeByColumnId:_.runtimeByColumnId,customCellColumnIds:_.customCellColumnIds})?(0,E.jsx)(Oe,{displayValue:n,align:e.columnMeta?.align}):e.defaultContent;return ze(e,h?h({...e,defaultContent:r,displayValue:n}):r,P,u)},afterTableContent:p?(0,E.jsx)(`div`,{ref:w,className:S.sentinel,"aria-hidden":`true`}):null})}var T,E;function Be(){return(Be=e((()=>{T=n(),le(),te(),Fe(),ce(),fe(),r(),a(),be(),Se(),ve(),Ce(),je(),ge(),xe(),De(),me(),C(),E=s(),w.__docgenInfo={description:`Древовидная таблица на базе TanStack Table для плоских OData-данных.`,methods:[],displayName:`TreeTable`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок через исходный тип строки.`},hierarchy:{required:!0,tsType:{name:`TreeTableFlatHierarchy`,elements:[{name:`TData`}],raw:`TreeTableFlatHierarchy<TData>`},description:`Правила восстановления дерева из плоского списка.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},expandFirstLevel:{required:!1,tsType:{name:`boolean`},description:"Если `true`, при первом появлении данных раскрывает корневой уровень.",defaultValue:{value:`false`,computed:!1}},defaultExpandedRowIds:{required:!1,tsType:{name:`unknown`},description:`Дополнительные строки, которые должны быть раскрыты при первой инициализации.`},treeColumnId:{required:!1,tsType:{name:`string`},description:`Идентификатор колонки, в которой нужно рисовать tree-toggle и отступы.
|
|
2
2
|
|
|
3
3
|
Если не указан, используется первая видимая колонка.`},indentSize:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:`Отступ на один уровень вложенности.
|
|
4
4
|
|