@marimo-team/frontend 0.25.3-dev6 → 0.25.3-dev61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/CellStatus-cD3S0wEA.js +1 -0
- package/dist/assets/{ConnectedDataExplorerComponent-t8fH_TNc.js → ConnectedDataExplorerComponent-D9UK8o9A.js} +1 -1
- package/dist/assets/{ErrorBoundary-B4n9EnHB.js → ErrorBoundary-DJhsFCsX.js} +2 -2
- package/dist/assets/JsonOutput-Pm6OCP3J.js +11 -0
- package/dist/assets/{LazyAnyLanguageCodeMirror-CKcCbG2G.js → LazyAnyLanguageCodeMirror-BPYE76jR.js} +2 -2
- package/dist/assets/MarimoErrorOutput-DlEjLCZ-.js +10 -0
- package/dist/assets/{RenderHTML-9bMgbYmo.js → RenderHTML-CfQ6i3QV.js} +1 -1
- package/dist/assets/RunButton-DvuvkgrG.js +1 -0
- package/dist/assets/{add-cell-with-ai-f_MnLCwI.js → add-cell-with-ai-BhmuohAY.js} +7 -7
- package/dist/assets/{add-connection-dialog-CoE_PhuD.js → add-connection-dialog-D7EYSraq.js} +2 -2
- package/dist/assets/{agent-panel-C5mZtUrU.js → agent-panel-GFhlWVub.js} +1 -1
- package/dist/assets/ai-model-dropdown-YT1HiXiK.js +13 -0
- package/dist/assets/{alert-dialog-BaPGzeOK.js → alert-dialog-C-sWmKva.js} +1 -1
- package/dist/assets/any-language-editor-DUMe1UCk.js +1 -0
- package/dist/assets/{app-config-button-BhU0ulYs.js → app-config-button-C_whRVO8.js} +1 -1
- package/dist/assets/arrays-0R2reF2y.js +1 -0
- package/dist/assets/{blob-iOBwGaP9.js → blob-e6VlOmQP.js} +1 -1
- package/dist/assets/{button-COI-NGrx.js → button-D8gVKwe-.js} +1 -1
- package/dist/assets/{cache-panel-DTY1dqvi.js → cache-panel-Byolv2ht.js} +1 -1
- package/dist/assets/{capabilities-BJvf-MD4.js → capabilities-Pq1YNPlK.js} +1 -1
- package/dist/assets/{cell-editor-CEiJJF6a.js → cell-editor-3cVIcyHK.js} +6 -6
- package/dist/assets/cell-link-DFqfW-Ym.js +1 -0
- package/dist/assets/{cells-rA_jsZCj.js → cells-T9_Y4Jlv.js} +56 -56
- package/dist/assets/{chat-display-BmEPmhDP.js → chat-display-BtaARI-N.js} +1 -1
- package/dist/assets/chat-panel-eT2lfQrB.js +4 -0
- package/dist/assets/chat-ui-nNFa2LdU.js +4 -0
- package/dist/assets/{circle-DXf-VWZG.js → circle-B6D_6D8w.js} +1 -1
- package/dist/assets/code-visibility-CV3S4xuf.js +1 -0
- package/dist/assets/coerce-DWjFeXOY.js +1 -0
- package/dist/assets/{column-preview-o9xRdZTY.js → column-preview-C6uXRJry.js} +1 -1
- package/dist/assets/command-palette-OZPTmtR-.js +1 -0
- package/dist/assets/{common-lisZ0l6a.js → common-DeeLgjWQ.js} +1 -1
- package/dist/assets/{components-CP_UoFtT.js → components-DrU8dOzy.js} +1 -1
- package/dist/assets/{components-Dvd1GnD6.js → components-DyAF3_Nf.js} +1 -1
- package/dist/assets/{components-CXfO-F47.js → components-lDm0qi2t.js} +1 -1
- package/dist/assets/{config-DJLAC21v.js → config-CjQ4WJnJ.js} +1 -1
- package/dist/assets/config-DGX7JYor.js +1 -0
- package/dist/assets/config-DzdxZb17.js +1 -0
- package/dist/assets/{copy-D8O_CYCG.js → copy-KlhazlhB.js} +1 -1
- package/dist/assets/{copy-icon-BIiRXh_3.js → copy-icon-8-a5vovc.js} +1 -1
- package/dist/assets/{createReducer-DgRODTW6.js → createReducer-HKXUbqyz.js} +1 -1
- package/dist/assets/{datasource-Dr1xNKUn.js → datasource-gqFgG9Qd.js} +1 -1
- package/dist/assets/{dates-CfmdTL6B.js → dates-CQMwFko2.js} +1 -1
- package/dist/assets/{dependency-graph-panel-B0uP-_id.js → dependency-graph-panel-BFFxLgR6.js} +1 -1
- package/dist/assets/{dist-iaThVDkA.js → dist-jlhMTKo_.js} +1 -1
- package/dist/assets/{documentation-panel-DVl_ebWy.js → documentation-panel-BBpGbT-f.js} +1 -1
- package/dist/assets/{download-Bx55LMki.js → download-C8Gw-D0Y.js} +1 -1
- package/dist/assets/{dropdown-menu-C1rnl-0o.js → dropdown-menu-DS6umAnH.js} +1 -1
- package/dist/assets/{edit-page-C-u87GMH.js → edit-page-B0lN_Rib.js} +6 -6
- package/dist/assets/{error-banner-Cd69vvyX.js → error-banner-B5kzVf_0.js} +1 -1
- package/dist/assets/{error-entries-DOWpdGvI.js → error-entries-uyqOG5tg.js} +1 -1
- package/dist/assets/{error-panel-DpbNKSLs.js → error-panel-Cli5zPWi.js} +1 -1
- package/dist/assets/{errors-DCrsa1nH.js → errors-CNsgAw6m.js} +1 -1
- package/dist/assets/{es-Cqst59WX.js → es-N9SHpmG7.js} +1 -1
- package/dist/assets/{feedback-button-B99ThNJW.js → feedback-button-CvrwBGr7.js} +2 -2
- package/dist/assets/feedback-button-DknbRCN_.js +1 -0
- package/dist/assets/file-explorer-panel-BSU5ultY.js +1 -0
- package/dist/assets/{file-name-input-ChnBsDE_.js → file-name-input-CDrRlIiX.js} +1 -1
- package/dist/assets/{floating-outline-MYqQW4Vp.js → floating-outline-GQD9km0W.js} +1 -1
- package/dist/assets/{formats-yZ06h1Pl.js → formats-zylfwejq.js} +1 -1
- package/dist/assets/{formatting-BqrP-n49.js → formatting-uom1es4b.js} +1 -1
- package/dist/assets/{fullscreen-B9tHcfpV.js → fullscreen-BWTs8pYZ.js} +1 -1
- package/dist/assets/{gallery-page-DSL0J4md.js → gallery-page-CxmV1JLF.js} +1 -1
- package/dist/assets/{ganttDiagram-EL5Y4UJY-2n7Ig5Jm.js → ganttDiagram-EL5Y4UJY-CYqkCfFG.js} +1 -1
- package/dist/assets/{glide-data-editor-B1MWlKeM.js → glide-data-editor-B1kpoetH.js} +2 -2
- package/dist/assets/{glide-utils-CIrAxdjv.js → glide-utils-HFqhvWHI.js} +2 -2
- package/dist/assets/{home-page-KrhQ55Vg.js → home-page-KnJyha6O.js} +3 -3
- package/dist/assets/{hooks-DUp5IAgD.js → hooks-w6zKs3CJ.js} +1 -1
- package/dist/assets/{html-to-image-DK9Zl1lU.js → html-to-image-D_0rd3_B.js} +1 -1
- package/dist/assets/index-Bu8_lPMx.js +30 -0
- package/dist/assets/index-evFWHKmM.css +2 -0
- package/dist/assets/{input-BoBxR50a.js → input-BZdRe7pb.js} +1 -1
- package/dist/assets/{kiosk-mode-BZECfg9k.js → kiosk-mode-BGmMSc7A.js} +1 -1
- package/dist/assets/layout-sYdHI-lW.js +9 -0
- package/dist/assets/linear-Bma8J3iM.js +1 -0
- package/dist/assets/links-CXcpNIM0.js +1 -0
- package/dist/assets/{logs-panel-y0XnfulJ.js → logs-panel-CdUc5vtA.js} +1 -1
- package/dist/assets/{markdown-renderer-Q5AhbRU3.js → markdown-renderer-pKc_bFac.js} +1 -1
- package/dist/assets/{menu-items-BrwnTgyK.js → menu-items-BgUyNUpu.js} +1 -1
- package/dist/assets/{mermaid-a3xYymTy.js → mermaid-B6mqMm5_.js} +2 -2
- package/dist/assets/{name-cell-input-BNOnF6-0.js → name-cell-input-csH3Cy54.js} +1 -1
- package/dist/assets/numbers-CsZVw3Dc.js +1 -0
- package/dist/assets/{objects-snlMn4yk.js → objects-rLPlQ3X_.js} +1 -1
- package/dist/assets/{once-Haz_uxEL.js → once-6KNTRW0u.js} +1 -1
- package/dist/assets/{outline-panel-Be7stWwv.js → outline-panel-DhsHYTuo.js} +1 -1
- package/dist/assets/packages-panel-lkNX6Oov.js +1 -0
- package/dist/assets/{panel-accordion-state-GeMEdCPw.js → panel-accordion-state-Bco6nsUI.js} +1 -1
- package/dist/assets/panels-B2UqDbHy.js +107 -0
- package/dist/assets/precisionRound-BxlUs8G4.js +1 -0
- package/dist/assets/process-output-B2-bT4cq.js +1 -0
- package/dist/assets/{quadrantDiagram-AXDQQJYC-yBhCDI7E.js → quadrantDiagram-AXDQQJYC-D9KH5Zge.js} +1 -1
- package/dist/assets/react-vega-BTNeboR2.js +189 -0
- package/dist/assets/{readonly-code-display-YULOXf4h.js → readonly-code-display-Dsp6vWPh.js} +1 -1
- package/dist/assets/{readonly-python-code-CadgXgRu.js → readonly-python-code-B81AjzXM.js} +1 -1
- package/dist/assets/{renderShortcut-BkVJQ_Zh.js → renderShortcut-H60uiHBp.js} +1 -1
- package/dist/assets/{reveal-component-Dt9zvXLN.js → reveal-component-CrQRQhW4.js} +37 -37
- package/dist/assets/run-page-BGzpa3D9.js +1 -0
- package/dist/assets/{runs-BLp5jezv.js → runs-6lJxKV1w.js} +1 -1
- package/dist/assets/{runtime-details-state-DuChzsA6.js → runtime-details-state-CznIe40L.js} +1 -1
- package/dist/assets/{schemas-Dv42wLFq.js → schemas-ChRqMOTL.js} +1 -1
- package/dist/assets/{scratchpad-panel-Y_PFOI4m.js → scratchpad-panel-ClLxdqdK.js} +1 -1
- package/dist/assets/{scroll-to-bottom-button-1FyowpWV.js → scroll-to-bottom-button-CIkON2WJ.js} +1 -1
- package/dist/assets/{secrets-panel-Bctbtkrp.js → secrets-panel-Dh3v7XPE.js} +1 -1
- package/dist/assets/{select-DTBn5eTb.js → select-3CVGlYrC.js} +1 -1
- package/dist/assets/{session-DqoWmb7X.js → session-B8Y-GJnS.js} +1 -1
- package/dist/assets/{session-panel-vO6eOEyz.js → session-panel-C7-wmZhc.js} +1 -1
- package/dist/assets/{snippets-panel-CQ1dn3lA.js → snippets-panel-BARpOPyS.js} +1 -1
- package/dist/assets/{spec-BfSBcO5B.js → spec-uCpVvaAR.js} +1 -1
- package/dist/assets/{state-z3dlofZB.js → state-BRYi026f.js} +3 -3
- package/dist/assets/{state-uwRvJLb8.js → state-BY4_P6ko.js} +1 -1
- package/dist/assets/{state-Bfh_2SLl.js → state-Bye6rCo4.js} +1 -1
- package/dist/assets/{state-BAJYRhmO.js → state-C0irhlOZ.js} +1 -1
- package/dist/assets/{state-DxQnC_1I.js → state-Ck7FMD5A.js} +1 -1
- package/dist/assets/{state-C3oDoyFe.js → state-DaWgt-rn.js} +1 -1
- package/dist/assets/{strings-B2vv-ENv.js → strings-C25fhMR_.js} +1 -1
- package/dist/assets/{swiper-component-a07domrZ.js → swiper-component-CRGRy5_O.js} +1 -1
- package/dist/assets/{switch-CTaiAjrz.js → switch-IoWE8PbW.js} +1 -1
- package/dist/assets/{tabs-BuQlZFbt.js → tabs-CY8E4r9U.js} +1 -1
- package/dist/assets/{terminal-Ck_vK-34.js → terminal-Bhcn_y1N.js} +1 -1
- package/dist/assets/{time-MgToa8VM.js → time-DswSXBDk.js} +1 -1
- package/dist/assets/{toast-BGzLGnvw.js → toast-Gzxi-le_.js} +1 -1
- package/dist/assets/tooltip-Brya4Ghn.js +61 -0
- package/dist/assets/{tooltip-C9TuY18o.js → tooltip-CkGm8X7m.js} +1 -1
- package/dist/assets/tracing-BW2ZVnXs.js +1 -0
- package/dist/assets/{tracing-panel-dgnr2fIN.js → tracing-panel-UKdh_YXC.js} +2 -2
- package/dist/assets/{tree-actions-DAd80MbP.js → tree-actions-Cb-nUK1F.js} +1 -1
- package/dist/assets/{use-restore-focus-BxEGwIbk.js → use-restore-focus-DdS7Tl0F.js} +1 -1
- package/dist/assets/{useAddCell-DGstJK0S.js → useAddCell-Bielffe0.js} +1 -1
- package/dist/assets/useAsyncData-DhhdOGGd.js +1 -0
- package/dist/assets/useBoolean-CMgj9hnq.js +1 -0
- package/dist/assets/{useCellActionButton-DY9RlJTb.js → useCellActionButton-Cu34Zs6x.js} +1 -1
- package/dist/assets/useDebounce-k9QTpQ9-.js +1 -0
- package/dist/assets/useDelayElapsed-BlsDT4TV.js +1 -0
- package/dist/assets/{useDeleteCell-DFBGlSQk.js → useDeleteCell-BV4VemCv.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DydxsE5d.js → useDependencyPanelTab-BEGqRiWi.js} +1 -1
- package/dist/assets/{useEventListener-D9cftcHj.js → useEventListener-CjDeLqFC.js} +1 -1
- package/dist/assets/{useIframeCapabilities-CwTkczVN.js → useIframeCapabilities-Czr9e4uG.js} +1 -1
- package/dist/assets/{useInstallPackage-iX1eufdl.js → useInstallPackage-C7neMPwh.js} +1 -1
- package/dist/assets/{useInterval--x3s1VpI.js → useInterval-DJdQmXnq.js} +1 -1
- package/dist/assets/{useNotebookActions-11Ni_ABm.js → useNotebookActions-OLol05t9.js} +1 -1
- package/dist/assets/{useRunCells-BFjFX3hz.js → useRunCells-BFeZMi7f.js} +1 -1
- package/dist/assets/{useSplitCell-Tqv5pPtL.js → useSplitCell-DllkNFke.js} +1 -1
- package/dist/assets/useStateForKey-CGMJQT8x.js +1 -0
- package/dist/assets/{useTheme-COhSHkCj.js → useTheme-DLtPc-39.js} +1 -1
- package/dist/assets/{utils-CaQYvazl.js → utils-DfElfBpz.js} +1 -1
- package/dist/assets/vega-component-D7JFthDD.js +1 -0
- package/dist/assets/{vega-embed-container-DJPNkHPb.js → vega-embed-container-DtArSJz1.js} +1 -1
- package/dist/assets/vega-loader.browser-Bu25TKax.js +6 -0
- package/dist/assets/{write-secret-modal-DzKAInL2.js → write-secret-modal-7DzehGyr.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-KbGzG6-u.js → xychartDiagram-S5SC5T6Z-CeRnBS5e.js} +1 -1
- package/dist/index.html +76 -74
- package/package.json +4 -4
- package/src/__tests__/host-imports.test.ts +1 -0
- package/src/components/app-config/ai-config.tsx +6 -2
- package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
- package/src/components/chat/chat-panel.tsx +3 -7
- package/src/components/chat/chat-utils.ts +4 -8
- package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
- package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
- package/src/components/data-table/__tests__/export-actions.test.tsx +434 -6
- package/src/components/data-table/charts/charts.tsx +14 -19
- package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
- package/src/components/data-table/columns.tsx +2 -1
- package/src/components/data-table/context-menu.tsx +36 -20
- package/src/components/data-table/date-popover.tsx +6 -4
- package/src/components/data-table/export-actions.tsx +267 -163
- package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
- package/src/components/data-table/schemas.ts +14 -36
- package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
- package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +24 -0
- package/src/components/editor/actions/pair-with-agent-modal.tsx +18 -15
- package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
- package/src/components/editor/cell/CreateCellButton.tsx +8 -10
- package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
- package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
- package/src/components/editor/cell/code/cell-editor.tsx +1 -1
- package/src/components/editor/cell/code/language-toggle.tsx +8 -7
- package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
- package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +30 -1
- package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
- package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +12 -18
- package/src/components/editor/connections/components.tsx +1 -1
- package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
- package/src/components/editor/controls/command-palette.tsx +22 -10
- package/src/components/editor/dynamic-favicon.tsx +21 -40
- package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +12 -23
- package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
- package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
- package/src/components/editor/file-tree/file-explorer.tsx +10 -5
- package/src/components/editor/file-tree/file-viewer.tsx +4 -2
- package/src/components/editor/file-tree/use-file-search.ts +35 -21
- package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
- package/src/components/editor/output/console/ConsoleOutput.tsx +8 -18
- package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
- package/src/components/icons/large-spinner.tsx +3 -14
- package/src/components/pages/home-page.tsx +4 -4
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/tracing/tracing.tsx +2 -2
- package/src/core/attachments/state.ts +5 -8
- package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
- package/src/core/cells/cells.ts +2 -1
- package/src/core/cells/pending-delete-service.ts +2 -6
- package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
- package/src/core/datasets/data-source-discovery.ts +4 -6
- package/src/core/edit-app.tsx +2 -2
- package/src/core/host/AGENTS.md +11 -2
- package/src/core/host/__tests__/attachments.test.ts +56 -0
- package/src/core/host/__tests__/document.test.ts +126 -0
- package/src/core/host/__tests__/events.test.ts +49 -0
- package/src/core/host/__tests__/fixtures.ts +41 -0
- package/src/core/host/__tests__/notebook-client.test.ts +496 -0
- package/src/core/host/connection.ts +81 -0
- package/src/core/host/events.ts +68 -0
- package/src/core/host/notebook-client.ts +316 -0
- package/src/core/host/resources/attachments.ts +19 -0
- package/src/core/host/resources/document.ts +101 -0
- package/src/core/hotkeys/actions.ts +2 -4
- package/src/core/islands/__tests__/bootstrap.test.ts +0 -26
- package/src/core/islands/bootstrap.ts +0 -1
- package/src/core/network/connection.ts +4 -2
- package/src/core/network/useConnectionNotice.ts +8 -2
- package/src/core/run-app.tsx +2 -2
- package/src/core/runtime/__tests__/runtime.test.ts +5 -12
- package/src/core/runtime/runtime.ts +5 -5
- package/src/core/static/files.ts +2 -0
- package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
- package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
- package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +149 -0
- package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +168 -253
- package/src/core/websocket/connection-state.ts +70 -0
- package/src/core/websocket/state.ts +7 -0
- package/src/core/websocket/transports/__tests__/sse.test.ts +18 -4
- package/src/core/websocket/transports/create.ts +31 -0
- package/src/core/websocket/transports/sse.ts +14 -2
- package/src/core/websocket/transports/transport.ts +12 -23
- package/src/core/websocket/types.ts +9 -39
- package/src/core/websocket/useNotebookClient.ts +78 -0
- package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +53 -233
- package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
- package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
- package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
- package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
- package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
- package/src/hooks/__tests__/useScript.test.tsx +77 -0
- package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
- package/src/hooks/useAsyncData.ts +3 -3
- package/src/hooks/useDataSourceDiscovery.ts +6 -4
- package/src/hooks/useDebounce.ts +5 -8
- package/src/hooks/useDeepCompareMemoize.ts +1 -1
- package/src/hooks/useDelayElapsed.ts +14 -10
- package/src/hooks/useElapsedTime.ts +3 -3
- package/src/hooks/useInputHistory.ts +4 -7
- package/src/hooks/useInternalStateWithSync.ts +6 -6
- package/src/hooks/useResizeObserver.ts +4 -7
- package/src/hooks/useScript.ts +67 -70
- package/src/hooks/useStateForKey.ts +93 -0
- package/src/plugins/core/registerReactComponent.tsx +1 -1
- package/src/plugins/impl/DataTablePlugin.tsx +14 -15
- package/src/plugins/impl/DropdownPlugin.tsx +2 -6
- package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
- package/src/plugins/impl/FormPlugin.tsx +1 -1
- package/src/plugins/impl/SliderPlugin.tsx +6 -8
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +201 -1
- package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
- package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
- package/src/plugins/impl/anywidget/__tests__/registry.test.ts +2 -0
- package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
- package/src/plugins/impl/anywidget/runtime.ts +21 -9
- package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
- package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
- package/src/plugins/impl/chat/chat-ui.tsx +10 -9
- package/src/plugins/impl/code/any-language-editor.tsx +2 -2
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
- package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
- package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
- package/src/plugins/impl/panel/PanelPlugin.tsx +15 -16
- package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
- package/src/plugins/impl/panel/utils.ts +17 -0
- package/src/plugins/impl/vega/make-selectable.ts +3 -6
- package/src/stories/__tests__/editor-story.test.tsx +33 -0
- package/src/stories/editor.stories.tsx +24 -17
- package/src/utils/__tests__/arrays.test.ts +35 -0
- package/src/utils/__tests__/numbers.test.ts +48 -1
- package/src/utils/__tests__/objects.test.ts +21 -0
- package/src/utils/arrays.ts +10 -0
- package/src/utils/numbers.ts +28 -17
- package/src/utils/objects.ts +3 -7
- package/src/utils/once.ts +19 -19
- package/dist/assets/CellStatus-nZpuDkm7.js +0 -1
- package/dist/assets/JsonOutput-CYB1yEoe.js +0 -11
- package/dist/assets/MarimoErrorOutput-BTy4MOzX.js +0 -10
- package/dist/assets/RunButton-CFQUNN5c.js +0 -1
- package/dist/assets/ai-model-dropdown-zm-2fXzf.js +0 -13
- package/dist/assets/any-language-editor-BLCAD3yx.js +0 -1
- package/dist/assets/arrays-BqUx5USx.js +0 -1
- package/dist/assets/cell-link-1CynTVGQ.js +0 -1
- package/dist/assets/chat-panel-Ce2Xh7dM.js +0 -4
- package/dist/assets/chat-ui-DTy98rP3.js +0 -4
- package/dist/assets/code-visibility-B-_GvwR5.js +0 -1
- package/dist/assets/coerce-CpE6kUdX.js +0 -1
- package/dist/assets/command-palette-CSd1kEo3.js +0 -1
- package/dist/assets/config-DX8Y2WbJ.js +0 -1
- package/dist/assets/config-VPSq73n8.js +0 -1
- package/dist/assets/feedback-button-DlqZkJwz.js +0 -1
- package/dist/assets/file-explorer-panel-s9KTVUsc.js +0 -1
- package/dist/assets/index-6b4mf8Ai.css +0 -2
- package/dist/assets/index-T8B8EIDN.js +0 -30
- package/dist/assets/layout-SMSvAj_V.js +0 -9
- package/dist/assets/linear-0eij_aAG.js +0 -1
- package/dist/assets/links-DkkL9DVa.js +0 -1
- package/dist/assets/numbers-Mk3-CcoU.js +0 -1
- package/dist/assets/packages-panel-ClxOAEGy.js +0 -1
- package/dist/assets/panels-B0xPudVP.js +0 -4
- package/dist/assets/precisionRound-Bq_nmf5u.js +0 -1
- package/dist/assets/process-output-DNFKMODr.js +0 -1
- package/dist/assets/react-vega-C3rYGtP6.js +0 -189
- package/dist/assets/run-page-C9D267vr.js +0 -1
- package/dist/assets/tooltip-mT3CGest.js +0 -61
- package/dist/assets/tracing-BARlJ_Dk.js +0 -1
- package/dist/assets/useAsyncData-C7aJJz0Y.js +0 -1
- package/dist/assets/useBoolean-BDD6_xQQ.js +0 -1
- package/dist/assets/useDebounce-B_ccBZTp.js +0 -1
- package/dist/assets/vega-component-CnadTgoE.js +0 -1
- package/dist/assets/vega-loader.browser-CLRkNgm7.js +0 -6
- package/src/core/host/__tests__/protocol.test.ts +0 -214
- package/src/core/host/protocol.ts +0 -1943
- package/src/core/websocket/useWebSocket.tsx +0 -88
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dfcbgjhg.js";import{t as i}from"./react-DVplv7_D.js";import{D as a,La as o,g as s,oo as c,x as l}from"./cells-rA_jsZCj.js";import{t as u}from"./compiler-runtime-BrajqUja.js";import{C as d}from"./config-VPSq73n8.js";import{r as f}from"./utils-B4K466FK.js";import{t as p}from"./session-DqoWmb7X.js";import{_ as m,l as h,p as g,w as _}from"./config-DX8Y2WbJ.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{a as b,c as x,i as S,l as C,n as w,s as T,t as E}from"./alert-dialog-BaPGzeOK.js";import{I as D,It as ee}from"./JsonOutput-CYB1yEoe.js";import{n as te}from"./download-Bx55LMki.js";import{i as O,n as k,r as ne,t as re}from"./tabs-BuQlZFbt.js";import{n as A,t as j}from"./button-COI-NGrx.js";import{n as ie}from"./paths-bkIFVj8h.js";import{t as M}from"./arrow-left-BaPN-xbg.js";import{t as N}from"./copy-Djr5m5ac.js";import{a as P,i as F,n as I,o as L,r as R,t as ae}from"./panels-B0xPudVP.js";import{t as oe}from"./house-CpsMWsLL.js";import{t as z}from"./spinner-DyNE-o8o.js";import{l as B,s as V}from"./readonly-python-code-CadgXgRu.js";import{Jt as H,Qt as U,Xt as W,Yt as G,nn as K,tn as q}from"./input-BoBxR50a.js";import{n as J}from"./copy-D8O_CYCG.js";import{t as Y}from"./use-toast-Wu434mLr.js";import{r as se}from"./requests-lt0JK8Jt.js";import{t as ce}from"./shell-Fj8a65ii.js";import{t as le}from"./share-BZW3tzEX.js";import{a as ue}from"./cell-link-1CynTVGQ.js";import{n as de,t as fe}from"./react-resizable-panels.browser.esm-Dbe0MrFr.js";import{n as pe}from"./code-visibility-B-_GvwR5.js";import{n as me,t as he}from"./marimo-icons-CqliHyTr.js";import{t as ge}from"./state-DxQnC_1I.js";var _e=e(i(),1),X=u(),Z=y(),ve=()=>{let e=(0,X.c)(25),[n,r]=t(ge);if(n===null)return null;let i;e[0]===n?i=e[1]:(i=async()=>{try{await navigator.clipboard.writeText(n),Y({title:`Copied to clipboard`,description:`Error details have been copied to your clipboard.`})}catch{Y({title:`Failed to copy`,description:`Could not copy to clipboard.`,variant:`danger`})}},e[0]=n,e[1]=i);let a=i,o;e[2]===r?o=e[3]:(o=()=>{r(null)},e[2]=r,e[3]=o);let s=o,l=ye,u;e[4]===s?u=e[5]:(u=e=>!e&&s(),e[4]=s,e[5]=u);let d;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsxs)(x,{children:[(0,Z.jsxs)(C,{className:`flex items-center gap-2 text-destructive`,children:[(0,Z.jsx)(c,{className:`h-5 w-5`}),`Kernel Startup Failed`]}),(0,Z.jsx)(b,{children:`The kernel failed to start. This usually happens when the package manager can't install your notebook's dependencies.`})]}),e[6]=d):d=e[6];let f;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(`span`,{className:`text-sm font-medium text-muted-foreground`,children:`Error Details`}),e[7]=f):f=e[7];let p;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(N,{className:`h-3 w-3`}),e[8]=p):p=e[8];let m;e[9]===a?m=e[10]:(m=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[f,(0,Z.jsxs)(j,{variant:`outline`,size:`xs`,onClick:a,className:`flex items-center gap-1`,children:[p,`Copy`]})]}),e[9]=a,e[10]=m);let h;e[11]===n?h=e[12]:(h=(0,Z.jsx)(`pre`,{className:`bg-muted p-4 rounded-md text-sm font-mono overflow-auto max-h-80`,children:n}),e[11]=n,e[12]=h);let g;e[13]!==m||e[14]!==h?(g=(0,Z.jsxs)(`div`,{className:`my-4 overflow-hidden`,children:[m,h]}),e[13]=m,e[14]=h,e[15]=g):g=e[15];let _;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsxs)(j,{variant:`outline`,onClick:l,className:`flex items-center gap-2`,children:[(0,Z.jsx)(oe,{className:`h-4 w-4`}),`Return to Home`]}),e[16]=_):_=e[16];let v;e[17]===s?v=e[18]:(v=(0,Z.jsxs)(T,{children:[_,(0,Z.jsx)(w,{onClick:s,children:`Dismiss`})]}),e[17]=s,e[18]=v);let y;e[19]!==v||e[20]!==g?(y=(0,Z.jsxs)(S,{className:`max-w-2xl`,children:[d,g,v]}),e[19]=v,e[20]=g,e[21]=y):y=e[21];let D;return e[22]!==y||e[23]!==u?(D=(0,Z.jsx)(E,{open:!0,onOpenChange:u,children:y}),e[22]=y,e[23]=u,e[24]=D):D=e[24],D};function ye(){let e=document.baseURI.split(`?`)[0];window.open(e,`_self`)}var be=e=>{let t=(0,X.c)(2),{reason:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Z.jsx)(`div`,{className:`font-mono text-center text-base text-(--red-11)`,children:(0,Z.jsx)(`p`,{children:n})}),t[0]=n,t[1]=r),r},xe=e=>{let t=(0,X.c)(7),{connection:n,className:r,children:i}=e,a;t[0]!==n.reason||t[1]!==n.state?(a=n.state===_.CLOSED&&(0,Z.jsx)(be,{reason:n.reason}),t[0]=n.reason,t[1]=n.state,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==r||t[5]!==a?(o=(0,Z.jsxs)(`div`,{className:r,children:[i,a]}),t[3]=i,t[4]=r,t[5]=a,t[6]=o):o=t[6],o},Q=n(e=>e(s)||!g(e(m).state)),Se=e=>{let t=(0,X.c)(22),{appConfig:n,hideHeader:i}=e,{setCells:o}=a(),{sendComponentValues:s}=se(),c;t[0]===s?c=t[1]:(c=()=>(R.INSTANCE.start(s),Ce),t[0]=s,t[1]=c);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[2]=u):u=t[2],(0,_e.useEffect)(c,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=p(),t[3]=d):d=t[3];let f;t[4]===o?f=t[5]:(f={autoInstantiate:!0,setCells:o,sessionId:d},t[4]=o,t[5]=f);let{connection:m,reconnect:h}=I(f),g=r(l),_;if(t[6]===Symbol.for(`react.memo_cache_sentinel`)){bb0:{if(typeof window>`u`){_=null;break bb0}let e=new URL(window.location.href);if(!e.searchParams.has(`file`)){_=null;break bb0}e.searchParams.delete(`file`);let t=e.searchParams.toString();_=t?`${e.pathname}?${t}`:e.pathname}t[6]=_}else _=t[6];let y=_,b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(ve,{}),t[7]=b):b=t[7];let x=i?`hidden`:`sm:pt-8`,S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=y&&(0,Z.jsx)(`div`,{className:`flex items-center px-6 pt-4 sm:-mt-8`,children:(0,Z.jsxs)(`a`,{href:y,"aria-label":`Back to gallery`,className:v(A({variant:`text`,size:`sm`}),`gap-2 px-0 text-muted-foreground hover:text-foreground`),children:[(0,Z.jsx)(M,{className:`size-4`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:`Back`})]})}),t[8]=S):S=t[8];let C;t[9]!==m||t[10]!==x?(C=(0,Z.jsx)(xe,{connection:m,className:x,children:S}),t[9]=m,t[10]=x,t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(z,{className:`mx-auto`}),(0,Z.jsx)(`p`,{className:`text-center text-sm text-muted-foreground mt-2`,children:`Connecting...`})]}),t[12]=w):w=t[12];let T;t[13]===n?T=t[14]:(T=(0,Z.jsx)(L,{requires:Q,delay:2e3,fallback:w,children:(0,Z.jsx)(F,{appConfig:n,mode:`read`})}),t[13]=n,t[14]=T);let E;return t[15]!==n.width||t[16]!==m||t[17]!==g||t[18]!==h||t[19]!==T||t[20]!==C?(E=(0,Z.jsxs)(P,{connection:m,isRunning:g,width:n.width,onReconnect:h,children:[b,C,T]}),t[15]=n.width,t[16]=m,t[17]=g,t[18]=h,t[19]=T,t[20]=C,t[21]=E):E=t[21],E};function Ce(){R.INSTANCE.stop()}var we=()=>{let e=(0,X.c)(3),t=r(o);if(!h()||!t)return null;let n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Z.jsxs)(`span`,{children:[`Static`,` `,(0,Z.jsx)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-(--sky-11) font-medium underline`,children:`marimo`}),` `,`notebook - Run or edit for full interactivity`]}),e[0]=n):n=e[0];let i;return e[1]===t?i=e[2]:(i=(0,Z.jsxs)(`div`,{className:`px-4 py-2 bg-(--sky-2) border-b border-(--sky-7) text-(--sky-11) flex justify-between items-center gap-4 print:hidden text-sm`,"data-testid":`static-notebook-banner`,children:[n,(0,Z.jsx)(`span`,{className:`shrink-0`,children:(0,Z.jsx)(Te,{code:t})})]}),e[1]=t,e[2]=i),i},Te=e=>{let t=(0,X.c)(44),{code:n}=e,r=ie.basename(ue()||`notebook.py`),[i]=d(),a=i.sharing?.molab??!0,o=Ee(window.location.href,r),s=o!==r,c=ce(o),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(K,{asChild:!0,children:(0,Z.jsx)(j,{"data-testid":`static-notebook-dialog-trigger`,variant:`outline`,size:`xs`,children:`Run or Edit`})}),t[0]=l):l=t[0];let u;t[1]===r?u=t[2]:(u=(0,Z.jsx)(q,{children:r}),t[1]=r,t[2]=u);let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-(--sky-11) hover:underline font-medium`,children:`marimo`}),t[3]=p):p=t[3];let m=s?`Run it`:`Download it, then run it`,h;t[4]===m?h=t[5]:(h=(0,Z.jsxs)(`p`,{children:[`This is a static`,` `,p,` `,`notebook. `,m,` `,`locally for full interactivity.`]}),t[4]=m,t[5]=h);let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsxs)(ne,{"aria-label":`Package manager`,children:[(0,Z.jsx)(O,{value:`uv`,children:`uv`}),(0,Z.jsx)(O,{value:`pip`,children:`pip`}),(0,Z.jsx)(O,{value:`conda`,children:`conda`})]}),t[6]=g):g=t[6];let _=`uvx marimo edit --sandbox ${c}`,v;t[7]===_?v=t[8]:(v=(0,Z.jsx)(k,{value:`uv`,children:(0,Z.jsx)($,{command:_})}),t[7]=_,t[8]=v);let y=`pip install marimo\nmarimo edit ${c}`,b;t[9]===y?b=t[10]:(b=(0,Z.jsx)(k,{value:`pip`,children:(0,Z.jsx)($,{command:y})}),t[9]=y,t[10]=b);let x=`conda install -c conda-forge marimo\nmarimo edit ${c}`,S;t[11]===x?S=t[12]:(S=(0,Z.jsx)(k,{value:`conda`,children:(0,Z.jsx)($,{command:x})}),t[11]=x,t[12]=S);let C;t[13]!==b||t[14]!==S||t[15]!==v?(C=(0,Z.jsxs)(re,{defaultValue:`uv`,children:[g,v,b,S]}),t[13]=b,t[14]=S,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==a?(w=a&&(0,Z.jsx)(De,{code:n}),t[17]=n,t[18]=a,t[19]=w):w=t[19];let T;t[20]!==C||t[21]!==w||t[22]!==h?(T=(0,Z.jsx)(W,{asChild:!0,children:(0,Z.jsxs)(`div`,{className:`pt-3 text-left space-y-3`,children:[h,C,w]})}),t[20]=C,t[21]=w,t[22]=h,t[23]=T):T=t[23];let E;t[24]!==T||t[25]!==u?(E=(0,Z.jsxs)(U,{children:[u,T]}),t[24]=T,t[25]=u,t[26]=E):E=t[26];let D;t[27]===n?D=t[28]:(D=async()=>{await J(n),Y({title:`Copied to clipboard`})},t[27]=n,t[28]=D);let A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(N,{className:`w-3 h-3 mr-2`}),t[29]=A):A=t[29];let M;t[30]===D?M=t[31]:(M=(0,Z.jsxs)(j,{"data-testid":`copy-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:D,children:[A,`Copy code`]}),t[30]=D,t[31]=M);let P;t[32]!==n||t[33]!==r?(P=()=>{te(new Blob([n],{type:`text/plain`}),r)},t[32]=n,t[33]=r,t[34]=P):P=t[34];let F;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(ee,{className:`w-3 h-3 mr-2`}),t[35]=F):F=t[35];let I;t[36]===P?I=t[37]:(I=(0,Z.jsxs)(j,{"data-testid":`download-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:P,children:[F,`Download`]}),t[36]=P,t[37]=I);let L;t[38]!==M||t[39]!==I?(L=(0,Z.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[M,I]}),t[38]=M,t[39]=I,t[40]=L):L=t[40];let R;return t[41]!==E||t[42]!==L?(R=(0,Z.jsxs)(H,{children:[l,(0,Z.jsxs)(G,{children:[E,L]})]}),t[41]=E,t[42]=L,t[43]=R):R=t[43],R};function Ee(e,t){let n=new URL(e);if(n.protocol!==`http:`&&n.protocol!==`https:`)return t;let r=n.pathname.endsWith(`.html`)&&n.search===``,i=n.protocol===`https:`&&(n.hostname===`marimo.app`||n.hostname===`links.marimo.app`||n.hostname===`static.marimo.app`&&n.pathname.startsWith(`/static`)||n.pathname.includes(`/notebooks/nb`));return!r&&!i?t:(n.hash=``,n.href)}var $=e=>{let t=(0,X.c)(10),{command:n}=e,r;t[0]===n?r=t[1]:(r=(0,Z.jsx)(`pre`,{className:`p-3 pr-10 font-mono text-(--sky-11) leading-relaxed whitespace-pre-wrap break-all`,children:n}),t[0]=n,t[1]=r);let i;t[2]===n?i=t[3]:(i=async()=>{await J(n),Y({title:`Command copied to clipboard`})},t[2]=n,t[3]=i);let a;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(N,{className:`w-3.5 h-3.5`}),t[4]=a):a=t[4];let o;t[5]===i?o=t[6]:(o=(0,Z.jsx)(j,{"aria-label":`Copy command`,className:`absolute right-2 top-2`,variant:`ghost`,size:`icon`,onClick:i,children:a}),t[5]=i,t[6]=o);let s;return t[7]!==r||t[8]!==o?(s=(0,Z.jsxs)(`div`,{className:`relative rounded-lg border bg-(--sky-2) border-(--sky-7)`,children:[r,o]}),t[7]=r,t[8]=o,t[9]=s):s=t[9],s},De=e=>{let t=(0,X.c)(8),{code:n}=e,r;t[0]===n?r=t[1]:(r=le({code:n,baseUrl:`${f.molab}/new`}),t[0]=n,t[1]=r);let i=r,a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(me,{size:12,strokeWidth:1.5,className:`mr-1.5 mt-px text-(--grass-11)`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,Z.jsx)(j,{asChild:!0,variant:`outline`,size:`xs`,className:`shrink-0`,children:(0,Z.jsxs)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,children:[a,`Open in molab`]})}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsxs)(`p`,{className:`text-sm text-(--sky-12)`,children:[`Run this notebook in `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:`molab`}),`, marimo's cloud-hosted notebook platform.`]}),t[5]=s):s=t[5];let c;return t[6]===o?c=t[7]:(c=(0,Z.jsxs)(`div`,{className:`pt-3 border-t flex gap-2 items-center`,children:[o,s]}),t[6]=o,t[7]=c),c},Oe=e=>{let t=(0,X.c)(17),n=r(pe).kind,i=n===`static`||n===`wasm`,{selectedLayout:a}=B(),o;t[0]===a?o=t[1]:(o=V({selectedLayout:a,isReading:!0,searchParams:new URLSearchParams(window.location.search)}),t[0]=a,t[1]=o);let s=i&&o===`slides`,c;t[2]===s?c=t[3]:(c=!s&&(0,Z.jsx)(we,{}),t[2]=s,t[3]=c);let l;t[4]!==s||t[5]!==e.appConfig?(l=(0,Z.jsx)(Se,{appConfig:e.appConfig,hideHeader:s}),t[4]=s,t[5]=e.appConfig,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==s?(u=i&&!s&&(0,Z.jsx)(ke,{}),t[7]=i,t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==l||t[12]!==u?(d=(0,Z.jsxs)(fe,{children:[c,l,u]}),t[10]=c,t[11]=l,t[12]=u,t[13]=d):d=t[13];let f;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(D,{}),t[14]=f):f=t[14];let p;return t[15]===d?p=t[16]:(p=(0,Z.jsx)(ae,{children:(0,Z.jsxs)(de,{direction:`horizontal`,autoSaveId:`marimo:chrome:v1:run1`,children:[d,f]})}),t[15]=d,t[16]=p),p},ke=()=>{let e=(0,X.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(`div`,{className:`fixed bottom-0 right-0 z-50 print:hidden`,"data-testid":`watermark`,children:(0,Z.jsxs)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-sm text-(--grass-11) font-bold tracking-wide transition-colors bg-(--grass-4) hover:bg-(--grass-5) border-t border-l border-(--grass-8) px-3 py-1 rounded-tl-md flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{children:`made with marimo`}),(0,Z.jsx)(he,{className:`h-4 w-auto`})]})}),e[0]=t):t=e[0],t};export{Oe as default};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./useEventListener-D9cftcHj.js";import{t}from"./objects-snlMn4yk.js";import{a as n,c as r,et as i,o as a,tt as o,z as s}from"./vega-loader.browser-CLRkNgm7.js";var c=Uint8Array.of(65,82,82,79,87,49),l={V1:0,V2:1,V3:2,V4:3,V5:4},u={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},d={Dictionary:-1,NONE:0,Null:1,Int:2,Float:3,Binary:4,Utf8:5,Bool:6,Decimal:7,Date:8,Time:9,Timestamp:10,Interval:11,List:12,Struct:13,Union:14,FixedSizeBinary:15,FixedSizeList:16,Map:17,Duration:18,LargeBinary:19,LargeUtf8:20,LargeList:21,RunEndEncoded:22,BinaryView:23,Utf8View:24,ListView:25,LargeListView:26},f={HALF:0,SINGLE:1,DOUBLE:2},p={DAY:0,MILLISECOND:1},m={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},h={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},g={Sparse:0,Dense:1},ee=Uint8Array,te=Uint16Array,ne=Uint32Array,re=BigUint64Array,ie=Int8Array,ae=Int16Array,_=Int32Array,v=BigInt64Array,oe=Float32Array,y=Float64Array;function se(e,t){let n=Math.log2(e)-3;return(t?[ie,ae,_,v]:[ee,te,ne,re])[n]}Object.getPrototypeOf(Int8Array);function b(e,t){let n=0,r=e.length;if(r<=2147483648)do{let i=n+r>>>1;e[i]<=t?n=i+1:r=i}while(n<r);else do{let i=Math.trunc((n+r)/2);e[i]<=t?n=i+1:r=i}while(n<r);return n}function x(e,t,n){if(t(e))return e;throw Error(n(e))}function S(e,t,n){return t=Array.isArray(t)?t:Object.values(t),x(e,e=>t.includes(e),n??(()=>`${e} must be one of ${t}`))}function ce(e,t){for(let[n,r]of Object.entries(e))if(r===t)return n;return`<Unknown>`}var C=e=>`Unsupported data type: "${ce(d,e)}" (id ${e})`,le=(e,t,n=!0,r=null)=>({name:e,type:t,nullable:n,metadata:r});function ue(e){return Object.hasOwn(e,`name`)&&de(e.type)}function de(e){return typeof e?.typeId==`number`}function w(e,t=``,n=!0){return ue(e)?e:le(t,x(e,de,()=>`Data type expected.`),n)}var fe=(e,t,n=!1,r=-1)=>({typeId:d.Dictionary,id:r,dictionary:e,indices:t||me(),ordered:n}),pe=(e=32,t=!0)=>({typeId:d.Int,bitWidth:S(e,[8,16,32,64]),signed:t,values:se(e,t)}),me=()=>pe(32),he=(e=2)=>({typeId:d.Float,precision:S(e,f),values:[te,oe,y][e]}),ge=()=>({typeId:d.Binary,offsets:_}),_e=()=>({typeId:d.Utf8,offsets:_}),ve=(e,t,n=128)=>({typeId:d.Decimal,precision:e,scale:t,bitWidth:S(n,[128,256]),values:re}),ye=e=>({typeId:d.Date,unit:S(e,p),values:e===p.DAY?_:v}),be=(e=m.MILLISECOND,t=32)=>({typeId:d.Time,unit:S(e,m),bitWidth:S(t,[32,64]),values:t===32?_:v}),xe=(e=m.MILLISECOND,t=null)=>({typeId:d.Timestamp,unit:S(e,m),timezone:t,values:v}),Se=(e=h.MONTH_DAY_NANO)=>({typeId:d.Interval,unit:S(e,h),values:e===h.MONTH_DAY_NANO?void 0:_}),Ce=e=>({typeId:d.List,children:[w(e)],offsets:_}),we=e=>({typeId:d.Struct,children:Array.isArray(e)&&ue(e[0])?e:Object.entries(e).map(([e,t])=>le(e,t))}),Te=(e,t,n,r)=>(n??=t.map((e,t)=>t),{typeId:d.Union,mode:S(e,g),typeIds:n,typeMap:n.reduce((e,t,n)=>(e[t]=n,e),{}),children:t.map((e,t)=>w(e,`_${t}`)),typeIdForValue:r,offsets:_}),Ee=e=>({typeId:d.FixedSizeBinary,stride:e}),De=(e,t)=>({typeId:d.FixedSizeList,stride:t,children:[w(e)]}),Oe=(e,t)=>({typeId:d.Map,keysSorted:e,children:[t],offsets:_}),ke=(e=m.MILLISECOND)=>({typeId:d.Duration,unit:S(e,m),values:v}),Ae=()=>({typeId:d.LargeBinary,offsets:v}),je=()=>({typeId:d.LargeUtf8,offsets:v}),Me=e=>({typeId:d.LargeList,children:[w(e)],offsets:v}),Ne=(e,t)=>({typeId:d.RunEndEncoded,children:[x(w(e,`run_ends`),e=>e.type.typeId===d.Int,()=>`Run-ends must have an integer type.`),w(t,`values`)]}),Pe=e=>({typeId:d.ListView,children:[w(e,`value`)],offsets:_}),Fe=e=>({typeId:d.LargeListView,children:[w(e,`value`)],offsets:v}),T=new y(2).buffer;new v(T),new ne(T),new _(T),new ee(T);function E(e){if(e>2**53-1||e<-(2**53-1))throw Error(`BigInt exceeds integer number representation: ${e}`);return Number(e)}function D(e,t){return Number(e/t)+Number(e%t)/Number(t)}var O=e=>BigInt.asUintN(64,e);function Ie(e,t){let n=t<<1,r;return BigInt.asIntN(64,e[n+1])<0?(r=O(~e[n])|O(~e[n+1])<<64n,r=-(r+1n)):r=e[n]|e[n+1]<<64n,r}function Le(e,t){let n=t<<2,r;return BigInt.asIntN(64,e[n+3])<0?(r=O(~e[n])|O(~e[n+1])<<64n|O(~e[n+2])<<128n|O(~e[n+3])<<192n,r=-(r+1n)):r=e[n]|e[n+1]<<64n|e[n+2]<<128n|e[n+3]<<192n,r}var Re=new TextDecoder(`utf-8`);new TextEncoder;function k(e){return Re.decode(e)}function ze(e,t){return!!(e[t>>3]&1<<t%8)}function A(e,t){let n=t+F(e,t),r=n-F(e,n),i=P(e,r);return(t,a,o=null)=>{if(t<i){let i=P(e,r+t);if(i)return a(e,n+i)}return o}}function j(e,t){return t}function M(e,t){return!!Be(e,t)}function Be(e,t){return N(e,t)<<24>>24}function N(e,t){return e[t]}function P(e,t){return Ve(e,t)<<16>>16}function Ve(e,t){return e[t]|e[t+1]<<8}function F(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function He(e,t){return F(e,t)>>>0}function I(e,t){return E(BigInt.asIntN(64,BigInt(He(e,t))+(BigInt(He(e,t+4))<<32n)))}function L(e,t){let n=t+F(e,t),r=F(e,n);return n+=4,k(e.subarray(n,n+r))}function R(e,t,n,r){if(!t)return[];let i=t+F(e,t);return Array.from({length:F(e,i)},(t,a)=>r(e,i+4+a*n))}var z=Symbol(`rowIndex`);function B(e,t){class n{constructor(e){this[z]=e}toJSON(){return We(e,t,this[z])}}let r=n.prototype;for(let n=0;n<e.length;++n){if(Object.hasOwn(r,e[n]))continue;let i=t[n];Object.defineProperty(r,e[n],{get(){return i.at(this[z])},enumerable:!0})}return e=>new n(e)}function Ue(e,t){return n=>We(e,t,n)}function We(e,t,n){let r={};for(let i=0;i<e.length;++i)r[e[i]]=t[i].at(n);return r}function Ge(e){return e instanceof H}var V=class{static ArrayType=null;constructor({length:e,nullCount:t,type:n,validity:r,values:i,offsets:a,sizes:o,children:s}){this.length=e,this.nullCount=t,this.type=n,this.validity=r,this.values=i,this.offsets=a,this.sizes=o,this.children=s,(!t||!this.validity)&&(this.at=e=>this.value(e))}get[Symbol.toStringTag](){return`Batch`}at(e){return this.isValid(e)?this.value(e):null}isValid(e){return ze(this.validity,e)}value(e){return this.values[e]}slice(e,t){let n=t-e,r=Array(n);for(let t=0;t<n;++t)r[t]=this.at(e+t);return r}*[Symbol.iterator](){for(let e=0;e<this.length;++e)yield this.at(e)}},H=class extends V{constructor(e){super(e);let{length:t,values:n}=this;this.values=n.subarray(0,t)}slice(e,t){return this.nullCount?super.slice(e,t):this.values.subarray(e,t)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},U=class extends V{static ArrayType=y},W=class extends V{static ArrayType=Array},Ke=class extends W{value(e){return null}},G=class extends U{value(e){return E(this.values[e])}},qe=class extends U{value(e){let t=this.values[e],n=(t&31744)>>10,r=(t&1023)/1024,i=(-1)**((t&32768)>>15);switch(n){case 31:return i*(r?NaN:1/0);case 0:return i*(r?6103515625e-14*r:0)}return i*2**(n-15)*(1+r)}},Je=class extends W{value(e){return ze(this.values,e)}},Ye=class extends V{constructor(e){super(e);let{bitWidth:t,scale:n}=this.type;this.decimal=t===128?Ie:Le,this.scale=10n**BigInt(n)}},Xe=class extends Ye{static ArrayType=y;value(e){return D(this.decimal(this.values,e),this.scale)}},Ze=class extends Ye{static ArrayType=Array;value(e){return this.decimal(this.values,e)}},Qe=class extends W{constructor(e){super(e),this.source=e}value(e){return new Date(this.source.value(e))}},$e=class extends U{value(e){return 864e5*this.values[e]}},et=G,tt=class extends G{value(e){return super.value(e)*1e3}},nt=G,rt=class extends G{value(e){return D(this.values[e],1000n)}},it=class extends G{value(e){return D(this.values[e],1000000n)}},at=class extends W{value(e){return this.values.subarray(e<<1,e+1<<1)}},ot=class extends W{value(e){let t=this.values,n=e<<4;return Float64Array.of(F(t,n),F(t,n+4),I(t,n+8))}},st=({values:e,offsets:t},n)=>e.subarray(t[n],t[n+1]),ct=({values:e,offsets:t},n)=>e.subarray(E(t[n]),E(t[n+1])),lt=class extends W{value(e){return st(this,e)}},ut=class extends W{value(e){return ct(this,e)}},dt=class extends W{value(e){return k(st(this,e))}},ft=class extends W{value(e){return k(ct(this,e))}},pt=class extends W{value(e){let t=this.offsets;return this.children[0].slice(t[e],t[e+1])}},mt=class extends W{value(e){let t=this.offsets;return this.children[0].slice(E(t[e]),E(t[e+1]))}},ht=class extends W{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(t,n)}},gt=class extends W{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(E(t),E(n))}},_t=class extends W{constructor(e){super(e),this.stride=this.type.stride}},vt=class extends _t{value(e){let{stride:t,values:n}=this;return n.subarray(e*t,(e+1)*t)}},yt=class extends _t{value(e){let{children:t,stride:n}=this;return t[0].slice(e*n,(e+1)*n)}};function bt({children:e,offsets:t},n){let[r,i]=e[0].children,a=t[n],o=t[n+1],s=[];for(let e=a;e<o;++e)s.push([r.at(e),i.at(e)]);return s}var xt=class extends W{value(e){return bt(this,e)}},St=class extends W{value(e){return new Map(bt(this,e))}},Ct=class extends W{constructor({typeIds:e,...t}){super(t),this.typeIds=e,this.typeMap=this.type.typeMap}value(e,t=e){let{typeIds:n,children:r,typeMap:i}=this;return r[i[n[e]]].at(t)}},wt=class extends Ct{value(e){return super.value(e,this.offsets[e])}},Tt=class extends W{constructor(e,t=Ue){super(e),this.names=this.type.children.map(e=>e.name),this.factory=t(this.names,this.children)}value(e){return this.factory(e)}},Et=class extends Tt{constructor(e){super(e,B)}},Dt=class extends W{value(e){let[{values:t},n]=this.children;return n.at(b(t,e))}},Ot=class extends W{setDictionary(e){return this.dictionary=e,this.cache=e.cache(),this}value(e){return this.cache[this.key(e)]}key(e){return this.values[e]}},kt=class extends W{constructor({data:e,...t}){super(t),this.data=e}view(e){let{values:t,data:n}=this,r=e<<4,i=r+4,a=t,o=F(a,r);return o>12&&(i=F(a,r+12),a=n[F(a,r+8)]),a.subarray(i,i+o)}},At=class extends kt{value(e){return this.view(e)}},jt=class extends kt{value(e){return k(this.view(e))}};function Mt(e){let t=[];return{add(e){return t.push(e),this},clear:()=>t=[],done:()=>new Nt(t,e)}}var Nt=class{constructor(e,t=e[0]?.type){this.type=t,this.length=e.reduce((e,t)=>e+t.length,0),this.nullCount=e.reduce((e,t)=>e+t.nullCount,0),this.data=e;let n=e.length,r=new Int32Array(n+1);if(n===1){let[t]=e;r[1]=t.length,this.at=e=>t.at(e)}else for(let t=0,i=0;t<n;++t)r[t+1]=i+=e[t].length;this.offsets=r}get[Symbol.toStringTag](){return`Column`}[Symbol.iterator](){let e=this.data;return e.length===1?e[0][Symbol.iterator]():Pt(e)}at(e){let{data:t,offsets:n}=this,r=b(n,e)-1;return t[r]?.at(e-n[r])}get(e){return this.at(e)}toArray(){let{length:e,nullCount:t,data:n}=this,r=!t&&Ge(n[0]),i=n.length;if(r&&i===1)return n[0].values;let a=new(!i||t>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(e);return r?Ft(a,n):It(a,n)}cache(){return this._cache??=this.toArray()}};function*Pt(e){for(let t=0;t<e.length;++t){let n=e[t][Symbol.iterator]();for(let e=n.next();!e.done;e=n.next())yield e.value}}function Ft(e,t){for(let n=0,r=0;n<t.length;++n){let{values:i}=t[n];e.set(i,r),r+=i.length}return e}function It(e,t){let n=-1;for(let r=0;r<t.length;++r){let i=t[r];for(let t=0;t<i.length;++t)e[++n]=i.at(t)}return e}var Lt=class e{constructor(e,t,n=!1){let r=e.fields.map(e=>e.name);this.schema=e,this.names=r,this.children=t,this.factory=n?B:Ue;let i=[];this.getFactory=e=>i[e]??(i[e]=this.factory(r,t.map(t=>t.data[e])))}get[Symbol.toStringTag](){return`Table`}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(e){return this.children[e]}getChild(e){let t=this.names.findIndex(t=>t===e);return t>-1?this.children[t]:void 0}selectAt(t,n=[]){let{children:r,factory:i,schema:a}=this,{fields:o}=a;return new e({...a,fields:t.map((e,t)=>Rt(o[e],n[t]))},t.map(e=>r[e]),i===B)}select(e,t){let n=this.names,r=e.map(e=>n.indexOf(e));return this.selectAt(r,t)}toColumns(){let{children:e,names:t}=this,n={};return t.forEach((t,r)=>n[t]=e[r]?.toArray()??[]),n}toArray(){let{children:e,getFactory:t,numRows:n}=this,r=e[0]?.data??[],i=Array(n);for(let e=0,n=-1;e<r.length;++e){let a=t(e);for(let t=0;t<r[e].length;++t)i[++n]=a(t)}return i}*[Symbol.iterator](){let{children:e,getFactory:t}=this,n=e[0]?.data??[];for(let e=0;e<n.length;++e){let r=t(e);for(let t=0;t<n[e].length;++t)yield r(t)}}at(e){let{children:t,getFactory:n,numRows:r}=this;if(e<0||e>=r)return null;let[{offsets:i}]=t,a=b(i,e)-1;return n(a)(e-i[a])}get(e){return this.at(e)}};function Rt(e,t){return t!=null&&t!==e.name?{...e,name:t}:e}function zt(e,t={}){let{typeId:n,bitWidth:r,precision:i,unit:a}=e,{useBigInt:o,useDate:s,useDecimalBigInt:c,useMap:l,useProxy:u}=t;switch(n){case d.Null:return Ke;case d.Bool:return Je;case d.Int:case d.Time:case d.Duration:return o||r<64?H:G;case d.Float:return i?H:qe;case d.Date:return Bt(a===p.DAY?$e:et,s&&Qe);case d.Timestamp:return Bt(a===m.SECOND?tt:a===m.MILLISECOND?nt:a===m.MICROSECOND?rt:it,s&&Qe);case d.Decimal:return c?Ze:Xe;case d.Interval:return a===h.DAY_TIME?at:a===h.YEAR_MONTH?H:ot;case d.FixedSizeBinary:return vt;case d.Utf8:return dt;case d.LargeUtf8:return ft;case d.Binary:return lt;case d.LargeBinary:return ut;case d.BinaryView:return At;case d.Utf8View:return jt;case d.List:return pt;case d.LargeList:return mt;case d.Map:return l?St:xt;case d.ListView:return ht;case d.LargeListView:return gt;case d.FixedSizeList:return yt;case d.Struct:return u?Et:Tt;case d.RunEndEncoded:return Dt;case d.Dictionary:return Ot;case d.Union:return e.mode?wt:Ct}throw Error(C(n))}function Bt(e,t){return t?class extends t{constructor(t){super(new e(t))}}:e}function Vt(e,t){return{offset:I(e,t),metadataLength:F(e,t+8),bodyLength:I(e,t+16)}}function Ht(e,t){return R(e,t,24,Vt)}function Ut(e,t,n){let r=A(e,t);if(r(10,j,0))throw Error(`Record batch compression not implemented`);let i=n<l.V4?8:0;return{length:r(4,I,0),nodes:R(e,r(6,j),16,(e,t)=>({length:I(e,t),nullCount:I(e,t+8)})),regions:R(e,r(8,j),16+i,(e,t)=>({offset:I(e,t+i),length:I(e,t+i+8)})),variadic:R(e,r(12,j),8,I)}}function Wt(e,t,n){let r=A(e,t);return{id:r(4,I,0),data:r(6,(e,t)=>Ut(e,t,n)),isDelta:r(8,M,!1)}}function Gt(e,t,n,r){S(n,d,C);let i=A(e,t);switch(n){case d.Binary:return ge();case d.Utf8:return _e();case d.LargeBinary:return Ae();case d.LargeUtf8:return je();case d.List:return Ce(r[0]);case d.ListView:return Pe(r[0]);case d.LargeList:return Me(r[0]);case d.LargeListView:return Fe(r[0]);case d.Struct:return we(r);case d.RunEndEncoded:return Ne(r[0],r[1]);case d.Int:return pe(i(4,F,0),i(6,M,!1));case d.Float:return he(i(4,P,f.HALF));case d.Decimal:return ve(i(4,F,0),i(6,F,0),i(8,F,128));case d.Date:return ye(i(4,P,p.MILLISECOND));case d.Time:return be(i(4,P,m.MILLISECOND),i(6,F,32));case d.Timestamp:return xe(i(4,P,m.SECOND),i(6,L));case d.Interval:return Se(i(4,P,h.YEAR_MONTH));case d.Duration:return ke(i(4,P,m.MILLISECOND));case d.FixedSizeBinary:return Ee(i(4,F,0));case d.FixedSizeList:return De(r[0],i(4,F,0));case d.Map:return Oe(i(4,M,!1),r[0]);case d.Union:return Te(i(4,P,g.Sparse),r,R(e,i(6,j),4,F))}return{typeId:n}}function K(e,t){let n=R(e,t,4,(e,t)=>{let n=A(e,t);return[n(4,L),n(6,L)]});return n.length?new Map(n):null}function Kt(e,t,n){let r=A(e,t);return{version:n,endianness:r(4,P,0),fields:r(6,qt,[]),metadata:r(8,K)}}function qt(e,t){return R(e,t,4,Jt)}function Jt(e,t){let n=A(e,t),r=n(8,N,d.NONE),i=n(10,j,0),a=n(12,Xt),o=Gt(e,i,r,n(14,(e,t)=>Yt(e,t)));return a&&(a.dictionary=o,o=a),{name:n(4,L),type:o,nullable:n(6,M,!1),metadata:n(16,K)}}function Yt(e,t){let n=R(e,t,4,Jt);return n.length?n:null}function Xt(e,t){if(!t)return null;let n=A(e,t);return fe(null,n(6,Zt,me()),n(8,M,!1),n(4,I,0))}function Zt(e,t){return Gt(e,t,d.Int)}var Qt=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,$t=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`,en=e=>`Unsupported message type: ${e} (${ce(u,e)})`;function q(e,t){let n=F(e,t)||0;if(t+=4,n===-1&&(n=F(e,t)||0,t+=4),n===0)return null;let r=e.subarray(t,t+=n);if(r.byteLength<n)throw Error(Qt(n,r.byteLength));let i=A(r,0),a=i(4,P,l.V1),o=i(6,N,u.NONE),s=i(8,j,0),c=i(10,I,0),d;if(s){let n=o===u.Schema?Kt:o===u.DictionaryBatch?Wt:o===u.RecordBatch?Ut:null;if(!n)throw Error(en(o));if(d=n(r,s,a),c>0){let n=e.subarray(t,t+=c);if(n.byteLength<c)throw Error($t(c,n.byteLength));d.body=n}}return{version:a,type:o,index:t,content:d}}function tn(e){let t=e instanceof ArrayBuffer?new Uint8Array(e):e;return t instanceof Uint8Array&&nn(t)?an(t):rn(t)}function nn(e){if(!e||e.length<4)return!1;for(let t=0;t<6;++t)if(c[t]!==e[t])return!1;return!0}function rn(e){let t=[e].flat(),n,r=[],i=[];for(let e of t){if(!(e instanceof Uint8Array))throw Error(`IPC data batch was not a Uint8Array.`);let t=0;for(;;){let a=q(e,t);if(a===null)break;if(t=a.index,a.content)switch(a.type){case u.Schema:n||=a.content;break;case u.RecordBatch:r.push(a.content);break;case u.DictionaryBatch:i.push(a.content)}}}return{schema:n,dictionaries:i,records:r,metadata:null}}function an(e){let t=e.byteLength-(c.length+4),n=A(e,t-F(e,t)),r=n(4,P,l.V1),i=n(8,Ht,[]),a=n(10,Ht,[]);return{schema:n(6,(e,t)=>Kt(e,t,r)),dictionaries:i.map(({offset:t})=>q(e,t).content),records:a.map(({offset:t})=>q(e,t).content),metadata:n(12,K)}}function J(e,t){return on(tn(e),t)}function on(e,t={}){let{schema:n={fields:[]},dictionaries:r,records:i}=e,{version:a,fields:o}=n,s=new Map,c=cn(t,a,s),l=new Map;sn(n,e=>{let t=e.type;t.typeId===d.Dictionary&&l.set(t.id,t.dictionary)});let u=new Map;for(let e of r){let{id:t,data:n,isDelta:r,body:i}=e,a=l.get(t),o=Y(a,c({...n,body:i}));if(u.has(t)){let e=u.get(t);r||e.clear(),e.add(o)}else{if(r)throw Error(`Delta update can not be first dictionary batch.`);u.set(t,Mt(a).add(o))}}u.forEach((e,t)=>s.set(t,e.done()));let f=o.map(e=>Mt(e.type));for(let e of i){let t=c(e);o.forEach((e,n)=>f[n].add(Y(e.type,t)))}return new Lt(n,f.map(e=>e.done()),t.useProxy)}function sn(e,t){e.fields.forEach(function e(n){t(n),n.type.dictionary?.children?.forEach(e),n.type.children?.forEach(e)})}function cn(e,t,n){let r={version:t,options:e,dictionary:e=>n.get(e)};return e=>{let{length:t,nodes:n,regions:i,variadic:a,body:o}=e,s=-1,c=-1,l=-1;return{...r,length:t,node:()=>n[++s],buffer:e=>{let{length:t,offset:n}=i[++c];return e?new e(o.buffer,o.byteOffset+n,t/e.BYTES_PER_ELEMENT):o.subarray(n,n+t)},variadic:()=>a[++l],visit(e){return e.map(e=>Y(e.type,this))}}}}function Y(e,t){let{typeId:n}=e,{length:r,options:i,node:a,buffer:o,variadic:s,version:c}=t,u=zt(e,i);if(n===d.Null)return new u({length:r,nullCount:r,type:e});let f={...a(),type:e};switch(n){case d.Bool:case d.Int:case d.Time:case d.Duration:case d.Float:case d.Decimal:case d.Date:case d.Timestamp:case d.Interval:case d.FixedSizeBinary:return new u({...f,validity:o(),values:o(e.values)});case d.Utf8:case d.LargeUtf8:case d.Binary:case d.LargeBinary:return new u({...f,validity:o(),offsets:o(e.offsets),values:o()});case d.BinaryView:case d.Utf8View:return new u({...f,validity:o(),values:o(),data:Array.from({length:s()},()=>o())});case d.List:case d.LargeList:case d.Map:return new u({...f,validity:o(),offsets:o(e.offsets),children:t.visit(e.children)});case d.ListView:case d.LargeListView:return new u({...f,validity:o(),offsets:o(e.offsets),sizes:o(e.offsets),children:t.visit(e.children)});case d.FixedSizeList:case d.Struct:return new u({...f,validity:o(),children:t.visit(e.children)});case d.RunEndEncoded:return new u({...f,children:t.visit(e.children)});case d.Dictionary:{let{id:n,indices:r}=e;return new u({...f,validity:o(),values:o(r.values)}).setDictionary(t.dictionary(n))}case d.Union:return c<l.V5&&o(),new u({...f,typeIds:o(ie),offsets:e.mode===g.Sparse?null:o(e.offsets),children:t.visit(e.children)});default:throw Error(C(n))}}new Uint16Array(new Uint8Array([1,0]).buffer)[0];function X(e,t){let n=new Map;return(...r)=>{let i=t(...r);if(n.has(i))return n.get(i);let a=e(...r).finally(()=>{n.delete(i)});return n.set(i,a),a}}function Z(e,t){return a(e,t)}function ln(){return n()}var Q=r;function un(){let e=dn(ln()),t=e=>JSON.stringify(e);return{load:X(e.load.bind(e),t),sanitize:X(e.sanitize.bind(e),t),http:X(e.http.bind(e),t),file:X(e.file.bind(e),t)}}function dn(e){return{...e,async load(t,n){return t.endsWith(`.arrow`)?J(await fn(t),{useProxy:!1}).toArray():e.load(t,n)}}}var fn=X(e=>fetch(e).then(e=>e.arrayBuffer()),e=>e),pn=Q.integer,$=Q.number,mn=Q.date,hn=Q.boolean,gn=()=>{let e=e=>e===`inf`||e===`+inf`?1/0:e===`-inf`?-1/0:$(e);return Q.integer=e,Q.number=e,()=>{Q.integer=pn,Q.number=$}},_n=()=>(Q.integer=e=>{if(e===``)return``;if(e===`-inf`||e===`inf`)return e;function t(e){let t=pn(e);return Number.isNaN(t)?e:t}let n=Number.parseInt(e,10);if(Number.isNaN(n))return e;if(!(Math.abs(n)>2**53-1))return t(e);try{return BigInt(e)}catch{return t(e)}},Q.number=e=>{if(e===`-inf`||e===`inf`)return e;let t=$(e);return Number.isNaN(t)?e:t},()=>{Q.integer=pn,Q.number=$}),vn=()=>(Q.date=t=>{if(t===``)return``;if(t==null)return null;if(!/^\d{4}-\d{2}-\d{2}(T[\d.:]+(Z|[+-]\d{2}:?\d{2})?)?$/.test(t))return t;try{let e=new Date(t);return Number.isNaN(e.getTime())?t:e}catch{return e.warn(`Failed to parse date: ${t}`),t}},()=>{Q.date=mn});Q.boolean=e=>e===`True`||e!==`False`&&hn(e);var yn=un();async function bn(e,n,r={}){let{handleBigIntAndNumberLike:i=!1,replacePeriod:a=!1}=r;if(e.endsWith(`.arrow`)||n?.type===`arrow`)return J(await fn(e),{useProxy:!0,useDate:!0,useBigInt:i}).toArray();let o=[vn];i?o.push(_n):o.push(gn);let s=[];try{let r=await yn.load(e);if(!n){if(typeof r==`string`)try{JSON.parse(r),n={type:`json`}}catch{n={type:`csv`,parse:`auto`}}typeof r==`object`&&(n={type:`json`})}let i=n?.type===`csv`;i&&typeof r==`string`&&(r=Sn(r)),i&&typeof r==`string`&&a&&(r=Cn(r));let c=n?.parse||`auto`;return typeof c==`object`&&(c=t.mapValues(c,e=>e===`time`?`string`:e===`datetime`?`date`:e)),s=o.map(e=>e()),i?Z(r,{...n,parse:c}):Z(r,n)}finally{s.forEach(e=>e())}}function xn(e,t=!0){let n=[vn];t&&n.push(_n);let r=n.map(e=>e()),i=Z(e,{type:`csv`,parse:`auto`});return r.forEach(e=>e()),i}function Sn(e){return e?.includes(`,`)?wn(e,e=>{let t=new Set;return e.map(e=>{let n=En(e,t);return t.add(n),n})}):e}function Cn(e){return e?.includes(`.`)?wn(e,e=>e.map(e=>e.replaceAll(`.`,`․`))):e}function wn(e,t){let n=e.split(`
|
|
2
|
-
`);return n[0]=t(n[0].split(`,`)).join(`,`),n.join(`
|
|
3
|
-
`)}var Tn=``;function En(e,t){let n=e,r=1;for(;t.has(n);)n=`${e}${Tn.repeat(r)}`,r++;return n}var Dn={version:`1.1.0`};function On(e,t,n,r){if(o(e))return`[${e.map(e=>t(s(e)?e:An(e,n))).join(`, `)}]`;if(i(e)){let a=``,{title:o,image:s,...c}=e;o&&(a+=`<h2>${t(o)}</h2>`),s&&(a+=`<img src="${new URL(t(s),r||location.href).href}">`);let l=Object.keys(c);if(l.length>0){a+=`<table>`;for(let e of l){let r=c[e];r!==void 0&&(i(r)&&(r=An(r,n)),a+=`<tr><td class="key">${t(e)}</td><td class="value">${t(r)}</td></tr>`)}a+=`</table>`}return a||`{}`}return t(e)}function kn(e){let t=[];return function(n,r){if(typeof r!=`object`||!r)return r;let i=t.indexOf(this)+1;return t.length=i,t.length>e?`[Object]`:t.indexOf(r)>=0?`[Circular]`:(t.push(r),r)}}function An(e,t){return JSON.stringify(e,kn(t))}var jn=`#vg-tooltip-element {
|
|
4
|
-
visibility: hidden;
|
|
5
|
-
padding: 8px;
|
|
6
|
-
position: fixed;
|
|
7
|
-
z-index: 1000;
|
|
8
|
-
font-family: sans-serif;
|
|
9
|
-
font-size: 11px;
|
|
10
|
-
border-radius: 3px;
|
|
11
|
-
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
|
|
12
|
-
white-space: pre-line;
|
|
13
|
-
}
|
|
14
|
-
#vg-tooltip-element.visible {
|
|
15
|
-
visibility: visible;
|
|
16
|
-
}
|
|
17
|
-
#vg-tooltip-element h2 {
|
|
18
|
-
margin-top: 0;
|
|
19
|
-
margin-bottom: 10px;
|
|
20
|
-
font-size: 13px;
|
|
21
|
-
}
|
|
22
|
-
#vg-tooltip-element table {
|
|
23
|
-
border-spacing: 0;
|
|
24
|
-
}
|
|
25
|
-
#vg-tooltip-element table tr {
|
|
26
|
-
border: none;
|
|
27
|
-
}
|
|
28
|
-
#vg-tooltip-element table tr td {
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
text-overflow: ellipsis;
|
|
31
|
-
padding-top: 2px;
|
|
32
|
-
padding-bottom: 2px;
|
|
33
|
-
vertical-align: text-top;
|
|
34
|
-
}
|
|
35
|
-
#vg-tooltip-element table tr td.key {
|
|
36
|
-
color: #808080;
|
|
37
|
-
max-width: 150px;
|
|
38
|
-
text-align: right;
|
|
39
|
-
padding-right: 4px;
|
|
40
|
-
}
|
|
41
|
-
#vg-tooltip-element table tr td.value {
|
|
42
|
-
display: block;
|
|
43
|
-
max-width: 300px;
|
|
44
|
-
max-height: 7em;
|
|
45
|
-
text-align: left;
|
|
46
|
-
}
|
|
47
|
-
#vg-tooltip-element {
|
|
48
|
-
/* The default theme is the light theme. */
|
|
49
|
-
background-color: rgba(255, 255, 255, 0.95);
|
|
50
|
-
border: 1px solid #d9d9d9;
|
|
51
|
-
color: black;
|
|
52
|
-
}
|
|
53
|
-
#vg-tooltip-element.dark-theme {
|
|
54
|
-
background-color: rgba(32, 32, 32, 0.9);
|
|
55
|
-
border: 1px solid #f5f5f5;
|
|
56
|
-
color: white;
|
|
57
|
-
}
|
|
58
|
-
#vg-tooltip-element.dark-theme td.key {
|
|
59
|
-
color: #bfbfbf;
|
|
60
|
-
}
|
|
61
|
-
`,Mn=`vg-tooltip-element`,Nn={offsetX:10,offsetY:10,id:Mn,styleId:`vega-tooltip-style`,theme:`light`,disableDefaultStyle:!1,sanitize:Pn,maxDepth:2,formatTooltip:On,baseURL:``,anchor:`cursor`,position:[`top`,`bottom`,`left`,`right`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]};function Pn(e){return String(e).replace(/&/g,`&`).replace(/</g,`<`)}function Fn(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw Error(`Invalid HTML ID`);return jn.toString().replaceAll(Mn,e)}function In(e,t,{offsetX:n,offsetY:r}){let i=zn({x1:e.clientX,x2:e.clientX,y1:e.clientY,y2:e.clientY},t,n,r);for(let e of[`bottom-right`,`bottom-left`,`top-right`,`top-left`])if(Bn(i[e],t))return i[e];return i[`top-left`]}function Ln(e,t,n,r,i){let{position:a,offsetX:o,offsetY:s}=i,c=e._el.getBoundingClientRect(),l=e._origin,u=zn(Rn(c,l,n),r,o,s),d=Array.isArray(a)?a:[a];for(let e of d)if(Bn(u[e],r)&&!Vn(t,u[e],r))return u[e];return In(t,r,i)}function Rn(e,t,n){let r=n.isVoronoi?n.datum.bounds:n.bounds,i=e.left+t[0]+r.x1,a=e.top+t[1]+r.y1,o=n;for(;o.mark.group;)o=o.mark.group,i+=o.x??0,a+=o.y??0;let s=r.x2-r.x1,c=r.y2-r.y1;return{x1:i,x2:i+s,y1:a,y2:a+c}}function zn(e,t,n,r){let i=(e.x1+e.x2)/2,a=(e.y1+e.y2)/2,o=e.x1-t.width-n,s=i-t.width/2,c=e.x2+n,l=e.y1-t.height-r,u=a-t.height/2,d=e.y2+r;return{top:{x:s,y:l},bottom:{x:s,y:d},left:{x:o,y:u},right:{x:c,y:u},"top-left":{x:o,y:l},"top-right":{x:c,y:l},"bottom-left":{x:o,y:d},"bottom-right":{x:c,y:d}}}function Bn(e,t){return e.x>=0&&e.y>=0&&e.x+t.width<=window.innerWidth&&e.y+t.height<=window.innerHeight}function Vn(e,t,n){return e.clientX>=t.x&&e.clientX<=t.x+n.width&&e.clientY>=t.y&&e.clientY<=t.y+n.height}var Hn=class{call;options;el;constructor(e){this.options={...Nn,...e};let t=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){let e=document.createElement(`style`);e.setAttribute(`id`,this.options.styleId),e.innerHTML=Fn(t);let n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,r){if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement(`div`),this.el.setAttribute(`id`,this.options.id),this.el.classList.add(`vg-tooltip`),(document.fullscreenElement??document.body).appendChild(this.el)),r==null||r===``){this.el.classList.remove(`visible`,`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(r,this.options.sanitize,this.options.maxDepth,this.options.baseURL),this.el.classList.add(`visible`,`${this.options.theme}-theme`);let{x:i,y:a}=this.options.anchor===`mark`?Ln(e,t,n,this.el.getBoundingClientRect(),this.options):In(t,this.el.getBoundingClientRect(),this.options);this.el.style.top=`${a}px`,this.el.style.left=`${i}px`}};Dn.version;var Un=new Hn;export{un as a,yn as i,xn as n,J as o,bn as r,Un as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,u as r}from"./useEvent-Dfcbgjhg.js";import{t as i}from"./react-DVplv7_D.js";import{M as a,dr as o,oo as s,q as c}from"./cells-rA_jsZCj.js";import{t as l}from"./compiler-runtime-BrajqUja.js";import{t as u}from"./cn-ldLVeaqm.js";import{t as d}from"./jsx-runtime-B74pBk57.js";import{t as f}from"./tooltip-C9TuY18o.js";import{t as p}from"./createLucideIcon-DfJ2oMlA.js";import{o as m}from"./paths-bkIFVj8h.js";import{a as h}from"./useNumberFormatter-D7O_26UI.js";import{t as g}from"./chevron-right-eAtVhbNZ.js";import{t as _}from"./circle-check-BCurAHEb.js";import{t as v}from"./circle-play-CYIb0qT6.js";import{r as y}from"./useTheme-COhSHkCj.js";import{n as b}from"./CellStatus-nZpuDkm7.js";import{r as x,t as S}from"./react-vega-C3rYGtP6.js";import{t as C}from"./cell-link-1CynTVGQ.js";import{n as w,r as T,t as E}from"./react-resizable-panels.browser.esm-Dbe0MrFr.js";import{t as D}from"./bundle.esm-D3tw5rqW.js";import{t as O}from"./empty-state-BaCKb7o3.js";import{r as k}from"./panel-context-C2QXpKfx.js";import{t as A}from"./clear-button-p6YcvzLy.js";import{n as j,t as M}from"./runs-BLp5jezv.js";var N=p(`circle-ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M17 12h.01`,key:`1m0b6t`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M7 12h.01`,key:`eqddd0`}]]),P=e(i(),1),F=l(),I=`hoveredCellId`,L=`cellHover`,R=`cellNum`,z=`cell`,B=`startTimestamp`,V=`endTimestamp`,H=`status`;function U(e,t,n,r){let i=`hoursminutessecondsmilliseconds`;return{$schema:`https://vega.github.io/schema/vega-lite/v6.json`,background:r===`dark`?`black`:void 0,mark:{type:`bar`,cornerRadius:2},params:[{name:I,bind:{element:`#${t}`}},{name:L,select:{type:`point`,on:`mouseover`,fields:[z],clear:`mouseout`}}],height:{step:n===`sideBySide`?26:21},encoding:{y:{field:R,scale:{paddingInner:.2},sort:{field:`sortPriority`},title:`cell`,axis:n===`sideBySide`?null:void 0},x:{field:B,type:`temporal`,axis:{orient:`top`,title:null}},x2:{field:V,type:`temporal`},tooltip:[{field:B,type:`temporal`,timeUnit:i,title:`Start`},{field:V,type:`temporal`,timeUnit:i,title:`End`}],size:{value:{expr:`${I} == toString(datum.${z}) ? 19.5 : 18`}},color:{field:H,scale:{domain:[`success`,`error`],range:[`#37BE5F`,`red`]},legend:null}},data:{values:e},transform:[{calculate:`datum.${H} === 'queued' ? 9999999999999 : datum.${B}`,as:`sortPriority`}],config:{view:{stroke:`transparent`}}}}function W(e){try{let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}.${String(t.getMilliseconds()).padStart(3,`0`)}`}catch{return``}}var G=d(),K=t(new Map),q=()=>{let e=(0,F.c)(34),{runIds:t,runMap:r}=n(M),i=n(K),{clearRuns:a}=j(),{theme:o}=y(),[s,c]=(0,P.useState)(`above`),l=k(),u;e[0]===s?u=e[1]:(u=()=>{c(s===`above`?`sideBySide`:`above`)},e[0]=s,e[1]=u);let d=u;if(t.length===0){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,G.jsx)(O,{title:`No traces`,description:(0,G.jsx)(`span`,{children:`Cells that have ran will appear here.`}),icon:(0,G.jsx)(m,{})}),e[2]=t):t=e[2],t}let f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,G.jsx)(`label`,{htmlFor:`chartPosition`,className:`text-xs`,children:`Inline chart`}),e[3]=f):f=e[3];let p=s===`sideBySide`,h;e[4]!==p||e[5]!==d?(h=(0,G.jsxs)(`div`,{className:`flex flex-row gap-1 items-center`,children:[f,(0,G.jsx)(`input`,{type:`checkbox`,name:`chartPosition`,"data-testid":`chartPosition`,onClick:d,defaultChecked:p,className:`h-3 cursor-pointer`})]}),e[4]=p,e[5]=d,e[6]=h):h=e[6];let g;e[7]===a?g=e[8]:(g=(0,G.jsx)(A,{dataTestId:`clear-traces-button`,onClick:a}),e[7]=a,e[8]=g);let _;e[9]!==h||e[10]!==g?(_=(0,G.jsxs)(`div`,{className:`flex flex-row justify-start gap-3`,children:[h,g]}),e[9]=h,e[10]=g,e[11]=_):_=e[11];let v;if(e[12]!==s||e[13]!==i||e[14]!==t||e[15]!==r||e[16]!==o){let n;e[18]!==s||e[19]!==i||e[20]!==r||e[21]!==o?(n=(e,t)=>{let n=r.get(e);return n?(0,G.jsx)(J,{run:n,isExpanded:i.get(n.runId),isMostRecentRun:t===0,chartPosition:s,theme:o},n.runId):null},e[18]=s,e[19]=i,e[20]=r,e[21]=o,e[22]=n):n=e[22],v=t.map(n),e[12]=s,e[13]=i,e[14]=t,e[15]=r,e[16]=o,e[17]=v}else v=e[17];let b;e[23]===v?b=e[24]:(b=(0,G.jsx)(`div`,{className:`flex flex-col gap-3`,children:v}),e[23]=v,e[24]=b);let x;e[25]!==_||e[26]!==b?(x=(0,G.jsxs)(`div`,{className:`py-1 px-2 overflow-y-scroll h-full`,children:[_,b]}),e[25]=_,e[26]=b,e[27]=x):x=e[27];let S=x;if(l===`sidebar`)return S;let C;e[28]===S?C=e[29]:(C=(0,G.jsx)(E,{defaultSize:50,minSize:30,maxSize:80,children:S}),e[28]=S,e[29]=C);let D;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,G.jsx)(T,{className:`w-1 bg-border hover:bg-primary/50 transition-colors`}),e[30]=D):D=e[30];let N;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,G.jsx)(E,{defaultSize:50,children:(0,G.jsx)(`div`,{})}),e[31]=N):N=e[31];let I;return e[32]===C?I=e[33]:(I=(0,G.jsxs)(w,{direction:`horizontal`,className:`h-full`,children:[C,D,N]}),e[32]=C,e[33]=I),I},J=e=>{let t=(0,F.c)(22),{run:n,isMostRecentRun:i,chartPosition:a,isExpanded:o,theme:s}=e,l=o,u=r(K);l??=i;let d;t[0]!==l||t[1]!==n.runId||t[2]!==u?(d=()=>{u(e=>{let t=new Map(e);return t.set(n.runId,!l),t})},t[0]=l,t[1]=n.runId,t[2]=u,t[3]=d):d=t[3];let f=d,p=l?h:g,m;t[4]===p?m=t[5]:(m=(0,G.jsx)(p,{height:16,className:`inline`}),t[4]=p,t[5]=m);let _=m,v;t[6]===n.runStartTime?v=t[7]:(v=c(n.runStartTime),t[6]=n.runStartTime,t[7]=v);let y;t[8]!==_||t[9]!==f||t[10]!==v?(y=(0,G.jsxs)(`span`,{className:`text-sm cursor-pointer`,onClick:f,children:[`Run - `,v,_]}),t[8]=_,t[9]=f,t[10]=v,t[11]=y):y=t[11];let b=y;if(!l){let e;t[12]===b?e=t[13]:(e=(0,G.jsx)(`pre`,{className:`font-mono font-semibold`,children:b}),t[12]=b,t[13]=e);let r;return t[14]!==n.runId||t[15]!==e?(r=(0,G.jsx)(`div`,{className:`flex flex-col`,children:e},n.runId),t[14]=n.runId,t[15]=e,t[16]=r):r=t[16],r}let x;return t[17]!==a||t[18]!==n||t[19]!==s||t[20]!==b?(x=(0,G.jsx)(Y,{run:n,chartPosition:a,theme:s,title:b},n.runId),t[17]=a,t[18]=n,t[19]=s,t[20]=b,t[21]=x):x=t[21],x},Y=e=>{let t=(0,F.c)(40),{run:n,chartPosition:r,theme:i,title:s}=e,[c,l]=(0,P.useState)(),u=(0,P.useRef)(null),{ref:d,width:f}=D(),p=f===void 0?300:f,m=a(),h,g;if(t[0]!==m||t[1]!==r||t[2]!==n.cellRuns||t[3]!==n.runId||t[4]!==i){let e=[...n.cellRuns.values()].map(e=>{let t=e.elapsedTime??0;return{cell:e.cellId,cellNum:m.inOrderIds.indexOf(e.cellId),startTimestamp:W(e.startTime),endTimestamp:W(e.startTime+t),elapsedTime:o(t*1e3),status:e.status}});h=`hiddenInputElement-${n.runId}`,g=x(U(e,h,r,i)),t[0]=m,t[1]=r,t[2]=n.cellRuns,t[3]=n.runId,t[4]=i,t[5]=h,t[6]=g}else h=t[5],g=t[6];let _=g.spec,v=i===`dark`?`dark`:void 0,y=p-50,b=r===`above`?120:100,C;t[7]!==v||t[8]!==y||t[9]!==b?(C={theme:v,width:y,height:b,actions:!1,mode:`vega`,renderer:`canvas`},t[7]=v,t[8]=y,t[9]=b,t[10]=C):C=t[10];let w;t[11]!==C||t[12]!==_?(w={ref:u,spec:_,options:C},t[11]=C,t[12]=_,t[13]=w):w=t[13];let T=S(w),E;t[14]===T?.view?E=t[15]:(E=()=>{let e=[{signalName:L,handler:(e,t)=>{let n=t.cell?.[0]??void 0;l(n??null)}}];return e.forEach(e=>{let{signalName:t,handler:n}=e;T?.view.addSignalListener(t,n)}),()=>{e.forEach(e=>{let{signalName:t,handler:n}=e;T?.view.removeSignalListener(t,n)})}},t[14]=T?.view,t[15]=E);let O;t[16]===T?O=t[17]:(O=[T],t[16]=T,t[17]=O),(0,P.useEffect)(E,O);let k;t[18]!==h||t[19]!==c||t[20]!==n?(k=(0,G.jsx)(X,{run:n,hoveredCellId:c,hiddenInputElementId:h}),t[18]=h,t[19]=c,t[20]=n,t[21]=k):k=t[21];let A=k,j=r===`sideBySide`?`-mt-0.5 flex-1`:``,M;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,G.jsx)(P.Suspense,{children:(0,G.jsx)(`div`,{ref:u})}),t[22]=M):M=t[22];let N;t[23]!==d||t[24]!==j?(N=(0,G.jsx)(`div`,{className:j,ref:d,children:M}),t[23]=d,t[24]=j,t[25]=N):N=t[25];let I=N;if(r===`above`){let e;t[26]!==I||t[27]!==s||t[28]!==A?(e=(0,G.jsxs)(`pre`,{className:`font-mono font-semibold`,children:[s,I,A]}),t[26]=I,t[27]=s,t[28]=A,t[29]=e):e=t[29];let r;return t[30]!==n.runId||t[31]!==e?(r=(0,G.jsx)(`div`,{className:`flex flex-col`,children:e},n.runId),t[30]=n.runId,t[31]=e,t[32]=r):r=t[32],r}let R;t[33]!==s||t[34]!==A?(R=(0,G.jsxs)(`pre`,{className:`font-mono font-semibold`,children:[s,A]}),t[33]=s,t[34]=A,t[35]=R):R=t[35];let z;return t[36]!==I||t[37]!==n.runId||t[38]!==R?(z=(0,G.jsxs)(`div`,{className:`flex flex-row`,children:[R,I]},n.runId),t[36]=I,t[37]=n.runId,t[38]=R,t[39]=z):z=t[39],z},X=e=>{let t=(0,F.c)(12),{run:n,hoveredCellId:r,hiddenInputElementId:i}=e,a=(0,P.useRef)(null),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{a.current&&(a.current.value=String(e),a.current.dispatchEvent(new Event(`input`,{bubbles:!0})))},t[0]=o):o=t[0];let s=o,c=r||``,l;t[1]!==i||t[2]!==c?(l=(0,G.jsx)(`input`,{type:`text`,id:i,defaultValue:c,hidden:!0,ref:a}),t[1]=i,t[2]=c,t[3]=l):l=t[3];let u;t[4]===n.cellRuns?u=t[5]:(u=[...n.cellRuns.values()],t[4]=n.cellRuns,t[5]=u);let d;t[6]!==r||t[7]!==u?(d=u.map(e=>(0,G.jsx)(Q,{cellRun:e,hovered:e.cellId===r,dispatchHoverEvent:s},e.cellId)),t[6]=r,t[7]=u,t[8]=d):d=t[8];let f;return t[9]!==l||t[10]!==d?(f=(0,G.jsxs)(`div`,{className:`text-xs mt-0.5 ml-3 flex flex-col gap-0.5`,children:[l,d]}),t[9]=l,t[10]=d,t[11]=f):f=t[11],f},Z={success:(0,G.jsx)(_,{color:`green`,size:14}),running:(0,G.jsx)(v,{color:`var(--blue-10)`,size:14}),error:(0,G.jsx)(s,{color:`red`,size:14}),queued:(0,G.jsx)(N,{color:`grey`,size:14})},Q=e=>{let t=(0,F.c)(39),{cellRun:n,hovered:r,dispatchHoverEvent:i}=e,a;t[0]===n.elapsedTime?a=t[1]:(a=n.elapsedTime?o(n.elapsedTime*1e3):`-`,t[0]=n.elapsedTime,t[1]=a);let s=a,l;t[2]!==n.elapsedTime||t[3]!==s?(l=n.elapsedTime?(0,G.jsxs)(`span`,{children:[`This cell took `,(0,G.jsx)(b,{elapsedTime:s}),` to run`]}):(0,G.jsx)(`span`,{children:`This cell has not been run`}),t[2]=n.elapsedTime,t[3]=s,t[4]=l):l=t[4];let d=l,p;t[5]!==n.cellId||t[6]!==i?(p=()=>{i(n.cellId)},t[5]=n.cellId,t[6]=i,t[7]=p):p=t[7];let m=p,h;t[8]===i?h=t[9]:(h=()=>{i(null)},t[8]=i,t[9]=h);let g=h,_=r&&`bg-(--gray-3) opacity-100`,v;t[10]===_?v=t[11]:(v=u(`flex flex-row gap-2 py-1 px-1 opacity-70 hover:bg-(--gray-3) hover:opacity-100`,_),t[10]=_,t[11]=v);let y;t[12]===n.startTime?y=t[13]:(y=c(n.startTime),t[12]=n.startTime,t[13]=y);let x;t[14]===y?x=t[15]:(x=(0,G.jsxs)(`span`,{className:`text-(--gray-10) dark:text-(--gray-11)`,children:[`[`,y,`]`]}),t[14]=y,t[15]=x);let S;t[16]===n.cellId?S=t[17]:(S=(0,G.jsxs)(`span`,{className:`text-(--gray-10) w-16 overflow-hidden`,children:[`(`,(0,G.jsx)(C,{cellId:n.cellId}),`)`]}),t[16]=n.cellId,t[17]=S);let w;t[18]===n.code?w=t[19]:(w=(0,G.jsx)(`span`,{className:`w-40 truncate -ml-1`,children:n.code}),t[18]=n.code,t[19]=w);let T;t[20]===s?T=t[21]:(T=(0,G.jsx)(`span`,{className:`text-(--gray-10) dark:text-(--gray-11)`,children:s}),t[20]=s,t[21]=T);let E;t[22]!==d||t[23]!==T?(E=(0,G.jsx)(f,{content:d,children:T}),t[22]=d,t[23]=T,t[24]=E):E=t[24];let D=Z[n.status],O;t[25]!==n.status||t[26]!==D?(O=(0,G.jsx)(f,{content:n.status,children:D}),t[25]=n.status,t[26]=D,t[27]=O):O=t[27];let k;t[28]!==E||t[29]!==O?(k=(0,G.jsxs)(`div`,{className:`flex flex-row gap-1 w-16 justify-end -ml-2`,children:[E,O]}),t[28]=E,t[29]=O,t[30]=k):k=t[30];let A;return t[31]!==m||t[32]!==g||t[33]!==w||t[34]!==k||t[35]!==v||t[36]!==x||t[37]!==S?(A=(0,G.jsxs)(`div`,{className:v,onMouseEnter:m,onMouseLeave:g,children:[x,S,w,k]}),t[31]=m,t[32]=g,t[33]=w,t[34]=k,t[35]=v,t[36]=x,t[37]=S,t[38]=A):A=t[38],A};export{q as Tracing};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{t as r}from"./compiler-runtime-BrajqUja.js";import{t as i}from"./invariant-Ci2dTZ72.js";var a=r(),o=e(n(),1),s={error(e,t){return{status:`error`,data:t,error:e,isPending:!1,isFetching:!1}},success(e){return{status:`success`,data:e,error:void 0,isPending:!1,isFetching:!1}},loading(e){return{status:`loading`,data:e,error:void 0,isPending:!1,isFetching:!0}},pending(){return{status:`pending`,data:void 0,error:void 0,isPending:!0,isFetching:!0}}};function c(...e){i(e.length>0,`combineAsyncData requires at least one response`);let t=()=>{e.forEach(e=>e.refetch())},n=e.find(e=>e.status===`error`);if(n?.error)return{...s.error(n.error),refetch:t};if(e.every(e=>e.status===`success`))return{...s.success(e.map(e=>e.data)),refetch:t};let r=e.some(e=>e.status===`loading`),a=e.every(e=>e.data!==void 0);return r&&a?{...s.loading(e.map(e=>e.data)),refetch:t}:{...s.pending(),refetch:t}}function l(e,n){let r=(0,a.c)(17),[c,l]=(0,o.useState)(0),d;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=s.pending(),r[0]=d):d=r[0];let[f,p]=(0,o.useState)(d),m;r[1]===e?m=r[2]:(m=typeof e==`function`?{fetch:e}:e,r[1]=e,r[2]=m);let h=t(m.fetch),g;r[3]===h?g=r[4]:(g=()=>{let e=new AbortController,t=!1;return p(u),h({previous:()=>{t=!0}}).then(n=>{e.signal.aborted||t||p(s.success(n))}).catch(t=>{e.signal.aborted||p(e=>s.error(t,e.data))}),()=>{e.abort()}},r[3]=h,r[4]=g);let _;r[5]!==n||r[6]!==h||r[7]!==c?(_=[...n,c,h],r[5]=n,r[6]=h,r[7]=c,r[8]=_):_=r[8],(0,o.useEffect)(g,_);let v;r[9]===f?v=r[10]:(v=e=>{let t;typeof e==`function`?(i(f.status===`success`||f.status===`loading`,`No previous state value.`),t=e(f.data)):t=e,p(s.success(t))},r[9]=f,r[10]=v);let y;r[11]===c?y=r[12]:(y=()=>l(c+1),r[11]=c,r[12]=y);let b;return r[13]!==f||r[14]!==v||r[15]!==y?(b={...f,setData:v,refetch:y},r[13]=f,r[14]=v,r[15]=y,r[16]=b):b=r[16],b}function u(e){return e.status===`success`||e.status===`loading`?s.loading(e.data):s.pending()}export{l as n,c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{f as r,g as i}from"./useEventListener-D9cftcHj.js";import{i as a}from"./utils-B4K466FK.js";import{M as o}from"./config-DX8Y2WbJ.js";import{t as s}from"./createLucideIcon-DfJ2oMlA.js";var c=s(`case-sensitive`,[[`path`,{d:`m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16`,key:`d5nyq2`}],[`path`,{d:`M22 9v7`,key:`pvm9v3`}],[`path`,{d:`M3.304 13h6.392`,key:`1q3zxz`}],[`circle`,{cx:`18.5`,cy:`12.5`,r:`3.5`,key:`z97x68`}]]),l=e(t(),1),u=e=>{let t=null,n=async()=>(t||=e(),t);return{preload:n,Component:l.lazy(()=>n())}},d=typeof window<`u`&&window.parent!==window;function f(){new URLSearchParams(window.location.search).has(a.vscode)&&(!d||o()||(i.log(`[vscode] Registering VS Code bindings`),m(),p(),h(),g()))}function p(){window.addEventListener(`copy`,()=>{_({command:`copy`,text:window.getSelection()?.toString()??``})}),window.addEventListener(`cut`,()=>{let e=window.getSelection()?.toString()??``;r()&&document.execCommand(`insertText`,!1,``),_({command:`cut`,text:e})}),window.addEventListener(`message`,async e=>{try{let t=e.data,n=r();if(t.command===`paste`){if(i.log(`[vscode] Received paste mac=${n}`,t),n){let e=document.activeElement;if(!e){i.warn(`[vscode] No active element to paste into`),document.execCommand(`insertText`,!1,t.text);return}let n=new DataTransfer;n.setData(`text/plain`,t.text),e.dispatchEvent(new ClipboardEvent(`paste`,{clipboardData:n}))}else i.log(`[vscode] Not pasting on mac`);return}}catch(e){i.error(`Error in paste message handler`,e)}})}function m(){document.addEventListener(`keydown`,e=>{if((e.ctrlKey||e.metaKey)&&e.key===`c`){let e=window.getSelection()?.toString()??``;i.log(`[vscode] Sending copy`,e),_({command:`copy`,text:e});return}if((e.ctrlKey||e.metaKey)&&e.key===`x`){let e=window.getSelection()?.toString()??``;r()&&document.execCommand(`insertText`,!1,``),i.log(`[vscode] Sending cut`,e),_({command:`cut`,text:e});return}if((e.ctrlKey||e.metaKey)&&e.key===`v`){i.log(`[vscode] Sending paste`),_({command:`paste`});return}})}function h(){document.addEventListener(`click`,e=>{let t=e.target;if(t.tagName!==`A`)return;let n=t.getAttribute(`href`);n&&(n.startsWith(`http://`)||n.startsWith(`https://`))&&(e.preventDefault(),_({command:`external_link`,url:n}))})}function g(){document.addEventListener(`contextmenu`,e=>{e.preventDefault(),_({command:`context_menu`})})}function _(e){window.parent?.postMessage(e,`*`)}var v={width:void 0,height:void 0};function y(e){let{ref:t,box:n=`content-box`,skip:r}=e,i=(0,l.useRef)({...v}),a=(0,l.useRef)(void 0);a.current=e.onResize,(0,l.useEffect)(()=>{if(!t.current||r||typeof window>`u`||!(`ResizeObserver`in window))return;let e=new ResizeObserver(([e])=>{let t=n===`border-box`?`borderBoxSize`:n===`device-pixel-content-box`?`devicePixelContentBoxSize`:`contentBoxSize`,r=b(e,t,`inlineSize`),o=b(e,t,`blockSize`);if(i.current.width!==r||i.current.height!==o){let e={width:r,height:o};i.current.width=r,i.current.height=o,a.current&&a.current(e)}});return e.observe(t.current,{box:n}),()=>{e.disconnect()}},[n,t,r])}function b(e,t,n){return e[t]?Array.isArray(e[t])?e[t][0][n]:e[t][n]:t===`contentBoxSize`?e.contentRect[n===`inlineSize`?`width`:`height`]:void 0}var x=n();function S(e){let t=(0,x.c)(6),[n,r]=(0,l.useState)(e),i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=e=>{e?.stopPropagation?.(),r(!0)},t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=e=>{e?.stopPropagation?.(),r(!1)},t[1]=a):a=t[1];let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{e?.stopPropagation?.(),r(C)},t[2]=o):o=t[2];let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s={setTrue:i,setFalse:a,toggle:o},t[3]=s):s=t[3];let c;return t[4]===n?c=t[5]:(c=[n,s],t[4]=n,t[5]=c),c}function C(e){return!e}export{u as a,_ as i,y as n,c as o,f as r,S as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{t as r}from"./compiler-runtime-BrajqUja.js";import{t as i}from"./debounce-aFmHgJZY.js";var a=r(),o=e(n(),1);function s(e,t){let n=(0,a.c)(4),[r,i]=(0,o.useState)(e),s,c;return n[0]!==t||n[1]!==e?(s=()=>{let n=setTimeout(()=>i(e),t);return()=>{clearTimeout(n)}},c=[e,t],n[0]=t,n[1]=e,n[2]=s,n[3]=c):(s=n[2],c=n[3]),(0,o.useEffect)(s,c),r}function c(e){let n=(0,a.c)(18),{initialValue:r,onChange:i,delay:c,disabled:l}=e,[u,d]=(0,o.useState)(r),f=s(u,c||200),p=t(i),m,h;n[0]===r?(m=n[1],h=n[2]):(m=()=>{d(r)},h=[r],n[0]=r,n[1]=m,n[2]=h),(0,o.useEffect)(m,h);let g;n[3]!==f||n[4]!==l||n[5]!==r||n[6]!==p?(g=()=>{l||f!==r&&p(f)},n[3]=f,n[4]=l,n[5]=r,n[6]=p,n[7]=g):g=n[7];let _;if(n[8]!==f||n[9]!==l||n[10]!==p?(_=[f,l,p],n[8]=f,n[9]=l,n[10]=p,n[11]=_):_=n[11],(0,o.useEffect)(g,_),l){let e;return n[12]!==u||n[13]!==i?(e={value:u,debouncedValue:u,onChange:i},n[12]=u,n[13]=i,n[14]=e):e=n[14],e}let v;return n[15]!==f||n[16]!==u?(v={value:u,debouncedValue:f,onChange:d},n[15]=f,n[16]=u,n[17]=v):v=n[17],v}function l(e,n){let r=(0,a.c)(3),o=t(e),s;return r[0]!==n||r[1]!==o?(s=i(o,n),r[0]=n,r[1]=o,r[2]=s):s=r[2],s}export{c as n,l as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{t as r}from"./compiler-runtime-BrajqUja.js";import{t as i}from"./debounce-aFmHgJZY.js";import{f as a,g as o}from"./useEventListener-D9cftcHj.js";import{t as s}from"./objects-snlMn4yk.js";import{n as c}from"./config-DX8Y2WbJ.js";import{t as l}from"./cn-ldLVeaqm.js";import{t as u}from"./jsx-runtime-B74pBk57.js";import{t as d}from"./tooltip-C9TuY18o.js";import{r as f}from"./button-COI-NGrx.js";import{s as ee}from"./toDate-DOj9Q6uC.js";import{u as p}from"./arrays-BqUx5USx.js";import{r as te}from"./useTheme-COhSHkCj.js";import{n as ne}from"./useAsyncData-C7aJJz0Y.js";import{t as m}from"./isValid-q_Ad80ug.js";import{r as re,t as ie}from"./tooltip-mT3CGest.js";import{n as h}from"./vega-loader.browser-CLRkNgm7.js";import{t as ae}from"./react-vega-C3rYGtP6.js";import{r as oe,t as se}from"./alert-DTaqCu_d.js";import{n as ce}from"./error-banner-Cd69vvyX.js";import{t as le}from"./utils-CaQYvazl.js";import{t as g}from"./formats-yZ06h1Pl.js";import{t as ue}from"./useDeepCompareMemoize-DFIVN9dn.js";import{t as de}from"./semaphore-BjoL5P0h.js";import{t as fe}from"./use-vega-container-remeasure-BpmHehNK.js";var pe=e(n(),1),me=r();function he(e){return e.data&&`url`in e.data&&(e.data.url=c(e.data.url).href),e}var _={arc:`arc`,area:`area`,bar:`bar`,image:`image`,line:`line`,point:`point`,rect:`rect`,rule:`rule`,text:`text`,tick:`tick`,trail:`trail`,circle:`circle`,square:`square`,geoshape:`geoshape`},v=new Set([`boxplot`,`errorband`,`errorbar`]),y={getMarkType(e){let t=typeof e==`string`?e:e.type;if(v.has(t))throw Error(`Not supported`);return t},isInteractive(e){let t=typeof e==`string`?e:e.type;return!v.has(t)},makeClickable(e){let t=typeof e==`string`?e:e.type;return t in _?typeof e==`string`?{type:e,cursor:`pointer`,tooltip:!0}:{...e,type:t,cursor:`pointer`,tooltip:!0}:e},getOpacity(e){return typeof e==`string`?null:`opacity`in e&&typeof e.opacity==`number`?e.opacity:null}},b={point(e){return e==null?`select_point`:`select_point_${e}`},interval(e){return e==null?`select_interval`:`select_interval_${e}`},legendSelection(e){return`legend_selection_${e}`},binColoring(e){return e==null?`bin_coloring`:`bin_coloring_${e}`},HIGHLIGHT:`highlight`,PAN_ZOOM:`pan_zoom`,hasPoint(e){return e.some(e=>e.startsWith(`select_point`))},hasInterval(e){return e.some(e=>e.startsWith(`select_interval`))},hasLegend(e){return e.some(e=>e.startsWith(`legend_selection`))},hasPanZoom(e){return e.some(e=>e.startsWith(`pan_zoom`))},isBinColoring(e){return e.startsWith(`bin_coloring`)}};function x(){return a()?`metaKey`:`ctrlKey`}var S={highlight(){return{name:b.HIGHLIGHT,select:{type:`point`,on:`mouseover`}}},interval(e,t){let n=x();return{name:b.interval(t),select:{type:`interval`,encodings:C(e),mark:{fill:`#669EFF`,fillOpacity:.07,stroke:`#669EFF`,strokeOpacity:.4},on:`[mousedown[!event.${n}], mouseup] > mousemove[!event.${n}]`,translate:`[mousedown[!event.${n}], mouseup] > mousemove[!event.${n}]`}}},point(e,t){return{name:b.point(t),select:{type:`point`,encodings:C(e),on:`click[!event.${x()}]`}}},binColoring(e){return{name:b.binColoring(e),select:{type:`point`,on:`click[!event.${x()}]`}}},legend(e){return{name:b.legendSelection(e),select:{type:`point`,fields:[e]},bind:`legend`}},panZoom(){let e=x();return{name:b.PAN_ZOOM,bind:`scales`,select:{type:`interval`,on:`[mousedown[event.${e}], window:mouseup] > window:mousemove!`,translate:`[mousedown[event.${e}], window:mouseup] > window:mousemove!`,zoom:`wheel![event.${e}]`}}}};function C(e){switch(y.getMarkType(e.mark)){case _.image:case _.trail:return;case _.area:case _.arc:return[`color`];case _.bar:{let t=T(e);return t===`horizontal`?[`y`]:t===`vertical`?[`x`]:void 0}case _.circle:case _.geoshape:case _.line:case _.point:case _.rect:case _.rule:case _.square:case _.text:case _.tick:return[`x`,`y`]}}function w(e){if(`params`in e&&e.params&&e.params.length>0){let t=e.params.filter(e=>e!=null&&`select`in e&&e.select!==void 0).map(e=>e.name);return p(t)}return`layer`in e?p(e.layer.flatMap(w)):`vconcat`in e?p(e.vconcat.flatMap(w)):`hconcat`in e?p(e.hconcat.flatMap(w)):[]}function T(e){if(!e||!(`mark`in e))return;let t=e.encoding?.x,n=e.encoding?.y;if(t&&`type`in t&&t.type===`nominal`)return`vertical`;if(n&&`type`in n&&n.type===`nominal`||t&&`aggregate`in t)return`horizontal`;if(n&&`aggregate`in n)return`vertical`}function E(e){if(!e.encoding)return[];let t=[];for(let n of Object.values(e.encoding))n&&typeof n==`object`&&`bin`in n&&n.bin&&`field`in n&&typeof n.field==`string`&&t.push(n.field);return t}function D(e){if(!e||!(`encoding`in e))return[];let{encoding:t}=e;return t?Object.entries(t).flatMap(e=>{let[t,n]=e;return!n||!O.has(t)?[]:`field`in n&&typeof n.field==`string`?[n.field]:`condition`in n&&n.condition&&typeof n.condition==`object`&&`field`in n.condition&&n.condition.field&&typeof n.condition.field==`string`?[n.condition.field]:[]}):[]}var O=new Set([`color`,`fill`,`fillOpacity`,`opacity`,`shape`,`size`]);function k(e,t,n,r){let i=n.filter(e=>b.isBinColoring(e)),a={and:(i.length>0?i:n).map(e=>({param:e}))};switch(e){case`opacity`:{let e=y.getOpacity(r)||1;return{...t,opacity:{condition:{test:a,value:e},value:e/5}}}default:return t}}function A(e){if(!(`select`in e)||!e.select)return JSON.stringify(e);let t=e.select;if(typeof t==`string`)return JSON.stringify({type:t,bind:e.bind});let n={type:t.type,encodings:`encodings`in t&&t.encodings?[...t.encodings].toSorted():void 0,fields:`fields`in t&&t.fields?[...t.fields].toSorted():void 0,bind:e.bind};return JSON.stringify(n)}function j(e){let t=M(e);if(t.length===0)return e;let n=N(t);return n.length===0?e:{...F(P(e,new Set(n.map(e=>e.name))),n.map(e=>e.name)),params:[...e.params||[],...n]}}function M(e){let t=[];if(`vconcat`in e&&Array.isArray(e.vconcat))for(let n of e.vconcat)t.push(...M(n));else if(`hconcat`in e&&Array.isArray(e.hconcat))for(let n of e.hconcat)t.push(...M(n));else if(`layer`in e)return[];else`mark`in e&&`params`in e&&e.params&&e.params.length>0&&t.push({params:e.params});return t}function N(e){if(e.length===0)return[];let t=new Map,n=e.length;for(let{params:n}of e){let e=new Set;for(let r of n){let n=A(r);e.has(n)||(e.add(n),t.has(n)||t.set(n,{count:0,param:r}),t.get(n).count++)}}let r=[];for(let[,{count:e,param:i}]of t)e===n&&r.push(i);return r}function P(e,t){if(`vconcat`in e&&Array.isArray(e.vconcat))return{...e,vconcat:e.vconcat.map(e=>P(e,t))};if(`hconcat`in e&&Array.isArray(e.hconcat))return{...e,hconcat:e.hconcat.map(e=>P(e,t))};if(`mark`in e&&`params`in e&&e.params){let n=e.params,r=[];for(let e of n){if(!e||typeof e!=`object`||!(`name`in e)){r.push(e);continue}t.has(e.name)||r.push(e)}if(r.length===0){let{params:t,...n}=e;return n}return{...e,params:r}}return e}function F(e,t){return`vconcat`in e&&Array.isArray(e.vconcat)?{...e,vconcat:e.vconcat.map(e=>F(e,t))}:`hconcat`in e&&Array.isArray(e.hconcat)?{...e,hconcat:e.hconcat.map(e=>F(e,t))}:`layer`in e?e:`mark`in e&&y.isInteractive(e.mark)?{...e,mark:y.makeClickable(e.mark),encoding:k(`opacity`,e.encoding||{},t,e.mark)}:e}function ge(e,t){let{chartSelection:n=!0,fieldSelection:r=!0}=t;if(!n&&!r)return e;e.params?.some(e=>e.bind===`legend`)&&(r=!1);let i=e.params?.some(e=>!e.bind);i&&(n=!1);let a=`vconcat`in e||`hconcat`in e;if(i&&a)return e;if(`vconcat`in e){let t=e.vconcat.map(e=>`mark`in e?ge(e,{chartSelection:n,fieldSelection:r}):e);return j({...e,vconcat:t})}if(`hconcat`in e){let t=e.hconcat.map(e=>`mark`in e?ge(e,{chartSelection:n,fieldSelection:r}):e);return j({...e,hconcat:t})}if(`layer`in e){let t=e.params&&e.params.length>0,i=r!==!1&&!t,a=[];if(i){let t=e.layer.flatMap(e=>`mark`in e?D(e):[]);a=[...new Set(t)],Array.isArray(r)&&(a=a.filter(e=>r.includes(e)))}let o=e.layer.map((e,t)=>{if(!(`mark`in e))return e;let r=e;if(t===0&&a.length>0){let e=a.map(e=>S.legend(e));r={...r,params:[...r.params||[],...e]}}return r=L(r,n,t),r=z(r),t===0&&(r=R(r)),r});return{...e,layer:o}}if(!(`mark`in e)||!y.isInteractive(e.mark))return e;let o=e;return o=I(o,r),o=L(o,n,void 0),o=z(o),o=R(o),o}function I(e,t){if(t===!1)return e;let n=D(e);Array.isArray(t)&&(n=n.filter(e=>t.includes(e)));let r=n.map(e=>S.legend(e)),i=[...e.params||[],...r];return{...e,params:i}}function L(e,t,n){if(t===!1)return e;let r;try{r=y.getMarkType(e.mark)}catch{return e}if(r===`geoshape`)return e;let i=E(e),a=t===!0?i.length>0?[`point`]:B(r):[t];if(!a||a.length===0)return e;let o=a.map(t=>t===`interval`?S.interval(e,n):S.point(e,n)),s=[...e.params||[],...o];return i.length>0&&a.includes(`point`)&&s.push(S.binColoring(n)),{...e,params:s}}function R(e){let t;try{t=y.getMarkType(e.mark)}catch{}if(t===`geoshape`)return e;let n=e.params||[];return n.some(e=>e.bind===`scales`)?e:{...e,params:[...n,S.panZoom()]}}function z(e){let t=`encoding`in e?e.encoding:void 0,n=e.params||[],r=n.map(e=>e.name);return n.length===0||!y.isInteractive(e.mark)?e:{...e,mark:y.makeClickable(e.mark),encoding:k(`opacity`,t||{},r,e.mark)}}function B(e){switch(e){case`arc`:case`area`:return[`point`];case`text`:case`bar`:return[`point`,`interval`];case`line`:return;default:return[`point`,`interval`]}}var V=5;async function H(e){if(!e)return e;let t=`datasets`in e?{...e.datasets}:{},n=new de(V),r=async e=>{if(!e)return e;if(`layer`in e){let t=await Promise.all(e.layer.map(r));e={...e,layer:t}}if(`hconcat`in e){let t=await Promise.all(e.hconcat.map(r));e={...e,hconcat:t}}if(`vconcat`in e){let t=await Promise.all(e.vconcat.map(r));e={...e,vconcat:t}}if(`spec`in e&&(e={...e,spec:await r(e.spec)}),!e.data||!(`url`in e.data))return e;let i;try{i=c(e.data.url)}catch{return e}let a=e.data.format,o=await n.run(()=>re(i.href,a));return t[i.pathname]=o,{...e,data:{name:i.pathname}}},i=await r(e);return Object.keys(t).length===0?i:{...i,datasets:t}}var U=u();h(`arrow`,g);var W=e=>{let t=(0,me.c)(12),{value:n,setValue:r,chartSelection:i,fieldSelection:a,spec:o,embedOptions:s}=e,c,l;t[0]===o?(c=t[1],l=t[2]):(c=async()=>H(o),l=[o],t[0]=o,t[1]=c,t[2]=l);let{data:u,error:d}=ne(c,l);if(d){let e;return t[3]===d?e=t[4]:(e=(0,U.jsx)(ce,{error:d}),t[3]=d,t[4]=e),e}if(!u)return null;let f;return t[5]!==i||t[6]!==s||t[7]!==a||t[8]!==u||t[9]!==r||t[10]!==n?(f=(0,U.jsx)(G,{value:n,setValue:r,chartSelection:i,fieldSelection:a,spec:u,embedOptions:s}),t[5]=i,t[6]=s,t[7]=a,t[8]=u,t[9]=r,t[10]=n,t[11]=f):f=t[11],f},G=e=>{let n=(0,me.c)(50),{value:r,setValue:c,chartSelection:u,fieldSelection:p,spec:ne,embedOptions:m}=e,{theme:re}=te(),h=(0,pe.useRef)(null),ce=(0,pe.useRef)(void 0),[g,de]=(0,pe.useState)(),_;bb0:{if(m&&`actions`in m){_=m.actions;break bb0}let e;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(e={source:!1,compiled:!1},n[0]=e):e=n[0],_=e}let v=_,y=ue(ne),x;n[1]!==u||n[2]!==p||n[3]!==y?(x=ge(he(y),{chartSelection:u,fieldSelection:p}),n[1]=u,n[2]=p,n[3]=y,n[4]=x):x=n[4];let S=x,C;n[5]===S?C=n[6]:(C=w(S),n[5]=S,n[6]=C);let T=C,E;n[7]!==c||n[8]!==r?(E=e=>{c({...r,...e})},n[7]=c,n[8]=r,n[9]=E):E=n[9];let D=t(E),O;n[10]===D?O=n[11]:(O=i((e,t)=>{o.debug(`[Vega signal]`,e,t);let n=s.mapValues(t,ve);n=s.mapValues(n,_e),D({[e]:n})},100),n[10]=D,n[11]=O);let k=O,A=ue(T),j;if(n[12]!==k||n[13]!==A){let e;n[15]===k?e=n[16]:(e=(e,t)=>(b.PAN_ZOOM===t||b.isBinColoring(t)||e.push({signalName:t,handler:(e,t)=>k(e,t)}),e),n[15]=k,n[16]=e),j=A.reduce(e,[]),n[12]=k,n[13]=A,n[14]=j}else j=n[14];let M=j,N;n[17]===S?N=n[18]:(N=e=>{o.error(e),o.debug(S),de(e)},n[17]=S,n[18]=N);let P=t(N),F;n[19]===Symbol.for(`react.memo_cache_sentinel`)?(F=e=>{o.debug(`[Vega view] created`,e),ce.current=e,de(void 0)},n[19]=F):F=n[19];let I=t(F),L;n[20]===T?L=n[21]:(L=()=>{let e=[];if(b.hasPoint(T)&&e.push([`Point selection`,`click to select a point; hold shift for multi-select`]),b.hasInterval(T)&&e.push([`Interval selection`,`click and drag to select an interval`]),b.hasLegend(T)&&e.push([`Legend selection`,`click to select a legend item; hold shift for multi-select`]),b.hasPanZoom(T)){let t=a()?`⌘`:`ctrl`;e.push([`Pan`,`hold the ${t} key and drag`],[`Zoom`,`hold the ${t} key and scroll`])}return e.length===0?null:(0,U.jsx)(d,{delayDuration:300,side:`left`,content:(0,U.jsx)(`div`,{className:`text-xs flex flex-col`,children:e.map(ye)}),children:(0,U.jsx)(ee,{className:`absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground`})})},n[20]=T,n[21]=L);let R=L,z=re===`dark`?`dark`:void 0,B;n[22]!==v||n[23]!==z?(B={theme:z,actions:v,mode:`vega-lite`,tooltip:ie.call,renderer:`canvas`},n[22]=v,n[23]=z,n[24]=B):B=n[24];let V;n[25]!==P||n[26]!==I||n[27]!==S||n[28]!==B?(V={ref:h,spec:S,options:B,onError:P,onEmbed:I},n[25]=P,n[26]=I,n[27]=S,n[28]=B,n[29]=V):V=n[29];let H=ae(V),W;n[30]===S?W=n[31]:(W=le(S),n[30]=S,n[31]=W);let G=W;fe(h,G===`container`);let K,q;n[32]!==H||n[33]!==M?(K=()=>(M.forEach(e=>{let{signalName:t,handler:n}=e;try{H?.view.addSignalListener(t,n)}catch(e){let t=e;o.error(t)}}),()=>{M.forEach(e=>{let{signalName:t,handler:n}=e;try{H?.view.removeSignalListener(t,n)}catch(e){let t=e;o.error(t)}})}),q=[H,M],n[32]=H,n[33]=M,n[34]=K,n[35]=q):(K=n[34],q=n[35]),(0,pe.useEffect)(K,q);let J;n[36]===g?J=n[37]:(J=g&&(0,U.jsxs)(se,{variant:`destructive`,children:[(0,U.jsx)(oe,{children:g.message}),(0,U.jsx)(`div`,{className:`text-md`,children:g.stack})]}),n[36]=g,n[37]=J);let Y,X;n[38]===Symbol.for(`react.memo_cache_sentinel`)?(Y=l(`relative`),X=f.stopPropagation(),n[38]=Y,n[39]=X):(Y=n[38],X=n[39]);let Z;n[40]===G?Z=n[41]:(Z=(0,U.jsx)(`div`,{ref:h,"data-container-width":G}),n[40]=G,n[41]=Z);let Q;n[42]===R?Q=n[43]:(Q=R(),n[42]=R,n[43]=Q);let $;n[44]!==Z||n[45]!==Q?($=(0,U.jsxs)(`div`,{className:Y,onPointerDown:X,children:[Z,Q]}),n[44]=Z,n[45]=Q,n[46]=$):$=n[46];let be;return n[47]!==J||n[48]!==$?(be=(0,U.jsxs)(U.Fragment,{children:[J,$]}),n[47]=J,n[48]=$,n[49]=be):be=n[49],be};function _e(e){return e instanceof Set?[...e]:e}function ve(e){return Array.isArray(e)?e.map(e=>e instanceof Date&&m(e)?new Date(e).getTime():e):e}function ye(e,t){return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`span`,{className:`font-bold tracking-wide`,children:[e[0],`:`]}),` `,e[1]]},t)}export{W as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,r as n,s as r,t as i}from"./precisionRound-Bq_nmf5u.js";import{i as a,n as o,r as s,t as c}from"./defaultLocale-CNPGWpMu.js";import{C as l,E as u,P as d,S as f,T as p,_ as m,a as ee,c as h,d as g,i as te,l as ne,n as re,o as ie,p as ae,r as oe,s as se,t as ce,v as le,w as ue,x as _,y as v}from"./defaultLocale-D5bOh7g6.js";function y(e,t,n){return Object.assign(e,{fields:t||[],fname:n})}function de(e){return e==null?null:e.fname}function fe(e){return e==null?null:e.fields}function pe(e){return e.length===1?me(e[0]):he(e)}var me=e=>function(t){return t[e]},he=e=>{let t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function b(e){throw Error(e)}function ge(e){let t=[],n=e.length,r=null,i=0,a=``,o,s,c;e+=``;function l(){t.push(a+e.substring(o,s)),a=``,o=s+1}for(o=s=0;s<n;++s)if(c=e[s],c===`\\`)a+=e.substring(o,s++),o=s;else if(c===r)l(),r=null,i=-1;else if(r)continue;else o===i&&c===`"`||o===i&&c===`'`?(o=s+1,r=c):c===`.`&&!i?s>o?l():o=s+1:c===`[`?(s>o&&l(),i=o=s+1):c===`]`&&(i||b(`Access path missing open bracket: `+e),i>0&&l(),i=0,o=s+1);return i&&b(`Access path missing closing bracket: `+e),r&&b(`Access path missing closing quote: `+e),s>o&&(s++,l()),t}function x(e,t,n){let r=ge(e),i=r.length===1?r[0]:e;return y((n&&n.get||pe)(r),[i],t||i)}var _e=x(`id`),ve=y(e=>e,[],`identity`),S=y(()=>0,[],`zero`),ye=y(()=>1,[],`one`),be=y(()=>!0,[],`true`),xe=y(()=>!1,[],`false`),Se=new Set([...Object.getOwnPropertyNames(Object.prototype).filter(e=>typeof Object.prototype[e]==`function`),`__proto__`,`then`]),C=Array.isArray;function w(e){return e===Object(e)}var Ce=e=>e!==`__proto__`&&e!==`constructor`&&e!==`prototype`;function we(...e){return e.reduce((e,t)=>{for(let n in t)if(n===`signals`)e.signals=Ee(e.signals,t.signals);else{let r=n===`legend`?{layout:1}:n===`style`||null;Te(e,n,t[n],r)}return e},{})}function Te(e,t,n,r){if(!Ce(t))return;let i=e,a,o;if(w(n)&&!C(n)){let e=n;for(a in o=w(i[t])?i[t]:i[t]={},e)r&&(r===!0||r[a])?Te(o,a,e[a]):Ce(a)&&(o[a]=e[a])}else i[t]=n}function Ee(e,t){if(e==null)return t;if(t==null)return e;let n={},r=[];function i(e){n[e.name]||(n[e.name]=1,r.push(e))}return t.forEach(i),e.forEach(i),r}function De(e){return e[e.length-1]}function Oe(e){return e==null||e===``?null:+e}function T(e){return e==null?[]:C(e)?e:[e]}function E(e){return typeof e==`function`}var ke=`descending`;function Ae(e,t,n){let r=n||{},i=T(t)||[],a=[],o=[],s={},c=r.comparator||Me;return T(e).forEach((e,t)=>{if(e==null)return;a.push(i[t]===ke?-1:1);let n=E(e)?e:x(e,void 0,r);o.push(n),(fe(n)||[]).forEach(e=>s[e]=1)}),o.length===0?null:y(c(o,a),Object.keys(s))}var je=(e,t)=>{let n=e,r=t;return(n<r||n==null)&&r!=null?-1:(n>r||r==null)&&n!=null?1:(r=r instanceof Date?+r:r,(n=n instanceof Date?+n:n)!==n&&r===r?-1:+(r!==r&&n===n))},Me=(e,t)=>e.length===1?Ne(e[0],t[0]):Pe(e,t,e.length),Ne=(e,t)=>function(n,r){return je(e(n),e(r))*t},Pe=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;o===0&&++s<n;)a=e[s],o=je(a(r),a(i));return o*t[s]});function Fe(e){return E(e)?e:()=>e}function D(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function O(e,t){return Object.hasOwn(e,t)}function Ie(e){return Object.prototype.toString.call(e)===`[object Date]`}function Le(e){return e!=null&&E(e[Symbol.iterator])}function Re(e){return typeof e==`number`}function k(e){return typeof e==`string`}function ze(e,t,n){let r=e?t?T(e).map(e=>e.replace(/\\(.)/g,`$1`)):T(e):void 0,i=r?.length,a=n&&n.get||pe,o=e=>a(t?[e]:ge(e)),s;if(!i||!r)s=function(){return``};else if(i===1){let e=o(r[0]);s=function(t){return``+e(t)}}else{let e=r.map(o);s=function(t){let n=``+e[0](t),r=0;for(;++r<i;)n+=`|`+e[r](t);return n}}return y(s,r,`key`)}function Be(e){return e&&De(e)-e[0]||0}function Ve(e){return C(e)?`[${e.map(e=>e===null?`null`:Ve(e))}]`:w(e)||k(e)?JSON.stringify(e).replaceAll(`\u2028`,`\\u2028`).replaceAll(`\u2029`,`\\u2029`):e}function He(e){return e==null||e===``?null:!e||e===`false`||e===`0`?!1:!!e}var Ue=e=>Re(e)||Ie(e)?e:Date.parse(e);function We(e,t){return t||=Ue,e==null||e===``?null:t(e)}function Ge(e){return e==null||e===``?null:e+``}function Ke(e){let t={},n=e.length;for(let r=0;r<n;++r)t[e[r]+``]=!0;return t}var qe={},Je={},Ye=34,A=10,Xe=13;function Ze(e){return Function(`d`,`return {`+e.map(function(e,t){return JSON.stringify(e)+`: d[`+t+`] || ""`}).join(`,`)+`}`)}function Qe(e,t){var n=Ze(e);return function(r,i){return t(n(r),i,e)}}function $e(e){var t=Object.create(null),n=[];return e.forEach(function(e){for(var r in e)r in t||n.push(t[r]=r)}),n}function j(e,t){var n=e+``,r=n.length;return r<t?Array(t-r+1).join(0)+n:n}function et(e){return e<0?`-`+j(-e,6):e>9999?`+`+j(e,6):j(e,4)}function tt(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?`Invalid Date`:et(e.getUTCFullYear(),4)+`-`+j(e.getUTCMonth()+1,2)+`-`+j(e.getUTCDate(),2)+(i?`T`+j(t,2)+`:`+j(n,2)+`:`+j(r,2)+`.`+j(i,3)+`Z`:r?`T`+j(t,2)+`:`+j(n,2)+`:`+j(r,2)+`Z`:n||t?`T`+j(t,2)+`:`+j(n,2)+`Z`:``)}function nt(e){var t=RegExp(`["`+e+`
|
|
2
|
-
\r]`),n=e.charCodeAt(0);function r(e,t){var n,r,a=i(e,function(e,i){if(n)return n(e,i-1);r=e,n=t?Qe(e,t):Ze(e)});return a.columns=r||[],a}function i(e,t){var r=[],i=e.length,a=0,o=0,s,c=i<=0,l=!1;e.charCodeAt(i-1)===A&&--i,e.charCodeAt(i-1)===Xe&&--i;function u(){if(c)return Je;if(l)return l=!1,qe;var t,r=a,o;if(e.charCodeAt(r)===Ye){for(;a++<i&&e.charCodeAt(a)!==Ye||e.charCodeAt(++a)===Ye;);return(t=a)>=i?c=!0:(o=e.charCodeAt(a++))===A?l=!0:o===Xe&&(l=!0,e.charCodeAt(a)===A&&++a),e.slice(r+1,t-1).replace(/""/g,`"`)}for(;a<i;){if((o=e.charCodeAt(t=a++))===A)l=!0;else if(o===Xe)l=!0,e.charCodeAt(a)===A&&++a;else if(o!==n)continue;return e.slice(r,t)}return c=!0,e.slice(r,i)}for(;(s=u())!==Je;){for(var d=[];s!==qe&&s!==Je;)d.push(s),s=u();t&&(d=t(d,o++))==null||r.push(d)}return r}function a(t,n){return t.map(function(t){return n.map(function(e){return u(t[e])}).join(e)})}function o(t,n){return n??=$e(t),[n.map(u).join(e)].concat(a(t,n)).join(`
|
|
3
|
-
`)}function s(e,t){return t??=$e(e),a(e,t).join(`
|
|
4
|
-
`)}function c(e){return e.map(l).join(`
|
|
5
|
-
`)}function l(t){return t.map(u).join(e)}function u(e){return e==null?``:e instanceof Date?tt(e):t.test(e+=``)?`"`+e.replace(/"/g,`""`)+`"`:e}return{parse:r,parseRows:i,format:o,formatBody:s,formatRows:c,formatRow:l,formatValue:u}}function rt(e){return e}function it(e){if(e==null)return rt;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(e,s){s||(t=n=0);var c=2,l=e.length,u=Array(l);for(u[0]=(t+=e[0])*r+a,u[1]=(n+=e[1])*i+o;c<l;)u[c]=e[c],++c;return u}}function at(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}function ot(e,t){return typeof t==`string`&&(t=e.objects[t]),t.type===`GeometryCollection`?{type:`FeatureCollection`,features:t.geometries.map(function(t){return st(e,t)})}:st(e,t)}function st(e,t){var n=t.id,r=t.bbox,i=t.properties==null?{}:t.properties,a=ct(e,t);return n==null&&r==null?{type:`Feature`,properties:i,geometry:a}:r==null?{type:`Feature`,id:n,properties:i,geometry:a}:{type:`Feature`,id:n,bbox:r,properties:i,geometry:a}}function ct(e,t){var n=it(e.transform),r=e.arcs;function i(e,t){t.length&&t.pop();for(var i=r[e<0?~e:e],a=0,o=i.length;a<o;++a)t.push(n(i[a],a));e<0&&at(t,o)}function a(e){return n(e)}function o(e){for(var t=[],n=0,r=e.length;n<r;++n)i(e[n],t);return t.length<2&&t.push(t[0]),t}function s(e){for(var t=o(e);t.length<4;)t.push(t[0]);return t}function c(e){return e.map(s)}function l(e){var t=e.type,n;switch(t){case`GeometryCollection`:return{type:t,geometries:e.geometries.map(l)};case`Point`:n=a(e.coordinates);break;case`MultiPoint`:n=e.coordinates.map(a);break;case`LineString`:n=o(e.arcs);break;case`MultiLineString`:n=e.arcs.map(o);break;case`Polygon`:n=c(e.arcs);break;case`MultiPolygon`:n=e.arcs.map(c);break;default:return null}return{type:t,coordinates:n}}return l(t)}function lt(e,t){var n={},r={},i={},a=[],o=-1;t.forEach(function(n,r){var i=e.arcs[n<0?~n:n],a;i.length<3&&!i[1][0]&&!i[1][1]&&(a=t[++o],t[o]=n,t[r]=a)}),t.forEach(function(e){var t=s(e),n=t[0],a=t[1],o,c;if(o=i[n]){if(delete i[o.end],o.push(e),o.end=a,c=r[a]){delete r[c.start];var l=c===o?o:o.concat(c);r[l.start=o.start]=i[l.end=c.end]=l}else r[o.start]=i[o.end]=o}else if(o=r[a]){if(delete r[o.start],o.unshift(e),o.start=n,c=i[n]){delete i[c.end];var u=c===o?o:c.concat(o);r[u.start=c.start]=i[u.end=o.end]=u}else r[o.start]=i[o.end]=o}else o=[e],r[o.start=n]=i[o.end=a]=o});function s(t){var n=e.arcs[t<0?~t:t],r=n[0],i;return e.transform?(i=[0,0],n.forEach(function(e){i[0]+=e[0],i[1]+=e[1]})):i=n[n.length-1],t<0?[i,r]:[r,i]}function c(e,t){for(var r in e){var i=e[r];delete t[i.start],delete i.start,delete i.end,i.forEach(function(e){n[e<0?~e:e]=1}),a.push(i)}}return c(i,r),c(r,i),t.forEach(function(e){n[e<0?~e:e]||a.push([e])}),a}function ut(e){return ct(e,dt.apply(this,arguments))}function dt(e,t,n){var r,i,a;if(arguments.length>1)r=ft(e,t,n);else for(i=0,r=Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:`MultiLineString`,arcs:lt(e,r)}}function ft(e,t,n){var r=[],i=[],a;function o(e){var t=e<0?~e:e;(i[t]||(i[t]=[])).push({i:e,g:a})}function s(e){e.forEach(o)}function c(e){e.forEach(s)}function l(e){e.forEach(c)}function u(e){switch(a=e,e.type){case`GeometryCollection`:e.geometries.forEach(u);break;case`LineString`:s(e.arcs);break;case`MultiLineString`:case`Polygon`:c(e.arcs);break;case`MultiPolygon`:l(e.arcs)}}return u(t),i.forEach(n==null?function(e){r.push(e[0].i)}:function(e){n(e[0].g,e[e.length-1].g)&&r.push(e[0].i)}),r}var M=`year`,N=`quarter`,P=`month`,F=`week`,I=`isoweek`,L=`date`,R=`dayofyear`,z=`hours`,B=`minutes`,V=`seconds`,H=`milliseconds`,pt=[M,N,P,F,I,L,`day`,R,z,B,V,H],mt=pt.reduce((e,t,n)=>(e[t]=1+n,e),{});function ht(e){let t=T(e).slice(),n={};return t.length||b(`Missing time unit.`),t.forEach(e=>{O(mt,e)?n[e]=1:b(`Invalid time unit: ${e}.`)}),((n.week||n.isoweek||n.day?1:0)+(n.quarter||n.month||n.date?1:0)+ +!!n.dayofyear>1||n.week&&n.isoweek)&&b(`Incompatible time units: ${e}`),t.sort((e,t)=>mt[e]-mt[t]),t}var gt={[M]:`%Y `,[N]:`Q%q `,[P]:`%b `,[L]:`%d `,[F]:`W%U `,[I]:`W%V `,day:`%a `,[R]:`%j `,[z]:`%H:00`,[B]:`00:%M`,[V]:`:%S`,[H]:`.%L`,[`${M}-${I}`]:`%G W%V `,[`${M}-${P}`]:`%Y-%m `,[`${M}-${P}-${L}`]:`%Y-%m-%d `,[`${z}-${B}`]:`%H:%M`};function _t(e,t){let n=D({},gt,t),r=ht(e),i=r.length,a=``,o=0,s,c;for(o=0;o<i;)for(s=r.length;s>o;--s)if(c=r.slice(o,s).join(`-`),n[c]!=null){a+=n[c],o=s;break}return a.trim()}var U=new Date;function vt(e){return U.setFullYear(e),U.setMonth(0),U.setDate(1),U.setHours(0,0,0,0),U}function yt(e){return St(new Date(e))}function bt(e){return Ct(new Date(e))}function xt(e){return Tt(new Date(e))}function St(e){return v.count(vt(e.getFullYear())-1,e)}function Ct(e){return ae.count(vt(e.getFullYear())-1,e)}function wt(e){return v.offset(g.floor(e),3).getFullYear()}function Tt(e){return 1+g.count(Et(wt(e)),e)}function Et(e){return g.floor(v.offset(vt(e),3))}function Dt(e){let t=Et(e);return t.getMonth()?t.getDate()-31:t.getDate()}function Ot(e){return vt(e).getDay()}function kt(e,t,n,r,i,a,o){if(0<=e&&e<100){let s=new Date(-1,t,n,r,i,a,o);return s.setFullYear(e),s}return new Date(e,t,n,r,i,a,o)}function At(e){return Nt(new Date(e))}function jt(e){return Pt(new Date(e))}function Mt(e){return It(new Date(e))}function Nt(e){let t=Date.UTC(e.getUTCFullYear(),0,1);return _.count(t-1,e)}function Pt(e){let t=Date.UTC(e.getUTCFullYear(),0,1);return le.count(t-1,e)}function Ft(e){return _.offset(m.floor(e),3).getUTCFullYear()}function It(e){return 1+m.count(Lt(Ft(e)),e)}function Lt(e){return m.floor(_.offset(Date.UTC(e,0,1),3))}function Rt(e){let t=Lt(e);return t.getUTCMonth()?t.getUTCDate()-31:t.getUTCDate()}function zt(e){return U.setTime(Date.UTC(e,0,1)),U.getUTCDay()}function Bt(e,t,n,r,i,a,o){if(0<=e&&e<100){let e=new Date(Date.UTC(-1,t,n,r,i,a,o));return e.setUTCFullYear(n.y),e}return new Date(Date.UTC(e,t,n,r,i,a,o))}var Vt=2012,Ht=2015;function Ut(e,t,n,r,i){let a=t||1,o=De(e),s=(e,t,i)=>(i||=e,Wt(n[i],r[i],e===o&&a,t)),c=new Date,l=Ke(e),u=l.year?s(M,null,l.isoweek?M+I:M):Fe(l.isoweek?Ht:Vt),d=l.month?s(P):l.quarter?s(N):S,f=l.week&&l.day?s(`day`,1,F+`day`):l.isoweek&&l.day?s(`day`,1,I+`day`):l.week?s(F,1):l.isoweek?s(I,1):l.day?s(`day`,1):l.date?s(L,1):l.dayofyear?s(R,1):ye,p=l.hours?s(z):S,m=l.minutes?s(B):S,ee=l.seconds?s(V):S,h=l.milliseconds?s(H):S;return function(e){c.setTime(+e);let t=u(c);return i(t,d(c),f(c,t),p(c),m(c),ee(c),h(c))}}function Wt(e,t,n,r){let i=n<=1?e:r?(t,i)=>r+n*Math.floor((e(t,i)-r)/n):(t,r)=>n*Math.floor(e(t,r)/n);return t?(e,n)=>t(i(e,n),n):i}function W(e,t,n){return t+e*7-(n+6)%7}function Gt(e){return(e+6)%7}function Kt(e,t,n){return e+(t-1)*7+n}var qt={[M]:e=>e.getFullYear(),[N]:e=>Math.floor(e.getMonth()/3),[P]:e=>e.getMonth(),[L]:e=>e.getDate(),[z]:e=>e.getHours(),[B]:e=>e.getMinutes(),[V]:e=>e.getSeconds(),[H]:e=>e.getMilliseconds(),[R]:e=>St(e),[F]:e=>Ct(e),[F+`day`]:(e,t)=>W(Ct(e),e.getDay(),Ot(t)),day:(e,t)=>W(1,e.getDay(),Ot(t)),[I]:e=>Tt(e),[M+I]:e=>wt(e),[I+`day`]:(e,t)=>Kt(Dt(t),Tt(e),Gt(e.getDay()))},Jt={[N]:e=>3*e,[F]:(e,t)=>W(e,0,Ot(t)),[I]:(e,t)=>Kt(Dt(t),e,0)};function Yt(e,t){return Ut(e,t||1,qt,Jt,kt)}var Xt={[M]:e=>e.getUTCFullYear(),[N]:e=>Math.floor(e.getUTCMonth()/3),[P]:e=>e.getUTCMonth(),[L]:e=>e.getUTCDate(),[z]:e=>e.getUTCHours(),[B]:e=>e.getUTCMinutes(),[V]:e=>e.getUTCSeconds(),[H]:e=>e.getUTCMilliseconds(),[R]:e=>Nt(e),[F]:e=>Pt(e),day:(e,t)=>W(1,e.getUTCDay(),zt(t)),[F+`day`]:(e,t)=>W(Pt(e),e.getUTCDay(),zt(t)),[I]:e=>It(e),[M+I]:e=>Ft(e),[I+`day`]:(e,t)=>Kt(Rt(t),It(e),Gt(e.getUTCDay()))},Zt={[N]:e=>3*e,[F]:(e,t)=>W(e,0,zt(t)),[I]:(e,t)=>Kt(Rt(t),e,0)};function Qt(e,t){return Ut(e,t||1,Xt,Zt,Bt)}var $t={[M]:ie,[N]:h.every(3),[P]:h,[F]:ae,[I]:g,[L]:v,day:v,[R]:v,[z]:f,[B]:ue,[V]:u,[H]:d},en={[M]:se,[N]:ne.every(3),[P]:ne,[F]:le,[I]:m,[L]:_,day:_,[R]:_,[z]:l,[B]:p,[V]:u,[H]:d};function tn(e){return $t[e]}function nn(e){return en[e]}function rn(e,t,n){return e?e.offset(t,n):void 0}function an(e,t,n){return rn(tn(e),t,n)}function on(e,t,n){return rn(nn(e),t,n)}function sn(e,t,n,r){return e?e.range(t,n,r):void 0}function cn(e,t,n,r){return sn(tn(e),t,n,r)}function ln(e,t,n,r){return sn(nn(e),t,n,r)}var G=1e3,K=G*60,q=K*60,un=q*24,dn=un*7,fn=un*30,pn=un*365,mn=[M,P,L,z,B,V,H],J=mn.slice(0,-1),Y=J.slice(0,-1),X=Y.slice(0,-1),hn=X.slice(0,-1),gn=[M,F],_n=[M,P],vn=[M],Z=[[J,1,G],[J,5,5*G],[J,15,15*G],[J,30,30*G],[Y,1,K],[Y,5,5*K],[Y,15,15*K],[Y,30,30*K],[X,1,q],[X,3,3*q],[X,6,6*q],[X,12,12*q],[hn,1,un],[gn,1,dn],[_n,1,fn],[_n,3,3*fn],[vn,1,pn]];function yn(t){let n=t.extent,i=t.maxbins||40,a=Math.abs(Be(n))/i,o=r(e=>e[2]).right(Z,a),s,c;return o===Z.length?(s=vn,c=e(n[0]/pn,n[1]/pn,i)):o?(o=Z[a/Z[o-1][2]<Z[o][2]/a?o-1:o],s=o[0],c=o[1]):(s=mn,c=Math.max(e(n[0],n[1],i),1)),{units:s,step:c}}function Q(e){let t={};return n=>t[n]||(t[n]=e(n))}function bn(e,t){return n=>{let r=e(n),i=r.indexOf(t);if(i<0)return r;let a=xn(r,i),o=a<r.length?r.slice(a):``;for(;--a>i;)if(r[a]!==`0`){++a;break}return r.slice(0,a)+o}}function xn(e,t){let n=e.lastIndexOf(`e`),r;if(n>0)return n;for(n=e.length;--n>t;)if(r=e.charCodeAt(n),r>=48&&r<=57)return n+1}function Sn(r){let o=Q(r.format),s=r.formatPrefix;return{format:o,formatPrefix:s,formatFloat(e){let t=a(e||`,`);if(t.precision==null){switch(t.precision=12,t.type){case`%`:t.precision-=2;break;case`e`:--t.precision}return bn(o(t),o(`.1f`)(1)[1])}return o(t)},formatSpan(r,c,l,u){u=a(u??`,f`);let d=e(r,c,l),f=Math.max(Math.abs(r),Math.abs(c)),p;if(u.precision==null)switch(u.type){case`s`:return isNaN(p=t(d,f))||(u.precision=p),s(u,f);case``:case`e`:case`g`:case`p`:case`r`:isNaN(p=i(d,f))||(u.precision=p-(u.type===`e`));break;case`f`:case`%`:isNaN(p=n(d))||(u.precision=p-(u.type===`%`)*2)}return o(u)}}}var Cn;wn();function wn(){return Cn=Sn({format:c,formatPrefix:o})}function Tn(e){return Sn(s(e))}function En(e){return arguments.length?Cn=Tn(e):Cn}function Dn(e,t,n){n||={},w(n)||b(`Invalid time multi-format specifier: ${n}`);let r=t(V),i=t(B),a=t(z),o=t(L),s=t(F),c=t(P),l=t(N),u=t(M),d=e(n.milliseconds||`.%L`),f=e(n.seconds||`:%S`),p=e(n.minutes||`%I:%M`),m=e(n.hours||`%I %p`),ee=e(n.date||n.day||`%a %d`),h=e(n.week||`%b %d`),g=e(n.month||`%B`),te=e(n.quarter||`%B`),ne=e(n.year||`%Y`);return e=>(r(e)<e?d:i(e)<e?f:a(e)<e?p:o(e)<e?m:c(e)<e?s(e)<e?ee:h:u(e)<e?l(e)<e?g:te:ne)(e)}function On(e){let t=Q(e.format),n=Q(e.utcFormat);return{timeFormat:e=>k(e)?t(e):Dn(t,tn,e),utcFormat:e=>k(e)?n(e):Dn(n,nn,e),timeParse:Q(e.parse),utcParse:Q(e.utcParse)}}var kn;An();function An(){return kn=On({format:ce,parse:re,utcFormat:oe,utcParse:te})}function jn(e){return On(ee(e))}function $(e){return arguments.length?kn=jn(e):kn}var Mn=(e,t)=>D({},e,t);function Nn(e,t){return Mn(e?Tn(e):En(),t?jn(t):$())}function Pn(e,t){let n=arguments.length;return n&&n!==2&&b(`defaultLocale expects either zero or two arguments.`),n?Mn(En(e),$(t)):Mn(En(),$())}function Fn(){return wn(),An(),Pn()}var In=/^(data:|([A-Za-z]+:)?\/\/)/,Ln=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Rn=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,zn=`file://`;function Bn(e){return t=>({options:t||{},sanitize:Hn,load:Vn,fileAccess:!1,file:Un(e),http:Gn})}async function Vn(e,t){let n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t?.http)}async function Hn(e,t){t=D({},this.options,t);let n=this.fileAccess,r={href:null},i,a,o,s=Ln.test(e.replace(Rn,``));(e==null||typeof e!=`string`||!s)&&b(`Sanitize failure, invalid URI: `+Ve(e));let c=In.test(e);return(o=t.baseURL)&&!c&&(!e.startsWith(`/`)&&!o.endsWith(`/`)&&(e=`/`+e),e=o+e),a=(i=e.startsWith(zn))||t.mode===`file`||t.mode!==`http`&&!c&&n,i?e=e.slice(7):e.startsWith(`//`)&&(t.defaultProtocol===`file`?(e=e.slice(2),a=!0):e=(t.defaultProtocol||`http`)+`:`+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+``),t.rel&&(r.rel=t.rel+``),t.context===`image`&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+``),r}function Un(e){return e?t=>new Promise((n,r)=>{e.readFile(t,(e,t)=>{e?r(e):n(t)})}):Wn}async function Wn(){b(`No file system access.`)}async function Gn(e,t){let n=D({},this.options.http,t),r=t&&t.response,i=await fetch(e,n);return i.ok?E(i[r])?i[r]():i.text():b(i.status+``+i.statusText)}var Kn=e=>e!=null&&e===e,qn=e=>e===`true`||e===`false`||e===!0||e===!1,Jn=e=>!Number.isNaN(Date.parse(e)),Yn=e=>!Number.isNaN(+e)&&!(e instanceof Date),Xn=e=>Yn(e)&&Number.isInteger(+e),Zn={boolean:He,integer:Oe,number:Oe,date:We,string:Ge,unknown:ve},Qn=[qn,Xn,Yn,Jn],$n=[`boolean`,`integer`,`number`,`date`];function er(e,t){if(!e||!e.length)return`unknown`;let n=e.length,r=Qn.length,i=Qn.map((e,t)=>t+1);for(let a=0,o=0,s,c;a<n;++a)for(c=t?e[a][t]:e[a],s=0;s<r;++s)if(i[s]&&Kn(c)&&!Qn[s](c)&&(i[s]=0,++o,o===Qn.length))return`string`;return $n[i.reduce((e,t)=>e===0?t:e,0)-1]}function tr(e,t){return t.reduce((t,n)=>(t[n]=er(e,n),t),{})}function nr(e){let t=function(t,n){let r={delimiter:e};return rr(t,n?D(n,r):r)};return t.responseType=`text`,t}function rr(e,t){return t.header&&(e=t.header.map(Ve).join(t.delimiter)+`
|
|
6
|
-
`+e),nt(t.delimiter).parse(e+``)}rr.responseType=`text`;function ir(e){return typeof Buffer==`function`&&E(Buffer.isBuffer)?Buffer.isBuffer(e):!1}function ar(e,t){let n=t&&t.property?x(t.property):ve;return w(e)&&!ir(e)?or(n(e),t):n(JSON.parse(e))}ar.responseType=`json`;function or(e,t){return!C(e)&&Le(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}var sr={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function cr(e,t){let n,r,i,a;return e=ar(e,t),t&&t.feature?(n=ot,i=t.feature):t&&t.mesh?(n=ut,i=t.mesh,a=sr[t.filter]):b(`Missing TopoJSON feature or mesh parameter.`),r=(r=e.objects[i])?n(e,r,a):b(`Invalid TopoJSON object: `+i),r&&r.features||[r]}cr.responseType=`json`;var lr={dsv:rr,csv:nr(`,`),tsv:nr(` `),json:ar,topojson:cr};function ur(e,t){return arguments.length>1?(lr[e]=t,this):O(lr,e)?lr[e]:null}function dr(e){let t=ur(e);return t&&t.responseType||`text`}function fr(e,t,n,r){t||={};let i=ur(t.type||`json`);return i||b(`Unknown data format type: `+t.type),e=i(e,t),t.parse&&pr(e,t.parse,n,r),O(e,`columns`)&&delete e.columns,e}function pr(e,t,n,r){if(!e.length)return;let i=$();n||=i.timeParse,r||=i.utcParse;let a=e.columns||Object.keys(e[0]),o,s,c,l,u,d;t===`auto`&&(t=tr(e,a)),a=Object.keys(t);let f=a.map(e=>{let i=t[e],a,o;if(i&&(i.startsWith(`date:`)||i.startsWith(`utc:`)))return a=i.split(/:(.+)?/,2),o=a[1],(o[0]===`'`&&o[o.length-1]===`'`||o[0]===`"`&&o[o.length-1]===`"`)&&(o=o.slice(1,-1)),(a[0]===`utc`?r:n)(o);if(!Zn[i])throw Error(`Illegal format pattern: `+e+`:`+i);return Zn[i]});for(c=0,u=e.length,d=a.length;c<u;++c)for(o=e[c],l=0;l<d;++l)s=a[l],o[s]=f[l](o[s])}var mr=Bn(null);export{Te as $,jt as A,Re as B,ht as C,ln as D,on as E,He as F,Fe as G,Ie as H,Ve as I,E as J,je as K,Be as L,Ke as M,Ge as N,At as O,We as P,we as Q,ze as R,_t as S,nn as T,O as U,Le as V,D as W,Oe as X,T as Y,De as Z,xt as _,mr as a,ve as at,an as b,Zn as c,S as ct,En as d,b as dt,w as et,Fn as f,y as ft,yt as g,yn as h,tr as i,_e as it,bt as j,Mt as k,Pn as l,x as lt,pt as m,de as mt,ur as n,Se as nt,fr as o,ye as ot,$ as p,fe as pt,Ae as q,er as r,xe as rt,dr as s,be as st,lr as t,C as tt,Nn as u,ge as ut,Yt as v,Qt as w,cn as x,tn as y,k as z};
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
-
|
|
3
|
-
import NodeFs from "node:fs";
|
|
4
|
-
import NodeUrl from "node:url";
|
|
5
|
-
import { describe, expect, expectTypeOf, it } from "vitest";
|
|
6
|
-
import * as Protocol from "../protocol";
|
|
7
|
-
|
|
8
|
-
const fixtures = new NodeUrl.URL(
|
|
9
|
-
"../../../../../protocols/host/fixtures/",
|
|
10
|
-
import.meta.url,
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
function readFixture(name: string): unknown {
|
|
14
|
-
return JSON.parse(
|
|
15
|
-
NodeFs.readFileSync(new NodeUrl.URL(name, fixtures), "utf8"),
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const records = {
|
|
20
|
-
"record.json": Protocol.HostRecord,
|
|
21
|
-
"cell.json": Protocol.Cell,
|
|
22
|
-
"analysis.json": Protocol.Analysis,
|
|
23
|
-
"diagnostic.json": Protocol.Error,
|
|
24
|
-
"edit.json": Protocol.EditRequest,
|
|
25
|
-
"edit-conflict-request.json": Protocol.EditRequest,
|
|
26
|
-
"edit-response.json": Protocol.EditResponse,
|
|
27
|
-
"execution-restored.json": Protocol.Execution,
|
|
28
|
-
"run-cells-request.json": Protocol.RunRequest,
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
describe("host protocol fixtures", () => {
|
|
32
|
-
it.each(Object.entries(records))("parses %s unchanged", (name, schema) => {
|
|
33
|
-
const input = readFixture(name);
|
|
34
|
-
const original = structuredClone(input);
|
|
35
|
-
expect(schema.parse(input)).toEqual(original);
|
|
36
|
-
expect(input).toEqual(original);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it.each(NodeFs.readdirSync(new NodeUrl.URL("problems/", fixtures)))(
|
|
40
|
-
"parses problem %s",
|
|
41
|
-
(name) => {
|
|
42
|
-
const input = readFixture(`problems/${name}`);
|
|
43
|
-
expect(Protocol.Problem.parse(input)).toEqual(input);
|
|
44
|
-
},
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
it.each(NodeFs.readdirSync(fixtures).filter((name) => name.endsWith(".sse")))(
|
|
48
|
-
"parses events in %s unchanged",
|
|
49
|
-
(name) => {
|
|
50
|
-
const stream = NodeFs.readFileSync(
|
|
51
|
-
new NodeUrl.URL(name, fixtures),
|
|
52
|
-
"utf8",
|
|
53
|
-
);
|
|
54
|
-
let count = 0;
|
|
55
|
-
for (const frame of stream.split(/\r?\n\r?\n/)) {
|
|
56
|
-
const event = /^event: (.+)$/m.exec(frame)?.[1];
|
|
57
|
-
if (!event && !/^data:/m.test(frame)) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
const data = frame
|
|
61
|
-
.split(/\r?\n/)
|
|
62
|
-
.filter((line) => line.startsWith("data:"))
|
|
63
|
-
.map((line) => line.slice(5).trimStart())
|
|
64
|
-
.join("\n");
|
|
65
|
-
const id = /^id: (.+)$/m.exec(frame)?.[1];
|
|
66
|
-
const payload: unknown = JSON.parse(data);
|
|
67
|
-
const input = { event, data: payload, ...(id ? { id } : {}) };
|
|
68
|
-
const original = structuredClone(input);
|
|
69
|
-
expect(Protocol.Event.parse(input)).toEqual(original);
|
|
70
|
-
expect(input).toEqual(original);
|
|
71
|
-
count += 1;
|
|
72
|
-
}
|
|
73
|
-
expect(count).toBeGreaterThan(0);
|
|
74
|
-
},
|
|
75
|
-
);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
describe("host protocol bindings", () => {
|
|
79
|
-
it("preserves native marimo payloads without interpreting them", () => {
|
|
80
|
-
expectTypeOf<Protocol.MarimoEvent["data"]["marimo"]>().toBeUnknown();
|
|
81
|
-
const input = {
|
|
82
|
-
event: "marimo",
|
|
83
|
-
id: "42",
|
|
84
|
-
data: {
|
|
85
|
-
marimo: {
|
|
86
|
-
future_payload: { value: Number.NaN },
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
expect(Protocol.Event.parse(input)).toEqual(input);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
it("accepts additive fields and preserves arbitrary notebook settings", () => {
|
|
94
|
-
const cell = Protocol.Cell.parse(readFixture("cell.json"));
|
|
95
|
-
const input = {
|
|
96
|
-
...cell,
|
|
97
|
-
future: { enabled: true },
|
|
98
|
-
config: { ...cell.config, future: 42 },
|
|
99
|
-
};
|
|
100
|
-
const original = structuredClone(input);
|
|
101
|
-
expect(Protocol.Cell.parse(input)).toEqual(cell);
|
|
102
|
-
expect(input).toEqual(original);
|
|
103
|
-
|
|
104
|
-
const { document } = Protocol.EditResponse.parse(
|
|
105
|
-
readFixture("edit-response.json"),
|
|
106
|
-
);
|
|
107
|
-
const configured = {
|
|
108
|
-
...document,
|
|
109
|
-
app_config: { extension: { values: [1, null, false] } },
|
|
110
|
-
};
|
|
111
|
-
expect(Protocol.Document.parse(configured)).toEqual(configured);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it("applies the defaults declared for cell inputs", () => {
|
|
115
|
-
expect(
|
|
116
|
-
Protocol.CellInput.parse({ id: "c3", code: "x = 1", config: {} }),
|
|
117
|
-
).toEqual({
|
|
118
|
-
id: "c3",
|
|
119
|
-
code: "x = 1",
|
|
120
|
-
name: "_",
|
|
121
|
-
config: {
|
|
122
|
-
column: null,
|
|
123
|
-
disabled: false,
|
|
124
|
-
hide_code: false,
|
|
125
|
-
expand_output: false,
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
it.each(["run_id", "runtime_id", "caused_by"] as const)(
|
|
131
|
-
"requires the nullable execution field %s",
|
|
132
|
-
(field) => {
|
|
133
|
-
const execution = Protocol.Execution.parse(
|
|
134
|
-
readFixture("execution-restored.json"),
|
|
135
|
-
);
|
|
136
|
-
const missing = Object.fromEntries(
|
|
137
|
-
Object.entries(execution).filter(([key]) => key !== field),
|
|
138
|
-
);
|
|
139
|
-
expect(Protocol.Execution.safeParse(missing).success).toBe(false);
|
|
140
|
-
expect(
|
|
141
|
-
Protocol.Execution.safeParse({ ...execution, [field]: null }).success,
|
|
142
|
-
).toBe(true);
|
|
143
|
-
},
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
it("preserves snapshot metadata omissions and validates live timestamps", () => {
|
|
147
|
-
const cell = Protocol.Cell.parse(readFixture("cell.json"));
|
|
148
|
-
expect(Protocol.CellMessage.parse({ cell })).toEqual({ cell });
|
|
149
|
-
const message = { cell, time: "2026-01-01T12:00:00+05:30" };
|
|
150
|
-
expect(Protocol.CellMessage.parse(message)).toEqual(message);
|
|
151
|
-
for (const time of [
|
|
152
|
-
null,
|
|
153
|
-
"yesterday",
|
|
154
|
-
"2026-02-30T12:00:00Z",
|
|
155
|
-
"2026-01-01T12:00:00",
|
|
156
|
-
]) {
|
|
157
|
-
expect(Protocol.CellMessage.safeParse({ cell, time }).success).toBe(
|
|
158
|
-
false,
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
it("rejects invalid cell fields without coercing their values", () => {
|
|
164
|
-
const cell = Protocol.Cell.parse(readFixture("cell.json"));
|
|
165
|
-
for (const patch of [
|
|
166
|
-
{ id: "" },
|
|
167
|
-
{ code: 42 },
|
|
168
|
-
{ etag: 42 },
|
|
169
|
-
{ version: "2" },
|
|
170
|
-
{ version: 0 },
|
|
171
|
-
{ version: 1.5 },
|
|
172
|
-
{ config: { ...cell.config, disabled: "false" } },
|
|
173
|
-
]) {
|
|
174
|
-
expect(Protocol.Cell.safeParse({ ...cell, ...patch }).success).toBe(
|
|
175
|
-
false,
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
const result = Protocol.Cell.safeParse({ ...cell, code: 42 });
|
|
179
|
-
expect(result.success).toBe(false);
|
|
180
|
-
if (result.success) {
|
|
181
|
-
throw new Error("Expected an invalid cell");
|
|
182
|
-
}
|
|
183
|
-
expect(result.error.issues).toEqual([
|
|
184
|
-
expect.objectContaining({ path: ["code"], code: "invalid_type" }),
|
|
185
|
-
]);
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
it("requires the fields of the selected change kind", () => {
|
|
189
|
-
const change = { kind: "delete_cell", id: "c3", base_etag: "*" };
|
|
190
|
-
expect(Protocol.Change.parse(change)).toEqual(change);
|
|
191
|
-
expect(
|
|
192
|
-
Protocol.Change.safeParse({ kind: "delete_cell", id: "c3" }).success,
|
|
193
|
-
).toBe(false);
|
|
194
|
-
expect(
|
|
195
|
-
Protocol.Change.safeParse({ ...change, kind: "unknown" }).success,
|
|
196
|
-
).toBe(false);
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
it("requires custom payloads while allowing any JSON value", () => {
|
|
200
|
-
for (const data of [
|
|
201
|
-
null,
|
|
202
|
-
false,
|
|
203
|
-
42,
|
|
204
|
-
"text",
|
|
205
|
-
{ nested: [1, null, false] },
|
|
206
|
-
]) {
|
|
207
|
-
const custom = { type: "example.event", data };
|
|
208
|
-
expect(Protocol.Custom.parse(custom)).toEqual(custom);
|
|
209
|
-
}
|
|
210
|
-
expect(Protocol.Custom.safeParse({ type: "example.event" }).success).toBe(
|
|
211
|
-
false,
|
|
212
|
-
);
|
|
213
|
-
});
|
|
214
|
-
});
|