@ryuzaki13/react-foundation-ui 1.8.18 → 1.8.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/picker/model/usePickerFloatingListbox.d.ts +1 -1
- package/package.json +3 -3
- package/storybook-static/assets/{Badge-BIHyYCo7.js → Badge-CtgCgcrE.js} +6 -6
- package/storybook-static/assets/{Badge.stories-DLTrI-x_.js → Badge.stories-Bde8GdpE.js} +1 -1
- package/storybook-static/assets/{BadgeList-CDdRxEFa.js → BadgeList-B354PiFh.js} +1 -1
- package/storybook-static/assets/{Button-Clgno5I9.js → Button-BC1vJeBh.js} +6 -6
- package/storybook-static/assets/{Button-XTBI9blK.js → Button-DdWXdL9L.js} +1 -1
- package/storybook-static/assets/{Button.stories-B-0_zqxk.js → Button.stories-CvsBKXsv.js} +1 -1
- package/storybook-static/assets/{CalendarView-5yfJ6Sx-.js → CalendarView-CJkJU4EC.js} +1 -1
- package/storybook-static/assets/{CheckBox-DZh7cCZZ.js → CheckBox-BaKD1lsb.js} +2 -2
- package/storybook-static/assets/{CheckBox-BNpn-ZBB.js → CheckBox-DlCG7Opb.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories--dSzC2Mf.js → CheckBox.stories-noW5T-OA.js} +1 -1
- package/storybook-static/assets/Color-6AOWCN3U-DVSJ6tQm.js +1 -0
- package/storybook-static/assets/{ContextMenu-CTrTO0H7.js → ContextMenu-D79bky7p.js} +1 -1
- package/storybook-static/assets/{ContextMenu-24LNOr91.js → ContextMenu-DL12BLWo.js} +2 -2
- package/storybook-static/assets/{ContextMenu.stories-Cbq6B29u.js → ContextMenu.stories-BwyqG2jc.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-BHA-6inc.js → CustomOptionButton-oTNty8hW.js} +1 -1
- package/storybook-static/assets/{DateInput-Ceqy8_hm.js → DateInput-X20d2Q59.js} +1 -1
- package/storybook-static/assets/{DateInput-Bmwgwx_r.js → DateInput-YyZk0Ov_.js} +2 -2
- package/storybook-static/assets/{DateInput.stories-C0oDEW0V.js → DateInput.stories-DQoF9ZwI.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-EUO5ju87.js → DateRangePresetSelect-BauBnnPB.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DrbWZdO7.js → DateRangePresetSelect-C-AvOpuX.js} +2 -2
- package/storybook-static/assets/DateRangePresetSelect.stories-XvgjFAh7.js +19 -0
- package/storybook-static/assets/{Detail-BdMA8W8a.js → Detail-BpXehD7_.js} +2 -2
- package/storybook-static/assets/{Detail.stories-kYjF0OE8.js → Detail.stories-BQWhtlp0.js} +1 -1
- package/storybook-static/assets/{Dialog-DGlxegJa.js → Dialog-D3hJTgwE.js} +2 -2
- package/storybook-static/assets/{Dialog-B__C03-Z.js → Dialog-DODbPv79.js} +1 -1
- package/storybook-static/assets/Dialog.stories-DcgpUIUP.js +22 -0
- package/storybook-static/assets/{Disclosure-BXUWkiag.js → Disclosure-5UdBgIbZ.js} +2 -2
- package/storybook-static/assets/Disclosure.stories-IYljEE4h.js +23 -0
- package/storybook-static/assets/{DisclosureGroup-C57FHp13.js → DisclosureGroup-Bbseg3US.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CiLWX8JT.js → DocsRenderer-JROSPFPF-CADpK3Xb.js} +1 -1
- package/storybook-static/assets/{DropZone-BPOCc8un.js → DropZone-BKncWUns.js} +2 -2
- package/storybook-static/assets/{DropZone-DCGBDcam.js → DropZone-CI5qAgz5.js} +1 -1
- package/storybook-static/assets/DropZone.stories-CmLlcGx0.js +26 -0
- package/storybook-static/assets/{DropdownMenu-DDHBuZt5.js → DropdownMenu-K7NYW8LX.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-mmlDn8ts.js → ExpandableActionPanel-DSHE6wTG.js} +1 -1
- package/storybook-static/assets/ExpandableActionPanel.stories-BN_qe4FR.js +9 -0
- package/storybook-static/assets/{Flex-DHMDn1uW.js → Flex-BP4dH1EM.js} +2 -2
- package/storybook-static/assets/{Flex.stories-BgYOys3T.js → Flex.stories-CG6MjVWv.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-BL_nJJrL.js → FloatingPopover-CbuI645U.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-Od6SSoxO.js → FormattedTableCell-SiBfPwwP.js} +1 -1
- package/storybook-static/assets/{Grid-CS-mSNKX.js → Grid-CcYtG8qC.js} +2 -2
- package/storybook-static/assets/{Grid.stories-DWCKacQB.js → Grid.stories-D8AkQcoe.js} +1 -1
- package/storybook-static/assets/ImageCropper.stories-DgYml-BE.js +131 -0
- package/storybook-static/assets/{ImageRenderer-jDryL3Z9.js → ImageRenderer-DdnnseXq.js} +1 -1
- package/storybook-static/assets/ImageRenderer.stories-BN4QxhBf.js +34 -0
- package/storybook-static/assets/ImageView.stories-2LMwV4qh.js +14 -0
- package/storybook-static/assets/{ImageViewer.stories-CKUiWvv7.js → ImageViewer.stories-D6BcidoN.js} +3 -3
- package/storybook-static/assets/{ImageViewerRuntime-DUjkq3km.js → ImageViewerRuntime-DVUlXl_G.js} +1 -1
- package/storybook-static/assets/{Input-Q95tdikw.js → Input-Bb5uuJsd.js} +1 -1
- package/storybook-static/assets/{Input-C5eMHeOp.js → Input-CWQgYEr9.js} +2 -2
- package/storybook-static/assets/Input.stories-B0SSM1T_.js +52 -0
- package/storybook-static/assets/{InputDateTime-D8iFVC4N.js → InputDateTime-EefPx2jA.js} +2 -2
- package/storybook-static/assets/InputDateTime.stories-B71jcVWG.js +30 -0
- package/storybook-static/assets/{InputFile-CEMWMZ8W.js → InputFile-BqoeOsqC.js} +1 -1
- package/storybook-static/assets/{InputFile-CVgdFBc9.js → InputFile-CktSGEBF.js} +2 -2
- package/storybook-static/assets/InputFile.stories-Ce3mDoRs.js +27 -0
- package/storybook-static/assets/{InputFiles-AtxulUya.js → InputFiles-B5O1fLjO.js} +1 -1
- package/storybook-static/assets/{InputFiles-BWh55c4D.js → InputFiles-RrvJwhF3.js} +2 -2
- package/storybook-static/assets/InputFiles.stories-BwWItttY.js +26 -0
- package/storybook-static/assets/{InputFilesList-Dx0Dhms2.js → InputFilesList-DStssgki.js} +1 -1
- package/storybook-static/assets/{InputImage-wBNZRvrJ.js → InputImage-CPGNaW07.js} +2 -2
- package/storybook-static/assets/{InputImage-DKCC82SZ.js → InputImage-CvuIiNq_.js} +1 -1
- package/storybook-static/assets/InputImage.stories-CCG2g2Io.js +56 -0
- package/storybook-static/assets/{InteractiveComponents-CHTFQ4qL.js → InteractiveComponents-BgsmaSTZ.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DJxkbHUR.js → InteractiveComponents.stories-BwtQ8dqK.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-Dv5O_Hy0.js → LayoutPicker-DRtnMCPh.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-D887Y2XB.js → LayoutPicker-DsGelRcW.js} +3 -3
- package/storybook-static/assets/{LayoutPicker.stories-DbN3i5QL.js → LayoutPicker.stories-BWnRDODR.js} +1 -1
- package/storybook-static/assets/{Listbox-Cnzu7mYT.js → Listbox-DOUFsbK8.js} +2 -2
- package/storybook-static/assets/{Listbox-C4dx1h82.js → Listbox-IR21PF4n.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BO1Df9Mq.js → Listbox.stories-qC0AcRTK.js} +1 -1
- package/storybook-static/assets/{Modal-CMacWyay.js → Modal-D8Il31Wx.js} +3 -3
- package/storybook-static/assets/{Modal.stories-DMrYaonL.js → Modal.stories-Vb_wvC7j.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-NbdotfpM.js → ModalManagerProvider-DW29PIGA.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DEPuEcGb.js → MultiSelect-BTXEzEbr.js} +2 -2
- package/storybook-static/assets/{MultiSelect-N4vTBX-X.js → MultiSelect-Bi7awY_l.js} +1 -1
- package/storybook-static/assets/MultiSelect.stories-BHm7nyE0.js +55 -0
- package/storybook-static/assets/{NoData-BdrsNRw1.js → NoData-D2fqJN8_.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-BmcIZZNC.js → NotificationsHost-CB4Caorz.js} +3 -3
- package/storybook-static/assets/NotificationsHost.stories-ClREN7GD.js +29 -0
- package/storybook-static/assets/{ODataMultiSelect-DVVDe1Yr.js → ODataMultiSelect-DVqtuVtf.js} +2 -2
- package/storybook-static/assets/{ODataMultiSelect.stories-DQDXXq_9.js → ODataMultiSelect.stories-BXspOSkv.js} +2 -2
- package/storybook-static/assets/{ODataSelect-B88g3t3l.js → ODataSelect-ODT2BTTx.js} +2 -2
- package/storybook-static/assets/{ODataSelect.stories-BPWp8xtb.js → ODataSelect.stories-Czh9ONwP.js} +2 -2
- package/storybook-static/assets/{ODataTreeMultiSelect-DN0hWqto.js → ODataTreeMultiSelect-D2CfiHud.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-BDDEO9n2.js → ODataTreeMultiSelect.stories-C5CcMnCO.js} +2 -2
- package/storybook-static/assets/{ODataTreeSelect-BpuPkpt_.js → ODataTreeSelect-CtXGcTu6.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-Rgosfapi.js → ODataTreeSelect.stories-D9C0TW7E.js} +2 -2
- package/storybook-static/assets/{OneStepScroller-B8wmmQwf.js → OneStepScroller-DvNxIB4z.js} +1 -1
- package/storybook-static/assets/{Option-Bdu68XEe.js → Option-EvZAvPlO.js} +1 -1
- package/storybook-static/assets/{OptionButton-D0afktaf.js → OptionButton-ClHPJWSS.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-D_NZ5ghQ.js → PeriodSelect-Cj4KFbL8.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-C7DVNvsY.js → PeriodSelect-CopVqvke.js} +1 -1
- package/storybook-static/assets/PeriodSelect.stories-CdPRC5lO.js +50 -0
- package/storybook-static/assets/{PickerTriggerActions-ZNVb9eeZ.js → PickerTriggerActions-CChnIvDY.js} +1 -1
- package/storybook-static/assets/{Popover-CCGDNoKF.js → Popover-D84worS4.js} +2 -2
- package/storybook-static/assets/{Popover-CewYrQZr.js → Popover-GCefn4ZK.js} +1 -1
- package/storybook-static/assets/{Popover.stories-COIDcy4l.js → Popover.stories-Km8RZinG.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DroAaDSa.js → PresetRangeDateInput-CKkA7evU.js} +2 -2
- package/storybook-static/assets/{PresetRangeDateInput-DclYoHcQ.js → PresetRangeDateInput-D8Nd8OKM.js} +1 -1
- package/storybook-static/assets/PresetRangeDateInput.stories-mEsDYDGg.js +3 -0
- package/storybook-static/assets/{PresetSelect-DCGdwz-H.js → PresetSelect-Bm-UK37m.js} +1 -1
- package/storybook-static/assets/{README-TpwnHOuM.js → README-9g3GgWWF.js} +4 -8
- package/storybook-static/assets/{README-CVydkudU.js → README-AVujzV-Q.js} +4 -8
- package/storybook-static/assets/{README-Bemrp1iw.js → README-B2M46KR7.js} +12 -12
- package/storybook-static/assets/{README-B5TiIjbQ.js → README-B2OZG04f.js} +1 -1
- package/storybook-static/assets/{README-Brb_uBB0.js → README-BAsxlcAX.js} +2 -2
- package/storybook-static/assets/{README-DWrWXc67.js → README-BPyrojLC.js} +3 -3
- package/storybook-static/assets/{README-Dq6K08x4.js → README-BQw3k-Ra.js} +4 -4
- package/storybook-static/assets/{README-BBDVhq-F.js → README-BYe60A3Z.js} +3 -3
- package/storybook-static/assets/{README-eKZfcYEw.js → README-BZOXtBHM.js} +1 -1
- package/storybook-static/assets/{README-C0tHxk9e.js → README-Bn52nDUU.js} +1 -1
- package/storybook-static/assets/{README-C6mK2jiz.js → README-Btc8dTTa.js} +1 -1
- package/storybook-static/assets/{README-CDO4U2L-.js → README-Bu8NSN83.js} +1 -1
- package/storybook-static/assets/{README-B8PHFNI6.js → README-ByU9WtnE.js} +1 -1
- package/storybook-static/assets/{README-B0LFAdG7.js → README-C-HfyZj6.js} +4 -8
- package/storybook-static/assets/{README-Cv6X1gyB.js → README-C19FjXEc.js} +6 -9
- package/storybook-static/assets/{README-BLXxOqWU.js → README-C3ootpC3.js} +5 -5
- package/storybook-static/assets/{README-CRdPVRby.js → README-C65NMR4N.js} +1 -1
- package/storybook-static/assets/{README-DXgQjmDb.js → README-C7uZcWP5.js} +1 -5
- package/storybook-static/assets/{README-CMRfMvBh.js → README-C9g6HTtO.js} +4 -4
- package/storybook-static/assets/{README-C9V17f1i.js → README-CGtXxNWL.js} +14 -14
- package/storybook-static/assets/{README-DQ3UG1-2.js → README-CJIysyPl.js} +1 -1
- package/storybook-static/assets/{README-Bq8Gw9ut.js → README-CU0nO91c.js} +3 -3
- package/storybook-static/assets/{README-HKNlRLs4.js → README-CV043M5l.js} +3 -3
- package/storybook-static/assets/{README-MUkRRO8C.js → README-CeVilD38.js} +1 -1
- package/storybook-static/assets/{README-DXAnOakM.js → README-Ch_Q8rfx.js} +3 -6
- package/storybook-static/assets/{README-BZh0P4dJ.js → README-CpJrFpd-.js} +1 -4
- package/storybook-static/assets/{README-CbQE6RqS.js → README-CzVaDwCa.js} +1 -1
- package/storybook-static/assets/{README-BnvGfIB_.js → README-D3ahQzwF.js} +1 -1
- package/storybook-static/assets/{README-DK77wEHj.js → README-DBedFn2k.js} +1 -1
- package/storybook-static/assets/{README-UY3fsLu_.js → README-DBgowiDe.js} +3 -5
- package/storybook-static/assets/{README-Gw_kdXei.js → README-DEZR-nsP.js} +4 -8
- package/storybook-static/assets/{README-CGv6MRmX.js → README-DIz7GaJX.js} +4 -4
- package/storybook-static/assets/{README-jnMsm42G.js → README-DOwtu6P8.js} +1 -1
- package/storybook-static/assets/{README-BQng9oML.js → README-DRlbzNwm.js} +4 -8
- package/storybook-static/assets/{README-BaupBcvr.js → README-DS9gKK_l.js} +1 -1
- package/storybook-static/assets/{README-B6bmU7Tq.js → README-DTM6S2tD.js} +3 -3
- package/storybook-static/assets/{README-CG7cgejD.js → README-DazyZywt.js} +4 -8
- package/storybook-static/assets/{README-BoojQHna.js → README-DgVBKXxO.js} +1 -1
- package/storybook-static/assets/{README-j6FF9vf5.js → README-Dga9VBXp.js} +9 -12
- package/storybook-static/assets/{README-CIS29z6p.js → README-DsG_VYny.js} +1 -1
- package/storybook-static/assets/{README-BqBKX_xQ.js → README-DsTcywLt.js} +4 -7
- package/storybook-static/assets/{README-BTM8wY-Q.js → README-Du_uNuzw.js} +3 -7
- package/storybook-static/assets/{README-B4FGWSHR.js → README-Dwu0rBCx.js} +4 -4
- package/storybook-static/assets/{README-BDEEI-me.js → README-EfW0h3H2.js} +5 -8
- package/storybook-static/assets/{README-SM_eIjlq.js → README-GPrnGZGg.js} +4 -4
- package/storybook-static/assets/{README-BqpsuZii.js → README-I-J1PF75.js} +3 -3
- package/storybook-static/assets/{README-j4oj7GSR.js → README-cHwz_DGu.js} +1 -1
- package/storybook-static/assets/{README-B2pks9-S.js → README-efyzb9zY.js} +1 -1
- package/storybook-static/assets/{README-DK-nosD8.js → README-foisdU5e.js} +1 -1
- package/storybook-static/assets/{README-QnKC46FO.js → README-na4Tvba4.js} +5 -9
- package/storybook-static/assets/{README-DFDO19TR.js → README-oFnWsuXd.js} +4 -4
- package/storybook-static/assets/{README-Db-VD9A-.js → README-pdJ6FjLG.js} +1 -1
- package/storybook-static/assets/{RadioButton-CN-1Bmu-.js → RadioButton-CFIAc4xz.js} +1 -1
- package/storybook-static/assets/{RadioButton-CioheQT6.js → RadioButton-Dk52KGyn.js} +2 -2
- package/storybook-static/assets/RadioButton.stories-B10De9DU.js +32 -0
- package/storybook-static/assets/{RadioGroup-CTZXoIcq.js → RadioGroup-B7X4Pr-l.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CJzzJ3Fs.js → RadioGroup-DHpLxYGV.js} +2 -2
- package/storybook-static/assets/{RadioGroup.stories-C7N9yLcN.js → RadioGroup.stories-BAE8jGr_.js} +1 -1
- package/storybook-static/assets/{Scrollable-BOTJbzkH.js → Scrollable-vhQ02gPl.js} +1 -1
- package/storybook-static/assets/{Select-CNAFGsHq.js → Select-5pGJ-9Pp.js} +1 -1
- package/storybook-static/assets/{Select-D2yqrKAE.js → Select-wSFMQijV.js} +2 -2
- package/storybook-static/assets/Select.stories-D6_viZUX.js +69 -0
- package/storybook-static/assets/{SerializableSelect-BZBYLnHq.js → SerializableSelect-DDx9-Bur.js} +2 -2
- package/storybook-static/assets/{SerializableSelect.stories-PIYq8I5b.js → SerializableSelect.stories-lLHLEyB9.js} +2 -2
- package/storybook-static/assets/{SingleDateTimeInput-D2cDr1L5.js → SingleDateTimeInput-B4vUIB4m.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-B6M2oHtl.js → SingleDateTimeInput-DKleuzaX.js} +2 -2
- package/storybook-static/assets/{SingleDateTimeInput.stories-DqswDqo4.js → SingleDateTimeInput.stories-U_d98CIX.js} +1 -1
- package/storybook-static/assets/{Slider-C0fjZ3TE.js → Slider-C9EHsb-H.js} +3 -3
- package/storybook-static/assets/{Slider-Cu_mMfmP.js → Slider-Dfj4alv-.js} +1 -1
- package/storybook-static/assets/{Slider.stories-BcYnYgUs.js → Slider.stories-vZkWxSqT.js} +1 -1
- package/storybook-static/assets/{SliderInput-CaaSdoql.js → SliderInput-BdYHLdem.js} +1 -1
- package/storybook-static/assets/{SliderInput-D8pa0Cwh.js → SliderInput-CzlPZSO9.js} +3 -3
- package/storybook-static/assets/{SliderInput.stories-biJs3NtU.js → SliderInput.stories-C6tBSbPb.js} +1 -1
- package/storybook-static/assets/{Sortable-wyJd-LB7.js → Sortable-BGVo-kNH.js} +2 -2
- package/storybook-static/assets/Sortable.stories-vIFl2X-p.js +44 -0
- package/storybook-static/assets/{Splitter-D0L1B9tf.js → Splitter-BQWPhfku.js} +4 -4
- package/storybook-static/assets/{Splitter.stories-CDQGRB14.js → Splitter.stories-ICS_ZBHX.js} +1 -1
- package/storybook-static/assets/{StateSelect-BaThi-59.js → StateSelect-CyReXSM1.js} +2 -2
- package/storybook-static/assets/{StateSelect-hO1K2z4b.js → StateSelect-Dd6SpUUh.js} +1 -1
- package/storybook-static/assets/StateSelect.stories-D0-HsFXZ.js +59 -0
- package/storybook-static/assets/StringToggle.stories-pC48Sxqx.js +3 -0
- package/storybook-static/assets/{Switch-Ct9tsisu.js → Switch-BqR-1lxY.js} +2 -2
- package/storybook-static/assets/{Switch-DCV_mYJ2.js → Switch-Cj8-VcVg.js} +1 -1
- package/storybook-static/assets/Switch.stories-WiYjSzuW.js +15 -0
- package/storybook-static/assets/{Table-DaP6Qndv.js → Table-BxXretCJ.js} +4 -4
- package/storybook-static/assets/Table.stories-BNQvlsuf.js +178 -0
- package/storybook-static/assets/{Tabs-CC5Gzc7s.js → Tabs-Bfy1NJMT.js} +3 -3
- package/storybook-static/assets/{Tabs.stories-B_76Da9k.js → Tabs.stories-CPIuTwP2.js} +2 -2
- package/storybook-static/assets/{TabsBox-D52IZXj5.js → TabsBox-jMCEuOZ4.js} +1 -1
- package/storybook-static/assets/{TagInput-T9Lp1amS.js → TagInput-BUw0lagA.js} +1 -1
- package/storybook-static/assets/TagInput.stories-DFt-q5Jo.js +18 -0
- package/storybook-static/assets/{Text-CXcCu6R8.js → Text-qYKrK4eb.js} +1 -1
- package/storybook-static/assets/{Textarea-BlE2vGsV.js → Textarea-CHFjT8jC.js} +1 -1
- package/storybook-static/assets/{Textarea-CNl12Mkz.js → Textarea-evU43JN1.js} +2 -2
- package/storybook-static/assets/Textarea.stories-DEIYLgZF.js +17 -0
- package/storybook-static/assets/{TimePanel-DKD18ldm.js → TimePanel-DTiDfMFt.js} +1 -1
- package/storybook-static/assets/TimePanel.stories-Ct__ocID.js +10 -0
- package/storybook-static/assets/{Toggle-DKNuMtMW.js → Toggle-IPvbQmMD.js} +2 -2
- package/storybook-static/assets/{Toggle-fqZP5j32.js → Toggle-IdtrAW0T.js} +1 -1
- package/storybook-static/assets/Toggle.stories-BJ9VWYeG.js +25 -0
- package/storybook-static/assets/{TreeMultiSelect-b4PiPTEN.js → TreeMultiSelect-CH0Zc3KF.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-B6et22Ea.js → TreeMultiSelect-CSd33bKQ.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-C_4ZpE9w.js → TreeMultiSelect.stories-BJwU3XBe.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BBwppLrT.js → TreePickerBase-CKnyu6AR.js} +1 -1
- package/storybook-static/assets/{TreeSelect-D4u7C0tA.js → TreeSelect-DYJm99Z2.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BaCD5AjF.js → TreeSelect-DiiLtgN_.js} +1 -1
- package/storybook-static/assets/TreeSelect.stories-CEiN12BG.js +32 -0
- package/storybook-static/assets/{TreeTable-CbhUffZj.js → TreeTable-CInX-hLX.js} +3 -3
- package/storybook-static/assets/TreeTable.stories-DQsXSocU.js +138 -0
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQ4Qthn2.js → WithTooltip-CDUNV5IS-mFMh6Qcu.js} +2 -2
- package/storybook-static/assets/{blocks-IjspN281.js → blocks-v2XPznvF.js} +3 -3
- package/storybook-static/assets/{check-ue9rVspp.js → check-Cw2uZkgi.js} +1 -1
- package/storybook-static/assets/{chevron-down-Dnk-3hJo.js → chevron-down-DCcoFYMu.js} +1 -1
- package/storybook-static/assets/{chevron-left-CaAFuWY0.js → chevron-left-DbTmcqTw.js} +1 -1
- package/storybook-static/assets/{chevron-right-CKnELL4E.js → chevron-right-BhBh36az.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-jFAFLKOH.js → chunk-W22LQPXL-2pLErBcr.js} +1 -1
- package/storybook-static/assets/{circle-alert-miJVMeEa.js → circle-alert-DztOdOaG.js} +1 -1
- package/storybook-static/assets/circle-check-CAdrHnV2.js +1 -0
- package/storybook-static/assets/components-BTpiQE9n.js +241 -0
- package/storybook-static/assets/{contextMenu-D8NvB0La.js → contextMenu-DJ0HpnV6.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-DfmnIuod.js → defaultRenderers-Dinv2uRZ.js} +1 -1
- package/storybook-static/assets/{download-Cq_lr01f.js → download-BT_zAyTC.js} +1 -1
- package/storybook-static/assets/floating-ui.react-Cvohd2Gw.js +1 -0
- package/storybook-static/assets/{formatters-D33Uh3si-CxrG0jsB.js → formatters-D33Uh3si-Df97arf9.js} +1 -1
- package/storybook-static/assets/{foundationApi-CLyEyFIu.js → foundationApi-DJeCu7Ht.js} +3 -6
- package/storybook-static/assets/{foundationLib-DH2mxNct.js → foundationLib-hGtcm5KL.js} +1 -1
- package/storybook-static/assets/{hooks-BwH7Yo1F.js → hooks-BCeL5FKt.js} +1 -1
- package/storybook-static/assets/iframe-B-Rqywce.js +1 -0
- package/storybook-static/assets/{iframe-B_6aAEqw.js → iframe-DlUmG4EA.js} +203 -203
- package/storybook-static/assets/{info-BgHKckDk.js → info-BkC2CBYX.js} +1 -1
- package/storybook-static/assets/odata-BMO7cuBZ.js +1 -0
- package/storybook-static/assets/odata-service-CWkHASdw-CXhFi03v.js +3 -0
- package/storybook-static/assets/odataStoryFixtures-CWldE9pM.js +25 -0
- package/storybook-static/assets/{react-18-D4o7zN8K.js → react-18-EmNFJX4V.js} +1 -1
- package/storybook-static/assets/react-C0u6t2Tr.js +9 -0
- package/storybook-static/assets/{refresh-cw-Cz1Mtnwr.js → refresh-cw-BA16_2Dg.js} +1 -1
- package/storybook-static/assets/{settings-2-BUY_jI1a.js → settings-2-C3fAar8h.js} +1 -1
- package/storybook-static/assets/{sortable-DfiDnDGH.js → sortable-4U2uS5RT.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-RwE_sP6g.js → syntaxhighlighter-QEQV7K2Y-e4tU0oKD.js} +1 -1
- package/storybook-static/assets/theming-BgT2grXK.js +39 -0
- package/storybook-static/assets/{trash-2-Da9E4hDy.js → trash-2-DIhA8-QF.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D2CpTkxC.js → triangle-alert-CYOiH1yf.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-BTVM_2wU.js → useODataSelectBase-CcvoIMyY.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BwwhT42f.js → useODataTreeData-Vkqc6Vi_.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-Cug-ZpN1.js → usePickerQuery-7mnpDV7K.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-D3h4HqB9.js → usePickerTriggerController-fH-NsvWu.js} +1 -1
- package/storybook-static/assets/{x-ri5iHB3T.js → x-BJ8ArZif.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +5 -2
- package/storybook-static/sb-manager/runtime.js +1 -0
- package/storybook-static/assets/Color-6AOWCN3U-C363KdaS.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-BnnOI6oQ.js +0 -19
- package/storybook-static/assets/Dialog.stories-DPFNV_A3.js +0 -22
- package/storybook-static/assets/Disclosure.stories-C3MufHWp.js +0 -23
- package/storybook-static/assets/DropZone.stories-mB8JLlHw.js +0 -26
- package/storybook-static/assets/ExpandableActionPanel.stories-eChkcTa4.js +0 -9
- package/storybook-static/assets/ImageCropper.stories-BuwhJESS.js +0 -131
- package/storybook-static/assets/ImageRenderer.stories-BzyPfNyt.js +0 -34
- package/storybook-static/assets/ImageView.stories-FmQ_gxc7.js +0 -14
- package/storybook-static/assets/Input.stories-BbT8eOCH.js +0 -52
- package/storybook-static/assets/InputDateTime.stories-Cdz1C1X5.js +0 -38
- package/storybook-static/assets/InputFile.stories-B84afhOU.js +0 -27
- package/storybook-static/assets/InputFiles.stories-CgMk9QC9.js +0 -26
- package/storybook-static/assets/InputImage.stories-BD3x6S5Y.js +0 -56
- package/storybook-static/assets/MultiSelect.stories-CNNK5rRC.js +0 -55
- package/storybook-static/assets/NotificationsHost.stories-Bf-a-dC3.js +0 -29
- package/storybook-static/assets/PeriodSelect.stories-COeb_LJq.js +0 -50
- package/storybook-static/assets/PresetRangeDateInput.stories-BDmwSMwK.js +0 -3
- package/storybook-static/assets/README-oSHJDhIJ.js +0 -101
- package/storybook-static/assets/RadioButton.stories-GiewWDd0.js +0 -32
- package/storybook-static/assets/Select.stories-CYJpEv_P.js +0 -69
- package/storybook-static/assets/Sortable.stories-CNW8IhRv.js +0 -77
- package/storybook-static/assets/StateSelect.stories-DDviL5zf.js +0 -59
- package/storybook-static/assets/StringToggle.stories-CFAJvvxJ.js +0 -5
- package/storybook-static/assets/Switch.stories-COeP2eOi.js +0 -15
- package/storybook-static/assets/Table.stories-DDFcryTl.js +0 -207
- package/storybook-static/assets/TagInput.stories-DfH66OZc.js +0 -18
- package/storybook-static/assets/Textarea.stories-DVOJ06z_.js +0 -17
- package/storybook-static/assets/TimePanel.stories-Vn5OZdpQ.js +0 -14
- package/storybook-static/assets/Toggle.stories-BLolzyKP.js +0 -25
- package/storybook-static/assets/TreeSelect.stories-CDkOknim.js +0 -32
- package/storybook-static/assets/TreeTable.stories-D-x-lZkU.js +0 -168
- package/storybook-static/assets/circle-check-CNYBjmqs.js +0 -1
- package/storybook-static/assets/components-9iEtMVnM.js +0 -241
- package/storybook-static/assets/floating-ui.react-BoRzzZ17.js +0 -1
- package/storybook-static/assets/iframe-BxPT5t4V.js +0 -1
- package/storybook-static/assets/odata-D2I4jbKq.js +0 -1
- package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +0 -3
- package/storybook-static/assets/odataStoryFixtures-BiN3x4k6.js +0 -25
- package/storybook-static/assets/react-BoM8yiX1.js +0 -9
- package/storybook-static/assets/theming-Cvtrnj7n.js +0 -39
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{c as i,l as a,m as o}from"./blocks-IjspN281.js";var s;function c(){return(c=e((()=>{s='# Context Menu\n\nУниверсальный модуль меню с двумя сценариями открытия:\n\n- `DropdownMenu` — открытие по обычному клику.\n- `ContextMenu` — открытие строго по событию `contextmenu` (правый клик), также поддержан клавиатурный вызов `Shift+F10` и клавиша `ContextMenu`.\n\nРеализация разделена на:\n\n- функциональный слой в `src/shared/lib/context-menu`;\n- UI-слой в `src/shared/ui/basic/context-menu`.\n\nМодуль готов к production-использованию: поддерживает controlled/uncontrolled режим, позиционирование через `floating-ui`, анимацию через `motion`, базовую a11y-разметку и клавиатурную навигацию.\n\n---\n\n## Быстрый старт\n\n```tsx\nimport { ContextMenu, DropdownMenu } from "@/shared/ui";\n```\n\n### Обычное меню (по клику)\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Действия</button>\n </DropdownMenu.Trigger>\n\n <DropdownMenu.Content>\n <DropdownMenu.Item>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item>Копировать</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item>Удалить</DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n### Контекстное меню (по правому клику)\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.Content>\n <ContextMenu.Item>Переименовать</ContextMenu.Item>\n <ContextMenu.Item>Дублировать</ContextMenu.Item>\n <ContextMenu.Separator />\n <ContextMenu.Item>Переместить в корзину</ContextMenu.Item>\n </ContextMenu.Content>\n</ContextMenu>\n```\n\n### Радиальное контекстное меню\n\nРадиальное меню подходит для короткого набора частых действий, которые удобно выбирать вокруг точки вызова. Для длинных списков, групп, разделителей и вложенных сценариев используйте обычный `ContextMenu.Content`.\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.RadialContent>\n <ContextMenu.RadialItem icon={<PencilLine />}>Править</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Copy />}>Копия</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Pin />}>Закрепить</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Eye />}>Просмотр</ContextMenu.RadialItem>\n </ContextMenu.RadialContent>\n</ContextMenu>\n```\n\nВ v1 радиальное меню поддерживает выбор только кликом по пункту. Выбор жестом по направлению движения и отпусканию кнопки мыши не реализован.\n\n---\n\n## API: UI-слой\n\n## `DropdownMenu`\n\nRoot-компонент для меню, открываемого по клику.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"bottom-start"` | Позиция меню относительно trigger-элемента |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu`\n\nRoot-компонент для меню, открываемого по `contextmenu`.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | --------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"right-start"` | Позиция меню относительно точки правого клика |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu.RadialContent`\n\nКольцевой контейнер для коротких контекстных команд вокруг точки открытия.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | --------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Набор `ContextMenu.RadialItem` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n| `restoreFocus` | `boolean` | `true` | Возвращать ли фокус в trigger после закрытия |\n| `radius` | `number` | `76` | Радиус раскладки пунктов в пикселях |\n| `itemSize` | `number` | `64` | Размер одного пункта в пикселях |\n| `closeLabel` | `string` | `"Закрыть"` | Текст и `aria-label` центральной кнопки |\n\n### Поведение\n\n- Рендер в `document.body` через портал.\n- Центрируется на точке правого клика или на центре trigger-элемента при `Shift+F10`.\n- Центральная кнопка закрывает меню и не участвует в раскладке `RadialItem`.\n- Не выходит за границы viewport.\n- Навигация с клавиатуры: `ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`, `Home`, `End`, `Escape`.\n- Оптимальный диапазон — 4-8 пунктов.\n\n---\n\n## `ContextMenu.RadialItem`\n\nПункт радиального меню.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------------ | ------------ | --------------------------- |\n| `children` | `React.ReactNode` | — | Подпись пункта |\n| `icon` | `React.ReactNode` | — | Иконка над подписью |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLButtonElement>) => void` | — | Обработчик выбора |\n\n---\n\n## `*.Trigger`\n\nКомпоненты-триггеры:\n\n- `DropdownMenu.Trigger`\n- `ContextMenu.Trigger`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ---------- | -------------------- | ------------ | ------------------------------------------------------------------- |\n| `children` | `React.ReactElement` | — | Единственный дочерний элемент, в который пробрасываются обработчики |\n\n### Важные детали\n\n- Для `DropdownMenu.Trigger` используется `onClick`.\n- Для `ContextMenu.Trigger` используется `onContextMenu` (с `preventDefault()`).\n- В оба trigger-компонента добавляются `aria-haspopup="menu"` и `aria-expanded`.\n- Вызов через клавиатуру работает в обоих триггерах: `Shift+F10` и `ContextMenu`.\n\n---\n\n## `*.Content`\n\nКомпонент отображения меню:\n\n- `DropdownMenu.Content`\n- `ContextMenu.Content`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | ---------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Контент меню или render-function с `closeMenu` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера меню |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n\n### Поведение по умолчанию\n\n- Рендер в `document.body` через портал.\n- Роль контейнера: `role="menu"`.\n- Автофокус на первый доступный пункт меню.\n- Навигация с клавиатуры:\n- `ArrowDown`, `ArrowUp`\n- `Home`, `End`\n- `Escape`\n\n---\n\n## `*.Item`\n\nПункт меню:\n\n- `DropdownMenu.Item`\n- `ContextMenu.Item`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------ | ------------ | ---------------------------------- |\n| `children` | `React.ReactNode` | — | Текст/контент пункта |\n| `icon` | `React.ReactNode` | — | Иконка слева |\n| `hotKey` | `string` | — | Подсказка сочетания клавиш справа |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `href` | `string` | — | Рендер как `<a>` вместо `<button>` |\n| `target` | `string` | — | Атрибут ссылки |\n| `rel` | `string` | — | Атрибут ссылки |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLElement>) => void` | — | Обработчик выбора |\n\n### Поведение\n\n- Если передан `href`, рендерится ссылка `<a role="menuitem">`.\n- Если `href` не передан, рендерится `<button role="menuitem">`.\n- Если `disabled`, выбор блокируется и закрытие не выполняется.\n\n---\n\n## `*.Separator`\n\nРазделитель группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | -------- | ------------ | ------------------------ |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## `*.GroupLabel`\n\nЛейбл группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | ----------------- | ------------ | ------------------------ |\n| `children` | `React.ReactNode` | — | Текст группы |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## API: функциональный слой (`src/shared/lib/context-menu`)\n\nИмпорт:\n\n```ts\nimport {\n initialMenuState,\n openMenu,\n closeMenu,\n toggleMenu,\n getMenuPointFromEvent,\n getMenuPointFromRect,\n createVirtualAnchor\n} from "@/shared/lib/context-menu";\n```\n\n### Типы\n\n```ts\ninterface MenuPoint {\n x: number;\n y: number;\n}\n\ntype MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";\n\ntype MenuAnchor = { type: "element"; element: HTMLElement } | { type: "point"; point: MenuPoint; contextElement?: Element | null };\n\ninterface MenuState {\n open: boolean;\n source: MenuOpenSource | null;\n anchor: MenuAnchor | null;\n}\n\ninterface OpenMenuPayload {\n source: MenuOpenSource;\n anchor: MenuAnchor;\n}\n```\n\n### Функции состояния\n\n| Функция | Сигнатура | Назначение |\n| ------------------ | ----------------------------------------------------------- | ------------------------------------- |\n| `initialMenuState` | `MenuState` | Начальное состояние закрытого меню |\n| `openMenu` | `(payload: OpenMenuPayload) => MenuState` | Создать состояние открытого меню |\n| `closeMenu` | `(state: MenuState) => MenuState` | Закрыть меню и очистить anchor/source |\n| `toggleMenu` | `(state: MenuState, payload: OpenMenuPayload) => MenuState` | Переключить состояние |\n\n### Функции позиционирования\n\n| Функция | Сигнатура | Назначение |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |\n| `getMenuPointFromEvent` | `(event: { clientX: number; clientY: number }) => MenuPoint` | Получить координаты из mouse event |\n| `getMenuPointFromRect` | `(rect: { left: number; top: number; width: number; height: number }) => MenuPoint` | Получить центр прямоугольника |\n| `createVirtualAnchor` | `(point: MenuPoint, contextElement?: Element \\| null) => { getBoundingClientRect(): DOMRect; contextElement?: Element }` | Создать virtual anchor для `floating-ui` |\n\n---\n\n## Примеры использования\n\n## 1) Controlled `DropdownMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger>\n <button type="button">{open ? "Скрыть" : "Показать"} меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.Item onSelect={() => console.log("Edit")}>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item onSelect={() => setOpen(false)}>Закрыть вручную</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n```\n\n## 2) Controlled `ContextMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <ContextMenu open={open} onOpenChange={setOpen}>\n <ContextMenu.Trigger>\n <div tabIndex={0}>Правая кнопка мыши</div>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n <ContextMenu.Item onSelect={() => alert("Открыть")}>Открыть</ContextMenu.Item>\n </ContextMenu.Content>\n </ContextMenu>\n);\n```\n\n## 3) Группы, иконки, горячие клавиши\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.GroupLabel>Документ</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<FilePenLine size={14} />} hotKey="Ctrl+E">\n Редактировать\n </DropdownMenu.Item>\n <DropdownMenu.Item icon={<Copy size={14} />} hotKey="Ctrl+C">\n Копировать\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>Опасные</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<Trash2 size={14} />} hotKey="Del">\n Удалить\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n## 4) Пункт-ссылка\n\n```tsx\n<ContextMenu.Item href="/docs/123" target="_blank" rel="noreferrer">\n Открыть документацию\n</ContextMenu.Item>\n```\n\n## 5) Оставлять меню открытым после выбора\n\n```tsx\n<DropdownMenu.Item closeOnSelect={false} onSelect={() => setFilter("active")}>\n Только активные\n</DropdownMenu.Item>\n```\n\n## 6) Render-function контента с `closeMenu`\n\n```tsx\n<ContextMenu.Content>\n {({ closeMenu }) => (\n <div>\n <ContextMenu.Item onSelect={() => runCommand("rename")}>Переименовать</ContextMenu.Item>\n <button type="button" onClick={closeMenu}>\n Закрыть\n </button>\n </div>\n )}\n</ContextMenu.Content>\n```\n\n## 7) Асинхронный `onSelect` с ручным закрытием\n\n```tsx\n<DropdownMenu.Item\n closeOnSelect={false}\n onSelect={async () => {\n await saveDraft();\n notify("Черновик сохранен");\n }}>\n Сохранить черновик\n</DropdownMenu.Item>\n```\n\n## 8) Отключить закрытие по клику вне меню\n\n```tsx\n<DropdownMenu.Content disableOutsideClick closeOnEscape>\n <DropdownMenu.Item>Пункт</DropdownMenu.Item>\n</DropdownMenu.Content>\n```\n\n## 9) Кастомные стили контейнера\n\n```tsx\n<ContextMenu.Content className="myContextMenu">\n <ContextMenu.Item>Кастомный пункт</ContextMenu.Item>\n</ContextMenu.Content>\n```\n\n```scss\n.myContextMenu {\n min-width: 18rem;\n max-width: 28rem;\n}\n```\n\n## 10) Использование low-level функций `shared/lib/context-menu`\n\n```ts\nimport { closeMenu, initialMenuState, openMenu, toggleMenu } from "@/shared/lib/context-menu";\n\nlet state = initialMenuState;\n\nstate = openMenu({\n source: "programmatic",\n anchor: {\n type: "point",\n point: { x: 100, y: 200 }\n }\n});\n\nstate = toggleMenu(state, {\n source: "click",\n anchor: {\n type: "point",\n point: { x: 120, y: 220 }\n }\n});\n\nstate = closeMenu(state);\n```\n\n---\n\n## Доступность и клавиатура\n\n- `Trigger` получает `aria-haspopup="menu"` и `aria-expanded`.\n- Контент рендерится с `role="menu"`.\n- Элементы действий рендерятся с `role="menuitem"`.\n- Поддержка клавиш:\n- `Shift+F10` / `ContextMenu` для открытия;\n- `ArrowUp` / `ArrowDown` для перемещения;\n- `Home` / `End` для перехода к первому/последнему пункту;\n- `Escape` для закрытия.\n\n---\n\n## Storybook\n\nИстории находятся в:\n\n- `src/shared/ui/atomic/context-menu/stories/ContextMenu.stories.tsx`\n\nОсновные сценарии:\n\n- `DropdownMenu / Базовый`\n- `ContextMenu / По правому клику`\n- `DropdownMenu / Контролируемый`\n\n---\n\n## Внутренние детали реализации\n\n- Позиционирование: `@floating-ui/react`.\n- Анимация открытия/закрытия: `motion/react` (`AnimatePresence`, `motion.div`).\n- Для совместимости с анимацией позиционирование `floating-ui` переведено на `top/left` (`transform: false`), чтобы исключить конфликт `transform` со стороны `motion`.\n\n---\n\n## Тесты\n\nПокрыты функциональные утилиты слоя `shared/lib/context-menu`:\n\n- `src/shared/lib/context-menu/state.test.ts`\n- `src/shared/lib/context-menu/anchor.test.ts`\n\nЗапуск:\n\n```bash\nnpx vitest run src/shared/lib/context-menu/state.test.ts src/shared/lib/context-menu/anchor.test.ts\n```\n'})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/shared/ui/contextMenu`}),`
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{c as i,l as a,m as o}from"./blocks-v2XPznvF.js";var s;function c(){return(c=e((()=>{s='# Context Menu\n\nУниверсальный модуль меню с двумя сценариями открытия:\n\n- `DropdownMenu` — открытие по обычному клику.\n- `ContextMenu` — открытие строго по событию `contextmenu` (правый клик), также поддержан клавиатурный вызов `Shift+F10` и клавиша `ContextMenu`.\n\nРеализация разделена на:\n\n- функциональный слой в `src/shared/lib/context-menu`;\n- UI-слой в `src/shared/ui/basic/context-menu`.\n\nМодуль готов к production-использованию: поддерживает controlled/uncontrolled режим, позиционирование через `floating-ui`, анимацию через `motion`, базовую a11y-разметку и клавиатурную навигацию.\n\n---\n\n## Быстрый старт\n\n```tsx\nimport { ContextMenu, DropdownMenu } from "@/shared/ui";\n```\n\n### Обычное меню (по клику)\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Действия</button>\n </DropdownMenu.Trigger>\n\n <DropdownMenu.Content>\n <DropdownMenu.Item>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item>Копировать</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item>Удалить</DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n### Контекстное меню (по правому клику)\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.Content>\n <ContextMenu.Item>Переименовать</ContextMenu.Item>\n <ContextMenu.Item>Дублировать</ContextMenu.Item>\n <ContextMenu.Separator />\n <ContextMenu.Item>Переместить в корзину</ContextMenu.Item>\n </ContextMenu.Content>\n</ContextMenu>\n```\n\n### Радиальное контекстное меню\n\nРадиальное меню подходит для короткого набора частых действий, которые удобно выбирать вокруг точки вызова. Для длинных списков, групп, разделителей и вложенных сценариев используйте обычный `ContextMenu.Content`.\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.RadialContent>\n <ContextMenu.RadialItem icon={<PencilLine />}>Править</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Copy />}>Копия</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Pin />}>Закрепить</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Eye />}>Просмотр</ContextMenu.RadialItem>\n </ContextMenu.RadialContent>\n</ContextMenu>\n```\n\nВ v1 радиальное меню поддерживает выбор только кликом по пункту. Выбор жестом по направлению движения и отпусканию кнопки мыши не реализован.\n\n---\n\n## API: UI-слой\n\n## `DropdownMenu`\n\nRoot-компонент для меню, открываемого по клику.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"bottom-start"` | Позиция меню относительно trigger-элемента |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu`\n\nRoot-компонент для меню, открываемого по `contextmenu`.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | --------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"right-start"` | Позиция меню относительно точки правого клика |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu.RadialContent`\n\nКольцевой контейнер для коротких контекстных команд вокруг точки открытия.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | --------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Набор `ContextMenu.RadialItem` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n| `restoreFocus` | `boolean` | `true` | Возвращать ли фокус в trigger после закрытия |\n| `radius` | `number` | `76` | Радиус раскладки пунктов в пикселях |\n| `itemSize` | `number` | `64` | Размер одного пункта в пикселях |\n| `closeLabel` | `string` | `"Закрыть"` | Текст и `aria-label` центральной кнопки |\n\n### Поведение\n\n- Рендер в `document.body` через портал.\n- Центрируется на точке правого клика или на центре trigger-элемента при `Shift+F10`.\n- Центральная кнопка закрывает меню и не участвует в раскладке `RadialItem`.\n- Не выходит за границы viewport.\n- Навигация с клавиатуры: `ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`, `Home`, `End`, `Escape`.\n- Оптимальный диапазон — 4-8 пунктов.\n\n---\n\n## `ContextMenu.RadialItem`\n\nПункт радиального меню.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------------ | ------------ | --------------------------- |\n| `children` | `React.ReactNode` | — | Подпись пункта |\n| `icon` | `React.ReactNode` | — | Иконка над подписью |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLButtonElement>) => void` | — | Обработчик выбора |\n\n---\n\n## `*.Trigger`\n\nКомпоненты-триггеры:\n\n- `DropdownMenu.Trigger`\n- `ContextMenu.Trigger`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ---------- | -------------------- | ------------ | ------------------------------------------------------------------- |\n| `children` | `React.ReactElement` | — | Единственный дочерний элемент, в который пробрасываются обработчики |\n\n### Важные детали\n\n- Для `DropdownMenu.Trigger` используется `onClick`.\n- Для `ContextMenu.Trigger` используется `onContextMenu` (с `preventDefault()`).\n- В оба trigger-компонента добавляются `aria-haspopup="menu"` и `aria-expanded`.\n- Вызов через клавиатуру работает в обоих триггерах: `Shift+F10` и `ContextMenu`.\n\n---\n\n## `*.Content`\n\nКомпонент отображения меню:\n\n- `DropdownMenu.Content`\n- `ContextMenu.Content`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | ---------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Контент меню или render-function с `closeMenu` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера меню |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n\n### Поведение по умолчанию\n\n- Рендер в `document.body` через портал.\n- Роль контейнера: `role="menu"`.\n- Автофокус на первый доступный пункт меню.\n- Навигация с клавиатуры:\n- `ArrowDown`, `ArrowUp`\n- `Home`, `End`\n- `Escape`\n\n---\n\n## `*.Item`\n\nПункт меню:\n\n- `DropdownMenu.Item`\n- `ContextMenu.Item`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------ | ------------ | ---------------------------------- |\n| `children` | `React.ReactNode` | — | Текст/контент пункта |\n| `icon` | `React.ReactNode` | — | Иконка слева |\n| `hotKey` | `string` | — | Подсказка сочетания клавиш справа |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `href` | `string` | — | Рендер как `<a>` вместо `<button>` |\n| `target` | `string` | — | Атрибут ссылки |\n| `rel` | `string` | — | Атрибут ссылки |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLElement>) => void` | — | Обработчик выбора |\n\n### Поведение\n\n- Если передан `href`, рендерится ссылка `<a role="menuitem">`.\n- Если `href` не передан, рендерится `<button role="menuitem">`.\n- Если `disabled`, выбор блокируется и закрытие не выполняется.\n\n---\n\n## `*.Separator`\n\nРазделитель группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | -------- | ------------ | ------------------------ |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## `*.GroupLabel`\n\nЛейбл группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | ----------------- | ------------ | ------------------------ |\n| `children` | `React.ReactNode` | — | Текст группы |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## API: функциональный слой (`src/shared/lib/context-menu`)\n\nИмпорт:\n\n```ts\nimport {\n initialMenuState,\n openMenu,\n closeMenu,\n toggleMenu,\n getMenuPointFromEvent,\n getMenuPointFromRect,\n createVirtualAnchor\n} from "@/shared/lib/context-menu";\n```\n\n### Типы\n\n```ts\ninterface MenuPoint {\n x: number;\n y: number;\n}\n\ntype MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";\n\ntype MenuAnchor = { type: "element"; element: HTMLElement } | { type: "point"; point: MenuPoint; contextElement?: Element | null };\n\ninterface MenuState {\n open: boolean;\n source: MenuOpenSource | null;\n anchor: MenuAnchor | null;\n}\n\ninterface OpenMenuPayload {\n source: MenuOpenSource;\n anchor: MenuAnchor;\n}\n```\n\n### Функции состояния\n\n| Функция | Сигнатура | Назначение |\n| ------------------ | ----------------------------------------------------------- | ------------------------------------- |\n| `initialMenuState` | `MenuState` | Начальное состояние закрытого меню |\n| `openMenu` | `(payload: OpenMenuPayload) => MenuState` | Создать состояние открытого меню |\n| `closeMenu` | `(state: MenuState) => MenuState` | Закрыть меню и очистить anchor/source |\n| `toggleMenu` | `(state: MenuState, payload: OpenMenuPayload) => MenuState` | Переключить состояние |\n\n### Функции позиционирования\n\n| Функция | Сигнатура | Назначение |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |\n| `getMenuPointFromEvent` | `(event: { clientX: number; clientY: number }) => MenuPoint` | Получить координаты из mouse event |\n| `getMenuPointFromRect` | `(rect: { left: number; top: number; width: number; height: number }) => MenuPoint` | Получить центр прямоугольника |\n| `createVirtualAnchor` | `(point: MenuPoint, contextElement?: Element \\| null) => { getBoundingClientRect(): DOMRect; contextElement?: Element }` | Создать virtual anchor для `floating-ui` |\n\n---\n\n## Примеры использования\n\n## 1) Controlled `DropdownMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger>\n <button type="button">{open ? "Скрыть" : "Показать"} меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.Item onSelect={() => console.log("Edit")}>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item onSelect={() => setOpen(false)}>Закрыть вручную</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n```\n\n## 2) Controlled `ContextMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <ContextMenu open={open} onOpenChange={setOpen}>\n <ContextMenu.Trigger>\n <div tabIndex={0}>Правая кнопка мыши</div>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n <ContextMenu.Item onSelect={() => alert("Открыть")}>Открыть</ContextMenu.Item>\n </ContextMenu.Content>\n </ContextMenu>\n);\n```\n\n## 3) Группы, иконки, горячие клавиши\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.GroupLabel>Документ</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<FilePenLine size={14} />} hotKey="Ctrl+E">\n Редактировать\n </DropdownMenu.Item>\n <DropdownMenu.Item icon={<Copy size={14} />} hotKey="Ctrl+C">\n Копировать\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>Опасные</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<Trash2 size={14} />} hotKey="Del">\n Удалить\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n## 4) Пункт-ссылка\n\n```tsx\n<ContextMenu.Item href="/docs/123" target="_blank" rel="noreferrer">\n Открыть документацию\n</ContextMenu.Item>\n```\n\n## 5) Оставлять меню открытым после выбора\n\n```tsx\n<DropdownMenu.Item closeOnSelect={false} onSelect={() => setFilter("active")}>\n Только активные\n</DropdownMenu.Item>\n```\n\n## 6) Render-function контента с `closeMenu`\n\n```tsx\n<ContextMenu.Content>\n {({ closeMenu }) => (\n <div>\n <ContextMenu.Item onSelect={() => runCommand("rename")}>Переименовать</ContextMenu.Item>\n <button type="button" onClick={closeMenu}>\n Закрыть\n </button>\n </div>\n )}\n</ContextMenu.Content>\n```\n\n## 7) Асинхронный `onSelect` с ручным закрытием\n\n```tsx\n<DropdownMenu.Item\n closeOnSelect={false}\n onSelect={async () => {\n await saveDraft();\n notify("Черновик сохранен");\n }}>\n Сохранить черновик\n</DropdownMenu.Item>\n```\n\n## 8) Отключить закрытие по клику вне меню\n\n```tsx\n<DropdownMenu.Content disableOutsideClick closeOnEscape>\n <DropdownMenu.Item>Пункт</DropdownMenu.Item>\n</DropdownMenu.Content>\n```\n\n## 9) Кастомные стили контейнера\n\n```tsx\n<ContextMenu.Content className="myContextMenu">\n <ContextMenu.Item>Кастомный пункт</ContextMenu.Item>\n</ContextMenu.Content>\n```\n\n```scss\n.myContextMenu {\n min-width: 18rem;\n max-width: 28rem;\n}\n```\n\n## 10) Использование low-level функций `shared/lib/context-menu`\n\n```ts\nimport { closeMenu, initialMenuState, openMenu, toggleMenu } from "@/shared/lib/context-menu";\n\nlet state = initialMenuState;\n\nstate = openMenu({\n source: "programmatic",\n anchor: {\n type: "point",\n point: { x: 100, y: 200 }\n }\n});\n\nstate = toggleMenu(state, {\n source: "click",\n anchor: {\n type: "point",\n point: { x: 120, y: 220 }\n }\n});\n\nstate = closeMenu(state);\n```\n\n---\n\n## Доступность и клавиатура\n\n- `Trigger` получает `aria-haspopup="menu"` и `aria-expanded`.\n- Контент рендерится с `role="menu"`.\n- Элементы действий рендерятся с `role="menuitem"`.\n- Поддержка клавиш:\n- `Shift+F10` / `ContextMenu` для открытия;\n- `ArrowUp` / `ArrowDown` для перемещения;\n- `Home` / `End` для перехода к первому/последнему пункту;\n- `Escape` для закрытия.\n\n---\n\n## Storybook\n\nИстории находятся в:\n\n- `src/shared/ui/atomic/context-menu/stories/ContextMenu.stories.tsx`\n\nОсновные сценарии:\n\n- `DropdownMenu / Базовый`\n- `ContextMenu / По правому клику`\n- `DropdownMenu / Контролируемый`\n\n---\n\n## Внутренние детали реализации\n\n- Позиционирование: `@floating-ui/react`.\n- Анимация открытия/закрытия: `motion/react` (`AnimatePresence`, `motion.div`).\n- Для совместимости с анимацией позиционирование `floating-ui` переведено на `top/left` (`transform: false`), чтобы исключить конфликт `transform` со стороны `motion`.\n\n---\n\n## Тесты\n\nПокрыты функциональные утилиты слоя `shared/lib/context-menu`:\n\n- `src/shared/lib/context-menu/state.test.ts`\n- `src/shared/lib/context-menu/anchor.test.ts`\n\nЗапуск:\n\n```bash\nnpx vitest run src/shared/lib/context-menu/state.test.ts src/shared/lib/context-menu/anchor.test.ts\n```\n'})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/ContextMenu`}),`
|
|
2
2
|
`,(0,d.jsx)(i,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;function f(){return(f=e((()=>{d=t(),r(),o(),c()})))()}f();export{u as default};
|
package/storybook-static/assets/{defaultRenderers-DfmnIuod.js → defaultRenderers-Dinv2uRZ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{g as n,y as r}from"./formatters-D33Uh3si-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{g as n,y as r}from"./formatters-D33Uh3si-Df97arf9.js";function i({value:e,open:t,onCommit:n,onOpen:r,onClose:i,isEqual:o}){let s=(0,a.useRef)(!1),[c,l]=(0,a.useState)(e);return(0,a.useEffect)(()=>{s.current&&!t&&(o(c,e)||n(c),i?.(c)),s.current=t},[c,o,i,n,t,e]),{draftValue:c,setDraftValue:l,prepareOpen:()=>{l(e),r?.()}}}var a;function o(){return(o=e((()=>{a=t()})))()}function s(e){return n(e,f)}function c(e,t,n){if(n)return n;let r=e[0];return r?Object.keys(r).find(e=>e!==t)??t:t}function l(e,t,n){if(e.length===0)return;if(e.length>1)return s(e.length);let r=c(e,t,n);return e[0]?.[r]??e[0]?.[t]}function u(e){return function(t){return l(t.selectedItems,e.codeKey,e.textKey)}}function d(e){return function(t){return{text:t[c([t],e.codeKey,e.textKey)]??``,code:e.hideCode?void 0:t[e.codeKey]??``}}}var f;function p(){return(p=e((()=>{r(),f={one:`элемент`,few:`элемента`,many:`элементов`}})))()}export{c as a,p as i,u as n,o,s as r,i as s,d as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-DlUmG4EA.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]],i=n(`download`,r)})))()}export{a as n,i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DlUmG4EA.js";import{t as i}from"./react-dom-BzEl8usk.js";function a(){return typeof window<`u`}function o(e){return l(e)?(e.nodeName||``).toLowerCase():`#document`}function s(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function c(e){return((l(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function l(e){return a()?e instanceof Node||e instanceof s(e).Node:!1}function u(e){return a()?e instanceof Element||e instanceof s(e).Element:!1}function d(e){return a()?e instanceof HTMLElement||e instanceof s(e).HTMLElement:!1}function f(e){return!a()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof s(e).ShadowRoot}function p(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=b(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function m(e){return/^(table|td|th)$/.test(o(e))}function h(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}function g(e){let t=u(e)?b(e):e;return O(t.transform)||O(t.translate)||O(t.scale)||O(t.rotate)||O(t.perspective)||!v()&&(O(t.backdropFilter)||O(t.filter))||E.test(t.willChange||``)||D.test(t.contain||``)}function _(e){let t=S(e);for(;d(t)&&!y(t);){if(g(t))return t;if(h(t))return null;t=S(t)}return null}function v(){return k??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),k}function y(e){return/^(html|body|#document)$/.test(o(e))}function b(e){return s(e).getComputedStyle(e)}function x(e){return u(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function S(e){if(o(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||f(e)&&e.host||c(e);return f(t)?t.host:t}function C(e){let t=S(e);return y(t)?(e.ownerDocument||e).body:d(t)&&p(t)?t:C(t)}function w(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=C(e),i=r===e.ownerDocument?.body,a=s(r);if(i){let e=T(a);return t.concat(a,a.visualViewport||[],p(r)?r:[],e&&n?w(e):[])}return t.concat(r,w(r,[],n))}function T(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var E,D,O,k;function A(){return(A=t((()=>{E=/transform|translate|scale|rotate|perspective|filter/,D=/paint|layout|strict|content/,O=e=>!!e&&e!==`none`})))()}function j(e,t,n){return H(e,V(t,n))}function M(e,t){return typeof e==`function`?e(t):e}function N(e){return e.split(`-`)[0]}function P(e){return e.split(`-`)[1]}function F(e){return e===`x`?`y`:`x`}function I(e){return e===`y`?`height`:`width`}function L(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ee(e){return F(L(e))}function te(e,t,n){n===void 0&&(n=!1);let r=P(e),i=ee(e),a=I(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=re(o)),[o,re(o)]}function R(e){let t=re(e);return[z(e),t,z(t)]}function z(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}function B(e,t,n){switch(e){case`top`:case`bottom`:return n?t?me:pe:t?pe:me;case`left`:case`right`:return t?he:ge;default:return[]}}function ne(e,t,n,r){let i=P(e),a=B(N(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(z)))),a}function re(e){let t=N(e);return fe[t]+e.slice(t.length)}function ie(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function ae(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ie(e)}function oe(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}var se,ce,le,V,H,ue,de,U,fe,pe,me,he,ge;function _e(){return(_e=t((()=>{se=[`top`,`right`,`bottom`,`left`],ce=[`start`,`end`],le=se.reduce((e,t)=>e.concat(t,t+`-`+ce[0],t+`-`+ce[1]),[]),V=Math.min,H=Math.max,ue=Math.round,de=Math.floor,U=e=>({x:e,y:e}),fe={left:`right`,right:`left`,bottom:`top`,top:`bottom`},pe=[`left`,`right`],me=[`right`,`left`],he=[`top`,`bottom`],ge=[`bottom`,`top`]})))()}var ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je;function Ye(){return(Ye=t((()=>{ve=[`input:not([inert]):not([inert] *)`,`select:not([inert]):not([inert] *)`,`textarea:not([inert]):not([inert] *)`,`a[href]:not([inert]):not([inert] *)`,`area[href]:not([inert]):not([inert] *)`,`button:not([inert]):not([inert] *)`,`[tabindex]:not(slot):not([inert]):not([inert] *)`,`audio[controls]:not([inert]):not([inert] *)`,`video[controls]:not([inert]):not([inert] *)`,`[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)`,`details>summary:first-of-type:not([inert]):not([inert] *)`,`details:not([inert]):not([inert] *)`],ye=ve.join(`,`),be=typeof Element>`u`,xe=be?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Se=!be&&Element.prototype.getRootNode?function(e){return e?.getRootNode?.call(e)}:function(e){return e?.ownerDocument},Ce=function(e,t){t===void 0&&(t=!0);var n=e?.getAttribute?.call(e,`inert`);return n===``||n===`true`||t&&e&&(typeof e.closest==`function`?e.closest(`[inert]`):Ce(e.parentNode))},we=function(e){var t=e?.getAttribute?.call(e,`contenteditable`);return t===``||t===`true`},Te=function(e,t,n){if(Ce(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(ye));return t&&xe.call(e,ye)&&r.unshift(e),r=r.filter(n),r},Ee=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var a=i.shift();if(!Ce(a,!1)){if(a.tagName===`SLOT`){var o=a.assignedElements(),s=Ee(o.length?o:a.children,!0,n);n.flatten?r.push.apply(r,s):r.push({scopeParent:a,candidates:s})}else{xe.call(a,ye)&&n.filter(a)&&(t||!e.includes(a))&&r.push(a);var c=a.shadowRoot||typeof n.getShadowRoot==`function`&&n.getShadowRoot(a),l=!Ce(c,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(a));if(c&&l){var u=Ee(c===!0?a.children:c.children,!0,n);n.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else i.unshift.apply(i,a.children)}}}return r},De=function(e){return!isNaN(parseInt(e.getAttribute(`tabindex`),10))},Oe=function(e){if(!e)throw Error(`No node provided`);return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||we(e))&&!De(e)?0:e.tabIndex},ke=function(e,t){var n=Oe(e);return n<0&&t&&!De(e)?0:n},Ae=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},je=function(e){return e.tagName===`INPUT`},Me=function(e){return je(e)&&e.type===`hidden`},Ne=function(e){return e.tagName===`DETAILS`&&Array.prototype.slice.apply(e.children).some(function(e){return e.tagName===`SUMMARY`})},Pe=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},Fe=function(e){if(!e.name)return!0;var t=e.form||Se(e),n=function(e){return t.querySelectorAll(`input[type="radio"][name="`+e+`"]`)},r;if(typeof window<`u`&&window.CSS!==void 0&&typeof window.CSS.escape==`function`)r=n(window.CSS.escape(e.name));else try{r=n(e.name)}catch(e){return console.error(`Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s`,e.message),!1}var i=Pe(r,e.form);return!i||i===e},Ie=function(e){return je(e)&&e.type===`radio`},Le=function(e){return Ie(e)&&!Fe(e)},Re=function(e){var t=e&&Se(e),n=t?.host,r=!1;if(t&&t!==e){var i,a,o;for(r=!!((i=n)!=null&&(a=i.ownerDocument)!=null&&a.contains(n)||e!=null&&(o=e.ownerDocument)!=null&&o.contains(e));!r&&n;){var s,c;t=Se(n),n=t?.host,r=!!((s=n)!=null&&(c=s.ownerDocument)!=null&&c.contains(n))}}return r},ze=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return n===0&&r===0},Be=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(n===`full-native`&&`checkVisibility`in e)return!e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});var i=getComputedStyle(e).visibility;if(i===`hidden`||i===`collapse`)return!0;var a=xe.call(e,`details>summary:first-of-type`)?e.parentElement:e;if(xe.call(a,`details:not([open]) *`))return!0;if(!n||n===`full`||n===`full-native`||n===`legacy-full`){if(typeof r==`function`){for(var o=e;e;){var s=e.parentElement,c=Se(e);if(s&&!s.shadowRoot&&r(s)===!0)return ze(e);e=e.assignedSlot?e.assignedSlot:!s&&c!==e.ownerDocument?c.host:s}e=o}if(Re(e))return!e.getClientRects().length;if(n!==`legacy-full`)return!0}else if(n===`non-zero-area`)return ze(e);return!1},Ve=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName===`FIELDSET`&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(r.tagName===`LEGEND`)return xe.call(t,`fieldset[disabled] *`)?!0:!r.contains(e)}return!0}t=t.parentElement}return!1},He=function(e,t){return!(t.disabled||Me(t)||Be(t,e)||Ne(t)||Ve(t))},Ue=function(e,t){return!(Le(t)||Oe(t)<0||!He(e,t))},We=function(e){var t=parseInt(e.getAttribute(`tabindex`),10);return!!(isNaN(t)||t>=0)},Ge=function(e){var t=[],n=[];return e.forEach(function(e,r){var i=!!e.scopeParent,a=i?e.scopeParent:e,o=ke(a,i),s=i?Ge(e.candidates):a;o===0?i?t.push.apply(t,s):t.push(a):n.push({documentOrder:r,tabIndex:o,item:e,isScope:i,content:s})}),n.sort(Ae).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(t)},Ke=function(e,t){t||={};var n=t.getShadowRoot?Ee([e],t.includeContainer,{filter:Ue.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:We}):Te(e,t.includeContainer,Ue.bind(null,t));return Ge(n)},qe=function(e,t){return t||={},t.getShadowRoot?Ee([e],t.includeContainer,{filter:He.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):Te(e,t.includeContainer,He.bind(null,t))},Je=function(e,t){if(t||={},!e)throw Error(`No node provided`);return xe.call(e,ye)!==!1&&Ue(t,e)}})))()}function Xe(){let e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function Ze(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+`/`+n}).join(` `):navigator.userAgent}function Qe(){return/apple/i.test(navigator.vendor)}function $e(){let e=/android/i;return e.test(Xe())||e.test(Ze())}function et(){return Ze().includes(`jsdom/`)}function tt(e){let t=e.activeElement;for(;((n=t)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;t=t.shadowRoot.activeElement}return t}function W(e,t){if(!e||!t)return!1;let n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&f(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function G(e){return`composedPath`in e?e.composedPath()[0]:e.target}function nt(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function rt(e){return e.matches(`html,body`)}function K(e){return e?.ownerDocument||document}function it(e){return d(e)&&e.matches(wt)}function at(e){return e?e.getAttribute(`role`)===`combobox`&&it(e):!1}function ot(e){return e?e.hasAttribute(Ct)?e:e.querySelector(`[`+Ct+`]`)||e:null}function st(e,t,n){return n===void 0&&(n=!0),e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...st(e,t.id,n)])}function ct(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function lt(e){e.preventDefault(),e.stopPropagation()}function ut(e){return`nativeEvent`in e}function dt(e){return e.mozInputSource===0&&e.isTrusted?!0:$e()&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function ft(e){return et()?!1:!$e()&&e.width===0&&e.height===0||$e()&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function pt(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function mt(e){let t=xt.useRef(e);return J(()=>{t.current=e}),t}function q(e){let t=xt.useRef(()=>{});return Et(()=>{t.current=e}),xt.useCallback(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function ht(e,t){let n=Ke(e,Dt()),r=n.length;if(r===0)return;let i=tt(K(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}function gt(e){return ht(K(e).body,1)||e}function _t(e){return ht(K(e).body,-1)||e}function vt(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!W(n,r)}function yt(e){Ke(e,Dt()).forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)})}function bt(e){e.querySelectorAll(`[data-tabindex]`).forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)})}var xt,St,Ct,wt,J,Tt,Et,Dt;function Ot(){return(Ot=t((()=>{A(),xt=e(n(),1),St=n(),Ye(),Ct=`data-floating-ui-focusable`,wt=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,J=typeof document<`u`?St.useLayoutEffect:function(){},Tt={...xt},Et=Tt.useInsertionEffect||(e=>e()),Dt=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver==`function`&&ResizeObserver.toString().includes(`[native code]`)?`full`:`none`})})))()}function kt(e,t,n){let{reference:r,floating:i}=e,a=L(t),o=ee(t),s=I(o),c=N(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=P(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function At(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=M(t,e),p=ae(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=oe(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=oe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}function jt(e,t,n){return(e?[...n.filter(t=>P(t)===e),...n.filter(t=>P(t)!==e)]:n.filter(e=>N(e)===e)).filter(n=>!e||P(n)===e||(t?z(n)!==n:!1))}async function Mt(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=N(n),s=P(n),c=L(n)===`y`,l=Rt.has(o)?-1:1,u=a&&c?-1:1,d=M(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt;function Ht(){return(Ht=t((()=>{_e(),Nt=50,Pt=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:At},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=kt(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Nt&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=kt(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Ft=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=M(e,t)||{};if(l==null)return{};let d=ae(u),f={x:n,y:r},p=ee(i),m=I(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=V(d[_],T),D=V(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=j(E,k,O),N=!c.arrow&&P(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,F=N?k<E?k-E:k-O:0;return{[p]:f[p]+F,data:{[p]:A,centerOffset:k-A-F,...N&&{alignmentOffset:F}},reset:N}}}),It=function(e){return e===void 0&&(e={}),{name:`autoPlacement`,options:e,async fn(t){let{rects:n,middlewareData:r,placement:i,platform:a,elements:o}=t,{crossAxis:s=!1,alignment:c,allowedPlacements:l=le,autoAlignment:u=!0,...d}=M(e,t),f=c!==void 0||l===le?jt(c||null,u,l):l,p=r.autoPlacement?.index||0,m=f[p];if(m==null)return{};if(i!==m)return{reset:{placement:f[0]}};let h=await a.detectOverflow(t,d),g=te(m,n,await(a.isRTL==null?void 0:a.isRTL(o.floating))),_=[h[N(m)],h[g[0]],h[g[1]]],v=[...r.autoPlacement?.overflows||[],{placement:m,overflows:_}],y=f[p+1];if(y)return{data:{index:p+1,overflows:v},reset:{placement:y}};let b=v.map(e=>{let t=P(e.placement);return[e.placement,t&&s?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=b.filter(e=>e[2].slice(0,P(e[0])?2:3).every(e=>e<=0))[0]?.[0]||b[0][0];return x===i?{}:{data:{index:p+1,overflows:v},reset:{placement:x}}}}},Lt=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=M(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=N(r),_=L(o),v=N(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[re(o)]:R(o)),x=p!==`none`;!d&&x&&b.push(...ne(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=te(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===L(t)||T.every(e=>L(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=L(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},Rt=new Set([`left`,`top`]),zt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Mt(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Bt=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=M(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=L(i),p=F(f),m=u[p],h=u[f],g=(e,t)=>j(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Vt=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=M(e,t),c=await i.detectOverflow(t,s),l=N(n),u=P(n),d=L(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=V(p-c[m],g),y=V(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*H(c.left,c.right):S=p-2*H(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}}})))()}function Ut(e){let t=b(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=d(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ue(n)!==a||ue(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Wt(e){return u(e)?e:e.contextElement}function Gt(e){let t=Wt(e);if(!d(t))return U(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Ut(t),o=(a?ue(n.width):n.width)/r,s=(a?ue(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}function Kt(e){let t=s(e);return!v()||!t.visualViewport?hn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function qt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===s(e)}function Jt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Wt(e),o=U(1);t&&(r?u(r)&&(o=Gt(r)):o=Gt(e));let c=qt(a,n,r)?Kt(a):U(0),l=(i.left+c.x)/o.x,d=(i.top+c.y)/o.y,f=i.width/o.x,p=i.height/o.y;if(a&&r){let e=s(a),t=u(r)?s(r):r,n=e,i=T(n);for(;i&&t!==n;){let e=Gt(i),t=i.getBoundingClientRect(),r=b(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,d*=e.y,f*=e.x,p*=e.y,l+=a,d+=o,n=s(i),i=T(n)}}return oe({width:f,height:p,x:l,y:d})}function Yt(e,t){let n=x(e).scrollLeft;return t?t.left+n:Jt(c(e)).left+n}function Xt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Yt(e,n),y:n.top+t.scrollTop}}function Zt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,s=c(r),l=t?h(t.floating):!1;if(r===s||l&&a)return n;let u={scrollLeft:0,scrollTop:0},f=U(1),m=U(0),g=d(r);if((g||!a)&&((o(r)!==`body`||p(s))&&(u=x(r)),g)){let e=Jt(r);f=Gt(r),m.x=e.x+r.clientLeft,m.y=e.y+r.clientTop}let _=s&&!g&&!a?Xt(s,u):U(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-u.scrollLeft*f.x+m.x+_.x,y:n.y*f.y-u.scrollTop*f.y+m.y+_.y}}function Qt(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function $t(e){let t=x(e),n=e.ownerDocument.body,r=H(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=H(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+Yt(e),o=-t.scrollTop;return b(n).direction===`rtl`&&(a+=H(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}function en(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=s(e),a=c(e),o=i.visualViewport,l=a.clientWidth,u=a.clientHeight,d=0,f=0;if(o){let e=!v()||t===`fixed`;r?e||(d=-o.offsetLeft,f=-o.offsetTop):(l=o.width,u=o.height,e&&(d=o.offsetLeft,f=o.offsetTop))}if(Yt(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=gn&&(l-=o)}return{width:l,height:u,x:d,y:f}}function tn(e,t){let n=Jt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Gt(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function nn(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=en(e,n,t);else if(t===`document`)r=$t(c(e));else if(u(t))r=tn(t,n);else{let n=Kt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return oe(r)}function rn(e,t){let n=t.get(e);if(n)return n;let r=w(e,[],!1).filter(e=>u(e)&&o(e)!==`body`),i=null,a=b(e).position===`fixed`,s=a?S(e):e;for(;u(s)&&!y(s);){let e=b(s),t=g(s),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==s):i=e,s=S(s)}return t.set(e,r),r}function an(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?h(t)?[]:rn(t,this._c):[].concat(n),r],o=nn(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=nn(t,a[e],i);s=H(n.top,s),c=V(n.right,c),l=V(n.bottom,l),u=H(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function on(e){let{width:t,height:n}=Ut(e);return{width:t,height:n}}function sn(e,t,n){let r=d(t),i=c(t),a=n===`fixed`,s=Jt(e,!0,a,t),l={scrollLeft:0,scrollTop:0},u=U(0);if((r||!a)&&((o(t)!==`body`||p(i))&&(l=x(t)),r)){let e=Jt(t,!0,a,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}!r&&i&&(u.x=Yt(i));let f=i&&!r&&!a?Xt(i,l):U(0);return{x:s.left+l.scrollLeft-u.x-f.x,y:s.top+l.scrollTop-u.y-f.y,width:s.width,height:s.height}}function cn(e){return b(e).position===`static`}function ln(e,t){if(!d(e)||b(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return c(e)===n&&(n=n.ownerDocument.body),n}function un(e,t){let n=s(e);if(h(e))return n;if(!d(e)){let t=S(e);for(;t&&!y(t);){if(u(t)&&!cn(t))return t;t=S(t)}return n}let r=ln(e,t);for(;r&&m(r)&&cn(r);)r=ln(r,t);return r&&y(r)&&cn(r)&&!g(r)?n:r||_(e)||n}function dn(e){return b(e).direction===`rtl`}function fn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function pn(e,t,n){let r=null,i,a=c(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function l(n,s){n===void 0&&(n=!1),s===void 0&&(s=1),o();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(n||t(),!f||!p)return;let m=de(d),h=de(a.clientWidth-(u+f)),g=de(a.clientHeight-(d+p)),_=de(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:H(0,V(1,s))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!fn(c,e.getBoundingClientRect()))return l();if(n!==s){if(!y)return l();n?l(!1,n):i=setTimeout(()=>{l(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let u=s(e),d=()=>l(n);return u.addEventListener(`resize`,d),l(!0),()=>{u.removeEventListener(`resize`,d),o()}}function mn(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Wt(e),u=i||a?[...l?w(l):[],...t?w(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?pn(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Jt(e):null;c&&g();function g(){let t=Jt(e);h&&!fn(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn;function En(){return(En=t((()=>{Ht(),_e(),A(),hn=U(0),gn=25,_n=async function(e){let t=this.getOffsetParent||un,n=this.getDimensions,r=await n(e.floating);return{reference:sn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},vn={convertOffsetParentRelativeRectToViewportRelativeRect:Zt,getDocumentElement:c,getClippingRect:an,getOffsetParent:un,getElementRects:_n,getClientRects:Qt,getDimensions:on,getScale:Gt,isElement:u,isRTL:dn},yn=zt,bn=It,xn=Bt,Sn=Lt,Cn=Vt,wn=Ft,Tn=(e,t,n)=>{let r=new Map,i=n??{},a={...vn,...i.platform,_c:r};return Pt(e,t,{...i,platform:a})}})))()}function Dn(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Dn(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Dn(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function On(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function kn(e,t){let n=On(e);return Math.round(t*n)/n}function An(e){let t=Y.useRef(e);return Pn(()=>{t.current=e}),t}function jn(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=Y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=Y.useState(r);Dn(f,r)||p(r);let[m,h]=Y.useState(null),[g,_]=Y.useState(null),v=Y.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=Y.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=Y.useRef(null),C=Y.useRef(null),w=Y.useRef(u),T=c!=null,E=An(c),D=An(i),O=An(l),k=Y.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),Tn(S.current,C.current,e).then(e=>{let t={...e,isPositioned:O.current!==!1};A.current&&!Dn(w.current,t)&&(w.current=t,Nn.flushSync(()=>{d(t)}))})},[f,t,n,D,O]);Pn(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=Y.useRef(!1);Pn(()=>(A.current=!0,()=>{A.current=!1}),[]),Pn(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,k);k()}},[b,x,k,E,T]);let j=Y.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),M=Y.useMemo(()=>({reference:b,floating:x}),[b,x]),N=Y.useMemo(()=>{let e={position:n,left:0,top:0};if(!M.floating)return e;let t=kn(M.floating,u.x),r=kn(M.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...On(M.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,M.floating,u.x,u.y]);return Y.useMemo(()=>({...u,update:k,refs:j,elements:M,floatingStyles:N}),[u,k,j,M,N])}var Y,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn;function Hn(){return(Hn=t((()=>{En(),Y=e(n(),1),Mn=n(),Nn=e(i(),1),Pn=typeof document<`u`?Mn.useLayoutEffect:function(){},Fn=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:wn({element:r.current,padding:i}).fn(n):r?wn({element:r,padding:i}).fn(n):{}}}},In=(e,t)=>{let n=yn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Ln=(e,t)=>{let n=xn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Rn=(e,t)=>{let n=Sn(e);return{name:n.name,fn:n.fn,options:[e,t]}},zn=(e,t)=>{let n=Cn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Bn=(e,t)=>{let n=bn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Vn=(e,t)=>{let n=Fn(e);return{name:n.name,fn:n.fn,options:[e,t]}}})))()}function Un(){let[e,t]=Z.useState(()=>Dr?kr():void 0);return J(()=>{e??t(kr())},[]),Z.useEffect(()=>{Dr=!0},[]),e}function Wn(){let e=new Map;return{emit(t,n){var r;(r=e.get(t))==null||r.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){var r;(r=e.get(t))==null||r.delete(n)}}}function Gn(e){return`data-floating-ui-`+e}function X(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}function Kn(e,t,n){if(n&&!pt(n))return 0;if(typeof e==`number`)return e;if(typeof e==`function`){let n=e();return typeof n==`number`?n:n?.[t]}return e?.[t]}function qn(e){return typeof e==`function`?e():e}function Jn(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,dataRef:i,events:a,elements:o}=e,{enabled:s=!0,delay:c=0,handleClose:l=null,mouseOnly:d=!1,restMs:f=0,move:p=!0}=t,m=Pr(),h=Nr(),g=mt(l),_=mt(c),v=mt(n),y=mt(f),b=Z.useRef(),x=Z.useRef(-1),S=Z.useRef(),C=Z.useRef(-1),w=Z.useRef(!0),T=Z.useRef(!1),E=Z.useRef(()=>{}),D=Z.useRef(!1),O=q(()=>{let e=i.current.openEvent?.type;return e?.includes(`mouse`)&&e!==`mousedown`});Z.useEffect(()=>{if(!s)return;function e(e){let{open:t}=e;t||(X(x),X(C),w.current=!0,D.current=!1)}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[s,a]),Z.useEffect(()=>{if(!s||!g.current||!n)return;function e(e){O()&&r(!1,e,`hover`)}let t=K(o.floating).documentElement;return t.addEventListener(`mouseleave`,e),()=>{t.removeEventListener(`mouseleave`,e)}},[o.floating,n,r,s,g,O]);let k=Z.useCallback(function(e,t,n){t===void 0&&(t=!0),n===void 0&&(n=`hover`);let i=Kn(_.current,`close`,b.current);i&&!S.current?(X(x),x.current=window.setTimeout(()=>r(!1,e,n),i)):t&&(X(x),r(!1,e,n))},[_,r]),A=q(()=>{E.current(),S.current=void 0}),j=q(()=>{if(T.current){let e=K(o.floating).body;e.style.pointerEvents=``,e.removeAttribute(Fr),T.current=!1}}),M=q(()=>i.current.openEvent?[`click`,`mousedown`].includes(i.current.openEvent.type):!1);Z.useEffect(()=>{if(!s)return;function e(e){if(X(x),w.current=!1,d&&!pt(b.current)||qn(y.current)>0&&!Kn(_.current,`open`))return;let t=Kn(_.current,`open`,b.current);t?x.current=window.setTimeout(()=>{v.current||r(!0,e,`hover`)},t):n||r(!0,e,`hover`)}function t(e){if(M()){j();return}E.current();let t=K(o.floating);if(X(C),D.current=!1,g.current&&i.current.floatingContext){n||X(x),S.current=g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e,!0,`safe-polygon`)}});let r=S.current;t.addEventListener(`mousemove`,r),E.current=()=>{t.removeEventListener(`mousemove`,r)};return}(b.current!==`touch`||!W(o.floating,e.relatedTarget))&&k(e)}function a(e){M()||i.current.floatingContext&&(g.current==null||g.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){j(),A(),M()||k(e)}})(e))}function c(){X(x)}function l(e){M()||k(e,!1)}if(u(o.domReference)){let r=o.domReference,i=o.floating;return n&&r.addEventListener(`mouseleave`,a),p&&r.addEventListener(`mousemove`,e,{once:!0}),r.addEventListener(`mouseenter`,e),r.addEventListener(`mouseleave`,t),i&&(i.addEventListener(`mouseleave`,a),i.addEventListener(`mouseenter`,c),i.addEventListener(`mouseleave`,l)),()=>{n&&r.removeEventListener(`mouseleave`,a),p&&r.removeEventListener(`mousemove`,e),r.removeEventListener(`mouseenter`,e),r.removeEventListener(`mouseleave`,t),i&&(i.removeEventListener(`mouseleave`,a),i.removeEventListener(`mouseenter`,c),i.removeEventListener(`mouseleave`,l))}}},[o,s,e,d,p,k,A,j,r,n,v,m,_,g,i,M,y]),J(()=>{var e;if(s&&n&&(e=g.current)!=null&&(e=e.__options)!=null&&e.blockPointerEvents&&O()){T.current=!0;let e=o.floating;if(u(o.domReference)&&e){var t;let n=K(o.floating).body;n.setAttribute(Fr,``);let r=o.domReference,i=m==null||(t=m.nodesRef.current.find(e=>e.id===h))==null||(t=t.context)==null?void 0:t.elements.floating;return i&&(i.style.pointerEvents=``),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,e.style.pointerEvents=`auto`,()=>{n.style.pointerEvents=``,r.style.pointerEvents=``,e.style.pointerEvents=``}}}},[s,n,h,o,m,g,O]),J(()=>{n||(b.current=void 0,D.current=!1,A(),j())},[n,A,j]),Z.useEffect(()=>()=>{A(),X(x),X(C),j()},[s,o.domReference,A,j]);let N=Z.useMemo(()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function i(){!w.current&&!v.current&&r(!0,t,`hover`)}d&&!pt(b.current)||n||qn(y.current)===0||D.current&&e.movementX**2+e.movementY**2<2||(X(C),b.current===`touch`?i():(D.current=!0,C.current=window.setTimeout(i,qn(y.current))))}}},[d,r,n,v,y]);return Z.useMemo(()=>s?{reference:N}:{},[s,N])}function Yn(e,t){t===void 0&&(t={});let{preventScroll:n=!1,cancelPrevious:r=!0,sync:i=!1}=t;r&&cancelAnimationFrame(Ir);let a=()=>e?.focus({preventScroll:n});i?a():Ir=requestAnimationFrame(a)}function Xn(e){return e?.ownerDocument||document}function Zn(e){return e===`inert`?Lr.inert:e===`aria-hidden`?Lr[`aria-hidden`]:Lr.none}function Qn(e){return e?f(e)?e.host:Qn(e.parentNode):null}function $n(e,t,n,r){let i=`data-floating-ui-inert`,a=r?`inert`:n?`aria-hidden`:null,s=Hr(t,e),c=new Set,l=new Set(s),u=[];zr[i]||(zr[i]=new WeakMap);let d=zr[i];s.forEach(f),p(t),c.clear();function f(e){!e||c.has(e)||(c.add(e),e.parentNode&&f(e.parentNode))}function p(e){!e||l.has(e)||[].forEach.call(e.children,e=>{if(o(e)!==`script`){if(c.has(e))p(e);else{let t=a?e.getAttribute(a):null,n=t!==null&&t!==`false`,r=Zn(a),o=(r.get(e)||0)+1,s=(d.get(e)||0)+1;r.set(e,o),d.set(e,s),u.push(e),o===1&&n&&Rr.add(e),s===1&&e.setAttribute(i,``),!n&&a&&e.setAttribute(a,a===`inert`?``:`true`)}}})}return Br++,()=>{u.forEach(e=>{let t=Zn(a),n=(t.get(e)||0)-1,r=(d.get(e)||0)-1;t.set(e,n),d.set(e,r),n||(!Rr.has(e)&&a&&e.removeAttribute(a),Rr.delete(e)),r||e.removeAttribute(i)}),Br--,Br||(Lr.inert=new WeakMap,Lr[`aria-hidden`]=new WeakMap,Lr.none=new WeakMap,Rr=new WeakSet,zr={})}}function er(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);let r=Xn(e[0]).body;return $n(e.concat(Array.from(r.querySelectorAll(`[aria-live],[role="status"],output`))),r,t,n)}function tr(e){e===void 0&&(e={});let{id:t,root:n}=e,r=Ar(),i=Jr(),[a,o]=Z.useState(null),s=Z.useRef(null);return J(()=>()=>{a?.remove(),queueMicrotask(()=>{s.current=null})},[a]),J(()=>{if(!r||s.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(`div`);n.id=r,n.setAttribute(qr,``),e.appendChild(n),s.current=n,o(n)},[t,r]),J(()=>{if(n===null||!r||s.current)return;let e=n||i?.portalNode;e&&!l(e)&&(e=e.current),e||=document.body;let a=null;t&&(a=document.createElement(`div`),a.id=t,e.appendChild(a));let c=document.createElement(`div`);c.id=r,c.setAttribute(qr,``),e=a||e,e.appendChild(c),s.current=c,o(c)},[t,n,r,i]),a}function nr(e){let{children:t,id:n,root:r,preserveTabOrder:i=!0}=e,a=tr({id:n,root:r}),[o,s]=Z.useState(null),c=Z.useRef(null),l=Z.useRef(null),u=Z.useRef(null),d=Z.useRef(null),f=o?.modal,p=o?.open,m=!!o&&!o.modal&&o.open&&i&&!!(r||a);return Z.useEffect(()=>{if(!a||!i||f)return;function e(e){a&&vt(e)&&(e.type===`focusin`?bt:yt)(a)}return a.addEventListener(`focusin`,e,!0),a.addEventListener(`focusout`,e,!0),()=>{a.removeEventListener(`focusin`,e,!0),a.removeEventListener(`focusout`,e,!0)}},[a,i,f]),Z.useEffect(()=>{a&&(p||bt(a))},[p,a]),(0,Q.jsxs)(Kr.Provider,{value:Z.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:c,afterOutsideRef:l,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:s}),[i,a]),children:[m&&a&&(0,Q.jsx)(Wr,{"data-type":`outside`,ref:c,onFocus:e=>{if(vt(e,a)){var t;(t=u.current)==null||t.focus()}else _t(o?o.domReference:null)?.focus()}}),m&&a&&(0,Q.jsx)(`span`,{"aria-owns":a.id,style:Gr}),a&&gr.createPortal(t,a),m&&a&&(0,Q.jsx)(Wr,{"data-type":`outside`,ref:l,onFocus:e=>{if(vt(e,a)){var t;(t=d.current)==null||t.focus()}else gt(o?o.domReference:null)?.focus(),o!=null&&o.closeOnFocusOut&&o?.onOpenChange(!1,e.nativeEvent,`focus-out`)}})]})}function rr(e){return Z.useMemo(()=>t=>{e.forEach(e=>{e&&(e.current=t)})},e)}function ir(){$=$.filter(e=>e.deref()?.isConnected)}function ar(e){ir(),e&&o(e)!==`body`&&($.push(new WeakRef(e)),$.length>Yr&&($=$.slice(-20)))}function or(){return ir(),$[$.length-1]?.deref()}function sr(e){let t=Dt();return Je(e,t)?e:Ke(e,t)[0]||e}function cr(e,t){var n;if(!t.current.includes(`floating`)&&!((n=e.getAttribute(`role`))!=null&&n.includes(`dialog`)))return;let r=Dt(),i=qe(e,r).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return Je(e,r)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),a=e.getAttribute(`tabindex`);t.current.includes(`floating`)||i.length===0?a!==`0`&&e.setAttribute(`tabindex`,`0`):(a!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function lr(e){let{context:t,children:n,disabled:r=!1,order:i=[`content`],guards:a=!0,initialFocus:o=0,returnFocus:s=!0,restoreFocus:c=!1,modal:l=!0,visuallyHiddenDismiss:u=!1,closeOnFocusOut:f=!0,outsideElementsInert:p=!1,getInsideElements:m=()=>[]}=e,{open:h,onOpenChange:g,events:_,dataRef:v,elements:{domReference:y,floating:b}}=t,x=q(()=>v.current.floatingContext?.nodeId),S=q(m),C=typeof o==`number`&&o<0,w=at(y)&&C,T=Vr(),E=!T||a,D=!E||T&&p,O=mt(i),k=mt(o),A=mt(s),j=Pr(),M=Jr(),N=Z.useRef(null),P=Z.useRef(null),F=Z.useRef(!1),I=Z.useRef(!1),L=Z.useRef(-1),ee=Z.useRef(-1),te=M!=null,R=ot(b),z=q(function(e){return e===void 0&&(e=R),e?Ke(e,Dt()):[]}),B=q(e=>{let t=z(e);return O.current.map(e=>y&&e===`reference`?y:R&&e===`floating`?R:t).filter(Boolean).flat()});Z.useEffect(()=>{if(r||!l)return;function e(e){if(e.key===`Tab`){W(R,tt(K(R)))&&z().length===0&&!w&<(e);let t=B(),n=G(e);O.current[0]===`reference`&&n===y&&(lt(e),e.shiftKey?Yn(t[t.length-1]):Yn(t[1])),O.current[1]===`floating`&&n===R&&e.shiftKey&&(lt(e),Yn(t[0]))}}let t=K(R);return t.addEventListener(`keydown`,e),()=>{t.removeEventListener(`keydown`,e)}},[r,y,R,l,O,w,z,B]),Z.useEffect(()=>{if(r||!b)return;function e(e){let t=G(e),n=z().indexOf(t);n!==-1&&(L.current=n)}return b.addEventListener(`focusin`,e),()=>{b.removeEventListener(`focusin`,e)}},[r,b,z]),Z.useEffect(()=>{if(r||!f)return;function e(){I.current=!0,setTimeout(()=>{I.current=!1})}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=G(e);queueMicrotask(()=>{let i=x(),a=!(W(y,t)||W(b,t)||W(t,b)||W(M?.portalNode,t)||t!=null&&t.hasAttribute(Gn(`focus-guard`))||j&&(st(j.nodesRef.current,i).find(e=>W(e.context?.elements.floating,t)||W(e.context?.elements.domReference,t))||ct(j.nodesRef.current,i).find(e=>[e.context?.elements.floating,ot(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===y&&R&&cr(R,O),c&&n!==y&&!(r!=null&&r.isConnected)&&tt(K(R))===K(R).body){d(R)&&R.focus();let e=L.current,t=z(),n=t[e]||t[t.length-1]||R;d(n)&&n.focus()}if(v.current.insideReactTree){v.current.insideReactTree=!1;return}(w||!l)&&t&&a&&!I.current&&t!==or()&&(F.current=!0,g(!1,e,`focus-out`))})}let n=!!(!j&&M);function i(){X(ee),v.current.insideReactTree=!0,ee.current=window.setTimeout(()=>{v.current.insideReactTree=!1})}if(b&&d(y))return y.addEventListener(`focusout`,t),y.addEventListener(`pointerdown`,e),b.addEventListener(`focusout`,t),n&&b.addEventListener(`focusout`,i,!0),()=>{y.removeEventListener(`focusout`,t),y.removeEventListener(`pointerdown`,e),b.removeEventListener(`focusout`,t),n&&b.removeEventListener(`focusout`,i,!0)}},[r,y,b,R,l,j,M,g,f,c,z,w,x,O,v]);let ne=Z.useRef(null),re=Z.useRef(null),ie=rr([ne,M?.beforeInsideRef]),ae=rr([re,M?.afterInsideRef]);Z.useEffect(()=>{var e,t;if(r||!b)return;let n=Array.from((M==null||(e=M.portalNode)==null?void 0:e.querySelectorAll(`[`+Gn(`portal`)+`]`))||[]),i=(t=(j?ct(j.nodesRef.current,x()):[]).find(e=>at(e.context?.elements.domReference||null)))==null||(t=t.context)==null?void 0:t.elements.domReference,a=[b,i,...n,...S(),N.current,P.current,ne.current,re.current,M?.beforeOutsideRef.current,M?.afterOutsideRef.current,O.current.includes(`reference`)||w?y:null].filter(e=>e!=null),o=l||w?er(a,!D,D):er(a);return()=>{o()}},[r,y,b,l,O,M,w,E,D,j,x,S]),J(()=>{if(r||!d(R))return;let e=tt(K(R));queueMicrotask(()=>{let t=B(R),n=k.current,r=(typeof n==`number`?t[n]:n.current)||R,i=W(R,e);!C&&!i&&h&&Yn(r,{preventScroll:r===R})})},[r,h,R,C,B,k]),J(()=>{if(r||!R)return;let e=K(R);ar(tt(e));function t(e){let{reason:t,event:n,nested:r}=e;if([`hover`,`safe-polygon`].includes(t)&&n.type===`mouseleave`&&(F.current=!0),t===`outside-press`){if(r)F.current=!1;else if(dt(n)||ft(n))F.current=!1;else{let e=!1;document.createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?F.current=!1:F.current=!0}}}_.on(`openchange`,t);let n=e.createElement(`span`);n.setAttribute(`tabindex`,`-1`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,Ur),te&&y&&y.insertAdjacentElement(`afterend`,n);function i(){if(typeof A.current==`boolean`){let e=y||or();return e&&e.isConnected?e:n}return A.current.current||n}return()=>{_.off(`openchange`,t);let r=tt(e),a=W(b,r)||j&&st(j.nodesRef.current,x(),!1).some(e=>W(e.context?.elements.floating,r)),o=i();queueMicrotask(()=>{let t=sr(o);A.current&&!F.current&&d(t)&&(t===r||r===e.body||a)&&t.focus({preventScroll:!0}),n.remove()})}},[r,b,R,A,v,_,j,te,y,x]),Z.useEffect(()=>(queueMicrotask(()=>{F.current=!1}),()=>{queueMicrotask(ir)}),[r]),J(()=>{if(!r&&M)return M.setFocusManagerState({modal:l,closeOnFocusOut:f,open:h,onOpenChange:g,domReference:y}),()=>{M.setFocusManagerState(null)}},[r,M,l,h,g,f,y]),J(()=>{r||R&&cr(R,O)},[r,R,O]);function oe(e){return r||!u||!l?null:(0,Q.jsx)(Xr,{ref:e===`start`?N:P,onClick:e=>g(!1,e.nativeEvent),children:typeof u==`string`?u:`Dismiss`})}let se=!r&&E&&(!l||!w)&&(te||l);return(0,Q.jsxs)(Q.Fragment,{children:[se&&(0,Q.jsx)(Wr,{"data-type":`inside`,ref:ie,onFocus:e=>{if(l){let e=B();Yn(i[0]===`reference`?e[0]:e[e.length-1])}else if(M!=null&&M.preserveTabOrder&&M.portalNode){if(F.current=!1,vt(e,M.portalNode))gt(y)?.focus();else{var t;(t=M.beforeOutsideRef.current)==null||t.focus()}}}}),!w&&oe(`start`),n,oe(`end`),se&&(0,Q.jsx)(Wr,{"data-type":`inside`,ref:ae,onFocus:e=>{if(l)Yn(B()[0]);else if(M!=null&&M.preserveTabOrder&&M.portalNode){if(f&&(F.current=!0),vt(e,M.portalNode))_t(y)?.focus();else{var t;(t=M.afterOutsideRef.current)==null||t.focus()}}}})]})}function ur(e,t){t===void 0&&(t={});let{open:n,onOpenChange:r,elements:i,dataRef:a}=e,{enabled:o=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:l=`pointerdown`,referencePress:f=!1,referencePressEvent:p=`pointerdown`,ancestorScroll:m=!1,bubbles:h,capture:g}=t,_=Pr(),x=q(typeof c==`function`?c:()=>!1),C=typeof c==`function`?x:c,T=Z.useRef(!1),{escapeKey:E,outsidePress:D}=$r(h),{escapeKey:O,outsidePress:k}=$r(g),A=Z.useRef(!1),j=q(e=>{if(!n||!o||!s||e.key!==`Escape`||A.current)return;let t=a.current.floatingContext?.nodeId,i=_?st(_.nodesRef.current,t):[];if(!E&&(e.stopPropagation(),i.length>0)){let e=!0;if(i.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__escapeKeyBubbles){e=!1;return}}),!e)return}r(!1,ut(e)?e.nativeEvent:e,`escape-key`)}),M=q(e=>{var t;let n=()=>{var t;j(e),(t=G(e))==null||t.removeEventListener(`keydown`,n)};(t=G(e))==null||t.addEventListener(`keydown`,n)}),N=q(e=>{let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=T.current;if(T.current=!1,l===`click`&&n||t||typeof C==`function`&&!C(e))return;let o=G(e),s=`[`+Gn(`inert`)+`]`,c=K(i.floating).querySelectorAll(s),f=u(o)?o:null;for(;f&&!y(f);){let e=S(f);if(y(e)||!u(e))break;f=e}if(c.length&&u(o)&&!rt(o)&&!W(o,i.floating)&&Array.from(c).every(e=>!W(f,e)))return;if(d(o)&&I){let t=y(o),n=b(o),r=/auto|scroll/,i=t||r.test(n.overflowX),a=t||r.test(n.overflowY),s=i&&o.clientWidth>0&&o.scrollWidth>o.clientWidth,c=a&&o.clientHeight>0&&o.scrollHeight>o.clientHeight,l=n.direction===`rtl`,u=c&&(l?e.offsetX<=o.offsetWidth-o.clientWidth:e.offsetX>o.clientWidth),d=s&&e.offsetY>o.clientHeight;if(u||d)return}let p=a.current.floatingContext?.nodeId,m=_&&st(_.nodesRef.current,p).some(t=>nt(e,t.context?.elements.floating));if(nt(e,i.floating)||nt(e,i.domReference)||m)return;let h=_?st(_.nodesRef.current,p):[];if(h.length>0){let e=!0;if(h.forEach(t=>{var n;if((n=t.context)!=null&&n.open&&!t.context.dataRef.current.__outsidePressBubbles){e=!1;return}}),!e)return}r(!1,e,`outside-press`)}),P=q(e=>{var t;let n=()=>{var t;N(e),(t=G(e))==null||t.removeEventListener(l,n)};(t=G(e))==null||t.addEventListener(l,n)});Z.useEffect(()=>{if(!n||!o)return;a.current.__escapeKeyBubbles=E,a.current.__outsidePressBubbles=D;let e=-1;function t(e){r(!1,e,`ancestor-scroll`)}function c(){window.clearTimeout(e),A.current=!0}function d(){e=window.setTimeout(()=>{A.current=!1},v()?5:0)}let f=K(i.floating);s&&(f.addEventListener(`keydown`,O?M:j,O),f.addEventListener(`compositionstart`,c),f.addEventListener(`compositionend`,d)),C&&f.addEventListener(l,k?P:N,k);let p=[];return m&&(u(i.domReference)&&(p=w(i.domReference)),u(i.floating)&&(p=p.concat(w(i.floating))),!u(i.reference)&&i.reference&&i.reference.contextElement&&(p=p.concat(w(i.reference.contextElement)))),p=p.filter(e=>e!==f.defaultView?.visualViewport),p.forEach(e=>{e.addEventListener(`scroll`,t)}),()=>{s&&(f.removeEventListener(`keydown`,O?M:j,O),f.removeEventListener(`compositionstart`,c),f.removeEventListener(`compositionend`,d)),C&&f.removeEventListener(l,k?P:N,k),p.forEach(e=>{e.removeEventListener(`scroll`,t)}),window.clearTimeout(e)}},[a,i,s,C,l,n,r,m,o,E,D,j,O,M,N,k,P]),Z.useEffect(()=>{a.current.insideReactTree=!1},[a,C,l]);let F=Z.useMemo(()=>({onKeyDown:j,...f&&{[Zr[p]]:e=>{r(!1,e.nativeEvent,`reference-press`)},...p!==`click`&&{onClick(e){r(!1,e.nativeEvent,`reference-press`)}}}}),[j,r,f,p]),I=Z.useMemo(()=>{function e(e){e.button===0&&(T.current=!0)}return{onKeyDown:j,onMouseDown:e,onMouseUp:e,[Qr[l]]:()=>{a.current.insideReactTree=!0}}},[j,l,a]);return Z.useMemo(()=>o?{reference:F,floating:I}:{},[o,F,I])}function dr(e){let{open:t=!1,onOpenChange:n,elements:r}=e,i=Ar(),a=Z.useRef({}),[o]=Z.useState(()=>Wn()),s=Nr()!=null,[c,l]=Z.useState(r.reference),u=q((e,t,r)=>{a.current.openEvent=e?t:void 0,o.emit(`openchange`,{open:e,event:t,reason:r,nested:s}),n?.(e,t,r)}),d=Z.useMemo(()=>({setPositionReference:l}),[]),f=Z.useMemo(()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference}),[c,r.reference,r.floating]);return Z.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:o,floatingId:i,refs:d}),[t,u,f,o,i,d])}function fr(e){let{elements:t,...n}=e===void 0?{}:e,{nodeId:r}=n,i=dr({...n,elements:{reference:t?.reference??null,floating:t?.floating??null}}),a=n.rootContext||i,o=a.elements,[s,c]=Z.useState(null),[l,d]=Z.useState(null),f=o?.domReference||s,p=Z.useRef(null),m=Pr();J(()=>{f&&(p.current=f)},[f]);let h=jn({...n,elements:{...o,...l&&{reference:l}}}),g=Z.useCallback(e=>{let t=u(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;d(t),h.refs.setReference(t)},[h.refs]),_=Z.useCallback(e=>{(u(e)||e===null)&&(p.current=e,c(e)),(u(h.refs.reference.current)||h.refs.reference.current===null||e!==null&&!u(e))&&h.refs.setReference(e)},[h.refs]),v=Z.useMemo(()=>({...h.refs,setReference:_,setPositionReference:g,domReference:p}),[h.refs,_,g]),y=Z.useMemo(()=>({...h.elements,domReference:f}),[h.elements,f]),b=Z.useMemo(()=>({...h,...a,refs:v,elements:y,nodeId:r}),[h,v,y,r,a]);return J(()=>{a.dataRef.current.floatingContext=b;let e=m?.nodesRef.current.find(e=>e.id===r);e&&(e.context=b)}),Z.useMemo(()=>({...h,context:b,refs:v,elements:y}),[h,v,y,b])}function pr(e,t,n){let r=new Map,i=n===`item`,a=e;if(i&&e){let{[vr]:t,[yr]:n,...r}=e;a=r}return{...n===`floating`&&{tabIndex:-1,[_r]:``},...a,...t.map(t=>{let r=t?t[n]:null;return typeof r==`function`?e?r(e):null:r}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,a]=t;if(!(i&&[vr,yr].includes(n))){if(n.indexOf(`on`)===0){if(r.has(n)||r.set(n,[]),typeof a==`function`){var o;(o=r.get(n))==null||o.push(a),e[n]=function(){var e=[...arguments];return r.get(n)?.map(t=>t(...e)).find(e=>e!==void 0)}}}else e[n]=a}}),e),{})}}function mr(e){e===void 0&&(e=[]);let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),i=Z.useCallback(t=>pr(t,e,`reference`),t),a=Z.useCallback(t=>pr(t,e,`floating`),n),o=Z.useCallback(t=>pr(t,e,`item`),r);return Z.useMemo(()=>({getReferenceProps:i,getFloatingProps:a,getItemProps:o}),[i,a,o])}function hr(e,t){t===void 0&&(t={});let{open:n,elements:r,floatingId:i}=e,{enabled:a=!0,role:o=`dialog`}=t,s=Ar(),c=r.domReference?.id||s,l=Z.useMemo(()=>ot(r.floating)?.id||i,[r.floating,i]),u=ei.get(o)??o,d=Nr()!=null,f=Z.useMemo(()=>u===`tooltip`||o===`label`?{[`aria-`+(o===`label`?`labelledby`:`describedby`)]:n?l:void 0}:{"aria-expanded":n?`true`:`false`,"aria-haspopup":u===`alertdialog`?`dialog`:u,"aria-controls":n?l:void 0,...u===`listbox`&&{role:`combobox`},...u===`menu`&&{id:c},...u===`menu`&&d&&{role:`menuitem`},...o===`select`&&{"aria-autocomplete":`none`},...o===`combobox`&&{"aria-autocomplete":`list`}},[u,l,d,n,c,o]),p=Z.useMemo(()=>{let e={id:l,...u&&{role:u}};return u===`tooltip`||o===`label`?e:{...e,...u===`menu`&&{"aria-labelledby":c}}},[u,l,c,o]),m=Z.useCallback(e=>{let{active:t,selected:n}=e,r={role:`option`,...t&&{id:l+`-fui-option`}};switch(o){case`select`:case`combobox`:return{...r,"aria-selected":n}}return{}},[l,o]);return Z.useMemo(()=>a?{reference:f,floating:p,item:m}:{},[a,f,p,m])}var Z,Q,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,$,Xr,Zr,Qr,$r,ei;function ti(){return(ti=t((()=>{Z=e(n(),1),Ot(),Q=r(),A(),Ye(),gr=e(i(),1),Hn(),_r=`data-floating-ui-focusable`,vr=`active`,yr=`selected`,br=`ArrowLeft`,xr=`ArrowRight`,Sr=`ArrowUp`,Cr=`ArrowDown`,wr=[br,xr],Tr=[Sr,Cr],[...wr,...Tr],Er={...Z},Dr=!1,Or=0,kr=()=>`floating-ui-`+Math.random().toString(36).slice(2,6)+Or++,Ar=Er.useId||Un,jr=Z.createContext(null),Mr=Z.createContext(null),Nr=()=>Z.useContext(jr)?.id||null,Pr=()=>Z.useContext(Mr),Fr=Gn(`safe-polygon`),Ir=0,Lr={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap},Rr=new WeakSet,zr={},Br=0,Vr=()=>typeof HTMLElement<`u`&&`inert`in HTMLElement.prototype,Hr=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=Qn(t);return e.contains(n)?n:null}).filter(e=>e!=null),Ur={border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`fixed`,whiteSpace:`nowrap`,width:`1px`,top:0,left:0},Wr=Z.forwardRef(function(e,t){let[n,r]=Z.useState();J(()=>{Qe()&&r(`button`)},[]);let i={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Gn(`focus-guard`)]:``,style:Ur};return(0,Q.jsx)(`span`,{...e,...i})}),Gr={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0},Kr=Z.createContext(null),qr=Gn(`portal`),Jr=()=>Z.useContext(Kr),Yr=20,$=[],Xr=Z.forwardRef(function(e,t){return(0,Q.jsx)(`button`,{...e,type:`button`,ref:t,tabIndex:-1,style:Ur})}),Zr={pointerdown:`onPointerDown`,mousedown:`onMouseDown`,click:`onClick`},Qr={pointerdown:`onPointerDownCapture`,mousedown:`onMouseDownCapture`,click:`onClickCapture`},$r=e=>({escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}),ei=new Map([[`select`,`listbox`],[`combobox`,`listbox`],[`label`,!1]])})))()}export{En as _,fr as a,hr as c,Rn as d,Hn as f,mn as g,zn as h,ur as i,Vn as l,Ln as m,nr as n,Jn as o,In as p,ti as r,mr as s,lr as t,Bn as u};
|
package/storybook-static/assets/{formatters-D33Uh3si-CxrG0jsB.js → formatters-D33Uh3si-Df97arf9.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{a as t,i as n,t as r}from"./array-D-_yMMUK-BQ0uu1hZ.js";import{C as i,d as a,f as o,g as s,n as c,p as l,s as u,w as d,y as f}from"./odata-service-CWkHASdw-DlmSiioz.js";function ee(){for(let e of ue)b.set(e.name,{...y,...e})}function p(e){return b.get(e)}function te(e){if(typeof e!=`string`)return e;let t=p(e);if(!t)throw Error(`Предустановка "${e}" не найдена`);return t}function ne(e){let t=[...e.keys??[]],n=n=>{if(!Number.isInteger(n)||n<0){e.instrumentation?.onOutOfRangeIndex?.(n);return}if(e.instrumentation?.onReadIndex?.(n),n>=t.length){e.instrumentation?.onOutOfRangeIndex?.(n);return}return t[n]};return{rowData:e.rowData,rawValue:e.rawValue,columnId:e.columnId,key:n,value:t=>{let r=n(t);if(r)return e.rowData[r]},num:t=>{let r=n(t);return r?f(e.rowData[r]):0}}}function re(e){let t=new Map,n=[];for(let r of e){let e=r.id.trim();if(!e)throw Error(`Formula id для RowBasedFormatter не может быть пустым`);if(t.has(e))throw Error(`Найден дублирующийся formulaId в RowBasedFormatter: ${e}`);let i=Object.freeze({...r,id:e,name:r.name.trim(),description:r.description.trim()});t.set(e,i),n.push(i)}return Object.freeze({list:Object.freeze(n),byId:t})}function m(e){let t=e?.trim();if(t)return de.byId.get(t)}function h(e,t,n){e.errors.push({code:t,message:n})}function g(e,t,n){e.warnings.push({code:t,message:n})}function ie(e){return[...e].sort((e,t)=>e-t)}function _(e,t){return e.reduce((e,n,r)=>(e[n]=(r+1)*t,e),{})}function ae(e,t){if(!e.formulaId.trim()){h(t,`step_row_based_override_formula_id_empty`,`Для rowBasedOverride (formula) необходимо заполнить formulaId.`);return}let n=m(e.formulaId),r=[...e.dependencyIds??[]];if(!n){h(t,`step_row_based_override_formula_not_found`,`Формула rowBasedOverride не найдена в реестре.`);return}let i=new Set,a=new Set,o=0,s=e=>{try{let t=ne({rowData:e,rawValue:100,columnId:`__validation__`,keys:r,instrumentation:{onReadIndex:e=>{i.add(e)},onOutOfRangeIndex:e=>{a.add(e)}}});n.fn(t)}catch{o+=1}};s(_(r,100)),s(_(r,-100));let c=ie(i),l=c.length>0?c[c.length-1]+1:0;a.size>0&&h(t,`step_row_based_override_dependency_index_out_of_range`,`Формула rowBasedOverride обращается к несуществующим индексам. Минимально требуется зависимостей: ${l}, выбрано: ${r.length}.`),c.length===0&&g(t,`step_row_based_override_formula_does_not_use_dependencies`,`Формула rowBasedOverride не использует dependencyIds.`);let u=r.filter((e,t)=>!i.has(t));u.length>0&&g(t,`step_row_based_override_unused_dependencies`,`Выбраны, но не используются формулой rowBasedOverride: ${u.join(`, `)}.`),o>0&&g(t,`step_row_based_override_formula_runtime_error`,`На тестовых данных формула rowBasedOverride завершилась с ошибкой.`)}function v(e,t){let n=new Set,r={normalizeLeadingZeros:0,rowBasedOverride:0,resolveValueState:0,typedValueFormat:0};for(let i of e){let e=i.id.trim();if(!e){h(t,`step_id_duplicate`,`Шаг pipeline не может иметь пустой id.`);continue}switch(n.has(e)&&h(t,`step_id_duplicate`,`Найден дублирующийся id шага pipeline: ${e}.`),n.add(e),i.type){case`normalizeLeadingZeros`:r.normalizeLeadingZeros+=1;break;case`rowBasedOverride`:r.rowBasedOverride+=1,i.config.mode===`field`&&!i.config.fieldKey.trim()&&h(t,`step_row_based_override_field_key_empty`,`Для rowBasedOverride (field) необходимо заполнить fieldKey.`),i.config.mode===`formula`&&ae(i.config,t);break;case`resolveValueState`:r.resolveValueState+=1,i.config.resolver.kind===`threshold`&&i.config.resolver.states.length!==i.config.resolver.thresholds.length+1&&h(t,`step_threshold_states_count_invalid`,`Для threshold-резолвера количество states должно быть равно thresholds + 1.`);break;case`typedValueFormat`:if(r.typedValueFormat+=1,i.config?.numberPresetName!==void 0){let e=i.config.numberPresetName.trim();if(!e){h(t,`step_typed_value_format_preset_empty`,`Для typedValueFormat указан пустой numberPresetName.`);break}p(e)||h(t,`step_typed_value_format_preset_not_found`,`Для typedValueFormat указан неизвестный пресет: ${e}.`)}}}r.normalizeLeadingZeros>1&&h(t,`step_normalize_leading_zeros_multiple`,`В pipeline может быть только один шаг normalizeLeadingZeros.`),r.rowBasedOverride>1&&h(t,`step_row_based_override_multiple`,`В pipeline может быть только один шаг rowBasedOverride.`),r.resolveValueState>1&&h(t,`step_resolve_value_state_multiple`,`В pipeline может быть только один шаг resolveValueState.`),r.typedValueFormat>1&&h(t,`step_typed_value_format_multiple`,`В pipeline может быть только один шаг typedValueFormat.`);let i=e.findIndex(e=>e.type===`resolveValueState`),a=e.findIndex(e=>e.type===`typedValueFormat`);i!==-1&&a!==-1&&a<i&&h(t,`step_typed_before_value_state`,`Шаг typedValueFormat не может выполняться до шага resolveValueState.`);for(let n of e)n.type===`resolveValueState`&&!n.config.icon?.enabled&&n.config.icon?.showValue===!1&&g(t,`step_value_hidden_without_icon`,`Для resolveValueState установлено showValue=false при выключенной иконке: значение не будет отображаться.`)}function oe(e){let t={errors:[],warnings:[]};return v(e.steps,t),{ok:t.errors.length===0,errors:t.errors,warnings:t.warnings,plan:t.errors.length===0?{steps:[...e.steps]}:void 0}}function se(e,t,n){let r=new Map(e.map(e=>[e.id,e])),i=new Map,a=new Map;for(let t of e)i.set(t.id,[]),a.set(t.id,[]);for(let e of t){let t=e.source.trim(),o=e.target.trim();if(!r.has(t)||!r.has(o)){h(n,`edge_node_not_found`,`Ребро ${e.id} ссылается на несуществующий узел: ${t} -> ${o}.`);continue}i.get(t)?.push(o),a.get(o)?.push(t)}let o=e.filter(e=>e.type===`source`),s=e.filter(e=>e.type===`sink`);if(o.length!==1&&h(n,`source_count_invalid`,`В графе должен быть ровно один узел source.`),s.length!==1&&h(n,`sink_count_invalid`,`В графе должен быть ровно один узел sink.`),n.errors.length>0)return;let c=o[0].id,l=s[0].id;for(let t of e){let e=a.get(t.id)?.length??0,r=i.get(t.id)?.length??0;if(t.type===`source`){e!==0&&h(n,`source_incoming_invalid`,`Узел source не должен иметь входящих рёбер.`),r!==1&&h(n,`node_degree_invalid`,`Узел source должен иметь ровно одно исходящее ребро.`);continue}if(t.type===`sink`){r!==0&&h(n,`sink_outgoing_invalid`,`Узел sink не должен иметь исходящих рёбер.`),e!==1&&h(n,`node_degree_invalid`,`Узел sink должен иметь ровно одно входящее ребро.`);continue}(e!==1||r!==1)&&h(n,`node_degree_invalid`,`Узел ${t.id} должен иметь ровно одно входящее и одно исходящее ребро для линейного pipeline.`)}if(n.errors.length>0)return;let u=new Set,d=[],f=c;for(;;){if(u.has(f)){h(n,`path_cycle_detected`,`В графе pipeline обнаружен цикл.`);return}if(u.add(f),d.push(f),f===l)break;let e=i.get(f)??[];if(e.length!==1){h(n,`path_broken`,`Не удалось построить линейный путь от source к sink.`);return}f=e[0]}if(u.size!==e.length){h(n,`path_disconnected_nodes`,`Граф содержит узлы, которые не входят в линейный путь source -> sink.`);return}return d}function ce(e){let t={errors:[],warnings:[]};if(!e.nodes.length)return h(t,`path_broken`,`Граф pipeline не содержит узлов.`),{ok:!1,errors:t.errors,warnings:t.warnings};let n=new Map;for(let r of e.nodes){let e=r.id.trim();if(!e){h(t,`node_id_duplicate`,`Узел pipeline не может иметь пустой id.`);continue}if(n.has(e)){h(t,`node_id_duplicate`,`Найден дублирующийся id узла pipeline: ${e}.`);continue}n.set(e,r)}let r=new Set;for(let n of e.edges){let e=n.id.trim();if(!e){h(t,`edge_id_duplicate`,`Ребро pipeline не может иметь пустой id.`);continue}if(r.has(e)){h(t,`edge_id_duplicate`,`Найден дублирующийся id ребра pipeline: ${e}.`);continue}r.add(e)}if(t.errors.length>0)return{ok:!1,errors:t.errors,warnings:t.warnings};let i=se(e.nodes,e.edges,t);if(!i)return{ok:!1,errors:t.errors,warnings:t.warnings};let a=[];for(let e of i){let t=n.get(e);if(!(!t||t.type===`source`||t.type===`sink`))switch(t.type){case`normalizeLeadingZeros`:a.push({id:t.id,type:`normalizeLeadingZeros`,config:t.config?{...t.config}:void 0});break;case`rowBasedOverride`:a.push({id:t.id,type:`rowBasedOverride`,config:t.config.mode===`formula`?{...t.config,dependencyIds:t.config.dependencyIds?[...t.config.dependencyIds]:void 0}:{...t.config}});break;case`resolveValueState`:a.push({id:t.id,type:`resolveValueState`,config:{resolver:t.config.resolver.kind===`fixed`?{kind:`fixed`,entries:{...t.config.resolver.entries},fallbackState:t.config.resolver.fallbackState}:{kind:`threshold`,thresholds:t.config.resolver.thresholds.map(e=>typeof e==`number`?e:{...e}),states:[...t.config.resolver.states],invalidState:t.config.resolver.invalidState},icon:t.config.icon?{...t.config.icon}:void 0}});break;case`typedValueFormat`:a.push({id:t.id,type:`typedValueFormat`,config:t.config?{...t.config}:void 0})}}return v(a,t),{ok:t.errors.length===0,errors:t.errors,warnings:t.warnings,plan:t.errors.length===0?{steps:a}:void 0}}function le(e){let t={errors:[],warnings:[]};if(!e)return h(t,`config_not_defined`,`Конфигурация pipeline не задана.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(e.version!==1)return h(t,`unsupported_version`,`Неподдерживаемая версия pipeline: ${String(e.version)}.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(!e.plan&&!e.graph)return h(t,`graph_or_plan_required`,`Для pipeline должен быть задан хотя бы один источник: graph или plan.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(e.plan){let n=oe(e.plan);if(t.errors.push(...n.errors),t.warnings.push(...n.warnings),n.ok&&n.plan)return{ok:!0,errors:t.errors,warnings:t.warnings,plan:n.plan};if(e.graph)g(t,`path_broken`,`Линейный plan невалиден. Выполнена попытка построить план из graph.`),t.errors.length=0;else return{ok:!1,errors:t.errors,warnings:t.warnings}}if(e.graph){let n=ce(e.graph);return{ok:n.ok,errors:[...t.errors,...n.errors],warnings:[...t.warnings,...n.warnings],plan:n.plan}}return{ok:!1,errors:t.errors,warnings:t.warnings}}var y,ue,b,de;function fe(){return(fe=e((()=>{s(),y={decimals:1,decimalSeparator:`,`,grouping:!0,groupingSeparator:new Intl.NumberFormat(`ru-RU`).formatToParts(1e3).find(e=>e.type===`group`)?.value??`\xA0`,groupingSize:3},Object.freeze({integer:`integer`,decimal:`decimal`,decimal2:`decimal-2`,decimal3:`decimal-3`,currency:`currency`,price:`price`,percent:`percent`,tonnage:`tonnage`,compactCurrency:`compact-currency`,compactCurrencyRound:`compact-currency-round`,compactPercent:`compact-percent`,compactPercentRound:`compact-percent-round`,compactTonnage:`compact-tonnage`,compactTonnageRound:`compact-tonnage-round`}),ue=[{name:`integer`,decimals:0,decimalSeparator:``},{name:`decimal`},{name:`decimal-2`,decimals:2},{name:`decimal-3`,decimals:3},{name:`currency`,decimals:0,decimalSeparator:``},{name:`price`,decimals:0,decimalSeparator:``},{name:`percent`,decimals:2},{name:`tonnage`},{name:`compact-currency`,decimals:0,decimalSeparator:``,compact:{}},{name:`compact-currency-round`,decimals:0,decimalSeparator:``,compact:{roundingMode:`round`}},{name:`compact-percent`,decimals:2,compact:{maxDecimals:2}},{name:`compact-percent-round`,decimals:2,compact:{maxDecimals:2,roundingMode:`round`}},{name:`compact-tonnage`,compact:{maxDecimals:1}},{name:`compact-tonnage-round`,compact:{maxDecimals:1,roundingMode:`round`}}],b=new Map,ee(),de=re([])})))()}function x(e){return e!=null}function S(){return(S=e((()=>{})))()}function pe(e){let t=new Map,n=[];for(let r of e){let e=r.id.trim();if(!e)throw Error(`Formula id не может быть пустым`);if(t.has(e))throw Error(`Найден дублирующийся formulaId: ${e}`);let i=Object.freeze({...r,id:e,name:r.name.trim(),description:r.description.trim(),keywords:r.keywords?[...r.keywords]:void 0});t.set(e,i),n.push(i)}return Object.freeze({list:Object.freeze(n),byId:t})}function me(e){let t=e?.trim();if(t)return C.byId.get(t)}function he(e){let t=Number(e);return Number.isFinite(t)?t:0}function ge(e){let t=me(e.formulaId);if(!t)return{ok:!1,reason:`formula_not_found`};let n=[...e.keys??[]],r={},i={key:e=>Number.isInteger(e)&&e>=0&&e<n.length?n[e]:void 0,value:e=>{if(!Number.isInteger(e)||e<0||e>=n.length)return;let t=n[e];if(t)return r[t]},num:e=>{if(!Number.isInteger(e)||e<0||e>=n.length)return 0;let t=n[e];return t?he(r[t]):0}};return{ok:!0,execute:e=>{r=e;try{let e=t.fn(i);return Number.isFinite(e)?{ok:!0,value:e}:{ok:!1,reason:`invalid_result`}}catch{return{ok:!1,reason:`runtime_error`}}}}}var C;function w(){return(w=e((()=>{C=pe([])})))()}function _e(e,t){if(!Number.isFinite(e))throw RangeError(`Количество должно быть конечным числом.`);switch(G.select(e)){case`one`:return t.one;case`few`:return t.few;case`many`:return t.many;default:return t.other??t.few}}function ve(e,t){return`${e} ${_e(e,t)}`}function ye(e,t){let n=(e||``).toLowerCase().replace(/^0+/,``),r=(t||``).toLowerCase().replace(/^0+/,``);return n.startsWith(r)}function be(e,t){let n=r(e);if(n)return n.length>t?`${n.slice(0,t)}...`:n}function T(e,t,n,r=0,i=0,a=0,o=0){return new Date(e,t,n,r,i,a,o)}function E(e){return T(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0)}function D(e){return T(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,0)}function O(e){return T(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function xe(e){return T(e.getFullYear(),0,1,0,0,0,0)}function Se(e,t=1){let n=Number.isInteger(t)?(t%7+7)%7:1,r=E(e);return k(r,-((r.getDay()-n+7)%7))}function k(e,t){return T(e.getFullYear(),e.getMonth(),e.getDate()+t,0,0,0,0)}function A(e,t){return T(e.getFullYear(),e.getMonth()+t,e.getDate(),0,0,0,0)}function Ce(e,t){return T(e.getFullYear()+t,e.getMonth(),e.getDate(),0,0,0,0)}function we(e,t){return!(e instanceof Date)||!(t instanceof Date)?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function j(e){return e instanceof Date&&Number.isFinite(e.getTime())}function Te(e){return e??`sunday`}function Ee(e){return e??`day`}function De(e,t={}){if(!j(e))return null;switch(Ee(t.selectionMode)){case`day`:return{start:E(e),end:D(e)};case`week`:{let n=Se(e),r=K[Te(t.weekEndDay)];return{start:n,end:D(k(n,r))}}case`month`:return{start:O(e),end:D(T(e.getFullYear(),e.getMonth()+1,0))};case`year`:return{start:xe(e),end:D(T(e.getFullYear(),11,31))};default:return null}}function Oe(e,t){if(!j(e)||!t)return!1;let n=E(e).getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}function ke(e,t={}){return!(!e||t.minDate&&e.start.getTime()<E(t.minDate).getTime()||t.maxDate&&e.end.getTime()>D(t.maxDate).getTime())}function M(e){return e instanceof Date&&Number.isFinite(e.getTime())}function N(e){return Array.isArray(e)}function P(e){return new Date(e.getTime())}function Ae(e,t){return e.getTime()<=t.getTime()?[e,t]:[t,e]}function je(e){if(N(e)){let[t,n]=e,r=M(t),i=M(n);return r&&i?Ae(t,n):r?[t,t]:i?[n,n]:null}return M(e)?[e,e]:null}function Me(e,t={}){let n=je(e);if(!n)return null;let[r,i]=n;return t.timeMode===`preserve`?[P(r),P(i)]:[E(r),D(i)]}function F(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())}function Ne(e){let t=Me(e);if(!t)return null;let[n,r]=t;return Math.floor((F(r)-F(n))/q)+1}function I(e){return E(e)}function Pe({referenceDate:e}){let t=I(e),n=O(t),r=k(t,-1);return[n,D(r<n?n:r)]}function Fe({referenceDate:e}){let t=I(e);return[O(t),D(t)]}function Ie({referenceDate:e}){let t=I(e);return[t,D(t)]}function Le({referenceDate:e}){let t=k(I(e),-1);return[t,D(t)]}function Re({referenceDate:e}){let t=I(e);return[E(A(t,-1)),D(t)]}function L(e,t){switch(t){case`round`:return Math.round(e);case`floor`:return Math.floor(e);case`ceil`:return Math.ceil(e);case`trunc`:return Math.trunc(e)}}function ze(e,t,n){if(t===0)return L(e,n);let r=10**t;return L(e*r,n)/r}function Be(e){return e>=10?0:1}function Ve(e,t){if(t===0)return 0;let n=e.toFixed(t),r=n.indexOf(`.`);return r===-1?0:n.slice(r+1).replace(/0+$/,``).length}function He(e,t){return t.findIndex(t=>e>=t.value)}function Ue(e,t){return{name:e.name,decimals:t,decimalSeparator:t>0?e.decimalSeparator||xt:e.decimalSeparator,grouping:e.grouping,groupingSeparator:e.groupingSeparator,groupingSize:e.groupingSize}}function R(e,t,n,r,i){let a=n.units[t];if(!a)return i(e,r);let o=e/a.value,s=n.maxDecimals??Be(o),c=ze(o,s,n.roundingMode);return c>=1e3&&t>0?R(e,t-1,n,r,i):`${i(c,Ue(r,Ve(c,s)))}${n.suffixSeparator}${a.suffix}`}function We(e){let{minCompactValue:t=Y.minCompactValue,roundingMode:n=Y.roundingMode,suffixSeparator:r=Y.suffixSeparator,maxDecimals:i,units:a=J}=e.options,o=Math.abs(e.value);if(o<t)return e.formatPlainNumber(e.value,e.preset);let s=He(o,a);return s===-1?e.formatPlainNumber(e.value,e.preset):`${e.value<0?`-`:``}${R(o,s,{roundingMode:n,suffixSeparator:r,maxDecimals:i,units:a},e.preset,e.formatPlainNumber)}`}function Ge(e){let t=l(e);return typeof t==`number`?t===0:typeof t==`bigint`&&t===0n}function z(e,t){let n=`${e}:${+!!t}`,r=X.get(n);return r||(r=new Intl.NumberFormat(`ru-RU`,{minimumFractionDigits:e,maximumFractionDigits:e,useGrouping:t}),X.set(n,r)),r}function Ke(e){return e.groupingSize===3&&(e.groupingSeparator===y.groupingSeparator||!e.grouping)&&(e.decimalSeparator===`,`||e.decimals===0)}function qe(e,t,n){return z(t,n).format(e)}function Je(e,t){let n=z(t.decimals,t.grouping).formatToParts(e),r=``;for(let e of n)e.type===`group`?r+=t.groupingSeparator:e.type===`decimal`?r+=t.decimalSeparator:r+=e.value;return r}function Ye(e,t){let n=z(t.decimals,!1).format(e),r=n.indexOf(`,`),i=r===-1?n:n.slice(0,r),a=r===-1?null:n.slice(r+1),o=i.startsWith(`-`),s=o?i.slice(1):i,c=t.groupingSize,l=[];for(let e=s.length;e>0;e-=c)l.unshift(s.slice(Math.max(0,e-c),e));let u=(o?`-`:``)+l.join(t.groupingSeparator);return a!==null&&(u+=t.decimalSeparator+a),u}function B(e,t){return Ke(t)?qe(e,t.decimals,t.grouping):t.groupingSize===3||!t.grouping?Je(e,t):Ye(e,t)}function Xe(e,t){if(typeof e==`string`&&e.trim()===``)return`0`;let n=Number(e);if(!Number.isFinite(n))return`0`;let r=te(t);return r.compact?We({value:n,preset:r,options:r.compact,formatPlainNumber:B}):B(n,r)}function Ze(e,t){let n=typeof e==`number`?e:Number(e);if(!Number.isFinite(n))return e;let r=String(n);if(typeof t==`number`&&t>0){let e=0,n=``,i=r.charCodeAt(0);(i===45||i===43)&&(n=r[0],e=1);let a=r.indexOf(`.`,e),o=a===-1?r.length:a,s=r.slice(e,o),c=a===-1?``:r.slice(a);s||=`0`;let l=s.length;return l<t&&(s=`0`.repeat(t-l)+s),n+s+c}return r}function Qe(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`id_`+t.toString(36)}function V(e,t){let n=Q.get(e);if(n)return{id:n,isNew:!1};let r=Qe(e),i=t();return Z.set(r,i),Q.set(e,r),{id:r,isNew:!0}}function $e(e,t){let n=Z.get(e);return n?n(t):`none`}function et(e,t){return`fixed|${e.map(([e,t])=>`${e}:${t}`).join(`,`)}|${t}`}function tt(e,t){let n=new Map(Object.entries(e));return e=>{if(e==null)return t;let r=String(e);return n.get(r)??t}}function nt(e){let t=e.fallbackState??`none`,n=et(Object.entries(e.entries).sort(([e],[t])=>d(e,t)),t);return{entries:e.entries,fallbackState:t,canonicalKey:n}}function rt(e){let{entries:t,fallbackState:n,canonicalKey:r}=nt(e),{id:i}=V(r,()=>tt(t,n));return i}function it(e){return typeof e==`number`?{value:e,boundary:`upper`}:{value:e.value,boundary:e.boundary??`upper`}}function at(e,t,n){return`threshold|${e.map(e=>`${e.value}:${e.boundary}`).join(`,`)}|${t.join(`,`)}|${n}`}function ot(e,t){if(t.length!==e.length+1)throw Error(`Количество состояний (${t.length}) должно быть равно количеству порогов + 1 (${e.length+1})`);let n=new Set;for(let t of e)n.has(t.value)&&console.warn(`Дублирующееся пороговое значение: ${t.value}`),n.add(t.value)}function st(e,t,n){let r=e.map(e=>e.value),i=e.map(e=>e.boundary===`lower`),a=[...t];return e=>{if(e===``||e==null)return n;let t=+e;if(!Number.isFinite(t))return n;for(let e=0;e<r.length;e++)if(i[e]?t<=r[e]:t<r[e])return a[e];return a[a.length-1]}}function ct(e){let t=e.invalidState??`none`,n=e.thresholds.map(it).sort((e,t)=>e.value-t.value);return ot(n,e.states),{sortedThresholds:n,invalidState:t,canonicalKey:at(n,e.states,t),states:e.states}}function lt(e){let{sortedThresholds:t,invalidState:n,canonicalKey:r,states:i}=ct(e),{id:a}=V(r,()=>st(t,i,n));return a}function H(e,t,r){if(!x(e))return``;let i=o(t.type);if(i===`number`){let t=r?.numberPresetName?.trim();return Xe(e,t&&p(t)?t:$.number)}if(i===`date`){let t=r?.datePresetName?.trim(),n=t&&a(t)?t:$.date;return c(u(e),n)}return n(e)}function ut(e){if(e===`success`||e===`warning`||e===`error`||e===`information`)return e}function dt(e,t){switch(e.rowKind){case`group`:case`plain`:case`tree`:return!0;case`totals`:return t===`formula`}}function ft(e){let t=le(e.config);if(!t.ok||!t.plan)return t.errors.some(e=>e.code===`step_row_based_override_formula_not_found`)?{ok:!1,reason:`row_based_formula_not_found`}:{ok:!1,reason:`pipeline_invalid`};let{steps:n}=t.plan,r=n.some(e=>e.type===`rowBasedOverride`),i=n.some(e=>e.type===`typedValueFormat`),a=n.find(e=>e.type===`resolveValueState`),o=a?.config.resolver.kind===`fixed`?rt({entries:a.config.resolver.entries,fallbackState:a.config.resolver.fallbackState}):a?.config.resolver.kind===`threshold`?lt({thresholds:a.config.resolver.thresholds,states:a.config.resolver.states,invalidState:a.config.resolver.invalidState}):void 0,s=n.find(e=>e.type===`rowBasedOverride`),c=s?.config.mode===`formula`?m(s.config.formulaId):void 0;return s?.config.mode===`formula`&&!c?{ok:!1,reason:`row_based_formula_not_found`}:{ok:!0,executor:{hasRowBasedOverride:r,hasTypedValueFormat:i,execute:t=>{let r=t.value,a=`none`,s=!1,l=!0,u=`left`,d;for(let i of n)switch(i.type){case`normalizeLeadingZeros`:r=Ze(r,i.config?.fixed);break;case`rowBasedOverride`:if(!dt(t,i.config.mode))break;if(i.config.mode===`field`){let e=t.rowData[i.config.fieldKey];if(e==null&&i.config.fallbackToRaw!==!1)break;r=e;break}if(!c)break;try{let e=c.fn(ne({rowData:t.rowData,rawValue:r,columnId:t.columnId,keys:i.config.dependencyIds}));if(e==null&&i.config.fallbackToRaw!==!1)break;r=e}catch{i.config.fallbackToRaw===!1&&(r=void 0)}break;case`resolveValueState`:if(!o)break;a=$e(o,r),s=i.config.icon?.enabled??!1,l=i.config.icon?.showValue??!0,u=i.config.icon?.position??`left`,d=s?ut(a):void 0;break;case`typedValueFormat`:r=H(r,e.column,i.config)}return{value:r,state:a,icon:d,showIcon:s,showValue:l,iconPosition:u,hasTypedValueFormat:i}}}}}function U(e,t){return{value:e,state:`none`,showIcon:!1,showValue:!0,iconPosition:`left`,overflowTooltip:t}}function W(e,t){return t?H(e,t):n(e)}function pt(e){if(!e.formulaId)return;let t=ge({formulaId:e.formulaId,keys:e.formulaDependencies});return t.ok?t.execute:Ct}function mt(e,t,n){if(!n.formulaId)return{value:e,shouldRenderEmpty:!1};if(!n.formulaExecutor)return{value:n.purelyDerived?void 0:e,shouldRenderEmpty:n.purelyDerived===!0};let r=n.formulaExecutor(t);return r.ok?{value:r.value,shouldRenderEmpty:!1}:{value:n.purelyDerived?void 0:e,shouldRenderEmpty:n.purelyDerived===!0}}function ht(e,t,n){let r=n.formattersPipelineExecutor;if(!r)return U(W(t,n),n.overflowTooltip===!0);let i=r.execute({value:t,rowData:e.rowData,rowKind:e.rowKind,isGroupRow:e.rowKind===`group`,isTotalsRow:e.rowKind===`totals`,rowLevel:e.rowLevel??0,groupingIds:e.groupingIds??[],columnId:n.id});return{value:i.hasTypedValueFormat?i.value:W(i.value,n),state:i.state,icon:i.icon,showIcon:i.showIcon,showValue:i.showValue,iconPosition:i.iconPosition,overflowTooltip:n.overflowTooltip===!0}}function gt(e,t,n){return t.shouldRenderEmpty||n.emptyWhenZero&&Ge(t.value)?{...e,value:``}:e}function _t(e){let t=pt(e);if(t?e.formulaExecutor=t:delete e.formulaExecutor,!e.formattersPipeline)return delete e.formattersPipelineExecutor,e;let n=ft({config:e.formattersPipeline,column:e});return n.ok?e.formattersPipelineExecutor=n.executor:delete e.formattersPipelineExecutor,e}function vt(e){let t={};for(let[n,r]of Object.entries(e))r&&(t[n]=_t(r));return t}function yt(e){if(!e.field)return U(n(e.rawValue),!1);let t=mt(e.rawValue,e.rowData,e.field);return gt(ht(e,t.value,e.field),t,e.field)}function bt(e,t){switch(e){case`success`:return`statusSuccess`;case`warning`:return`statusWarning`;case`error`:return`statusError`;case`information`:return`statusInfo`;default:return t}}var G,K,q,J,Y,xt,X,Z,Q,$,St,Ct,wt,Tt;function Et(){return(Et=e((()=>{t(),s(),fe(),i(),S(),w(),G=new Intl.PluralRules(`ru-RU`),K={friday:4,saturday:5,sunday:6},q=864e5,J=[{value:0xe8d4a51000,suffix:`трлн`},{value:1e9,suffix:`млрд`},{value:1e6,suffix:`млн`},{value:1e3,suffix:`тыс`}],Y={minCompactValue:1e3,roundingMode:`trunc`,suffixSeparator:` `},xt=`,`,X=new Map,Z=new Map,Q=new Map,$=Object.freeze({number:`decimal`,date:`date`}),St=Object.freeze([{id:`normalizeLeadingZeros`,name:`Нормализация ведущих нулей`,description:`Нормализует числовое значение по правилам fixed.`},{id:`rowBasedOverride`,name:`Контекстная формула`,description:`Подменяет значение из другого поля текущей строки или отдельной формулы.`},{id:`resolveValueState`,name:`Определение состояния значения`,description:`Вычисляет value state и опционально настраивает отображение статусной иконки.`},{id:`typedValueFormat`,name:`Типизированное форматирование`,description:`Формирует итоговый внешний вид значения по типу и роли столбца.`}]),new Map(St.map(e=>[e.id,e])),Ct=()=>({ok:!1,reason:`formula_not_found`}),wt=[`none`,`information`,`success`,`warning`,`error`],Tt={"":`transparent`,none:`var(--content-1)`,information:`var(--status-info-text)`,success:`var(--status-success-text)`,warning:`var(--status-warning-text)`,error:`var(--status-error-text)`}})))()}export{E as C,x as E,ye as S,S as T,Re as _,Ne as a,N as b,we as c,Tt as d,Pe as f,ve as g,A as h,yt as i,wt as l,T as m,De as n,Oe as o,Fe as p,bt as r,Ie as s,Le as t,vt as u,be as v,Ce as w,ke as x,Et as y};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{a as t,i as n,t as r}from"./array-D-_yMMUK-BQ0uu1hZ.js";import{C as i,d as a,f as o,g as s,n as c,p as l,s as u,w as d,y as f}from"./odata-service-CWkHASdw-CXhFi03v.js";function ee(){for(let e of ue)b.set(e.name,{...y,...e})}function p(e){return b.get(e)}function te(e){if(typeof e!=`string`)return e;let t=p(e);if(!t)throw Error(`Предустановка "${e}" не найдена`);return t}function ne(e){let t=[...e.keys??[]],n=n=>{if(!Number.isInteger(n)||n<0){e.instrumentation?.onOutOfRangeIndex?.(n);return}if(e.instrumentation?.onReadIndex?.(n),n>=t.length){e.instrumentation?.onOutOfRangeIndex?.(n);return}return t[n]};return{rowData:e.rowData,rawValue:e.rawValue,columnId:e.columnId,key:n,value:t=>{let r=n(t);if(r)return e.rowData[r]},num:t=>{let r=n(t);return r?f(e.rowData[r]):0}}}function re(e){let t=new Map,n=[];for(let r of e){let e=r.id.trim();if(!e)throw Error(`Formula id для RowBasedFormatter не может быть пустым`);if(t.has(e))throw Error(`Найден дублирующийся formulaId в RowBasedFormatter: ${e}`);let i=Object.freeze({...r,id:e,name:r.name.trim(),description:r.description.trim()});t.set(e,i),n.push(i)}return Object.freeze({list:Object.freeze(n),byId:t})}function m(e){let t=e?.trim();if(t)return de.byId.get(t)}function h(e,t,n){e.errors.push({code:t,message:n})}function g(e,t,n){e.warnings.push({code:t,message:n})}function ie(e){return[...e].sort((e,t)=>e-t)}function _(e,t){return e.reduce((e,n,r)=>(e[n]=(r+1)*t,e),{})}function ae(e,t){if(!e.formulaId.trim()){h(t,`step_row_based_override_formula_id_empty`,`Для rowBasedOverride (formula) необходимо заполнить formulaId.`);return}let n=m(e.formulaId),r=[...e.dependencyIds??[]];if(!n){h(t,`step_row_based_override_formula_not_found`,`Формула rowBasedOverride не найдена в реестре.`);return}let i=new Set,a=new Set,o=0,s=e=>{try{let t=ne({rowData:e,rawValue:100,columnId:`__validation__`,keys:r,instrumentation:{onReadIndex:e=>{i.add(e)},onOutOfRangeIndex:e=>{a.add(e)}}});n.fn(t)}catch{o+=1}};s(_(r,100)),s(_(r,-100));let c=ie(i),l=c.length>0?c[c.length-1]+1:0;a.size>0&&h(t,`step_row_based_override_dependency_index_out_of_range`,`Формула rowBasedOverride обращается к несуществующим индексам. Минимально требуется зависимостей: ${l}, выбрано: ${r.length}.`),c.length===0&&g(t,`step_row_based_override_formula_does_not_use_dependencies`,`Формула rowBasedOverride не использует dependencyIds.`);let u=r.filter((e,t)=>!i.has(t));u.length>0&&g(t,`step_row_based_override_unused_dependencies`,`Выбраны, но не используются формулой rowBasedOverride: ${u.join(`, `)}.`),o>0&&g(t,`step_row_based_override_formula_runtime_error`,`На тестовых данных формула rowBasedOverride завершилась с ошибкой.`)}function v(e,t){let n=new Set,r={normalizeLeadingZeros:0,rowBasedOverride:0,resolveValueState:0,typedValueFormat:0};for(let i of e){let e=i.id.trim();if(!e){h(t,`step_id_duplicate`,`Шаг pipeline не может иметь пустой id.`);continue}switch(n.has(e)&&h(t,`step_id_duplicate`,`Найден дублирующийся id шага pipeline: ${e}.`),n.add(e),i.type){case`normalizeLeadingZeros`:r.normalizeLeadingZeros+=1;break;case`rowBasedOverride`:r.rowBasedOverride+=1,i.config.mode===`field`&&!i.config.fieldKey.trim()&&h(t,`step_row_based_override_field_key_empty`,`Для rowBasedOverride (field) необходимо заполнить fieldKey.`),i.config.mode===`formula`&&ae(i.config,t);break;case`resolveValueState`:r.resolveValueState+=1,i.config.resolver.kind===`threshold`&&i.config.resolver.states.length!==i.config.resolver.thresholds.length+1&&h(t,`step_threshold_states_count_invalid`,`Для threshold-резолвера количество states должно быть равно thresholds + 1.`);break;case`typedValueFormat`:if(r.typedValueFormat+=1,i.config?.numberPresetName!==void 0){let e=i.config.numberPresetName.trim();if(!e){h(t,`step_typed_value_format_preset_empty`,`Для typedValueFormat указан пустой numberPresetName.`);break}p(e)||h(t,`step_typed_value_format_preset_not_found`,`Для typedValueFormat указан неизвестный пресет: ${e}.`)}}}r.normalizeLeadingZeros>1&&h(t,`step_normalize_leading_zeros_multiple`,`В pipeline может быть только один шаг normalizeLeadingZeros.`),r.rowBasedOverride>1&&h(t,`step_row_based_override_multiple`,`В pipeline может быть только один шаг rowBasedOverride.`),r.resolveValueState>1&&h(t,`step_resolve_value_state_multiple`,`В pipeline может быть только один шаг resolveValueState.`),r.typedValueFormat>1&&h(t,`step_typed_value_format_multiple`,`В pipeline может быть только один шаг typedValueFormat.`);let i=e.findIndex(e=>e.type===`resolveValueState`),a=e.findIndex(e=>e.type===`typedValueFormat`);i!==-1&&a!==-1&&a<i&&h(t,`step_typed_before_value_state`,`Шаг typedValueFormat не может выполняться до шага resolveValueState.`);for(let n of e)n.type===`resolveValueState`&&!n.config.icon?.enabled&&n.config.icon?.showValue===!1&&g(t,`step_value_hidden_without_icon`,`Для resolveValueState установлено showValue=false при выключенной иконке: значение не будет отображаться.`)}function oe(e){let t={errors:[],warnings:[]};return v(e.steps,t),{ok:t.errors.length===0,errors:t.errors,warnings:t.warnings,plan:t.errors.length===0?{steps:[...e.steps]}:void 0}}function se(e,t,n){let r=new Map(e.map(e=>[e.id,e])),i=new Map,a=new Map;for(let t of e)i.set(t.id,[]),a.set(t.id,[]);for(let e of t){let t=e.source.trim(),o=e.target.trim();if(!r.has(t)||!r.has(o)){h(n,`edge_node_not_found`,`Ребро ${e.id} ссылается на несуществующий узел: ${t} -> ${o}.`);continue}i.get(t)?.push(o),a.get(o)?.push(t)}let o=e.filter(e=>e.type===`source`),s=e.filter(e=>e.type===`sink`);if(o.length!==1&&h(n,`source_count_invalid`,`В графе должен быть ровно один узел source.`),s.length!==1&&h(n,`sink_count_invalid`,`В графе должен быть ровно один узел sink.`),n.errors.length>0)return;let c=o[0].id,l=s[0].id;for(let t of e){let e=a.get(t.id)?.length??0,r=i.get(t.id)?.length??0;if(t.type===`source`){e!==0&&h(n,`source_incoming_invalid`,`Узел source не должен иметь входящих рёбер.`),r!==1&&h(n,`node_degree_invalid`,`Узел source должен иметь ровно одно исходящее ребро.`);continue}if(t.type===`sink`){r!==0&&h(n,`sink_outgoing_invalid`,`Узел sink не должен иметь исходящих рёбер.`),e!==1&&h(n,`node_degree_invalid`,`Узел sink должен иметь ровно одно входящее ребро.`);continue}(e!==1||r!==1)&&h(n,`node_degree_invalid`,`Узел ${t.id} должен иметь ровно одно входящее и одно исходящее ребро для линейного pipeline.`)}if(n.errors.length>0)return;let u=new Set,d=[],f=c;for(;;){if(u.has(f)){h(n,`path_cycle_detected`,`В графе pipeline обнаружен цикл.`);return}if(u.add(f),d.push(f),f===l)break;let e=i.get(f)??[];if(e.length!==1){h(n,`path_broken`,`Не удалось построить линейный путь от source к sink.`);return}f=e[0]}if(u.size!==e.length){h(n,`path_disconnected_nodes`,`Граф содержит узлы, которые не входят в линейный путь source -> sink.`);return}return d}function ce(e){let t={errors:[],warnings:[]};if(!e.nodes.length)return h(t,`path_broken`,`Граф pipeline не содержит узлов.`),{ok:!1,errors:t.errors,warnings:t.warnings};let n=new Map;for(let r of e.nodes){let e=r.id.trim();if(!e){h(t,`node_id_duplicate`,`Узел pipeline не может иметь пустой id.`);continue}if(n.has(e)){h(t,`node_id_duplicate`,`Найден дублирующийся id узла pipeline: ${e}.`);continue}n.set(e,r)}let r=new Set;for(let n of e.edges){let e=n.id.trim();if(!e){h(t,`edge_id_duplicate`,`Ребро pipeline не может иметь пустой id.`);continue}if(r.has(e)){h(t,`edge_id_duplicate`,`Найден дублирующийся id ребра pipeline: ${e}.`);continue}r.add(e)}if(t.errors.length>0)return{ok:!1,errors:t.errors,warnings:t.warnings};let i=se(e.nodes,e.edges,t);if(!i)return{ok:!1,errors:t.errors,warnings:t.warnings};let a=[];for(let e of i){let t=n.get(e);if(!(!t||t.type===`source`||t.type===`sink`))switch(t.type){case`normalizeLeadingZeros`:a.push({id:t.id,type:`normalizeLeadingZeros`,config:t.config?{...t.config}:void 0});break;case`rowBasedOverride`:a.push({id:t.id,type:`rowBasedOverride`,config:t.config.mode===`formula`?{...t.config,dependencyIds:t.config.dependencyIds?[...t.config.dependencyIds]:void 0}:{...t.config}});break;case`resolveValueState`:a.push({id:t.id,type:`resolveValueState`,config:{resolver:t.config.resolver.kind===`fixed`?{kind:`fixed`,entries:{...t.config.resolver.entries},fallbackState:t.config.resolver.fallbackState}:{kind:`threshold`,thresholds:t.config.resolver.thresholds.map(e=>typeof e==`number`?e:{...e}),states:[...t.config.resolver.states],invalidState:t.config.resolver.invalidState},icon:t.config.icon?{...t.config.icon}:void 0}});break;case`typedValueFormat`:a.push({id:t.id,type:`typedValueFormat`,config:t.config?{...t.config}:void 0})}}return v(a,t),{ok:t.errors.length===0,errors:t.errors,warnings:t.warnings,plan:t.errors.length===0?{steps:a}:void 0}}function le(e){let t={errors:[],warnings:[]};if(!e)return h(t,`config_not_defined`,`Конфигурация pipeline не задана.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(e.version!==1)return h(t,`unsupported_version`,`Неподдерживаемая версия pipeline: ${String(e.version)}.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(!e.plan&&!e.graph)return h(t,`graph_or_plan_required`,`Для pipeline должен быть задан хотя бы один источник: graph или plan.`),{ok:!1,errors:t.errors,warnings:t.warnings};if(e.plan){let n=oe(e.plan);if(t.errors.push(...n.errors),t.warnings.push(...n.warnings),n.ok&&n.plan)return{ok:!0,errors:t.errors,warnings:t.warnings,plan:n.plan};if(e.graph)g(t,`path_broken`,`Линейный plan невалиден. Выполнена попытка построить план из graph.`),t.errors.length=0;else return{ok:!1,errors:t.errors,warnings:t.warnings}}if(e.graph){let n=ce(e.graph);return{ok:n.ok,errors:[...t.errors,...n.errors],warnings:[...t.warnings,...n.warnings],plan:n.plan}}return{ok:!1,errors:t.errors,warnings:t.warnings}}var y,ue,b,de;function fe(){return(fe=e((()=>{s(),y={decimals:1,decimalSeparator:`,`,grouping:!0,groupingSeparator:new Intl.NumberFormat(`ru-RU`).formatToParts(1e3).find(e=>e.type===`group`)?.value??`\xA0`,groupingSize:3},Object.freeze({integer:`integer`,decimal:`decimal`,decimal2:`decimal-2`,decimal3:`decimal-3`,currency:`currency`,price:`price`,percent:`percent`,tonnage:`tonnage`,compactCurrency:`compact-currency`,compactCurrencyRound:`compact-currency-round`,compactPercent:`compact-percent`,compactPercentRound:`compact-percent-round`,compactTonnage:`compact-tonnage`,compactTonnageRound:`compact-tonnage-round`}),ue=[{name:`integer`,decimals:0,decimalSeparator:``},{name:`decimal`},{name:`decimal-2`,decimals:2},{name:`decimal-3`,decimals:3},{name:`currency`,decimals:0,decimalSeparator:``},{name:`price`,decimals:0,decimalSeparator:``},{name:`percent`,decimals:2},{name:`tonnage`},{name:`compact-currency`,decimals:0,decimalSeparator:``,compact:{}},{name:`compact-currency-round`,decimals:0,decimalSeparator:``,compact:{roundingMode:`round`}},{name:`compact-percent`,decimals:2,compact:{maxDecimals:2}},{name:`compact-percent-round`,decimals:2,compact:{maxDecimals:2,roundingMode:`round`}},{name:`compact-tonnage`,compact:{maxDecimals:1}},{name:`compact-tonnage-round`,compact:{maxDecimals:1,roundingMode:`round`}}],b=new Map,ee(),de=re([])})))()}function x(e){return e!=null}function S(){return(S=e((()=>{})))()}function pe(e){let t=new Map,n=[];for(let r of e){let e=r.id.trim();if(!e)throw Error(`Formula id не может быть пустым`);if(t.has(e))throw Error(`Найден дублирующийся formulaId: ${e}`);let i=Object.freeze({...r,id:e,name:r.name.trim(),description:r.description.trim(),keywords:r.keywords?[...r.keywords]:void 0});t.set(e,i),n.push(i)}return Object.freeze({list:Object.freeze(n),byId:t})}function me(e){let t=e?.trim();if(t)return C.byId.get(t)}function he(e){let t=Number(e);return Number.isFinite(t)?t:0}function ge(e){let t=me(e.formulaId);if(!t)return{ok:!1,reason:`formula_not_found`};let n=[...e.keys??[]],r={},i={key:e=>Number.isInteger(e)&&e>=0&&e<n.length?n[e]:void 0,value:e=>{if(!Number.isInteger(e)||e<0||e>=n.length)return;let t=n[e];if(t)return r[t]},num:e=>{if(!Number.isInteger(e)||e<0||e>=n.length)return 0;let t=n[e];return t?he(r[t]):0}};return{ok:!0,execute:e=>{r=e;try{let e=t.fn(i);return Number.isFinite(e)?{ok:!0,value:e}:{ok:!1,reason:`invalid_result`}}catch{return{ok:!1,reason:`runtime_error`}}}}}var C;function w(){return(w=e((()=>{C=pe([])})))()}function _e(e,t){if(!Number.isFinite(e))throw RangeError(`Количество должно быть конечным числом.`);switch(G.select(e)){case`one`:return t.one;case`few`:return t.few;case`many`:return t.many;default:return t.other??t.few}}function ve(e,t){return`${e} ${_e(e,t)}`}function ye(e,t){let n=(e||``).toLowerCase().replace(/^0+/,``),r=(t||``).toLowerCase().replace(/^0+/,``);return n.startsWith(r)}function be(e,t){let n=r(e);if(n)return n.length>t?`${n.slice(0,t)}...`:n}function T(e,t,n,r=0,i=0,a=0,o=0){return new Date(e,t,n,r,i,a,o)}function E(e){return T(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0)}function D(e){return T(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,0)}function O(e){return T(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function xe(e){return T(e.getFullYear(),0,1,0,0,0,0)}function Se(e,t=1){let n=Number.isInteger(t)?(t%7+7)%7:1,r=E(e);return k(r,-((r.getDay()-n+7)%7))}function k(e,t){return T(e.getFullYear(),e.getMonth(),e.getDate()+t,0,0,0,0)}function A(e,t){return T(e.getFullYear(),e.getMonth()+t,e.getDate(),0,0,0,0)}function Ce(e,t){return T(e.getFullYear()+t,e.getMonth(),e.getDate(),0,0,0,0)}function we(e,t){return!(e instanceof Date)||!(t instanceof Date)?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function j(e){return e instanceof Date&&Number.isFinite(e.getTime())}function Te(e){return e??`sunday`}function Ee(e){return e??`day`}function De(e,t={}){if(!j(e))return null;switch(Ee(t.selectionMode)){case`day`:return{start:E(e),end:D(e)};case`week`:{let n=Se(e),r=K[Te(t.weekEndDay)];return{start:n,end:D(k(n,r))}}case`month`:return{start:O(e),end:D(T(e.getFullYear(),e.getMonth()+1,0))};case`year`:return{start:xe(e),end:D(T(e.getFullYear(),11,31))};default:return null}}function Oe(e,t){if(!j(e)||!t)return!1;let n=E(e).getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}function ke(e,t={}){return!(!e||t.minDate&&e.start.getTime()<E(t.minDate).getTime()||t.maxDate&&e.end.getTime()>D(t.maxDate).getTime())}function M(e){return e instanceof Date&&Number.isFinite(e.getTime())}function N(e){return Array.isArray(e)}function P(e){return new Date(e.getTime())}function Ae(e,t){return e.getTime()<=t.getTime()?[e,t]:[t,e]}function je(e){if(N(e)){let[t,n]=e,r=M(t),i=M(n);return r&&i?Ae(t,n):r?[t,t]:i?[n,n]:null}return M(e)?[e,e]:null}function Me(e,t={}){let n=je(e);if(!n)return null;let[r,i]=n;return t.timeMode===`preserve`?[P(r),P(i)]:[E(r),D(i)]}function F(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())}function Ne(e){let t=Me(e);if(!t)return null;let[n,r]=t;return Math.floor((F(r)-F(n))/q)+1}function I(e){return E(e)}function Pe({referenceDate:e}){let t=I(e),n=O(t),r=k(t,-1);return[n,D(r<n?n:r)]}function Fe({referenceDate:e}){let t=I(e);return[O(t),D(t)]}function Ie({referenceDate:e}){let t=I(e);return[t,D(t)]}function Le({referenceDate:e}){let t=k(I(e),-1);return[t,D(t)]}function Re({referenceDate:e}){let t=I(e);return[E(A(t,-1)),D(t)]}function L(e,t){switch(t){case`round`:return Math.round(e);case`floor`:return Math.floor(e);case`ceil`:return Math.ceil(e);case`trunc`:return Math.trunc(e)}}function ze(e,t,n){if(t===0)return L(e,n);let r=10**t;return L(e*r,n)/r}function Be(e){return e>=10?0:1}function Ve(e,t){if(t===0)return 0;let n=e.toFixed(t),r=n.indexOf(`.`);return r===-1?0:n.slice(r+1).replace(/0+$/,``).length}function He(e,t){return t.findIndex(t=>e>=t.value)}function Ue(e,t){return{name:e.name,decimals:t,decimalSeparator:t>0?e.decimalSeparator||xt:e.decimalSeparator,grouping:e.grouping,groupingSeparator:e.groupingSeparator,groupingSize:e.groupingSize}}function R(e,t,n,r,i){let a=n.units[t];if(!a)return i(e,r);let o=e/a.value,s=n.maxDecimals??Be(o),c=ze(o,s,n.roundingMode);return c>=1e3&&t>0?R(e,t-1,n,r,i):`${i(c,Ue(r,Ve(c,s)))}${n.suffixSeparator}${a.suffix}`}function We(e){let{minCompactValue:t=Y.minCompactValue,roundingMode:n=Y.roundingMode,suffixSeparator:r=Y.suffixSeparator,maxDecimals:i,units:a=J}=e.options,o=Math.abs(e.value);if(o<t)return e.formatPlainNumber(e.value,e.preset);let s=He(o,a);return s===-1?e.formatPlainNumber(e.value,e.preset):`${e.value<0?`-`:``}${R(o,s,{roundingMode:n,suffixSeparator:r,maxDecimals:i,units:a},e.preset,e.formatPlainNumber)}`}function Ge(e){let t=l(e);return typeof t==`number`?t===0:typeof t==`bigint`&&t===0n}function z(e,t){let n=`${e}:${+!!t}`,r=X.get(n);return r||(r=new Intl.NumberFormat(`ru-RU`,{minimumFractionDigits:e,maximumFractionDigits:e,useGrouping:t}),X.set(n,r)),r}function Ke(e){return e.groupingSize===3&&(e.groupingSeparator===y.groupingSeparator||!e.grouping)&&(e.decimalSeparator===`,`||e.decimals===0)}function qe(e,t,n){return z(t,n).format(e)}function Je(e,t){let n=z(t.decimals,t.grouping).formatToParts(e),r=``;for(let e of n)e.type===`group`?r+=t.groupingSeparator:e.type===`decimal`?r+=t.decimalSeparator:r+=e.value;return r}function Ye(e,t){let n=z(t.decimals,!1).format(e),r=n.indexOf(`,`),i=r===-1?n:n.slice(0,r),a=r===-1?null:n.slice(r+1),o=i.startsWith(`-`),s=o?i.slice(1):i,c=t.groupingSize,l=[];for(let e=s.length;e>0;e-=c)l.unshift(s.slice(Math.max(0,e-c),e));let u=(o?`-`:``)+l.join(t.groupingSeparator);return a!==null&&(u+=t.decimalSeparator+a),u}function B(e,t){return Ke(t)?qe(e,t.decimals,t.grouping):t.groupingSize===3||!t.grouping?Je(e,t):Ye(e,t)}function Xe(e,t){if(typeof e==`string`&&e.trim()===``)return`0`;let n=Number(e);if(!Number.isFinite(n))return`0`;let r=te(t);return r.compact?We({value:n,preset:r,options:r.compact,formatPlainNumber:B}):B(n,r)}function Ze(e,t){let n=typeof e==`number`?e:Number(e);if(!Number.isFinite(n))return e;let r=String(n);if(typeof t==`number`&&t>0){let e=0,n=``,i=r.charCodeAt(0);(i===45||i===43)&&(n=r[0],e=1);let a=r.indexOf(`.`,e),o=a===-1?r.length:a,s=r.slice(e,o),c=a===-1?``:r.slice(a);s||=`0`;let l=s.length;return l<t&&(s=`0`.repeat(t-l)+s),n+s+c}return r}function Qe(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return`id_`+t.toString(36)}function V(e,t){let n=Q.get(e);if(n)return{id:n,isNew:!1};let r=Qe(e),i=t();return Z.set(r,i),Q.set(e,r),{id:r,isNew:!0}}function $e(e,t){let n=Z.get(e);return n?n(t):`none`}function et(e,t){return`fixed|${e.map(([e,t])=>`${e}:${t}`).join(`,`)}|${t}`}function tt(e,t){let n=new Map(Object.entries(e));return e=>{if(e==null)return t;let r=String(e);return n.get(r)??t}}function nt(e){let t=e.fallbackState??`none`,n=et(Object.entries(e.entries).sort(([e],[t])=>d(e,t)),t);return{entries:e.entries,fallbackState:t,canonicalKey:n}}function rt(e){let{entries:t,fallbackState:n,canonicalKey:r}=nt(e),{id:i}=V(r,()=>tt(t,n));return i}function it(e){return typeof e==`number`?{value:e,boundary:`upper`}:{value:e.value,boundary:e.boundary??`upper`}}function at(e,t,n){return`threshold|${e.map(e=>`${e.value}:${e.boundary}`).join(`,`)}|${t.join(`,`)}|${n}`}function ot(e,t){if(t.length!==e.length+1)throw Error(`Количество состояний (${t.length}) должно быть равно количеству порогов + 1 (${e.length+1})`);let n=new Set;for(let t of e)n.has(t.value)&&console.warn(`Дублирующееся пороговое значение: ${t.value}`),n.add(t.value)}function st(e,t,n){let r=e.map(e=>e.value),i=e.map(e=>e.boundary===`lower`),a=[...t];return e=>{if(e===``||e==null)return n;let t=+e;if(!Number.isFinite(t))return n;for(let e=0;e<r.length;e++)if(i[e]?t<=r[e]:t<r[e])return a[e];return a[a.length-1]}}function ct(e){let t=e.invalidState??`none`,n=e.thresholds.map(it).sort((e,t)=>e.value-t.value);return ot(n,e.states),{sortedThresholds:n,invalidState:t,canonicalKey:at(n,e.states,t),states:e.states}}function lt(e){let{sortedThresholds:t,invalidState:n,canonicalKey:r,states:i}=ct(e),{id:a}=V(r,()=>st(t,i,n));return a}function H(e,t,r){if(!x(e))return``;let i=o(t.type);if(i===`number`){let t=r?.numberPresetName?.trim();return Xe(e,t&&p(t)?t:$.number)}if(i===`date`){let t=r?.datePresetName?.trim(),n=t&&a(t)?t:$.date;return c(u(e),n)}return n(e)}function ut(e){if(e===`success`||e===`warning`||e===`error`||e===`information`)return e}function dt(e,t){switch(e.rowKind){case`group`:case`plain`:case`tree`:return!0;case`totals`:return t===`formula`}}function ft(e){let t=le(e.config);if(!t.ok||!t.plan)return t.errors.some(e=>e.code===`step_row_based_override_formula_not_found`)?{ok:!1,reason:`row_based_formula_not_found`}:{ok:!1,reason:`pipeline_invalid`};let{steps:n}=t.plan,r=n.some(e=>e.type===`rowBasedOverride`),i=n.some(e=>e.type===`typedValueFormat`),a=n.find(e=>e.type===`resolveValueState`),o=a?.config.resolver.kind===`fixed`?rt({entries:a.config.resolver.entries,fallbackState:a.config.resolver.fallbackState}):a?.config.resolver.kind===`threshold`?lt({thresholds:a.config.resolver.thresholds,states:a.config.resolver.states,invalidState:a.config.resolver.invalidState}):void 0,s=n.find(e=>e.type===`rowBasedOverride`),c=s?.config.mode===`formula`?m(s.config.formulaId):void 0;return s?.config.mode===`formula`&&!c?{ok:!1,reason:`row_based_formula_not_found`}:{ok:!0,executor:{hasRowBasedOverride:r,hasTypedValueFormat:i,execute:t=>{let r=t.value,a=`none`,s=!1,l=!0,u=`left`,d;for(let i of n)switch(i.type){case`normalizeLeadingZeros`:r=Ze(r,i.config?.fixed);break;case`rowBasedOverride`:if(!dt(t,i.config.mode))break;if(i.config.mode===`field`){let e=t.rowData[i.config.fieldKey];if(e==null&&i.config.fallbackToRaw!==!1)break;r=e;break}if(!c)break;try{let e=c.fn(ne({rowData:t.rowData,rawValue:r,columnId:t.columnId,keys:i.config.dependencyIds}));if(e==null&&i.config.fallbackToRaw!==!1)break;r=e}catch{i.config.fallbackToRaw===!1&&(r=void 0)}break;case`resolveValueState`:if(!o)break;a=$e(o,r),s=i.config.icon?.enabled??!1,l=i.config.icon?.showValue??!0,u=i.config.icon?.position??`left`,d=s?ut(a):void 0;break;case`typedValueFormat`:r=H(r,e.column,i.config)}return{value:r,state:a,icon:d,showIcon:s,showValue:l,iconPosition:u,hasTypedValueFormat:i}}}}}function U(e,t){return{value:e,state:`none`,showIcon:!1,showValue:!0,iconPosition:`left`,overflowTooltip:t}}function W(e,t){return t?H(e,t):n(e)}function pt(e){if(!e.formulaId)return;let t=ge({formulaId:e.formulaId,keys:e.formulaDependencies});return t.ok?t.execute:Ct}function mt(e,t,n){if(!n.formulaId)return{value:e,shouldRenderEmpty:!1};if(!n.formulaExecutor)return{value:n.purelyDerived?void 0:e,shouldRenderEmpty:n.purelyDerived===!0};let r=n.formulaExecutor(t);return r.ok?{value:r.value,shouldRenderEmpty:!1}:{value:n.purelyDerived?void 0:e,shouldRenderEmpty:n.purelyDerived===!0}}function ht(e,t,n){let r=n.formattersPipelineExecutor;if(!r)return U(W(t,n),n.overflowTooltip===!0);let i=r.execute({value:t,rowData:e.rowData,rowKind:e.rowKind,isGroupRow:e.rowKind===`group`,isTotalsRow:e.rowKind===`totals`,rowLevel:e.rowLevel??0,groupingIds:e.groupingIds??[],columnId:n.id});return{value:i.hasTypedValueFormat?i.value:W(i.value,n),state:i.state,icon:i.icon,showIcon:i.showIcon,showValue:i.showValue,iconPosition:i.iconPosition,overflowTooltip:n.overflowTooltip===!0}}function gt(e,t,n){return t.shouldRenderEmpty||n.emptyWhenZero&&Ge(t.value)?{...e,value:``}:e}function _t(e){let t=pt(e);if(t?e.formulaExecutor=t:delete e.formulaExecutor,!e.formattersPipeline)return delete e.formattersPipelineExecutor,e;let n=ft({config:e.formattersPipeline,column:e});return n.ok?e.formattersPipelineExecutor=n.executor:delete e.formattersPipelineExecutor,e}function vt(e){let t={};for(let[n,r]of Object.entries(e))r&&(t[n]=_t(r));return t}function yt(e){if(!e.field)return U(n(e.rawValue),!1);let t=mt(e.rawValue,e.rowData,e.field);return gt(ht(e,t.value,e.field),t,e.field)}function bt(e,t){switch(e){case`success`:return`statusSuccess`;case`warning`:return`statusWarning`;case`error`:return`statusError`;case`information`:return`statusInfo`;default:return t}}var G,K,q,J,Y,xt,X,Z,Q,$,St,Ct,wt,Tt;function Et(){return(Et=e((()=>{t(),s(),fe(),i(),S(),w(),G=new Intl.PluralRules(`ru-RU`),K={friday:4,saturday:5,sunday:6},q=864e5,J=[{value:0xe8d4a51000,suffix:`трлн`},{value:1e9,suffix:`млрд`},{value:1e6,suffix:`млн`},{value:1e3,suffix:`тыс`}],Y={minCompactValue:1e3,roundingMode:`trunc`,suffixSeparator:` `},xt=`,`,X=new Map,Z=new Map,Q=new Map,$=Object.freeze({number:`decimal`,date:`date`}),St=Object.freeze([{id:`normalizeLeadingZeros`,name:`Нормализация ведущих нулей`,description:`Нормализует числовое значение по правилам fixed.`},{id:`rowBasedOverride`,name:`Контекстная формула`,description:`Подменяет значение из другого поля текущей строки или отдельной формулы.`},{id:`resolveValueState`,name:`Определение состояния значения`,description:`Вычисляет value state и опционально настраивает отображение статусной иконки.`},{id:`typedValueFormat`,name:`Типизированное форматирование`,description:`Формирует итоговый внешний вид значения по типу и роли столбца.`}]),new Map(St.map(e=>[e.id,e])),Ct=()=>({ok:!1,reason:`formula_not_found`}),wt=[`none`,`information`,`success`,`warning`,`error`],Tt={"":`transparent`,none:`var(--content-1)`,information:`var(--status-info-text)`,success:`var(--status-success-text)`,warning:`var(--status-warning-text)`,error:`var(--status-error-text)`}})))()}export{E as C,x as E,ye as S,S as T,Re as _,Ne as a,N as b,we as c,Tt as d,Pe as f,ve as g,A as h,yt as i,wt as l,T as m,De as n,Oe as o,Fe as p,bt as r,Ie as s,Le as t,vt as u,be as v,Ce as w,ke as x,Et as y};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-v2XPznvF.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Обзор`}),`
|
|
2
2
|
`,(0,c.jsx)(t.h1,{id:`ryuzaki13react-foundation-api`,children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api`})}),`
|
|
3
|
-
`,(0,c.jsx)(t.p,{children:`Пакет соединяет приложение с внешними API. Он содержит transport, интеграцию с TanStack Query, SAP/OData V2 infrastructure и небольшие orchestration helpers
|
|
4
|
-
`,(0,c.jsx)(t.h2,{id:`подключение`,children:`Подключение`}),`
|
|
5
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-api @ryuzaki13/react-foundation-lib
|
|
6
|
-
`})}),`
|
|
3
|
+
`,(0,c.jsx)(t.p,{children:`Пакет соединяет приложение с внешними API. Он содержит transport, интеграцию с TanStack Query, SAP/OData V2 infrastructure и небольшие orchestration helpers.`}),`
|
|
7
4
|
`,(0,c.jsx)(t.p,{children:`Корневого импорта нет. Всегда указывайте точный subpath:`}),`
|
|
8
5
|
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { httpFetchPayload } from "@ryuzaki13/react-foundation-api/http";
|
|
9
6
|
import { useResourceQuery } from "@ryuzaki13/react-foundation-api/resource";
|
|
@@ -20,7 +17,7 @@ import { useODataMetadataQuery } from "@ryuzaki13/react-foundation-api/odata";
|
|
|
20
17
|
@ryuzaki13/react-foundation-lib
|
|
21
18
|
pure helpers + metadata + query policies
|
|
22
19
|
`})}),`
|
|
23
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`foundation-api`}),` не
|
|
20
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`foundation-api`}),` не знает конкретную бизнес-сущность, экран или UI-компонент. DTO/domain mapping конкретного проекта остаётся у host-приложения.`]}),`
|
|
24
21
|
`,(0,c.jsx)(t.h2,{id:`как-выбрать-entrypoint`,children:`Как выбрать entrypoint`}),`
|
|
25
22
|
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Нужно сделать`}),(0,c.jsx)(t.th,{children:`Entrypoint`}),(0,c.jsx)(t.th,{children:`Важная граница`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Вызвать обычный JSON REST endpoint`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`http`})}),(0,c.jsx)(t.td,{children:`Нет SAP/SSO/X-CSRF политики`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Вызвать SAP Gateway/OData V2`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`odata`})}),(0,c.jsx)(t.td,{children:`Metadata, envelope, SSO и X-CSRF принадлежат этому слою`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Описать произвольные queries/mutations`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resource`})}),(0,c.jsx)(t.td,{children:`Transport передаётся операциями`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Описать сохранённые records с фиксированными capability`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`persisted`})}),(0,c.jsx)(t.td,{children:`Только list/latest/history/save/create/delete`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[`Подключить функцию вида `,(0,c.jsx)(t.code,{children:`fn({ data })`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`server-fn`})}),(0,c.jsx)(t.td,{children:`Это adapter операции, не сервер и не security boundary`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Выполнить пакет независимых задач`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`async`})}),(0,c.jsx)(t.td,{children:`Выберите all-at-once или bounded concurrency`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Прочитать ADT transport XML`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`adt`})}),(0,c.jsxs)(t.td,{children:[`Endpoint `,(0,c.jsx)(t.code,{children:`/sap/bc/adt`}),`, XML`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Прочитать UI2 workbench/customizing requests`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`transport`})}),(0,c.jsx)(t.td,{children:`Это SAP transport requests, а не generic HTTP transport`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Отправить error-report draft`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`error-report`})}),(0,c.jsxs)(t.td,{children:[`Сбор/хранение draft принадлежит `,(0,c.jsx)(t.code,{children:`foundation-lib`})]})]})]})]}),`
|
|
26
23
|
`,(0,c.jsx)(t.h2,{id:`самая-частая-ошибка-одинаковые-слова-разные-уровни`,children:`Самая частая ошибка: одинаковые слова, разные уровни`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DlUmG4EA.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-v2XPznvF.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Обзор`}),`
|
|
2
2
|
`,(0,c.jsx)(t.h1,{id:`ryuzaki13react-foundation-lib`,children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib`})}),`
|
|
3
3
|
`,(0,c.jsx)(t.p,{children:`Технический фундамент для host-приложений: чистые преобразования данных, browser/React hooks, сериализуемые runtime-контракты, OData metadata helpers и инфраструктура состояния. Пакет не знает домен приложения, UI-компоненты и transport конкретного backend.`}),`
|
|
4
4
|
`,(0,c.jsx)(t.h2,{id:`подключение`,children:`Подключение`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{t as r}from"./react-dom-BzEl8usk.js";import{i,n as a,r as o,s,t as c}from"./utils-tg3ibbzi.js";import{a as l,c as u,d,g as f,h as p,i as m,m as h,p as g,r as _,s as v,u as y}from"./floating-ui.react-BoRzzZ17.js";function b(){var e=[...arguments];return(0,I.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}function x(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function S(e){return`nodeType`in e}function C(e){return e?x(e)?e:S(e)?e.ownerDocument?.defaultView??window:window:window}function w(e){let{Document:t}=C(e);return e instanceof t}function T(e){return!x(e)&&e instanceof C(e).HTMLElement}function ee(e){return e instanceof C(e).SVGElement}function E(e){return e?x(e)?e.document:S(e)?w(e)?e:T(e)||ee(e)?e.ownerDocument:document:document:document}function D(e){let t=(0,I.useRef)(e);return R(()=>{t.current=e}),(0,I.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function te(){let e=(0,I.useRef)(null);return[(0,I.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,I.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function ne(e,t){t===void 0&&(t=[e]);let n=(0,I.useRef)(e);return R(()=>{n.current!==e&&(n.current=e)},t),n}function O(e,t){let n=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function k(e){let t=D(e),n=(0,I.useRef)(null);return[n,(0,I.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function re(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}function A(e,t){return(0,I.useMemo)(()=>{if(t)return t;let n=z[e]==null?0:z[e]+1;return z[e]=n,e+`-`+n},[e,t])}function j(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}function M(e){return`clientX`in e&&`clientY`in e}function N(e){if(!e)return!1;let{KeyboardEvent:t}=C(e.target);return t&&e instanceof t}function ie(e){if(!e)return!1;let{TouchEvent:t}=C(e.target);return t&&e instanceof t}function P(e){if(ie(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return M(e)?{x:e.clientX,y:e.clientY}:null}function F(e){return e.matches(U)?e:e.querySelector(U)}var I,L,R,z,B,V,H,U;function W(){return(W=t((()=>{I=n(),L=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,R=L?I.useLayoutEffect:I.useEffect,z={},B=j(1),V=j(-1),H=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[H.Translate.toString(e),H.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),U=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`})))()}function G(e){let{id:t,value:n}=e;return se.createElement(`div`,{id:t,style:ce},n)}function ae(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return se.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function oe(){let[e,t]=(0,se.useState)(``);return{announce:(0,se.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var se,ce;function le(){return(le=t((()=>{se=e(n()),ce={display:`none`}})))()}function K(e){let t=(0,q.useContext)(kt);(0,q.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function ue(){let[e]=(0,q.useState)(()=>new Set),t=(0,q.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,q.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}function de(e){let{announcements:t=jt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=At}=e,{announce:a,announcement:o}=oe(),s=A(`DndLiveRegion`),[c,l]=(0,q.useState)(!1);if((0,q.useEffect)(()=>{l(!0)},[]),K((0,q.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=q.createElement(q.Fragment,null,q.createElement(G,{id:r,value:i.draggable}),q.createElement(ae,{id:s,announcement:o}));return n?(0,Ot.createPortal)(u,n):u}function fe(){}function pe(e,t){return(0,q.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function me(){var e=[...arguments];return(0,q.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}function he(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function ge(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function _e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function ve(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function ye(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function be(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}function xe(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}function Se(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ce(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Y}function we(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}function Te(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Ee(e,t,n){let r=Te(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}function De(e,t){t===void 0&&(t=It);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=C(e).getComputedStyle(e);t&&(n=Ee(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Oe(e){return De(e,{ignoreTransform:!0})}function ke(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Ae(e,t){return t===void 0&&(t=C(e).getComputedStyle(e)),t.position===`fixed`}function je(e,t){t===void 0&&(t=C(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Me(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(w(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!T(i)||ee(i)||n.includes(i))return n;let a=C(e).getComputedStyle(i);return i!==e&&je(i,a)&&n.push(i),Ae(i,a)?n:r(i.parentNode)}return e?r(e):n}function Ne(e){let[t]=Me(e,1);return t??null}function Pe(e){return!L||!e?null:x(e)?e:S(e)?w(e)||e===E(e).scrollingElement?window:T(e)?e:null:null}function Fe(e){return x(e)?e.scrollX:e.scrollLeft}function Ie(e){return x(e)?e.scrollY:e.scrollTop}function Le(e){return{x:Fe(e),y:Ie(e)}}function Re(e){return!L||!e?!1:e===document.scrollingElement}function ze(e){let t={x:0,y:0},n=Re(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}function Be(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Lt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=ze(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=X.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=X.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=X.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=X.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Ve(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function He(e){return e.reduce((e,t)=>B(e,Le(t)),Y)}function Ue(e){return e.reduce((e,t)=>e+Fe(t),0)}function We(e){return e.reduce((e,t)=>e+Ie(t),0)}function Ge(e,t){if(t===void 0&&(t=De),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Ne(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}function Ke(e){let{EventTarget:t}=C(e);return e instanceof t?e:E(e)}function qe(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}function Je(e){e.preventDefault()}function Ye(e){e.stopPropagation()}function Xe(e){return!!(e&&`distance`in e)}function Ze(e){return!!(e&&`delay`in e)}function Qe(e){let{acceleration:t,activator:n=Qt.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=$t.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=$e({delta:d,disabled:!a}),[m,h]=te(),g=(0,q.useRef)({x:0,y:0}),_=(0,q.useRef)({x:0,y:0}),v=(0,q.useMemo)(()=>{switch(n){case Qt.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Qt.DraggableRect:return i}},[n,i,c]),y=(0,q.useRef)(null),b=(0,q.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,q.useMemo)(()=>s===$t.TreeOrder?[...l].reverse():l,[s,l]);(0,q.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Be(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}function $e(e){let{delta:t,disabled:n}=e,r=re(t);return O(e=>{if(n||!r||!e)return en;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[X.Backward]:e.x[X.Backward]||i.x===-1,[X.Forward]:e.x[X.Forward]||i.x===1},y:{[X.Backward]:e.y[X.Backward]||i.y===-1,[X.Forward]:e.y[X.Forward]||i.y===1}}},[n,t,r])}function et(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return O(e=>t==null?null:r??e??null,[r,t])}function tt(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}function nt(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,q.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,q.useRef)(e),d=g(),f=ne(d),p=(0,q.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,q.useRef)(null),h=O(t=>{if(d&&!n)return rn;if(!t||t===rn||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new zt(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,q.useEffect)(()=>{u.current=e},[e]),(0,q.useEffect)(()=>{d||p()},[n,d]),(0,q.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,q.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case tn.Always:return!1;case tn.BeforeDragging:return n;default:return!n}}}function rt(e,t){return O(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function it(e,t){return rt(e,t)}function at(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function ot(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function st(e){return new zt(De(e),e)}function ct(e,t,n){t===void 0&&(t=st);let[r,i]=(0,q.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=at({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=ot({callback:a});return R(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function lt(e){return Ce(e,rt(e))}function ut(e){let t=(0,q.useRef)(e),n=O(n=>e?n&&n!==an&&e&&t.current&&e.parentNode===t.current.parentNode?n:Me(e):an,[e]);return(0,q.useEffect)(()=>{t.current=e},[e]),n}function dt(e){let[t,n]=(0,q.useState)(null),r=(0,q.useRef)(e),i=(0,q.useCallback)(e=>{let t=Pe(e.target);t&&n(e=>e?(e.set(t,Le(t)),new Map(e)):null)},[]);return(0,q.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Pe(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,Le(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Pe(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,q.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>B(e,t),Y):He(e):Y,[e,t])}function ft(e,t){t===void 0&&(t=[]);let n=(0,q.useRef)(null);return(0,q.useEffect)(()=>{n.current=null},t),(0,q.useEffect)(()=>{let t=e!==Y;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?V(e,n.current):Y}function pt(e){(0,q.useEffect)(()=>{if(!L)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function mt(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function ht(e){return(0,q.useMemo)(()=>e?ke(e):null,[e])}function gt(e,t){t===void 0&&(t=De);let[n]=e,r=ht(n?C(n):null),[i,a]=(0,q.useState)(on);function o(){a(()=>e.length?e.map(e=>Re(e)?r:new zt(t(e),e)):on)}let s=ot({callback:o});return R(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function _t(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return T(t)?t:e}function vt(e){let{measure:t}=e,[n,r]=(0,q.useState)(null),i=ot({callback:(0,q.useCallback)(e=>{for(let{target:n}of e)if(T(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=k((0,q.useCallback)(e=>{let n=_t(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,q.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}function yt(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new un}}}function bt(e,t){switch(t.type){case J.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case J.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case J.DragEnd:case J.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case J.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new un(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case J.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new un(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case J.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new un(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function xt(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,q.useContext)(pn),a=re(r),o=re(n?.id);return(0,q.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!N(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=F(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function St(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Ct(e){return(0,q.useMemo)(()=>({draggable:{...ln.draggable,...e?.draggable},droppable:{...ln.droppable,...e?.droppable},dragOverlay:{...ln.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function wt(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,q.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;R(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ce(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Ne(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}function Tt(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=A(bn),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,q.useContext)(pn),{role:p=yn,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,q.useContext)(g?hn:vn),[v,y]=k(),[b,x]=k(),S=mt(o,t),C=ne(n);return R(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,q.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===yn?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function Et(){return(0,q.useContext)(mn)}function Dt(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=A(xn),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,q.useContext)(pn),u=(0,q.useRef)({disabled:n}),d=(0,q.useRef)(!1),f=(0,q.useRef)(null),p=(0,q.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...Sn,...i},_=ne(h??r),v=ot({callback:(0,q.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=k((0,q.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=ne(t);return(0,q.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,q.useEffect)(()=>(s({type:J.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:J.UnregisterDroppable,key:a,id:r})),[r]),(0,q.useEffect)(()=>{n!==u.current.disabled&&(s({type:J.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}var q,Ot,kt,At,jt,J,Y,Mt,Nt,Pt,Ft,It,X,Lt,Rt,zt,Bt,Z,Q,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn;function Cn(){return(Cn=t((()=>{q=e(n()),Ot=r(),W(),le(),kt=(0,q.createContext)(null),At={draggable:`
|
|
1
|
+
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{t as r}from"./react-dom-BzEl8usk.js";import{i,n as a,r as o,s,t as c}from"./utils-tg3ibbzi.js";import{a as l,c as u,d,g as f,h as p,i as m,m as h,p as g,r as _,s as v,u as y}from"./floating-ui.react-Cvohd2Gw.js";function b(){var e=[...arguments];return(0,I.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}function x(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function S(e){return`nodeType`in e}function C(e){return e?x(e)?e:S(e)?e.ownerDocument?.defaultView??window:window:window}function w(e){let{Document:t}=C(e);return e instanceof t}function T(e){return!x(e)&&e instanceof C(e).HTMLElement}function ee(e){return e instanceof C(e).SVGElement}function E(e){return e?x(e)?e.document:S(e)?w(e)?e:T(e)||ee(e)?e.ownerDocument:document:document:document}function D(e){let t=(0,I.useRef)(e);return R(()=>{t.current=e}),(0,I.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function te(){let e=(0,I.useRef)(null);return[(0,I.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,I.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function ne(e,t){t===void 0&&(t=[e]);let n=(0,I.useRef)(e);return R(()=>{n.current!==e&&(n.current=e)},t),n}function O(e,t){let n=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function k(e){let t=D(e),n=(0,I.useRef)(null);return[n,(0,I.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function re(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}function A(e,t){return(0,I.useMemo)(()=>{if(t)return t;let n=z[e]==null?0:z[e]+1;return z[e]=n,e+`-`+n},[e,t])}function j(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}function M(e){return`clientX`in e&&`clientY`in e}function N(e){if(!e)return!1;let{KeyboardEvent:t}=C(e.target);return t&&e instanceof t}function ie(e){if(!e)return!1;let{TouchEvent:t}=C(e.target);return t&&e instanceof t}function P(e){if(ie(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return M(e)?{x:e.clientX,y:e.clientY}:null}function F(e){return e.matches(U)?e:e.querySelector(U)}var I,L,R,z,B,V,H,U;function W(){return(W=t((()=>{I=n(),L=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,R=L?I.useLayoutEffect:I.useEffect,z={},B=j(1),V=j(-1),H=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[H.Translate.toString(e),H.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),U=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`})))()}function G(e){let{id:t,value:n}=e;return se.createElement(`div`,{id:t,style:ce},n)}function ae(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return se.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function oe(){let[e,t]=(0,se.useState)(``);return{announce:(0,se.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var se,ce;function le(){return(le=t((()=>{se=e(n()),ce={display:`none`}})))()}function K(e){let t=(0,q.useContext)(kt);(0,q.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function ue(){let[e]=(0,q.useState)(()=>new Set),t=(0,q.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,q.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}function de(e){let{announcements:t=jt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=At}=e,{announce:a,announcement:o}=oe(),s=A(`DndLiveRegion`),[c,l]=(0,q.useState)(!1);if((0,q.useEffect)(()=>{l(!0)},[]),K((0,q.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=q.createElement(q.Fragment,null,q.createElement(G,{id:r,value:i.draggable}),q.createElement(ae,{id:s,announcement:o}));return n?(0,Ot.createPortal)(u,n):u}function fe(){}function pe(e,t){return(0,q.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function me(){var e=[...arguments];return(0,q.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}function he(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function ge(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function _e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function ve(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function ye(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function be(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}function xe(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}function Se(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ce(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Y}function we(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}function Te(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Ee(e,t,n){let r=Te(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}function De(e,t){t===void 0&&(t=It);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=C(e).getComputedStyle(e);t&&(n=Ee(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Oe(e){return De(e,{ignoreTransform:!0})}function ke(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Ae(e,t){return t===void 0&&(t=C(e).getComputedStyle(e)),t.position===`fixed`}function je(e,t){t===void 0&&(t=C(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Me(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(w(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!T(i)||ee(i)||n.includes(i))return n;let a=C(e).getComputedStyle(i);return i!==e&&je(i,a)&&n.push(i),Ae(i,a)?n:r(i.parentNode)}return e?r(e):n}function Ne(e){let[t]=Me(e,1);return t??null}function Pe(e){return!L||!e?null:x(e)?e:S(e)?w(e)||e===E(e).scrollingElement?window:T(e)?e:null:null}function Fe(e){return x(e)?e.scrollX:e.scrollLeft}function Ie(e){return x(e)?e.scrollY:e.scrollTop}function Le(e){return{x:Fe(e),y:Ie(e)}}function Re(e){return!L||!e?!1:e===document.scrollingElement}function ze(e){let t={x:0,y:0},n=Re(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}function Be(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Lt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=ze(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=X.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=X.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=X.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=X.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Ve(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function He(e){return e.reduce((e,t)=>B(e,Le(t)),Y)}function Ue(e){return e.reduce((e,t)=>e+Fe(t),0)}function We(e){return e.reduce((e,t)=>e+Ie(t),0)}function Ge(e,t){if(t===void 0&&(t=De),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Ne(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}function Ke(e){let{EventTarget:t}=C(e);return e instanceof t?e:E(e)}function qe(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}function Je(e){e.preventDefault()}function Ye(e){e.stopPropagation()}function Xe(e){return!!(e&&`distance`in e)}function Ze(e){return!!(e&&`delay`in e)}function Qe(e){let{acceleration:t,activator:n=Qt.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=$t.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=$e({delta:d,disabled:!a}),[m,h]=te(),g=(0,q.useRef)({x:0,y:0}),_=(0,q.useRef)({x:0,y:0}),v=(0,q.useMemo)(()=>{switch(n){case Qt.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Qt.DraggableRect:return i}},[n,i,c]),y=(0,q.useRef)(null),b=(0,q.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,q.useMemo)(()=>s===$t.TreeOrder?[...l].reverse():l,[s,l]);(0,q.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Be(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}function $e(e){let{delta:t,disabled:n}=e,r=re(t);return O(e=>{if(n||!r||!e)return en;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[X.Backward]:e.x[X.Backward]||i.x===-1,[X.Forward]:e.x[X.Forward]||i.x===1},y:{[X.Backward]:e.y[X.Backward]||i.y===-1,[X.Forward]:e.y[X.Forward]||i.y===1}}},[n,t,r])}function et(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return O(e=>t==null?null:r??e??null,[r,t])}function tt(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}function nt(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,q.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,q.useRef)(e),d=g(),f=ne(d),p=(0,q.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,q.useRef)(null),h=O(t=>{if(d&&!n)return rn;if(!t||t===rn||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new zt(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,q.useEffect)(()=>{u.current=e},[e]),(0,q.useEffect)(()=>{d||p()},[n,d]),(0,q.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,q.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case tn.Always:return!1;case tn.BeforeDragging:return n;default:return!n}}}function rt(e,t){return O(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function it(e,t){return rt(e,t)}function at(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function ot(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function st(e){return new zt(De(e),e)}function ct(e,t,n){t===void 0&&(t=st);let[r,i]=(0,q.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=at({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=ot({callback:a});return R(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function lt(e){return Ce(e,rt(e))}function ut(e){let t=(0,q.useRef)(e),n=O(n=>e?n&&n!==an&&e&&t.current&&e.parentNode===t.current.parentNode?n:Me(e):an,[e]);return(0,q.useEffect)(()=>{t.current=e},[e]),n}function dt(e){let[t,n]=(0,q.useState)(null),r=(0,q.useRef)(e),i=(0,q.useCallback)(e=>{let t=Pe(e.target);t&&n(e=>e?(e.set(t,Le(t)),new Map(e)):null)},[]);return(0,q.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Pe(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,Le(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Pe(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,q.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>B(e,t),Y):He(e):Y,[e,t])}function ft(e,t){t===void 0&&(t=[]);let n=(0,q.useRef)(null);return(0,q.useEffect)(()=>{n.current=null},t),(0,q.useEffect)(()=>{let t=e!==Y;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?V(e,n.current):Y}function pt(e){(0,q.useEffect)(()=>{if(!L)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function mt(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function ht(e){return(0,q.useMemo)(()=>e?ke(e):null,[e])}function gt(e,t){t===void 0&&(t=De);let[n]=e,r=ht(n?C(n):null),[i,a]=(0,q.useState)(on);function o(){a(()=>e.length?e.map(e=>Re(e)?r:new zt(t(e),e)):on)}let s=ot({callback:o});return R(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function _t(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return T(t)?t:e}function vt(e){let{measure:t}=e,[n,r]=(0,q.useState)(null),i=ot({callback:(0,q.useCallback)(e=>{for(let{target:n}of e)if(T(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=k((0,q.useCallback)(e=>{let n=_t(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,q.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}function yt(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new un}}}function bt(e,t){switch(t.type){case J.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case J.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case J.DragEnd:case J.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case J.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new un(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case J.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new un(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case J.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new un(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function xt(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,q.useContext)(pn),a=re(r),o=re(n?.id);return(0,q.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!N(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=F(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function St(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Ct(e){return(0,q.useMemo)(()=>({draggable:{...ln.draggable,...e?.draggable},droppable:{...ln.droppable,...e?.droppable},dragOverlay:{...ln.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function wt(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,q.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;R(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ce(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Ne(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}function Tt(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=A(bn),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,q.useContext)(pn),{role:p=yn,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,q.useContext)(g?hn:vn),[v,y]=k(),[b,x]=k(),S=mt(o,t),C=ne(n);return R(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,q.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===yn?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function Et(){return(0,q.useContext)(mn)}function Dt(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=A(xn),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,q.useContext)(pn),u=(0,q.useRef)({disabled:n}),d=(0,q.useRef)(!1),f=(0,q.useRef)(null),p=(0,q.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...Sn,...i},_=ne(h??r),v=ot({callback:(0,q.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=k((0,q.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=ne(t);return(0,q.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,q.useEffect)(()=>(s({type:J.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:J.UnregisterDroppable,key:a,id:r})),[r]),(0,q.useEffect)(()=>{n!==u.current.disabled&&(s({type:J.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}var q,Ot,kt,At,jt,J,Y,Mt,Nt,Pt,Ft,It,X,Lt,Rt,zt,Bt,Z,Q,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn;function Cn(){return(Cn=t((()=>{q=e(n()),Ot=r(),W(),le(),kt=(0,q.createContext)(null),At={draggable:`
|
|
2
2
|
To pick up a draggable item, press the space bar.
|
|
3
3
|
While dragging, use the arrow keys to move the item.
|
|
4
4
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./iframe-DlUmG4EA.js";e();
|