@hienlh/ppm 0.18.15 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/CLAUDE.md +4 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/http-api.md +2 -1
- package/dist/web/assets/{adaptive-context-menu-ChBZWLLq.js → adaptive-context-menu-JfuUSqbe.js} +1 -1
- package/dist/web/assets/{ai-resource-editor-C8aAY8Po.js → ai-resource-editor-MfdJKVM5.js} +1 -1
- package/dist/web/assets/ai-settings-section-CJE7jFsj.js +1 -0
- package/dist/web/assets/{angular-html-CXgHIQ2U.js → angular-html-VzxSzTCy.js} +1 -1
- package/dist/web/assets/{angular-ts-C8renMV9.js → angular-ts-CmJ4bmzM.js} +1 -1
- package/dist/web/assets/api-client-DLWwuUkJ.js +1 -0
- package/dist/web/assets/{api-client-BkGKTjsq.js → api-client-qRWu6_s5.js} +1 -1
- package/dist/web/assets/api-settings-BFuaZrNC.js +1 -0
- package/dist/web/assets/{api-settings-R59c66DE.js → api-settings-CPg4yGvS.js} +1 -1
- package/dist/web/assets/{api-themes-DKxrwJda.js → api-themes-DsAp8m7m.js} +1 -1
- package/dist/web/assets/{apl-DkGH8laI.js → apl-do17bnVx.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-6konx-J1.js +1 -0
- package/dist/web/assets/{astro-tHUd8Zlg.js → astro-ClY0e0OA.js} +1 -1
- package/dist/web/assets/{audio-preview-B_C6Dpvz.js → audio-preview-Fw935Mok.js} +1 -1
- package/dist/web/assets/{blade-BbKpjIYK.js → blade-BXSdXDGq.js} +1 -1
- package/dist/web/assets/{bot-D6sx11y0.js → bot-CWZAuloY.js} +1 -1
- package/dist/web/assets/{bsl-DA0UYto0.js → bsl-MxsMKDUZ.js} +1 -1
- package/dist/web/assets/{button-DBSpDPS0.js → button-CrwgGd1y.js} +1 -1
- package/dist/web/assets/{cairo-79ayucbB.js → cairo-4CIrzX_p.js} +1 -1
- package/dist/web/assets/chat-tab-bSOVoC5N.js +15 -0
- package/dist/web/assets/{chevron-down-Dp0rpHb8.js → chevron-down-D7CbB5f6.js} +1 -1
- package/dist/web/assets/chevron-right-D7Pn5agw.js +1 -0
- package/dist/web/assets/circle-4g2coECH.js +1 -0
- package/dist/web/assets/{circle-question-mark-CzR7YRc-.js → circle-question-mark-BBzFZrNh.js} +1 -1
- package/dist/web/assets/clock-DbiNiwCG.js +1 -0
- package/dist/web/assets/{cobol-DSS2EOYo.js → cobol-phPOE89d.js} +1 -1
- package/dist/web/assets/code-DdKXqtf_.js +1 -0
- package/dist/web/assets/code-editor-COTa37oe.js +10 -0
- package/dist/web/assets/{coffee-DvSxq2iD.js → coffee-Cjuukfz3.js} +1 -1
- package/dist/web/assets/{conflict-editor-C4VCv51R.js → conflict-editor-Ni0PPsKu.js} +1 -1
- package/dist/web/assets/{context-menu-BpwUny-o.js → context-menu-BEAa1qhd.js} +1 -1
- package/dist/web/assets/{copy-BewHj66E.js → copy-CbPdNp7E.js} +1 -1
- package/dist/web/assets/{cpp-BhWZ-FSn.js → cpp-CT7tGBC3.js} +1 -1
- package/dist/web/assets/{createLucideIcon-D8pyde1A.js → createLucideIcon-ConhwJnb.js} +1 -1
- package/dist/web/assets/{crystal-yP2OeF-f.js → crystal-D8U1Qnqh.js} +1 -1
- package/dist/web/assets/{csv-preview-D46W_icb.js → csv-preview-Coc2oed1.js} +1 -1
- package/dist/web/assets/{data-grid-overlay-editor-DeGkPYtA.js → data-grid-overlay-editor-B8WQkZDB.js} +1 -1
- package/dist/web/assets/{data-grid-types-DkEQ-Na9.js → data-grid-types-KpjaKAci.js} +1 -1
- package/dist/web/assets/{database-Y3ESDK4-.js → database-BqyeGogo.js} +1 -1
- package/dist/web/assets/{database-viewer-DFI4YtrH.js → database-viewer-Dta7lSSk.js} +1 -1
- package/dist/web/assets/{dialog-RIpeb87v.js → dialog-DrL3WEXd.js} +1 -1
- package/dist/web/assets/{diff-viewer-eaNOLcBL.js → diff-viewer-CT0lmDc9.js} +1 -1
- package/dist/web/assets/{dist-Do3fljss.js → dist-C2_dKAa_.js} +1 -1
- package/dist/web/assets/{docx-preview-Cbj-pOK3.js → docx-preview-76KDw1eE.js} +1 -1
- package/dist/web/assets/{download-DG3_9xXy.js → download-DAF7SXcf.js} +1 -1
- package/dist/web/assets/{edge-D3K9cd-p.js → edge-Db4ze6bw.js} +1 -1
- package/dist/web/assets/{edit-diff-preview-DDqy3KLA.js → edit-diff-preview-DyC_-4My.js} +1 -1
- package/dist/web/assets/{elixir-D4PBmsLp.js → elixir-RZPZ0472.js} +1 -1
- package/dist/web/assets/{elm-DSpXjuaH.js → elm-DNZcQt_7.js} +1 -1
- package/dist/web/assets/{erb-CaYZMTJW.js → erb-DRONsZXs.js} +1 -1
- package/dist/web/assets/{erlang-DX5BFqJj.js → erlang-DeG0-QwJ.js} +1 -1
- package/dist/web/assets/{esm-Cv7HsFnk.js → esm-CZy-sSoK.js} +1 -1
- package/dist/web/assets/explorer-body-BGjR2Gbt.js +2 -0
- package/dist/web/assets/explorer-window-content-DAhHh5EQ.js +1 -0
- package/dist/web/assets/{extension-store-B1EClUAr.js → extension-store-ClQpnxQr.js} +1 -1
- package/dist/web/assets/{extension-webview-BaGvDk8v.js → extension-webview-BW5GuBnH.js} +1 -1
- package/dist/web/assets/{external-link-B6Hl0U4X.js → external-link-ojDHcQxQ.js} +1 -1
- package/dist/web/assets/{eye-off-CUdzgmX8.js → eye-off-Rq1n2-oe.js} +1 -1
- package/dist/web/assets/{file-exclamation-point-JzhTU2TX.js → file-exclamation-point-Bpg-zDPP.js} +1 -1
- package/dist/web/assets/{file-store-m9crh6uq.js → file-store-28e44KP3.js} +1 -1
- package/dist/web/assets/{folder-symlink-Dx1hOk8X.js → folder-symlink-LD-mr54V.js} +1 -1
- package/dist/web/assets/{fortran-fixed-form-B0bAufUe.js → fortran-fixed-form-CK5VRJNd.js} +1 -1
- package/dist/web/assets/{fsharp-C2AL2b1M.js → fsharp-TVVgzHWp.js} +1 -1
- package/dist/web/assets/{gdresource-DRQsDMNI.js → gdresource-DiUcyewI.js} +1 -1
- package/dist/web/assets/{git-commit-GtBdnrzk.js → git-commit-CfOruFrg.js} +1 -1
- package/dist/web/assets/{git-log-panel-hwV1flSO.js → git-log-panel-D1-YXZ0O.js} +1 -1
- package/dist/web/assets/{git-rebase-h_0CGA6F.js → git-rebase-Bxyr24oc.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-ikUwsekd.js +1 -0
- package/dist/web/assets/{glide-data-grid-YsN-xm6x.js → glide-data-grid-BSsqxe2v.js} +6 -6
- package/dist/web/assets/{glimmer-js-Bxwu93bS.js → glimmer-js-CT5aJxz_.js} +1 -1
- package/dist/web/assets/{glimmer-ts-CIUYdR4E.js → glimmer-ts-CRjP9Yey.js} +1 -1
- package/dist/web/assets/{glsl-CfxLI5jn.js → glsl-BX2--oI_.js} +1 -1
- package/dist/web/assets/{graphql-CstqDPde.js → graphql-BIQsvBxQ.js} +1 -1
- package/dist/web/assets/{group-chat-tab-B7mJO1gG.js → group-chat-tab-CMtzoaFc.js} +1 -1
- package/dist/web/assets/{hack-Bjqnssb5.js → hack-CTWk0k1m.js} +1 -1
- package/dist/web/assets/{haml-lVc-DfbM.js → haml-DGh27hXc.js} +1 -1
- package/dist/web/assets/{hand-x0ejq3fS.js → hand-DKSxDa5c.js} +1 -1
- package/dist/web/assets/{handlebars-Yy6fPQI_.js → handlebars-BJL1jNrG.js} +1 -1
- package/dist/web/assets/{html-lqtcy6-2.js → html-DALyDNqU.js} +1 -1
- package/dist/web/assets/{html-derivative-CchzCY1z.js → html-derivative-B4XcU57e.js} +1 -1
- package/dist/web/assets/{http-ChclRrko.js → http-DfMo7nNu.js} +1 -1
- package/dist/web/assets/{hurl-CoOK7sXa.js → hurl-CGc_n2Qf.js} +1 -1
- package/dist/web/assets/{hxml-fZSZ7Iyt.js → hxml-40zZ1t4x.js} +1 -1
- package/dist/web/assets/{image-preview-ClAcqDlL.js → image-preview-Cp3XB8UO.js} +1 -1
- package/dist/web/assets/index-BkHlMfPD.js +52 -0
- package/dist/web/assets/index-SFFv2-VM.css +2 -0
- package/dist/web/assets/info-3K5VOQVL-BAgmboBp.js +1 -0
- package/dist/web/assets/{input-DXPgUtxi.js → input-DTmI80l2.js} +1 -1
- package/dist/web/assets/{jinja-Y0w_KBdE.js → jinja-D5zuIn9u.js} +1 -1
- package/dist/web/assets/{jison-BILj3F2e.js → jison-Dxut9QwA.js} +1 -1
- package/dist/web/assets/{julia-DRfOPDts.js → julia-Cu85tTPo.js} +1 -1
- package/dist/web/assets/{just-n3U_oODO.js → just-CctM4uLa.js} +1 -1
- package/dist/web/assets/{keybindings-store-D-CHdq-G.js → keybindings-store-Bi0q9x4Q.js} +1 -1
- package/dist/web/assets/keybindings-store-_KfovSz7.js +1 -0
- package/dist/web/assets/{keyboard-DBBaoQSu.js → keyboard-AdwmYDSu.js} +1 -1
- package/dist/web/assets/{latex-D6gztEOL.js → latex-kpwS_CC7.js} +1 -1
- package/dist/web/assets/{lib-CXUwxw1M.js → lib-Ca7ai8xa.js} +1 -1
- package/dist/web/assets/{liquid-DPqCEVb9.js → liquid-B8Rr0xue.js} +1 -1
- package/dist/web/assets/loader-circle-DD65e9-7.js +1 -0
- package/dist/web/assets/{lock-CNxUGpTk.js → lock-BEtt_eTO.js} +1 -1
- package/dist/web/assets/{lua-I40KPUm-.js → lua-C_3gixwM.js} +1 -1
- package/dist/web/assets/markdown-renderer-DroTmKbJ.js +1 -0
- package/dist/web/assets/markdown-renderer-ntDi3Tx-.js +3 -0
- package/dist/web/assets/{marko-DMjsThSW.js → marko-B28rvNL-.js} +1 -1
- package/dist/web/assets/{mdc-CN2alsbo.js → mdc-DQ6-STFO.js} +1 -1
- package/dist/web/assets/{media-url-COUvasjn.js → media-url-BjvbfTTl.js} +1 -1
- package/dist/web/assets/{mobile-bottom-sheet-Cj1YBq-c.js → mobile-bottom-sheet-DXn5g2LB.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-BP6iU4ma.js +1 -0
- package/dist/web/assets/{monitor-C835ucWH.js → monitor-CXI_XpWJ.js} +1 -1
- package/dist/web/assets/monitor-smartphone-C1wUPOSg.js +1 -0
- package/dist/web/assets/{nextflow-CGa4JeZ6.js → nextflow-B1xq2O8L.js} +1 -1
- package/dist/web/assets/{nginx-CmqrIj84.js → nginx-xsLxRGxO.js} +1 -1
- package/dist/web/assets/{nim-CqhmTeMa.js → nim-wqcek3WO.js} +1 -1
- package/dist/web/assets/notification-store-II5Kw9rD.js +1 -0
- package/dist/web/assets/{number-overlay-editor-BEzJ1YeD.js → number-overlay-editor-1c4sgZJt.js} +1 -1
- package/dist/web/assets/{overview-panel-Bf9Gn8qV.js → overview-panel-Cr2xsHc6.js} +1 -1
- package/dist/web/assets/packet-RMMSAZCW-RVlbbDRS.js +1 -0
- package/dist/web/assets/{panel-store-UWCH6B-_.js → panel-store-Dv28vz3L.js} +1 -1
- package/dist/web/assets/{pdf-preview-BMHM5cR2.js → pdf-preview-DKeIIJTv.js} +1 -1
- package/dist/web/assets/{pencil-BlIIg6RH.js → pencil-CHKLOgLs.js} +1 -1
- package/dist/web/assets/{perl-BOwpb6Tb.js → perl-BH54gN9q.js} +1 -1
- package/dist/web/assets/{php-wT9fVxxu.js → php-Br5ZrEZm.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-ZWb4izpk.js +1 -0
- package/dist/web/assets/play-CPbVzGgq.js +1 -0
- package/dist/web/assets/{plus-BR0qewJI.js → plus-BxqD2FIZ.js} +1 -1
- package/dist/web/assets/portal-container-context-BmG4--I-.js +1 -0
- package/dist/web/assets/{postgres-viewer-D8rfEY5b.js → postgres-viewer-BJPr_FYL.js} +3 -3
- package/dist/web/assets/{process-table-CsQ-hDJr.js → process-table-BqTcAJ-h.js} +1 -1
- package/dist/web/assets/{project-store-CKAOr23O.js → project-store-KHjFTCxf.js} +1 -1
- package/dist/web/assets/{pug-DdlNnj-p.js → pug-8VCubZ3H.js} +1 -1
- package/dist/web/assets/{qml-C5zBdydf.js → qml-D8AF1RZ6.js} +1 -1
- package/dist/web/assets/radar-KQ55EAFF-bsP5x1Bx.js +1 -0
- package/dist/web/assets/{razor-DqcJX4iq.js → razor-6v042IJW.js} +1 -1
- package/dist/web/assets/{react-Dfio3PfK.js → react-DHs6efqI.js} +1 -1
- package/dist/web/assets/{refresh-cw-84mz8aOE.js → refresh-cw-BALzw7L3.js} +1 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-CYZUjYTO.js +2 -0
- package/dist/web/assets/remote-desktop-mobile-view-DaoB49k4.js +1 -0
- package/dist/web/assets/remote-desktop-readiness-gate--LJgsuoj.js +1 -0
- package/dist/web/assets/remote-desktop-window-content-Cihx4PNZ.js +1 -0
- package/dist/web/assets/{rotate-ccw-CNTk2J7l.js → rotate-ccw-CuvNBM80.js} +1 -1
- package/dist/web/assets/{rst-DiMiMYUO.js → rst-mTGFo4AQ.js} +1 -1
- package/dist/web/assets/{ruby-DK62iflA.js → ruby-BBaOP636.js} +1 -1
- package/dist/web/assets/{run-in-terminal-DJSL6nwZ.js → run-in-terminal-Zl5iIx-B.js} +1 -1
- package/dist/web/assets/{sas-6QPGJRa5.js → sas-D5QEkIH2.js} +1 -1
- package/dist/web/assets/{save-CtW9ojKk.js → save-Dxq-Zepc.js} +1 -1
- package/dist/web/assets/{scroll-area-DXGXeiRz.js → scroll-area-B5yhPpZo.js} +1 -1
- package/dist/web/assets/{scss-DmUqh48_.js → scss-C5Mu6y2u.js} +1 -1
- package/dist/web/assets/{send-C_sLFt56.js → send-Cits8q0l.js} +1 -1
- package/dist/web/assets/{send-to-chat-BOony0sO.js → send-to-chat-Cv7ikFUC.js} +1 -1
- package/dist/web/assets/settings-store-Dp4i8zeA.js +2 -0
- package/dist/web/assets/settings-tab-BtMvvKAF.js +3 -0
- package/dist/web/assets/settings-tab-UPPycGRF.js +1 -0
- package/dist/web/assets/{shaderlab-DopFR1mi.js → shaderlab-mLnpMpN3.js} +1 -1
- package/dist/web/assets/{shallow-C1YoJQA-.js → shallow-BBJ_qoEF.js} +1 -1
- package/dist/web/assets/{shellsession-Bp_TGuXb.js → shellsession-qdcDfUuk.js} +1 -1
- package/dist/web/assets/{shield-check-Du6HKYn9.js → shield-check-CH7F1P7m.js} +1 -1
- package/dist/web/assets/{shield-off-CWKb1MQL.js → shield-off-C9HiF0-6.js} +1 -1
- package/dist/web/assets/{soy-DEB9KEFb.js → soy-CGGf1G43.js} +1 -1
- package/dist/web/assets/{sparkles-Dh-_J2Rd.js → sparkles-BnuLH6Ck.js} +1 -1
- package/dist/web/assets/{sparql-C8lEwO1p.js → sparql-tQHB50VD.js} +1 -1
- package/dist/web/assets/{sql-query-editor-MMfk0Kbz.js → sql-query-editor-DZqnYIB7.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-vglzrgnZ.js → sqlite-viewer-DXutos0e.js} +1 -1
- package/dist/web/assets/{stata-DVep4apN.js → stata-DVQNLMcR.js} +1 -1
- package/dist/web/assets/{surrealql-fSlJApOA.js → surrealql-lu576tBi.js} +1 -1
- package/dist/web/assets/{svelte-DezWBEDi.js → svelte-CSCrOBjT.js} +1 -1
- package/dist/web/assets/{switch-DqL_ZjB_.js → switch-BPol3BFC.js} +1 -1
- package/dist/web/assets/system-monitor-body-Ct8_GX_f.js +2 -0
- package/dist/web/assets/system-monitor-tab-DC_EerdI.js +1 -0
- package/dist/web/assets/system-monitor-window-content-D25DMNpw.js +1 -0
- package/dist/web/assets/{tab-host-window-content-DYlXR0cg.js → tab-host-window-content-C5kYP0-z.js} +1 -1
- package/dist/web/assets/{tab-store-D2thn4Vv.js → tab-store-DS3YlUwR.js} +1 -1
- package/dist/web/assets/{table-GAR4upb6.js → table-BXDyImqk.js} +1 -1
- package/dist/web/assets/team-member-sheet-DvmioeQL.js +2 -0
- package/dist/web/assets/{team-member-window-content-qrgFTC96.js → team-member-window-content-BJ_XFw8-.js} +1 -1
- package/dist/web/assets/{templ-D0zB42a9.js → templ-CPt8AS4Q.js} +1 -1
- package/dist/web/assets/{terminal-tab-D_-R5rGm.js → terminal-tab-8bKQ3CWR.js} +3 -3
- package/dist/web/assets/{tex-BJiPijcH.js → tex-BrTByT7i.js} +1 -1
- package/dist/web/assets/{text-wrap-D71Jqz5U.js → text-wrap-CzMjB6GD.js} +1 -1
- package/dist/web/assets/{tool-cards-BW7Xc20J.js → tool-cards-pIu_cmEL.js} +4 -4
- package/dist/web/assets/{trash-2-C08fhIg1.js → trash-2-BjShZ7if.js} +1 -1
- package/dist/web/assets/treemap-KZPCXAKY-Dh1oxNdQ.js +1 -0
- package/dist/web/assets/{triangle-alert-85BQgs3T.js → triangle-alert-qQ6Plydp.js} +1 -1
- package/dist/web/assets/{ts-tags-Dcr4u6y5.js → ts-tags-DSqEZ7A8.js} +1 -1
- package/dist/web/assets/{twig-B-SQU0bg.js → twig-DW9qc1bf.js} +1 -1
- package/dist/web/assets/{upload-BNlX8D07.js → upload-7Zs6oaK5.js} +1 -1
- package/dist/web/assets/{use-blob-url-BtPlqwLr.js → use-blob-url-DKbV7PM_.js} +1 -1
- package/dist/web/assets/{use-coarse-long-press-BmI_GVW5.js → use-coarse-long-press-DGyC48NF.js} +1 -1
- package/dist/web/assets/{use-is-mobile-DUuki97q.js → use-is-mobile-ClE-UcPF.js} +1 -1
- package/dist/web/assets/use-monaco-theme-DaxAk3gB.js +1 -0
- package/dist/web/assets/use-open-team-member-CopUuDHG.js +1 -0
- package/dist/web/assets/use-remote-desktop-display-choice-BUA_1eaH.js +1 -0
- package/dist/web/assets/{use-visual-viewport-pVxLfE5B.js → use-visual-viewport-CCX21c9w.js} +1 -1
- package/dist/web/assets/{use-websocket-l39Odhlp.js → use-websocket-CWpG7PWN.js} +1 -1
- package/dist/web/assets/vendor-markdown-CKTlmXbz.js +291 -0
- package/dist/web/assets/{vendor-mermaid-CtDsSxbM.js → vendor-mermaid-0Nt-ew76.js} +1 -1
- package/dist/web/assets/{vendor-ui-CaeeFO0B.js → vendor-ui-CXJtBULr.js} +1 -1
- package/dist/web/assets/{video-preview-C5AhkIDl.js → video-preview-C2_fdunE.js} +1 -1
- package/dist/web/assets/{vue-Cw10Sfbh.js → vue-CJNDL1g-.js} +1 -1
- package/dist/web/assets/{vue-html-Cc5C_Z_w.js → vue-html-CG5BKtq1.js} +1 -1
- package/dist/web/assets/{vue-vine-BuNMlnvu.js → vue-vine-Dd5HZ7T5.js} +1 -1
- package/dist/web/assets/{window-pip-registry-C7oz3Dfy.js → window-pip-registry-9H6Y-HqR.js} +1 -1
- package/dist/web/assets/{window-store-B5ZswdYg.js → window-store-CNzkeUyO.js} +1 -1
- package/dist/web/assets/x-Dzu9ecti.js +1 -0
- package/dist/web/assets/{xml-DqT1wkky.js → xml-DTOm5niz.js} +1 -1
- package/dist/web/assets/{xsl-DLkge3A2.js → xsl-BD_kBC04.js} +1 -1
- package/dist/web/index.html +65 -64
- package/dist/web/monacoeditorwork/css.worker.bundle.js +122 -122
- package/dist/web/monacoeditorwork/editor.worker.bundle.js +78 -78
- package/dist/web/monacoeditorwork/html.worker.bundle.js +110 -110
- package/dist/web/monacoeditorwork/json.worker.bundle.js +108 -108
- package/dist/web/monacoeditorwork/ts.worker.bundle.js +81 -81
- package/dist/web/sw.js +1 -1
- package/docs/system-architecture.md +19 -0
- package/package.json +1 -1
- package/scripts/check-ppm-dir-usage.sh +0 -0
- package/scripts/install.sh +0 -0
- package/scripts/release.sh +0 -0
- package/src/server/index.ts +1 -1
- package/src/server/routes/remote-desktop.ts +24 -7
- package/src/server/routes/settings.ts +1 -0
- package/src/server/ws/remote-desktop.ts +4 -2
- package/src/services/edge-forwarder.ts +191 -191
- package/src/services/named-tunnel/cloudflare-dns-api.ts +20 -4
- package/src/services/named-tunnel/named-tunnel-args.ts +17 -3
- package/src/services/named-tunnel/named-tunnel-setup.service.ts +20 -2
- package/src/services/remote-desktop/remote-desktop-capture-input.ts +62 -0
- package/src/services/remote-desktop/remote-desktop-capture.ts +29 -12
- package/src/services/remote-desktop/remote-desktop-cg-key-map.ts +45 -0
- package/src/services/remote-desktop/remote-desktop-displays.ts +90 -0
- package/src/services/remote-desktop/remote-desktop-encoder-args.ts +7 -0
- package/src/services/remote-desktop/remote-desktop-flag.ts +8 -6
- package/src/services/remote-desktop/remote-desktop-input-backend.ts +36 -0
- package/src/services/remote-desktop/remote-desktop-input-darwin.ts +200 -0
- package/src/services/remote-desktop/remote-desktop-input-win32.ts +243 -0
- package/src/services/remote-desktop/remote-desktop-input.ts +43 -193
- package/src/services/remote-desktop/remote-desktop-macos-permissions.ts +62 -0
- package/src/services/remote-desktop/remote-desktop-requirements.ts +124 -0
- package/src/services/remote-desktop/remote-desktop-session.ts +16 -5
- package/src/services/windows-process-tree.ts +351 -351
- package/src/web/components/remote-desktop/remote-desktop-mobile-sheet.tsx +12 -4
- package/src/web/components/remote-desktop/remote-desktop-mobile-toolbar.tsx +12 -1
- package/src/web/components/remote-desktop/remote-desktop-mobile-view.tsx +5 -1
- package/src/web/components/remote-desktop/remote-desktop-readiness-gate.tsx +128 -0
- package/src/web/components/remote-desktop/remote-desktop-warning-gate.tsx +106 -0
- package/src/web/components/remote-desktop/remote-desktop-window-content.tsx +38 -4
- package/src/web/components/remote-desktop/use-remote-desktop-available.ts +7 -24
- package/src/web/components/remote-desktop/use-remote-desktop-connection.ts +10 -3
- package/src/web/components/remote-desktop/use-remote-desktop-display-choice.ts +30 -0
- package/src/web/components/remote-desktop/use-remote-desktop-readiness.ts +82 -0
- package/src/web/components/remote-desktop/use-remote-desktop-virtual-keyboard.ts +61 -10
- package/src/web/stores/settings-store.ts +12 -0
- package/.rdtest2-cf.out +0 -0
- package/dist/web/assets/ai-settings-section-ERu1WiZc.js +0 -1
- package/dist/web/assets/api-client-WpZ2FDHg.js +0 -1
- package/dist/web/assets/api-settings-BgSEE6et.js +0 -1
- package/dist/web/assets/architecture-PBZL5I3N-CCalSKAt.js +0 -1
- package/dist/web/assets/chat-tab-BraiJsYG.js +0 -15
- package/dist/web/assets/chevron-right-De-Wz5Lz.js +0 -1
- package/dist/web/assets/circle-BCy0AUCo.js +0 -1
- package/dist/web/assets/clock-C1CQUQPZ.js +0 -1
- package/dist/web/assets/code-DJgYrFzm.js +0 -1
- package/dist/web/assets/code-editor-lhmLNhXu.js +0 -10
- package/dist/web/assets/explorer-body-BxbSttfl.js +0 -2
- package/dist/web/assets/explorer-window-content-DUqQCC7A.js +0 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-DAUrJCqi.js +0 -1
- package/dist/web/assets/index-CtJbMNNI.css +0 -2
- package/dist/web/assets/index-H_gScEOk.js +0 -52
- package/dist/web/assets/info-3K5VOQVL-Cx1ZfJbp.js +0 -1
- package/dist/web/assets/keybindings-store-BqctreaI.js +0 -1
- package/dist/web/assets/loader-circle-DouKgIXy.js +0 -1
- package/dist/web/assets/markdown-renderer-BwOkiZC1.js +0 -1
- package/dist/web/assets/markdown-renderer-oJ9jPdQ2.js +0 -3
- package/dist/web/assets/mobile-explorer-sheet-D1nM0Ik1.js +0 -1
- package/dist/web/assets/notification-store-n-XEQ5pH.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-Bqwiy7dz.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-BXSJ2God.js +0 -1
- package/dist/web/assets/play-CJlWpVMw.js +0 -1
- package/dist/web/assets/portal-container-context-DSGdlXrJ.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-D6XrM7HH.js +0 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-CTiipn4k.js +0 -2
- package/dist/web/assets/remote-desktop-mobile-view-Cf5B0dKo.js +0 -1
- package/dist/web/assets/remote-desktop-stats-overlay-vhJBIW7s.js +0 -1
- package/dist/web/assets/remote-desktop-window-content-wCJUfI6G.js +0 -1
- package/dist/web/assets/settings-store-BpcY5aYE.js +0 -2
- package/dist/web/assets/settings-tab-BVqRO01j.js +0 -1
- package/dist/web/assets/settings-tab-FH581A_i.js +0 -3
- package/dist/web/assets/system-monitor-body-BYUfyF8f.js +0 -2
- package/dist/web/assets/system-monitor-tab-CKGXB8lH.js +0 -1
- package/dist/web/assets/system-monitor-window-content-CiJ2yIsr.js +0 -1
- package/dist/web/assets/team-member-sheet-Bnygu7Xw.js +0 -2
- package/dist/web/assets/treemap-KZPCXAKY-BobWhcHN.js +0 -1
- package/dist/web/assets/use-monaco-theme-DQY1ZSaf.js +0 -1
- package/dist/web/assets/use-open-team-member-C5LQ_TCM.js +0 -1
- package/dist/web/assets/vendor-markdown-Ls5AcU91.js +0 -291
- package/dist/web/assets/x-CeN0Qybc.js +0 -1
- package/packages/vscode-compat/node_modules/.bin/tsc.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsc.exe +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.exe +0 -0
- /package/dist/web/assets/{abap-CKgBNk5K.js → abap-Cjj2olMr.js} +0 -0
- /package/dist/web/assets/{actionscript-3-oARhAY6c.js → actionscript-3-DCkW7kWC.js} +0 -0
- /package/dist/web/assets/{ada-2vi8ASy3.js → ada-AEWvZXuX.js} +0 -0
- /package/dist/web/assets/{andromeeda-B3vMjPKd.js → andromeeda-D7cSpME6.js} +0 -0
- /package/dist/web/assets/{apache-DnIEr338.js → apache-DjvX0RSe.js} +0 -0
- /package/dist/web/assets/{apex-B7Qs5AY5.js → apex-70xIZ0pH.js} +0 -0
- /package/dist/web/assets/{applescript-EbQNUCWb.js → applescript-C3qKqxmA.js} +0 -0
- /package/dist/web/assets/{apply-theme-Dd_cqGa-.js → apply-theme-DJ794zSQ.js} +0 -0
- /package/dist/web/assets/{ara-CtHdhFRw.js → ara-iGt2zixk.js} +0 -0
- /package/dist/web/assets/{asciidoc-BH6qin_O.js → asciidoc-Bs2t-06W.js} +0 -0
- /package/dist/web/assets/{asm-D1XU1ACk.js → asm-B-T0eqhE.js} +0 -0
- /package/dist/web/assets/{aurora-x-BkhcxkuS.js → aurora-x-D3h_9M3E.js} +0 -0
- /package/dist/web/assets/{awk-DijzB6o7.js → awk-CZwfwpPi.js} +0 -0
- /package/dist/web/assets/{ayu-dark-tysG77WC.js → ayu-dark-DulkglEA.js} +0 -0
- /package/dist/web/assets/{ayu-light-Dg0WMETC.js → ayu-light-DyNQiRpn.js} +0 -0
- /package/dist/web/assets/{ayu-mirage--RsJCjC4.js → ayu-mirage-CcEt4xkI.js} +0 -0
- /package/dist/web/assets/{ballerina-DT_5-l82.js → ballerina-OhQPjyHS.js} +0 -0
- /package/dist/web/assets/{bat-BRpDlkv0.js → bat-DqKcJTUn.js} +0 -0
- /package/dist/web/assets/{beancount--8Df-WGG.js → beancount-BdXlMi8T.js} +0 -0
- /package/dist/web/assets/{berry-Bc9fo35J.js → berry-DvgY6BkY.js} +0 -0
- /package/dist/web/assets/{bibtex-CwyBpp9X.js → bibtex-BSRJq0yM.js} +0 -0
- /package/dist/web/assets/{bicep-DiyH2Bs7.js → bicep-DpAdumKt.js} +0 -0
- /package/dist/web/assets/{bird2-CHgK4a2A.js → bird2-rlbtp8di.js} +0 -0
- /package/dist/web/assets/{c-BM1qL6-f.js → c-AjOLBXIs.js} +0 -0
- /package/dist/web/assets/{c3-D2oOjrP7.js → c3-DqIXz4Ia.js} +0 -0
- /package/dist/web/assets/{cadence-nS45wqF6.js → cadence-DAJtUpOE.js} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-DwP9KU8o.js → can-open-in-ppm-CdCK2c2a.js} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-BpnJHiCj.js → catppuccin-frappe-DUPoeZfb.js} +0 -0
- /package/dist/web/assets/{catppuccin-latte-Bb95Wj3h.js → catppuccin-latte-CK3U68Ql.js} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-Btx8c17W.js → catppuccin-macchiato-BzteLnIX.js} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-B4DZOUGI.js → catppuccin-mocha-ozLd0aBR.js} +0 -0
- /package/dist/web/assets/{clarity-1ps69jU6.js → clarity-6KqEoBfz.js} +0 -0
- /package/dist/web/assets/{clipboard-CrHX8AYw.js → clipboard-B-gwJ8DF.js} +0 -0
- /package/dist/web/assets/{clojure-BklC0hKV.js → clojure-B_uBL5C7.js} +0 -0
- /package/dist/web/assets/{cmake-B573LYAQ.js → cmake-B3nxBNmj.js} +0 -0
- /package/dist/web/assets/{codeowners-BoYeX89M.js → codeowners-DkS-51at.js} +0 -0
- /package/dist/web/assets/{codeql-7Dhf5Udk.js → codeql-rpr1z_mR.js} +0 -0
- /package/dist/web/assets/{common-lisp-m1nxlthv.js → common-lisp-BfNbv_W6.js} +0 -0
- /package/dist/web/assets/{coq-DNhGmd4a.js → coq-EAW-1nw0.js} +0 -0
- /package/dist/web/assets/{csharp-P-nAurtS.js → csharp-BE3Gn5bq.js} +0 -0
- /package/dist/web/assets/{css-LYbSeh3-.js → css-Cr27CfPY.js} +0 -0
- /package/dist/web/assets/{csv-DHZZZm7X.js → csv-B5VtaPtH.js} +0 -0
- /package/dist/web/assets/{csv-parser-CY9Ggtg5.js → csv-parser-B2v8MoUy.js} +0 -0
- /package/dist/web/assets/{cue-D8yLUOle.js → cue-jm6lYNrx.js} +0 -0
- /package/dist/web/assets/{cypher-9cbW8RYA.js → cypher-DXkvK-pn.js} +0 -0
- /package/dist/web/assets/{d-ZihzhxqI.js → d-CgG1_yzd.js} +0 -0
- /package/dist/web/assets/{dark-plus-C8xIA1u3.js → dark-plus-CALzcIVB.js} +0 -0
- /package/dist/web/assets/{dart-CBm6jKc7.js → dart-BEVoLlWg.js} +0 -0
- /package/dist/web/assets/{dax-B3cx6YeV.js → dax-H0BW3Q_P.js} +0 -0
- /package/dist/web/assets/{desktop-C03SpXth.js → desktop-BtYq1l_0.js} +0 -0
- /package/dist/web/assets/{diff-D8LnnvFY.js → diff-CnBYdfTg.js} +0 -0
- /package/dist/web/assets/{dist-C4XoS_zo.js → dist-CJJKpgR7.js} +0 -0
- /package/dist/web/assets/{docker-DwFiOQWW.js → docker-COBitpld.js} +0 -0
- /package/dist/web/assets/{dotenv-CVJ_vFSQ.js → dotenv-CG0x1m7c.js} +0 -0
- /package/dist/web/assets/{dracula-DMw8UACY.js → dracula-CLCi47X-.js} +0 -0
- /package/dist/web/assets/{dracula-soft-BnB3nDrA.js → dracula-soft-BMv5cCAV.js} +0 -0
- /package/dist/web/assets/{dream-maker-2riXUQXo.js → dream-maker-1Bd4OSww.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-BQdYaiB5.js → emacs-lisp-B-2zKLn-.js} +0 -0
- /package/dist/web/assets/{everforest-dark-C2FPIWdj.js → everforest-dark-BGVynCbV.js} +0 -0
- /package/dist/web/assets/{everforest-light-DMOWf9sD.js → everforest-light--rn3R7Cm.js} +0 -0
- /package/dist/web/assets/{fennel-JtSHp0vW.js → fennel-SWg9Us_u.js} +0 -0
- /package/dist/web/assets/{fish-CflDcRfe.js → fish-B04oqgKk.js} +0 -0
- /package/dist/web/assets/{fluent-D4eu6Vac.js → fluent-BefzAGMN.js} +0 -0
- /package/dist/web/assets/{format-bytes-DR3228bu.js → format-bytes-gQw5wzqa.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-hO4RuC9Z.js → fortran-free-form-alw7jMxb.js} +0 -0
- /package/dist/web/assets/{gdscript-D7n3a8VM.js → gdscript-BAyhvjCx.js} +0 -0
- /package/dist/web/assets/{gdshader-BhUmrlzG.js → gdshader-Crl09X-B.js} +0 -0
- /package/dist/web/assets/{genie-VbyftqBp.js → genie-BSIGRHu7.js} +0 -0
- /package/dist/web/assets/{gherkin-BZzhvUUb.js → gherkin-DJhSnSWH.js} +0 -0
- /package/dist/web/assets/{github-dark-default-CMNi7dQX.js → github-dark-default-FVtXjcm8.js} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-BRf_-LlY.js → github-dark-dimmed-CzrUPgSb.js} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-xanKBsRI.js → github-dark-high-contrast-1s9rF5EB.js} +0 -0
- /package/dist/web/assets/{github-dark-C4q41woW.js → github-dark-r8C6qwug.js} +0 -0
- /package/dist/web/assets/{github-light-BEQeNQCs.js → github-light-BvIWCkl7.js} +0 -0
- /package/dist/web/assets/{github-light-default-ceQrtdXg.js → github-light-default-CVdhzrxV.js} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-doKbXzgW.js → github-light-high-contrast-CBAf6hjF.js} +0 -0
- /package/dist/web/assets/{gleam-Chzqf4fT.js → gleam-DvL1q7aa.js} +0 -0
- /package/dist/web/assets/{gn-CCN_-6fp.js → gn-BG5NvwAf.js} +0 -0
- /package/dist/web/assets/{gnuplot-CIplgwwP.js → gnuplot-BARnM-zG.js} +0 -0
- /package/dist/web/assets/{go-Cjj-9dRs.js → go-DXvjjq4q.js} +0 -0
- /package/dist/web/assets/{groovy-PqD4K7X1.js → groovy-CRylSKhr.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-BAbpUSF-.js → gruvbox-dark-hard-BVPjnqm7.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-BWcWXDBB.js → gruvbox-dark-medium-U_PDgq0a.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-Dkx1okkk.js → gruvbox-dark-soft-CkzNtpbr.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-WVsDK0MM.js → gruvbox-light-hard-DfMmR2G8.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-tiR9t7gr.js → gruvbox-light-medium-BGCak-dd.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-HzHohaX6.js → gruvbox-light-soft-DnpM3fkN.js} +0 -0
- /package/dist/web/assets/{haskell-B1eIZfr6.js → haskell-DXgGIDD_.js} +0 -0
- /package/dist/web/assets/{haxe-BcDdi5xr.js → haxe-B7qlTpRz.js} +0 -0
- /package/dist/web/assets/{hcl-Dq-HKVni.js → hcl-ADWfVe_Q.js} +0 -0
- /package/dist/web/assets/{hjson-Dr9D9WVU.js → hjson-BaM9gLbq.js} +0 -0
- /package/dist/web/assets/{hlsl-Bo8t2FuZ.js → hlsl-iqaRA4MG.js} +0 -0
- /package/dist/web/assets/{horizon-DWG5IXc-.js → horizon-BPpTnhB9.js} +0 -0
- /package/dist/web/assets/{horizon-bright-DFr9wTTx.js → horizon-bright-yBLg3QbE.js} +0 -0
- /package/dist/web/assets/{houston-NAVNhkup.js → houston-eFOp0ySL.js} +0 -0
- /package/dist/web/assets/{hy-DnyvUk3B.js → hy-BALeMn3i.js} +0 -0
- /package/dist/web/assets/{image-gallery-DoFdNF9i.js → image-gallery-Bqb-wjNw.js} +0 -0
- /package/dist/web/assets/{imba-CPbR5W_A.js → imba-CdGUm_GD.js} +0 -0
- /package/dist/web/assets/{ini-lc8_Lt0y.js → ini-DG7imsqe.js} +0 -0
- /package/dist/web/assets/{java-B0KCo2vK.js → java-D5GTT474.js} +0 -0
- /package/dist/web/assets/{javascript-YqEbNRpd.js → javascript-V7WwJvRm.js} +0 -0
- /package/dist/web/assets/{json-Co0WtOlh.js → json-B9FhwAgR.js} +0 -0
- /package/dist/web/assets/{json5-2Jhb0QUN.js → json5--Abk7MUy.js} +0 -0
- /package/dist/web/assets/{jsonc-e72F11nU.js → jsonc-C8jb-Z6x.js} +0 -0
- /package/dist/web/assets/{jsonl-Bff8IPye.js → jsonl-CaJNxfkm.js} +0 -0
- /package/dist/web/assets/{jsonnet-DRCkb-_H.js → jsonnet-CPrKMSCU.js} +0 -0
- /package/dist/web/assets/{jssm-C6UiwVEm.js → jssm-DEu-9_uo.js} +0 -0
- /package/dist/web/assets/{jsx-u1aZlnfA.js → jsx-MfAsCWDW.js} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-De-RQFV3.js → kanagawa-dragon-DnbcAduF.js} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-K8elE4QU.js → kanagawa-lotus-yxsY3ew8.js} +0 -0
- /package/dist/web/assets/{kanagawa-wave-BrStl_zx.js → kanagawa-wave-C2RyvZaM.js} +0 -0
- /package/dist/web/assets/{kdl-CLCfMeZy.js → kdl-CvssmvcU.js} +0 -0
- /package/dist/web/assets/{kotlin-DEEC3pNh.js → kotlin-jufO49mU.js} +0 -0
- /package/dist/web/assets/{kusto-DTqRhCup.js → kusto-BAFnylR7.js} +0 -0
- /package/dist/web/assets/{laserwave-DsgpUSbA.js → laserwave-BgxFC4Ge.js} +0 -0
- /package/dist/web/assets/{lean-Dl9MI0Y3.js → lean-Bgt24V1D.js} +0 -0
- /package/dist/web/assets/{less-Bg21rao6.js → less-Bk_UaqsM.js} +0 -0
- /package/dist/web/assets/{libesm-CVkncAQz.js → libesm-dcbw4_18.js} +0 -0
- /package/dist/web/assets/{light-plus-DGNbbK1V.js → light-plus-nMxFfInN.js} +0 -0
- /package/dist/web/assets/{llvm-91_ZX3p-.js → llvm-3_PASDOO.js} +0 -0
- /package/dist/web/assets/{log-DSXzbq8u.js → log-CKm0CxB1.js} +0 -0
- /package/dist/web/assets/{logo-BQRNd4tc.js → logo-DFP1_5U6.js} +0 -0
- /package/dist/web/assets/{luau-BE-TMpiZ.js → luau-BcZnoyh3.js} +0 -0
- /package/dist/web/assets/{make-ePYGKTpc.js → make-CpNSwgwT.js} +0 -0
- /package/dist/web/assets/{markdown-Cst3wgMW.js → markdown-DhU3Djpv.js} +0 -0
- /package/dist/web/assets/{material-theme-9XyvnNLb.js → material-theme-DD5L3OqF.js} +0 -0
- /package/dist/web/assets/{material-theme-darker-H1VN4MTS.js → material-theme-darker-CG2_tD3R.js} +0 -0
- /package/dist/web/assets/{material-theme-lighter-DAreBbuF.js → material-theme-lighter-CzNkUc9Y.js} +0 -0
- /package/dist/web/assets/{material-theme-ocean-BpTR-3II.js → material-theme-ocean-BtLiAaF_.js} +0 -0
- /package/dist/web/assets/{material-theme-palenight-DUNzX711.js → material-theme-palenight-Brvjz035.js} +0 -0
- /package/dist/web/assets/{matlab-BpYNufBU.js → matlab-CCY0KtMD.js} +0 -0
- /package/dist/web/assets/{mdx-BYjfe1DK.js → mdx-CH6YY0aS.js} +0 -0
- /package/dist/web/assets/{mermaid-DPCcIW9B.js → mermaid-Bqh3gFI0.js} +0 -0
- /package/dist/web/assets/{min-dark-DnGOAGCo.js → min-dark-BUwfTzI6.js} +0 -0
- /package/dist/web/assets/{min-light-CwV-o31y.js → min-light-oLanXCOk.js} +0 -0
- /package/dist/web/assets/{mipsasm-DdeCPC97.js → mipsasm-CTh3hPWK.js} +0 -0
- /package/dist/web/assets/{mojo-BmxxZ3iM.js → mojo-DXdszZKa.js} +0 -0
- /package/dist/web/assets/{monokai-Cx6cQ-MA.js → monokai-TNE_tRxc.js} +0 -0
- /package/dist/web/assets/{moonbit-D2-Gj5vj.js → moonbit-jrk-Gx1X.js} +0 -0
- /package/dist/web/assets/{move-DSWGoQa8.js → move-DItn61bH.js} +0 -0
- /package/dist/web/assets/{narrat-D9TnZSSu.js → narrat-3kB4dkh0.js} +0 -0
- /package/dist/web/assets/{nextflow-groovy-BbL-8PwD.js → nextflow-groovy-CSKtwETr.js} +0 -0
- /package/dist/web/assets/{night-owl-CZitKm5d.js → night-owl-Dm91nSIq.js} +0 -0
- /package/dist/web/assets/{night-owl-light-DJVX1Pno.js → night-owl-light-riwrcPRg.js} +0 -0
- /package/dist/web/assets/{nix-R6hr3oln.js → nix-sLgl9zGF.js} +0 -0
- /package/dist/web/assets/{nord-ChGHya3l.js → nord-TWkJPI6M.js} +0 -0
- /package/dist/web/assets/{nushell-QQWB-GWx.js → nushell-CDZi4-Gf.js} +0 -0
- /package/dist/web/assets/{objective-c-C0pZ6y73.js → objective-c-DW9PboNp.js} +0 -0
- /package/dist/web/assets/{objective-cpp-BdzVM31a.js → objective-cpp-2XCCX6q1.js} +0 -0
- /package/dist/web/assets/{ocaml-D4KktNlS.js → ocaml-CxPdnjrh.js} +0 -0
- /package/dist/web/assets/{odin-Y-fypmGT.js → odin-BJjlKpkM.js} +0 -0
- /package/dist/web/assets/{one-dark-pro-BwecIxQL.js → one-dark-pro-K1KOmBZ7.js} +0 -0
- /package/dist/web/assets/{one-light-Cz7UVzLU.js → one-light-DQB-vUyZ.js} +0 -0
- /package/dist/web/assets/{openscad-DtRe3qYD.js → openscad-DCoLwn4j.js} +0 -0
- /package/dist/web/assets/{pascal-Ck6I1fGG.js → pascal-z2ktbbWp.js} +0 -0
- /package/dist/web/assets/{pkl-DdFK94VW.js → pkl-Dyq4-v6z.js} +0 -0
- /package/dist/web/assets/{plastic-BQSAzZwR.js → plastic-C4Rq5PnD.js} +0 -0
- /package/dist/web/assets/{plsql-DjXg_CP0.js → plsql-BCIjO63y.js} +0 -0
- /package/dist/web/assets/{po-Bw2SuM4r.js → po-_kXpd_0n.js} +0 -0
- /package/dist/web/assets/{poimandres-YMK6c5VN.js → poimandres-C9XggjB3.js} +0 -0
- /package/dist/web/assets/{polar-BMu17-O0.js → polar-DV_1L04z.js} +0 -0
- /package/dist/web/assets/{postcss-DWib10RZ.js → postcss-BuqS91mQ.js} +0 -0
- /package/dist/web/assets/{powerquery-Dht4CK0b.js → powerquery-DK13B2Dc.js} +0 -0
- /package/dist/web/assets/{powershell-DvrCg8ji.js → powershell-tkuhhtuP.js} +0 -0
- /package/dist/web/assets/{prisma-DbodYvCM.js → prisma-WNXfBtpr.js} +0 -0
- /package/dist/web/assets/{prolog-DZ-m6ysB.js → prolog-BzEdNKfO.js} +0 -0
- /package/dist/web/assets/{proto-HHpG3tGO.js → proto-B5meVsrA.js} +0 -0
- /package/dist/web/assets/{puppet-BljHe_75.js → puppet-C7h_p4r2.js} +0 -0
- /package/dist/web/assets/{purescript-DzCiFR0B.js → purescript-qH1KxAs6.js} +0 -0
- /package/dist/web/assets/{python-B5BQ27cC.js → python-DeTIYd5V.js} +0 -0
- /package/dist/web/assets/{qmldir-CYlcXrnn.js → qmldir-4Rm5AvD3.js} +0 -0
- /package/dist/web/assets/{qss-Ce7T_TEg.js → qss-YRbeNtr0.js} +0 -0
- /package/dist/web/assets/{r-Bku-2Jp_.js → r-DHwHK0Jh.js} +0 -0
- /package/dist/web/assets/{racket-DtfSL3WR.js → racket-gKn4SFLQ.js} +0 -0
- /package/dist/web/assets/{raku-CnDLsBJr.js → raku-DWTmAj3A.js} +0 -0
- /package/dist/web/assets/{red-vbqcE9b-.js → red-BFuHRZFS.js} +0 -0
- /package/dist/web/assets/{reg-DIDLT8-A.js → reg-DYoOF5tH.js} +0 -0
- /package/dist/web/assets/{regexp-CB4h-VPu.js → regexp-6rXQHD2-.js} +0 -0
- /package/dist/web/assets/{rel-CiQEnWXa.js → rel-Z_tTruCU.js} +0 -0
- /package/dist/web/assets/{resolve-theme-DPTQHAy1.js → resolve-theme-4fexHWl6.js} +0 -0
- /package/dist/web/assets/{riscv-R78iq5Rf.js → riscv-DfTfKuvU.js} +0 -0
- /package/dist/web/assets/{ron-DhYENxc4.js → ron-CsUtW8gQ.js} +0 -0
- /package/dist/web/assets/{rose-pine-5wBeyjfJ.js → rose-pine-Dng_vCo6.js} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-FpKtPCuH.js → rose-pine-dawn-Ds88Nezf.js} +0 -0
- /package/dist/web/assets/{rose-pine-moon-BwcIYc7C.js → rose-pine-moon-DWpzrqNz.js} +0 -0
- /package/dist/web/assets/{rosmsg-DWIGAYMl.js → rosmsg-h2sO84oD.js} +0 -0
- /package/dist/web/assets/{rust-DU_ofKgt.js → rust-Dx86yfCi.js} +0 -0
- /package/dist/web/assets/{sass-U9SUuYEy.js → sass-BwwVhdT9.js} +0 -0
- /package/dist/web/assets/{scala-op4gjA6j.js → scala-WJqNEN-w.js} +0 -0
- /package/dist/web/assets/{scheme-tEjkR8rL.js → scheme-uwj-t1Rp.js} +0 -0
- /package/dist/web/assets/{sdbl-C6SSRmZg.js → sdbl-BYy5hgEz.js} +0 -0
- /package/dist/web/assets/{shellscript-Bf2KiwQj.js → shellscript-DWTW_w2K.js} +0 -0
- /package/dist/web/assets/{slack-dark-oGgCey8r.js → slack-dark-BvhGq5vQ.js} +0 -0
- /package/dist/web/assets/{slack-ochin-CemlB8cE.js → slack-ochin-C9g0ZRFr.js} +0 -0
- /package/dist/web/assets/{smalltalk-CTE-6jrZ.js → smalltalk-ZEiZ6i7U.js} +0 -0
- /package/dist/web/assets/{snazzy-light-DoEIGnmz.js → snazzy-light-29OA24q5.js} +0 -0
- /package/dist/web/assets/{solarized-dark-CStiJyBg.js → solarized-dark-Bnq9IOn_.js} +0 -0
- /package/dist/web/assets/{solarized-light-CfuNycS9.js → solarized-light-CYdI7T5g.js} +0 -0
- /package/dist/web/assets/{solidity-DL6sO5rd.js → solidity-DcuIDB-_.js} +0 -0
- /package/dist/web/assets/{splunk-yK4ZUFBB.js → splunk-D5ONE91g.js} +0 -0
- /package/dist/web/assets/{sql-Lw03eoN8.js → sql-DIwJJDU-.js} +0 -0
- /package/dist/web/assets/{ssh-config-DeRp25TR.js → ssh-config-D8717tLI.js} +0 -0
- /package/dist/web/assets/{stylus-D8OMsPh-.js → stylus-Cm1lO4Y6.js} +0 -0
- /package/dist/web/assets/{swift-nsl9stPV.js → swift-X8oWpSeU.js} +0 -0
- /package/dist/web/assets/{synthwave-84-exAgsgpf.js → synthwave-84-DF-t1UKY.js} +0 -0
- /package/dist/web/assets/{system-verilog-DBWf00T6.js → system-verilog-JYyHFpPf.js} +0 -0
- /package/dist/web/assets/{systemd-nhu27Dw5.js → systemd-Da-5Ma_c.js} +0 -0
- /package/dist/web/assets/{talonscript-CNOEcGDc.js → talonscript-CXraVPho.js} +0 -0
- /package/dist/web/assets/{tasl-CjYZenSH.js → tasl-BCmWezH9.js} +0 -0
- /package/dist/web/assets/{tcl-BVA09RDz.js → tcl-BTufzfbf.js} +0 -0
- /package/dist/web/assets/{terraform-C5EloH1q.js → terraform-CtUA9c8W.js} +0 -0
- /package/dist/web/assets/{tokyo-night-D764DdhO.js → tokyo-night-BCThYXmz.js} +0 -0
- /package/dist/web/assets/{toml-CCDYblSB.js → toml-D5YlDr6Y.js} +0 -0
- /package/dist/web/assets/{tsv-BZ4sA05e.js → tsv-CBB-P_Sl.js} +0 -0
- /package/dist/web/assets/{tsx-DPLBzAt5.js → tsx-D5B4juDp.js} +0 -0
- /package/dist/web/assets/{turtle-CwGHCq40.js → turtle-D8PCeJ-v.js} +0 -0
- /package/dist/web/assets/{typescript-CUH0vBAl.js → typescript-CMPnTawp.js} +0 -0
- /package/dist/web/assets/{typespec-Bq31Vq4u.js → typespec-CHxldxIW.js} +0 -0
- /package/dist/web/assets/{typst-MD9BR9W5.js → typst-Q8CqX5OR.js} +0 -0
- /package/dist/web/assets/{utils-u2fbYPrY.js → utils-QHe_Q6UF.js} +0 -0
- /package/dist/web/assets/{v-DZV7IxIT.js → v-Bf2hKAMu.js} +0 -0
- /package/dist/web/assets/{vala-urd1zi9S.js → vala-Cbete-UE.js} +0 -0
- /package/dist/web/assets/{vb-DIZU3zbJ.js → vb-CA-xWAcX.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-DCj0zgSC.js → vendor-xterm-BHKF_Nsf.js} +0 -0
- /package/dist/web/assets/{verilog-Ndz_ciTA.js → verilog-B3wb8CfT.js} +0 -0
- /package/dist/web/assets/{vesper-C86M7LJp.js → vesper-D6r3VJq_.js} +0 -0
- /package/dist/web/assets/{vhdl-_klwDUjd.js → vhdl-C42S_797.js} +0 -0
- /package/dist/web/assets/{viml-DzRXWoQh.js → viml-BePrIAs8.js} +0 -0
- /package/dist/web/assets/{vitesse-black-TWZ20_3U.js → vitesse-black-DRqn61Ck.js} +0 -0
- /package/dist/web/assets/{vitesse-dark-Dl7R6fy9.js → vitesse-dark-39_8UE-w.js} +0 -0
- /package/dist/web/assets/{vitesse-light-Cs0Dt2_n.js → vitesse-light-B1jwrxDm.js} +0 -0
- /package/dist/web/assets/{vyper-qnCVj8ia.js → vyper-tDJv3imF.js} +0 -0
- /package/dist/web/assets/{wasm-Ckx9jBPe.js → wasm-ChtccNfv.js} +0 -0
- /package/dist/web/assets/{wasm-Dy-SJ3W9.js → wasm-DR7eskZH.js} +0 -0
- /package/dist/web/assets/{wenyan-DTEy2Lx-.js → wenyan-CezVfqN3.js} +0 -0
- /package/dist/web/assets/{wgsl-DC7n63Sy.js → wgsl-CwOcIiIG.js} +0 -0
- /package/dist/web/assets/{wikitext-1zFoZiW6.js → wikitext-C5coomYc.js} +0 -0
- /package/dist/web/assets/{wit-DtTfCRph.js → wit-C9yyX6-U.js} +0 -0
- /package/dist/web/assets/{wolfram-B2Bgu1KL.js → wolfram-BWi0rMAa.js} +0 -0
- /package/dist/web/assets/{yaml-B-Jxk0IQ.js → yaml-CGXhKUtT.js} +0 -0
- /package/dist/web/assets/{zenscript-BWRfvNER.js → zenscript-Do7WLoJh.js} +0 -0
- /package/dist/web/assets/{zig-CkwuvETm.js → zig-Cr80Qrru.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/data-grid-overlay-editor-
|
|
2
|
-
import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/data-grid-overlay-editor-B8WQkZDB.js","assets/rolldown-runtime-FhOqtrmT.js","assets/dist-C2_dKAa_.js","assets/vendor-markdown-CKTlmXbz.js","assets/vendor-ui-CXJtBULr.js","assets/data-grid-types-KpjaKAci.js","assets/number-overlay-editor-1c4sgZJt.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{b as n,y as r}from"./vendor-markdown-CKTlmXbz.js";import{ft as i}from"./vendor-ui-CXJtBULr.js";import{t as a}from"./createLucideIcon-ConhwJnb.js";import{t as o}from"./chevron-right-D7Pn5agw.js";import{n as s,t as c}from"./sparkles-BnuLH6Ck.js";import{t as l}from"./download-DAF7SXcf.js";import{t as u}from"./external-link-ojDHcQxQ.js";import{n as d,t as f}from"./plus-BxqD2FIZ.js";import{t as p}from"./loader-circle-DD65e9-7.js";import{t as m}from"./save-Dxq-Zepc.js";import{t as h}from"./text-wrap-CzMjB6GD.js";import{t as g}from"./trash-2-BjShZ7if.js";import{t as _}from"./x-Dzu9ecti.js";import{M as v,q as y}from"./vendor-mermaid-0Nt-ew76.js";import{t as b}from"./tab-store-DS3YlUwR.js";import{r as x}from"./clipboard-B-gwJ8DF.js";import{t as S}from"./shallow-BBJ_qoEF.js";import{An as C,Dn as w,Et as T,Qt as E,Ut as D,en as O,fn as k,jn as ee,s as te,tn as A}from"./index-BkHlMfPD.js";import{A as ne,B as j,C as re,D as ie,E as ae,F as M,G as N,H as P,I as F,L as oe,M as se,N as ce,O as I,P as L,R as le,S as ue,T as de,U as fe,V as pe,W as me,_ as he,a as ge,b as _e,c as R,d as ve,f as ye,g as be,h as z,i as xe,j as B,k as V,l as H,m as Se,n as U,o as W,p as Ce,r as we,s as Te,t as G,u as Ee,v as De,w as Oe,x as ke,y as Ae,z as je}from"./data-grid-types-KpjaKAci.js";import{t as Me}from"./dist-C2_dKAa_.js";import{t as Ne}from"./use-monaco-theme-DaxAk3gB.js";import{n as Pe}from"./csv-parser-B2v8MoUy.js";var Fe=a(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),Ie=`SELECT.FROM.WHERE.INSERT.INTO.VALUES.UPDATE.SET.DELETE.CREATE.TABLE.ALTER.DROP.INDEX.JOIN.LEFT.RIGHT.INNER.OUTER.ON.AND.OR.NOT.NULL.IS.IN.LIKE.BETWEEN.HAVING.LIMIT.OFFSET.AS.DISTINCT.COUNT.SUM.AVG.MIN.MAX.CASE.WHEN.THEN.ELSE.END.EXISTS.UNION.ALL.ASC.DESC.ORDER BY.GROUP BY.LEFT JOIN.RIGHT JOIN.INNER JOIN.CROSS JOIN.FULL OUTER JOIN.IS NULL.IS NOT NULL`.split(`.`),Le=[`COUNT`,`SUM`,`AVG`,`MIN`,`MAX`],Re=[`=`,`!=`,`<>`,`>`,`<`,`>=`,`<=`,`LIKE`,`ILIKE`,`IN`,`NOT IN`,`BETWEEN`,`IS NULL`,`IS NOT NULL`],ze=[`ASC`,`DESC`];function Be(e,t){let n=e.split(`
|
|
3
3
|
`),r=0;for(let e=0;e<n.length;e++){let i=n[e].trim();e<t-1&&i.endsWith(`;`)&&(r=e+1)}let i=n.length-1;for(let e=t-1;e<n.length;e++)if(n[e].trim().endsWith(`;`)){i=e;break}for(;r<=i;){let e=n[r].trim();if(e&&!e.startsWith(`--`))break;r++}return n.slice(r,i+1).join(`
|
|
4
4
|
`).trim()}var Ve=new Map,He=new Set(`WHERE.SET.ON.ORDER.GROUP.HAVING.LIMIT.LEFT.RIGHT.INNER.OUTER.CROSS.FULL.JOIN.AND.OR.VALUES.SELECT.FROM.INTO.UPDATE.DELETE.INSERT.CREATE.ALTER.DROP`.split(`.`));function Ue(e){let t=new Set,n=new Map,r=e.matchAll(/\b(?:FROM|JOIN|UPDATE|INTO)\s+"?(\w+)"?(?:\s+AS\s+(\w+)|\s+(?!(?:FROM|JOIN|UPDATE|INTO|WHERE|SET|ON|ORDER|GROUP|HAVING|LIMIT|LEFT|RIGHT|INNER|OUTER|CROSS|FULL|AND|OR|VALUES|SELECT)\b)(\w+))?/gi);for(let e of r){let r=e[1];t.add(r);let i=e[2]??e[3];i&&!He.has(i.toUpperCase())&&n.set(i.toLowerCase(),r)}return{tableRefs:t,aliasMap:n}}function We(e,t){return t.get(e.toLowerCase())??e}async function Ge(e,t){let n=e.toLowerCase(),r=Ve.get(n);if(!r)try{r=await t.getColumns(e),Ve.set(n,r)}catch{r=[]}return r}async function Ke(e,t,n,r){let i=[],a=new Set;for(let o of e){let e=await Ge(o,t);for(let t of e){if(a.has(t.name))continue;a.add(t.name);let e=/[A-Z]/.test(t.name);i.push({label:t.name,kind:n.languages.CompletionItemKind.Field,detail:`${o} · ${t.type}`,insertText:e?`"${t.name}"`:t.name,range:r,sortText:`0`+t.name})}}return i}function qe(e){if(/(\w+)\.\s*$/.test(e))return`dot`;let t=e.match(/\b(?:ORDER|GROUP)\s+BY\s+(?:[\w"]+\s+(?:ASC|DESC)\s*,\s*)*[\w"]+\s+(\w*)$/i);if(t){let e=t[1].toUpperCase();return e===`ASC`||e===`DESC`?`after-direction`:`sort-direction`}return/\b(?:ORDER|GROUP)\s+BY\s+.*(?:ASC|DESC)\s*,\s*\w*$/i.test(e)?`order-by-next-col`:/\b(?:WHERE|AND|OR)\s+[\w"]+\s+\S*$/i.test(e)?`operator`:/\b(?:FROM|JOIN|INTO|UPDATE|TABLE)\s+\w*$/i.test(e)?`table`:/\bINSERT\s+INTO\s+[\w"]+\s*\(\s*(?:[\w"]+\s*,\s*)*\w*$/i.test(e)?`insert-cols`:/\b(?:SELECT|WHERE|ORDER\s+BY|GROUP\s+BY|HAVING|SET|ON|AND|OR)\s+(?:[\w"]+\s*,\s*)*\w*$/i.test(e)?`columns`:/,\s*\w*$/.test(e)?`comma-cols`:`default`}function Je(e,t){return{triggerCharacters:[`.`,`,`],provideCompletionItems:async(n,r)=>{try{let i=n.getValueInRange({startLineNumber:1,startColumn:1,endLineNumber:r.lineNumber,endColumn:r.column}),a=n.getWordUntilPosition(r),o={startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:a.startColumn,endColumn:a.endColumn},{tableRefs:s,aliasMap:c}=Ue(Be(n.getValue(),r.lineNumber)),l=[],u=qe(i);if(u===`dot`){let n=i.match(/(\w+)\.\s*$/);if(n){let r=n[1],i=await Ge(We(r,c),t);for(let t of i){let n=/[A-Z]/.test(t.name);l.push({label:t.name,kind:e.languages.CompletionItemKind.Field,detail:t.type,insertText:n?`"${t.name}"`:t.name,range:o})}}return{suggestions:l}}if(u===`sort-direction`){for(let t of ze)l.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:o,sortText:`0`+t});return{suggestions:l}}if(u===`after-direction`)return{suggestions:[]};if(u===`order-by-next-col`)return l.push(...await Ke(s,t,e,o)),{suggestions:l};if(u===`operator`){for(let t of Re)l.push({label:t,kind:e.languages.CompletionItemKind.Operator,insertText:t,range:o,sortText:`0`+t});return{suggestions:l}}if(u===`table`){for(let n of t.tables)l.push({label:n.name,kind:e.languages.CompletionItemKind.Struct,detail:n.schema,insertText:n.name,range:o,sortText:`0`+n.name});return{suggestions:l}}if(u===`insert-cols`)return l.push(...await Ke(s,t,e,o)),{suggestions:l};if(u===`columns`){if(l.push(...await Ke(s,t,e,o)),/\bSELECT\s+/i.test(i)){l.push({label:`*`,kind:e.languages.CompletionItemKind.Value,insertText:`*`,range:o,sortText:`00*`});for(let t of Le)l.push({label:`${t}()`,kind:e.languages.CompletionItemKind.Function,insertText:`${t}($0)`,insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:o,sortText:`1`+t})}for(let t of Ie)l.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:o,sortText:`3`+t});return{suggestions:l}}if(u===`comma-cols`&&s.size>0)return l.push(...await Ke(s,t,e,o)),{suggestions:l};for(let t of Ie)l.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:o,sortText:`2`+t});for(let n of t.tables)l.push({label:n.name,kind:e.languages.CompletionItemKind.Struct,detail:n.schema,insertText:n.name,range:o,sortText:`1`+n.name});return{suggestions:l}}catch{return{suggestions:[]}}}}}function Ye(){Ve.clear()}var K=e(n(),1),Xe=e(i(),1),q=r();function Ze(e,t,n){let r=new Blob([t],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=e,a.click(),URL.revokeObjectURL(i)}function J({columns:e,rows:t,filename:n=`export`,exportAllUrl:r}){let[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(!1),c=(0,K.useRef)(null),u=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!i)return;let e=e=>{u.current&&!u.current.contains(e.target)&&c.current&&!c.current.contains(e.target)&&a(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[i]);let d=(0,K.useCallback)(()=>a(e=>!e),[]),f=()=>{let r=Pe(e,t.map(t=>e.map(e=>String(t[e]??``))));Ze(`${n}.csv`,r,`text/csv`),a(!1)},p=()=>{let e=JSON.stringify(t,null,2);Ze(`${n}.json`,e,`application/json`),a(!1)},m=async()=>{let n=e.join(` `),r=t.map(t=>e.map(e=>String(t[e]??``)).join(` `)).join(`
|
|
5
5
|
`);await x(n+`
|
|
@@ -128,11 +128,11 @@ import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{S as n,x as r}from".
|
|
|
128
128
|
`?(r.push(e.slice(i,o)),i=o+1,s===`
|
|
129
129
|
`&&(n.push(r),r=[])):s===`"`&&(a=t.inString);break;case t.inString:s===`"`&&(a=t.inStringPostQuote);break;case t.inStringPostQuote:s===`"`?a=t.inString:s===` `||s===`
|
|
130
130
|
`?(r.push(jo(e.slice(i,o))),i=o+1,s===`
|
|
131
|
-
`&&(n.push(r),r=[]),a=t.None):a=t.None;break}o++}return i<e.length&&r.push(jo(e.slice(i,e.length))),n.push(r),n.map(e=>e.map(e=>({rawValue:e,formatted:e,format:`string`})))}function No(e,t,n){let r=Oo(e,t),i=e=>{window.navigator.clipboard?.writeText(e)},a=(e,t)=>window.navigator.clipboard?.write===void 0?!1:(window.navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([e],{type:`text/plain`}),"text/html":new Blob([t],{type:`text/html`})})]),!0);window.navigator.clipboard?.write!==void 0||n?.clipboardData!==void 0?((e,t)=>{try{if(n===void 0||n.clipboardData===null)throw Error(`No clipboard data`);n?.clipboardData?.setData(`text/plain`,e),n?.clipboardData?.setData(`text/html`,t)}catch{a(e,t)||i(e)}})(r.textPlain,r.textHtml):i(r.textPlain),n?.preventDefault()}function Po(e){return e!==!0}function Fo(e){return typeof e==`string`?e:`${e}px`}var Io=()=>e=>e.innerWidth,Lo=()=>e=>e.innerHeight,Ro=Me(`div`)({name:`Wrapper`,class:`gdg-wmyidgi`,propsAsIs:!1,vars:{"wmyidgi-0":[Io()],"wmyidgi-1":[Lo()]}}),zo=e=>{let{inWidth:t,inHeight:n,children:r,...i}=e;return K.createElement(Ro,{innerHeight:Fo(n),innerWidth:Fo(t),...i},r)},Bo=2,Vo=1300;function Ho(e,t,n){let r=K.useRef(0),[i,a]=e??[0,0];K.useEffect(()=>{if(i===0&&a===0){r.current=0;return}let e=!1,o=0,s=c=>{if(!e){if(o===0)o=c;else{let e=c-o;r.current=Math.min(1,r.current+e/Vo);let s=r.current**1.618*e*Bo;t.current?.scrollBy(i*s,a*s),o=c,n?.()}window.requestAnimationFrame(s)}};return window.requestAnimationFrame(s),()=>{e=!0}},[t,i,a,n])}function Uo({rowHeight:e,headerHeight:t,groupHeaderHeight:n,theme:r,overscrollX:i,overscrollY:a,scaleToRem:o,remSize:s}){let[c,l,u,d,f,p]=K.useMemo(()=>{if(!o||s===16)return[e,t,n,r,i,a];let c=s/16,l=e,u=je();return[typeof l==`number`?l*c:e=>Math.ceil(l(e)*c),Math.ceil(t*c),Math.ceil(n*c),{...r,headerIconSize:(r?.headerIconSize??u.headerIconSize)*c,cellHorizontalPadding:(r?.cellHorizontalPadding??u.cellHorizontalPadding)*c,cellVerticalPadding:(r?.cellVerticalPadding??u.cellVerticalPadding)*c},Math.ceil((i??0)*c),Math.ceil((a??0)*c)]},[n,t,i,a,s,e,o,r]);return{rowHeight:c,headerHeight:l,groupHeaderHeight:u,theme:d,overscrollX:f,overscrollY:p}}var Wo={downFill:!1,rightFill:!1,clear:!0,closeOverlay:!0,acceptOverlayDown:!0,acceptOverlayUp:!0,acceptOverlayLeft:!0,acceptOverlayRight:!0,copy:!0,paste:!0,cut:!0,search:!1,delete:!0,activateCell:!0,scrollToSelectedCell:!0,goToFirstCell:!0,goToFirstColumn:!0,goToFirstRow:!0,goToLastCell:!0,goToLastColumn:!0,goToLastRow:!0,goToNextPage:!0,goToPreviousPage:!0,selectToFirstCell:!0,selectToFirstColumn:!0,selectToFirstRow:!0,selectToLastCell:!0,selectToLastColumn:!0,selectToLastRow:!0,selectAll:!0,selectRow:!0,selectColumn:!0,goUpCell:!0,goRightCell:!0,goDownCell:!0,goLeftCell:!0,goUpCellRetainSelection:!0,goRightCellRetainSelection:!0,goDownCellRetainSelection:!0,goLeftCellRetainSelection:!0,selectGrowUp:!0,selectGrowRight:!0,selectGrowDown:!0,selectGrowLeft:!0};function $(e,t){return e===!0?t:e===!1?``:e}function Go(e){let t=Ba.value;return{activateCell:$(e.activateCell,` |Enter|shift+Enter`),clear:$(e.clear,`any+Escape`),closeOverlay:$(e.closeOverlay,`any+Escape`),acceptOverlayDown:$(e.acceptOverlayDown,`Enter`),acceptOverlayUp:$(e.acceptOverlayUp,`shift+Enter`),acceptOverlayLeft:$(e.acceptOverlayLeft,`shift+Tab`),acceptOverlayRight:$(e.acceptOverlayRight,`Tab`),copy:e.copy,cut:e.cut,delete:$(e.delete,t?`Backspace|Delete`:`Delete`),downFill:$(e.downFill,`primary+_68`),scrollToSelectedCell:$(e.scrollToSelectedCell,`primary+Enter`),goDownCell:$(e.goDownCell,`ArrowDown`),goDownCellRetainSelection:$(e.goDownCellRetainSelection,`alt+ArrowDown`),goLeftCell:$(e.goLeftCell,`ArrowLeft|shift+Tab`),goLeftCellRetainSelection:$(e.goLeftCellRetainSelection,`alt+ArrowLeft`),goRightCell:$(e.goRightCell,`ArrowRight|Tab`),goRightCellRetainSelection:$(e.goRightCellRetainSelection,`alt+ArrowRight`),goUpCell:$(e.goUpCell,`ArrowUp`),goUpCellRetainSelection:$(e.goUpCellRetainSelection,`alt+ArrowUp`),goToFirstCell:$(e.goToFirstCell,`primary+Home`),goToFirstColumn:$(e.goToFirstColumn,`Home|primary+ArrowLeft`),goToFirstRow:$(e.goToFirstRow,`primary+ArrowUp`),goToLastCell:$(e.goToLastCell,`primary+End`),goToLastColumn:$(e.goToLastColumn,`End|primary+ArrowRight`),goToLastRow:$(e.goToLastRow,`primary+ArrowDown`),goToNextPage:$(e.goToNextPage,`PageDown`),goToPreviousPage:$(e.goToPreviousPage,`PageUp`),paste:e.paste,rightFill:$(e.rightFill,`primary+_82`),search:$(e.search,`primary+f`),selectAll:$(e.selectAll,`primary+a`),selectColumn:$(e.selectColumn,`ctrl+ `),selectGrowDown:$(e.selectGrowDown,`shift+ArrowDown`),selectGrowLeft:$(e.selectGrowLeft,`shift+ArrowLeft`),selectGrowRight:$(e.selectGrowRight,`shift+ArrowRight`),selectGrowUp:$(e.selectGrowUp,`shift+ArrowUp`),selectRow:$(e.selectRow,`shift+ `),selectToFirstCell:$(e.selectToFirstCell,`primary+shift+Home`),selectToFirstColumn:$(e.selectToFirstColumn,`primary+shift+ArrowLeft`),selectToFirstRow:$(e.selectToFirstRow,`primary+shift+ArrowUp`),selectToLastCell:$(e.selectToLastCell,`primary+shift+End`),selectToLastColumn:$(e.selectToLastColumn,`primary+shift+ArrowRight`),selectToLastRow:$(e.selectToLastRow,`primary+shift+ArrowDown`)}}function Ko(e){let t=Bt(e);return K.useMemo(()=>{if(t===void 0)return Go(Wo);let e={...t,goToNextPage:t?.goToNextPage??t?.pageDown??Wo.goToNextPage,goToPreviousPage:t?.goToPreviousPage??t?.pageUp??Wo.goToPreviousPage,goToFirstCell:t?.goToFirstCell??t?.first??Wo.goToFirstCell,goToLastCell:t?.goToLastCell??t?.last??Wo.goToLastCell,selectToFirstCell:t?.selectToFirstCell??t?.first??Wo.selectToFirstCell,selectToLastCell:t?.selectToLastCell??t?.last??Wo.selectToLastCell};return Go({...Wo,...e})},[t])}var qo=e(gr(),1),Jo=e(br(),1),Yo=K.lazy(async()=>await y(()=>import(`./data-grid-overlay-editor-DeGkPYtA.js`),__vite__mapDeps([0,1,2,3,4,5]))),Xo=0;function Zo(e){return(0,qo.default)((0,Jo.default)((0,Jo.default)(e).filter(e=>e.span!==void 0).map(e=>(0,qa.default)((e.span?.[0]??0)+1,(e.span?.[1]??0)+1))))}function Qo(e,t){return e===void 0||t===0||e.columns.length===0&&e.current===void 0?e:{current:e.current===void 0?void 0:{cell:[e.current.cell[0]+t,e.current.cell[1]],range:{...e.current.range,x:e.current.range.x+t},rangeStack:e.current.rangeStack.map(e=>({...e,x:e.x+t}))},rows:e.rows,columns:e.columns.offset(t)}}var $o={kind:U.Loading,allowOverlay:!1},es={columns:G.empty(),rows:G.empty(),current:void 0},ts=K.forwardRef((e,t)=>{let[n,r]=K.useState(es),[i,a]=K.useState(),o=K.useRef(null),s=K.useRef(null),[c,l]=K.useState(),u=K.useRef(null),d=K.useRef(),f=typeof window>`u`?null:window,{imageEditorOverride:p,getRowThemeOverride:m,markdownDivCreateNode:h,width:g,height:_,columns:v,rows:y,getCellContent:b,onCellClicked:x,onCellActivated:S,onFillPattern:C,onFinishedEditing:w,coercePasteValue:T,drawHeader:E,drawCell:D,editorBloom:O,onHeaderClicked:k,onColumnProposeMove:ee,spanRangeBehavior:te=`default`,onGroupHeaderClicked:A,onCellContextMenu:ne,className:re,onHeaderContextMenu:ie,getCellsForSelection:ae,onGroupHeaderContextMenu:N,onGroupHeaderRenamed:P,onCellEdited:F,onCellsEdited:se,onSearchResultsChanged:ce,searchResults:I,onSearchValueChange:ue,searchValue:de,onKeyDown:fe,onKeyUp:he,keybindings:ge,editOnType:_e=!0,onRowAppended:ve,onColumnMoved:ye,validateCell:be,highlightRegions:z,rangeSelect:B=`rect`,columnSelect:V=`multi`,rowSelect:Se=`multi`,rangeSelectionBlending:Ce=`exclusive`,columnSelectionBlending:we=`exclusive`,rowSelectionBlending:Ee=`exclusive`,onDelete:De,onDragStart:Oe,onMouseMove:ke,onPaste:Ae,copyHeaders:Me=!1,freezeColumns:Ne=0,cellActivationBehavior:Pe=`second-click`,rowSelectionMode:Fe=`auto`,onHeaderMenuClick:Ie,getGroupDetails:Le,onSearchClose:Re,onItemHovered:ze,onSelectionCleared:Be,showSearch:Ve,onVisibleRegionChanged:He,gridSelection:Ue,onGridSelectionChange:We,minColumnWidth:Ge=50,maxColumnWidth:Ke=500,maxColumnAutoWidth:qe,provideEditor:Je,trailingRowOptions:Ye,freezeTrailingRows:Xe=0,allowedFillDirections:q=`orthogonal`,scrollOffsetX:Ze,scrollOffsetY:J,verticalBorder:Qe,onDragOverCell:$e,onDrop:et,onColumnResize:tt,onColumnResizeEnd:nt,onColumnResizeStart:rt,customRenderers:it,fillHandle:at,drawFocusRing:ot=!0,experimental:st,fixedShadowX:ct,fixedShadowY:lt,headerIcons:ut,imageWindowLoader:dt,initialSize:ft,isDraggable:pt,onDragLeave:mt,onRowMoved:ht,overscrollX:gt,overscrollY:_t,preventDiagonalScrolling:vt,rightElement:yt,rightElementProps:bt,trapFocus:wt=!1,smoothScrollX:Tt,smoothScrollY:Et,scaleToRem:Dt=!1,rowHeight:Ot=34,headerHeight:kt=36,groupHeaderHeight:At=kt,theme:jt,isOutsideClick:Mt,renderers:Nt}=e,Pt=typeof e.rowMarkers==`string`?void 0:e.rowMarkers,Ft=Pt?.kind??e.rowMarkers??`none`,Lt=Pt?.width??e.rowMarkerWidth,zt=Pt?.startIndex??e.rowMarkerStartIndex??1,Bt=Pt?.theme??e.rowMarkerTheme,Vt=Pt?.checkboxStyle??`square`,Ht=Math.max(Ge,20),Ut=Math.max(Ke,Ht),Wt=Math.max(qe??Ut,Ht),Gt=K.useMemo(()=>typeof window>`u`?{fontSize:`16px`}:window.getComputedStyle(document.documentElement),[]),{rowHeight:Kt,headerHeight:qt,groupHeaderHeight:Jt,theme:Yt,overscrollX:Xt,overscrollY:Zt}=Uo({groupHeaderHeight:At,headerHeight:kt,overscrollX:gt,overscrollY:_t,remSize:K.useMemo(()=>Number.parseFloat(Gt.fontSize),[Gt]),rowHeight:Ot,scaleToRem:Dt,theme:jt}),Qt=Ko(ge),$t=Lt??(y>1e4?48:y>1e3?44:y>100?36:32),en=Ft!==`none`,Y=en?1:0,tn=ve!==void 0,nn=Ye?.sticky===!0,[rn,an]=K.useState(!1),cn=Ve??rn,dn=K.useCallback(()=>{Re===void 0?an(!1):Re()},[Re]),X=K.useMemo(()=>Ue===void 0?void 0:Qo(Ue,Y),[Ue,Y])??n,fn=K.useRef();fn.current===void 0&&(fn.current=new AbortController),K.useEffect(()=>()=>fn?.current.abort(),[]);let[pn,mn]=yo(ae,b,Y,fn.current,y),gn=K.useCallback((e,t,n)=>{if(be===void 0)return!0;let r=[e[0]-Y,e[1]];return be?.(r,t,n)},[Y,be]),_n=K.useRef(Ue),vn=K.useCallback((e,t)=>{t&&(e=Ao(e,pn,Y,te,fn.current)),We===void 0?r(e):(_n.current=Qo(e,-Y),We(_n.current))},[We,pn,Y,te]),yn=Ct(tt,K.useCallback((e,t,n,r)=>{tt?.(v[n-Y],t,n-Y,r)},[tt,Y,v])),bn=Ct(nt,K.useCallback((e,t,n,r)=>{nt?.(v[n-Y],t,n-Y,r)},[nt,Y,v])),xn=Ct(rt,K.useCallback((e,t,n,r)=>{rt?.(v[n-Y],t,n-Y,r)},[rt,Y,v])),Sn=Ct(E,K.useCallback((e,t)=>E?.({...e,columnIndex:e.columnIndex-Y},t)??!1,[E,Y])),Cn=Ct(D,K.useCallback((e,t)=>D?.({...e,col:e.col-Y},t)??!1,[D,Y])),wn=K.useCallback(e=>{if(De!==void 0){let t=De(Qo(e,-Y));return typeof t==`boolean`?t:Qo(t,Y)}return!0},[De,Y]),[Tn,En,Dn]=vo(X,vn,Ce,we,Ee,B),On=K.useMemo(()=>pe(je(),Yt),[Yt]),[kn,An]=K.useState([0,0,0]),jn=K.useMemo(()=>{if(Nt===void 0)return{};let e={};for(let t of Nt)e[t.kind]=t;return e},[Nt]),Mn=K.useCallback(e=>e.kind===U.Custom?it?.find(t=>t.isMatch(e)):jn[e.kind],[it,jn]),{sizedColumns:Nn,nonGrowWidth:Pn}=Qn(v,y,mn,kn[0]-(Y===0?0:$t)-kn[2],Ht,Wt,On,Mn,fn.current);Ft!==`none`&&(Pn+=$t);let Fn=K.useMemo(()=>Nn.some(e=>e.group!==void 0),[Nn]),In=Fn?qt+Jt:qt,Ln=X.rows.length,Rn=Ft===`none`?void 0:Ln===0?!1:Ln===y?!0:void 0,zn=K.useMemo(()=>Ft===`none`?Nn:[{title:``,width:$t,icon:void 0,hasMenu:!1,style:`normal`,themeOverride:Bt,rowMarker:Vt,rowMarkerChecked:Rn},...Nn],[Ft,Nn,$t,Bt,Vt,Rn]),[Bn,Vn]=K.useMemo(()=>[J!==void 0&&typeof Kt==`number`?Math.floor(J/Kt):0,J!==void 0&&typeof Kt==`number`?-(J%Kt):0],[J,Kt]),Hn=K.useRef({height:1,width:1,x:0,y:0}),Un=K.useMemo(()=>({x:Hn.current.x,y:Bn,width:Hn.current.width??1,height:Hn.current.height??1,ty:Vn}),[Vn,Bn]),Wn=K.useRef(!1),[Gn,Kn,qn]=Rt(Un);Hn.current=Gn;let Jn=(Gn.height??1)>1;K.useLayoutEffect(()=>{if(J!==void 0&&u.current!==null&&Jn){if(u.current.scrollTop===J)return;u.current.scrollTop=J,u.current.scrollTop!==J&&qn(),Wn.current=!0}},[J,Jn,qn]);let Yn=(Gn.width??1)>1;K.useLayoutEffect(()=>{if(Ze!==void 0&&u.current!==null&&Yn){if(u.current.scrollLeft===Ze)return;u.current.scrollLeft=Ze,u.current.scrollLeft!==Ze&&qn(),Wn.current=!0}},[Ze,Yn,qn]);let Xn=Gn.x+Y,$n=Gn.y,er=K.useRef(null),tr=K.useCallback(e=>{e===!0?er.current?.focus():window.requestAnimationFrame(()=>{er.current?.focus()})},[]),nr=tn?y+1:y,rr=K.useCallback(e=>{let t=Y===0?e:e.map(e=>({...e,location:[e.location[0]-Y,e.location[1]]})),n=se?.(t);if(n!==!0)for(let e of t)F?.(e.location,e.value);return n},[F,se,Y]),[ir,ar]=K.useState(),or=X.current!==void 0&&X.current.range.width*X.current.range.height>1?X.current.range:void 0,sr=ot?X.current?.cell:void 0,cr=sr?.[0],lr=sr?.[1],ur=K.useMemo(()=>{if((z===void 0||z.length===0)&&(or??cr??lr??ir)===void 0)return;let e=[];if(z!==void 0)for(let t of z){let n=zn.length-t.range.x-Y;n>0&&e.push({color:t.color,range:{...t.range,x:t.range.x+Y,width:Math.min(n,t.range.width)},style:t.style})}return ir!==void 0&&e.push({color:me(On.accentColor,0),range:ir,style:`dashed`}),or!==void 0&&e.push({color:me(On.accentColor,.5),range:or,style:`solid-outline`}),cr!==void 0&&lr!==void 0&&e.push({color:On.accentColor,range:{x:cr,y:lr,width:1,height:1},style:`solid-outline`}),e.length>0?e:void 0},[ir,or,cr,lr,z,zn.length,On.accentColor,Y]),dr=K.useRef(zn);dr.current=zn;let fr=K.useCallback(([e,t],n=!1)=>{let r=tn&&t===nr-1;if(e===0&&en)return r?$o:{kind:xe.Marker,allowOverlay:!1,checkboxStyle:Vt,checked:X?.rows.hasIndex(t)===!0,markerKind:Ft===`clickable-number`?`number`:Ft,row:zt+t,drawHandle:ht!==void 0,cursor:Ft===`clickable-number`?`pointer`:void 0};if(r){let t=e===Y?Ye?.hint??``:``,n=dr.current[e];if(n?.trailingRowOptions?.disabled===!0)return $o;{let e=n?.trailingRowOptions?.hint??t,r=n?.trailingRowOptions?.addIcon??Ye?.addIcon;return{kind:xe.NewRow,hint:e,allowOverlay:!1,icon:r}}}else{let r=e-Y;if(n||st?.strict===!0){let e=Hn.current,n=e.x>r||r>e.x+e.width||e.y>t||t>e.y+e.height||t>=br.current,i=r===e.extras?.selected?.[0]&&t===e.extras?.selected[1],a=!1;if(e.extras?.freezeRegions!==void 0){for(let n of e.extras.freezeRegions)if(Ur(n,r,t)){a=!0;break}}if(n&&!i&&!a)return $o}let i=b([r,t]);return Y!==0&&i.span!==void 0&&(i={...i,span:[i.span[0]+Y,i.span[1]+Y]}),i}},[tn,nr,en,Vt,X?.rows,Ft,zt,ht,Y,Ye?.hint,Ye?.addIcon,st?.strict,b]),pr=K.useCallback(e=>{let t=Le?.(e)??{name:e};return P!==void 0&&e!==``&&(t={icon:t.icon,name:t.name,overrideTheme:t.overrideTheme,actions:[...t.actions??[],{title:`Rename`,icon:`renameIcon`,onClick:e=>Mr({group:t.name,bounds:e.bounds})}]}),t},[Le,P]),mr=K.useCallback(e=>{let[t,n]=e.cell,r=zn[t],i=r?.group===void 0?void 0:pr(r.group)?.overrideTheme,o=r?.themeOverride,s=m?.(n);a({...e,theme:pe(On,i,o,s,e.content.themeOverride)})},[m,zn,pr,On]),hr=K.useCallback((e,t,n)=>{if(X.current===void 0)return;let[r,i]=X.current.cell,a=fr([r,i]);if(a.kind!==U.Boolean&&a.allowOverlay){let t=a;if(n!==void 0)switch(t.kind){case U.Number:{let e=oe(()=>n===`-`?-0:Number.parseFloat(n),0);t={...t,data:Number.isNaN(e)?0:e};break}case U.Text:case U.Markdown:case U.Uri:t={...t,data:n};break}mr({target:e,content:t,initialValue:n,cell:[r,i],highlight:n===void 0,forceEditMode:n!==void 0})}else a.kind===U.Boolean&&t&&a.readonly!==!0&&(rr([{location:X.current.cell,value:{...a,data:Po(a.data)}}]),er.current?.damage([{cell:X.current.cell}]))},[fr,X,rr,mr]),gr=K.useCallback((e,t)=>{let n=er.current?.getBounds(e,t);if(n===void 0||u.current===null)return;let r=fr([e,t]);r.allowOverlay&&mr({target:n,content:r,initialValue:void 0,highlight:!0,cell:[e,t],forceEditMode:!0})},[fr,mr]),_r=K.useCallback((e,t,n=`both`,r=0,i=0,a=void 0)=>{if(u.current!==null){let o=er.current,c=s.current,l=typeof e==`number`?e:e.unit===`cell`?e.amount:void 0,d=typeof t==`number`?t:t.unit===`cell`?t.amount:void 0,f=typeof e!=`number`&&e.unit===`px`?e.amount:void 0,p=typeof t!=`number`&&t.unit===`px`?t.amount:void 0;if(o!==null&&c!==null){let s={x:0,y:0,width:0,height:0},m=0,h=0;if((l!==void 0||d!==void 0)&&(s=o.getBounds((l??0)+Y,d??0)??s,s.width===0||s.height===0))return;let g=c.getBoundingClientRect(),_=g.width/c.offsetWidth;if(f!==void 0&&(s={...s,x:f-g.left-u.current.scrollLeft,width:1}),p!==void 0&&(s={...s,y:p+g.top-u.current.scrollTop,height:1}),s!==void 0){let o={x:s.x-r,y:s.y-i,width:s.width+2*r,height:s.height+2*i},c=0;for(let e=0;e<Ne;e++)c+=Nn[e].width;let l=0,d=Xe+(nn?1:0);d>0&&(l=hn(nr,d,Kt));let f=c*_+g.left+Y*$t*_,p=g.right,v=g.top+In*_,y=g.bottom-l*_,b=s.width+r*2;switch(a?.hAlign){case`start`:p=f+b;break;case`end`:f=p-b;break;case`center`:f=Math.floor((f+p)/2)-b/2,p=f+b;break}let x=s.height+i*2;switch(a?.vAlign){case`start`:y=v+x;break;case`end`:v=y-x;break;case`center`:v=Math.floor((v+y)/2)-x/2,y=v+x;break}f>o.x?m=o.x-f:p<o.x+o.width&&(m=o.x+o.width-p),v>o.y?h=o.y-v:y<o.y+o.height&&(h=o.y+o.height-y),n===`vertical`||typeof e==`number`&&e<Ne?m=0:(n===`horizontal`||typeof t==`number`&&t>=nr-d)&&(h=0),(m!==0||h!==0)&&(_!==1&&(m/=_,h/=_),u.current.scrollTo(m+u.current.scrollLeft,h+u.current.scrollTop))}}}},[Y,Xe,$t,In,Ne,Nn,nr,nn,Kt]),vr=K.useRef(gr),yr=K.useRef(b),br=K.useRef(y);vr.current=gr,yr.current=b,br.current=y;let xr=K.useCallback(async(e,t=!0)=>{if(zn[e]?.trailingRowOptions?.disabled===!0)return;let n=ve?.(),r,i=!0;n!==void 0&&(r=await n,r===`top`&&(i=!1),typeof r==`number`&&(i=!1));let a=0,o=()=>{if(br.current<=y){a<500&&window.setTimeout(o,a),a=50+a*2;return}let n=typeof r==`number`?r:i?y:0;hi.current(e-Y,n),Tn({cell:[e,n],range:{x:e,y:n,width:1,height:1}},!1,!1,`edit`);let s=yr.current([e-Y,n]);s.allowOverlay&&H(s)&&s.readonly!==!0&&t&&window.setTimeout(()=>{vr.current(e,n)},0)};o()},[zn,ve,Y,y,Tn]),Sr=K.useCallback(e=>{let t=Nn[e]?.trailingRowOptions?.targetColumn??Ye?.targetColumn;if(typeof t==`number`)return t+(en?1:0);if(typeof t==`object`){let e=v.indexOf(t);if(e>=0)return e+(en?1:0)}},[Nn,v,en,Ye?.targetColumn]),Cr=K.useRef(),wr=K.useRef(),Tr=K.useCallback((e,t)=>{let[n,r]=t;return pe(On,zn[n]?.themeOverride,m?.(r),e.themeOverride)},[m,zn,On]),Er=K.useCallback(e=>{let t=Ba.value?e.metaKey:e.ctrlKey,n=t&&Se===`multi`,r=t&&V===`multi`,[i,o]=e.location,s=X.columns,c=X.rows,[l,u]=X.current?.cell??[];if(e.kind===`cell`){if(wr.current=void 0,Dr.current=[i,o],i===0&&en){if(tn===!0&&o===y||Ft===`number`||Se===`none`)return;let r=fr(e.location);if(r.kind!==xe.Marker)return;if(ht!==void 0){let t=Mn(r);L(t?.kind===xe.Marker);let n=t?.onClick?.({...e,cell:r,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,theme:Tr(r,e.location),preventDefault:()=>void 0});if(n===void 0||n.checked===r.checked)return}a(void 0),tr();let i=c.hasIndex(o),s=Cr.current;if(Se===`multi`&&(e.shiftKey||e.isLongTouch===!0)&&s!==void 0&&c.hasIndex(s)){let e=[Math.min(s,o),Math.max(s,o)+1];n||Fe===`multi`?En(void 0,e,!0):En(G.fromSingleSelection(e),void 0,n)}else n||e.isTouch||Fe===`multi`?i?En(c.remove(o),void 0,!0):(En(void 0,o,!0),Cr.current=o):i&&c.length===1?En(G.empty(),void 0,t):(En(G.fromSingleSelection(o),void 0,t),Cr.current=o)}else if(i>=Y&&tn&&o===y)xr(Sr(i)??i);else if(l!==i||u!==o){let n=fr(e.location),r=Mn(n);if(r?.onSelect!==void 0){let t=!1;if(r.onSelect({...e,cell:n,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,preventDefault:()=>t=!0,theme:Tr(n,e.location)}),t)return}let s=nn&&o===y,c=nn&&X!==void 0&&X.current?.cell[1]===y;if((e.shiftKey||e.isLongTouch===!0)&&l!==void 0&&u!==void 0&&X.current!==void 0&&!c){if(s)return;let e=Math.min(i,l),n=Math.max(i,l),r=Math.min(o,u),a=Math.max(o,u);Tn({...X.current,range:{x:e,y:r,width:n-e+1,height:a-r+1}},!0,t,`click`),Cr.current=void 0,tr()}else Tn({cell:[i,o],range:{x:i,y:o,width:1,height:1}},!0,t,`click`),Cr.current=void 0,a(void 0),tr()}}else if(e.kind===`header`)if(Dr.current=[i,o],a(void 0),en&&i===0)Cr.current=void 0,wr.current=void 0,Se===`multi`&&(c.length===y?En(G.empty(),void 0,t):En(G.fromSingleSelection([0,y]),void 0,t),tr());else{let n=wr.current;if(V===`multi`&&(e.shiftKey||e.isLongTouch===!0)&&n!==void 0&&s.hasIndex(n)){let e=[Math.min(n,i),Math.max(n,i)+1];r?Dn(void 0,e,t):Dn(G.fromSingleSelection(e),void 0,t)}else r?(s.hasIndex(i)?Dn(s.remove(i),void 0,t):Dn(void 0,i,t),wr.current=i):V!==`none`&&(Dn(G.fromSingleSelection(i),void 0,t),wr.current=i);Cr.current=void 0,tr()}else e.kind===`group-header`?Dr.current=[i,o]:e.kind===`out-of-bounds`&&!e.isMaybeScrollbar&&(vn(es,!1),a(void 0),tr(),Be?.(),Cr.current=void 0,wr.current=void 0)},[xr,V,tr,Mn,Sr,fr,X,en,nn,Be,ht,Y,Ft,Se,Fe,y,Tn,vn,Dn,En,tn,Tr]),Z=K.useRef(!1),Dr=K.useRef(),Or=K.useRef(Gn),kr=K.useRef(),Ar=K.useCallback(e=>{if(Pr.current=!1,Or.current=Hn.current,e.button!==0&&e.button!==1){kr.current=void 0;return}let t=performance.now();kr.current={button:e.button,time:t,location:e.location},e?.kind===`header`&&(Z.current=!0);let n=e.kind===`cell`&&e.isFillHandle;!n&&e.kind!==`cell`&&e.isEdge||(l({previousSelection:X,fillHandle:n}),Dr.current=void 0,!e.isTouch&&e.button===0&&!n?Er(e):!e.isTouch&&e.button===1&&(Dr.current=e.location))},[X,Er]),[jr,Mr]=K.useState(),Nr=K.useCallback(e=>{if(e.kind!==`group-header`||V!==`multi`)return;let t=Ba.value?e.metaKey:e.ctrlKey,[n]=e.location,r=X.columns;if(n<Y)return;let i=zn[n],a=n,o=n;for(let e=n-1;e>=Y&&sn(i.group,zn[e].group);e--)a--;for(let e=n+1;e<zn.length&&sn(i.group,zn[e].group);e++)o++;if(tr(),t)if(r.hasAll([a,o+1])){let e=r;for(let t=a;t<=o;t++)e=e.remove(t);Dn(e,void 0,t)}else Dn(void 0,[a,o+1],t);else Dn(G.fromSingleSelection([a,o+1]),void 0,t)},[V,tr,X.columns,zn,Y,Dn]),Pr=K.useRef(!1),Fr=K.useCallback(async e=>{if(pn!==void 0&&yn!==void 0){let t=Hn.current.y,n=Hn.current.height,r=pn({x:e,y:t,width:1,height:Math.min(n,y-t)},fn.current.signal);typeof r!=`object`&&(r=await r());let i=Nn[e-Y],a=document.createElement(`canvas`).getContext(`2d`,{alpha:!1});if(a!==null){a.font=On.baseFontFull;let t=Zn(a,On,i,0,r,Ht,Ut,!1,Mn);yn?.(i,t.width,e,t.width)}}},[Nn,pn,Ut,On,Ht,yn,Y,y,Mn]),[Ir,Lr]=K.useState(),Rr=K.useCallback(async(e,t)=>{let n=e.current?.range;if(n===void 0||pn===void 0||t.current===void 0)return;let r=t.current.range;if(C!==void 0){let e=!1;if(C({fillDestination:{...r,x:r.x-Y},patternSource:{...n,x:n.x-Y},preventDefault:()=>e=!0}),e)return}let i=pn(n,fn.current.signal);typeof i!=`object`&&(i=await i());let a=i,o=[];for(let e=0;e<r.width;e++)for(let t=0;t<r.height;t++){let i=[r.x+e,r.y+t];if(ln(i,n))continue;let s=a[t%n.height][e%n.width];Te(s)||!H(s)||o.push({location:i,value:{...s}})}rr(o),er.current?.damage(o.map(e=>({cell:e.location})))},[pn,rr,C,Y]),zr=K.useCallback(()=>{X.current===void 0||X.current.range.width<=1||Rr({...X,current:{...X.current,range:{...X.current.range,width:1}}},X)},[Rr,X]),Br=K.useCallback(()=>{X.current===void 0||X.current.range.height<=1||Rr({...X,current:{...X.current,range:{...X.current.range,height:1}}},X)},[Rr,X]),Hr=K.useCallback((e,t)=>{let n=c;if(l(void 0),ar(void 0),Lr(void 0),Z.current=!1,t)return;if(n?.fillHandle===!0&&X.current!==void 0&&n.previousSelection?.current!==void 0){if(ir===void 0)return;let e={...X,current:{...X.current,range:Wr(n.previousSelection.current.range,ir)}};Rr(n.previousSelection,e),vn(e,!0);return}let[r,i]=e.location,[a,o]=Dr.current??[],s=()=>{Pr.current=!0},u=t=>{let c=t.isTouch||a===r&&o===i;if(c&&x?.([r-Y,i],{...t,preventDefault:s}),t.button===1)return!Pr.current;if(!Pr.current){let a=fr(e.location),o=Mn(a);if(o!==void 0&&o.onClick!==void 0&&c){let n=o.onClick({...t,cell:a,posX:t.localEventX,posY:t.localEventY,bounds:t.bounds,theme:Tr(a,e.location),preventDefault:s});n!==void 0&&!Te(n)&&W(n)&&(rr([{location:t.location,value:n}]),er.current?.damage([{cell:t.location}]))}if(Pr.current||X.current===void 0)return!1;let l=!1;switch(a.activationBehaviorOverride??Pe){case`double-click`:case`second-click`:{if(n?.previousSelection?.current?.cell===void 0)break;let[e,a]=X.current.cell,[o,s]=n.previousSelection.current.cell;l=r===e&&r===o&&i===a&&i===s&&(t.isDoubleClick===!0||Pe===`second-click`);break}case`single-click`:l=!0;break}if(l)return S?.([r-Y,i]),hr(t.bounds,!1),!0}return!1},d=e.location[0]-Y;if(e.isTouch){let t=Hn.current,n=Or.current;if(t.x!==n.x||t.y!==n.y)return;if(e.isLongTouch===!0){if(e.kind===`cell`&&un(X.current?.cell,e.location)){ne?.([d,e.location[1]],{...e,preventDefault:s});return}else if(e.kind===`header`&&X.columns.hasIndex(r)){ie?.(d,{...e,preventDefault:s});return}else if(e.kind===`group-header`){if(d<0)return;N?.(d,{...e,preventDefault:s});return}}e.kind===`cell`?u(e)||Er(e):e.kind===`group-header`?A?.(d,{...e,preventDefault:s}):(e.kind===`header`&&k?.(d,{...e,preventDefault:s}),Er(e));return}if(e.kind===`header`){if(d<0)return;e.isEdge?e.isDoubleClick===!0&&Fr(r):e.button===0&&r===a&&i===o&&k?.(d,{...e,preventDefault:s})}if(e.kind===`group-header`){if(d<0)return;e.button===0&&r===a&&i===o&&(A?.(d,{...e,preventDefault:s}),Pr.current||Nr(e))}e.kind===`cell`&&(e.button===0||e.button===1)&&u(e),Dr.current=void 0},[c,X,Y,ir,Rr,vn,x,fr,Mn,Pe,Tr,rr,S,hr,ne,ie,N,Er,A,k,Fr,Nr]),Gr=K.useCallback(e=>{let t={...e,location:[e.location[0]-Y,e.location[1]]};ke?.(t),c!==void 0&&e.buttons===0&&(l(void 0),ar(void 0),Lr(void 0),Z.current=!1),Lr(t=>Z.current?[e.scrollEdge[0],0]:e.scrollEdge[0]===t?.[0]&&e.scrollEdge[1]===t[1]?t:c===void 0||(kr.current?.location[0]??0)<Y?void 0:e.scrollEdge)},[c,ke,Y]),Kr=K.useCallback((e,t)=>{Ie?.(e-Y,t)},[Ie,Y]),qr=X?.current?.cell,Jr=K.useCallback((e,t,n,r,i,a)=>{Wn.current=!1;let o=qr;o!==void 0&&(o=[o[0]-Y,o[1]]);let s=Ne===0?void 0:{x:0,y:e.y,width:Ne,height:e.height},c=[];s!==void 0&&c.push(s),Xe>0&&(c.push({x:e.x-Y,y:y-Xe,width:e.width,height:Xe}),Ne>0&&c.push({x:0,y:y-Xe,width:Ne,height:Xe}));let l={x:e.x-Y,y:e.y,width:e.width,height:tn&&e.y+e.height>=y?e.height-1:e.height,tx:i,ty:a,extras:{selected:o,freezeRegion:s,freezeRegions:c}};Hn.current=l,Kn(l),An([t,n,r]),He?.(l,l.tx,l.ty,l.extras)},[qr,Y,tn,y,Ne,Xe,Kn,He]),Yr=Ct(ye,K.useCallback((e,t)=>{ye?.(e-Y,t-Y),V!==`none`&&Dn(G.fromSingleSelection(t),void 0,!0)},[V,ye,Y,Dn])),Xr=K.useRef(!1),Zr=K.useCallback(e=>{if(e.location[0]===0&&Y>0){e.preventDefault();return}Oe?.({...e,location:[e.location[0]-Y,e.location[1]]}),e.defaultPrevented()||(Xr.current=!0),l(void 0)},[Oe,Y]),Qr=K.useCallback(()=>{Xr.current=!1},[]),$r=K.useRef(),ei=K.useCallback(e=>{if(!Ka(e,$r.current)&&($r.current=e,!(kr?.current?.button!==void 0&&kr.current.button>=1))){if(e.buttons!==0&&c!==void 0&&kr.current?.location[0]===0&&e.location[0]===0&&Y===1&&Se===`multi`&&c.previousSelection&&!c.previousSelection.rows.hasIndex(kr.current.location[1])&&X.rows.hasIndex(kr.current.location[1])){let t=Math.min(kr.current.location[1],e.location[1]),n=Math.max(kr.current.location[1],e.location[1])+1;En(G.fromSingleSelection([t,n]),void 0,!1)}if(e.buttons!==0&&c!==void 0&&X.current!==void 0&&!Xr.current&&!Z.current&&(B===`rect`||B===`multi-rect`)){let[t,n]=X.current.cell,[r,i]=e.location;if(i<0&&(i=Hn.current.y),c.fillHandle===!0&&c.previousSelection?.current!==void 0){let e=c.previousSelection.current.range;i=Math.min(i,tn?y-1:y),ar(Vr(e,r,i,q))}else{if(tn&&n===y)return;if(tn&&i===y)if(e.kind===`out-of-bounds`)i--;else return;r=Math.max(r,Y);let a=r-t,o=i-n,s={x:a>=0?t:r,y:o>=0?n:i,width:Math.abs(a)+1,height:Math.abs(o)+1};Tn({...X.current,range:s},!0,!1,`drag`)}}ze?.({...e,location:[e.location[0]-Y,e.location[1]]})}},[q,c,Y,Se,X,B,ze,En,tn,y,Tn]);Ho(Ir,u,K.useCallback(()=>{let e=$r.current;if(e===void 0)return;let[t,n]=e.scrollEdge,[r,i]=e.location,a=Hn.current;t===-1?r=a.extras?.freezeRegion?.x??a.x:t===1&&(r=a.x+a.width),n===-1?i=Math.max(0,a.y):n===1&&(i=Math.min(y-1,a.y+a.height)),r=(0,Ma.default)(r,0,zn.length-1),i=(0,Ma.default)(i,0,y-1),ei({...e,location:[r,i]})},[zn.length,ei,y]));let ti=K.useCallback(e=>{if(X.current===void 0)return;let[t,n]=e,[r,i]=X.current.cell,a=X.current.range,o=a.x,s=a.x+a.width,c=a.y,l=a.y+a.height;if(n!==0)switch(n){case 2:l=y,c=i,_r(0,l,`vertical`);break;case-2:c=0,l=i+1,_r(0,c,`vertical`);break;case 1:c<i?(c++,_r(0,c,`vertical`)):(l=Math.min(y,l+1),_r(0,l,`vertical`));break;case-1:l>i+1?(l--,_r(0,l,`vertical`)):(c=Math.max(0,c-1),_r(0,c,`vertical`));break;default:M(n)}if(t!==0)if(t===2)s=zn.length,o=r,_r(s-1-Y,0,`horizontal`);else if(t===-2)o=Y,s=r+1,_r(o-Y,0,`horizontal`);else{let e=[];if(pn!==void 0){let t=pn({x:o,y:c,width:s-o-Y,height:l-c},fn.current.signal);typeof t==`object`&&(e=Zo(t))}if(t===1){let t=!1;if(o<r){if(e.length>0){let n=(0,qa.default)(o+1,r+1).find(t=>!e.includes(t-Y));n!==void 0&&(o=n,t=!0)}else o++,t=!0;t&&_r(o,0,`horizontal`)}t||(s=Math.min(zn.length,s+1),_r(s-1-Y,0,`horizontal`))}else if(t===-1){let t=!1;if(s>r+1){if(e.length>0){let n=(0,qa.default)(s-1,r,-1).find(t=>!e.includes(t-Y));n!==void 0&&(s=n,t=!0)}else s--,t=!0;t&&_r(s-Y,0,`horizontal`)}t||(o=Math.max(Y,o-1),_r(o-Y,0,`horizontal`))}else M(t)}Tn({cell:X.current.cell,range:{x:o,y:c,width:s-o,height:l-c}},!0,!1,`keyboard-select`)},[pn,X,zn.length,Y,y,_r,Tn]),ni=K.useCallback((e,t,n,r)=>{let i=nr-(n?0:1);if(e=(0,Ma.default)(e,Y,Nn.length-1+Y),t=(0,Ma.default)(t,0,i),e===qr?.[0]&&t===qr?.[1])return!1;if(r&&X.current!==void 0){let n=[...X.current.rangeStack];(X.current.range.width>1||X.current.range.height>1)&&n.push(X.current.range),vn({...X,current:{cell:[e,t],range:{x:e,y:t,width:1,height:1},rangeStack:n}},!0)}else Tn({cell:[e,t],range:{x:e,y:t,width:1,height:1}},!0,!1,`keyboard-nav`);return d.current!==void 0&&d.current[0]===e&&d.current[1]===t&&(d.current=void 0),_r(e-Y,t),!0},[nr,Y,Nn.length,qr,X,_r,vn,Tn]),ri=K.useCallback((e,t)=>{i?.cell!==void 0&&e!==void 0&&W(e)&&(rr([{location:i.cell,value:e}]),window.requestAnimationFrame(()=>{er.current?.damage([{cell:i.cell}])})),tr(!0),a(void 0);let[n,r]=t;if(X.current!==void 0&&(n!==0||r!==0)){let t=X.current.cell[1]===nr-1&&e!==void 0;ni((0,Ma.default)(X.current.cell[0]+n,0,zn.length-1),(0,Ma.default)(X.current.cell[1]+r,0,nr-1),t,!1)}w?.(e,t)},[i?.cell,tr,X,w,rr,nr,ni,zn.length]),ii=K.useMemo(()=>`gdg-overlay-${Xo++}`,[]),ai=K.useCallback(e=>{tr();let t=[];for(let n=e.x;n<e.x+e.width;n++)for(let r=e.y;r<e.y+e.height;r++){let e=b([n-Y,r]);if(!e.allowOverlay&&e.kind!==U.Boolean)continue;let i;if(e.kind===U.Custom){let t=Mn(e),n=t?.provideEditor?.(e);t?.onDelete===void 0?R(n)&&(i=n?.deletedValue?.(e)):i=t.onDelete(e)}else (W(e)&&e.allowOverlay||e.kind===U.Boolean)&&(i=Mn(e)?.onDelete?.(e));i!==void 0&&!Te(i)&&W(i)&&t.push({location:[n,r],value:i})}rr(t),er.current?.damage(t.map(e=>({cell:e.location})))},[tr,b,Mn,rr,Y]),oi=i!==void 0,si=K.useCallback(e=>{let t=()=>{e.stopPropagation(),e.preventDefault()},n={didMatch:!1},{bounds:r}=e,i=X.columns,s=X.rows,c=Qt;if(!oi&&Q(c.clear,e,n))vn(es,!1),Be?.();else if(!oi&&Q(c.selectAll,e,n))vn({columns:G.empty(),rows:G.empty(),current:{cell:X.current?.cell??[Y,0],range:{x:Y,y:0,width:v.length,height:y},rangeStack:[]}},!1);else if(Q(c.search,e,n))o?.current?.focus({preventScroll:!0}),an(!0);else if(Q(c.delete,e,n)){let e=wn?.(X)??!0;if(e!==!1){let t=e===!0?X:e;if(t.current!==void 0){ai(t.current.range);for(let e of t.current.rangeStack)ai(e)}for(let e of t.rows)ai({x:Y,y:e,width:v.length,height:1});for(let e of t.columns)ai({x:e,y:0,width:1,height:y})}}if(n.didMatch)return t(),!0;if(X.current===void 0)return!1;let[l,u]=X.current.cell,d=!1,f=!1;Q(c.scrollToSelectedCell,e,n)?hi.current(l-Y,u):V!==`none`&&Q(c.selectColumn,e,n)?i.hasIndex(l)?Dn(i.remove(l),void 0,!0):V===`single`?Dn(G.fromSingleSelection(l),void 0,!0):Dn(void 0,l,!0):Se!==`none`&&Q(c.selectRow,e,n)?s.hasIndex(u)?En(s.remove(u),void 0,!0):Se===`single`?En(G.fromSingleSelection(u),void 0,!0):En(void 0,u,!0):!oi&&r!==void 0&&Q(c.activateCell,e,n)?u===y&&tn?window.setTimeout(()=>{xr(Sr(l)??l)},0):(S?.([l-Y,u]),hr(r,!0)):X.current.range.height>1&&Q(c.downFill,e,n)?Br():X.current.range.width>1&&Q(c.rightFill,e,n)?zr():Q(c.goToNextPage,e,n)?u+=Math.max(1,Hn.current.height-4):Q(c.goToPreviousPage,e,n)?u-=Math.max(1,Hn.current.height-4):Q(c.goToFirstCell,e,n)?(a(void 0),u=0,l=0):Q(c.goToLastCell,e,n)?(a(void 0),u=2**53-1,l=2**53-1):Q(c.selectToFirstCell,e,n)?(a(void 0),ti([-2,-2])):Q(c.selectToLastCell,e,n)?(a(void 0),ti([2,2])):oi?(Q(c.closeOverlay,e,n)&&a(void 0),Q(c.acceptOverlayDown,e,n)&&(a(void 0),u++),Q(c.acceptOverlayUp,e,n)&&(a(void 0),u--),Q(c.acceptOverlayLeft,e,n)&&(a(void 0),l--),Q(c.acceptOverlayRight,e,n)&&(a(void 0),l++)):(Q(c.goDownCell,e,n)?u+=1:Q(c.goUpCell,e,n)?--u:Q(c.goRightCell,e,n)?l+=1:Q(c.goLeftCell,e,n)?--l:Q(c.goDownCellRetainSelection,e,n)?(u+=1,d=!0):Q(c.goUpCellRetainSelection,e,n)?(--u,d=!0):Q(c.goRightCellRetainSelection,e,n)?(l+=1,d=!0):Q(c.goLeftCellRetainSelection,e,n)?(--l,d=!0):Q(c.goToLastRow,e,n)?u=y-1:Q(c.goToFirstRow,e,n)?u=-(2**53-1):Q(c.goToLastColumn,e,n)?l=2**53-1:Q(c.goToFirstColumn,e,n)?l=-(2**53-1):(B===`rect`||B===`multi-rect`)&&(Q(c.selectGrowDown,e,n)?ti([0,1]):Q(c.selectGrowUp,e,n)?ti([0,-1]):Q(c.selectGrowRight,e,n)?ti([1,0]):Q(c.selectGrowLeft,e,n)?ti([-1,0]):Q(c.selectToLastRow,e,n)?ti([0,2]):Q(c.selectToFirstRow,e,n)?ti([0,-2]):Q(c.selectToLastColumn,e,n)?ti([2,0]):Q(c.selectToFirstColumn,e,n)&&ti([-2,0])),f=n.didMatch);let p=ni(l,u,!1,d),m=n.didMatch;return m&&(p||!f||wt)&&t(),m},[oi,X,Qt,V,Se,B,Y,y,ni,vn,Be,v.length,wn,wt,ai,Dn,En,tn,Sr,xr,S,hr,Br,zr,ti]),ci=K.useCallback(e=>{let t=!1;if(fe!==void 0&&fe({...e,cancel:()=>{t=!0}}),t||si(e)||X.current===void 0)return;let[n,r]=X.current.cell,i=Hn.current;if(_e&&!e.metaKey&&!e.ctrlKey&&X.current!==void 0&&e.key.length===1&&/[ -~]/g.test(e.key)&&e.bounds!==void 0&&H(b([n-Y,Math.max(0,Math.min(r,y-1))]))){if((!tn||r!==y)&&(i.y>r||r>i.y+i.height||i.x>n||n>i.x+i.width))return;hr(e.bounds,!0,e.key),e.stopPropagation(),e.preventDefault()}},[_e,fe,si,X,b,Y,y,tn,hr]),li=K.useCallback((e,t)=>{let n=e.location[0]-Y;if(e.kind===`header`&&ie?.(n,{...e,preventDefault:t}),e.kind===`group-header`){if(n<0)return;N?.(n,{...e,preventDefault:t})}if(e.kind===`cell`){let[r,i]=e.location;ne?.([n,i],{...e,preventDefault:t}),on(X,e.location)||ni(r,i,!1,!1)}},[X,ne,N,ie,Y,ni]),ui=K.useCallback(async e=>{if(!Qt.paste)return;function t(e,t,n,r){let i=typeof n==`object`?n?.join(`
|
|
131
|
+
`&&(n.push(r),r=[]),a=t.None):a=t.None;break}o++}return i<e.length&&r.push(jo(e.slice(i,e.length))),n.push(r),n.map(e=>e.map(e=>({rawValue:e,formatted:e,format:`string`})))}function No(e,t,n){let r=Oo(e,t),i=e=>{window.navigator.clipboard?.writeText(e)},a=(e,t)=>window.navigator.clipboard?.write===void 0?!1:(window.navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([e],{type:`text/plain`}),"text/html":new Blob([t],{type:`text/html`})})]),!0);window.navigator.clipboard?.write!==void 0||n?.clipboardData!==void 0?((e,t)=>{try{if(n===void 0||n.clipboardData===null)throw Error(`No clipboard data`);n?.clipboardData?.setData(`text/plain`,e),n?.clipboardData?.setData(`text/html`,t)}catch{a(e,t)||i(e)}})(r.textPlain,r.textHtml):i(r.textPlain),n?.preventDefault()}function Po(e){return e!==!0}function Fo(e){return typeof e==`string`?e:`${e}px`}var Io=()=>e=>e.innerWidth,Lo=()=>e=>e.innerHeight,Ro=Me(`div`)({name:`Wrapper`,class:`gdg-wmyidgi`,propsAsIs:!1,vars:{"wmyidgi-0":[Io()],"wmyidgi-1":[Lo()]}}),zo=e=>{let{inWidth:t,inHeight:n,children:r,...i}=e;return K.createElement(Ro,{innerHeight:Fo(n),innerWidth:Fo(t),...i},r)},Bo=2,Vo=1300;function Ho(e,t,n){let r=K.useRef(0),[i,a]=e??[0,0];K.useEffect(()=>{if(i===0&&a===0){r.current=0;return}let e=!1,o=0,s=c=>{if(!e){if(o===0)o=c;else{let e=c-o;r.current=Math.min(1,r.current+e/Vo);let s=r.current**1.618*e*Bo;t.current?.scrollBy(i*s,a*s),o=c,n?.()}window.requestAnimationFrame(s)}};return window.requestAnimationFrame(s),()=>{e=!0}},[t,i,a,n])}function Uo({rowHeight:e,headerHeight:t,groupHeaderHeight:n,theme:r,overscrollX:i,overscrollY:a,scaleToRem:o,remSize:s}){let[c,l,u,d,f,p]=K.useMemo(()=>{if(!o||s===16)return[e,t,n,r,i,a];let c=s/16,l=e,u=je();return[typeof l==`number`?l*c:e=>Math.ceil(l(e)*c),Math.ceil(t*c),Math.ceil(n*c),{...r,headerIconSize:(r?.headerIconSize??u.headerIconSize)*c,cellHorizontalPadding:(r?.cellHorizontalPadding??u.cellHorizontalPadding)*c,cellVerticalPadding:(r?.cellVerticalPadding??u.cellVerticalPadding)*c},Math.ceil((i??0)*c),Math.ceil((a??0)*c)]},[n,t,i,a,s,e,o,r]);return{rowHeight:c,headerHeight:l,groupHeaderHeight:u,theme:d,overscrollX:f,overscrollY:p}}var Wo={downFill:!1,rightFill:!1,clear:!0,closeOverlay:!0,acceptOverlayDown:!0,acceptOverlayUp:!0,acceptOverlayLeft:!0,acceptOverlayRight:!0,copy:!0,paste:!0,cut:!0,search:!1,delete:!0,activateCell:!0,scrollToSelectedCell:!0,goToFirstCell:!0,goToFirstColumn:!0,goToFirstRow:!0,goToLastCell:!0,goToLastColumn:!0,goToLastRow:!0,goToNextPage:!0,goToPreviousPage:!0,selectToFirstCell:!0,selectToFirstColumn:!0,selectToFirstRow:!0,selectToLastCell:!0,selectToLastColumn:!0,selectToLastRow:!0,selectAll:!0,selectRow:!0,selectColumn:!0,goUpCell:!0,goRightCell:!0,goDownCell:!0,goLeftCell:!0,goUpCellRetainSelection:!0,goRightCellRetainSelection:!0,goDownCellRetainSelection:!0,goLeftCellRetainSelection:!0,selectGrowUp:!0,selectGrowRight:!0,selectGrowDown:!0,selectGrowLeft:!0};function $(e,t){return e===!0?t:e===!1?``:e}function Go(e){let t=Ba.value;return{activateCell:$(e.activateCell,` |Enter|shift+Enter`),clear:$(e.clear,`any+Escape`),closeOverlay:$(e.closeOverlay,`any+Escape`),acceptOverlayDown:$(e.acceptOverlayDown,`Enter`),acceptOverlayUp:$(e.acceptOverlayUp,`shift+Enter`),acceptOverlayLeft:$(e.acceptOverlayLeft,`shift+Tab`),acceptOverlayRight:$(e.acceptOverlayRight,`Tab`),copy:e.copy,cut:e.cut,delete:$(e.delete,t?`Backspace|Delete`:`Delete`),downFill:$(e.downFill,`primary+_68`),scrollToSelectedCell:$(e.scrollToSelectedCell,`primary+Enter`),goDownCell:$(e.goDownCell,`ArrowDown`),goDownCellRetainSelection:$(e.goDownCellRetainSelection,`alt+ArrowDown`),goLeftCell:$(e.goLeftCell,`ArrowLeft|shift+Tab`),goLeftCellRetainSelection:$(e.goLeftCellRetainSelection,`alt+ArrowLeft`),goRightCell:$(e.goRightCell,`ArrowRight|Tab`),goRightCellRetainSelection:$(e.goRightCellRetainSelection,`alt+ArrowRight`),goUpCell:$(e.goUpCell,`ArrowUp`),goUpCellRetainSelection:$(e.goUpCellRetainSelection,`alt+ArrowUp`),goToFirstCell:$(e.goToFirstCell,`primary+Home`),goToFirstColumn:$(e.goToFirstColumn,`Home|primary+ArrowLeft`),goToFirstRow:$(e.goToFirstRow,`primary+ArrowUp`),goToLastCell:$(e.goToLastCell,`primary+End`),goToLastColumn:$(e.goToLastColumn,`End|primary+ArrowRight`),goToLastRow:$(e.goToLastRow,`primary+ArrowDown`),goToNextPage:$(e.goToNextPage,`PageDown`),goToPreviousPage:$(e.goToPreviousPage,`PageUp`),paste:e.paste,rightFill:$(e.rightFill,`primary+_82`),search:$(e.search,`primary+f`),selectAll:$(e.selectAll,`primary+a`),selectColumn:$(e.selectColumn,`ctrl+ `),selectGrowDown:$(e.selectGrowDown,`shift+ArrowDown`),selectGrowLeft:$(e.selectGrowLeft,`shift+ArrowLeft`),selectGrowRight:$(e.selectGrowRight,`shift+ArrowRight`),selectGrowUp:$(e.selectGrowUp,`shift+ArrowUp`),selectRow:$(e.selectRow,`shift+ `),selectToFirstCell:$(e.selectToFirstCell,`primary+shift+Home`),selectToFirstColumn:$(e.selectToFirstColumn,`primary+shift+ArrowLeft`),selectToFirstRow:$(e.selectToFirstRow,`primary+shift+ArrowUp`),selectToLastCell:$(e.selectToLastCell,`primary+shift+End`),selectToLastColumn:$(e.selectToLastColumn,`primary+shift+ArrowRight`),selectToLastRow:$(e.selectToLastRow,`primary+shift+ArrowDown`)}}function Ko(e){let t=Bt(e);return K.useMemo(()=>{if(t===void 0)return Go(Wo);let e={...t,goToNextPage:t?.goToNextPage??t?.pageDown??Wo.goToNextPage,goToPreviousPage:t?.goToPreviousPage??t?.pageUp??Wo.goToPreviousPage,goToFirstCell:t?.goToFirstCell??t?.first??Wo.goToFirstCell,goToLastCell:t?.goToLastCell??t?.last??Wo.goToLastCell,selectToFirstCell:t?.selectToFirstCell??t?.first??Wo.selectToFirstCell,selectToLastCell:t?.selectToLastCell??t?.last??Wo.selectToLastCell};return Go({...Wo,...e})},[t])}var qo=e(gr(),1),Jo=e(br(),1),Yo=K.lazy(async()=>await y(()=>import(`./data-grid-overlay-editor-B8WQkZDB.js`),__vite__mapDeps([0,1,2,3,4,5]))),Xo=0;function Zo(e){return(0,qo.default)((0,Jo.default)((0,Jo.default)(e).filter(e=>e.span!==void 0).map(e=>(0,qa.default)((e.span?.[0]??0)+1,(e.span?.[1]??0)+1))))}function Qo(e,t){return e===void 0||t===0||e.columns.length===0&&e.current===void 0?e:{current:e.current===void 0?void 0:{cell:[e.current.cell[0]+t,e.current.cell[1]],range:{...e.current.range,x:e.current.range.x+t},rangeStack:e.current.rangeStack.map(e=>({...e,x:e.x+t}))},rows:e.rows,columns:e.columns.offset(t)}}var $o={kind:U.Loading,allowOverlay:!1},es={columns:G.empty(),rows:G.empty(),current:void 0},ts=K.forwardRef((e,t)=>{let[n,r]=K.useState(es),[i,a]=K.useState(),o=K.useRef(null),s=K.useRef(null),[c,l]=K.useState(),u=K.useRef(null),d=K.useRef(),f=typeof window>`u`?null:window,{imageEditorOverride:p,getRowThemeOverride:m,markdownDivCreateNode:h,width:g,height:_,columns:v,rows:y,getCellContent:b,onCellClicked:x,onCellActivated:S,onFillPattern:C,onFinishedEditing:w,coercePasteValue:T,drawHeader:E,drawCell:D,editorBloom:O,onHeaderClicked:k,onColumnProposeMove:ee,spanRangeBehavior:te=`default`,onGroupHeaderClicked:A,onCellContextMenu:ne,className:re,onHeaderContextMenu:ie,getCellsForSelection:ae,onGroupHeaderContextMenu:N,onGroupHeaderRenamed:P,onCellEdited:F,onCellsEdited:se,onSearchResultsChanged:ce,searchResults:I,onSearchValueChange:ue,searchValue:de,onKeyDown:fe,onKeyUp:he,keybindings:ge,editOnType:_e=!0,onRowAppended:ve,onColumnMoved:ye,validateCell:be,highlightRegions:z,rangeSelect:B=`rect`,columnSelect:V=`multi`,rowSelect:Se=`multi`,rangeSelectionBlending:Ce=`exclusive`,columnSelectionBlending:we=`exclusive`,rowSelectionBlending:Ee=`exclusive`,onDelete:De,onDragStart:Oe,onMouseMove:ke,onPaste:Ae,copyHeaders:Me=!1,freezeColumns:Ne=0,cellActivationBehavior:Pe=`second-click`,rowSelectionMode:Fe=`auto`,onHeaderMenuClick:Ie,getGroupDetails:Le,onSearchClose:Re,onItemHovered:ze,onSelectionCleared:Be,showSearch:Ve,onVisibleRegionChanged:He,gridSelection:Ue,onGridSelectionChange:We,minColumnWidth:Ge=50,maxColumnWidth:Ke=500,maxColumnAutoWidth:qe,provideEditor:Je,trailingRowOptions:Ye,freezeTrailingRows:Xe=0,allowedFillDirections:q=`orthogonal`,scrollOffsetX:Ze,scrollOffsetY:J,verticalBorder:Qe,onDragOverCell:$e,onDrop:et,onColumnResize:tt,onColumnResizeEnd:nt,onColumnResizeStart:rt,customRenderers:it,fillHandle:at,drawFocusRing:ot=!0,experimental:st,fixedShadowX:ct,fixedShadowY:lt,headerIcons:ut,imageWindowLoader:dt,initialSize:ft,isDraggable:pt,onDragLeave:mt,onRowMoved:ht,overscrollX:gt,overscrollY:_t,preventDiagonalScrolling:vt,rightElement:yt,rightElementProps:bt,trapFocus:wt=!1,smoothScrollX:Tt,smoothScrollY:Et,scaleToRem:Dt=!1,rowHeight:Ot=34,headerHeight:kt=36,groupHeaderHeight:At=kt,theme:jt,isOutsideClick:Mt,renderers:Nt}=e,Pt=typeof e.rowMarkers==`string`?void 0:e.rowMarkers,Ft=Pt?.kind??e.rowMarkers??`none`,Lt=Pt?.width??e.rowMarkerWidth,zt=Pt?.startIndex??e.rowMarkerStartIndex??1,Bt=Pt?.theme??e.rowMarkerTheme,Vt=Pt?.checkboxStyle??`square`,Ht=Math.max(Ge,20),Ut=Math.max(Ke,Ht),Wt=Math.max(qe??Ut,Ht),Gt=K.useMemo(()=>typeof window>`u`?{fontSize:`16px`}:window.getComputedStyle(document.documentElement),[]),{rowHeight:Kt,headerHeight:qt,groupHeaderHeight:Jt,theme:Yt,overscrollX:Xt,overscrollY:Zt}=Uo({groupHeaderHeight:At,headerHeight:kt,overscrollX:gt,overscrollY:_t,remSize:K.useMemo(()=>Number.parseFloat(Gt.fontSize),[Gt]),rowHeight:Ot,scaleToRem:Dt,theme:jt}),Qt=Ko(ge),$t=Lt??(y>1e4?48:y>1e3?44:y>100?36:32),en=Ft!==`none`,Y=en?1:0,tn=ve!==void 0,nn=Ye?.sticky===!0,[rn,an]=K.useState(!1),cn=Ve??rn,dn=K.useCallback(()=>{Re===void 0?an(!1):Re()},[Re]),X=K.useMemo(()=>Ue===void 0?void 0:Qo(Ue,Y),[Ue,Y])??n,fn=K.useRef();fn.current===void 0&&(fn.current=new AbortController),K.useEffect(()=>()=>fn?.current.abort(),[]);let[pn,mn]=yo(ae,b,Y,fn.current,y),gn=K.useCallback((e,t,n)=>{if(be===void 0)return!0;let r=[e[0]-Y,e[1]];return be?.(r,t,n)},[Y,be]),_n=K.useRef(Ue),vn=K.useCallback((e,t)=>{t&&(e=Ao(e,pn,Y,te,fn.current)),We===void 0?r(e):(_n.current=Qo(e,-Y),We(_n.current))},[We,pn,Y,te]),yn=Ct(tt,K.useCallback((e,t,n,r)=>{tt?.(v[n-Y],t,n-Y,r)},[tt,Y,v])),bn=Ct(nt,K.useCallback((e,t,n,r)=>{nt?.(v[n-Y],t,n-Y,r)},[nt,Y,v])),xn=Ct(rt,K.useCallback((e,t,n,r)=>{rt?.(v[n-Y],t,n-Y,r)},[rt,Y,v])),Sn=Ct(E,K.useCallback((e,t)=>E?.({...e,columnIndex:e.columnIndex-Y},t)??!1,[E,Y])),Cn=Ct(D,K.useCallback((e,t)=>D?.({...e,col:e.col-Y},t)??!1,[D,Y])),wn=K.useCallback(e=>{if(De!==void 0){let t=De(Qo(e,-Y));return typeof t==`boolean`?t:Qo(t,Y)}return!0},[De,Y]),[Tn,En,Dn]=vo(X,vn,Ce,we,Ee,B),On=K.useMemo(()=>pe(je(),Yt),[Yt]),[kn,An]=K.useState([0,0,0]),jn=K.useMemo(()=>{if(Nt===void 0)return{};let e={};for(let t of Nt)e[t.kind]=t;return e},[Nt]),Mn=K.useCallback(e=>e.kind===U.Custom?it?.find(t=>t.isMatch(e)):jn[e.kind],[it,jn]),{sizedColumns:Nn,nonGrowWidth:Pn}=Qn(v,y,mn,kn[0]-(Y===0?0:$t)-kn[2],Ht,Wt,On,Mn,fn.current);Ft!==`none`&&(Pn+=$t);let Fn=K.useMemo(()=>Nn.some(e=>e.group!==void 0),[Nn]),In=Fn?qt+Jt:qt,Ln=X.rows.length,Rn=Ft===`none`?void 0:Ln===0?!1:Ln===y?!0:void 0,zn=K.useMemo(()=>Ft===`none`?Nn:[{title:``,width:$t,icon:void 0,hasMenu:!1,style:`normal`,themeOverride:Bt,rowMarker:Vt,rowMarkerChecked:Rn},...Nn],[Ft,Nn,$t,Bt,Vt,Rn]),[Bn,Vn]=K.useMemo(()=>[J!==void 0&&typeof Kt==`number`?Math.floor(J/Kt):0,J!==void 0&&typeof Kt==`number`?-(J%Kt):0],[J,Kt]),Hn=K.useRef({height:1,width:1,x:0,y:0}),Un=K.useMemo(()=>({x:Hn.current.x,y:Bn,width:Hn.current.width??1,height:Hn.current.height??1,ty:Vn}),[Vn,Bn]),Wn=K.useRef(!1),[Gn,Kn,qn]=Rt(Un);Hn.current=Gn;let Jn=(Gn.height??1)>1;K.useLayoutEffect(()=>{if(J!==void 0&&u.current!==null&&Jn){if(u.current.scrollTop===J)return;u.current.scrollTop=J,u.current.scrollTop!==J&&qn(),Wn.current=!0}},[J,Jn,qn]);let Yn=(Gn.width??1)>1;K.useLayoutEffect(()=>{if(Ze!==void 0&&u.current!==null&&Yn){if(u.current.scrollLeft===Ze)return;u.current.scrollLeft=Ze,u.current.scrollLeft!==Ze&&qn(),Wn.current=!0}},[Ze,Yn,qn]);let Xn=Gn.x+Y,$n=Gn.y,er=K.useRef(null),tr=K.useCallback(e=>{e===!0?er.current?.focus():window.requestAnimationFrame(()=>{er.current?.focus()})},[]),nr=tn?y+1:y,rr=K.useCallback(e=>{let t=Y===0?e:e.map(e=>({...e,location:[e.location[0]-Y,e.location[1]]})),n=se?.(t);if(n!==!0)for(let e of t)F?.(e.location,e.value);return n},[F,se,Y]),[ir,ar]=K.useState(),or=X.current!==void 0&&X.current.range.width*X.current.range.height>1?X.current.range:void 0,sr=ot?X.current?.cell:void 0,cr=sr?.[0],lr=sr?.[1],ur=K.useMemo(()=>{if((z===void 0||z.length===0)&&(or??cr??lr??ir)===void 0)return;let e=[];if(z!==void 0)for(let t of z){let n=zn.length-t.range.x-Y;n>0&&e.push({color:t.color,range:{...t.range,x:t.range.x+Y,width:Math.min(n,t.range.width)},style:t.style})}return ir!==void 0&&e.push({color:me(On.accentColor,0),range:ir,style:`dashed`}),or!==void 0&&e.push({color:me(On.accentColor,.5),range:or,style:`solid-outline`}),cr!==void 0&&lr!==void 0&&e.push({color:On.accentColor,range:{x:cr,y:lr,width:1,height:1},style:`solid-outline`}),e.length>0?e:void 0},[ir,or,cr,lr,z,zn.length,On.accentColor,Y]),dr=K.useRef(zn);dr.current=zn;let fr=K.useCallback(([e,t],n=!1)=>{let r=tn&&t===nr-1;if(e===0&&en)return r?$o:{kind:xe.Marker,allowOverlay:!1,checkboxStyle:Vt,checked:X?.rows.hasIndex(t)===!0,markerKind:Ft===`clickable-number`?`number`:Ft,row:zt+t,drawHandle:ht!==void 0,cursor:Ft===`clickable-number`?`pointer`:void 0};if(r){let t=e===Y?Ye?.hint??``:``,n=dr.current[e];if(n?.trailingRowOptions?.disabled===!0)return $o;{let e=n?.trailingRowOptions?.hint??t,r=n?.trailingRowOptions?.addIcon??Ye?.addIcon;return{kind:xe.NewRow,hint:e,allowOverlay:!1,icon:r}}}else{let r=e-Y;if(n||st?.strict===!0){let e=Hn.current,n=e.x>r||r>e.x+e.width||e.y>t||t>e.y+e.height||t>=br.current,i=r===e.extras?.selected?.[0]&&t===e.extras?.selected[1],a=!1;if(e.extras?.freezeRegions!==void 0){for(let n of e.extras.freezeRegions)if(Ur(n,r,t)){a=!0;break}}if(n&&!i&&!a)return $o}let i=b([r,t]);return Y!==0&&i.span!==void 0&&(i={...i,span:[i.span[0]+Y,i.span[1]+Y]}),i}},[tn,nr,en,Vt,X?.rows,Ft,zt,ht,Y,Ye?.hint,Ye?.addIcon,st?.strict,b]),pr=K.useCallback(e=>{let t=Le?.(e)??{name:e};return P!==void 0&&e!==``&&(t={icon:t.icon,name:t.name,overrideTheme:t.overrideTheme,actions:[...t.actions??[],{title:`Rename`,icon:`renameIcon`,onClick:e=>Mr({group:t.name,bounds:e.bounds})}]}),t},[Le,P]),mr=K.useCallback(e=>{let[t,n]=e.cell,r=zn[t],i=r?.group===void 0?void 0:pr(r.group)?.overrideTheme,o=r?.themeOverride,s=m?.(n);a({...e,theme:pe(On,i,o,s,e.content.themeOverride)})},[m,zn,pr,On]),hr=K.useCallback((e,t,n)=>{if(X.current===void 0)return;let[r,i]=X.current.cell,a=fr([r,i]);if(a.kind!==U.Boolean&&a.allowOverlay){let t=a;if(n!==void 0)switch(t.kind){case U.Number:{let e=oe(()=>n===`-`?-0:Number.parseFloat(n),0);t={...t,data:Number.isNaN(e)?0:e};break}case U.Text:case U.Markdown:case U.Uri:t={...t,data:n};break}mr({target:e,content:t,initialValue:n,cell:[r,i],highlight:n===void 0,forceEditMode:n!==void 0})}else a.kind===U.Boolean&&t&&a.readonly!==!0&&(rr([{location:X.current.cell,value:{...a,data:Po(a.data)}}]),er.current?.damage([{cell:X.current.cell}]))},[fr,X,rr,mr]),gr=K.useCallback((e,t)=>{let n=er.current?.getBounds(e,t);if(n===void 0||u.current===null)return;let r=fr([e,t]);r.allowOverlay&&mr({target:n,content:r,initialValue:void 0,highlight:!0,cell:[e,t],forceEditMode:!0})},[fr,mr]),_r=K.useCallback((e,t,n=`both`,r=0,i=0,a=void 0)=>{if(u.current!==null){let o=er.current,c=s.current,l=typeof e==`number`?e:e.unit===`cell`?e.amount:void 0,d=typeof t==`number`?t:t.unit===`cell`?t.amount:void 0,f=typeof e!=`number`&&e.unit===`px`?e.amount:void 0,p=typeof t!=`number`&&t.unit===`px`?t.amount:void 0;if(o!==null&&c!==null){let s={x:0,y:0,width:0,height:0},m=0,h=0;if((l!==void 0||d!==void 0)&&(s=o.getBounds((l??0)+Y,d??0)??s,s.width===0||s.height===0))return;let g=c.getBoundingClientRect(),_=g.width/c.offsetWidth;if(f!==void 0&&(s={...s,x:f-g.left-u.current.scrollLeft,width:1}),p!==void 0&&(s={...s,y:p+g.top-u.current.scrollTop,height:1}),s!==void 0){let o={x:s.x-r,y:s.y-i,width:s.width+2*r,height:s.height+2*i},c=0;for(let e=0;e<Ne;e++)c+=Nn[e].width;let l=0,d=Xe+(nn?1:0);d>0&&(l=hn(nr,d,Kt));let f=c*_+g.left+Y*$t*_,p=g.right,v=g.top+In*_,y=g.bottom-l*_,b=s.width+r*2;switch(a?.hAlign){case`start`:p=f+b;break;case`end`:f=p-b;break;case`center`:f=Math.floor((f+p)/2)-b/2,p=f+b;break}let x=s.height+i*2;switch(a?.vAlign){case`start`:y=v+x;break;case`end`:v=y-x;break;case`center`:v=Math.floor((v+y)/2)-x/2,y=v+x;break}f>o.x?m=o.x-f:p<o.x+o.width&&(m=o.x+o.width-p),v>o.y?h=o.y-v:y<o.y+o.height&&(h=o.y+o.height-y),n===`vertical`||typeof e==`number`&&e<Ne?m=0:(n===`horizontal`||typeof t==`number`&&t>=nr-d)&&(h=0),(m!==0||h!==0)&&(_!==1&&(m/=_,h/=_),u.current.scrollTo(m+u.current.scrollLeft,h+u.current.scrollTop))}}}},[Y,Xe,$t,In,Ne,Nn,nr,nn,Kt]),vr=K.useRef(gr),yr=K.useRef(b),br=K.useRef(y);vr.current=gr,yr.current=b,br.current=y;let xr=K.useCallback(async(e,t=!0)=>{if(zn[e]?.trailingRowOptions?.disabled===!0)return;let n=ve?.(),r,i=!0;n!==void 0&&(r=await n,r===`top`&&(i=!1),typeof r==`number`&&(i=!1));let a=0,o=()=>{if(br.current<=y){a<500&&window.setTimeout(o,a),a=50+a*2;return}let n=typeof r==`number`?r:i?y:0;hi.current(e-Y,n),Tn({cell:[e,n],range:{x:e,y:n,width:1,height:1}},!1,!1,`edit`);let s=yr.current([e-Y,n]);s.allowOverlay&&H(s)&&s.readonly!==!0&&t&&window.setTimeout(()=>{vr.current(e,n)},0)};o()},[zn,ve,Y,y,Tn]),Sr=K.useCallback(e=>{let t=Nn[e]?.trailingRowOptions?.targetColumn??Ye?.targetColumn;if(typeof t==`number`)return t+(en?1:0);if(typeof t==`object`){let e=v.indexOf(t);if(e>=0)return e+(en?1:0)}},[Nn,v,en,Ye?.targetColumn]),Cr=K.useRef(),wr=K.useRef(),Tr=K.useCallback((e,t)=>{let[n,r]=t;return pe(On,zn[n]?.themeOverride,m?.(r),e.themeOverride)},[m,zn,On]),Er=K.useCallback(e=>{let t=Ba.value?e.metaKey:e.ctrlKey,n=t&&Se===`multi`,r=t&&V===`multi`,[i,o]=e.location,s=X.columns,c=X.rows,[l,u]=X.current?.cell??[];if(e.kind===`cell`){if(wr.current=void 0,Dr.current=[i,o],i===0&&en){if(tn===!0&&o===y||Ft===`number`||Se===`none`)return;let r=fr(e.location);if(r.kind!==xe.Marker)return;if(ht!==void 0){let t=Mn(r);L(t?.kind===xe.Marker);let n=t?.onClick?.({...e,cell:r,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,theme:Tr(r,e.location),preventDefault:()=>void 0});if(n===void 0||n.checked===r.checked)return}a(void 0),tr();let i=c.hasIndex(o),s=Cr.current;if(Se===`multi`&&(e.shiftKey||e.isLongTouch===!0)&&s!==void 0&&c.hasIndex(s)){let e=[Math.min(s,o),Math.max(s,o)+1];n||Fe===`multi`?En(void 0,e,!0):En(G.fromSingleSelection(e),void 0,n)}else n||e.isTouch||Fe===`multi`?i?En(c.remove(o),void 0,!0):(En(void 0,o,!0),Cr.current=o):i&&c.length===1?En(G.empty(),void 0,t):(En(G.fromSingleSelection(o),void 0,t),Cr.current=o)}else if(i>=Y&&tn&&o===y)xr(Sr(i)??i);else if(l!==i||u!==o){let n=fr(e.location),r=Mn(n);if(r?.onSelect!==void 0){let t=!1;if(r.onSelect({...e,cell:n,posX:e.localEventX,posY:e.localEventY,bounds:e.bounds,preventDefault:()=>t=!0,theme:Tr(n,e.location)}),t)return}let s=nn&&o===y,c=nn&&X!==void 0&&X.current?.cell[1]===y;if((e.shiftKey||e.isLongTouch===!0)&&l!==void 0&&u!==void 0&&X.current!==void 0&&!c){if(s)return;let e=Math.min(i,l),n=Math.max(i,l),r=Math.min(o,u),a=Math.max(o,u);Tn({...X.current,range:{x:e,y:r,width:n-e+1,height:a-r+1}},!0,t,`click`),Cr.current=void 0,tr()}else Tn({cell:[i,o],range:{x:i,y:o,width:1,height:1}},!0,t,`click`),Cr.current=void 0,a(void 0),tr()}}else if(e.kind===`header`)if(Dr.current=[i,o],a(void 0),en&&i===0)Cr.current=void 0,wr.current=void 0,Se===`multi`&&(c.length===y?En(G.empty(),void 0,t):En(G.fromSingleSelection([0,y]),void 0,t),tr());else{let n=wr.current;if(V===`multi`&&(e.shiftKey||e.isLongTouch===!0)&&n!==void 0&&s.hasIndex(n)){let e=[Math.min(n,i),Math.max(n,i)+1];r?Dn(void 0,e,t):Dn(G.fromSingleSelection(e),void 0,t)}else r?(s.hasIndex(i)?Dn(s.remove(i),void 0,t):Dn(void 0,i,t),wr.current=i):V!==`none`&&(Dn(G.fromSingleSelection(i),void 0,t),wr.current=i);Cr.current=void 0,tr()}else e.kind===`group-header`?Dr.current=[i,o]:e.kind===`out-of-bounds`&&!e.isMaybeScrollbar&&(vn(es,!1),a(void 0),tr(),Be?.(),Cr.current=void 0,wr.current=void 0)},[xr,V,tr,Mn,Sr,fr,X,en,nn,Be,ht,Y,Ft,Se,Fe,y,Tn,vn,Dn,En,tn,Tr]),Z=K.useRef(!1),Dr=K.useRef(),Or=K.useRef(Gn),kr=K.useRef(),Ar=K.useCallback(e=>{if(Pr.current=!1,Or.current=Hn.current,e.button!==0&&e.button!==1){kr.current=void 0;return}let t=performance.now();kr.current={button:e.button,time:t,location:e.location},e?.kind===`header`&&(Z.current=!0);let n=e.kind===`cell`&&e.isFillHandle;!n&&e.kind!==`cell`&&e.isEdge||(l({previousSelection:X,fillHandle:n}),Dr.current=void 0,!e.isTouch&&e.button===0&&!n?Er(e):!e.isTouch&&e.button===1&&(Dr.current=e.location))},[X,Er]),[jr,Mr]=K.useState(),Nr=K.useCallback(e=>{if(e.kind!==`group-header`||V!==`multi`)return;let t=Ba.value?e.metaKey:e.ctrlKey,[n]=e.location,r=X.columns;if(n<Y)return;let i=zn[n],a=n,o=n;for(let e=n-1;e>=Y&&sn(i.group,zn[e].group);e--)a--;for(let e=n+1;e<zn.length&&sn(i.group,zn[e].group);e++)o++;if(tr(),t)if(r.hasAll([a,o+1])){let e=r;for(let t=a;t<=o;t++)e=e.remove(t);Dn(e,void 0,t)}else Dn(void 0,[a,o+1],t);else Dn(G.fromSingleSelection([a,o+1]),void 0,t)},[V,tr,X.columns,zn,Y,Dn]),Pr=K.useRef(!1),Fr=K.useCallback(async e=>{if(pn!==void 0&&yn!==void 0){let t=Hn.current.y,n=Hn.current.height,r=pn({x:e,y:t,width:1,height:Math.min(n,y-t)},fn.current.signal);typeof r!=`object`&&(r=await r());let i=Nn[e-Y],a=document.createElement(`canvas`).getContext(`2d`,{alpha:!1});if(a!==null){a.font=On.baseFontFull;let t=Zn(a,On,i,0,r,Ht,Ut,!1,Mn);yn?.(i,t.width,e,t.width)}}},[Nn,pn,Ut,On,Ht,yn,Y,y,Mn]),[Ir,Lr]=K.useState(),Rr=K.useCallback(async(e,t)=>{let n=e.current?.range;if(n===void 0||pn===void 0||t.current===void 0)return;let r=t.current.range;if(C!==void 0){let e=!1;if(C({fillDestination:{...r,x:r.x-Y},patternSource:{...n,x:n.x-Y},preventDefault:()=>e=!0}),e)return}let i=pn(n,fn.current.signal);typeof i!=`object`&&(i=await i());let a=i,o=[];for(let e=0;e<r.width;e++)for(let t=0;t<r.height;t++){let i=[r.x+e,r.y+t];if(ln(i,n))continue;let s=a[t%n.height][e%n.width];Te(s)||!H(s)||o.push({location:i,value:{...s}})}rr(o),er.current?.damage(o.map(e=>({cell:e.location})))},[pn,rr,C,Y]),zr=K.useCallback(()=>{X.current===void 0||X.current.range.width<=1||Rr({...X,current:{...X.current,range:{...X.current.range,width:1}}},X)},[Rr,X]),Br=K.useCallback(()=>{X.current===void 0||X.current.range.height<=1||Rr({...X,current:{...X.current,range:{...X.current.range,height:1}}},X)},[Rr,X]),Hr=K.useCallback((e,t)=>{let n=c;if(l(void 0),ar(void 0),Lr(void 0),Z.current=!1,t)return;if(n?.fillHandle===!0&&X.current!==void 0&&n.previousSelection?.current!==void 0){if(ir===void 0)return;let e={...X,current:{...X.current,range:Wr(n.previousSelection.current.range,ir)}};Rr(n.previousSelection,e),vn(e,!0);return}let[r,i]=e.location,[a,o]=Dr.current??[],s=()=>{Pr.current=!0},u=t=>{let c=t.isTouch||a===r&&o===i;if(c&&x?.([r-Y,i],{...t,preventDefault:s}),t.button===1)return!Pr.current;if(!Pr.current){let a=fr(e.location),o=Mn(a);if(o!==void 0&&o.onClick!==void 0&&c){let n=o.onClick({...t,cell:a,posX:t.localEventX,posY:t.localEventY,bounds:t.bounds,theme:Tr(a,e.location),preventDefault:s});n!==void 0&&!Te(n)&&W(n)&&(rr([{location:t.location,value:n}]),er.current?.damage([{cell:t.location}]))}if(Pr.current||X.current===void 0)return!1;let l=!1;switch(a.activationBehaviorOverride??Pe){case`double-click`:case`second-click`:{if(n?.previousSelection?.current?.cell===void 0)break;let[e,a]=X.current.cell,[o,s]=n.previousSelection.current.cell;l=r===e&&r===o&&i===a&&i===s&&(t.isDoubleClick===!0||Pe===`second-click`);break}case`single-click`:l=!0;break}if(l)return S?.([r-Y,i]),hr(t.bounds,!1),!0}return!1},d=e.location[0]-Y;if(e.isTouch){let t=Hn.current,n=Or.current;if(t.x!==n.x||t.y!==n.y)return;if(e.isLongTouch===!0){if(e.kind===`cell`&&un(X.current?.cell,e.location)){ne?.([d,e.location[1]],{...e,preventDefault:s});return}else if(e.kind===`header`&&X.columns.hasIndex(r)){ie?.(d,{...e,preventDefault:s});return}else if(e.kind===`group-header`){if(d<0)return;N?.(d,{...e,preventDefault:s});return}}e.kind===`cell`?u(e)||Er(e):e.kind===`group-header`?A?.(d,{...e,preventDefault:s}):(e.kind===`header`&&k?.(d,{...e,preventDefault:s}),Er(e));return}if(e.kind===`header`){if(d<0)return;e.isEdge?e.isDoubleClick===!0&&Fr(r):e.button===0&&r===a&&i===o&&k?.(d,{...e,preventDefault:s})}if(e.kind===`group-header`){if(d<0)return;e.button===0&&r===a&&i===o&&(A?.(d,{...e,preventDefault:s}),Pr.current||Nr(e))}e.kind===`cell`&&(e.button===0||e.button===1)&&u(e),Dr.current=void 0},[c,X,Y,ir,Rr,vn,x,fr,Mn,Pe,Tr,rr,S,hr,ne,ie,N,Er,A,k,Fr,Nr]),Gr=K.useCallback(e=>{let t={...e,location:[e.location[0]-Y,e.location[1]]};ke?.(t),c!==void 0&&e.buttons===0&&(l(void 0),ar(void 0),Lr(void 0),Z.current=!1),Lr(t=>Z.current?[e.scrollEdge[0],0]:e.scrollEdge[0]===t?.[0]&&e.scrollEdge[1]===t[1]?t:c===void 0||(kr.current?.location[0]??0)<Y?void 0:e.scrollEdge)},[c,ke,Y]),Kr=K.useCallback((e,t)=>{Ie?.(e-Y,t)},[Ie,Y]),qr=X?.current?.cell,Jr=K.useCallback((e,t,n,r,i,a)=>{Wn.current=!1;let o=qr;o!==void 0&&(o=[o[0]-Y,o[1]]);let s=Ne===0?void 0:{x:0,y:e.y,width:Ne,height:e.height},c=[];s!==void 0&&c.push(s),Xe>0&&(c.push({x:e.x-Y,y:y-Xe,width:e.width,height:Xe}),Ne>0&&c.push({x:0,y:y-Xe,width:Ne,height:Xe}));let l={x:e.x-Y,y:e.y,width:e.width,height:tn&&e.y+e.height>=y?e.height-1:e.height,tx:i,ty:a,extras:{selected:o,freezeRegion:s,freezeRegions:c}};Hn.current=l,Kn(l),An([t,n,r]),He?.(l,l.tx,l.ty,l.extras)},[qr,Y,tn,y,Ne,Xe,Kn,He]),Yr=Ct(ye,K.useCallback((e,t)=>{ye?.(e-Y,t-Y),V!==`none`&&Dn(G.fromSingleSelection(t),void 0,!0)},[V,ye,Y,Dn])),Xr=K.useRef(!1),Zr=K.useCallback(e=>{if(e.location[0]===0&&Y>0){e.preventDefault();return}Oe?.({...e,location:[e.location[0]-Y,e.location[1]]}),e.defaultPrevented()||(Xr.current=!0),l(void 0)},[Oe,Y]),Qr=K.useCallback(()=>{Xr.current=!1},[]),$r=K.useRef(),ei=K.useCallback(e=>{if(!Ka(e,$r.current)&&($r.current=e,!(kr?.current?.button!==void 0&&kr.current.button>=1))){if(e.buttons!==0&&c!==void 0&&kr.current?.location[0]===0&&e.location[0]===0&&Y===1&&Se===`multi`&&c.previousSelection&&!c.previousSelection.rows.hasIndex(kr.current.location[1])&&X.rows.hasIndex(kr.current.location[1])){let t=Math.min(kr.current.location[1],e.location[1]),n=Math.max(kr.current.location[1],e.location[1])+1;En(G.fromSingleSelection([t,n]),void 0,!1)}if(e.buttons!==0&&c!==void 0&&X.current!==void 0&&!Xr.current&&!Z.current&&(B===`rect`||B===`multi-rect`)){let[t,n]=X.current.cell,[r,i]=e.location;if(i<0&&(i=Hn.current.y),c.fillHandle===!0&&c.previousSelection?.current!==void 0){let e=c.previousSelection.current.range;i=Math.min(i,tn?y-1:y),ar(Vr(e,r,i,q))}else{if(tn&&n===y)return;if(tn&&i===y)if(e.kind===`out-of-bounds`)i--;else return;r=Math.max(r,Y);let a=r-t,o=i-n,s={x:a>=0?t:r,y:o>=0?n:i,width:Math.abs(a)+1,height:Math.abs(o)+1};Tn({...X.current,range:s},!0,!1,`drag`)}}ze?.({...e,location:[e.location[0]-Y,e.location[1]]})}},[q,c,Y,Se,X,B,ze,En,tn,y,Tn]);Ho(Ir,u,K.useCallback(()=>{let e=$r.current;if(e===void 0)return;let[t,n]=e.scrollEdge,[r,i]=e.location,a=Hn.current;t===-1?r=a.extras?.freezeRegion?.x??a.x:t===1&&(r=a.x+a.width),n===-1?i=Math.max(0,a.y):n===1&&(i=Math.min(y-1,a.y+a.height)),r=(0,Ma.default)(r,0,zn.length-1),i=(0,Ma.default)(i,0,y-1),ei({...e,location:[r,i]})},[zn.length,ei,y]));let ti=K.useCallback(e=>{if(X.current===void 0)return;let[t,n]=e,[r,i]=X.current.cell,a=X.current.range,o=a.x,s=a.x+a.width,c=a.y,l=a.y+a.height;if(n!==0)switch(n){case 2:l=y,c=i,_r(0,l,`vertical`);break;case-2:c=0,l=i+1,_r(0,c,`vertical`);break;case 1:c<i?(c++,_r(0,c,`vertical`)):(l=Math.min(y,l+1),_r(0,l,`vertical`));break;case-1:l>i+1?(l--,_r(0,l,`vertical`)):(c=Math.max(0,c-1),_r(0,c,`vertical`));break;default:M(n)}if(t!==0)if(t===2)s=zn.length,o=r,_r(s-1-Y,0,`horizontal`);else if(t===-2)o=Y,s=r+1,_r(o-Y,0,`horizontal`);else{let e=[];if(pn!==void 0){let t=pn({x:o,y:c,width:s-o-Y,height:l-c},fn.current.signal);typeof t==`object`&&(e=Zo(t))}if(t===1){let t=!1;if(o<r){if(e.length>0){let n=(0,qa.default)(o+1,r+1).find(t=>!e.includes(t-Y));n!==void 0&&(o=n,t=!0)}else o++,t=!0;t&&_r(o,0,`horizontal`)}t||(s=Math.min(zn.length,s+1),_r(s-1-Y,0,`horizontal`))}else if(t===-1){let t=!1;if(s>r+1){if(e.length>0){let n=(0,qa.default)(s-1,r,-1).find(t=>!e.includes(t-Y));n!==void 0&&(s=n,t=!0)}else s--,t=!0;t&&_r(s-Y,0,`horizontal`)}t||(o=Math.max(Y,o-1),_r(o-Y,0,`horizontal`))}else M(t)}Tn({cell:X.current.cell,range:{x:o,y:c,width:s-o,height:l-c}},!0,!1,`keyboard-select`)},[pn,X,zn.length,Y,y,_r,Tn]),ni=K.useCallback((e,t,n,r)=>{let i=nr-(n?0:1);if(e=(0,Ma.default)(e,Y,Nn.length-1+Y),t=(0,Ma.default)(t,0,i),e===qr?.[0]&&t===qr?.[1])return!1;if(r&&X.current!==void 0){let n=[...X.current.rangeStack];(X.current.range.width>1||X.current.range.height>1)&&n.push(X.current.range),vn({...X,current:{cell:[e,t],range:{x:e,y:t,width:1,height:1},rangeStack:n}},!0)}else Tn({cell:[e,t],range:{x:e,y:t,width:1,height:1}},!0,!1,`keyboard-nav`);return d.current!==void 0&&d.current[0]===e&&d.current[1]===t&&(d.current=void 0),_r(e-Y,t),!0},[nr,Y,Nn.length,qr,X,_r,vn,Tn]),ri=K.useCallback((e,t)=>{i?.cell!==void 0&&e!==void 0&&W(e)&&(rr([{location:i.cell,value:e}]),window.requestAnimationFrame(()=>{er.current?.damage([{cell:i.cell}])})),tr(!0),a(void 0);let[n,r]=t;if(X.current!==void 0&&(n!==0||r!==0)){let t=X.current.cell[1]===nr-1&&e!==void 0;ni((0,Ma.default)(X.current.cell[0]+n,0,zn.length-1),(0,Ma.default)(X.current.cell[1]+r,0,nr-1),t,!1)}w?.(e,t)},[i?.cell,tr,X,w,rr,nr,ni,zn.length]),ii=K.useMemo(()=>`gdg-overlay-${Xo++}`,[]),ai=K.useCallback(e=>{tr();let t=[];for(let n=e.x;n<e.x+e.width;n++)for(let r=e.y;r<e.y+e.height;r++){let e=b([n-Y,r]);if(!e.allowOverlay&&e.kind!==U.Boolean)continue;let i;if(e.kind===U.Custom){let t=Mn(e),n=t?.provideEditor?.(e);t?.onDelete===void 0?R(n)&&(i=n?.deletedValue?.(e)):i=t.onDelete(e)}else (W(e)&&e.allowOverlay||e.kind===U.Boolean)&&(i=Mn(e)?.onDelete?.(e));i!==void 0&&!Te(i)&&W(i)&&t.push({location:[n,r],value:i})}rr(t),er.current?.damage(t.map(e=>({cell:e.location})))},[tr,b,Mn,rr,Y]),oi=i!==void 0,si=K.useCallback(e=>{let t=()=>{e.stopPropagation(),e.preventDefault()},n={didMatch:!1},{bounds:r}=e,i=X.columns,s=X.rows,c=Qt;if(!oi&&Q(c.clear,e,n))vn(es,!1),Be?.();else if(!oi&&Q(c.selectAll,e,n))vn({columns:G.empty(),rows:G.empty(),current:{cell:X.current?.cell??[Y,0],range:{x:Y,y:0,width:v.length,height:y},rangeStack:[]}},!1);else if(Q(c.search,e,n))o?.current?.focus({preventScroll:!0}),an(!0);else if(Q(c.delete,e,n)){let e=wn?.(X)??!0;if(e!==!1){let t=e===!0?X:e;if(t.current!==void 0){ai(t.current.range);for(let e of t.current.rangeStack)ai(e)}for(let e of t.rows)ai({x:Y,y:e,width:v.length,height:1});for(let e of t.columns)ai({x:e,y:0,width:1,height:y})}}if(n.didMatch)return t(),!0;if(X.current===void 0)return!1;let[l,u]=X.current.cell,d=!1,f=!1;Q(c.scrollToSelectedCell,e,n)?hi.current(l-Y,u):V!==`none`&&Q(c.selectColumn,e,n)?i.hasIndex(l)?Dn(i.remove(l),void 0,!0):V===`single`?Dn(G.fromSingleSelection(l),void 0,!0):Dn(void 0,l,!0):Se!==`none`&&Q(c.selectRow,e,n)?s.hasIndex(u)?En(s.remove(u),void 0,!0):Se===`single`?En(G.fromSingleSelection(u),void 0,!0):En(void 0,u,!0):!oi&&r!==void 0&&Q(c.activateCell,e,n)?u===y&&tn?window.setTimeout(()=>{xr(Sr(l)??l)},0):(S?.([l-Y,u]),hr(r,!0)):X.current.range.height>1&&Q(c.downFill,e,n)?Br():X.current.range.width>1&&Q(c.rightFill,e,n)?zr():Q(c.goToNextPage,e,n)?u+=Math.max(1,Hn.current.height-4):Q(c.goToPreviousPage,e,n)?u-=Math.max(1,Hn.current.height-4):Q(c.goToFirstCell,e,n)?(a(void 0),u=0,l=0):Q(c.goToLastCell,e,n)?(a(void 0),u=2**53-1,l=2**53-1):Q(c.selectToFirstCell,e,n)?(a(void 0),ti([-2,-2])):Q(c.selectToLastCell,e,n)?(a(void 0),ti([2,2])):oi?(Q(c.closeOverlay,e,n)&&a(void 0),Q(c.acceptOverlayDown,e,n)&&(a(void 0),u++),Q(c.acceptOverlayUp,e,n)&&(a(void 0),u--),Q(c.acceptOverlayLeft,e,n)&&(a(void 0),l--),Q(c.acceptOverlayRight,e,n)&&(a(void 0),l++)):(Q(c.goDownCell,e,n)?u+=1:Q(c.goUpCell,e,n)?--u:Q(c.goRightCell,e,n)?l+=1:Q(c.goLeftCell,e,n)?--l:Q(c.goDownCellRetainSelection,e,n)?(u+=1,d=!0):Q(c.goUpCellRetainSelection,e,n)?(--u,d=!0):Q(c.goRightCellRetainSelection,e,n)?(l+=1,d=!0):Q(c.goLeftCellRetainSelection,e,n)?(--l,d=!0):Q(c.goToLastRow,e,n)?u=y-1:Q(c.goToFirstRow,e,n)?u=-(2**53-1):Q(c.goToLastColumn,e,n)?l=2**53-1:Q(c.goToFirstColumn,e,n)?l=-(2**53-1):(B===`rect`||B===`multi-rect`)&&(Q(c.selectGrowDown,e,n)?ti([0,1]):Q(c.selectGrowUp,e,n)?ti([0,-1]):Q(c.selectGrowRight,e,n)?ti([1,0]):Q(c.selectGrowLeft,e,n)?ti([-1,0]):Q(c.selectToLastRow,e,n)?ti([0,2]):Q(c.selectToFirstRow,e,n)?ti([0,-2]):Q(c.selectToLastColumn,e,n)?ti([2,0]):Q(c.selectToFirstColumn,e,n)&&ti([-2,0])),f=n.didMatch);let p=ni(l,u,!1,d),m=n.didMatch;return m&&(p||!f||wt)&&t(),m},[oi,X,Qt,V,Se,B,Y,y,ni,vn,Be,v.length,wn,wt,ai,Dn,En,tn,Sr,xr,S,hr,Br,zr,ti]),ci=K.useCallback(e=>{let t=!1;if(fe!==void 0&&fe({...e,cancel:()=>{t=!0}}),t||si(e)||X.current===void 0)return;let[n,r]=X.current.cell,i=Hn.current;if(_e&&!e.metaKey&&!e.ctrlKey&&X.current!==void 0&&e.key.length===1&&/[ -~]/g.test(e.key)&&e.bounds!==void 0&&H(b([n-Y,Math.max(0,Math.min(r,y-1))]))){if((!tn||r!==y)&&(i.y>r||r>i.y+i.height||i.x>n||n>i.x+i.width))return;hr(e.bounds,!0,e.key),e.stopPropagation(),e.preventDefault()}},[_e,fe,si,X,b,Y,y,tn,hr]),li=K.useCallback((e,t)=>{let n=e.location[0]-Y;if(e.kind===`header`&&ie?.(n,{...e,preventDefault:t}),e.kind===`group-header`){if(n<0)return;N?.(n,{...e,preventDefault:t})}if(e.kind===`cell`){let[r,i]=e.location;ne?.([n,i],{...e,preventDefault:t}),on(X,e.location)||ni(r,i,!1,!1)}},[X,ne,N,ie,Y,ni]),ui=K.useCallback(async e=>{if(!Qt.paste)return;function t(e,t,n,r){let i=typeof n==`object`?n?.join(`
|
|
132
132
|
`)??``:n?.toString()??``;if(!Te(e)&&H(e)&&e.readonly!==!0){let a=T?.(i,e);if(a!==void 0&&W(a))return{location:t,value:a};let o=Mn(e);if(o===void 0)return;if(o.kind===U.Custom){L(e.kind===U.Custom);let n=o.onPaste?.(i,e.data);return n===void 0?void 0:{location:t,value:{...e,data:n}}}else{let a=o.onPaste?.(i,e,{formatted:r,formattedString:typeof r==`string`?r:r?.join(`
|
|
133
133
|
`),rawValue:n});return a===void 0?void 0:(L(a.kind===e.kind),{location:t,value:a})}}}let n=X.columns,r=X.rows,i=u.current?.contains(document.activeElement)===!0||s.current?.contains(document.activeElement)===!0,a;if(X.current===void 0?n.length===1?a=[n.first()??0,0]:r.length===1&&(a=[Y,r.first()??0]):a=[X.current.range.x,X.current.range.y],i&&a!==void 0){let n,r,i=`text/plain`,o=`text/html`;if(navigator.clipboard.read!==void 0){let e=await navigator.clipboard.read();for(let t of e){if(t.types.includes(o)){let e=ko(await(await t.getType(o)).text());if(e!==void 0){n=e;break}}t.types.includes(i)&&(r=await(await t.getType(i)).text())}}else if(navigator.clipboard.readText!==void 0)r=await navigator.clipboard.readText();else if(e!==void 0&&e?.clipboardData!==null)e.clipboardData.types.includes(o)&&(n=ko(e.clipboardData.getData(o))),n===void 0&&e.clipboardData.types.includes(i)&&(r=e.clipboardData.getData(i));else return;let[s,c]=a,l=[];do{if(Ae===void 0){let e=fr(a),i=r??n?.map(e=>e.map(e=>e.rawValue).join(` `)).join(` `)??``,o=t(e,a,i,void 0);o!==void 0&&l.push(o);break}if(n===void 0){if(r===void 0)return;n=Mo(r)}if(Ae===!1||typeof Ae==`function`&&Ae?.([a[0]-Y,a[1]],n.map(e=>e.map(e=>e.rawValue?.toString()??``)))!==!0)return;for(let[e,r]of n.entries()){if(e+c>=y)break;for(let[n,i]of r.entries()){let r=[n+s,e+c],[a,o]=r;if(a>=zn.length||o>=nr)continue;let u=t(fr(r),r,i.rawValue,i.formatted);u!==void 0&&l.push(u)}}}while(!1);rr(l),er.current?.damage(l.map(e=>({cell:e.location})))}},[T,Mn,fr,X,Qt.paste,zn.length,rr,nr,Ae,Y,y]);St(`paste`,ui,f,!1,!0);let di=K.useCallback(async(e,t)=>{if(!Qt.copy)return;let n=t===!0||u.current?.contains(document.activeElement)===!0||s.current?.contains(document.activeElement)===!0,r=X.columns,i=X.rows,a=(t,n)=>{No(Me?[n.map(e=>({kind:U.Text,data:v[e].title,displayData:v[e].title,allowOverlay:!1})),...t]:t,n,e)};if(n&&pn!==void 0){if(X.current!==void 0){let e=pn(X.current.range,fn.current.signal);typeof e!=`object`&&(e=await e()),a(e,(0,qa.default)(X.current.range.x-Y,X.current.range.x+X.current.range.width-Y))}else if(i!==void 0&&i.length>0){let e=[...i].map(e=>{let t=pn({x:Y,y:e,width:v.length,height:1},fn.current.signal);return typeof t==`object`?t[0]:t().then(e=>e[0])});e.some(e=>e instanceof Promise)?a(await Promise.all(e),(0,qa.default)(v.length)):a(e,(0,qa.default)(v.length))}else if(r.length>0){let e=[],t=[];for(let n of r){let r=pn({x:n,y:0,width:1,height:y},fn.current.signal);typeof r!=`object`&&(r=await r()),e.push(r),t.push(n-Y)}e.length===1?a(e[0],t):a(e.reduce((e,t)=>e.map((e,n)=>[...e,...t[n]])),t)}}},[v,pn,X,Qt.copy,Y,y,Me]);St(`copy`,di,f,!1,!1),St(`cut`,K.useCallback(async e=>{if(Qt.cut&&(u.current?.contains(document.activeElement)===!0||s.current?.contains(document.activeElement)===!0)&&(await di(e),X.current!==void 0)){let e={current:{cell:X.current.cell,range:X.current.range,rangeStack:[]},rows:G.empty(),columns:G.empty()},t=wn?.(e);if(t===!1||(e=t===!0?e:t,e.current===void 0))return;ai(e.current.range)}},[ai,X,Qt.cut,di,wn]),f,!1,!1);let fi=K.useCallback((e,t)=>{if(ce!==void 0){Y!==0&&(e=e.map(e=>[e[0]-Y,e[1]])),ce(e,t);return}if(e.length===0||t===-1)return;let[n,r]=e[t];d.current!==void 0&&d.current[0]===n&&d.current[1]===r||(d.current=[n,r],ni(n,r,!1,!1))},[ce,Y,ni]),[pi,mi]=Ue?.current?.cell??[],hi=K.useRef(_r);hi.current=_r,K.useLayoutEffect(()=>{!Wn.current&&pi!==void 0&&mi!==void 0&&(pi!==_n.current?.current?.cell[0]||mi!==_n.current?.current?.cell[1])&&hi.current(pi,mi),Wn.current=!1},[pi,mi]);let gi=X.current!==void 0&&(X.current.cell[0]>=zn.length||X.current.cell[1]>=nr);K.useLayoutEffect(()=>{gi&&vn(es,!1)},[gi,vn]);let _i=K.useMemo(()=>tn===!0&&Ye?.tint===!0?G.fromSingleSelection(nr-1):G.empty(),[nr,tn,Ye?.tint]),vi=K.useCallback(e=>typeof Qe==`boolean`?Qe:Qe?.(e-Y)??!0,[Y,Qe]),yi=K.useMemo(()=>{if(jr===void 0||s.current===null)return null;let{bounds:e,group:t}=jr,n=s.current.getBoundingClientRect();return K.createElement(ho,{bounds:e,group:t,canvasBounds:n,onClose:()=>Mr(void 0),onFinish:e=>{Mr(void 0),P?.(t,e)}})},[P,jr]),bi=Math.min(zn.length,Ne+(en?1:0));K.useImperativeHandle(t,()=>({appendRow:(e,t)=>xr(e+Y,t),updateCells:e=>(Y!==0&&(e=e.map(e=>({cell:[e.cell[0]+Y,e.cell[1]]}))),er.current?.damage(e)),getBounds:(e,t)=>{if(!(s?.current===null||u?.current===null)){if(e===void 0&&t===void 0){let e=s.current.getBoundingClientRect(),t=e.width/u.current.clientWidth;return{x:e.x-u.current.scrollLeft*t,y:e.y-u.current.scrollTop*t,width:u.current.scrollWidth*t,height:u.current.scrollHeight*t}}return er.current?.getBounds((e??0)+Y,t)}},focus:()=>er.current?.focus(),emit:async e=>{switch(e){case`delete`:ci({bounds:void 0,cancel:()=>void 0,stopPropagation:()=>void 0,preventDefault:()=>void 0,ctrlKey:!1,key:`Delete`,keyCode:46,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case`fill-right`:ci({bounds:void 0,cancel:()=>void 0,stopPropagation:()=>void 0,preventDefault:()=>void 0,ctrlKey:!0,key:`r`,keyCode:82,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case`fill-down`:ci({bounds:void 0,cancel:()=>void 0,stopPropagation:()=>void 0,preventDefault:()=>void 0,ctrlKey:!0,key:`d`,keyCode:68,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case`copy`:await di(void 0,!0);break;case`paste`:await ui();break}},scrollTo:_r,remeasureColumns:e=>{for(let t of e)Fr(t+Y)}}),[xr,Fr,di,ci,ui,Y,_r]);let[xi,Si]=qr??[],Ci=K.useCallback(e=>{let[t,n]=e;if(n===-1){V!==`none`&&(Dn(G.fromSingleSelection(t),void 0,!1),tr());return}xi===t&&Si===n||(Tn({cell:e,range:{x:t,y:n,width:1,height:1}},!0,!1,`keyboard-nav`),_r(t,n))},[V,tr,_r,xi,Si,Tn,Dn]),[wi,Ti]=K.useState(!1),Ei=K.useRef((0,xt.default)(e=>{Ti(e)},5)),Di=K.useCallback(()=>{Ei.current(!0),X.current===void 0&&X.columns.length===0&&X.rows.length===0&&c===void 0&&Tn({cell:[Y,$n],range:{x:Y,y:$n,width:1,height:1}},!0,!1,`keyboard-select`)},[$n,X,c,Y,Tn]),Oi=K.useCallback(()=>{Ei.current(!1)},[]),[ki,Ai]=K.useMemo(()=>{let e,t=st?.scrollbarWidthOverride??It(),n=y+(tn?1:0);if(typeof Kt==`number`)e=In+n*Kt;else{let t=0,r=Math.min(n,10);for(let e=0;e<r;e++)t+=Kt(e);t=Math.floor(t/r),e=In+n*t}e+=t;let r=zn.reduce((e,t)=>t.width+e,0)+t;return[`${Math.min(1e5,r)}px`,`${Math.min(1e5,e)}px`]},[zn,st?.scrollbarWidthOverride,Kt,y,tn,In]),ji=K.useMemo(()=>j(On),[On]);return K.createElement(le.Provider,{value:On},K.createElement(zo,{style:ji,className:re,inWidth:g??ki,inHeight:_??Ai},K.createElement(fo,{fillHandle:at,drawFocusRing:ot,experimental:st,fixedShadowX:ct,fixedShadowY:lt,getRowThemeOverride:m,headerIcons:ut,imageWindowLoader:dt,initialSize:ft,isDraggable:pt,onDragLeave:mt,onRowMoved:ht,overscrollX:Xt,overscrollY:Zt,preventDiagonalScrolling:vt,rightElement:yt,rightElementProps:bt,smoothScrollX:Tt,smoothScrollY:Et,className:re,enableGroups:Fn,onCanvasFocused:Di,onCanvasBlur:Oi,canvasRef:s,onContextMenu:li,theme:On,cellXOffset:Xn,cellYOffset:$n,accessibilityHeight:Gn.height,onDragEnd:Qr,columns:zn,nonGrowWidth:Pn,drawHeader:Sn,onColumnProposeMove:ee,drawCell:Cn,disabledRows:_i,freezeColumns:bi,lockColumns:Y,firstColAccessible:Y===0,getCellContent:fr,minColumnWidth:Ht,maxColumnWidth:Ut,searchInputRef:o,showSearch:cn,onSearchClose:dn,highlightRegions:ur,getCellsForSelection:pn,getGroupDetails:pr,headerHeight:qt,isFocused:wi,groupHeaderHeight:Fn?Jt:0,freezeTrailingRows:Xe+(tn&&Ye?.sticky===!0?1:0),hasAppendRow:tn,onColumnResize:yn,onColumnResizeEnd:bn,onColumnResizeStart:xn,onCellFocused:Ci,onColumnMoved:Yr,onDragStart:Zr,onHeaderMenuClick:Kr,onItemHovered:ei,isFilling:c?.fillHandle===!0,onMouseMove:Gr,onKeyDown:ci,onKeyUp:he,onMouseDown:Ar,onMouseUp:Hr,onDragOverCell:$e,onDrop:et,onSearchResultsChanged:fi,onVisibleRegionChanged:Jr,clientSize:kn,rowHeight:Kt,searchResults:I,searchValue:de,onSearchValueChange:ue,rows:nr,scrollRef:u,selection:X,translateX:Gn.tx,translateY:Gn.ty,verticalBorder:vi,gridRef:er,getCellRenderer:Mn}),yi,i!==void 0&&K.createElement(K.Suspense,{fallback:null},K.createElement(Yo,{...i,validateCell:gn,bloom:O,id:ii,getCellRenderer:Mn,className:st?.isSubGrid===!0?`click-outside-ignore`:void 0,provideEditor:Je,imageEditorOverride:p,onFinishEditing:ri,markdownDivCreateNode:h,isOutsideClick:Mt}))))}),ns=20,rs={getAccessibilityString:e=>e.data?.toString()??`false`,kind:U.Boolean,needsHover:!0,useLabel:!1,needsHoverPosition:!0,measure:()=>50,draw:e=>is(e,e.cell.data,ge(e.cell),e.cell.maxSize??ns),onDelete:e=>({...e,data:!1}),onClick:e=>{let{cell:t,posX:n,posY:r,bounds:i,theme:a}=e,{width:o,height:s,x:c,y:l}=i,u=t.maxSize??ns,d=Math.floor(i.y+s/2),f=Ot(u,s,a.cellVerticalPadding),p=Et(Dt(t.contentAlign??`center`,c,o,a.cellHorizontalPadding,f),d,f),m=kt(c+n,l+r,p);if(ge(t)&&m)return{...t,data:Po(t.data)}},onPaste:(e,t)=>{let n=null;return e.toLowerCase()===`true`?n=!0:e.toLowerCase()===`false`?n=!1:e.toLowerCase()===`indeterminate`&&(n=void 0),n===t.data?void 0:{...t,data:n}}};function is(e,t,n,r){if(!n&&t===null)return;let{ctx:i,hoverAmount:a,theme:o,rect:s,highlighted:c,hoverX:l,hoverY:u,cell:{contentAlign:d}}=e,{x:f,y:p,width:m,height:h}=s,g=.35,_=n?1-g+g*a:.4;t===null&&(_*=a),_!==0&&(i.globalAlpha=_,ni(i,o,t,f,p,m,h,c,l,u,r,d),i.globalAlpha=1)}var as=Me(`div`)({name:`BubblesOverlayEditorStyle`,class:`gdg-b1ygi5by`,propsAsIs:!1}),os=e=>{let{bubbles:t}=e;return K.createElement(as,null,t.map((e,t)=>K.createElement(`div`,{key:t,className:`boe-bubble`},e)),K.createElement(`textarea`,{className:`gdg-input`,autoFocus:!0}))},ss={getAccessibilityString:e=>zt(e.data),kind:U.Bubble,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:(e,t,n)=>t.data.reduce((t,n)=>e.measureText(n).width+t+20,0)+2*n.cellHorizontalPadding-4,draw:e=>ls(e,e.cell.data),provideEditor:()=>e=>{let{value:t}=e;return K.createElement(os,{bubbles:t.data})},onPaste:()=>void 0},cs=4;function ls(e,t){let{rect:n,theme:r,ctx:i,highlighted:a}=e,{x:o,y:s,width:c,height:l}=n,u=cs,d=o+r.cellHorizontalPadding,f=[];for(let e of t){if(d>o+c)break;let t=wn(e,i,r.baseFontFull).width;f.push({x:d,width:t}),d+=t+16+u}i.beginPath();for(let e of f)Ln(i,e.x,s+(l-20)/2,e.width+16,20,r.roundingRadius??20/2);i.fillStyle=a?r.bgBubbleSelected:r.bgBubble,i.fill();for(let[e,n]of f.entries())i.beginPath(),i.fillStyle=r.textBubble,i.fillText(t[e],n.x+8,s+l/2+En(i,r))}var us=Me(`div`)({name:`DrilldownOverlayEditorStyle`,class:`gdg-d4zsq0x`,propsAsIs:!1}),ds=e=>{let{drilldowns:t}=e;return K.createElement(us,null,t.map((e,t)=>K.createElement(`div`,{key:t,className:`doe-bubble`},e.img!==void 0&&K.createElement(`img`,{src:e.img}),K.createElement(`div`,null,e.text))))},fs={getAccessibilityString:e=>zt(e.data.map(e=>e.text)),kind:U.Drilldown,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:(e,t,n)=>t.data.reduce((t,n)=>e.measureText(n.text).width+t+20+(n.img===void 0?0:18),0)+2*n.cellHorizontalPadding-4,draw:e=>gs(e,e.cell.data),provideEditor:()=>e=>{let{value:t}=e;return K.createElement(ds,{drilldowns:t.data})},onPaste:()=>void 0},ps=4,ms={};function hs(e,t,n,r){let i=Math.ceil(window.devicePixelRatio),a=n-10,o=n*i,s=r+5,c=r*3,l=(c+10)*i,u=`${e},${t},${i},${n}`;if(ms[u]!==void 0)return{el:ms[u],height:o,width:l,middleWidth:4*i,sideWidth:s*i,padding:5*i,dpr:i};let d=document.createElement(`canvas`),f=d.getContext(`2d`);return f===null?null:(d.width=l,d.height=o,f.scale(i,i),ms[u]=d,f.beginPath(),Ln(f,5,5,c,a,r),f.shadowColor=`rgba(24, 25, 34, 0.4)`,f.shadowBlur=1,f.fillStyle=e,f.fill(),f.shadowColor=`rgba(24, 25, 34, 0.3)`,f.shadowOffsetY=1,f.shadowBlur=5,f.fillStyle=e,f.fill(),f.shadowOffsetY=0,f.shadowBlur=0,f.shadowBlur=0,f.beginPath(),Ln(f,5.5,5.5,c,a,r),f.strokeStyle=t,f.lineWidth=1,f.stroke(),{el:d,height:o,width:l,sideWidth:s*i,middleWidth:r*i,padding:5*i,dpr:i})}function gs(e,t){let{rect:n,theme:r,ctx:i,imageLoader:a,col:o,row:s}=e,{x:c,width:l}=n,u=r.baseFontFull,d=Nn(i,u),f=Math.min(n.height,Math.max(16,Math.ceil(d*r.lineHeight)*2)),p=Math.floor(n.y+(n.height-f)/2),m=f-10,h=ps,g=c+r.cellHorizontalPadding,_=r.roundingRadius??6,v=hs(r.bgCell,r.drilldownBorder,f,_),y=[];for(let e of t){if(g>c+l)break;let t=wn(e.text,i,u).width,n=0;e.img!==void 0&&a.loadOrGetImage(e.img,o,s)!==void 0&&(n=m-8+4);let r=t+n+16;y.push({x:g,width:r}),g+=r+h}if(v!==null){let{el:e,height:t,middleWidth:n,sideWidth:r,width:a,dpr:o,padding:s}=v,c=r/o,l=s/o;for(let o of y){let s=Math.floor(o.x),u=Math.floor(o.width),d=u-(c-l)*2;i.imageSmoothingEnabled=!1,i.drawImage(e,0,0,r,t,s-l,p,c,f),d>0&&i.drawImage(e,r,0,n,t,s+(c-l),p,d,f),i.drawImage(e,a-r,0,r,t,s+u-(c-l),p,c,f),i.imageSmoothingEnabled=!0}}i.beginPath();for(let[e,n]of y.entries()){let c=t[e],l=n.x+8;if(c.img!==void 0){let e=a.loadOrGetImage(c.img,o,s);if(e!==void 0){let t=m-8,n=0,a=0,o=e.width,s=e.height;o>s?(n+=(o-s)/2,o=s):s>o&&(a+=(s-o)/2,s=o),i.beginPath(),Ln(i,l,p+f/2-t/2,t,t,r.roundingRadius??3),i.save(),i.clip(),i.drawImage(e,n,a,o,s,l,p+f/2-t/2,t,t),i.restore(),l+=t+4}}i.beginPath(),i.fillStyle=r.textBubble,i.fillText(c.text,l,p+f/2+En(i,r))}}var _s={getAccessibilityString:e=>e.data.join(`, `),kind:U.Image,needsHover:!1,useLabel:!1,needsHoverPosition:!1,draw:e=>ys(e,e.cell.displayData??e.cell.data,e.cell.rounding??e.theme.roundingRadius??4,e.cell.contentAlign),measure:(e,t)=>t.data.length*50,onDelete:e=>({...e,data:[]}),provideEditor:()=>e=>{let{value:t,onFinishedEditing:n,imageEditorOverride:r}=e,i=r??Ht;return K.createElement(i,{urls:t.data,canWrite:t.readonly!==!1,onCancel:n,onChange:e=>{n({...t,data:[e]})}})},onPaste:(e,t)=>{e=e.trim();let n=e.split(`,`).map(e=>{try{return new URL(e),e}catch{return}}).filter(e=>e!==void 0);if(!(n.length===t.data.length&&n.every((e,n)=>e===t.data[n])))return{...t,data:n}}},vs=4;function ys(e,t,n,r){let{rect:i,col:a,row:o,theme:s,ctx:c,imageLoader:l}=e,{x:u,y:d,height:f,width:p}=i,m=f-s.cellVerticalPadding*2,h=[],g=0;for(let e=0;e<t.length;e++){let n=t[e];if(n.length===0)continue;let r=l.loadOrGetImage(n,a,o);if(r!==void 0){h[e]=r;let t=r.width*(m/r.height);g+=t+vs}}if(g===0)return;g-=vs;let _=u+s.cellHorizontalPadding;r===`right`?_=Math.floor(u+p-s.cellHorizontalPadding-g):r===`center`&&(_=Math.floor(u+p/2-g/2));for(let e of h){if(e===void 0)continue;let t=e.width*(m/e.height);n>0&&(c.beginPath(),Ln(c,_,d+s.cellVerticalPadding,t,m,n),c.save(),c.clip()),c.drawImage(e,_,d+s.cellVerticalPadding,t,m),n>0&&c.restore(),_+=t+vs}}function bs(e,t){let n=e*49632+t*325176;return n^=n<<13,n^=n>>17,n^=n<<5,n/4294967295*2}var xs={getAccessibilityString:()=>``,kind:U.Loading,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:()=>120,draw:e=>{let{cell:t,col:n,row:r,ctx:i,rect:a,theme:o}=e;if(t.skeletonWidth===void 0||t.skeletonWidth===0)return;let s=t.skeletonWidth;t.skeletonWidthVariability!==void 0&&t.skeletonWidthVariability>0&&(s+=Math.round(bs(n,r)*t.skeletonWidthVariability));let c=o.cellHorizontalPadding,l=t.skeletonHeight??Math.min(18,a.height-2*o.cellVerticalPadding);Ln(i,a.x+c,a.y+(a.height-l)/2,s,l,o.roundingRadius??3),i.fillStyle=me(o.textDark,.1),i.fill()},onPaste:()=>void 0},Ss=()=>e=>e.targetWidth,Cs=Me(`div`)({name:`MarkdownOverlayEditorStyle`,class:`gdg-m1pnx84e`,propsAsIs:!1,vars:{"m1pnx84e-0":[Ss(),`px`]}}),ws=e=>{let{value:t,onChange:n,forceEditMode:r,createNode:i,targetRect:a,onFinish:o,validatedSelection:s}=e,c=t.data,l=t.readonly===!0,[u,d]=K.useState(c===``||r),f=K.useCallback(()=>{d(e=>!e)},[]),p=c?`gdg-ml-6`:``;return u?K.createElement(Cs,{targetWidth:a.width-20},K.createElement(Yt,{autoFocus:!0,highlight:!1,validatedSelection:s,value:c,onKeyDown:e=>{e.key===`Enter`&&e.stopPropagation()},onChange:n}),K.createElement(`div`,{className:`gdg-edit-icon gdg-checkmark-hover ${p}`,onClick:()=>o(t)},K.createElement(jt,null))):K.createElement(Cs,{targetWidth:a.width},K.createElement(Wt,{contents:c,createNode:i}),!l&&K.createElement(K.Fragment,null,K.createElement(`div`,{className:`spacer`}),K.createElement(`div`,{className:`gdg-edit-icon gdg-edit-hover ${p}`,onClick:f},K.createElement(At,null))),K.createElement(`textarea`,{className:`gdg-md-edit-textarea gdg-input`,autoFocus:!0}))},Ts={getAccessibilityString:e=>e.data?.toString()??``,kind:U.Markdown,needsHover:!1,needsHoverPosition:!1,drawPrep:jn,measure:(e,t,n)=>{let r=t.data.split(`
|
|
134
|
-
`)[0];return e.measureText(r).width+2*n.cellHorizontalPadding},draw:e=>In(e,e.cell.data,e.cell.contentAlign),onDelete:e=>({...e,data:``}),provideEditor:()=>e=>{let{onChange:t,value:n,target:r,onFinishedEditing:i,markdownDivCreateNode:a,forceEditMode:o,validatedSelection:s}=e;return K.createElement(ws,{onFinish:i,targetRect:r,value:n,validatedSelection:s,onChange:e=>t({...n,data:e.target.value}),forceEditMode:o,createNode:a})},onPaste:(e,t)=>e===t.data?void 0:{...t,data:e}},Es={getAccessibilityString:e=>e.row.toString(),kind:xe.Marker,needsHover:!0,needsHoverPosition:!1,drawPrep:Ds,measure:()=>44,draw:e=>ks(e,e.cell.row,e.cell.checked,e.cell.markerKind,e.cell.drawHandle,e.cell.checkboxStyle),onClick:e=>{let{bounds:t,cell:n,posX:r,posY:i}=e,{width:a,height:o}=t,s=n.drawHandle?7+(a-7)/2:a/2,c=o/2;if(Math.abs(r-s)<=10&&Math.abs(i-c)<=10)return{...n,checked:!n.checked}},onPaste:()=>void 0};function Ds(e,t){let{ctx:n,theme:r}=e,i=r.markerFontFull,a=t??{};return a?.font!==i&&(n.font=i,a.font=i),a.deprep=Os,n.textAlign=`center`,a}function Os(e){let{ctx:t}=e;t.textAlign=`start`}function ks(e,t,n,r,i,a){let{ctx:o,rect:s,hoverAmount:c,theme:l}=e,{x:u,y:d,width:f,height:p}=s,m=n?1:r===`checkbox-visible`?.6+.4*c:c;if(r!==`number`&&m>0){o.globalAlpha=m;let e=7*(n?c:1);if(ni(o,l,n,i?u+e:u,d,i?f-e:f,p,!0,void 0,void 0,18,`center`,a),i){o.globalAlpha=c,o.beginPath();for(let e of[3,6])for(let t of[-5,-1,3])o.rect(u+e,d+p/2+t,2,2);o.fillStyle=l.textLight,o.fill(),o.beginPath()}o.globalAlpha=1}if(r===`number`||r===`both`&&!n){let e=t.toString(),n=l.markerFontFull,i=u+f/2;r===`both`&&c!==0&&(o.globalAlpha=1-c),o.fillStyle=l.textLight,o.font=n,o.fillText(e,i,d+p/2+En(o,n)),c!==0&&(o.globalAlpha=1)}}var As={getAccessibilityString:()=>``,kind:xe.NewRow,needsHover:!0,needsHoverPosition:!1,measure:()=>200,draw:e=>js(e,e.cell.hint,e.cell.icon),onPaste:()=>void 0};function js(e,t,n){let{ctx:r,rect:i,hoverAmount:a,theme:o,spriteManager:s}=e,{x:c,y:l,width:u,height:d}=i;r.beginPath(),r.globalAlpha=a,r.rect(c+1,l+1,u,d-2),r.fillStyle=o.bgHeaderHovered,r.fill(),r.globalAlpha=1,r.beginPath();let f=t!==``,p=0;if(n!==void 0){let e=d-8,t=c+8/2,i=l+8/2;s.drawSprite(n,`normal`,r,t,i,e,o,f?1:a),p=e}else{p=24;let e=f?12:a*12,t=f?0:(1-a)*12*.5,n=o.cellHorizontalPadding+4;e>0&&(r.moveTo(c+n+t,l+d/2),r.lineTo(c+n+t+e,l+d/2),r.moveTo(c+n+t+e*.5,l+d/2-e*.5),r.lineTo(c+n+t+e*.5,l+d/2+e*.5),r.lineWidth=2,r.strokeStyle=o.bgIconHeader,r.lineCap=`round`,r.stroke())}r.fillStyle=o.textMedium,r.fillText(t,p+c+o.cellHorizontalPadding+.5,l+d/2+En(r,o)),r.beginPath()}var Ms=K.lazy(async()=>await y(()=>import(`./number-overlay-editor-
|
|
135
|
-
`,t.allowWrapping===!0?void 0:1),i=0;for(let t of r)i=Math.max(i,e.measureText(t).width);return i+2*n.cellHorizontalPadding},onDelete:e=>({...e,data:``}),provideEditor:e=>({disablePadding:e.allowWrapping===!0,editor:t=>{let{isHighlighted:n,onChange:r,value:i,validatedSelection:a}=t;return K.createElement(Yt,{style:e.allowWrapping===!0?{padding:`3px 8.5px`}:void 0,highlight:n,autoFocus:i.readonly!==!0,disabled:i.readonly===!0,altNewline:!0,value:i.data,validatedSelection:a,onChange:e=>r({...i,data:e.target.value})})}}),onPaste:(e,t,n)=>e===t.data?void 0:{...t,data:e,displayData:n.formattedString??t.displayData}},Rs=Me(`div`)({name:`UriOverlayEditorStyle`,class:`gdg-u1rrojo`,propsAsIs:!1}),zs=e=>{let{uri:t,onChange:n,forceEditMode:r,readonly:i,validatedSelection:a,preview:o}=e,[s,c]=K.useState(!i&&(t===``||r)),l=K.useCallback(()=>{c(!0)},[]);return s?K.createElement(Yt,{validatedSelection:a,highlight:!0,autoFocus:!0,value:t,onChange:n}):K.createElement(Rs,null,K.createElement(`a`,{className:`gdg-link-area`,href:t,target:`_blank`,rel:`noopener noreferrer`},o),!i&&K.createElement(`div`,{className:`gdg-edit-icon`,onClick:l},K.createElement(At,null)),K.createElement(`textarea`,{className:`gdg-input`,autoFocus:!0}))};function Bs(e,t,n,r){let i=n.cellHorizontalPadding,a=t.height/2-e.actualBoundingBoxAscent/2,o=e.width,s=e.actualBoundingBoxAscent;return r===`right`?i=t.width-o-n.cellHorizontalPadding:r===`center`&&(i=t.width/2-o/2),{x:i,y:a,width:o,height:s}}var Vs=[Es,As,rs,ss,fs,_s,xs,Ts,Ns,Ps,Is,Ls,{getAccessibilityString:e=>e.data?.toString()??``,kind:U.Uri,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!0,useLabel:!0,drawPrep:jn,draw:e=>{let{cell:t,theme:n,overrideCursor:r,hoverX:i,hoverY:a,rect:o,ctx:s}=e,c=t.displayData??t.data,l=t.hoverEffect===!0;if(r!==void 0&&l&&i!==void 0&&a!==void 0){let{x:l,y:u,width:d,height:f}=Bs(wn(c,s,n.baseFontFull),o,n,t.contentAlign);if(i>=l-4&&i<=l-4+d+8&&a>=u-4&&a<=u-4+f+8){let i=En(s,n.baseFontFull);r(`pointer`);let a=u-i;s.beginPath(),s.moveTo(o.x+l,Math.floor(o.y+a+f+5)+.5),s.lineTo(o.x+l+d,Math.floor(o.y+a+f+5)+.5),s.strokeStyle=n.linkColor,s.stroke(),s.save(),s.fillStyle=e.cellFillColor,In({...e,rect:{...o,x:o.x-1}},c,t.contentAlign),In({...e,rect:{...o,x:o.x-2}},c,t.contentAlign),In({...e,rect:{...o,x:o.x+1}},c,t.contentAlign),In({...e,rect:{...o,x:o.x+2}},c,t.contentAlign),s.restore()}}s.fillStyle=l?n.linkColor:n.textDark,In(e,c,t.contentAlign)},onClick:e=>{let{cell:t,bounds:n,posX:r,posY:i,theme:a}=e,o=t.displayData??t.data;if(t.hoverEffect!==!0||t.onClickUri===void 0)return;let s=Tn(o,a.baseFontFull);if(s===void 0)return;let c=Bs(s,n,a,t.contentAlign);Ur({x:c.x-4,y:c.y-4,width:c.width+8,height:c.height+8},r,i)&&t.onClickUri(e)},measure:(e,t,n)=>e.measureText(t.displayData??t.data).width+n.cellHorizontalPadding*2,onDelete:e=>({...e,data:``}),provideEditor:e=>t=>{let{onChange:n,value:r,forceEditMode:i,validatedSelection:a}=t;return K.createElement(zs,{forceEditMode:r.readonly!==!0&&(i||e.hoverEffect===!0&&e.onClickUri!==void 0),uri:r.data,preview:r.displayData??r.data,validatedSelection:a,readonly:r.readonly===!0,onChange:e=>n({...r,data:e.target.value})})},onPaste:(e,t,n)=>e===t.data?void 0:{...t,data:e,displayData:n.formattedString??t.displayData}}],Hs=e(t(((e,t)=>{var n=bt(),r=de(),i=`Expected a function`;function a(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(i);return r(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),n(e,t,{leading:o,maxWait:t,trailing:s})}t.exports=a}))(),1),Us=[],Ws=class extends Kn{imageLoaded=()=>void 0;loadedLocations=[];cache={};setCallback(e){this.imageLoaded=e}sendLoaded=(0,Hs.default)(()=>{this.imageLoaded(new Jn(this.loadedLocations)),this.loadedLocations=[]},20);clearOutOfWindow=()=>{let e=Object.keys(this.cache);for(let t of e){let e=this.cache[t],n=!1;for(let t=0;t<e.cells.length;t++){let r=e.cells[t];if(this.isInWindow(r)){n=!0;break}}n?e.cells=e.cells.filter(this.isInWindow):(e.cancel(),delete this.cache[t])}};loadImage(e,t,n,r){let i=!1,a=Us.pop()??new Image,o=!1,s={img:void 0,cells:[Hn(t,n)],url:e,cancel:()=>{o||(o=!0,Us.length<12?Us.unshift(a):i||(a.src=``))}},c=new Promise(e=>a.addEventListener(`load`,()=>e(null)));requestAnimationFrame(async()=>{try{a.src=e,await c,await a.decode();let t=this.cache[r];if(t!==void 0&&!o){t.img=a;for(let e of t.cells)this.loadedLocations.push(Gn(e));i=!0,this.sendLoaded()}}catch{s.cancel()}}),this.cache[r]=s}loadOrGetImage(e,t,n){let r=e,i=this.cache[r];if(i!==void 0){let e=Hn(t,n);return i.cells.includes(e)||i.cells.push(e),i.img}else this.loadImage(e,t,n,r)}},Gs=K.forwardRef((e,t)=>{let n=K.useMemo(()=>({...Nr,...e.headerIcons}),[e.headerIcons]),r=K.useMemo(()=>e.imageWindowLoader??new Ws,[e.imageWindowLoader]);return K.createElement(ts,{...e,renderers:Vs,headerIcons:n,ref:t,imageWindowLoader:r})});function Ks(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function qs(e,t){if(e.startsWith(`#`)){let n=e.slice(1);return`rgba(${parseInt(n.slice(0,2),16)}, ${parseInt(n.slice(2,4),16)}, ${parseInt(n.slice(4,6),16)}, ${t})`}return e}function Js(){let e=Ks(`--color-background`),t=Ks(`--color-foreground`),n=w(Ks(`--color-muted`),e),r=Ks(`--color-muted-foreground`),i=Ks(`--color-primary`),a=Ks(`--color-primary-foreground`),o=Ks(`--color-border`),s=Ks(`--color-primary`),c=Ks(`--color-text-secondary`),l=Ks(`--color-text-subtle`),u=Ks(`--font-sans`)||`Geist, system-ui, sans-serif`;return{bgCell:e,bgCellMedium:n,bgHeader:n,bgHeaderHasFocus:s,bgHeaderHovered:s,bgBubble:s,bgBubbleSelected:i,textDark:t,textMedium:c,textLight:l,textHeader:r,textGroupHeader:r,textHeaderSelected:t,textBubble:t,accentColor:i,accentFg:a,accentLight:qs(i,.12),borderColor:o,horizontalBorderColor:o,fontFamily:u,baseFontStyle:`13px`,headerFontStyle:`600 12px`,editorFontSize:`13px`,lineHeight:1.5,cellHorizontalPadding:8,cellVerticalPadding:4,headerIconSize:16}}function Ys(){let[e,t]=(0,K.useState)(0);return(0,K.useEffect)(()=>{let e=()=>t(e=>e+1),n=new MutationObserver(e);return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),window.addEventListener(`ppm:theme-change`,e),()=>{n.disconnect(),window.removeEventListener(`ppm:theme-change`,e)}},[]),(0,K.useMemo)(()=>Js(),[e])}function Xs(e,t,n){let r=e.length*9+40,i=0,a=Math.min(t.length,20);for(let n=0;n<a;n++){let r=t[n]?.[e];if(r==null)continue;let a=typeof r==`object`?12:String(r).length;i=Math.max(i,a*8)}let o=/^(int|serial|bigint|smallint|float|double|decimal|numeric|real|money|bool)/.test(n.toLowerCase())?80:100;return Math.max(o,Math.min(Math.max(r,i)+16,400))}function Zs(e,t,n,r,i,a,o){let s=(0,K.useMemo)(()=>new Map(e.map(e=>[e.name,e])),[e]),c=(0,K.useMemo)(()=>{let e=new Map;for(let n of t)e.set(n,Xs(n,i,s.get(n)?.type??`text`));return e},[t.join(`|`),e.map(e=>`${e.name}:${e.type}`).join(`|`),i.length>0]);return(0,K.useMemo)(()=>{let e=t.filter(e=>n.has(e)),i=t.filter(e=>!n.has(e)),l=[...e,...i];return{columns:l.map(e=>{let t=s.get(e),n=t?.pk??!1,i;return a===e?i=o===`ASC`?`sortAsc`:`sortDesc`:n?i=`headerRowID`:t?.fk&&(i=`headerFk`),{title:e,id:e,width:r.get(e)??c.get(e)??100,hasMenu:!0,icon:i}}),freezeColumns:e.length,columnOrder:l}},[s,t,n,r,c,a,o])}function Qs(e){if(e==null)return!1;if(typeof e==`object`)return!0;let t=String(e);if(t.length>=200)return!0;let n=t.trimStart();return!!((n[0]===`{`||n[0]===`[`)&&(n.endsWith(`}`)||n.endsWith(`]`))||n.startsWith(`<?xml`)||n.startsWith(`<`)&&n.endsWith(`>`))}function $s(e){return e==null?`NULL`:typeof e==`object`?JSON.stringify(e):String(e)}function ec(e){let t=e.trimStart();if(t[0]===`{`||t[0]===`[`)try{return JSON.parse(t),`json`}catch{}return t.startsWith(`<?xml`)||t.startsWith(`<`)&&/<\/\w+>/.test(t)?`xml`:t.startsWith(`---`)||/^\w+:\s/m.test(t)?`yaml`:`plaintext`}function tc(e){let t=e.toLowerCase();return/^(int|serial|bigint|smallint|float|double|decimal|numeric|real|money)/.test(t)?U.Number:/^bool/.test(t)?U.Boolean:U.Text}function nc(e){let t=e.type.toLowerCase();return!!(/^(serial|bigserial|smallserial)/.test(t)||/^(int|bigint|smallint|integer)/.test(t)&&e.defaultValue&&/nextval|identity|auto_increment/i.test(e.defaultValue)||t===`integer`&&e.pk&&!e.defaultValue)}function rc(e,t=200){return e.length>t?e.slice(0,t)+`…`:e}var ic={bgCell:`rgba(251, 191, 36, 0.15)`};function ac(e,t,n,r,i,a){let o=(0,K.useRef)(e);o.current=e;let s=(0,K.useRef)(t);s.current=t;let c=(0,K.useRef)(new Map);return c.current=new Map(n.map(e=>[e.name,e])),{getCellContent:(0,K.useCallback)(([e,t])=>{let n=s.current[e],i=o.current[t];if(!n||!i)return{kind:U.Text,data:``,displayData:``,allowOverlay:!1};let l=c.current.get(n),u=l?tc(l.type):U.Text,d=l?.pk??!1,f=r?i[r]:void 0,p=typeof f==`string`&&f.startsWith(`__new_`),m=`${f}:${n}`,h=a.current.get(m),g=h===void 0?i[n]:h.newVal,_=h!==void 0;if(d&&p){if(l&&nc(l))return{kind:U.Text,data:``,displayData:`AUTO`,allowOverlay:!1,readonly:!0,themeOverride:{textDark:`#6b7280`}};let e=h===void 0?``:String(h.newVal??``);return{kind:U.Text,data:e,displayData:e||`Enter ID…`,allowOverlay:!0,readonly:!1,themeOverride:e?_?ic:void 0:{textDark:`#9ca3af`}}}if(g==null){let e=p?``:`NULL`;if(p&&!_&&l){let t=l.type.toLowerCase();l.defaultValue?e=l.defaultValue:/^(timestamp|datetime|date)/.test(t)?e=`NOW()`:/^(uuid)/.test(t)&&(e=`gen_random_uuid()`)}return{kind:U.Text,data:``,displayData:e,allowOverlay:!d,readonly:d,themeOverride:_?ic:p||e!==`NULL`?{textDark:`#9ca3af`}:{textDark:`#6b7280`}}}if(u===U.Number&&typeof g==`number`)return{kind:U.Number,data:g,displayData:String(g),allowOverlay:!d,readonly:d,themeOverride:_?ic:void 0};if(u===U.Boolean&&typeof g==`boolean`)return{kind:U.Boolean,data:g,readonly:d,allowOverlay:!1};let v=$s(g);return{kind:U.Text,data:v,displayData:rc(v),allowOverlay:!d,readonly:d,themeOverride:_?ic:void 0}},[]),onCellEdited:(0,K.useCallback)(([e,t],n)=>{if(!r)return;let a=s.current[e],c=o.current[t];if(!a||!c)return;let l=c[r],u;if(n.kind===U.Text)u=n.data===``?null:n.data;else if(n.kind===U.Number)u=n.data;else if(n.kind===U.Boolean)u=n.data;else return;i(l,a,u)},[r,i])}}var oc={columns:G.empty(),rows:G.empty()};function sc(){let[e,t]=(0,K.useState)(oc);return{gridSelection:e,onGridSelectionChange:(0,K.useCallback)(e=>{t(e)},[]),selectedRowIndices:(0,K.useMemo)(()=>{let t=[];if(e.rows)for(let n of e.rows)if(Array.isArray(n))for(let e=n[0];e<n[1];e++)t.push(e);else t.push(n);return t},[e.rows]),clearSelection:(0,K.useCallback)(()=>{t(oc)},[])}}function cc(e,t,n){let[r,i]=(0,K.useState)(new Map),a=(0,K.useRef)(r);a.current=r;let o=(0,K.useRef)(!1);return{pendingEdits:r,pendingRef:a,addEdit:(0,K.useCallback)((e,t,n)=>{let r=`${e}:${t}`;i(i=>new Map(i).set(r,{pkVal:e,col:t,newVal:n}))},[]),commitAll:(0,K.useCallback)(async()=>{if(!e)return;let r=new Map;for(let n of a.current.values()){let i=String(n.pkVal);i.startsWith(`__new_`)?(r.has(i)||r.set(i,{}),r.get(i)[n.col]=n.newVal):t(e,n.pkVal,n.col,n.newVal)}if(n)for(let e of r.values())await n(e);o.current=!0},[e,t,n]),discardAll:(0,K.useCallback)(()=>{i(new Map),o.current=!1},[]),hasPending:r.size>0,pendingCount:r.size,committedRef:o}}function lc(e,t){let[n,r]=(0,K.useState)(new Set);return{effectiveRows:(0,K.useMemo)(()=>{if(n.size===0||!t)return e;let r=[],i=[];for(let a of e)n.has(String(a[t]??``))?i.push(a):r.push(a);return[...r,...i]},[e,n,t]),pinnedCount:n.size,pinnedPks:n,setPinnedPks:r}}function uc(e,t){if(!t)return null;let n=e[t];return n==null?null:String(n)}function dc(e,t){if(!e)return null;let{displayRows:n,pkCol:r,selectedTable:i,connectionId:a}=t,{kind:o,rowIdx:s,pk:c,colName:l}=e,u=(r&&c!==null?n.find(e=>uc(e,r)===c):void 0)??n[s];if(!u)return null;let d=i??``,f=d?` — ${d}`:``;if(o===`row`)return{title:c?`Row #${c}${f}`:`Row${f}`,content:JSON.stringify(u,null,2),language:`json`,viewerKey:`${a}:${d}:row:${c??``}`};if(!l)return null;let p=$s(u[l]),m=c??String(s);return{title:`${l} #${m}${f}`,content:p,language:ec(p),viewerKey:`${a}:${d}:${l}:${m}`}}function fc(e){let{displayRows:t,columnOrder:n,schema:r,pkCol:i,connectionId:a,connectionName:o,selectedTable:s,selectedSchema:c,addEdit:l,gridSelection:u,containerRef:d}=e,{openTab:f}=b(S(e=>({openTab:e.openTab}))),[p,m]=(0,K.useState)(null),h=(0,K.useRef)(t);h.current=t;let g=(0,K.useRef)(n);g.current=n;let _=(0,K.useCallback)(e=>uc(e,i),[i]),v=(0,K.useCallback)(e=>{let n=t[e];n&&m({kind:`row`,rowIdx:e,pk:_(n)})},[t,_]),y=(0,K.useCallback)((e,r)=>{let i=t[e];if(!i)return;let a=n[r];a&&m({kind:`cell`,rowIdx:e,pk:_(i),colName:a})},[t,n,_]),x=(0,K.useCallback)(()=>m(null),[]),C=(0,K.useMemo)(()=>dc(p,{displayRows:t,pkCol:i,selectedTable:s,connectionId:a}),[p,t,i,s,a]),w=(0,K.useCallback)(()=>{C&&f({type:`editor`,title:C.title,projectId:null,closable:!0,metadata:{inlineContent:C.content,inlineLanguage:C.language,viewerKey:C.viewerKey}})},[f,C]),T=(0,K.useCallback)((e,t)=>{if(!i)return!1;let[n,a]=e;for(let e=0;e<t.length;e++){let o=h.current[a+e];if(!o)continue;let s=o[i];for(let i=0;i<t[e].length;i++){let a=g.current[n+i];if(!a||r.find(e=>e.name===a)?.pk)continue;let o=t[e][i];l(s,a,o===``?null:o)}}return!1},[i,r,l]),E=(0,K.useRef)(r);E.current=r;let D=(0,K.useRef)(u);D.current=u;let O=(0,K.useRef)(l);O.current=l;let k=(0,K.useRef)(i);return k.current=i,(0,K.useEffect)(()=>{if(!d)return;let e=e=>{let t=d.current;if(!t||!t.contains(document.activeElement))return;let n=document.activeElement?.tagName;if(n===`INPUT`||n===`TEXTAREA`)return;let r=k.current;if(!r)return;let i=D.current?.current;if(!i)return;let a=e.clipboardData?.getData(`text/plain`);if(!a)return;let o=a.split(/\r?\n/).filter(e=>e.length>0).map(e=>e.split(` `));if(o.length===0)return;let[s,c]=i.cell;for(let e=0;e<o.length;e++){let t=h.current[c+e];if(!t)continue;let n=t[r];for(let t=0;t<o[e].length;t++){let r=g.current[s+t];if(!r||E.current.find(e=>e.name===r)?.pk)continue;let i=o[e][t];O.current(n,r,i===``?null:i)}}e.preventDefault()};return document.addEventListener(`paste`,e),()=>document.removeEventListener(`paste`,e)},[d]),{previewData:C,closePreview:x,openRowPreview:v,openCellPreview:y,openPreviewInTab:w,handlePaste:T,getContextFk:(0,K.useCallback)(e=>e?r.find(t=>t.name===e)?.fk??null:null,[r]),isCellViewable:(0,K.useCallback)((e,t)=>e&&t?Qs(e[t]):!1,[]),openFkTable:(0,K.useCallback)((e,t)=>{t==null||!a||f({type:`database`,title:`${o??`DB`} · ${e.table}`,projectId:null,closable:!0,metadata:{connectionId:a,connectionName:o,tableName:e.table,schemaName:c??`public`,initialSql:`SELECT * FROM "${e.table}" WHERE "${e.column}" = '${String(t).replace(/'/g,`''`)}'`}})},[a,o,c,f])}}function pc({colName:e,bounds:t,isPinned:n,filterValue:r,sortState:i,onFilter:a,onSort:o,onClearSort:s,onTogglePin:c,onClose:l}){let[u,d]=(0,K.useState)(r),f=(0,K.useRef)(null),p=(0,K.useRef)(void 0);(0,K.useEffect)(()=>{let e=e=>{f.current&&!f.current.contains(e.target)&&l()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[l]),(0,K.useEffect)(()=>{let e=e=>{e.key===`Escape`&&l()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[l]);let m=e=>{d(e),clearTimeout(p.current),p.current=setTimeout(()=>a(e),300)},h=Math.min(t.x,window.innerWidth-220-8),g=t.y+t.height+2,v=document.getElementById(`portal`);return v?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:f,style:{position:`fixed`,left:h,top:g,zIndex:1e4},className:`w-[220px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden`,children:[(0,q.jsx)(`div`,{className:`px-3 py-1.5 border-b border-border text-muted-foreground font-medium truncate`,children:e}),(0,q.jsx)(`div`,{className:`px-2 py-1.5 border-b border-border`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(Fe,{className:`size-3 text-muted-foreground shrink-0`}),(0,q.jsx)(`input`,{autoFocus:!0,type:`text`,value:u,onChange:e=>m(e.target.value),placeholder:`Filter (ILIKE)…`,className:`flex-1 bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`}),u&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>m(``),className:`text-muted-foreground hover:text-foreground`,children:(0,q.jsx)(_,{className:`size-3`})})]})}),(0,q.jsxs)(`div`,{className:`py-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{o(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[i===`asc`?(0,q.jsx)(T,{className:`size-3`}):(0,q.jsx)(O,{className:`size-3`}),i===`asc`?`Sort Descending`:`Sort Ascending`]}),i&&s&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{s(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(_,{className:`size-3`}),`Clear Sort`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{c(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[n?(0,q.jsx)(k,{className:`size-3`}):(0,q.jsx)(A,{className:`size-3`}),n?`Unpin Column`:`Pin Column`]})]})]}),v):null}function mc({position:e,isPinned:t,onViewRow:n,onViewCell:r,onPinRow:i,onDeleteRow:a,onOpenFkTable:o,fkLabel:s,onClose:c}){let[l,f]=(0,K.useState)(!1),p=(0,K.useRef)(null);(0,K.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&c()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[c]),(0,K.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c]);let m=Math.min(e.x,window.innerWidth-180-8),h=Math.min(e.y,window.innerHeight-130-8),_=document.getElementById(`portal`);return _?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:p,style:{position:`fixed`,left:m,top:h,zIndex:1e4},className:`w-[180px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden py-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{n(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(d,{className:`size-3`}),` View as JSON`]}),r&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{r(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(d,{className:`size-3`}),` View Cell`]}),o&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{o(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-primary`,children:[(0,q.jsx)(u,{className:`size-3`}),` `,s??`Open Referenced Table`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{i(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[t?(0,q.jsx)(k,{className:`size-3`}):(0,q.jsx)(A,{className:`size-3`}),t?`Unpin Row`:`Pin Row`]}),(0,q.jsx)(`div`,{className:`border-t border-border my-0.5`}),l?(0,q.jsxs)(`div`,{className:`px-3 py-1.5 flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>{a(),c()},className:`text-destructive font-medium hover:underline`,children:`Delete?`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>f(!1),className:`text-muted-foreground hover:underline`,children:`Cancel`})]}):(0,q.jsxs)(`button`,{type:`button`,onClick:()=>f(!0),className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-destructive`,children:[(0,q.jsx)(g,{className:`size-3`}),` Delete Row`]})]}),_):null}function hc({columns:e,onSelect:t,onClose:n,anchorRect:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(0),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=i?e.filter(e=>e.toLowerCase().includes(i.toLowerCase())):e;(0,K.useEffect)(()=>{s(0)},[i]),(0,K.useEffect)(()=>{let e=l.current;e&&e.children[o]?.scrollIntoView({block:`nearest`})},[o]),(0,K.useEffect)(()=>{let e=e=>{c.current&&!c.current.contains(e.target)&&n()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[n]);let d=(0,K.useCallback)(e=>{if(e.key===`Escape`){n();return}if(e.key===`ArrowDown`){e.preventDefault(),s(e=>Math.min(e+1,u.length-1));return}if(e.key===`ArrowUp`){e.preventDefault(),s(e=>Math.max(e-1,0));return}if(e.key===`Enter`){e.preventDefault();let r=u[o];r&&(t(r),n())}},[u,o,t,n]),f=document.getElementById(`portal`);return f?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:c,style:{position:`fixed`,left:Math.min(r.x,window.innerWidth-216),top:Math.min(r.y,window.innerHeight-308),zIndex:1e4},className:`w-[200px] max-h-[300px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden flex flex-col`,children:[(0,q.jsx)(`div`,{className:`px-2 py-1.5 border-b border-border`,children:(0,q.jsx)(`input`,{autoFocus:!0,value:i,onChange:e=>a(e.target.value),onKeyDown:d,placeholder:`Search columns…`,className:`w-full bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`})}),(0,q.jsxs)(`div`,{ref:l,className:`overflow-y-auto py-1`,children:[u.map((e,r)=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>{t(e),n()},onMouseEnter:()=>s(r),className:`w-full text-left px-3 py-1 truncate text-foreground ${r===o?`bg-muted`:`hover:bg-muted`}`,children:e},e)),u.length===0&&(0,q.jsx)(`div`,{className:`px-3 py-2 text-muted-foreground`,children:`No columns found`})]})]}),f):null}function gc({hasSelection:e,selectedCount:t,onBulkDelete:n,onInsertRow:r,columns:i,selectedRows:a,connectionName:o,searchTerm:c,onSearchChange:l,onColumnJump:u,colSearchOpen:d,onColSearchChange:p}){let[m,h]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),b=d??v,x=p??y,S=(0,K.useRef)(null),w=S.current?(()=>{let e=S.current.getBoundingClientRect();return{x:e.left,y:e.bottom+4}})():{x:0,y:0};return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 border-b border-border bg-background shrink-0`,children:[e&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,q.jsxs)(`span`,{className:`text-muted-foreground`,children:[t,` selected`]}),n&&(m?(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{n(),h(!1)},className:`text-destructive text-[10px] font-medium hover:underline`,children:[`Delete `,t,`?`]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>h(!1),className:`text-muted-foreground text-[10px] hover:underline`,children:`Cancel`})]}):(0,q.jsx)(`button`,{type:`button`,onClick:()=>h(!0),className:`p-0.5 text-muted-foreground hover:text-destructive`,children:(0,q.jsx)(g,{className:`size-3`})})),(0,q.jsx)(J,{columns:i,rows:a,filename:`${o??`db`}-selected`})]}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,q.jsx)(C,{className:`size-3 text-muted-foreground`}),(0,q.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:`Search page…`,className:`w-24 bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`}),c&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(``),className:`text-muted-foreground hover:text-foreground`,children:(0,q.jsx)(_,{className:`size-3`})})]}),u&&(0,q.jsx)(`button`,{ref:S,type:`button`,onClick:()=>x(!b),className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,title:`Jump to column (/)`,children:(0,q.jsx)(s,{className:`size-3.5`})}),r&&(0,q.jsx)(`button`,{type:`button`,onClick:r,className:`p-0.5 rounded text-muted-foreground hover:text-primary transition-colors`,title:`Insert row`,children:(0,q.jsx)(f,{className:`size-3.5`})}),b&&u&&(0,q.jsx)(hc,{columns:i,onSelect:u,onClose:()=>x(!1),anchorRect:w})]})}function _c({pendingCount:e,onSave:t,onDiscard:n}){return e===0?null:(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-t border-warning/50 bg-warning/5 shrink-0 text-xs`,children:[(0,q.jsxs)(`span`,{className:`text-warning font-medium`,children:[e,` pending edit`,e>1?`s`:``]}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsxs)(`button`,{type:`button`,onClick:n,className:`flex items-center gap-1 px-2 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,q.jsx)(D,{className:`size-3`}),` Discard`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:t,className:`flex items-center gap-1 px-2 py-0.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(m,{className:`size-3`}),` Save`,(0,q.jsx)(`kbd`,{className:`ml-1 text-[9px] opacity-70`,children:`⌘↵`})]})]})}function vc({total:e,page:t,totalPages:n,onPageChange:r}){return(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-t border-border bg-background shrink-0 text-xs text-muted-foreground`,children:[(0,q.jsxs)(`span`,{children:[e.toLocaleString(),` rows`]}),(0,q.jsxs)(`div`,{className:`hidden md:flex items-center gap-2 text-[10px] text-muted-foreground/50`,children:[(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:`/`}),` columns`]}),(0,q.jsxs)(`span`,{children:[(0,q.jsxs)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:[`⌘`,`A`]}),` select all`]}),(0,q.jsxs)(`span`,{children:[(0,q.jsxs)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:[`⌘`,`C`]}),` copy`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,disabled:t<=1,onClick:()=>r(t-1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,q.jsx)(E,{className:`size-3.5`})}),(0,q.jsxs)(`span`,{children:[t,` / `,n]}),(0,q.jsx)(`button`,{type:`button`,disabled:t>=n,onClick:()=>r(t+1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,q.jsx)(o,{className:`size-3.5`})})]})]})}function yc(e,t){if(t===`json`)try{return JSON.stringify(JSON.parse(e.trim()),null,2)}catch{return null}if(t===`xml`){let t=0;return e.trim().replace(/>\s*</g,`>
|
|
134
|
+
`)[0];return e.measureText(r).width+2*n.cellHorizontalPadding},draw:e=>In(e,e.cell.data,e.cell.contentAlign),onDelete:e=>({...e,data:``}),provideEditor:()=>e=>{let{onChange:t,value:n,target:r,onFinishedEditing:i,markdownDivCreateNode:a,forceEditMode:o,validatedSelection:s}=e;return K.createElement(ws,{onFinish:i,targetRect:r,value:n,validatedSelection:s,onChange:e=>t({...n,data:e.target.value}),forceEditMode:o,createNode:a})},onPaste:(e,t)=>e===t.data?void 0:{...t,data:e}},Es={getAccessibilityString:e=>e.row.toString(),kind:xe.Marker,needsHover:!0,needsHoverPosition:!1,drawPrep:Ds,measure:()=>44,draw:e=>ks(e,e.cell.row,e.cell.checked,e.cell.markerKind,e.cell.drawHandle,e.cell.checkboxStyle),onClick:e=>{let{bounds:t,cell:n,posX:r,posY:i}=e,{width:a,height:o}=t,s=n.drawHandle?7+(a-7)/2:a/2,c=o/2;if(Math.abs(r-s)<=10&&Math.abs(i-c)<=10)return{...n,checked:!n.checked}},onPaste:()=>void 0};function Ds(e,t){let{ctx:n,theme:r}=e,i=r.markerFontFull,a=t??{};return a?.font!==i&&(n.font=i,a.font=i),a.deprep=Os,n.textAlign=`center`,a}function Os(e){let{ctx:t}=e;t.textAlign=`start`}function ks(e,t,n,r,i,a){let{ctx:o,rect:s,hoverAmount:c,theme:l}=e,{x:u,y:d,width:f,height:p}=s,m=n?1:r===`checkbox-visible`?.6+.4*c:c;if(r!==`number`&&m>0){o.globalAlpha=m;let e=7*(n?c:1);if(ni(o,l,n,i?u+e:u,d,i?f-e:f,p,!0,void 0,void 0,18,`center`,a),i){o.globalAlpha=c,o.beginPath();for(let e of[3,6])for(let t of[-5,-1,3])o.rect(u+e,d+p/2+t,2,2);o.fillStyle=l.textLight,o.fill(),o.beginPath()}o.globalAlpha=1}if(r===`number`||r===`both`&&!n){let e=t.toString(),n=l.markerFontFull,i=u+f/2;r===`both`&&c!==0&&(o.globalAlpha=1-c),o.fillStyle=l.textLight,o.font=n,o.fillText(e,i,d+p/2+En(o,n)),c!==0&&(o.globalAlpha=1)}}var As={getAccessibilityString:()=>``,kind:xe.NewRow,needsHover:!0,needsHoverPosition:!1,measure:()=>200,draw:e=>js(e,e.cell.hint,e.cell.icon),onPaste:()=>void 0};function js(e,t,n){let{ctx:r,rect:i,hoverAmount:a,theme:o,spriteManager:s}=e,{x:c,y:l,width:u,height:d}=i;r.beginPath(),r.globalAlpha=a,r.rect(c+1,l+1,u,d-2),r.fillStyle=o.bgHeaderHovered,r.fill(),r.globalAlpha=1,r.beginPath();let f=t!==``,p=0;if(n!==void 0){let e=d-8,t=c+8/2,i=l+8/2;s.drawSprite(n,`normal`,r,t,i,e,o,f?1:a),p=e}else{p=24;let e=f?12:a*12,t=f?0:(1-a)*12*.5,n=o.cellHorizontalPadding+4;e>0&&(r.moveTo(c+n+t,l+d/2),r.lineTo(c+n+t+e,l+d/2),r.moveTo(c+n+t+e*.5,l+d/2-e*.5),r.lineTo(c+n+t+e*.5,l+d/2+e*.5),r.lineWidth=2,r.strokeStyle=o.bgIconHeader,r.lineCap=`round`,r.stroke())}r.fillStyle=o.textMedium,r.fillText(t,p+c+o.cellHorizontalPadding+.5,l+d/2+En(r,o)),r.beginPath()}var Ms=K.lazy(async()=>await y(()=>import(`./number-overlay-editor-1c4sgZJt.js`),__vite__mapDeps([6,1,2,3]))),Ns={getAccessibilityString:e=>e.data?.toString()??``,kind:U.Number,needsHover:!1,needsHoverPosition:!1,useLabel:!0,drawPrep:jn,draw:e=>In(e,e.cell.displayData,e.cell.contentAlign),measure:(e,t,n)=>e.measureText(t.displayData).width+n.cellHorizontalPadding*2,onDelete:e=>({...e,data:void 0}),provideEditor:()=>e=>{let{isHighlighted:t,onChange:n,value:r,validatedSelection:i}=e;return K.createElement(K.Suspense,{fallback:null},K.createElement(Ms,{highlight:t,disabled:r.readonly===!0,value:r.data,fixedDecimals:r.fixedDecimals,allowNegative:r.allowNegative,thousandSeparator:r.thousandSeparator,decimalSeparator:r.decimalSeparator,validatedSelection:i,onChange:e=>n({...r,data:Number.isNaN(e.floatValue??0)?0:e.floatValue})}))},onPaste:(e,t,n)=>{let r=typeof n.rawValue==`number`?n.rawValue:Number.parseFloat(typeof n.rawValue==`string`?n.rawValue:e);if(!(Number.isNaN(r)||t.data===r))return{...t,data:r,displayData:n.formattedString??t.displayData}}},Ps={getAccessibilityString:()=>``,measure:()=>108,kind:U.Protected,needsHover:!1,needsHoverPosition:!1,draw:Fs,onPaste:()=>void 0};function Fs(e){let{ctx:t,theme:n,rect:r}=e,{x:i,y:a,height:o}=r;t.beginPath();let s=2.5,c=i+n.cellHorizontalPadding+s,l=a+o/2,u=Math.cos(Tt(30))*s,d=Math.sin(Tt(30))*s;for(let e=0;e<12;e++)t.moveTo(c,l-s),t.lineTo(c,l+s),t.moveTo(c+u,l-d),t.lineTo(c-u,l+d),t.moveTo(c-u,l-d),t.lineTo(c+u,l+d),c+=8;t.lineWidth=1.1,t.lineCap=`square`,t.strokeStyle=n.textLight,t.stroke()}var Is={getAccessibilityString:e=>e.data?.toString()??``,kind:U.RowID,needsHover:!1,needsHoverPosition:!1,drawPrep:(e,t)=>jn(e,t,e.theme.textLight),draw:e=>In(e,e.cell.data,e.cell.contentAlign),measure:(e,t,n)=>e.measureText(t.data).width+n.cellHorizontalPadding*2,provideEditor:()=>e=>{let{isHighlighted:t,onChange:n,value:r,validatedSelection:i}=e;return K.createElement(Yt,{highlight:t,autoFocus:r.readonly!==!0,disabled:r.readonly!==!1,value:r.data,validatedSelection:i,onChange:e=>n({...r,data:e.target.value})})},onPaste:()=>void 0},Ls={getAccessibilityString:e=>e.data?.toString()??``,kind:U.Text,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!1,drawPrep:jn,useLabel:!0,draw:e=>{let{cell:t,hoverAmount:n,hyperWrapping:r,ctx:i,rect:a,theme:o,overrideCursor:s}=e,{displayData:c,contentAlign:l,hoverEffect:u,allowWrapping:d}=t;if(u===!0&&n>0){i.textBaseline=`alphabetic`;let e=o.cellHorizontalPadding,t=o.cellVerticalPadding,r=wn(c,i,o.baseFontFull,`alphabetic`),l=a.height-t,u=Math.min(l,r.actualBoundingBoxAscent*2.5);i.beginPath(),Ln(i,a.x+e/2,a.y+(a.height-u)/2+1,r.width+e*3,u-1,o.roundingRadius??4),i.globalAlpha=n,i.fillStyle=me(o.textDark,.1),i.fill(),i.globalAlpha=1,i.fillStyle=o.textDark,i.textBaseline=`middle`,s?.(`text`)}In(e,c,l,d,r)},measure:(e,t,n)=>{let r=t.displayData.split(`
|
|
135
|
+
`,t.allowWrapping===!0?void 0:1),i=0;for(let t of r)i=Math.max(i,e.measureText(t).width);return i+2*n.cellHorizontalPadding},onDelete:e=>({...e,data:``}),provideEditor:e=>({disablePadding:e.allowWrapping===!0,editor:t=>{let{isHighlighted:n,onChange:r,value:i,validatedSelection:a}=t;return K.createElement(Yt,{style:e.allowWrapping===!0?{padding:`3px 8.5px`}:void 0,highlight:n,autoFocus:i.readonly!==!0,disabled:i.readonly===!0,altNewline:!0,value:i.data,validatedSelection:a,onChange:e=>r({...i,data:e.target.value})})}}),onPaste:(e,t,n)=>e===t.data?void 0:{...t,data:e,displayData:n.formattedString??t.displayData}},Rs=Me(`div`)({name:`UriOverlayEditorStyle`,class:`gdg-u1rrojo`,propsAsIs:!1}),zs=e=>{let{uri:t,onChange:n,forceEditMode:r,readonly:i,validatedSelection:a,preview:o}=e,[s,c]=K.useState(!i&&(t===``||r)),l=K.useCallback(()=>{c(!0)},[]);return s?K.createElement(Yt,{validatedSelection:a,highlight:!0,autoFocus:!0,value:t,onChange:n}):K.createElement(Rs,null,K.createElement(`a`,{className:`gdg-link-area`,href:t,target:`_blank`,rel:`noopener noreferrer`},o),!i&&K.createElement(`div`,{className:`gdg-edit-icon`,onClick:l},K.createElement(At,null)),K.createElement(`textarea`,{className:`gdg-input`,autoFocus:!0}))};function Bs(e,t,n,r){let i=n.cellHorizontalPadding,a=t.height/2-e.actualBoundingBoxAscent/2,o=e.width,s=e.actualBoundingBoxAscent;return r===`right`?i=t.width-o-n.cellHorizontalPadding:r===`center`&&(i=t.width/2-o/2),{x:i,y:a,width:o,height:s}}var Vs=[Es,As,rs,ss,fs,_s,xs,Ts,Ns,Ps,Is,Ls,{getAccessibilityString:e=>e.data?.toString()??``,kind:U.Uri,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!0,useLabel:!0,drawPrep:jn,draw:e=>{let{cell:t,theme:n,overrideCursor:r,hoverX:i,hoverY:a,rect:o,ctx:s}=e,c=t.displayData??t.data,l=t.hoverEffect===!0;if(r!==void 0&&l&&i!==void 0&&a!==void 0){let{x:l,y:u,width:d,height:f}=Bs(wn(c,s,n.baseFontFull),o,n,t.contentAlign);if(i>=l-4&&i<=l-4+d+8&&a>=u-4&&a<=u-4+f+8){let i=En(s,n.baseFontFull);r(`pointer`);let a=u-i;s.beginPath(),s.moveTo(o.x+l,Math.floor(o.y+a+f+5)+.5),s.lineTo(o.x+l+d,Math.floor(o.y+a+f+5)+.5),s.strokeStyle=n.linkColor,s.stroke(),s.save(),s.fillStyle=e.cellFillColor,In({...e,rect:{...o,x:o.x-1}},c,t.contentAlign),In({...e,rect:{...o,x:o.x-2}},c,t.contentAlign),In({...e,rect:{...o,x:o.x+1}},c,t.contentAlign),In({...e,rect:{...o,x:o.x+2}},c,t.contentAlign),s.restore()}}s.fillStyle=l?n.linkColor:n.textDark,In(e,c,t.contentAlign)},onClick:e=>{let{cell:t,bounds:n,posX:r,posY:i,theme:a}=e,o=t.displayData??t.data;if(t.hoverEffect!==!0||t.onClickUri===void 0)return;let s=Tn(o,a.baseFontFull);if(s===void 0)return;let c=Bs(s,n,a,t.contentAlign);Ur({x:c.x-4,y:c.y-4,width:c.width+8,height:c.height+8},r,i)&&t.onClickUri(e)},measure:(e,t,n)=>e.measureText(t.displayData??t.data).width+n.cellHorizontalPadding*2,onDelete:e=>({...e,data:``}),provideEditor:e=>t=>{let{onChange:n,value:r,forceEditMode:i,validatedSelection:a}=t;return K.createElement(zs,{forceEditMode:r.readonly!==!0&&(i||e.hoverEffect===!0&&e.onClickUri!==void 0),uri:r.data,preview:r.displayData??r.data,validatedSelection:a,readonly:r.readonly===!0,onChange:e=>n({...r,data:e.target.value})})},onPaste:(e,t,n)=>e===t.data?void 0:{...t,data:e,displayData:n.formattedString??t.displayData}}],Hs=e(t(((e,t)=>{var n=bt(),r=de(),i=`Expected a function`;function a(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(i);return r(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),n(e,t,{leading:o,maxWait:t,trailing:s})}t.exports=a}))(),1),Us=[],Ws=class extends Kn{imageLoaded=()=>void 0;loadedLocations=[];cache={};setCallback(e){this.imageLoaded=e}sendLoaded=(0,Hs.default)(()=>{this.imageLoaded(new Jn(this.loadedLocations)),this.loadedLocations=[]},20);clearOutOfWindow=()=>{let e=Object.keys(this.cache);for(let t of e){let e=this.cache[t],n=!1;for(let t=0;t<e.cells.length;t++){let r=e.cells[t];if(this.isInWindow(r)){n=!0;break}}n?e.cells=e.cells.filter(this.isInWindow):(e.cancel(),delete this.cache[t])}};loadImage(e,t,n,r){let i=!1,a=Us.pop()??new Image,o=!1,s={img:void 0,cells:[Hn(t,n)],url:e,cancel:()=>{o||(o=!0,Us.length<12?Us.unshift(a):i||(a.src=``))}},c=new Promise(e=>a.addEventListener(`load`,()=>e(null)));requestAnimationFrame(async()=>{try{a.src=e,await c,await a.decode();let t=this.cache[r];if(t!==void 0&&!o){t.img=a;for(let e of t.cells)this.loadedLocations.push(Gn(e));i=!0,this.sendLoaded()}}catch{s.cancel()}}),this.cache[r]=s}loadOrGetImage(e,t,n){let r=e,i=this.cache[r];if(i!==void 0){let e=Hn(t,n);return i.cells.includes(e)||i.cells.push(e),i.img}else this.loadImage(e,t,n,r)}},Gs=K.forwardRef((e,t)=>{let n=K.useMemo(()=>({...Nr,...e.headerIcons}),[e.headerIcons]),r=K.useMemo(()=>e.imageWindowLoader??new Ws,[e.imageWindowLoader]);return K.createElement(ts,{...e,renderers:Vs,headerIcons:n,ref:t,imageWindowLoader:r})});function Ks(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function qs(e,t){if(e.startsWith(`#`)){let n=e.slice(1);return`rgba(${parseInt(n.slice(0,2),16)}, ${parseInt(n.slice(2,4),16)}, ${parseInt(n.slice(4,6),16)}, ${t})`}return e}function Js(){let e=Ks(`--color-background`),t=Ks(`--color-foreground`),n=T(Ks(`--color-muted`),e),r=Ks(`--color-muted-foreground`),i=Ks(`--color-primary`),a=Ks(`--color-primary-foreground`),o=Ks(`--color-border`),s=Ks(`--color-primary`),c=Ks(`--color-text-secondary`),l=Ks(`--color-text-subtle`),u=Ks(`--font-sans`)||`Geist, system-ui, sans-serif`;return{bgCell:e,bgCellMedium:n,bgHeader:n,bgHeaderHasFocus:s,bgHeaderHovered:s,bgBubble:s,bgBubbleSelected:i,textDark:t,textMedium:c,textLight:l,textHeader:r,textGroupHeader:r,textHeaderSelected:t,textBubble:t,accentColor:i,accentFg:a,accentLight:qs(i,.12),borderColor:o,horizontalBorderColor:o,fontFamily:u,baseFontStyle:`13px`,headerFontStyle:`600 12px`,editorFontSize:`13px`,lineHeight:1.5,cellHorizontalPadding:8,cellVerticalPadding:4,headerIconSize:16}}function Ys(){let[e,t]=(0,K.useState)(0);return(0,K.useEffect)(()=>{let e=()=>t(e=>e+1),n=new MutationObserver(e);return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),window.addEventListener(`ppm:theme-change`,e),()=>{n.disconnect(),window.removeEventListener(`ppm:theme-change`,e)}},[]),(0,K.useMemo)(()=>Js(),[e])}function Xs(e,t,n){let r=e.length*9+40,i=0,a=Math.min(t.length,20);for(let n=0;n<a;n++){let r=t[n]?.[e];if(r==null)continue;let a=typeof r==`object`?12:String(r).length;i=Math.max(i,a*8)}let o=/^(int|serial|bigint|smallint|float|double|decimal|numeric|real|money|bool)/.test(n.toLowerCase())?80:100;return Math.max(o,Math.min(Math.max(r,i)+16,400))}function Zs(e,t,n,r,i,a,o){let s=(0,K.useMemo)(()=>new Map(e.map(e=>[e.name,e])),[e]),c=(0,K.useMemo)(()=>{let e=new Map;for(let n of t)e.set(n,Xs(n,i,s.get(n)?.type??`text`));return e},[t.join(`|`),e.map(e=>`${e.name}:${e.type}`).join(`|`),i.length>0]);return(0,K.useMemo)(()=>{let e=t.filter(e=>n.has(e)),i=t.filter(e=>!n.has(e)),l=[...e,...i];return{columns:l.map(e=>{let t=s.get(e),n=t?.pk??!1,i;return a===e?i=o===`ASC`?`sortAsc`:`sortDesc`:n?i=`headerRowID`:t?.fk&&(i=`headerFk`),{title:e,id:e,width:r.get(e)??c.get(e)??100,hasMenu:!0,icon:i}}),freezeColumns:e.length,columnOrder:l}},[s,t,n,r,c,a,o])}function Qs(e){if(e==null)return!1;if(typeof e==`object`)return!0;let t=String(e);if(t.length>=200)return!0;let n=t.trimStart();return!!((n[0]===`{`||n[0]===`[`)&&(n.endsWith(`}`)||n.endsWith(`]`))||n.startsWith(`<?xml`)||n.startsWith(`<`)&&n.endsWith(`>`))}function $s(e){return e==null?`NULL`:typeof e==`object`?JSON.stringify(e):String(e)}function ec(e){let t=e.trimStart();if(t[0]===`{`||t[0]===`[`)try{return JSON.parse(t),`json`}catch{}return t.startsWith(`<?xml`)||t.startsWith(`<`)&&/<\/\w+>/.test(t)?`xml`:t.startsWith(`---`)||/^\w+:\s/m.test(t)?`yaml`:`plaintext`}function tc(e){let t=e.toLowerCase();return/^(int|serial|bigint|smallint|float|double|decimal|numeric|real|money)/.test(t)?U.Number:/^bool/.test(t)?U.Boolean:U.Text}function nc(e){let t=e.type.toLowerCase();return!!(/^(serial|bigserial|smallserial)/.test(t)||/^(int|bigint|smallint|integer)/.test(t)&&e.defaultValue&&/nextval|identity|auto_increment/i.test(e.defaultValue)||t===`integer`&&e.pk&&!e.defaultValue)}function rc(e,t=200){return e.length>t?e.slice(0,t)+`…`:e}var ic={bgCell:`rgba(251, 191, 36, 0.15)`};function ac(e,t,n,r,i,a){let o=(0,K.useRef)(e);o.current=e;let s=(0,K.useRef)(t);s.current=t;let c=(0,K.useRef)(new Map);return c.current=new Map(n.map(e=>[e.name,e])),{getCellContent:(0,K.useCallback)(([e,t])=>{let n=s.current[e],i=o.current[t];if(!n||!i)return{kind:U.Text,data:``,displayData:``,allowOverlay:!1};let l=c.current.get(n),u=l?tc(l.type):U.Text,d=l?.pk??!1,f=r?i[r]:void 0,p=typeof f==`string`&&f.startsWith(`__new_`),m=`${f}:${n}`,h=a.current.get(m),g=h===void 0?i[n]:h.newVal,_=h!==void 0;if(d&&p){if(l&&nc(l))return{kind:U.Text,data:``,displayData:`AUTO`,allowOverlay:!1,readonly:!0,themeOverride:{textDark:`#6b7280`}};let e=h===void 0?``:String(h.newVal??``);return{kind:U.Text,data:e,displayData:e||`Enter ID…`,allowOverlay:!0,readonly:!1,themeOverride:e?_?ic:void 0:{textDark:`#9ca3af`}}}if(g==null){let e=p?``:`NULL`;if(p&&!_&&l){let t=l.type.toLowerCase();l.defaultValue?e=l.defaultValue:/^(timestamp|datetime|date)/.test(t)?e=`NOW()`:/^(uuid)/.test(t)&&(e=`gen_random_uuid()`)}return{kind:U.Text,data:``,displayData:e,allowOverlay:!d,readonly:d,themeOverride:_?ic:p||e!==`NULL`?{textDark:`#9ca3af`}:{textDark:`#6b7280`}}}if(u===U.Number&&typeof g==`number`)return{kind:U.Number,data:g,displayData:String(g),allowOverlay:!d,readonly:d,themeOverride:_?ic:void 0};if(u===U.Boolean&&typeof g==`boolean`)return{kind:U.Boolean,data:g,readonly:d,allowOverlay:!1};let v=$s(g);return{kind:U.Text,data:v,displayData:rc(v),allowOverlay:!d,readonly:d,themeOverride:_?ic:void 0}},[]),onCellEdited:(0,K.useCallback)(([e,t],n)=>{if(!r)return;let a=s.current[e],c=o.current[t];if(!a||!c)return;let l=c[r],u;if(n.kind===U.Text)u=n.data===``?null:n.data;else if(n.kind===U.Number)u=n.data;else if(n.kind===U.Boolean)u=n.data;else return;i(l,a,u)},[r,i])}}var oc={columns:G.empty(),rows:G.empty()};function sc(){let[e,t]=(0,K.useState)(oc);return{gridSelection:e,onGridSelectionChange:(0,K.useCallback)(e=>{t(e)},[]),selectedRowIndices:(0,K.useMemo)(()=>{let t=[];if(e.rows)for(let n of e.rows)if(Array.isArray(n))for(let e=n[0];e<n[1];e++)t.push(e);else t.push(n);return t},[e.rows]),clearSelection:(0,K.useCallback)(()=>{t(oc)},[])}}function cc(e,t,n){let[r,i]=(0,K.useState)(new Map),a=(0,K.useRef)(r);a.current=r;let o=(0,K.useRef)(!1);return{pendingEdits:r,pendingRef:a,addEdit:(0,K.useCallback)((e,t,n)=>{let r=`${e}:${t}`;i(i=>new Map(i).set(r,{pkVal:e,col:t,newVal:n}))},[]),commitAll:(0,K.useCallback)(async()=>{if(!e)return;let r=new Map;for(let n of a.current.values()){let i=String(n.pkVal);i.startsWith(`__new_`)?(r.has(i)||r.set(i,{}),r.get(i)[n.col]=n.newVal):t(e,n.pkVal,n.col,n.newVal)}if(n)for(let e of r.values())await n(e);o.current=!0},[e,t,n]),discardAll:(0,K.useCallback)(()=>{i(new Map),o.current=!1},[]),hasPending:r.size>0,pendingCount:r.size,committedRef:o}}function lc(e,t){let[n,r]=(0,K.useState)(new Set);return{effectiveRows:(0,K.useMemo)(()=>{if(n.size===0||!t)return e;let r=[],i=[];for(let a of e)n.has(String(a[t]??``))?i.push(a):r.push(a);return[...r,...i]},[e,n,t]),pinnedCount:n.size,pinnedPks:n,setPinnedPks:r}}function uc(e,t){if(!t)return null;let n=e[t];return n==null?null:String(n)}function dc(e,t){if(!e)return null;let{displayRows:n,pkCol:r,selectedTable:i,connectionId:a}=t,{kind:o,rowIdx:s,pk:c,colName:l}=e,u=(r&&c!==null?n.find(e=>uc(e,r)===c):void 0)??n[s];if(!u)return null;let d=i??``,f=d?` — ${d}`:``;if(o===`row`)return{title:c?`Row #${c}${f}`:`Row${f}`,content:JSON.stringify(u,null,2),language:`json`,viewerKey:`${a}:${d}:row:${c??``}`};if(!l)return null;let p=$s(u[l]),m=c??String(s);return{title:`${l} #${m}${f}`,content:p,language:ec(p),viewerKey:`${a}:${d}:${l}:${m}`}}function fc(e){let{displayRows:t,columnOrder:n,schema:r,pkCol:i,connectionId:a,connectionName:o,selectedTable:s,selectedSchema:c,addEdit:l,gridSelection:u,containerRef:d}=e,{openTab:f}=b(S(e=>({openTab:e.openTab}))),[p,m]=(0,K.useState)(null),h=(0,K.useRef)(t);h.current=t;let g=(0,K.useRef)(n);g.current=n;let _=(0,K.useCallback)(e=>uc(e,i),[i]),v=(0,K.useCallback)(e=>{let n=t[e];n&&m({kind:`row`,rowIdx:e,pk:_(n)})},[t,_]),y=(0,K.useCallback)((e,r)=>{let i=t[e];if(!i)return;let a=n[r];a&&m({kind:`cell`,rowIdx:e,pk:_(i),colName:a})},[t,n,_]),x=(0,K.useCallback)(()=>m(null),[]),C=(0,K.useMemo)(()=>dc(p,{displayRows:t,pkCol:i,selectedTable:s,connectionId:a}),[p,t,i,s,a]),w=(0,K.useCallback)(()=>{C&&f({type:`editor`,title:C.title,projectId:null,closable:!0,metadata:{inlineContent:C.content,inlineLanguage:C.language,viewerKey:C.viewerKey}})},[f,C]),T=(0,K.useCallback)((e,t)=>{if(!i)return!1;let[n,a]=e;for(let e=0;e<t.length;e++){let o=h.current[a+e];if(!o)continue;let s=o[i];for(let i=0;i<t[e].length;i++){let a=g.current[n+i];if(!a||r.find(e=>e.name===a)?.pk)continue;let o=t[e][i];l(s,a,o===``?null:o)}}return!1},[i,r,l]),E=(0,K.useRef)(r);E.current=r;let D=(0,K.useRef)(u);D.current=u;let O=(0,K.useRef)(l);O.current=l;let k=(0,K.useRef)(i);return k.current=i,(0,K.useEffect)(()=>{if(!d)return;let e=e=>{let t=d.current;if(!t||!t.contains(document.activeElement))return;let n=document.activeElement?.tagName;if(n===`INPUT`||n===`TEXTAREA`)return;let r=k.current;if(!r)return;let i=D.current?.current;if(!i)return;let a=e.clipboardData?.getData(`text/plain`);if(!a)return;let o=a.split(/\r?\n/).filter(e=>e.length>0).map(e=>e.split(` `));if(o.length===0)return;let[s,c]=i.cell;for(let e=0;e<o.length;e++){let t=h.current[c+e];if(!t)continue;let n=t[r];for(let t=0;t<o[e].length;t++){let r=g.current[s+t];if(!r||E.current.find(e=>e.name===r)?.pk)continue;let i=o[e][t];O.current(n,r,i===``?null:i)}}e.preventDefault()};return document.addEventListener(`paste`,e),()=>document.removeEventListener(`paste`,e)},[d]),{previewData:C,closePreview:x,openRowPreview:v,openCellPreview:y,openPreviewInTab:w,handlePaste:T,getContextFk:(0,K.useCallback)(e=>e?r.find(t=>t.name===e)?.fk??null:null,[r]),isCellViewable:(0,K.useCallback)((e,t)=>e&&t?Qs(e[t]):!1,[]),openFkTable:(0,K.useCallback)((e,t)=>{t==null||!a||f({type:`database`,title:`${o??`DB`} · ${e.table}`,projectId:null,closable:!0,metadata:{connectionId:a,connectionName:o,tableName:e.table,schemaName:c??`public`,initialSql:`SELECT * FROM "${e.table}" WHERE "${e.column}" = '${String(t).replace(/'/g,`''`)}'`}})},[a,o,c,f])}}function pc({colName:e,bounds:t,isPinned:n,filterValue:r,sortState:i,onFilter:a,onSort:o,onClearSort:s,onTogglePin:c,onClose:l}){let[u,d]=(0,K.useState)(r),f=(0,K.useRef)(null),p=(0,K.useRef)(void 0);(0,K.useEffect)(()=>{let e=e=>{f.current&&!f.current.contains(e.target)&&l()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[l]),(0,K.useEffect)(()=>{let e=e=>{e.key===`Escape`&&l()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[l]);let m=e=>{d(e),clearTimeout(p.current),p.current=setTimeout(()=>a(e),300)},h=Math.min(t.x,window.innerWidth-220-8),g=t.y+t.height+2,v=document.getElementById(`portal`);return v?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:f,style:{position:`fixed`,left:h,top:g,zIndex:1e4},className:`w-[220px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden`,children:[(0,q.jsx)(`div`,{className:`px-3 py-1.5 border-b border-border text-muted-foreground font-medium truncate`,children:e}),(0,q.jsx)(`div`,{className:`px-2 py-1.5 border-b border-border`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(Fe,{className:`size-3 text-muted-foreground shrink-0`}),(0,q.jsx)(`input`,{autoFocus:!0,type:`text`,value:u,onChange:e=>m(e.target.value),placeholder:`Filter (ILIKE)…`,className:`flex-1 bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`}),u&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>m(``),className:`text-muted-foreground hover:text-foreground`,children:(0,q.jsx)(_,{className:`size-3`})})]})}),(0,q.jsxs)(`div`,{className:`py-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{o(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[i===`asc`?(0,q.jsx)(ee,{className:`size-3`}):(0,q.jsx)(C,{className:`size-3`}),i===`asc`?`Sort Descending`:`Sort Ascending`]}),i&&s&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{s(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(_,{className:`size-3`}),`Clear Sort`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{c(),l()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[n?(0,q.jsx)(A,{className:`size-3`}):(0,q.jsx)(O,{className:`size-3`}),n?`Unpin Column`:`Pin Column`]})]})]}),v):null}function mc({position:e,isPinned:t,onViewRow:n,onViewCell:r,onPinRow:i,onDeleteRow:a,onOpenFkTable:o,fkLabel:s,onClose:c}){let[l,f]=(0,K.useState)(!1),p=(0,K.useRef)(null);(0,K.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&c()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[c]),(0,K.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c]);let m=Math.min(e.x,window.innerWidth-180-8),h=Math.min(e.y,window.innerHeight-130-8),_=document.getElementById(`portal`);return _?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:p,style:{position:`fixed`,left:m,top:h,zIndex:1e4},className:`w-[180px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden py-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{n(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(d,{className:`size-3`}),` View as JSON`]}),r&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{r(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[(0,q.jsx)(d,{className:`size-3`}),` View Cell`]}),o&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{o(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-primary`,children:[(0,q.jsx)(u,{className:`size-3`}),` `,s??`Open Referenced Table`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{i(),c()},className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-foreground`,children:[t?(0,q.jsx)(A,{className:`size-3`}):(0,q.jsx)(O,{className:`size-3`}),t?`Unpin Row`:`Pin Row`]}),(0,q.jsx)(`div`,{className:`border-t border-border my-0.5`}),l?(0,q.jsxs)(`div`,{className:`px-3 py-1.5 flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>{a(),c()},className:`text-destructive font-medium hover:underline`,children:`Delete?`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>f(!1),className:`text-muted-foreground hover:underline`,children:`Cancel`})]}):(0,q.jsxs)(`button`,{type:`button`,onClick:()=>f(!0),className:`w-full text-left px-3 py-1.5 hover:bg-muted flex items-center gap-2 text-destructive`,children:[(0,q.jsx)(g,{className:`size-3`}),` Delete Row`]})]}),_):null}function hc({columns:e,onSelect:t,onClose:n,anchorRect:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(0),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=i?e.filter(e=>e.toLowerCase().includes(i.toLowerCase())):e;(0,K.useEffect)(()=>{s(0)},[i]),(0,K.useEffect)(()=>{let e=l.current;e&&e.children[o]?.scrollIntoView({block:`nearest`})},[o]),(0,K.useEffect)(()=>{let e=e=>{c.current&&!c.current.contains(e.target)&&n()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[n]);let d=(0,K.useCallback)(e=>{if(e.key===`Escape`){n();return}if(e.key===`ArrowDown`){e.preventDefault(),s(e=>Math.min(e+1,u.length-1));return}if(e.key===`ArrowUp`){e.preventDefault(),s(e=>Math.max(e-1,0));return}if(e.key===`Enter`){e.preventDefault();let r=u[o];r&&(t(r),n())}},[u,o,t,n]),f=document.getElementById(`portal`);return f?(0,Xe.createPortal)((0,q.jsxs)(`div`,{ref:c,style:{position:`fixed`,left:Math.min(r.x,window.innerWidth-216),top:Math.min(r.y,window.innerHeight-308),zIndex:1e4},className:`w-[200px] max-h-[300px] bg-popover border border-border rounded-md shadow-lg text-xs overflow-hidden flex flex-col`,children:[(0,q.jsx)(`div`,{className:`px-2 py-1.5 border-b border-border`,children:(0,q.jsx)(`input`,{autoFocus:!0,value:i,onChange:e=>a(e.target.value),onKeyDown:d,placeholder:`Search columns…`,className:`w-full bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`})}),(0,q.jsxs)(`div`,{ref:l,className:`overflow-y-auto py-1`,children:[u.map((e,r)=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>{t(e),n()},onMouseEnter:()=>s(r),className:`w-full text-left px-3 py-1 truncate text-foreground ${r===o?`bg-muted`:`hover:bg-muted`}`,children:e},e)),u.length===0&&(0,q.jsx)(`div`,{className:`px-3 py-2 text-muted-foreground`,children:`No columns found`})]})]}),f):null}function gc({hasSelection:e,selectedCount:t,onBulkDelete:n,onInsertRow:r,columns:i,selectedRows:a,connectionName:o,searchTerm:c,onSearchChange:l,onColumnJump:u,colSearchOpen:d,onColSearchChange:p}){let[m,h]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),b=d??v,x=p??y,S=(0,K.useRef)(null),C=S.current?(()=>{let e=S.current.getBoundingClientRect();return{x:e.left,y:e.bottom+4}})():{x:0,y:0};return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 border-b border-border bg-background shrink-0`,children:[e&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,q.jsxs)(`span`,{className:`text-muted-foreground`,children:[t,` selected`]}),n&&(m?(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{n(),h(!1)},className:`text-destructive text-[10px] font-medium hover:underline`,children:[`Delete `,t,`?`]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>h(!1),className:`text-muted-foreground text-[10px] hover:underline`,children:`Cancel`})]}):(0,q.jsx)(`button`,{type:`button`,onClick:()=>h(!0),className:`p-0.5 text-muted-foreground hover:text-destructive`,children:(0,q.jsx)(g,{className:`size-3`})})),(0,q.jsx)(J,{columns:i,rows:a,filename:`${o??`db`}-selected`})]}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,q.jsx)(E,{className:`size-3 text-muted-foreground`}),(0,q.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:`Search page…`,className:`w-24 bg-transparent outline-none text-foreground placeholder:text-muted-foreground text-xs`}),c&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(``),className:`text-muted-foreground hover:text-foreground`,children:(0,q.jsx)(_,{className:`size-3`})})]}),u&&(0,q.jsx)(`button`,{ref:S,type:`button`,onClick:()=>x(!b),className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,title:`Jump to column (/)`,children:(0,q.jsx)(s,{className:`size-3.5`})}),r&&(0,q.jsx)(`button`,{type:`button`,onClick:r,className:`p-0.5 rounded text-muted-foreground hover:text-primary transition-colors`,title:`Insert row`,children:(0,q.jsx)(f,{className:`size-3.5`})}),b&&u&&(0,q.jsx)(hc,{columns:i,onSelect:u,onClose:()=>x(!1),anchorRect:C})]})}function _c({pendingCount:e,onSave:t,onDiscard:n}){return e===0?null:(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-t border-warning/50 bg-warning/5 shrink-0 text-xs`,children:[(0,q.jsxs)(`span`,{className:`text-warning font-medium`,children:[e,` pending edit`,e>1?`s`:``]}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsxs)(`button`,{type:`button`,onClick:n,className:`flex items-center gap-1 px-2 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,q.jsx)(D,{className:`size-3`}),` Discard`]}),(0,q.jsxs)(`button`,{type:`button`,onClick:t,className:`flex items-center gap-1 px-2 py-0.5 rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(m,{className:`size-3`}),` Save`,(0,q.jsx)(`kbd`,{className:`ml-1 text-[9px] opacity-70`,children:`⌘↵`})]})]})}function vc({total:e,page:t,totalPages:n,onPageChange:r}){return(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-t border-border bg-background shrink-0 text-xs text-muted-foreground`,children:[(0,q.jsxs)(`span`,{children:[e.toLocaleString(),` rows`]}),(0,q.jsxs)(`div`,{className:`hidden md:flex items-center gap-2 text-[10px] text-muted-foreground/50`,children:[(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:`/`}),` columns`]}),(0,q.jsxs)(`span`,{children:[(0,q.jsxs)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:[`⌘`,`A`]}),` select all`]}),(0,q.jsxs)(`span`,{children:[(0,q.jsxs)(`kbd`,{className:`px-1 py-0.5 rounded bg-muted text-[9px]`,children:[`⌘`,`C`]}),` copy`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`button`,{type:`button`,disabled:t<=1,onClick:()=>r(t-1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,q.jsx)(w,{className:`size-3.5`})}),(0,q.jsxs)(`span`,{children:[t,` / `,n]}),(0,q.jsx)(`button`,{type:`button`,disabled:t>=n,onClick:()=>r(t+1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,q.jsx)(o,{className:`size-3.5`})})]})]})}function yc(e,t){if(t===`json`)try{return JSON.stringify(JSON.parse(e.trim()),null,2)}catch{return null}if(t===`xml`){let t=0;return e.trim().replace(/>\s*</g,`>
|
|
136
136
|
<`).split(`
|
|
137
137
|
`).map(e=>{let n=e.trim();n.startsWith(`</`)&&(t=Math.max(0,t-1));let r=` `.repeat(t)+n;return n.startsWith(`<`)&&!n.startsWith(`</`)&&!n.endsWith(`/>`)&&!n.startsWith(`<?`)&&t++,r}).join(`
|
|
138
|
-
`)}return null}function bc({data:e,onClose:t,onOpenInTab:n}){let r=Ne(),[i,a]=(0,K.useState)(!0),[o,s]=(0,K.useState)(!1),l=e.language===`json`||e.language===`xml`,f=(0,K.useMemo)(()=>o?yc(e.content,e.language)??e.content:e.content,[o,e.content,e.language]),m=(0,K.useCallback)(()=>{s(t=>t?!1:yc(e.content,e.language)!==null)},[e.content,e.language]),[g,v]=(0,K.useState)(200),y=(0,K.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=g,r=e=>v(Math.max(80,n+(t-e.clientY))),i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[g]);return(0,q.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:g},children:[(0,q.jsx)(`div`,{onMouseDown:y,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,q.jsx)(
|
|
138
|
+
`)}return null}function bc({data:e,onClose:t,onOpenInTab:n}){let r=Ne(),[i,a]=(0,K.useState)(!0),[o,s]=(0,K.useState)(!1),l=e.language===`json`||e.language===`xml`,f=(0,K.useMemo)(()=>o?yc(e.content,e.language)??e.content:e.content,[o,e.content,e.language]),m=(0,K.useCallback)(()=>{s(t=>t?!1:yc(e.content,e.language)!==null)},[e.content,e.language]),[g,v]=(0,K.useState)(200),y=(0,K.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=g,r=e=>v(Math.max(80,n+(t-e.clientY))),i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[g]);return(0,q.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:g},children:[(0,q.jsx)(`div`,{onMouseDown:y,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,q.jsx)(k,{className:`size-3 text-muted-foreground/50`})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1 bg-muted/50 border-b border-border shrink-0`,children:[(0,q.jsx)(d,{className:`size-3 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`text-xs font-medium text-foreground truncate flex-1`,children:e.title}),l&&(0,q.jsx)(`button`,{type:`button`,onClick:m,title:o?`Raw`:`Beautify`,className:`p-0.5 rounded transition-colors ${o?`text-primary`:`text-muted-foreground hover:text-foreground`}`,children:(0,q.jsx)(c,{className:`size-3`})}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>a(!i),title:i?`No wrap`:`Word wrap`,className:`p-0.5 rounded transition-colors ${i?`text-primary`:`text-muted-foreground hover:text-foreground`}`,children:(0,q.jsx)(h,{className:`size-3`})}),(0,q.jsxs)(`button`,{type:`button`,onClick:n,title:`Open in new tab`,className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,q.jsx)(u,{className:`size-3`}),(0,q.jsx)(`span`,{className:`hidden sm:inline`,children:`Open in Tab`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:t,title:`Close preview (Esc)`,className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,q.jsx)(_,{className:`size-3`})})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,q.jsx)(te,{height:`100%`,language:e.language===`plaintext`?void 0:e.language,value:f,theme:r,options:{readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:i?`on`:`off`,lineNumbers:`on`,fontSize:12,folding:!0,bracketPairColorization:{enabled:!0},domReadOnly:!0,contextmenu:!1,overviewRulerLanes:0},loading:(0,q.jsx)(p,{className:`size-4 animate-spin text-muted-foreground`})})})]})}var xc={sortAsc:e=>`<svg viewBox="0 0 16 16" fill="${e.fgColor}"><path d="M8 4l4 6H4z"/></svg>`,sortDesc:e=>`<svg viewBox="0 0 16 16" fill="${e.fgColor}"><path d="M8 12l4-6H4z"/></svg>`,headerFk:()=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"><path d="M6 4.5H4.5a2.5 2.5 0 000 5H6M10 4.5h1.5a2.5 2.5 0 010 5H10M5 7h6"/></svg>`};function Sc(e){let{columns:t,rows:n,total:r,limit:i,schema:a,loading:o,page:s,onPageChange:c,onCellUpdate:l,onRowDelete:u,onBulkDelete:d,onInsertRow:f,orderBy:m,orderDir:h,onToggleSort:g,onClearSort:_,columnFilters:v={},onColumnFilter:y,connectionId:b,selectedTable:x,selectedSchema:S,connectionName:C}=e,w=Ys(),T=(0,K.useRef)(null),E=(0,K.useRef)(null),D=(0,K.useMemo)(()=>{let e=new Set(a.map(e=>e.name));return t.filter(t=>e.has(t))},[t,a]),[O,k]=(0,K.useState)(new Set),[ee,te]=(0,K.useState)(new Map),[A,ne]=(0,K.useState)(null),[j,re]=(0,K.useState)(null),[ie,ae]=(0,K.useState)(``),[M,N]=(0,K.useState)([]),P=(0,K.useMemo)(()=>a.find(e=>e.pk)?.name??a.find(e=>e.name.toLowerCase()===`id`)?.name??null,[a]),{effectiveRows:F,pinnedCount:oe,pinnedPks:se,setPinnedPks:ce}=lc(n,P),I=(0,K.useMemo)(()=>{if(oe===0)return[...F,...M];let e=F.slice(0,F.length-oe),t=F.slice(F.length-oe);return[...e,...M,...t]},[F,M,oe]),L=(0,K.useMemo)(()=>{if(!ie.trim())return I;let e=ie.toLowerCase();return I.filter(t=>D.some(n=>String(t[n]??``).toLowerCase().includes(e)))},[I,D,ie]),le=(0,K.useMemo)(()=>oe===0||!P?0:ie.trim()?L.filter(e=>se.has(String(e[P]??``))).length:oe,[oe,P,ie,L,se]),{pendingRef:ue,addEdit:de,commitAll:fe,discardAll:pe,hasPending:me,pendingCount:he,committedRef:ge}=cc(P,l,f),{columns:_e,freezeColumns:R,columnOrder:ve}=Zs(a,D,O,ee,L,m,h),{getCellContent:ye,onCellEdited:be}=ac(L,ve,a,P,de,ue),{gridSelection:z,onGridSelectionChange:xe,selectedRowIndices:B,clearSelection:V}=sc(),{previewData:H,closePreview:Se,openRowPreview:U,openCellPreview:W,openPreviewInTab:Ce,handlePaste:we,getContextFk:Te,isCellViewable:G,openFkTable:Ee}=fc({displayRows:L,columnOrder:ve,schema:a,pkCol:P,connectionId:b,connectionName:C,selectedTable:x,selectedSchema:S,addEdit:de,gridSelection:z,containerRef:E});(0,K.useEffect)(()=>{ge.current&&(ge.current=!1,pe(),N([]))},[n]);let De=(0,K.useCallback)((e,t)=>{te(n=>new Map(n).set(e.id??e.title,t))},[]),Oe=(0,K.useCallback)((e,t)=>{let n=ve[e];n&&ne({colName:n,bounds:t})},[ve]),ke=(0,K.useCallback)(([e,t],n)=>{n.preventDefault(),re({position:{x:n.bounds.x+n.localEventX,y:n.bounds.y+n.localEventY},rowIdx:t,colIdx:e})},[]),Ae=(0,K.useCallback)(e=>{k(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),je=(0,K.useCallback)(e=>{if(!P)return;let t=L[e];if(!t)return;let n=String(t[P]??``);ce(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t})},[P,L,ce]),Me=(0,K.useCallback)(e=>{if(se.size===0||!P)return;let t=L[e];if(t&&se.has(String(t[P]??``)))return{bgCell:w.bgCellMedium??w.bgHeader}},[se,P,L,w]),Ne=(0,K.useCallback)(()=>{!P||!d||(d(P,B.map(e=>L[e]?.[P]).filter(e=>e!=null)),V())},[P,d,B,L,V]),[Pe,Fe]=(0,K.useState)(!1),Ie=(0,K.useCallback)(e=>{if(e.key===`Escape`){Se(),Fe(!1);return}(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&me&&(e.preventDefault(),fe());let t=e.target?.tagName;e.key===`/`&&t!==`INPUT`&&t!==`TEXTAREA`&&(e.preventDefault(),Fe(!0))},[me,fe,Se]),Le=(0,K.useCallback)(()=>{!P||!f||N(e=>[...e,{[P]:`__new_${Date.now()}`}])},[P,f]),Re=(0,K.useCallback)(e=>{let t=ve.indexOf(e);t>=0&&T.current?.scrollTo&&T.current.scrollTo(t,0)},[ve]),ze=j?L[j.rowIdx]:null,Be=ze&&P?String(ze[P]??``):``,Ve=j?ve[j.colIdx]:null,He=G(ze??null,Ve??null),Ue=Te(Ve??null),We=ze&&Ve?ze[Ve]:null;return D.length?(0,q.jsxs)(`div`,{ref:E,className:`flex flex-col h-full overflow-hidden relative`,tabIndex:0,onKeyDown:Ie,children:[(0,q.jsx)(gc,{hasSelection:B.length>0,selectedCount:B.length,onBulkDelete:d&&P?Ne:void 0,onInsertRow:f&&P?Le:void 0,columns:D,selectedRows:B.map(e=>L[e]).filter(Boolean),connectionName:C,searchTerm:ie,onSearchChange:ae,onColumnJump:Re,colSearchOpen:Pe,onColSearchChange:Fe}),o&&(0,q.jsx)(`div`,{className:`absolute inset-0 z-30 flex items-center justify-center bg-background/60`,children:(0,q.jsx)(p,{className:`size-5 animate-spin text-primary`})}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,q.jsx)(Gs,{ref:T,columns:_e,rows:L.length,getCellContent:ye,getCellsForSelection:!0,onCellEdited:be,onPaste:we,theme:w,freezeColumns:R,freezeTrailingRows:le,rowMarkers:P?`checkbox-visible`:`number`,gridSelection:z,onGridSelectionChange:xe,onColumnResize:De,onHeaderMenuClick:Oe,onCellContextMenu:ke,getRowThemeOverride:Me,trailingRowOptions:f&&P?{sticky:!0,tint:!0}:void 0,onRowAppended:f?Le:void 0,headerIcons:xc,smoothScrollX:!0,smoothScrollY:!0,width:`100%`,height:`100%`})}),me&&(0,q.jsx)(_c,{pendingCount:he,onSave:fe,onDiscard:()=>{pe(),N([])}}),H&&(0,q.jsx)(bc,{data:H,onClose:Se,onOpenInTab:Ce}),(0,q.jsx)(vc,{total:r,page:s,totalPages:Math.ceil(r/i)||1,onPageChange:c}),A&&(0,q.jsx)(pc,{colName:A.colName,bounds:A.bounds,isPinned:O.has(A.colName),filterValue:v[A.colName]??``,sortState:m===A.colName?h===`ASC`?`asc`:`desc`:null,onFilter:e=>{if(!y)return;let t={...v};e?t[A.colName]=e:delete t[A.colName],y(t)},onSort:()=>{g&&g(A.colName)},onClearSort:_,onTogglePin:()=>Ae(A.colName),onClose:()=>ne(null)}),j&&ze&&(0,q.jsx)(mc,{position:j.position,isPinned:se.has(Be),onViewRow:()=>U(j.rowIdx),onViewCell:He?()=>W(j.rowIdx,j.colIdx):void 0,onPinRow:()=>je(j.rowIdx),onDeleteRow:()=>{P&&u&&ze&&u(P,ze[P])},onOpenFkTable:Ue&&We!=null&&b?()=>Ee(Ue,We):void 0,fkLabel:Ue?`Open ${Ue.table}.${Ue.column}`:void 0,onClose:()=>re(null)})]}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-full text-xs text-muted-foreground`,children:o?(0,q.jsx)(p,{className:`size-4 animate-spin`}):`Select a table`})}export{Be as a,Je as i,J as n,Ye as r,Sc as t};
|