@ryuzaki13/react-foundation-ui 1.11.2 → 1.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/advanced-search/index.js +1 -1
- package/dist/barcode-scanner/BarcodeScannerDialog.d.ts +46 -0
- package/dist/barcode-scanner/BarcodeScannerDialog.d.ts.map +1 -0
- package/dist/barcode-scanner/index.d.ts +3 -0
- package/dist/barcode-scanner/index.d.ts.map +1 -0
- package/dist/barcode-scanner/index.js +135 -0
- package/dist/barcode-scanner/index.js.map +1 -0
- package/dist/base-table/index.js +1 -1
- package/dist/base-table/ui/BaseTableHeaderCell.d.ts.map +1 -1
- package/dist/chunks/{base-table-B9m-r0Ve.js → base-table-BqW1n7tv.js} +2 -1
- package/dist/chunks/base-table-BqW1n7tv.js.map +1 -0
- package/dist/chunks/{table-Dvh4o6Ly.js → table-DMLFUBlb.js} +2 -2
- package/dist/chunks/{table-Dvh4o6Ly.js.map → table-DMLFUBlb.js.map} +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +10 -1
- package/storybook-static/assets/{Badge-IT7agK6Q.js → Badge-B7dDAIT0.js} +1 -1
- package/storybook-static/assets/{Badge.stories-CFO91oF4.js → Badge.stories-xq1d5gO-.js} +1 -1
- package/storybook-static/assets/{BadgeList-C-teTUUL.js → BadgeList-8X9g2fQ6.js} +1 -1
- package/storybook-static/assets/BarcodeScannerDialog-DQGhFXAm.css +1 -0
- package/storybook-static/assets/BarcodeScannerDialog.stories-CLAvYJ8n.js +72 -0
- package/storybook-static/assets/{Button-TpNLMFkg.js → Button-BjfYzm3v.js} +1 -1
- package/storybook-static/assets/{Button-BCINYNwj.js → Button-WQ_a9ZzO.js} +1 -1
- package/storybook-static/assets/{Button.stories-CJu6IF4v.js → Button.stories-DQkCiuZQ.js} +1 -1
- package/storybook-static/assets/{CalendarView-DNTK18Ep.js → CalendarView-Wkk5fSIb.js} +1 -1
- package/storybook-static/assets/{CheckBox-D1O55Px0.js → CheckBox-BqLO9IWG.js} +1 -1
- package/storybook-static/assets/{CheckBox-B1LSl-4q.js → CheckBox-DcrtUj4l.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-Cfl-QKq5.js → CheckBox.stories-cyRfNCVJ.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-uMvt0O_6.js → Color-6AOWCN3U-BoCIOgNt.js} +1 -1
- package/storybook-static/assets/{ContextMenu-Pt-na4FV.js → ContextMenu-CSTmE6oJ.js} +1 -1
- package/storybook-static/assets/{ContextMenu-C1oSYyKE.js → ContextMenu-D6uTUM0x.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-D2CglQkX.js → ContextMenu.stories-C7hBjEnm.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-N-v1f4in.js → CustomOptionButton-DtL_btQm.js} +1 -1
- package/storybook-static/assets/{DateInput-w94MLAIB.js → DateInput-C5Rv__xD.js} +1 -1
- package/storybook-static/assets/{DateInput-DQ-AMKHB.js → DateInput-plHsQbfY.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-Bab9Y0Nc.js → DateInput.stories-B5SfoKUu.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-SZZ3sbaw.js → DateRangePresetSelect-Cpy96dht.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CNe9Spk9.js → DateRangePresetSelect-QXCJEKrJ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-R1ykwXeD.js → DateRangePresetSelect.stories-B8JqS4tu.js} +1 -1
- package/storybook-static/assets/{Detail-CFHbtlqL.js → Detail-KecpiJ3-.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BJM6PVVZ.js → Detail.stories-DL89V4fn.js} +1 -1
- package/storybook-static/assets/{Dialog-Da7-Nfdk.js → Dialog-DCgkQOh-.js} +1 -1
- package/storybook-static/assets/{Dialog-CMQx-SV-.js → Dialog-DJGiaH6f.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-PG0d8vMq.js → Dialog.stories-BZnzPwsV.js} +1 -1
- package/storybook-static/assets/{Disclosure-JrvVUh4Q.js → Disclosure-zo6LkbPI.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BE_oI-_H.js → Disclosure.stories-Lgk-eKJi.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-eLMt33Jq.js → DisclosureGroup-Ceby28F3.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BcXtUhLj.js → DocsRenderer-JROSPFPF-TH8wvByq.js} +1 -1
- package/storybook-static/assets/{DropZone-BWYHo7_0.js → DropZone-C6mlR4ei.js} +1 -1
- package/storybook-static/assets/{DropZone-B2ig-gfu.js → DropZone-eLflBIFN.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-BbecqZzr.js → DropZone.stories-DQJDVD8N.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CIXIqQ3e.js → DropdownMenu-C0WBH6dW.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-2rycOZF_.js → ExpandableActionPanel-CNsvZ8dq.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BNvBBzUO.js → ExpandableActionPanel.stories-BA9dVjsb.js} +1 -1
- package/storybook-static/assets/{Flex-DzeJb844.js → Flex-Dotu45Wk.js} +1 -1
- package/storybook-static/assets/{Flex.stories-5q9aUpOu.js → Flex.stories-pPSUvFfF.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-CUEebYHG.js → FloatingPopover-CGWgWuh3.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-DQ3TUqDn.js +15 -0
- package/storybook-static/assets/{Grid-sbM-0Kgn.js → Grid-CRbxtg0r.js} +1 -1
- package/storybook-static/assets/{Grid.stories-aL0oulxN.js → Grid.stories-CTZ0tkQB.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-YNKeAK2G.js → ImageCropper.stories-CxQOoA3N.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BjvuGz4V.js → ImageRenderer-CeXTKpKG.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BqSaMK1O.js → ImageRenderer.stories-Dpp6vLCZ.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-6Lj28LvJ.js → ImageView.stories-BOoGJbrp.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-i7SqudK7.js → ImageViewer.stories-BF0blUQT.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-BRPBetcV.js → ImageViewerRuntime-Bfdx43TR.js} +1 -1
- package/storybook-static/assets/{Input-BjtKUj62.js → Input-B6Ah7idX.js} +1 -1
- package/storybook-static/assets/{Input-BOMSbt0i.js → Input-CNC4loEp.js} +1 -1
- package/storybook-static/assets/{Input.stories-D4DC9yfK.js → Input.stories-D8QC7zqj.js} +1 -1
- package/storybook-static/assets/{InputDateTime-q6yDfV1e.js → InputDateTime-BoJjKTyL.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DjhanFrU.js → InputDateTime.stories-CglNEx67.js} +1 -1
- package/storybook-static/assets/{InputFile-Gdh-BVde.js → InputFile-BzRKgx_0.js} +1 -1
- package/storybook-static/assets/{InputFile-Bgka_CGO.js → InputFile-HbaRkJiy.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Cvqwi_CN.js → InputFile.stories-Ctm3JRAF.js} +1 -1
- package/storybook-static/assets/{InputFiles-DaQ0cWbG.js → InputFiles-ComhLl_o.js} +1 -1
- package/storybook-static/assets/{InputFiles-DrOMzc0W.js → InputFiles-CtZOh09z.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-D2_IZX0o.js → InputFiles.stories-jyaf-j_4.js} +1 -1
- package/storybook-static/assets/{InputFilesList-CnjHW_AZ.js → InputFilesList-D-DKj7tX.js} +1 -1
- package/storybook-static/assets/{InputImage-yw23Ygys.js → InputImage-DQ5SBIHF.js} +1 -1
- package/storybook-static/assets/{InputImage-BloVaXeg.js → InputImage-z-urlBpn.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-BHFG3E_f.js → InputImage.stories-Bv1nPhyT.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-Cb1JkZDZ.js → InteractiveComponents-Dq4aKs8H.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-D8WsLSpF.js → InteractiveComponents.stories-BBRKkpTn.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-Bw5Sz2VP.js → LayoutPicker-B9EDOw1l.js} +1 -1
- package/storybook-static/assets/LayoutPicker-DvQm_PNa.js +376 -0
- package/storybook-static/assets/{LayoutPicker.stories-BjsbHbrX.js → LayoutPicker.stories-B4s_tyGj.js} +1 -1
- package/storybook-static/assets/{Listbox-Bt0FuguO.js → Listbox-Bqk2xFbu.js} +1 -1
- package/storybook-static/assets/{Listbox-Dvh3ZHF0.js → Listbox-CjQ7qyQ-.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-DumIb82v.js → Listbox.stories-vJKhVRiY.js} +1 -1
- package/storybook-static/assets/Modal-Bfe2fFmF.js +1 -0
- package/storybook-static/assets/{Modal-IxrCfTzW.js → Modal-CuO3sdkV.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CEoMw78f.js → Modal.stories-BQsj2Q-i.js} +1 -1
- package/storybook-static/assets/ModalManagerProvider-B-rsm0Ct.js +1 -0
- package/storybook-static/assets/{MultiSelect-CQln6-bB.js → MultiSelect-BNaDb5Ku.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Cr6x1a77.js → MultiSelect-CRPhvaKO.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-B8nME9PX.js → MultiSelect.stories-Fa_HKycq.js} +1 -1
- package/storybook-static/assets/{NoData-F_z857Vw.js → NoData-DWFa8ekw.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-D7oy9i56.js → NotificationsHost-CQOEYdni.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Bgfmu5tH.js → NotificationsHost.stories-D5JXeZSL.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-C5radDm9.js → ODataMultiSelect-SGb9idVb.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-azvtnlSE.js → ODataMultiSelect.stories-CzI2-VE6.js} +1 -1
- package/storybook-static/assets/{ODataSelect-CgKHln6W.js → ODataSelect-UTDkEkOW.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BP0aMWPl.js → ODataSelect.stories-CzK8vlJB.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-DVkGcLs_.js → ODataTreeMultiSelect-BCCsFsrn.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CVH-h3pY.js → ODataTreeMultiSelect.stories-Hz8bRjtz.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-DwRyH5UX.js → ODataTreeSelect-RFBFRy5q.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-A9900skH.js → ODataTreeSelect.stories-tbQm0nAx.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-Dd3WFWu1.js → OneStepScroller-RZv_D6v6.js} +1 -1
- package/storybook-static/assets/{Option-252ePHhQ.js → Option-i1QxTZdW.js} +1 -1
- package/storybook-static/assets/{OptionButton-CXE06yW3.js → OptionButton-CoZsHN-F.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CVSSxPnT.js → PeriodSelect-CHE2TYyW.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-pS7Lhp4_.js → PeriodSelect-DcTAWOzL.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DANkE20Y.js → PeriodSelect.stories-zd5PlA51.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-CMVT09qS.js → PickerTriggerActions-D686PWT_.js} +1 -1
- package/storybook-static/assets/{Popover-C4rea2Py.js → Popover-BPmjD0aP.js} +1 -1
- package/storybook-static/assets/{Popover-CfqiQoTe.js → Popover-NXnGoAn4.js} +1 -1
- package/storybook-static/assets/{Popover.stories-DUX8Q2_3.js → Popover.stories-AbUwWZP9.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DZIj_-rv.js → PresetRangeDateInput-Di-7jrE0.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-BJ7R6aOl.js → PresetRangeDateInput-gQAv2Nov.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DpCjlnSR.js → PresetRangeDateInput.stories-UPAr4lbb.js} +1 -1
- package/storybook-static/assets/{PresetSelect-wTxN7eUh.js → PresetSelect-Brue_dfj.js} +1 -1
- package/storybook-static/assets/{README-5hWMDpYE.js → README-5MdcKgmQ.js} +1 -1
- package/storybook-static/assets/{README-j2Dwfv5B.js → README-7DYDmpmc.js} +1 -1
- package/storybook-static/assets/{README-D8noyyUO.js → README-B-9KzMuV.js} +1 -1
- package/storybook-static/assets/{README-nQToaxIY.js → README-B8R6J3La.js} +1 -1
- package/storybook-static/assets/{README-hfp2ql1O.js → README-BEM-fBdZ.js} +1 -1
- package/storybook-static/assets/{README-wHctjEbB.js → README-BFh2BDtO.js} +1 -1
- package/storybook-static/assets/{README-T7XNWy8u.js → README-BGmUz5HR.js} +1 -1
- package/storybook-static/assets/{README-B5iXsE3P.js → README-BHCEPV_N.js} +1 -1
- package/storybook-static/assets/{README-B9631tQ_.js → README-BHyl8J9o.js} +1 -1
- package/storybook-static/assets/{README-BRqfc6KI.js → README-BPfu-jwb.js} +1 -1
- package/storybook-static/assets/{README-ICed_D8s.js → README-BRTuG_Sg.js} +1 -1
- package/storybook-static/assets/{README-D4Us6CH9.js → README-BUmF1zx4.js} +1 -1
- package/storybook-static/assets/{README-CufihP1j.js → README-BYbakPfs.js} +1 -1
- package/storybook-static/assets/{README-eDdFgIBe.js → README-BcTYzqCl.js} +1 -1
- package/storybook-static/assets/{README-CYE9eTv5.js → README-BfMei1Un.js} +1 -1
- package/storybook-static/assets/{README-aQSgSOZc.js → README-Bi6VtrAw.js} +1 -1
- package/storybook-static/assets/{README-yqlgeiMT.js → README-BiU4mbVp.js} +1 -1
- package/storybook-static/assets/{README-D_CyF_Y_.js → README-BjChXIDm.js} +1 -1
- package/storybook-static/assets/{README-DemxH1xQ.js → README-BpK-L673.js} +1 -1
- package/storybook-static/assets/{README-C8p5Sz7S.js → README-BxJHHTNx.js} +1 -1
- package/storybook-static/assets/{README-DRKa1vb4.js → README-CAMuIYmw.js} +1 -1
- package/storybook-static/assets/{README-Ba1kOLVL.js → README-CXqlsNK0.js} +1 -1
- package/storybook-static/assets/{README-CFDZ28A3.js → README-CZc2t7hF.js} +1 -1
- package/storybook-static/assets/{README-bCC8evhh.js → README-Cfdmw0Ze.js} +1 -1
- package/storybook-static/assets/{README-BD6weX7r.js → README-ChID4rZL.js} +1 -1
- package/storybook-static/assets/{README-DDMPYgR-.js → README-CibDyyF_.js} +1 -1
- package/storybook-static/assets/{README-BlY2HS2h.js → README-CoOHz6ld.js} +1 -1
- package/storybook-static/assets/{README-ByHwYJcQ.js → README-Cswcdpre.js} +1 -1
- package/storybook-static/assets/{README-BjzmM30L.js → README-CwIEk9JW.js} +1 -1
- package/storybook-static/assets/{README-C3oDI-xY.js → README-DAenJXq2.js} +1 -1
- package/storybook-static/assets/{README-BLYbDcZv.js → README-DBKNfA0X.js} +1 -1
- package/storybook-static/assets/{README-BpMghKgV.js → README-DFSTxR0M.js} +1 -1
- package/storybook-static/assets/{README-CiGPXAr1.js → README-DKidn2rv.js} +1 -1
- package/storybook-static/assets/{README-DLhkw1MR.js → README-DUvlRZiz.js} +1 -1
- package/storybook-static/assets/{README-CNA4m2hc.js → README-DYq8lRqv.js} +1 -1
- package/storybook-static/assets/{README-Diczq2nT.js → README-DgK3wi1w.js} +1 -1
- package/storybook-static/assets/{README-DFy2yURi.js → README-DgqQm5yz.js} +1 -1
- package/storybook-static/assets/{README-zvxx6bRu.js → README-DsD4fVXx.js} +1 -1
- package/storybook-static/assets/{README-CgE12pZq.js → README-Dv3ECk8b.js} +1 -1
- package/storybook-static/assets/{README-DQmc8kLO.js → README-DvkDo7pO.js} +1 -1
- package/storybook-static/assets/{README-6uEtjlv4.js → README-E7Gi9s5_.js} +1 -1
- package/storybook-static/assets/{README-Ogll_dgV.js → README-I6mQGirB.js} +1 -1
- package/storybook-static/assets/{README-BzyNHTEf.js → README-Trs-xtcY.js} +1 -1
- package/storybook-static/assets/{README-Dr35GZVx.js → README-XlaWBnrO.js} +1 -1
- package/storybook-static/assets/{README-D-mIqhqT.js → README-Z-fJqcVu.js} +1 -1
- package/storybook-static/assets/{README-DOyclMG0.js → README-bf-0RbbB.js} +1 -1
- package/storybook-static/assets/{README-DzJNpR6m.js → README-gAYpVqA-.js} +1 -1
- package/storybook-static/assets/{README-BW71C5Kv.js → README-gtmqjhLz.js} +1 -1
- package/storybook-static/assets/{README-j5oWJ02w.js → README-mnY7bv0d.js} +1 -1
- package/storybook-static/assets/{README-Dv2etZau.js → README-skqbqT2v.js} +1 -1
- package/storybook-static/assets/{README-BKxR9cDl.js → README-tAHBosqz.js} +1 -1
- package/storybook-static/assets/{README-Bxlr2qjN.js → README-xoinmfCV.js} +1 -1
- package/storybook-static/assets/{RadioButton-D9AUf0wI.js → RadioButton-BtDy-RFF.js} +1 -1
- package/storybook-static/assets/{RadioButton-D-xAvbGj.js → RadioButton-CUJafHHK.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-Bt4LUxE4.js → RadioButton.stories-DYpEUa45.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DxKxBmpd.js → RadioGroup-Cbz9NbJH.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CUa4mG5W.js → RadioGroup-DMC9Midi.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DtqXT2m9.js → RadioGroup.stories-CZDUlYTf.js} +1 -1
- package/storybook-static/assets/{Scrollable-_qgUxctu.js → Scrollable-D15GivvG.js} +1 -1
- package/storybook-static/assets/{Select-n81lCGM4.js → Select-BgBKMzKX.js} +1 -1
- package/storybook-static/assets/Select-BsdeRDZ0.js +12 -0
- package/storybook-static/assets/{Select.stories-DYm13WCI.js → Select.stories-ZC0voN4f.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-yiWU_D1f.js → SerializableSelect-DPqW_lTF.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-Rh7nxpNg.js → SerializableSelect.stories-DT4284bN.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CnhIoNyN.js → SingleDateTimeInput-B-p1WO_G.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CvBUxP_7.js → SingleDateTimeInput-DiqeSial.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BXk3Fwa4.js → SingleDateTimeInput.stories-DtYsUciP.js} +1 -1
- package/storybook-static/assets/{Slider-ClU2Ho4G.js → Slider-BHg9HPof.js} +1 -1
- package/storybook-static/assets/{Slider-AW8Lj1vz.js → Slider-XCGxdA4Q.js} +1 -1
- package/storybook-static/assets/{Slider.stories-DKPwjLnH.js → Slider.stories-9rRfF8sK.js} +1 -1
- package/storybook-static/assets/{SliderInput-BpE0ilrI.js → SliderInput-D-ZGbKkk.js} +1 -1
- package/storybook-static/assets/{SliderInput-B18n-7n5.js → SliderInput-lvnmCW0J.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-1aqecEMF.js → SliderInput.stories-Bld28mTY.js} +1 -1
- package/storybook-static/assets/{Sortable-cZ5EyxC6.js → Sortable-DAHNeaNf.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-CQL0a0fG.js → Sortable.stories-B2rcMBxZ.js} +1 -1
- package/storybook-static/assets/{Splitter-BBGMeUwo.js → Splitter-B9qzZb0j.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-SMjxGiFD.js → Splitter.stories-CwikthVR.js} +1 -1
- package/storybook-static/assets/{StateSelect-DNUW1Kso.js → StateSelect-D28bcXA1.js} +1 -1
- package/storybook-static/assets/{StateSelect-B_MRWb9T.js → StateSelect-Nakd0VP4.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-Yyq8a_0k.js → StateSelect.stories-6Y9-dIBW.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CTJyj8EA.js → StringToggle.stories-C246IMaJ.js} +1 -1
- package/storybook-static/assets/{Switch-BH_4ycNK.js → Switch-B7YHQ8RD.js} +1 -1
- package/storybook-static/assets/{Switch-Dt3ueGSz.js → Switch-DBy8vjn7.js} +1 -1
- package/storybook-static/assets/{Switch.stories-D8QjgT7L.js → Switch.stories-DGNBdsM9.js} +1 -1
- package/storybook-static/assets/{Table-Dkc-p3UI.js → Table-Dq-VCTGA.js} +1 -1
- package/storybook-static/assets/{Table.stories-CxsRJTIG.js → Table.stories-k34Yi0v3.js} +2 -2
- package/storybook-static/assets/{Tabs-GDTGFRi1.js → Tabs-fn7sRzj8.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-CISivMv5.js → Tabs.stories-B8sK-Se_.js} +2 -2
- package/storybook-static/assets/{TabsBox-_ZPWMEwC.js → TabsBox-X3KaARN1.js} +1 -1
- package/storybook-static/assets/{TagInput-Br23avs3.js → TagInput-FdIxuBd9.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DuIRSMqi.js → TagInput.stories-JUhcy_wx.js} +1 -1
- package/storybook-static/assets/{Text-CkLt10Vz.js → Text-BWGtkt__.js} +1 -1
- package/storybook-static/assets/{Textarea-BrAaINv1.js → Textarea-Btxcf2pE.js} +1 -1
- package/storybook-static/assets/{Textarea-CMlogzK3.js → Textarea-CrY1lm2W.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CtiTme3Z.js → Textarea.stories-BuJvcs2m.js} +1 -1
- package/storybook-static/assets/{TimePanel-D747z5ch.js → TimePanel-CyDMs_9b.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-ITfxPEfw.js → TimePanel.stories-D7pfbeAq.js} +1 -1
- package/storybook-static/assets/{Toggle-DxVDjZWO.js → Toggle-B9i5Nxqi.js} +1 -1
- package/storybook-static/assets/{Toggle-6xZbnq1Y.js → Toggle-CGiGQr3r.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-Cvv_0W65.js → Toggle.stories-BAcsBc7E.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-D2oAC-5W.js → TreeMultiSelect-BBUJvAg2.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-QbVke8HD.js → TreeMultiSelect-Bj9x-FjA.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-BiV7zyIB.js → TreeMultiSelect.stories-DpjGCk_B.js} +1 -1
- package/storybook-static/assets/TreePickerBase-CC-3eYlM.js +76 -0
- package/storybook-static/assets/{TreeSelect-Bosab_C1.js → TreeSelect-CipQ8aER.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BnF5-pto.js → TreeSelect-Czqi0HU7.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-BQ0vg5CC.js → TreeSelect.stories-Br4QK9Qx.js} +1 -1
- package/storybook-static/assets/{TreeTable-DT2drb5t.js → TreeTable-BTFgqDuZ.js} +1 -1
- package/storybook-static/assets/TreeTable.stories-C_StgfP4.js +138 -0
- package/storybook-static/assets/{blocks-75pOZCvw.js → blocks-DSdwH27-.js} +3 -3
- package/storybook-static/assets/{check-DzHUCh3a.js → check-F7LTOcX9.js} +1 -1
- package/storybook-static/assets/{chevron-down-DwuceiI1.js → chevron-down-DU6OU9YF.js} +1 -1
- package/storybook-static/assets/{chevron-left-DnfRcShb.js → chevron-left-DnUqy4I0.js} +1 -1
- package/storybook-static/assets/{chevron-right-GCc6AKki.js → chevron-right-CUckMwiM.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-C57Dx1sH.js → chunk-W22LQPXL-BgEb_fsE.js} +1 -1
- package/storybook-static/assets/{circle-alert-CO8JWBDk.js → circle-alert-DPK067JY.js} +1 -1
- package/storybook-static/assets/{circle-check-BJsDvlur.js → circle-check-x04oLmjg.js} +1 -1
- package/storybook-static/assets/{components-D68ruMaT.js → components-dQ19bWI6.js} +3 -3
- package/storybook-static/assets/{contextMenu-DgGPPB-G.js → contextMenu-Cnqapj5L.js} +1 -1
- package/storybook-static/assets/{download-BOGBbCUe.js → download-ChkRVidG.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CgNxhXDh.js → floating-ui.react-D6vXgMrH.js} +1 -1
- package/storybook-static/assets/{foundationApi-CkHYhT3I.js → foundationApi-vdKLpE9u.js} +1 -1
- package/storybook-static/assets/{foundationLib-Dt3CXElB.js → foundationLib-BMzvWmBd.js} +1 -1
- package/storybook-static/assets/{hooks-Bvex5_ua.js → hooks-_PxYfSKj.js} +1 -1
- package/storybook-static/assets/{iframe-NweSoAE5.js → iframe-BUSpC7cG.js} +4 -4
- package/storybook-static/assets/iframe-DlWLVY0Z.js +1 -0
- package/storybook-static/assets/{info-BbHh5iRi.js → info-B-__C3ty.js} +1 -1
- package/storybook-static/assets/{odata-BKWiUXxz.js → odata-Drtkg7ku.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-C_-DgY_0.js → odataStoryFixtures-nNacpAcU.js} +1 -1
- package/storybook-static/assets/react-D_cVWduy.js +9 -0
- package/storybook-static/assets/{refresh-cw-BittqUWY.js → refresh-cw-7pb0B6Mf.js} +1 -1
- package/storybook-static/assets/{settings-2-DSr8VUkZ.js → settings-2-B2OAUiB2.js} +1 -1
- package/storybook-static/assets/{sortable-CtEptgJk.js → sortable-BInl0Hcu.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-BbnELPKq.js → syntaxhighlighter-QEQV7K2Y-bZ77Yc1U.js} +1 -1
- package/storybook-static/assets/{trash-2-CEFiEn8f.js → trash-2-BR-EQr6g.js} +1 -1
- package/storybook-static/assets/{triangle-alert-BkdD8lW-.js → triangle-alert-BeikvCmj.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase--GVXfd0Y.js → useODataSelectBase-DKuY9xIv.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DZETFgtg.js → useODataTreeData-jlSe9CP5.js} +1 -1
- package/storybook-static/assets/usePickerQuery-B2h6PAeQ.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-3xNT65o_.js +6 -0
- package/storybook-static/assets/{x-BVlwcuXX.js → x-5lfcf9Zd.js} +1 -1
- package/storybook-static/assets/zxing_reader-BxB2YfIY.wasm +0 -0
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/base-table-B9m-r0Ve.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-WmCmgK5f.js +0 -15
- package/storybook-static/assets/LayoutPicker-DJ_3VmmS.js +0 -376
- package/storybook-static/assets/ModalManagerProvider-Bx4ZvzkV.js +0 -1
- package/storybook-static/assets/Select-Dvx7ScXo.js +0 -12
- package/storybook-static/assets/TreePickerBase-DFww9BKU.js +0 -76
- package/storybook-static/assets/TreeTable.stories-oXbPYQ4z.js +0 -138
- package/storybook-static/assets/iframe-CjMLLeiq.js +0 -1
- package/storybook-static/assets/react-Dk8xkSAa.js +0 -9
- package/storybook-static/assets/usePickerQuery-IES7kJEs.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-CXH16qSz.js +0 -6
- /package/storybook-static/assets/{ModalManagerProvider-CTRpBlaO.css → Modal-CTRpBlaO.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"generatedAt":
|
|
1
|
+
{"generatedAt":1788865011430,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"tanstack-react","packageName":"@tanstack/react-router","version":"1.170.32"},"knownPackages":{"testPackages":{"@chromatic-com/storybook":"5.3.0","@storybook/addon-vitest":"10.5.10","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@testing-library/user-event":"^14.6.1","@vitest/browser":"4.1.11","playwright":"1.62.1","vitest":"4.1.11"},"stateManagementPackages":{"zustand":"5.0.0"},"dataFetchingPackages":{"@tanstack/react-query":"5.101.4"},"routerPackages":{"@tanstack/react-router":"1.170.23"}},"hasRouterPackage":false,"packageManager":{"type":"npm","version":"11.7.0","agent":"npm","nodeLinker":"node_modules"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/react-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/react","portableStoriesFileCount":1,"applicationFileCount":9,"storybookVersion":"10.5.10","storybookVersionSpecifier":"^10.5.5","language":"typescript","storybookPackages":{"@storybook/react-vite":{"version":"10.5.10"},"storybook":{}},"addons":{"@chromatic-com/storybook":{"version":"5.3.0"},"@storybook/addon-docs":{"version":"10.5.10"},"@storybook/addon-a11y":{"version":"10.5.10"},"@storybook/addon-vitest":{"version":"10.5.10"}},"packageJsonType":"module"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-table-B9m-r0Ve.js","names":[],"sources":["../../src/base-table/lib/columnPinning.ts","../../src/base-table/lib/formatting.ts","../../src/base-table/lib/mergeDuplicates.ts","../../src/base-table/model/useTableColumnOrder.ts","../../src/base-table/model/useTableColumnPinning.ts","../../src/base-table/model/useTableColumnSizing.ts","../../src/base-table/model/useTableColumnVisibility.ts","../../src/base-table/ui/BaseTable.module.scss","../../src/base-table/ui/BaseTableHeaderCell.tsx","../../src/base-table/ui/BaseTable.tsx","../../src/base-table/ui/FormattedTableCell.module.scss","../../src/base-table/ui/FormattedTableCell.tsx"],"sourcesContent":["import { filterAndDeduplicateIds, pickExistingMapValues } from \"@ryuzaki13/react-foundation-lib/array\";\nimport {\n\tbuildTableColumnLayout,\n\ttype FoundationTableColumn,\n\ttype FoundationTableInstance,\n\ttype FoundationTableState,\n\tgetTableColumnMeta,\n\tresolveTableColumnOrder,\n\tresolveTableLength\n} from \"@ryuzaki13/react-foundation-lib/table\";\n\nimport type { ColumnPinningState } from \"@tanstack/react-table\";\n\nexport type BaseTableColumnLayoutItem<TData extends object> = {\n\tid: string;\n\tcolumn: FoundationTableColumn<TData>;\n\twidth: string;\n};\n\n/**\n * Реактивный срез состояния колонок, от которого зависит физический layout BaseTable.\n *\n * TanStack table instance остаётся стабильным объектом, поэтому BaseTable получает\n * этот срез отдельным prop: React Compiler не должен кэшировать разметку колонок\n * поверх изменившихся order/sizing/pinning/visibility.\n */\nexport type BaseTableColumnState = Pick<FoundationTableState, \"columnOrder\" | \"columnPinning\" | \"columnSizing\" | \"columnVisibility\">;\n\n/**\n * Публичное состояние закрепления колонок для shared-таблиц.\n *\n * Поддерживается только логическая начальная сторона: слева в LTR и справа в RTL.\n */\nexport interface TableColumnPinningState {\n\t/**\n\t * Идентификаторы колонок, закреплённых с начальной стороны, в порядке отображения.\n\t */\n\tstart?: string[];\n}\n\n/**\n * Нормализует публичное состояние закрепления к формату TanStack Table.\n *\n * Конечная зона принудительно очищается, чтобы не открывать неподдерживаемый API.\n */\nexport function normalizeTableColumnPinning(state?: TableColumnPinningState): ColumnPinningState {\n\treturn {\n\t\tstart: Array.from(\n\t\t\tnew Set(\n\t\t\t\t(state?.start ?? []).filter((columnId): columnId is string => typeof columnId === \"string\" && columnId.trim().length > 0)\n\t\t\t)\n\t\t),\n\t\tend: []\n\t};\n}\n\n/**\n * Возвращает ширину колонки в том же формате, что и colgroup базовой таблицы.\n */\nexport function resolveBaseTableColumnWidth<TData extends object>(\n\tcolumn: FoundationTableColumn<TData>,\n\tcolumnSizing?: Readonly<Record<string, number>>\n): string {\n\tconst resizedWidth = columnSizing?.[column.id];\n\tif (typeof resizedWidth === \"number\" && Number.isFinite(resizedWidth) && resizedWidth > 0) {\n\t\treturn `${Math.floor(resizedWidth)}px`;\n\t}\n\n\tconst meta = getTableColumnMeta(column.columnDef);\n\n\tlet width = meta?.width ?? 4;\n\n\tif (typeof width === \"number\") {\n\t\twidth = Math.max(width, 4);\n\t}\n\n\treturn resolveTableLength(width);\n}\n\n/**\n * Собирает видимые leaf-колонки в фактическом порядке рендера: pinned-start -> center -> pinned-end.\n *\n * В отличие от отдельных TanStack getters, порядок явно строится из одного\n * источника `columnOrder`, поэтому `<colgroup>`, header и body получают один\n * и тот же layout после drag&drop.\n */\nexport function getOrderedVisibleLeafColumns<TData extends object>(\n\ttable: FoundationTableInstance<TData>,\n\tcolumnState: BaseTableColumnState\n): FoundationTableColumn<TData>[] {\n\tconst visibleColumns = table.getAllLeafColumns().filter((column) => column.getIsVisible());\n\tconst columnById = new Map(visibleColumns.map((column) => [column.id, column]));\n\tconst visibleColumnIds = visibleColumns.map((column) => column.id);\n\tconst startIds = filterAndDeduplicateIds(columnState.columnPinning.start, visibleColumnIds);\n\tconst endIds = filterAndDeduplicateIds(columnState.columnPinning.end, visibleColumnIds);\n\tconst pinnedIds = new Set([...startIds, ...endIds]);\n\tconst centerIds: string[] = [];\n\n\tfor (const column of visibleColumns) {\n\t\tif (!pinnedIds.has(column.id)) {\n\t\t\tcenterIds.push(column.id);\n\t\t}\n\t}\n\n\tconst orderedCenterIds = resolveTableColumnOrder({\n\t\tids: centerIds,\n\t\torder: columnState.columnOrder\n\t});\n\n\treturn pickExistingMapValues([...startIds, ...orderedCenterIds, ...endIds], columnById);\n}\n\nexport function buildBaseTableColumnLayout<TData extends object>(\n\ttable: FoundationTableInstance<TData>,\n\tcolumnState: BaseTableColumnState\n): BaseTableColumnLayoutItem<TData>[] {\n\tconst columns = getOrderedVisibleLeafColumns(table, columnState);\n\tconst columnById = new Map(columns.map((column) => [column.id, column]));\n\n\treturn buildTableColumnLayout({\n\t\tids: columns.map((column) => column.id),\n\t\tgetWidth: (id) => {\n\t\t\tconst column = columnById.get(id);\n\t\t\treturn column ? resolveBaseTableColumnWidth(column, columnState.columnSizing) : \"0px\";\n\t\t}\n\t}).flatMap((item) => {\n\t\tconst column = columnById.get(item.id);\n\n\t\treturn column\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tcolumn\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t: [];\n\t});\n}\n\n/**\n * Вычисляет sticky-offset для колонок, закреплённых с логической начальной стороны.\n *\n * Значения возвращаются как CSS-length, чтобы корректно суммировать `em`, `px` и `calc(...)`.\n */\nexport function getStartPinnedColumnOffsets<TData extends object>(\n\ttable: FoundationTableInstance<TData>,\n\tcolumnState: BaseTableColumnState\n): Readonly<Record<string, string>> {\n\tconst offsets: Record<string, string> = {};\n\tconst accumulatedWidths: string[] = [];\n\n\tfor (const column of getOrderedVisibleLeafColumns(table, columnState)) {\n\t\tif (column.getIsPinned() !== \"start\") continue;\n\n\t\toffsets[column.id] = combineCssLengths(accumulatedWidths);\n\t\taccumulatedWidths.push(resolveBaseTableColumnWidth(column, columnState.columnSizing));\n\t}\n\n\treturn offsets;\n}\n\n/**\n * Складывает CSS-length значения в безопасную строку `calc(...)`.\n */\nfunction combineCssLengths(lengths: readonly string[]): string {\n\tif (lengths.length === 0) {\n\t\treturn \"0px\";\n\t}\n\n\tif (lengths.length === 1) {\n\t\treturn lengths[0]!;\n\t}\n\n\treturn `calc(${lengths.join(\" + \")})`;\n}\n","import {\n\tcompileFormattersPipelineRuntimeFields,\n\ttype FormattersPipelineRuntimeField,\n\ttype FormattersPipelineRuntimeFields\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { getTableColumnFormattingMeta, type TableColumnDef } from \"@ryuzaki13/react-foundation-lib/table\";\n\n/**\n * Снимок форматирующих данных, вычисленный из набора колонок.\n *\n * Используется и в `Table`, и в `TreeTable`, чтобы не дублировать\n * предкомпиляцию runtime и правила приоритета кастомного `cell`.\n */\nexport interface TableFormattingSnapshot {\n\t/**\n\t * Скомпилированный runtime по идентификаторам колонок.\n\t */\n\truntimeByColumnId: FormattersPipelineRuntimeFields<FormattersPipelineRuntimeField>;\n\t/**\n\t * Идентификаторы колонок с явным кастомным `cell`.\n\t */\n\tcustomCellColumnIds: Set<string>;\n}\n\n/**\n * Определяет стабильный идентификатор колонки для pipeline runtime.\n *\n * Порядок приоритета:\n * 1. `column.id`\n * 2. строковый `accessorKey`\n */\nexport function resolveTableFormattingColumnId<TData extends object>(column: TableColumnDef<TData>): string | undefined {\n\tif (typeof column.id === \"string\" && column.id.trim()) {\n\t\treturn column.id;\n\t}\n\n\tif (\"accessorKey\" in column && typeof column.accessorKey === \"string\" && column.accessorKey.trim()) {\n\t\treturn column.accessorKey;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Проверяет, задан ли у колонки явный кастомный `cell`.\n */\nexport function hasTableColumnCustomCellRenderer<TData extends object>(column: TableColumnDef<TData>): boolean {\n\treturn \"cell\" in column && column.cell != null;\n}\n\n/**\n * Обходит только leaf-колонки, пропуская group-узлы.\n */\nfunction visitLeafTableColumns<TData extends object>(\n\tcolumns: readonly TableColumnDef<TData>[],\n\tvisitor: (column: TableColumnDef<TData>) => void\n): void {\n\tfor (const column of columns) {\n\t\tif (\"columns\" in column && Array.isArray(column.columns) && column.columns.length > 0) {\n\t\t\tvisitLeafTableColumns(column.columns as TableColumnDef<TData>[], visitor);\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisitor(column);\n\t}\n}\n\n/**\n * Собирает snapshot pipeline runtime по описанию колонок.\n */\nexport function buildTableFormattingSnapshot<TData extends object>(columns: readonly TableColumnDef<TData>[]): TableFormattingSnapshot {\n\tconst formattingByColumnId: Record<string, FormattersPipelineRuntimeField> = {};\n\tconst customCellColumnIds = new Set<string>();\n\n\tvisitLeafTableColumns(columns, (column) => {\n\t\tconst columnId = resolveTableFormattingColumnId(column);\n\t\tif (!columnId) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (hasTableColumnCustomCellRenderer(column)) {\n\t\t\tcustomCellColumnIds.add(columnId);\n\t\t}\n\n\t\tconst formatting = getTableColumnFormattingMeta(column);\n\t\tif (!formatting) {\n\t\t\treturn;\n\t\t}\n\n\t\tformattingByColumnId[columnId] = {\n\t\t\t...formatting,\n\t\t\tid: formatting.id ?? columnId,\n\t\t\trole: formatting.role ?? \"dimension\",\n\t\t\ttype: formatting.type ?? \"string\"\n\t\t};\n\t});\n\n\treturn {\n\t\truntimeByColumnId: compileFormattersPipelineRuntimeFields(formattingByColumnId),\n\t\tcustomCellColumnIds\n\t};\n}\n\n/**\n * Определяет, должен ли компонент использовать pipeline runtime для ячейки.\n */\nexport function shouldUseTableFormatting(args: {\n\tcolumnId: string;\n\truntimeByColumnId: FormattersPipelineRuntimeFields<FormattersPipelineRuntimeField>;\n\tcustomCellColumnIds: ReadonlySet<string>;\n}): boolean {\n\tif (args.customCellColumnIds.has(args.columnId)) {\n\t\treturn false;\n\t}\n\n\treturn Boolean(args.runtimeByColumnId[args.columnId]);\n}\n","import {\n\ttype FoundationTableCell,\n\ttype FoundationTableColumn,\n\ttype FoundationTableRow,\n\tgetTableColumnMeta\n} from \"@ryuzaki13/react-foundation-lib/table\";\n\n/**\n * Layout-настройка body-ячейки базовой таблицы.\n */\nexport interface BaseTableCellLayout {\n\thideContent?: boolean;\n\tmergeWithNext?: boolean;\n}\n\n/**\n * Результат расчёта layout для body-ячейки по её `cell.id`.\n */\nexport type BaseTableCellLayoutById = ReadonlyMap<string, BaseTableCellLayout>;\n\n/**\n * Аргументы построения layout для display-only слияния дубликатов.\n */\nexport interface BuildBaseTableMergedCellsLayoutArgs<TData extends object> {\n\trows: readonly FoundationTableRow<TData>[];\n\tcolumns: readonly FoundationTableColumn<TData>[];\n\tresolveRowBoundaryKey?: (row: FoundationTableRow<TData>) => unknown;\n\texcludeColumnIds?: ReadonlySet<string>;\n}\n\ntype VisibleRowCellLookup<TData extends object> = {\n\trow: FoundationTableRow<TData>;\n\tboundaryKey: unknown;\n\tcellByColumnId: ReadonlyMap<string, FoundationTableCell<TData>>;\n};\n\nfunction isMergeableValue(value: unknown): boolean {\n\treturn value !== null && value !== undefined && value !== \"\";\n}\n\nfunction buildVisibleRowCellLookups<TData extends object>(\n\trows: readonly FoundationTableRow<TData>[],\n\tresolveRowBoundaryKey: (row: FoundationTableRow<TData>) => unknown\n): VisibleRowCellLookup<TData>[] {\n\treturn rows.map((row) => ({\n\t\trow,\n\t\tboundaryKey: resolveRowBoundaryKey(row),\n\t\tcellByColumnId: new Map(row.getVisibleCells().map((cell) => [cell.column.id, cell]))\n\t}));\n}\n\n/**\n * Строит layout display-only слияния для колонок с `meta.mergeDuplicates`.\n *\n * Слияние работает только для подряд идущих одинаковых raw-значений. Пустые\n * значения (`null`, `undefined`, `\"\"`) не объединяются.\n */\nexport function buildBaseTableMergedCellsLayout<TData extends object>({\n\trows,\n\tcolumns,\n\tresolveRowBoundaryKey = () => \"__all_rows__\",\n\texcludeColumnIds\n}: BuildBaseTableMergedCellsLayoutArgs<TData>): BaseTableCellLayoutById {\n\tconst mergeableColumns = columns.filter((column) => {\n\t\tif (excludeColumnIds?.has(column.id)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn getTableColumnMeta(column.columnDef)?.mergeDuplicates === true;\n\t});\n\n\tif (rows.length === 0 || mergeableColumns.length === 0) {\n\t\treturn new Map();\n\t}\n\n\tconst rowLookups = buildVisibleRowCellLookups(rows, resolveRowBoundaryKey);\n\tconst layoutByCellId = new Map<string, BaseTableCellLayout>();\n\n\tfor (const column of mergeableColumns) {\n\t\tlet groupStartIndex = -1;\n\t\tlet groupValue: unknown = undefined;\n\t\tlet groupBoundaryKey: unknown = undefined;\n\n\t\tconst finalizeGroup = (endIndexExclusive: number) => {\n\t\t\tif (groupStartIndex === -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupSize = endIndexExclusive - groupStartIndex;\n\t\t\tif (groupSize <= 1) {\n\t\t\t\tgroupStartIndex = -1;\n\t\t\t\tgroupValue = undefined;\n\t\t\t\tgroupBoundaryKey = undefined;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (let index = groupStartIndex; index < endIndexExclusive; index += 1) {\n\t\t\t\tconst cellId = rowLookups[index]?.cellByColumnId.get(column.id)?.id;\n\t\t\t\tif (cellId) {\n\t\t\t\t\tlayoutByCellId.set(cellId, {\n\t\t\t\t\t\thideContent: index > groupStartIndex,\n\t\t\t\t\t\tmergeWithNext: index < endIndexExclusive - 1\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroupStartIndex = -1;\n\t\t\tgroupValue = undefined;\n\t\t\tgroupBoundaryKey = undefined;\n\t\t};\n\n\t\tfor (let index = 0; index < rowLookups.length; index += 1) {\n\t\t\tconst currentRow = rowLookups[index];\n\t\t\tconst currentCell = currentRow?.cellByColumnId.get(column.id);\n\t\t\tconst currentValue = currentCell?.getValue();\n\n\t\t\tif (!currentCell || !isMergeableValue(currentValue)) {\n\t\t\t\tfinalizeGroup(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (groupStartIndex === -1) {\n\t\t\t\tgroupStartIndex = index;\n\t\t\t\tgroupValue = currentValue;\n\t\t\t\tgroupBoundaryKey = currentRow?.boundaryKey;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!Object.is(groupBoundaryKey, currentRow?.boundaryKey) || !Object.is(groupValue, currentValue)) {\n\t\t\t\tfinalizeGroup(index);\n\t\t\t\tgroupStartIndex = index;\n\t\t\t\tgroupValue = currentValue;\n\t\t\t\tgroupBoundaryKey = currentRow?.boundaryKey;\n\t\t\t}\n\t\t}\n\n\t\tfinalizeGroup(rowLookups.length);\n\t}\n\n\treturn layoutByCellId;\n}\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { normalizeTableColumnOrder, type TableColumnOrderState } from \"@ryuzaki13/react-foundation-lib/table\";\nimport { functionalUpdate, type ColumnOrderState, type Updater } from \"@tanstack/react-table\";\n\n/**\n * Аргументы управления порядком колонок таблицы.\n */\nexport interface UseTableColumnOrderArgs {\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n}\n\n/**\n * Результат работы hook управления column order.\n */\nexport interface UseTableColumnOrderResult {\n\t/**\n\t * Актуальный order-state в формате TanStack Table.\n\t */\n\tcolumnOrder: ColumnOrderState;\n\t/**\n\t * Обработчик изменения order-state из TanStack Table.\n\t */\n\tonColumnOrderChange: (updater: Updater<ColumnOrderState>) => void;\n}\n\n/**\n * Инкапсулирует controlled/uncontrolled-паттерн для порядка колонок.\n */\nexport function useTableColumnOrder({\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tonColumnOrderChange\n}: UseTableColumnOrderArgs): UseTableColumnOrderResult {\n\tconst [uncontrolledColumnOrder, setUncontrolledColumnOrder] = useState<TableColumnOrderState | undefined>(undefined);\n\tconst resolvedColumnOrder = useMemo(\n\t\t() => normalizeTableColumnOrder(columnOrder ?? uncontrolledColumnOrder ?? defaultColumnOrder),\n\t\t[columnOrder, defaultColumnOrder, uncontrolledColumnOrder]\n\t);\n\n\tconst handleColumnOrderChange = useCallback(\n\t\t(updater: Updater<ColumnOrderState>) => {\n\t\t\tconst nextColumnOrder = normalizeTableColumnOrder(functionalUpdate(updater, resolvedColumnOrder));\n\n\t\t\tif (columnOrder === undefined) {\n\t\t\t\tsetUncontrolledColumnOrder(nextColumnOrder);\n\t\t\t}\n\n\t\t\tonColumnOrderChange?.(nextColumnOrder);\n\t\t},\n\t\t[columnOrder, onColumnOrderChange, resolvedColumnOrder]\n\t);\n\n\treturn {\n\t\tcolumnOrder: resolvedColumnOrder,\n\t\tonColumnOrderChange: handleColumnOrderChange\n\t};\n}\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { functionalUpdate, type ColumnPinningState, type Updater } from \"@tanstack/react-table\";\n\nimport { normalizeTableColumnPinning, type TableColumnPinningState } from \"../lib/columnPinning\";\n\n/**\n * Аргументы управления состоянием закрепления колонок.\n */\nexport interface UseTableColumnPinningArgs {\n\t/**\n\t * Внешнее controlled-состояние закрепления.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние закрепления.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Вызывается после любого изменения start-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n}\n\n/**\n * Результат работы hook управления column pinning.\n */\nexport interface UseTableColumnPinningResult {\n\t/**\n\t * Актуальный pinning-state в формате TanStack Table.\n\t */\n\tcolumnPinning: ColumnPinningState;\n\t/**\n\t * Обработчик изменения pinning-state из TanStack Table.\n\t */\n\tonColumnPinningChange: (updater: Updater<ColumnPinningState>) => void;\n}\n\n/**\n * Инкапсулирует controlled/uncontrolled-паттерн для логического start-pinning.\n */\nexport function useTableColumnPinning({\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tonColumnPinningChange\n}: UseTableColumnPinningArgs): UseTableColumnPinningResult {\n\tconst [uncontrolledColumnPinning, setUncontrolledColumnPinning] = useState<TableColumnPinningState | undefined>(undefined);\n\tconst resolvedColumnPinning = useMemo(\n\t\t() => normalizeTableColumnPinning(columnPinning ?? uncontrolledColumnPinning ?? defaultColumnPinning),\n\t\t[columnPinning, defaultColumnPinning, uncontrolledColumnPinning]\n\t);\n\n\tconst handleColumnPinningChange = useCallback(\n\t\t(updater: Updater<ColumnPinningState>) => {\n\t\t\tconst nextColumnPinning = normalizeTableColumnPinning(functionalUpdate(updater, resolvedColumnPinning));\n\t\t\tconst nextPublicColumnPinning: TableColumnPinningState = {\n\t\t\t\tstart: nextColumnPinning.start\n\t\t\t};\n\n\t\t\tif (columnPinning === undefined) {\n\t\t\t\tsetUncontrolledColumnPinning(nextPublicColumnPinning);\n\t\t\t}\n\n\t\t\tonColumnPinningChange?.(nextPublicColumnPinning);\n\t\t},\n\t\t[columnPinning, onColumnPinningChange, resolvedColumnPinning]\n\t);\n\n\treturn {\n\t\tcolumnPinning: resolvedColumnPinning,\n\t\tonColumnPinningChange: handleColumnPinningChange\n\t};\n}\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { normalizeTableColumnSizing, type TableColumnSizingState } from \"@ryuzaki13/react-foundation-lib/table\";\nimport { functionalUpdate, type ColumnSizingState, type Updater } from \"@tanstack/react-table\";\n\n/**\n * Аргументы управления шириной колонок таблицы.\n */\nexport interface UseTableColumnSizingArgs {\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Минимальная ширина колонки в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n}\n\n/**\n * Результат работы hook управления column sizing.\n */\nexport interface UseTableColumnSizingResult {\n\t/**\n\t * Актуальный sizing-state в формате TanStack Table.\n\t */\n\tcolumnSizing: ColumnSizingState;\n\t/**\n\t * Обработчик изменения sizing-state из TanStack Table.\n\t */\n\tonColumnSizingChange: (updater: Updater<ColumnSizingState>) => void;\n}\n\n/**\n * Инкапсулирует controlled/uncontrolled-паттерн для ширин колонок.\n */\nexport function useTableColumnSizing({\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnResizeMinWidth,\n\tonColumnSizingChange\n}: UseTableColumnSizingArgs): UseTableColumnSizingResult {\n\tconst [uncontrolledColumnSizing, setUncontrolledColumnSizing] = useState<TableColumnSizingState | undefined>(undefined);\n\tconst resolvedColumnSizing = useMemo(\n\t\t() => normalizeTableColumnSizing(columnSizing ?? uncontrolledColumnSizing ?? defaultColumnSizing, columnResizeMinWidth),\n\t\t[columnResizeMinWidth, columnSizing, defaultColumnSizing, uncontrolledColumnSizing]\n\t);\n\n\tconst handleColumnSizingChange = useCallback(\n\t\t(updater: Updater<ColumnSizingState>) => {\n\t\t\tconst nextColumnSizing = normalizeTableColumnSizing(functionalUpdate(updater, resolvedColumnSizing), columnResizeMinWidth);\n\n\t\t\tif (columnSizing === undefined) {\n\t\t\t\tsetUncontrolledColumnSizing(nextColumnSizing);\n\t\t\t}\n\n\t\t\tonColumnSizingChange?.(nextColumnSizing);\n\t\t},\n\t\t[columnResizeMinWidth, columnSizing, onColumnSizingChange, resolvedColumnSizing]\n\t);\n\n\treturn {\n\t\tcolumnSizing: resolvedColumnSizing,\n\t\tonColumnSizingChange: handleColumnSizingChange\n\t};\n}\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { type TableColumnVisibilityState } from \"@ryuzaki13/react-foundation-lib/table\";\nimport { functionalUpdate, type Updater } from \"@tanstack/react-table\";\n\n/**\n * Аргументы управления видимостью колонок таблицы.\n */\nexport interface UseTableColumnVisibilityArgs {\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Вызывается после любого изменения visibility-state.\n\t */\n\tonColumnVisibilityChange?: (state: TableColumnVisibilityState) => void;\n}\n\n/**\n * Результат работы hook управления видимостью колонок.\n */\nexport interface UseTableColumnVisibilityResult {\n\t/**\n\t * Актуальный visibility-state, который нужно передать в TanStack Table.\n\t */\n\tcolumnVisibility: TableColumnVisibilityState;\n\t/**\n\t * Обработчик изменения visibility-state из TanStack Table.\n\t */\n\tonColumnVisibilityChange: (updater: Updater<TableColumnVisibilityState>) => void;\n}\n\n/**\n * Инкапсулирует controlled/uncontrolled-паттерн для column visibility.\n *\n * Пока пользователь не изменял visibility локально, hook читает\n * `defaultColumnVisibility` напрямую, поэтому асинхронная metadata-инициализация\n * не требует синхронизации prop -> state через эффекты.\n */\nexport function useTableColumnVisibility({\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tonColumnVisibilityChange\n}: UseTableColumnVisibilityArgs): UseTableColumnVisibilityResult {\n\tconst [uncontrolledColumnVisibility, setUncontrolledColumnVisibility] = useState<TableColumnVisibilityState | undefined>(undefined);\n\tconst resolvedColumnVisibility = useMemo(\n\t\t() => columnVisibility ?? uncontrolledColumnVisibility ?? defaultColumnVisibility ?? {},\n\t\t[columnVisibility, defaultColumnVisibility, uncontrolledColumnVisibility]\n\t);\n\n\tconst handleColumnVisibilityChange = useCallback(\n\t\t(updater: Updater<TableColumnVisibilityState>) => {\n\t\t\tconst nextColumnVisibility = functionalUpdate(updater, resolvedColumnVisibility);\n\n\t\t\tif (columnVisibility === undefined) {\n\t\t\t\tsetUncontrolledColumnVisibility(nextColumnVisibility);\n\t\t\t}\n\n\t\t\tonColumnVisibilityChange?.(nextColumnVisibility);\n\t\t},\n\t\t[columnVisibility, onColumnVisibilityChange, resolvedColumnVisibility]\n\t);\n\n\treturn {\n\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange\n\t};\n}\n",".root,\n.headerContextMenuTrigger {\n\tmin-width: 0;\n}\n\n.table {\n\twidth: 100%;\n\tborder-collapse: separate;\n\tborder-spacing: 0;\n\ttable-layout: fixed;\n\tfont-variant-numeric: tabular-nums;\n\n\thyphens: auto;\n}\n\n.head {\n\tz-index: 10;\n}\n\n.pinnedStartBoundary {\n\tbox-shadow: inset var(--focus-offset) 0 0 var(--border-0);\n}\n\n.headerRow {\n\tbackground-color: var(--surface-0);\n}\n\n.headerCell {\n\tposition: relative;\n\tpadding: var(--space-sm) var(--space-md);\n\tbackground-color: var(--surface-2);\n\tborder-bottom: var(--border);\n\tcolor: var(--content-0);\n\tvertical-align: middle;\n}\n\n.headerCellContent {\n\tmin-width: 0;\n}\n\n.headerCellDraggable {\n\tcursor: grab;\n\ttouch-action: none;\n\tuser-select: none;\n\n\t&:active {\n\t\tcursor: grabbing;\n\t}\n}\n\n.headerCellDragging {\n\topacity: 0.75;\n}\n\n.headerCellPinnedStart {\n\tposition: sticky;\n\tz-index: 12;\n}\n\n.bodyRow {\n\ttransition: background-color var(--transition-fast) ease;\n}\n\n.bodyRowInteractive {\n\tcursor: pointer;\n\n\t&:hover .bodyCell,\n\t&:focus-visible .bodyCell {\n\t\tbackground-color: var(--surface-1);\n\t}\n}\n\n.bodyRowSelected {\n\t.bodyCell {\n\t\tbackground-color: var(--surface-1);\n\t}\n}\n\n.bodyCell {\n\tpadding: var(--space-sm) var(--space-md);\n\tbackground-color: var(--surface-0);\n\tborder-bottom: var(--border);\n\tvertical-align: middle;\n}\n\n.bodyCellPinnedStart {\n\tposition: sticky;\n\tz-index: 2;\n}\n\n.bodyCellMergedWithNext {\n\tborder-bottom-color: transparent;\n}\n\n.feedbackCell {\n\tpadding: var(--space-md);\n\tbackground-color: var(--surface-0);\n}\n\n.fetchingRow .feedbackCell {\n\tborder-bottom: 0;\n}\n\n.noData {\n\tpointer-events: none;\n\tposition: absolute;\n\tinset: 0;\n\tz-index: 40;\n}\n","import { ReactNode } from \"react\";\n\nimport { type FoundationTableHeader } from \"@ryuzaki13/react-foundation-lib/table\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { TableHeaderInteractionCell } from \"../../table-column-interactions\";\n\nimport styles from \"./BaseTable.module.scss\";\n\ninterface BaseTableHeaderCellProps<TData extends object> {\n\theader: FoundationTableHeader<TData>;\n\tisPinnedStart: boolean;\n\tinsetInlineStart?: string;\n\tisPinnedBoundary: boolean;\n\tisDragDisabled: boolean;\n\tenableColumnResizing: boolean;\n\tenableColumnReordering: boolean;\n\tcolumnResizeMinWidth: number | undefined;\n\trenderHeaderContent: (header: FoundationTableHeader<TData>) => ReactNode;\n\tonResizeColumn: (columnId: string, width: number) => void;\n\tonResetColumnWidth: (columnId: string) => void;\n}\n\nexport function BaseTableHeaderCell<TData extends object>({\n\theader,\n\tisPinnedStart,\n\tinsetInlineStart,\n\tisPinnedBoundary,\n\tisDragDisabled,\n\tenableColumnResizing,\n\tenableColumnReordering,\n\tcolumnResizeMinWidth,\n\trenderHeaderContent,\n\tonResizeColumn,\n\tonResetColumnWidth\n}: BaseTableHeaderCellProps<TData>) {\n\treturn (\n\t\t<TableHeaderInteractionCell\n\t\t\tcolumnId={header.column.id}\n\t\t\tdragDisabled={!enableColumnReordering || isDragDisabled}\n\t\t\tdraggingClassName={styles.headerCellDragging}\n\t\t\tclassName={cn(styles.headerCell, isPinnedStart && styles.headerCellPinnedStart, isPinnedBoundary && styles.pinnedStartBoundary)}\n\t\t\tstyle={{\n\t\t\t\t// NOTE: заголовок всегда по левому краю\n\t\t\t\t// ...(meta?.align ? { textAlign: meta.align } : {}),\n\t\t\t\t...(isPinnedStart ? { insetInlineStart } : {})\n\t\t\t}}\n\t\t\tresizeHandle={\n\t\t\t\tenableColumnResizing && !header.isPlaceholder\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcolumnId: header.column.id,\n\t\t\t\t\t\t\tminWidth: columnResizeMinWidth,\n\t\t\t\t\t\t\tonResize: onResizeColumn,\n\t\t\t\t\t\t\tonReset: onResetColumnWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}>\n\t\t\t{({ listeners, setActivatorElement }) => (\n\t\t\t\t<div\n\t\t\t\t\tref={enableColumnReordering && !isDragDisabled ? setActivatorElement : undefined}\n\t\t\t\t\tclassName={cn(styles.headerCellContent, enableColumnReordering && !isDragDisabled && styles.headerCellDraggable)}\n\t\t\t\t\t{...(enableColumnReordering && !isDragDisabled ? (listeners ?? {}) : {})}>\n\t\t\t\t\t{renderHeaderContent(header)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</TableHeaderInteractionCell>\n\t);\n}\n","import {\n\tuseCallback,\n\tuseMemo,\n\ttype CSSProperties,\n\ttype KeyboardEvent as ReactKeyboardEvent,\n\ttype MouseEvent as ReactMouseEvent,\n\ttype ReactNode,\n\ttype Ref\n} from \"react\";\n\nimport { DragEndEvent } from \"@dnd-kit/core\";\nimport { restrictToHorizontalAxis } from \"@dnd-kit/modifiers\";\nimport { useDndSortableSensors } from \"@ryuzaki13/react-foundation-lib/hooks\";\nimport {\n\ttype FoundationTableCell,\n\ttype FoundationTableHeader,\n\ttype FoundationTableInstance,\n\ttype FoundationTableRow,\n\tgetTableColumnMeta,\n\tisTableInteractiveElement,\n\tpatchTableColumnWidth,\n\tremoveTableColumnWidth,\n\tresolveReorderedTableHeaderColumns,\n\tresolveTableColumnOrder,\n\ttype TableColumnMeta,\n\ttype TableSelectionMode\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { flexRender } from \"@tanstack/react-table\";\n\nimport { ContextMenu } from \"../../context-menu\";\nimport { GridContainer } from \"../../grid\";\nimport { LoadingMessage, NoData, Scrollable } from \"../../misc\";\nimport { getSortableReorderResult, Sortable } from \"../../sortable\";\nimport { BaseTableColumnState, buildBaseTableColumnLayout, getStartPinnedColumnOffsets } from \"../lib/columnPinning\";\nimport { BaseTableCellLayout } from \"../lib/mergeDuplicates\";\n\nimport styles from \"./BaseTable.module.scss\";\nimport { BaseTableHeaderCell } from \"./BaseTableHeaderCell\";\n\nimport type { FormattersPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\n/**\n * Аргументы кастомизации рендера ячейки базовой таблицы.\n */\nexport interface BaseTableCellRenderArgs<TData extends object> {\n\trow: FoundationTableRow<TData>;\n\tcell: FoundationTableCell<TData>;\n\tdefaultContent: ReactNode;\n\t/**\n\t * Display-модель ячейки после общего formatting runtime.\n\t *\n\t * BaseTable сам не форматирует значения, поэтому поле заполняют адаптеры\n\t * `Table`/`TreeTable`. Слот может отсутствовать у низкоуровневых\n\t * потребителей BaseTable.\n\t */\n\tdisplayValue?: FormattersPipelineDisplayValue;\n\tcolumnMeta?: TableColumnMeta;\n}\n\n/**\n * Внутренний базовый рендерер таблицы.\n *\n * Не знает о плоских или древовидных данных и работает с уже подготовленным экземпляром TanStack Table.\n *\n * @NOTE: не для использования напрямую, это база для `Table` и `TreeTable`\n */\nexport interface BaseTableProps<TData extends object> {\n\ttable: FoundationTableInstance<TData>;\n\tcolumnState: BaseTableColumnState;\n\ttitle?: string;\n\tisLoading?: boolean;\n\tisFetching?: boolean;\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\ttableClassName?: string;\n\tselectionMode?: TableSelectionMode;\n\tscrollableRef?: Ref<HTMLDivElement>;\n\tinteractiveElementSelector?: string;\n\tonActivateRow?: (row: FoundationTableRow<TData>) => void;\n\tisRowInteractive?: (row: FoundationTableRow<TData>) => boolean;\n\tgetRowClassName?: (row: FoundationTableRow<TData>) => string | undefined;\n\tgetCellClassName?: (args: BaseTableCellRenderArgs<TData>) => string | undefined;\n\tgetCellStyle?: (args: BaseTableCellRenderArgs<TData>) => CSSProperties | undefined;\n\tgetCellLayout?: (args: BaseTableCellRenderArgs<TData>) => BaseTableCellLayout | undefined;\n\trenderCellContent?: (args: BaseTableCellRenderArgs<TData>) => ReactNode;\n\t/**\n\t * Общий слот контекстного меню заголовка.\n\t *\n\t * BaseTable намеренно не знает про сортировку, группировку или доменные\n\t * действия. Он только сохраняет единый доступный способ открыть меню для\n\t * `Table` и `TreeTable`, а содержимое передает потребитель.\n\t */\n\trenderHeaderContextMenu?: (header: FoundationTableHeader<TData>) => ReactNode;\n\tenableColumnResizing?: boolean;\n\tenableColumnReordering?: boolean;\n\tcolumnResizeMinWidth?: number;\n\tafterTableContent?: ReactNode;\n}\n\n/**\n * Объединяет header groups из pinned-start/center/pinned-end зон в единый порядок рендера.\n */\nfunction resolveHeaderOrderIndex<TData extends object>(\n\theader: FoundationTableHeader<TData>,\n\tcolumnIndexById: ReadonlyMap<string, number>\n): number {\n\tconst indexes = header\n\t\t.getLeafHeaders()\n\t\t.map((leafHeader) => columnIndexById.get(leafHeader.column.id))\n\t\t.filter((index): index is number => typeof index === \"number\");\n\n\treturn indexes.length ? Math.min(...indexes) : Number.MAX_SAFE_INTEGER;\n}\n\nfunction buildOrderedHeaderGroups<TData extends object>(\n\ttable: FoundationTableInstance<TData>,\n\tcolumnIndexById: ReadonlyMap<string, number>\n): FoundationTableHeader<TData>[][] {\n\tconst startHeaderGroups = table.getStartHeaderGroups();\n\tconst centerHeaderGroups = table.getCenterHeaderGroups();\n\tconst endHeaderGroups = table.getEndHeaderGroups();\n\tconst headerGroupCount = Math.max(startHeaderGroups.length, centerHeaderGroups.length, endHeaderGroups.length);\n\n\treturn Array.from({ length: headerGroupCount }, (_, index) => {\n\t\tconst headers = [\n\t\t\t...(startHeaderGroups[index]?.headers ?? []),\n\t\t\t...(centerHeaderGroups[index]?.headers ?? []),\n\t\t\t...(endHeaderGroups[index]?.headers ?? [])\n\t\t];\n\n\t\treturn headers\n\t\t\t.filter((header) => {\n\t\t\t\tif (header.isPlaceholder) return true;\n\n\t\t\t\treturn header.getLeafHeaders().some((leafHeader) => columnIndexById.has(leafHeader.column.id));\n\t\t\t})\n\t\t\t.sort((left, right) => resolveHeaderOrderIndex(left, columnIndexById) - resolveHeaderOrderIndex(right, columnIndexById));\n\t});\n}\n\n/**\n * Проверяет, что весь header целиком относится к pinned-start зоне.\n *\n * Смешанные grouped headers намеренно не переводятся в sticky-режим в первой итерации.\n */\nfunction resolveHeaderPinnedStartState<TData extends object>(\n\theader: FoundationTableHeader<TData>,\n\tstartPinnedOffsets: Readonly<Record<string, string>>,\n\tlastPinnedColumnId: string | undefined\n): { isPinnedStart: boolean; insetInlineStart?: string; isPinnedBoundary: boolean } {\n\tconst leafHeaders = header.getLeafHeaders();\n\tconst leafColumnIds = leafHeaders.map((leafHeader) => leafHeader.column.id);\n\tconst isPinnedStart = leafColumnIds.length > 0 && leafColumnIds.every((columnId) => columnId in startPinnedOffsets);\n\n\tif (!isPinnedStart) {\n\t\treturn {\n\t\t\tisPinnedStart: false,\n\t\t\tisPinnedBoundary: false\n\t\t};\n\t}\n\n\treturn {\n\t\tisPinnedStart: true,\n\t\tinsetInlineStart: startPinnedOffsets[leafColumnIds[0]!] ?? \"0px\",\n\t\tisPinnedBoundary: Boolean(lastPinnedColumnId && leafColumnIds.includes(lastPinnedColumnId))\n\t};\n}\n\nfunction getCurrentLeafColumnOrder<TData extends object>(\n\ttable: FoundationTableInstance<TData>,\n\tcolumnState: BaseTableColumnState\n): string[] {\n\tconst definedColumnIds = table.getAllLeafColumns().map((column) => column.id);\n\n\treturn resolveTableColumnOrder({\n\t\tids: definedColumnIds,\n\t\torder: columnState.columnOrder\n\t});\n}\n\n/**\n * Базовая таблица с общим UI-каркасом для Table и TreeTable.\n *\n * @NOTE: не для использования напрямую, это база для `Table` и `TreeTable`\n */\nexport function BaseTable<TData extends object>({\n\ttable,\n\tcolumnState,\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tclassName,\n\tminHeight = \"15em\",\n\ttableClassName,\n\tselectionMode = \"none\",\n\tscrollableRef,\n\tinteractiveElementSelector,\n\tonActivateRow,\n\tisRowInteractive,\n\tgetRowClassName,\n\tgetCellClassName,\n\tgetCellStyle,\n\tgetCellLayout,\n\trenderCellContent,\n\trenderHeaderContextMenu,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tafterTableContent\n}: BaseTableProps<TData>) {\n\tconst columnLayout = buildBaseTableColumnLayout(table, columnState);\n\tconst visibleColumns = useMemo(() => columnLayout.map((column) => column.column), [columnLayout]);\n\tconst visibleColumnIds = useMemo(() => columnLayout.map((column) => column.id), [columnLayout]);\n\tconst visibleColumnIndexById = useMemo(() => new Map(visibleColumnIds.map((columnId, index) => [columnId, index])), [visibleColumnIds]);\n\tconst visibleColumnIdSet = useMemo(() => new Set(visibleColumnIds), [visibleColumnIds]);\n\tconst sensors = useDndSortableSensors({ activationDistance: 8 });\n\tconst orderedHeaderGroups = buildOrderedHeaderGroups(table, visibleColumnIndexById);\n\tconst startPinnedOffsets = getStartPinnedColumnOffsets(table, columnState);\n\tconst lastPinnedColumnId = visibleColumns.filter((column) => column.getIsPinned() === \"start\").at(-1)?.id;\n\tconst pinnedStartColumnIds = useMemo(() => columnState.columnPinning.start ?? [], [columnState.columnPinning.start]);\n\tconst pinnedStartColumnIdSet = useMemo(() => new Set(pinnedStartColumnIds), [pinnedStartColumnIds]);\n\tconst rowModel = table.getRowModel();\n\tconst hasTitle = Boolean(title);\n\tconst hasRows = rowModel.rows.length > 0;\n\tconst orderVisibleCells = useCallback(\n\t\t(cells: readonly FoundationTableCell<TData>[]) =>\n\t\t\t[...cells].sort(\n\t\t\t\t(left, right) =>\n\t\t\t\t\t(visibleColumnIndexById.get(left.column.id) ?? Number.MAX_SAFE_INTEGER) -\n\t\t\t\t\t(visibleColumnIndexById.get(right.column.id) ?? Number.MAX_SAFE_INTEGER)\n\t\t\t),\n\t\t[visibleColumnIndexById]\n\t);\n\n\tconst handleResizeColumn = useCallback(\n\t\t(columnId: string, width: number) => {\n\t\t\ttable.setColumnSizing((current) => patchTableColumnWidth(current, columnId, width, columnResizeMinWidth));\n\t\t},\n\t\t[columnResizeMinWidth, table]\n\t);\n\n\tconst handleResetColumnWidth = useCallback(\n\t\t(columnId: string) => {\n\t\t\ttable.setColumnSizing((current) => removeTableColumnWidth(current, columnId));\n\t\t},\n\t\t[table]\n\t);\n\n\tconst handleHeaderColumnDragEnd = useCallback(\n\t\t(event: DragEndEvent) => {\n\t\t\tconst reorder = getSortableReorderResult({\n\t\t\t\tevent,\n\t\t\t\titems: visibleColumnIds\n\t\t\t});\n\t\t\tif (!reorder) return;\n\n\t\t\tconst currentOrder = getCurrentLeafColumnOrder(table, columnState);\n\t\t\tconst nextOrder = resolveReorderedTableHeaderColumns({\n\t\t\t\torder: currentOrder,\n\t\t\t\theaderIds: visibleColumnIds,\n\t\t\t\tpinnedIds: pinnedStartColumnIds,\n\t\t\t\tactiveId: String(reorder.activeId),\n\t\t\t\toverId: String(reorder.overId)\n\t\t\t});\n\n\t\t\tif (!nextOrder) return;\n\n\t\t\ttable.setColumnOrder(nextOrder);\n\t\t},\n\t\t[columnState, pinnedStartColumnIds, table, visibleColumnIds]\n\t);\n\n\tconst renderHeaderContent = (header: FoundationTableHeader<TData>) => {\n\t\tif (header.isPlaceholder) return null;\n\n\t\tconst content = flexRender(header.column.columnDef.header, header.getContext());\n\t\tconst menu = renderHeaderContextMenu?.(header);\n\n\t\tif (!menu) {\n\t\t\treturn content;\n\t\t}\n\n\t\treturn (\n\t\t\t<ContextMenu>\n\t\t\t\t<ContextMenu.Trigger>\n\t\t\t\t\t<div className={styles.headerContextMenuTrigger} tabIndex={0}>\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</div>\n\t\t\t\t</ContextMenu.Trigger>\n\t\t\t\t<ContextMenu.Content>{menu}</ContextMenu.Content>\n\t\t\t</ContextMenu>\n\t\t);\n\t};\n\n\t/**\n\t * Обрабатывает клик по строке, не перехватывая вложенные интерактивные элементы.\n\t */\n\tconst handleRowClick = (event: ReactMouseEvent<HTMLTableRowElement>, row: FoundationTableRow<TData>) => {\n\t\tconst interactive = isRowInteractive?.(row) ?? Boolean(onActivateRow);\n\n\t\tif (!interactive || !onActivateRow || isTableInteractiveElement(event.target, interactiveElementSelector)) {\n\t\t\treturn;\n\t\t}\n\n\t\tonActivateRow(row);\n\t};\n\n\t/**\n\t * Дублирует активацию строки для клавиатуры.\n\t */\n\tconst handleRowKeyDown = (event: ReactKeyboardEvent<HTMLTableRowElement>, row: FoundationTableRow<TData>) => {\n\t\tconst interactive = isRowInteractive?.(row) ?? Boolean(onActivateRow);\n\n\t\tif (!interactive || !onActivateRow || isTableInteractiveElement(event.target, interactiveElementSelector)) {\n\t\t\treturn;\n\t\t}\n\n\t\thandleKeyboardActivation(event, () => onActivateRow(row));\n\t};\n\n\treturn (\n\t\t<GridContainer\n\t\t\ttemplateRows={hasTitle ? \"auto 1fr\" : \"1fr\"}\n\t\t\tclassName={cn(\"overflowHidden w100 h100\", styles.root, className)}\n\t\t\tstyle={{ minHeight }}>\n\t\t\t{hasTitle && <h3 className=\"marginBottomXs\">{title}</h3>}\n\n\t\t\t<div className=\"surface0 overflowHidden relative w100 h100\">\n\t\t\t\t<Scrollable ref={scrollableRef} className=\"w100 h100\">\n\t\t\t\t\t<>\n\t\t\t\t\t\t<table className={cn(styles.table, tableClassName)}>\n\t\t\t\t\t\t\t<colgroup>\n\t\t\t\t\t\t\t\t{columnLayout.map((column) => (\n\t\t\t\t\t\t\t\t\t<col key={column.id} style={column.width ? { width: column.width } : undefined} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</colgroup>\n\n\t\t\t\t\t\t\t<thead className={cn(\"stickyTop\", styles.head)}>\n\t\t\t\t\t\t\t\t{enableColumnReordering ? (\n\t\t\t\t\t\t\t\t\t<Sortable.Root\n\t\t\t\t\t\t\t\t\t\tsensors={sensors}\n\t\t\t\t\t\t\t\t\t\tmodifiers={[restrictToHorizontalAxis]}\n\t\t\t\t\t\t\t\t\t\tonDragEnd={handleHeaderColumnDragEnd}>\n\t\t\t\t\t\t\t\t\t\t<Sortable.Container containerId=\"base-table-header\" items={visibleColumnIds} layout=\"horizontal\">\n\t\t\t\t\t\t\t\t\t\t\t{orderedHeaderGroups.map((headers, headerGroupIndex) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<tr key={`header-group-${headerGroupIndex}`} className={styles.headerRow}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{headers.map((header) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst { isPinnedStart, insetInlineStart, isPinnedBoundary } =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolveHeaderPinnedStartState(header, startPinnedOffsets, lastPinnedColumnId);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isDragDisabled =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader.isPlaceholder ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!visibleColumnIdSet.has(header.column.id) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpinnedStartColumnIdSet.has(header.column.id);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BaseTableHeaderCell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={header}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedStart={isPinnedStart}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinsetInlineStart={insetInlineStart}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedBoundary={isPinnedBoundary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisDragDisabled={isDragDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderHeaderContent={renderHeaderContent}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResizeColumn={handleResizeColumn}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResetColumnWidth={handleResetColumnWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</Sortable.Container>\n\t\t\t\t\t\t\t\t\t</Sortable.Root>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\torderedHeaderGroups.map((headers, headerGroupIndex) => (\n\t\t\t\t\t\t\t\t\t\t<tr key={`header-group-${headerGroupIndex}`} className={styles.headerRow}>\n\t\t\t\t\t\t\t\t\t\t\t{headers.map((header) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst { isPinnedStart, insetInlineStart, isPinnedBoundary } = resolveHeaderPinnedStartState(\n\t\t\t\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartPinnedOffsets,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlastPinnedColumnId\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<BaseTableHeaderCell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={header}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedStart={isPinnedStart}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinsetInlineStart={insetInlineStart}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedBoundary={isPinnedBoundary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisDragDisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderHeaderContent={renderHeaderContent}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResizeColumn={handleResizeColumn}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResetColumnWidth={handleResetColumnWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</thead>\n\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t{rowModel.rows.map((row) => {\n\t\t\t\t\t\t\t\t\tconst interactive = isRowInteractive?.(row) ?? Boolean(onActivateRow);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\tstyles.bodyRow,\n\t\t\t\t\t\t\t\t\t\t\t\tinteractive && styles.bodyRowInteractive,\n\t\t\t\t\t\t\t\t\t\t\t\trow.getIsSelected() && styles.bodyRowSelected,\n\t\t\t\t\t\t\t\t\t\t\t\tgetRowClassName?.(row)\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\taria-selected={selectionMode !== \"none\" ? row.getIsSelected() : undefined}\n\t\t\t\t\t\t\t\t\t\t\ttabIndex={interactive ? 0 : undefined}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => handleRowClick(event, row)}\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(event) => handleRowKeyDown(event, row)}>\n\t\t\t\t\t\t\t\t\t\t\t{orderVisibleCells([\n\t\t\t\t\t\t\t\t\t\t\t\t...row.getStartVisibleCells(),\n\t\t\t\t\t\t\t\t\t\t\t\t...row.getCenterVisibleCells(),\n\t\t\t\t\t\t\t\t\t\t\t\t...row.getEndVisibleCells()\n\t\t\t\t\t\t\t\t\t\t\t]).map((cell) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst columnMeta = getTableColumnMeta(cell.column.columnDef);\n\t\t\t\t\t\t\t\t\t\t\t\tconst defaultContent = flexRender(cell.column.columnDef.cell, cell.getContext());\n\t\t\t\t\t\t\t\t\t\t\t\tconst renderArgs: BaseTableCellRenderArgs<TData> = {\n\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcell,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnMeta\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\tconst cellLayout = getCellLayout?.(renderArgs);\n\t\t\t\t\t\t\t\t\t\t\t\tconst isPinnedStart = cell.column.getIsPinned() === \"start\";\n\t\t\t\t\t\t\t\t\t\t\t\tconst isPinnedBoundary = cell.column.id === lastPinnedColumnId;\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst resolvedStyle = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...(columnMeta?.align ? { textAlign: columnMeta.align } : {}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t...(isPinnedStart\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { insetInlineStart: startPinnedOffsets[cell.column.id] ?? \"0px\" }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t...(getCellStyle?.(renderArgs) ?? {})\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={cell.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.bodyCell,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedStart && styles.bodyCellPinnedStart,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisPinnedBoundary && styles.pinnedStartBoundary,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcellLayout?.mergeWithNext && styles.bodyCellMergedWithNext,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetCellClassName?.(renderArgs)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={resolvedStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{cellLayout?.hideContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: renderCellContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? renderCellContent(renderArgs)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: defaultContent}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t{isFetching && hasRows && (\n\t\t\t\t\t\t\t\t\t<tr className={styles.fetchingRow}>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={Math.max(visibleColumns.length, 1)} className={styles.feedbackCell}>\n\t\t\t\t\t\t\t\t\t\t\t<LoadingMessage />\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</table>\n\n\t\t\t\t\t\t{afterTableContent}\n\t\t\t\t\t</>\n\t\t\t\t</Scrollable>\n\n\t\t\t\t<div className=\"absolute inset0 border\" style={{ pointerEvents: \"none\", zIndex: 20 }}>\n\t\t\t\t\t{!isLoading && !isFetching && !hasRows && <NoData className={styles.noData} />}\n\t\t\t\t\t{isLoading && !hasRows && <LoadingMessage className=\"h100 w100\" />}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</GridContainer>\n\t);\n}\n",".formattedCellValue {\n\twidth: 100%;\n\tmin-width: 0;\n}\n\n.formattedCell,\n.formattedCellInner {\n\t@extend .formattedCellValue;\n\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.formattedCellInner {\n\tgap: var(--space-xs);\n}\n","import { useEffect, useRef } from \"react\";\n\nimport { type FormattersPipelineDisplayValue, resolveValueStateClassName } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { RenderStateIcon } from \"../../misc\";\n\nimport styles from \"./FormattedTableCell.module.scss\";\n\nimport type { TableColumnAlign } from \"@ryuzaki13/react-foundation-lib/table\";\n\n/**\n * Пропсы общего renderer форматированной ячейки.\n */\nexport interface FormattedTableCellProps {\n\t/**\n\t * Нормализованный display-result из formatting-runtime.\n\t */\n\tdisplayValue: FormattersPipelineDisplayValue;\n\t/**\n\t * Табличное выравнивание содержимого.\n\t */\n\talign?: TableColumnAlign;\n}\n\n/**\n * Общий renderer форматированной ячейки для `Table` и будущего `TreeTable`.\n *\n * Компонент отвечает только за UI-отрисовку уже вычисленного display-result:\n * runtime и бизнес-логика вычисления значения в него не входят.\n */\nexport function FormattedTableCell({ displayValue, align = \"left\" }: FormattedTableCellProps) {\n\tconst textRef = useRef<HTMLSpanElement | null>(null);\n\tconst showValue = displayValue.showValue;\n\tconst showIcon = displayValue.showIcon;\n\tconst icon = showIcon ? displayValue.icon : undefined;\n\tconst textValue = showValue && displayValue.value != null ? String(displayValue.value) : \"\";\n\tconst stateClassName = resolveValueStateClassName(displayValue.state);\n\tconst justifyContent = align === \"right\" ? \"flex-end\" : align === \"center\" ? \"center\" : \"flex-start\";\n\tconst textAlign = align === \"center\" ? \"center\" : align === \"right\" ? \"right\" : \"left\";\n\n\tuseEffect(() => {\n\t\tconst element = textRef.current;\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateTitle = () => {\n\t\t\tif (!displayValue.overflowTooltip || !textValue) {\n\t\t\t\telement.removeAttribute(\"title\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isOverflowing = element.scrollWidth > element.clientWidth + 1;\n\t\t\tif (isOverflowing) {\n\t\t\t\telement.setAttribute(\"title\", textValue);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.removeAttribute(\"title\");\n\t\t};\n\n\t\tupdateTitle();\n\n\t\tif (typeof ResizeObserver === \"undefined\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new ResizeObserver(updateTitle);\n\t\tobserver.observe(element);\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [displayValue.overflowTooltip, textValue]);\n\n\treturn (\n\t\t<div className={cn(styles.formattedCell, stateClassName)}>\n\t\t\t<div className={styles.formattedCellInner} style={{ justifyContent }}>\n\t\t\t\t{displayValue.iconPosition === \"left\" ? <RenderStateIcon state={icon} /> : null}\n\n\t\t\t\t{showValue ? (\n\t\t\t\t\t<span ref={textRef} className={cn(\"textOverflow\", styles.formattedCellValue)} style={{ textAlign }}>\n\t\t\t\t\t\t{textValue}\n\t\t\t\t\t</span>\n\t\t\t\t) : null}\n\n\t\t\t\t{displayValue.iconPosition === \"right\" ? <RenderStateIcon state={icon} /> : null}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./rolldown-runtime-DkW27tQK.js";import{t as r}from"./react-BZJXY1be.js";import{n as i,t as a}from"./circle-alert-CO8JWBDk.js";import{n as o,t as s}from"./circle-check-BJsDvlur.js";import{i as c,n as l,r as u,t as d}from"./info-BbHh5iRi.js";import{n as f,r as p,t as m}from"./sortable-CtEptgJk.js";import{n as h}from"./iframe-NweSoAE5.js";import{t as g}from"./shim-DlYORV19.js";import{A as _,B as v,C as y,D as b,E as x,F as S,G as C,H as ee,I as w,K as te,L as T,M as E,N as ne,O as re,P as ie,R as D,S as O,T as k,U as A,V as j,W as M,b as N,c as ae,f as oe,j as se,k as ce,l as le,m as ue,p as de,q as fe,u as pe,v as me,w as he,x as ge,y as _e,z as P}from"./odata-BKWiUXxz.js";import{a as F,i as I,n as ve}from"./utils-tg3ibbzi.js";import{a as ye,n as be,o as xe}from"./array-D-_yMMUK-BQ0uu1hZ.js";import{r as Se,u as Ce,y as we}from"./formatters-D33Uh3si-Df97arf9.js";import{i as Te,n as Ee,r as De,t as Oe}from"./NoData-F_z857Vw.js";import{n as ke,t as Ae}from"./ContextMenu-Pt-na4FV.js";import{n as je,t as Me}from"./GridContainer-fKYgDsLl.js";import{c as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as Re}from"./hooks-Bvex5_ua.js";import{n as ze,t as Be}from"./Scrollable-_qgUxctu.js";var Ve=n((e=>{var t=r(),n=g();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),He=n(((e,t)=>{t.exports=Ve()}));function Ue(e){return We(e)||typeof e==`function`||Ge(e)}function We(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Ge(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function L(e,t){return e==null?null:Ue(e)?qe.createElement(e,t):e}function Ke(e){if(`cell`in e&&e.cell){let t=e.cell,n=t.column.columnDef,r=t,i=n;return r.getIsAggregated?.()?L(i.aggregatedCell??n.cell,t.getContext()):r.getIsPlaceholder?.()?null:L(n.cell,t.getContext())}return`header`in e&&e.header?L(e.header.column.columnDef.header,e.header.getContext()):`footer`in e&&e.footer?L(e.footer.column.columnDef.footer,e.footer.getContext()):null}var qe;function Je(){return(Je=t((()=>{qe=e(r(),1)})))()}function Ye({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Xe(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}function Ze(e){try{++st,e()}finally{--st||Qe()}}function R(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=nt(n,e)}function Qe(){if(!(st>0)){for(;V<ot;){let e=z[V];z[V++]=void 0,e.notify()}V=0,ot=0}}function $e(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:+!n,get(){return H!==void 0&&tt(i,H,B),i._snapshot},subscribe(e){let t=Xe(e),n={current:!1},r=et(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=H,o=t?.compare??Object.is;if(n)H=i,++B,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{H=a,n&&(i.flags&=-5),R(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&it(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&at(e)}}else e&32&&(i.flags=e&-33);return H!==void 0&&tt(i,H,B),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(rt(e),at(e),Qe())}},i}function et(e){let t=()=>{let t=H;H=n,++B,n.depsTail=void 0,n.flags=6;try{return e()}finally{H=t,n.flags&=-5,R(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&it(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,R(this)}};return t(),n}var z,B,tt,nt,rt,it,at,V,ot,H,st;function ct(){return(ct=t((()=>{z=[],B=0,{link:tt,unlink:nt,propagate:rt,checkDirty:it,shallowPropagate:at}=Ye({update(e){return e._update()},notify(e){z[ot++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,R(e))}}),V=0,ot=0,st=0})))()}function lt(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=ut(e);if(n.length!==ut(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function ut(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function dt(e,t){return e===t}function ft(e,t=e=>e,n){let r=n?.compare??dt,i=(0,pt.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,pt.useCallback)(()=>e.get(),[e]);return(0,mt.useSyncExternalStoreWithSelector)(i,a,a,t,r)}var pt,mt;function ht(){return(ht=t((()=>{pt=r(),mt=He()})))()}function gt(e){let t=ft(e.source,e.selector,{compare:lt});return typeof e.children==`function`?e.children(t):e.children}function _t(){return(_t=t((()=>{ht()})))()}function vt(e){let t=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),`set`in e&&(t.setState=e.set.bind(e)),t}function yt(e){let{createAtom:t,batch:n}=e,r=t(0);return{createOptionsStore:!1,wrapExternalAtoms:!1,addSubscription:()=>{throw Error(`Feature not supported in current reactivity implementation`)},unmount:()=>{throw Error(`Feature not supported in current reactivity implementation`)},schedule:e.schedule??(e=>queueMicrotask(e)),batch:n,untrack:e=>e(),createReadonlyAtom:(e,n)=>{let i=n?.compare??Object.is,a=!1,o,s=()=>{let t=e();return(!a||!i(o,t))&&(o=t,a=!0),o},c=t(()=>(r.get(),s()),{compare:i});return{get:s,subscribe:c.subscribe.bind(c)}},createWritableAtom:(e,n)=>t(e,{compare:n?.compare}),commit:()=>{r.set(e=>e+1)}}}function bt(e,t=Object.is){let n=!1,r;return{get:e.get,markCommitted:e=>{r=e,n=!0},subscribe:i=>e.subscribe(e=>{(!n||!t(r,e))&&i(e)})}}function xt(){return yt({createAtom:$e,batch:Ze})}function St(){return(St=t((()=>{ct()})))()}function Ct(e){return e.row.getValue(e.column.id)}function wt(e){return e.getValue()??e.table.options.renderFallbackValue}function Tt(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}var Et;function Dt(){return(Dt=t((()=>{A(),Et={assignCellPrototype:(e,t)=>{w(`coreCellsFeature`,e,t,{cell_getValue:{fn:e=>Ct(e)},cell_renderValue:{fn:e=>wt(e)},cell_getContext:{fn:e=>Tt(e),memoDeps:e=>[e]}})}}})))()}function Ot(e){if(!e._columnPrototype){e._columnPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignColumnPrototype?.(e._columnPrototype,e)}return e._columnPrototype}function kt(e,t,n,r){let i={...e.getDefaultColumnDef(),...t},a=i.accessorKey,o=a===void 0?void 0:String(a),s=i.id??o?.replaceAll(`.`,`_`)??(typeof i.header==`string`?i.header:void 0),c;if(i.accessorFn)c=i.accessorFn;else if(a!==void 0){if(typeof a==`string`&&a.includes(`.`)){let e=a.split(`.`);c=t=>{let n=t;for(let t=0;t<e.length;t++){let r=e[t];n=n?.[r]}return n}}else c=e=>e[i.accessorKey]}if(!s)throw Error();let l=Ot(e),u=Object.create(l);u.accessorFn=c,u.columnDef=i,u.columns=[],u.depth=n,u.id=`${String(s)}`,u.parent=r;let d=e._columnInstanceInitFns;for(let e=0;e<d.length;e++)d[e](u);return u}function At(e){return[e,...e.columns.flatMap(e=>e.getFlatColumns())]}function jt(e){if(e.columns.length){let t=e.columns.flatMap(e=>e.getLeafColumns());return D(e.table,`getOrderColumns`,re)(t)}return[e]}function Mt(e){return{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>e.renderValue()?.toString?.()??null,...Object.values(e._features).reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef?.()),{}),...e.options.defaultColumn}}function Nt(e,t,n,r=0){let i=Array(t.length);for(let a=0;a<t.length;a++){if(!(a in t))continue;let o=t[a],s=kt(e,o,r,n),c=o;s.columns=c.columns?Nt(e,c.columns,s,r+1):[],i[a]=s}return i}function Pt(e){return Nt(e,e.options.columns)}function Ft(e){return e.getAllColumns().flatMap(e=>e.getFlatColumns())}function It(e){let t=M(),n=e.getAllFlatColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Lt(e){let t=e.getAllColumns().flatMap(e=>e.getLeafColumns());return D(e,`getOrderColumns`,re)(t)}function Rt(e){let t=M(),n=e.getAllLeafColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function zt(e,t){return e.getAllFlatColumnsById()[t]}function Bt(){return(Bt=t((()=>{A(),b()})))()}var Vt;function Ht(){return(Ht=t((()=>{A(),Bt(),Vt={assignColumnPrototype:(e,t)=>{w(`coreColumnsFeature`,e,t,{column_getFlatColumns:{fn:e=>At(e),memoDeps:e=>[e.table.options.columns]},column_getLeafColumns:{fn:e=>jt(e),memoDeps:e=>[e.table.atoms.columnOrder?.get(),e.table.atoms.grouping?.get(),e.table.options.columns,e.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{T(`coreColumnsFeature`,e,{table_getDefaultColumnDef:{fn:()=>Mt(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>Pt(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>Ft(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>It(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>Lt(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>Rt(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:t=>zt(e,t)}})}}})))()}function Ut(e,t){for(let n=0;n<e.subHeaders.length;n++)Ut(e.subHeaders[n],t);t.push(e)}function Wt(e){let t=[];return Ut(e,t),t}function Gt(e){return{column:e.column,header:e,table:e.column.table}}function Kt(e){let{start:t,end:n}=e.atoms.columnPinning?.get()??ie(),r=e.getAllColumns(),i=D(e,`getVisibleLeafColumns`,ne);if(!t.length&&!n.length)return ce(r,i,e);let a=e.getAllLeafColumnsById(),o=[];for(let e=0;e<t.length;e++){let n=a[t[e]];n&&D(n,`getIsVisible`,se)&&o.push(n)}let s=[];for(let e=0;e<n.length;e++){let t=a[n[e]];t&&D(t,`getIsVisible`,se)&&s.push(t)}let c=i.filter(e=>!t.includes(e.id)&&!n.includes(e.id));return ce(r,[...o,...c,...s],e)}function qt(e){return[...e.getHeaderGroups()].reverse()}function Jt(e){let t=e.getHeaderGroups(),n=[];for(let e=0;e<t.length;e++){let r=t[e].headers;for(let e=0;e<r.length;e++)n.push(r[e])}return n}function Yt(e){let t=e.getHeaderGroups()[0]?.headers??[],n=[];for(let e=0;e<t.length;e++){let r=t[e].getLeafHeaders();for(let e=0;e<r.length;e++)n.push(r[e])}return n}function Xt(){return(Xt=t((()=>{A(),E(),_(),S()})))()}var Zt;function Qt(){return(Qt=t((()=>{A(),Xt(),Zt={assignHeaderPrototype:(e,t)=>{w(`coreHeadersFeature`,e,t,{header_getLeafHeaders:{fn:e=>Wt(e),memoDeps:e=>[e.column.table.options.columns]},header_getContext:{fn:e=>Gt(e),memoDeps:e=>[e.column.table.options.columns]}})},constructTableAPIs:e=>{T(`coreHeadersFeature`,e,{table_getHeaderGroups:{fn:()=>Kt(e),memoDeps:()=>[e.options.columns,e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.options.groupedColumnMode]},table_getFooterGroups:{fn:()=>qt(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>Jt(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>Yt(e),memoDeps:()=>[e.getHeaderGroups()]}})}}})))()}function $t(e){if(!e._rowPrototype){e._rowPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignRowPrototype?.(e._rowPrototype,e)}return e._rowPrototype}var en;function tn(){return(tn=t((()=>{A(),en=(e,t,n,r,i,a,o)=>{let s=$t(e),c=Object.create(s);c._displayIndexCache=-1,c._uniqueValuesCache=M(),c._valuesCache=M(),c.depth=i,c.id=t,c.index=r,c.original=n,c.parentId=o,c.subRows=a??[];let l=e._rowInstanceInitFns;for(let e=0;e<l.length;e++)l[e](c);return c}})))()}function nn(){return[]}function rn(e,t){C(e,`cellSelection`,t?nn():P(e.initialState.cellSelection)??nn())}function an(e){e.atoms.cellSelection&&(e.options.autoResetAll??e.options.autoResetCellSelection??!0)&&e._reactivity.schedule(()=>rn(e))}function on(){return(on=t((()=>{A()})))()}function sn(e){if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if((e.atoms.pagination?.get()?.pageIndex??U)===U)return;un(e,!0)}}function cn(e,t){C(e,`pagination`,t)}function ln(e,t){cn(e,n=>{let r=j(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})}function un(e,t){ln(e,t?U:e.initialState.pagination?.pageIndex??U)}var U;function dn(){return(dn=t((()=>{A(),U=0})))()}function fn(e,t){C(e,`sorting`,t)}function pn(e,t){fn(e,t?[]:P(e.initialState.sorting??[]))}function mn(e){e.atoms.sorting&&(e.options.autoResetAll??e.options.autoResetSorting??!1)&&pn(e)}function hn(){return(hn=t((()=>{A()})))()}function gn(){return e=>fe({feature:`coreRowModelsFeature`,table:e,fnName:`table.getCoreRowModel`,memoDeps:()=>[e.options.data],fn:()=>vn(e,e.options.data),onAfterUpdate:te(()=>{x(e),sn(e),mn(e),an(e)})})}function _n(e,t,n,r=0,i){let a=[];for(let o=0;o<n.length;o++){let s=n[o],c=en(e,e.getRowId(s,o,i),s,o,r,void 0,i?.id);t.flatRows.push(c),t.rowsById[c.id]=c,a.push(c),e.options.getSubRows&&(c.originalSubRows=e.options.getSubRows(s,o),c.originalSubRows?.length&&(c.subRows=_n(e,t,c.originalSubRows,r+1,c)))}return a}function vn(e,t){let n={rows:[],flatRows:[],rowsById:M()};return n.rows=_n(e,n,t),n}function yn(){return(yn=t((()=>{A(),tn(),on(),k(),dn(),hn()})))()}function bn(e){return e._rowModels.coreRowModel||(e._rowModels.coreRowModel=e.options.features.coreRowModel?.(e)??gn()(e)),e._rowModels.coreRowModel()}function xn(e){return e.getCoreRowModel()}function Sn(e){return e._rowModels.filteredRowModel||(e._rowModels.filteredRowModel=e.options.features.filteredRowModel?.(e)),e.options.manualFiltering||!e._rowModels.filteredRowModel?e.getPreFilteredRowModel():e._rowModels.filteredRowModel()}function Cn(e){return e.getFilteredRowModel()}function wn(e){return e._rowModels.groupedRowModel||(e._rowModels.groupedRowModel=e.options.features.groupedRowModel?.(e)),e.options.manualGrouping||!e._rowModels.groupedRowModel?e.getPreGroupedRowModel():e._rowModels.groupedRowModel()}function Tn(e){return e.getGroupedRowModel()}function En(e){return e._rowModels.sortedRowModel||(e._rowModels.sortedRowModel=e.options.features.sortedRowModel?.(e)),e.options.manualSorting||!e._rowModels.sortedRowModel?e.getPreSortedRowModel():e._rowModels.sortedRowModel()}function Dn(e){return e.getSortedRowModel()}function On(e){return e._rowModels.expandedRowModel||(e._rowModels.expandedRowModel=e.options.features.expandedRowModel?.(e)),e.options.manualExpanding||!e._rowModels.expandedRowModel?e.getPreExpandedRowModel():e._rowModels.expandedRowModel()}function kn(e){return e.getExpandedRowModel()}function An(e){return e._rowModels.paginatedRowModel||(e._rowModels.paginatedRowModel=e.options.features.paginatedRowModel?.(e)),e.options.manualPagination||!e._rowModels.paginatedRowModel?e.getPrePaginatedRowModel():e._rowModels.paginatedRowModel()}function jn(e){return e.getPaginatedRowModel()}function Mn(){return(Mn=t((()=>{yn()})))()}var Nn;function Pn(){return(Pn=t((()=>{A(),Mn(),Nn={constructTableAPIs:e=>{T(`coreRowModelsFeature`,e,{table_getCoreRowModel:{fn:()=>bn(e)},table_getPreFilteredRowModel:{fn:()=>xn(e)},table_getFilteredRowModel:{fn:()=>Sn(e)},table_getPreGroupedRowModel:{fn:()=>Cn(e)},table_getGroupedRowModel:{fn:()=>wn(e)},table_getPreSortedRowModel:{fn:()=>Tn(e)},table_getSortedRowModel:{fn:()=>En(e)},table_getPreExpandedRowModel:{fn:()=>Dn(e)},table_getExpandedRowModel:{fn:()=>On(e)},table_getPrePaginatedRowModel:{fn:()=>kn(e)},table_getPaginatedRowModel:{fn:()=>An(e)},table_getRowModel:{fn:()=>jn(e)}})}}})))()}function Fn(e){if(!e._cellPrototype){e._cellPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignCellPrototype?.(e._cellPrototype,e)}return e._cellPrototype}function In(e,t,n){let r=Fn(n),i=Object.create(r);i.column=e,i.id=`${t.id}_${e.id}`,i.row=t;let a=n._cellInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Ln(e){let t=e.table.getRowsInDisplayOrder(),n=e._displayIndexCache;return t[n]===e?n:-1}function Rn(e){let t=e.getPrePaginatedRowModel().rows;if(e.options.paginateExpandedRows===!1){let e=[],n=t=>{t._displayIndexCache=e.length,e.push(t),t.subRows.length&&t.getIsExpanded?.()&&t.subRows.forEach(n)};return t.forEach(n),e}for(let e=0;e<t.length;e++)t[e]._displayIndexCache=e;return t}function zn(e,t){if(ee(e._valuesCache,t))return e._valuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return e._valuesCache[t]=n.accessorFn(e.original,e.index),e._valuesCache[t]}function Bn(e,t){if(ee(e._uniqueValuesCache,t))return e._uniqueValuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return n.columnDef.getUniqueValues?(e._uniqueValuesCache[t]=n.columnDef.getUniqueValues(e.original,e.index),e._uniqueValuesCache[t]):(e._uniqueValuesCache[t]=[e.getValue(t)],e._uniqueValuesCache[t])}function Vn(e,t){return e.getValue(t)??e.table.options.renderFallbackValue}function Hn(e){return v(e.subRows,e=>e.subRows)}function Un(e){let t=e.getCoreRowModel().flatRows,n=0;for(let e=0;e<t.length;e++)n=Math.max(n,t[e].depth);return n}function Wn(e){if(e.parentId)return e.table.getCoreRowModel().rowsById[e.parentId]??e.table.getRow(e.parentId,!0)}function Gn(e){let t=[],n=e;for(;;){let e=n.getParentRow();if(!e)break;t.push(e),n=e}return t.reverse()}function Kn(e){let t=e.table.getAllLeafColumns(),n=e._cellsCache;n||=e._cellsCache=new WeakMap;let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i],o=n.get(a);o||(o=In(a,e,e.table),n.set(a,o)),r[i]=o}return r}function qn(e){let t=M(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];t[r.column.id]=r}return t}function Jn(e,t,n,r){return t.options.getRowId?.(e,n,r)??(r?`${r.id}.${n}`:String(n))}function Yn(e,t,n){let r=(n?e.getPrePaginatedRowModel():e.getRowModel()).rowsById[t];if(!r&&(r=e.getCoreRowModel().rowsById[t],!r))throw Error();return r}function Xn(){return(Xn=t((()=>{A()})))()}var Zn;function Qn(){return(Qn=t((()=>{A(),Xn(),Zn={assignRowPrototype:(e,t)=>{w(`coreRowsFeature`,e,t,{row_getDisplayIndex:{fn:e=>Ln(e)},row_getAllCellsByColumnId:{fn:e=>qn(e),memoDeps:e=>[e.getAllCells()]},row_getAllCells:{fn:e=>Kn(e),memoDeps:e=>[e.table.getAllLeafColumns()]},row_getLeafRows:{fn:e=>Hn(e),memoDeps:e=>[e.subRows]},row_getParentRow:{fn:e=>Wn(e)},row_getParentRows:{fn:e=>Gn(e)},row_getUniqueValues:{fn:(e,t)=>Bn(e,t)},row_getValue:{fn:(e,t)=>zn(e,t)},row_renderValue:{fn:(e,t)=>Vn(e,t)}})},constructTableAPIs:e=>{T(`coreRowsFeature`,e,{table_getRowsInDisplayOrder:{fn:()=>Rn(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(t,n,r)=>Jn(t,e,n,r)},table_getRow:{fn:(t,n)=>Yn(e,t,n)},table_getMaxSubRowDepth:{fn:()=>Un(e),memoDeps:()=>[e.getCoreRowModel()]}})}}})))()}function $n(e,t,n=(e,t)=>e===t){let r=t===void 0?e.options.state:t;e._reactivity.batch(()=>{if(r)for(let t in r){let i=e.baseAtoms[t];if(!i)continue;let a=r[t],o=a===void 0?e.initialState[t]:a;n(e._reactivity.untrack(()=>i.get()),o)||i.set(()=>o)}})}function er(e,t,n=(e,t)=>e===t){e._reactivity.batch(()=>{$n(e,t,n),e._reactivity.commit?.()})}function tr(e){let t=P(e.initialState);e._reactivity.batch(()=>{let n=Object.keys(t);for(let r=0;r<n.length;r++){let i=n[r];e.baseAtoms[i].set(t[i])}});let n=Object.values(e._features);for(let t=0;t<n.length;t++)n[t].resetTableInstanceData?.(e)}function nr(e,t){let{features:n,atoms:r,initialState:i}=e.options;if(!e.options.mergeOptions)return{...e.options,...t,features:n,atoms:r,initialState:i};let a=e.options.mergeOptions(e.options,t),o={...Object.getOwnPropertyDescriptors(a)};return Object.defineProperties(Object.create(Object.getPrototypeOf(a)),{...o,features:{value:n,enumerable:!0,configurable:!0,writable:!0},atoms:{value:r,enumerable:!0,configurable:!0,writable:!0},initialState:{value:i,enumerable:!0,configurable:!0,writable:!0}})}function rr(e,t,n){let r=nr(e,j(t,e.options));e.optionsStore?e.optionsStore.set(()=>r):e.options=r,n?.syncExternalState!==!1&&er(e,r.state??null)}function ir(){return(ir=t((()=>{A()})))()}var ar;function or(){return(or=t((()=>{A(),ir(),ar={constructTableAPIs:e=>{T(`coreTablesFeature`,e,{table_reset:{fn:()=>tr(e)},table_setOptions:{fn:t=>rr(e,t)}})}}})))()}var sr;function cr(){return(cr=t((()=>{Dt(),Ht(),Qt(),Pn(),Qn(),or(),sr={coreCellsFeature:Et,coreColumnsFeature:Vt,coreHeadersFeature:Zt,coreRowModelsFeature:Nn,coreRowsFeature:Zn,coreTablesFeature:ar}})))()}function lr(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=ur(e);if(n.length!==ur(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function ur(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function dr(e,t={}){return Object.values(e).forEach(e=>{t=e.getInitialState?.(t)??t}),P(t)}function fr(e){let t=e.features.coreReactivityFeature,{aggregationFns:n,columnMeta:r,coreRowModel:i,expandedRowModel:a,facetedMinMaxValues:o,facetedRowModel:s,facetedUniqueValues:c,filterFns:l,filterMeta:u,filteredRowModel:d,groupedRowModel:f,paginatedRowModel:p,sortFns:m,sortedRowModel:h,tableMeta:g,..._}=e.features,v={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...sr,..._},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:t,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:n,filterFns:l,sortFns:m},_rowModels:{},atoms:{},baseAtoms:{}},y=Object.values(v._features),b={...y.reduce((e,t)=>Object.assign(e,t.getDefaultTableOptions?.(v)),{}),...e};if(t.wrapExternalAtoms&&b.atoms)for(let[e,n]of Object.entries(b.atoms)){let r=n,i=t.createWritableAtom(r.get(),{debugName:`externalAtom/${e}`});b.atoms[e]=i;let a=!1,o=r.subscribe(e=>{a||i.set(e)}),s=i.subscribe(e=>{a=!0,r.set(e),a=!1});t.addSubscription(o),t.addSubscription(s)}t.createOptionsStore?(v.optionsStore=t.createWritableAtom(b,{debugName:`table/optionsStore`}),Object.defineProperty(v,"options",{configurable:!0,enumerable:!0,get(){return v.optionsStore.get()},set(e){v.optionsStore.set(()=>e)}})):v.options=b,v.initialState=dr(v._features,v.options.initialState);let x=Object.keys(v.initialState);for(let e=0;e<x.length;e++){let n=x[e];v.baseAtoms[n]=t.createWritableAtom(v.initialState[n],{debugName:`table/baseAtoms/${n}`}),v.atoms[n]=t.createReadonlyAtom(()=>{let e=v.options,t=e.atoms?.[n],r=t?t.get():v.baseAtoms[n].get();if(t)return r;let i=e.state;if(i&&ee(i,n)){let e=i[n];return e===void 0?v.initialState[n]:e}return r},{debugName:`table/atoms/${n}`})}$n(v),v.store=vt(t.createReadonlyAtom(()=>{let e={};for(let t=0;t<x.length;t++){let n=x[t];e[n]=v.atoms[n].get()}return e},{compare:lr,debugName:`table/store`}));for(let e=0;e<y.length;e++){let t=y[e];t.initTableInstanceData?.(v),t.initCellInstanceData&&v._cellInstanceInitFns.push(t.initCellInstanceData.bind(t)),t.initColumnInstanceData&&v._columnInstanceInitFns.push(t.initColumnInstanceData.bind(t)),t.initHeaderGroupInstanceData&&v._headerGroupInstanceInitFns.push(t.initHeaderGroupInstanceData.bind(t)),t.initHeaderInstanceData&&v._headerInstanceInitFns.push(t.initHeaderInstanceData.bind(t)),t.initRowInstanceData&&v._rowInstanceInitFns.push(t.initRowInstanceData.bind(t)),t.constructTableAPIs?.(v)}return v}function pr(){return(pr=t((()=>{A(),ir(),cr()})))()}function mr(e,t){let[{table:n,rootSource:r}]=(0,W.useState)(()=>{let t=fr({...e,features:{coreReactivityFeature:xt(),...e.features}});return t.Subscribe=(e=>gt({...e,source:e.source??t.store})),t.FlexRender=Ke,{table:t,rootSource:bt(t.store,lt)}}),i=n;rr(i,t=>({...t,...e}),{syncExternalState:!1});let a=i.options.state,o=r.get(),s=ft(r,t,{compare:lt});return hr(()=>{r.markCommitted(o),er(i,a??null,lt)}),(0,W.useMemo)(()=>({...n,options:e,state:s}),[n,e,s])}var W,hr;function gr(){return(gr=t((()=>{Je(),_t(),St(),pr(),W=r(),ht(),ir(),hr=typeof window>`u`?W.useEffect:W.useLayoutEffect})))()}var _r,vr,yr,br,xr,Sr,Cr,G;function wr(){return(wr=t((()=>{_r=`UMTbLD`,vr=`cz57Fx`,yr=`oPzAxu`,br=`MBu26r`,xr=`_03z-1l`,Sr=`_0RqsqJ`,Cr=`mXkUoM`,G={stateWrapper:_r,status:vr,information:yr,success:br,warning:xr,error:Sr,state:Cr}})))()}var K,Tr,Er,Dr,Or,kr,Ar;function jr(){return(jr=t((()=>{r(),I(),i(),o(),c(),l(),wr(),K=h(),Tr=({state:e=`none`,text:t,className:n})=>(0,K.jsxs)(`div`,{className:F(`flexCenter gapSm`,n),children:[(()=>{switch(e){case`error`:return(0,K.jsx)(Dr,{});case`warning`:return(0,K.jsx)(Or,{});case`success`:return(0,K.jsx)(kr,{});case`information`:return(0,K.jsx)(Ar,{});default:return null}})(),t]}),Er=({state:e})=>{switch(e){case`error`:return(0,K.jsx)(Dr,{});case`warning`:return(0,K.jsx)(Or,{});case`success`:return(0,K.jsx)(kr,{});case`information`:return(0,K.jsx)(Ar,{});default:return null}},Dr=()=>(0,K.jsx)(u,{className:F(G.state,G.error)}),Or=()=>(0,K.jsx)(a,{className:F(G.state,G.warning)}),kr=()=>(0,K.jsx)(s,{className:F(G.state,G.success)}),Ar=()=>(0,K.jsx)(d,{className:F(G.state,G.information)}),Tr.__docgenInfo={description:``,methods:[],displayName:`StateIcon`,props:{state:{required:!1,tsType:{name:`State`},description:``,defaultValue:{value:`"none"`,computed:!1}},text:{required:!0,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},Er.__docgenInfo={description:``,methods:[],displayName:`RenderStateIcon`,props:{state:{required:!1,tsType:{name:`State`},description:``}}},Dr.__docgenInfo={description:``,methods:[],displayName:`ErrorIcon`},Or.__docgenInfo={description:``,methods:[],displayName:`WarningIcon`},kr.__docgenInfo={description:``,methods:[],displayName:`SuccessIcon`},Ar.__docgenInfo={description:``,methods:[],displayName:`InformationIcon`}})))()}var Mr,Nr;function Pr(){return(Pr=t((()=>{Mr=`YJUVjb`,Nr={resizeHandle:Mr}})))()}function Fr(e,t){let n=e.closest(`th`)?.getBoundingClientRect().width;return y(typeof n==`number`&&Number.isFinite(n)?n:t,t)}function Ir({columnId:e,className:t,minWidth:n,keyboardStep:r=Rr,ariaLabel:i=`Изменить ширину колонки`,getStartWidth:a,onResize:o,onResizeEnd:s,onReset:c}){let l=n??60,u=(0,q.useRef)(0),d=(0,q.useRef)(0),f=(0,q.useRef)(0),p=(0,q.useRef)(!1),m=(0,q.useRef)(!1),h=t=>{let n=a?.(e,t)??Fr(t,l);return y(n,l)},g=e=>{(e.button===0||e.pointerType!==`mouse`)&&(p.current=!0,m.current=!1,u.current=e.clientX,d.current=h(e.currentTarget),f.current=d.current,e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation())},_=t=>{if(!p.current)return;let n=y(d.current+t.clientX-u.current,l);f.current=n,m.current=!0,o(e,n),t.preventDefault(),t.stopPropagation()},v=t=>{if(p.current){p.current=!1,m.current&&s?.(e,f.current);try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}t.preventDefault(),t.stopPropagation()}};return(0,Lr.jsx)(`div`,{role:`separator`,"aria-label":i,"aria-orientation":`vertical`,tabIndex:0,onPointerDown:g,onPointerMove:_,onPointerUp:v,onPointerCancel:v,onKeyDown:t=>{if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`Home`)return;if(t.preventDefault(),t.stopPropagation(),t.key===`Home`){c?.(e);return}let n=t.key===`ArrowRight`?1:-1,i=h(t.currentTarget),a=y(i+n*r,l);o(e,a),s?.(e,a)},onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),c?.(e)},className:F(Nr.resizeHandle,t)})}var q,Lr,Rr;function zr(){return(zr=t((()=>{q=r(),N(),I(),Pr(),Lr=h(),Rr=8,Ir.__docgenInfo={description:``,methods:[],displayName:`TableColumnResizeHandle`,props:{columnId:{required:!0,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minWidth:{required:!1,tsType:{name:`number`},description:``},keyboardStep:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`8`,computed:!1}},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Изменить ширину колонки"`,computed:!1}},getStartWidth:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, element: HTMLElement) => number`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`HTMLElement`},name:`element`}],return:{name:`number`}}},description:``},onResize:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onResizeEnd:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onReset:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}}},description:``}}}})))()}function Br(e,t){return typeof e==`function`?e(t):e}function Vr({columnId:e,children:t,dragDisabled:n=!1,draggingClassName:r,resizeHandle:i,className:a,style:o,...s}){let{attributes:c,listeners:l,setActivatorNodeRef:u,setNodeRef:d,transform:f,isDragging:p,rect:m}=Ne({id:e,disabled:n}),h=p?m.current?.width:void 0,g={transform:Le.Translate.toString(f),zIndex:p?`calc(var(--z-header) + 1)`:void 0,...h?{width:h,minWidth:h}:{},...o},_={attributes:c,listeners:l,setActivatorElement:u,disabled:n,isDragging:p};return(0,Hr.jsxs)(`th`,{...s,ref:d,className:F(a,p&&r),style:g,children:[Br(t,_),i?(0,Hr.jsx)(Ir,{...i}):null]})}var Hr;function Ur(){return(Ur=t((()=>{Ie(),Pe(),I(),zr(),Hr=h(),Vr.__docgenInfo={description:``,methods:[],displayName:`TableHeaderInteractionCell`,props:{columnId:{required:!0,tsType:{name:`UniqueIdentifier`},description:``},children:{required:!0,tsType:{name:`union`,raw:`ReactNode | ((dragState: TableHeaderCellDragState) => ReactNode)`,elements:[{name:`ReactNode`},{name:`unknown`}]},description:``},dragDisabled:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},draggingClassName:{required:!1,tsType:{name:`string`},description:``},resizeHandle:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
|
|
2
|
-
columnId: string;
|
|
3
|
-
className?: string;
|
|
4
|
-
minWidth?: number;
|
|
5
|
-
keyboardStep?: number;
|
|
6
|
-
ariaLabel?: string;
|
|
7
|
-
getStartWidth?: (columnId: string, element: HTMLElement) => number;
|
|
8
|
-
onResize: (columnId: string, width: number) => void;
|
|
9
|
-
onResizeEnd?: (columnId: string, width: number) => void;
|
|
10
|
-
onReset?: (columnId: string) => void;
|
|
11
|
-
}`,signature:{properties:[{key:`columnId`,value:{name:`string`,required:!0}},{key:`className`,value:{name:`string`,required:!1}},{key:`minWidth`,value:{name:`number`,required:!1}},{key:`keyboardStep`,value:{name:`number`,required:!1}},{key:`ariaLabel`,value:{name:`string`,required:!1}},{key:`getStartWidth`,value:{name:`signature`,type:`function`,raw:`(columnId: string, element: HTMLElement) => number`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`HTMLElement`},name:`element`}],return:{name:`number`}},required:!1}},{key:`onResize`,value:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}},required:!0}},{key:`onResizeEnd`,value:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}},required:!1}},{key:`onReset`,value:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}},required:!1}}]}},description:``}}}})))()}function Wr(e){return{start:Array.from(new Set((e?.start??[]).filter(e=>typeof e==`string`&&e.trim().length>0))),end:[]}}function Gr(e,t){let n=t?.[e.id];if(typeof n==`number`&&Number.isFinite(n)&&n>0)return`${Math.floor(n)}px`;let r=oe(e.columnDef)?.width??4;return typeof r==`number`&&(r=Math.max(r,4)),_e(r)}function Kr(e,t){let n=e.getAllLeafColumns().filter(e=>e.getIsVisible()),r=new Map(n.map(e=>[e.id,e])),i=n.map(e=>e.id),a=be(t.columnPinning.start,i),o=be(t.columnPinning.end,i),s=new Set([...a,...o]),c=[];for(let e of n)s.has(e.id)||c.push(e.id);let l=me({ids:c,order:t.columnOrder});return xe([...a,...l,...o],r)}function qr(e,t){let n=Kr(e,t),r=new Map(n.map(e=>[e.id,e]));return O({ids:n.map(e=>e.id),getWidth:e=>{let n=r.get(e);return n?Gr(n,t.columnSizing):`0px`}}).flatMap(e=>{let t=r.get(e.id);return t?[{...e,column:t}]:[]})}function Jr(e,t){let n={},r=[];for(let i of Kr(e,t))i.getIsPinned()===`start`&&(n[i.id]=Yr(r),r.push(Gr(i,t.columnSizing)));return n}function Yr(e){return e.length===0?`0px`:e.length===1?e[0]:`calc(${e.join(` + `)})`}function Xr(){return(Xr=t((()=>{ye(),N()})))()}function Zr(e){if(typeof e.id==`string`&&e.id.trim())return e.id;if(`accessorKey`in e&&typeof e.accessorKey==`string`&&e.accessorKey.trim())return e.accessorKey}function Qr(e){return`cell`in e&&e.cell!=null}function $r(e,t){for(let n of e){if(`columns`in n&&Array.isArray(n.columns)&&n.columns.length>0){$r(n.columns,t);continue}t(n)}}function ei(e){let t={},n=new Set;return $r(e,e=>{let r=Zr(e);if(!r)return;Qr(e)&&n.add(r);let i=ae(e);i&&(t[r]={...i,id:i.id??r,role:i.role??`dimension`,type:i.type??`string`})}),{runtimeByColumnId:Ce(t),customCellColumnIds:n}}function ti(e){return!e.customCellColumnIds.has(e.columnId)&&!!e.runtimeByColumnId[e.columnId]}function ni(){return(ni=t((()=>{we(),N()})))()}function ri(e){return e!=null&&e!==``}function ii(e,t){return e.map(e=>({row:e,boundaryKey:t(e),cellByColumnId:new Map(e.getVisibleCells().map(e=>[e.column.id,e]))}))}function ai({rows:e,columns:t,resolveRowBoundaryKey:n=()=>`__all_rows__`,excludeColumnIds:r}){let i=t.filter(e=>!r?.has(e.id)&&oe(e.columnDef)?.mergeDuplicates===!0);if(e.length===0||i.length===0)return new Map;let a=ii(e,n),o=new Map;for(let e of i){let t=-1,n,r,i=i=>{if(t!==-1){if(i-t<=1){t=-1,n=void 0,r=void 0;return}for(let n=t;n<i;n+=1){let r=a[n]?.cellByColumnId.get(e.id)?.id;r&&o.set(r,{hideContent:n>t,mergeWithNext:n<i-1})}t=-1,n=void 0,r=void 0}};for(let o=0;o<a.length;o+=1){let s=a[o],c=s?.cellByColumnId.get(e.id),l=c?.getValue();if(!c||!ri(l)){i(o);continue}if(t===-1){t=o,n=l,r=s?.boundaryKey;continue}(!Object.is(r,s?.boundaryKey)||!Object.is(n,l))&&(i(o),t=o,n=l,r=s?.boundaryKey)}i(a.length)}return o}function oi(){return(oi=t((()=>{N()})))()}function si({columnOrder:e,defaultColumnOrder:t,onColumnOrderChange:n}){let[r,i]=(0,ci.useState)(void 0),a=(0,ci.useMemo)(()=>he(e??r??t),[e,t,r]);return{columnOrder:a,onColumnOrderChange:(0,ci.useCallback)(t=>{let r=he(j(t,a));e===void 0&&i(r),n?.(r)},[e,n,a])}}var ci;function li(){return(li=t((()=>{ci=r(),N(),A()})))()}function ui({columnPinning:e,defaultColumnPinning:t,onColumnPinningChange:n}){let[r,i]=(0,di.useState)(void 0),a=(0,di.useMemo)(()=>Wr(e??r??t),[e,t,r]);return{columnPinning:a,onColumnPinningChange:(0,di.useCallback)(t=>{let r={start:Wr(j(t,a)).start};e===void 0&&i(r),n?.(r)},[e,n,a])}}var di;function fi(){return(fi=t((()=>{di=r(),A(),Xr()})))()}function pi({columnSizing:e,defaultColumnSizing:t,columnResizeMinWidth:n,onColumnSizingChange:r}){let[i,a]=(0,mi.useState)(void 0),o=(0,mi.useMemo)(()=>ue(e??i??t,n),[n,e,t,i]);return{columnSizing:o,onColumnSizingChange:(0,mi.useCallback)(t=>{let i=ue(j(t,o),n);e===void 0&&a(i),r?.(i)},[n,e,r,o])}}var mi;function hi(){return(hi=t((()=>{mi=r(),N(),A()})))()}function gi({columnVisibility:e,defaultColumnVisibility:t,onColumnVisibilityChange:n}){let[r,i]=(0,J.useState)(void 0),a=(0,J.useMemo)(()=>e??r??t??{},[e,t,r]);return{columnVisibility:a,onColumnVisibilityChange:(0,J.useCallback)(t=>{let r=j(t,a);e===void 0&&i(r),n?.(r)},[e,n,a])}}var J;function _i(){return(_i=t((()=>{J=r(),A()})))()}var vi;function yi(){return(yi=t((()=>{Pe(),vi=e=>{let{transform:t}=e;return{...t,y:0}}})))()}var bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Y;function Bi(){return(Bi=t((()=>{bi=`_0rNBMr`,xi=`gp-7Db`,Si=`Ck-sXP`,Ci=`-F3gli`,wi=`V5tPM-`,Ti=`_2VJbvj`,Ei=`AD8NkG`,Di=`qqixKn`,Oi=`dVDRNv`,ki=`klOoMz`,Ai=`fJvFJA`,ji=`_7D8xa9`,Mi=`_3j87pS`,Ni=`uwojkJ`,Pi=`lLsmW6`,Fi=`uYvZ5P`,Ii=`QIS3xA`,Li=`a580w0`,Ri=`UOhaMF`,zi=`DtKAgs`,Y={root:bi,headerContextMenuTrigger:xi,table:Si,head:Ci,pinnedStartBoundary:wi,headerRow:Ti,headerCell:Ei,headerCellContent:Di,headerCellDraggable:Oi,headerCellDragging:ki,headerCellPinnedStart:Ai,bodyRow:ji,bodyRowInteractive:Mi,bodyCell:Ni,bodyRowSelected:Pi,bodyCellPinnedStart:Fi,bodyCellMergedWithNext:Ii,feedbackCell:Li,fetchingRow:Ri,noData:zi}})))()}function Vi({header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:a,enableColumnReordering:o,columnResizeMinWidth:s,renderHeaderContent:c,onResizeColumn:l,onResetColumnWidth:u}){return(0,Hi.jsx)(Vr,{columnId:e.column.id,dragDisabled:!o||i,draggingClassName:Y.headerCellDragging,className:F(Y.headerCell,t&&Y.headerCellPinnedStart,r&&Y.pinnedStartBoundary),style:{...t?{insetInlineStart:n}:{}},resizeHandle:a&&!e.isPlaceholder?{columnId:e.column.id,minWidth:s,onResize:l,onReset:u}:void 0,children:({listeners:t,setActivatorElement:n})=>(0,Hi.jsx)(`div`,{ref:o&&!i?n:void 0,className:F(Y.headerCellContent,o&&!i&&Y.headerCellDraggable),...o&&!i?t??{}:{},children:c(e)})})}var Hi;function Ui(){return(Ui=t((()=>{I(),Ur(),Bi(),Hi=h(),Vi.__docgenInfo={description:``,methods:[],displayName:`BaseTableHeaderCell`,props:{header:{required:!0,tsType:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},description:``},isPinnedStart:{required:!0,tsType:{name:`boolean`},description:``},insetInlineStart:{required:!1,tsType:{name:`string`},description:``},isPinnedBoundary:{required:!0,tsType:{name:`boolean`},description:``},isDragDisabled:{required:!0,tsType:{name:`boolean`},description:``},enableColumnResizing:{required:!0,tsType:{name:`boolean`},description:``},enableColumnReordering:{required:!0,tsType:{name:`boolean`},description:``},columnResizeMinWidth:{required:!0,tsType:{name:`union`,raw:`number | undefined`,elements:[{name:`number`},{name:`undefined`}]},description:``},renderHeaderContent:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(header: FoundationTableHeader<TData>) => ReactNode`,signature:{arguments:[{type:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},name:`header`}],return:{name:`ReactNode`}}},description:``},onResizeColumn:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string, width: number) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`},{type:{name:`number`},name:`width`}],return:{name:`void`}}},description:``},onResetColumnWidth:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(columnId: string) => void`,signature:{arguments:[{type:{name:`string`},name:`columnId`}],return:{name:`void`}}},description:``}}}})))()}function Wi(e,t){let n=e.getLeafHeaders().map(e=>t.get(e.column.id)).filter(e=>typeof e==`number`);return n.length?Math.min(...n):2**53-1}function Gi(e,t){let n=e.getStartHeaderGroups(),r=e.getCenterHeaderGroups(),i=e.getEndHeaderGroups(),a=Math.max(n.length,r.length,i.length);return Array.from({length:a},(e,a)=>[...n[a]?.headers??[],...r[a]?.headers??[],...i[a]?.headers??[]].filter(e=>e.isPlaceholder?!0:e.getLeafHeaders().some(e=>t.has(e.column.id))).sort((e,n)=>Wi(e,t)-Wi(n,t)))}function Ki(e,t,n){let r=e.getLeafHeaders().map(e=>e.column.id);return r.length>0&&r.every(e=>e in t)?{isPinnedStart:!0,insetInlineStart:t[r[0]]??`0px`,isPinnedBoundary:!!(n&&r.includes(n))}:{isPinnedStart:!1,isPinnedBoundary:!1}}function qi(e,t){let n=e.getAllLeafColumns().map(e=>e.id);return me({ids:n,order:t.columnOrder})}function Ji({table:e,columnState:t,title:n,isLoading:r,isFetching:i,className:a,minHeight:o=`15em`,tableClassName:s,selectionMode:c=`none`,scrollableRef:l,interactiveElementSelector:u,onActivateRow:d,isRowInteractive:f,getRowClassName:h,getCellClassName:g,getCellStyle:_,getCellLayout:v,renderCellContent:y,renderHeaderContextMenu:b,enableColumnResizing:x=!1,enableColumnReordering:S=!1,columnResizeMinWidth:C,afterTableContent:ee}){let w=qr(e,t),te=(0,X.useMemo)(()=>w.map(e=>e.column),[w]),T=(0,X.useMemo)(()=>w.map(e=>e.id),[w]),E=(0,X.useMemo)(()=>new Map(T.map((e,t)=>[e,t])),[T]),ne=(0,X.useMemo)(()=>new Set(T),[T]),re=Re({activationDistance:8}),ie=Gi(e,E),D=Jr(e,t),O=te.filter(e=>e.getIsPinned()===`start`).at(-1)?.id,k=(0,X.useMemo)(()=>t.columnPinning.start??[],[t.columnPinning.start]),A=(0,X.useMemo)(()=>new Set(k),[k]),j=e.getRowModel(),M=!!n,N=j.rows.length>0,ae=(0,X.useCallback)(e=>[...e].sort((e,t)=>(E.get(e.column.id)??2**53-1)-(E.get(t.column.id)??2**53-1)),[E]),se=(0,X.useCallback)((t,n)=>{e.setColumnSizing(e=>pe(e,t,n,C))},[C,e]),ce=(0,X.useCallback)(t=>{e.setColumnSizing(e=>le(e,t))},[e]),ue=(0,X.useCallback)(n=>{let r=p({event:n,items:T});if(!r)return;let i=qi(e,t),a=de({order:i,headerIds:T,pinnedIds:k,activeId:String(r.activeId),overId:String(r.overId)});a&&e.setColumnOrder(a)},[t,k,e,T]),fe=e=>{if(e.isPlaceholder)return null;let t=L(e.column.columnDef.header,e.getContext()),n=b?.(e);return n?(0,Z.jsxs)(Ae,{children:[(0,Z.jsx)(Ae.Trigger,{children:(0,Z.jsx)(`div`,{className:Y.headerContextMenuTrigger,tabIndex:0,children:t})}),(0,Z.jsx)(Ae.Content,{children:n})]}):t},me=(e,t)=>{!(f?.(t)??!!d)||!d||ge(e.target,u)||d(t)},he=(e,t)=>{!(f?.(t)??!!d)||!d||ge(e.target,u)||ve(e,()=>d(t))};return(0,Z.jsxs)(Me,{templateRows:M?`auto 1fr`:`1fr`,className:F(`overflowHidden w100 h100`,Y.root,a),style:{minHeight:o},children:[M&&(0,Z.jsx)(`h3`,{className:`marginBottomXs`,children:n}),(0,Z.jsxs)(`div`,{className:`surface0 overflowHidden relative w100 h100`,children:[(0,Z.jsx)(Be,{ref:l,className:`w100 h100`,children:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`table`,{className:F(Y.table,s),children:[(0,Z.jsx)(`colgroup`,{children:w.map(e=>(0,Z.jsx)(`col`,{style:e.width?{width:e.width}:void 0},e.id))}),(0,Z.jsx)(`thead`,{className:F(`stickyTop`,Y.head),children:S?(0,Z.jsx)(m.Root,{sensors:re,modifiers:[vi],onDragEnd:ue,children:(0,Z.jsx)(m.Container,{containerId:`base-table-header`,items:T,layout:`horizontal`,children:ie.map((e,t)=>(0,Z.jsx)(`tr`,{className:Y.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Ki(e,D,O),i=e.isPlaceholder||!ne.has(e.column.id)||A.has(e.column.id);return(0,Z.jsx)(Vi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:i,enableColumnResizing:x,enableColumnReordering:S,columnResizeMinWidth:C,renderHeaderContent:fe,onResizeColumn:se,onResetColumnWidth:ce},e.id)})},`header-group-${t}`))})}):ie.map((e,t)=>(0,Z.jsx)(`tr`,{className:Y.headerRow,children:e.map(e=>{let{isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r}=Ki(e,D,O);return(0,Z.jsx)(Vi,{header:e,isPinnedStart:t,insetInlineStart:n,isPinnedBoundary:r,isDragDisabled:!0,enableColumnResizing:x,enableColumnReordering:S,columnResizeMinWidth:C,renderHeaderContent:fe,onResizeColumn:se,onResetColumnWidth:ce},e.id)})},`header-group-${t}`))}),(0,Z.jsxs)(`tbody`,{children:[j.rows.map(e=>{let t=f?.(e)??!!d;return(0,Z.jsx)(`tr`,{className:F(Y.bodyRow,t&&Y.bodyRowInteractive,e.getIsSelected()&&Y.bodyRowSelected,h?.(e)),"aria-selected":c===`none`?void 0:e.getIsSelected(),tabIndex:t?0:void 0,onClick:t=>me(t,e),onKeyDown:t=>he(t,e),children:ae([...e.getStartVisibleCells(),...e.getCenterVisibleCells(),...e.getEndVisibleCells()]).map(t=>{let n=oe(t.column.columnDef),r=L(t.column.columnDef.cell,t.getContext()),i={row:e,cell:t,defaultContent:r,columnMeta:n},a=v?.(i),o=t.column.getIsPinned()===`start`,s=t.column.id===O,c={...n?.align?{textAlign:n.align}:{},...o?{insetInlineStart:D[t.column.id]??`0px`}:{},..._?.(i)??{}};return(0,Z.jsx)(`td`,{className:F(Y.bodyCell,o&&Y.bodyCellPinnedStart,s&&Y.pinnedStartBoundary,a?.mergeWithNext&&Y.bodyCellMergedWithNext,g?.(i)),style:c,children:a?.hideContent?null:y?y(i):r},t.id)})},e.id)}),i&&N&&(0,Z.jsx)(`tr`,{className:Y.fetchingRow,children:(0,Z.jsx)(`td`,{colSpan:Math.max(te.length,1),className:Y.feedbackCell,children:(0,Z.jsx)(De,{})})})]})]}),ee]})}),(0,Z.jsxs)(`div`,{className:`absolute inset0 border`,style:{pointerEvents:`none`,zIndex:20},children:[!r&&!i&&!N&&(0,Z.jsx)(Oe,{className:Y.noData}),r&&!N&&(0,Z.jsx)(De,{className:`h100 w100`})]})]})]})}var X,Z;function Yi(){return(Yi=t((()=>{X=r(),yi(),Fe(),N(),I(),Je(),ke(),je(),Te(),Ee(),ze(),f(),Xr(),Bi(),Ui(),Z=h(),Ji.__docgenInfo={description:"Базовая таблица с общим UI-каркасом для Table и TreeTable.\n\n@NOTE: не для использования напрямую, это база для `Table` и `TreeTable`",methods:[],displayName:`BaseTable`,props:{table:{required:!0,tsType:{name:`FoundationTableInstance`,elements:[{name:`TData`}],raw:`FoundationTableInstance<TData>`},description:``},columnState:{required:!0,tsType:{name:`Pick`,elements:[{name:`FoundationTableState`},{name:`union`,raw:`"columnOrder" | "columnPinning" | "columnSizing" | "columnVisibility"`,elements:[{name:`literal`,value:`"columnOrder"`},{name:`literal`,value:`"columnPinning"`},{name:`literal`,value:`"columnSizing"`},{name:`literal`,value:`"columnVisibility"`}]}],raw:`Pick<FoundationTableState, "columnOrder" | "columnPinning" | "columnSizing" | "columnVisibility">`},description:``},title:{required:!1,tsType:{name:`string`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},isFetching:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:"`${number}em` | `${number}%`",elements:[{name:`literal`,value:"`${number}em`"},{name:`literal`,value:"`${number}%`"}]},description:``,defaultValue:{value:`"15em"`,computed:!1}},tableClassName:{required:!1,tsType:{name:`string`},description:``},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:``,defaultValue:{value:`"none"`,computed:!1}},scrollableRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLDivElement`}],raw:`Ref<HTMLDivElement>`},description:``},interactiveElementSelector:{required:!1,tsType:{name:`string`},description:``},onActivateRow:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => void`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`void`}}},description:``},isRowInteractive:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => boolean`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`boolean`}}},description:``},getRowClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: FoundationTableRow<TData>) => string | undefined`,signature:{arguments:[{type:{name:`FoundationTableRow`,elements:[{name:`TData`}],raw:`FoundationTableRow<TData>`},name:`row`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},getCellClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => string | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},getCellStyle:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => CSSProperties | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`CSSProperties | undefined`,elements:[{name:`CSSProperties`},{name:`undefined`}]}}},description:``},getCellLayout:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => BaseTableCellLayout | undefined`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`union`,raw:`BaseTableCellLayout | undefined`,elements:[{name:`BaseTableCellLayout`},{name:`undefined`}]}}},description:``},renderCellContent:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(args: BaseTableCellRenderArgs<TData>) => ReactNode`,signature:{arguments:[{type:{name:`BaseTableCellRenderArgs`,elements:[{name:`TData`}],raw:`BaseTableCellRenderArgs<TData>`},name:`args`}],return:{name:`ReactNode`}}},description:``},renderHeaderContextMenu:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(header: FoundationTableHeader<TData>) => ReactNode`,signature:{arguments:[{type:{name:`FoundationTableHeader`,elements:[{name:`TData`}],raw:`FoundationTableHeader<TData>`},name:`header`}],return:{name:`ReactNode`}}},description:`Общий слот контекстного меню заголовка.
|
|
12
|
-
|
|
13
|
-
BaseTable намеренно не знает про сортировку, группировку или доменные
|
|
14
|
-
действия. Он только сохраняет единый доступный способ открыть меню для
|
|
15
|
-
\`Table\` и \`TreeTable\`, а содержимое передает потребитель.`},enableColumnResizing:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},enableColumnReordering:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},columnResizeMinWidth:{required:!1,tsType:{name:`number`},description:``},afterTableContent:{required:!1,tsType:{name:`ReactNode`},description:``}}}})))()}var Xi,Zi,Qi,Q;function $i(){return($i=t((()=>{Xi=`jPPyP7`,Zi=`Oa7e5P`,Qi=`KhQtgF`,Q={formattedCellValue:Xi,formattedCell:Zi,formattedCellInner:Qi}})))()}function ea({displayValue:e,align:t=`left`}){let n=(0,ta.useRef)(null),r=e.showValue,i=e.showIcon?e.icon:void 0,a=r&&e.value!=null?String(e.value):``,o=Se(e.state),s=t===`right`?`flex-end`:t===`center`?`center`:`flex-start`,c=t===`center`?`center`:t===`right`?`right`:`left`;return(0,ta.useEffect)(()=>{let t=n.current;if(!t)return;let r=()=>{if(!e.overflowTooltip||!a){t.removeAttribute(`title`);return}if(t.scrollWidth>t.clientWidth+1){t.setAttribute(`title`,a);return}t.removeAttribute(`title`)};if(r(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[e.overflowTooltip,a]),(0,$.jsx)(`div`,{className:F(Q.formattedCell,o),children:(0,$.jsxs)(`div`,{className:Q.formattedCellInner,style:{justifyContent:s},children:[e.iconPosition===`left`?(0,$.jsx)(Er,{state:i}):null,r?(0,$.jsx)(`span`,{ref:n,className:F(`textOverflow`,Q.formattedCellValue),style:{textAlign:c},children:a}):null,e.iconPosition===`right`?(0,$.jsx)(Er,{state:i}):null]})})}var ta,$;function na(){return(na=t((()=>{ta=r(),we(),I(),jr(),$i(),$=h(),ea.__docgenInfo={description:"Общий renderer форматированной ячейки для `Table` и будущего `TreeTable`.\n\nКомпонент отвечает только за UI-отрисовку уже вычисленного display-result:\nruntime и бизнес-логика вычисления значения в него не входят.",methods:[],displayName:`FormattedTableCell`,props:{displayValue:{required:!0,tsType:{name:`FormattersPipelineDisplayValue`},description:`Нормализованный display-result из formatting-runtime.`},align:{required:!1,tsType:{name:`TableColumnAlign`},description:`Табличное выравнивание содержимого.`,defaultValue:{value:`"left"`,computed:!1}}}}})))()}export{ti as _,_i as a,gr as b,pi as c,li as d,si as f,ni as g,ei as h,Yi as i,fi as l,oi as m,na as n,gi as o,ai as p,Ji as r,hi as s,ea as t,ui as u,Kr as v,mr as x,Xr as y};
|