@marimo-team/frontend 0.22.1-dev2 → 0.22.1-dev21
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/{ConnectedDataExplorerComponent-BhOfvmd2.js → ConnectedDataExplorerComponent-Bgd8MpO7.js} +1 -1
- package/dist/assets/{JsonOutput-DK6QFpxq.js → JsonOutput-CYRewW_n.js} +10 -10
- package/dist/assets/{add-cell-with-ai-C9CXMDL-.js → add-cell-with-ai-CJL5NwHh.js} +24 -24
- package/dist/assets/{add-connection-dialog-uUw1BwGd.js → add-connection-dialog-_oI2JBU2.js} +1 -1
- package/dist/assets/{agent-panel-CKXYOD10.js → agent-panel-frCoZBMf.js} +1 -1
- package/dist/assets/ai-model-dropdown-CMj49xMg.js +5 -0
- package/dist/assets/{app-config-button-B4_Fzop6.js → app-config-button-DCVf5Azv.js} +1 -1
- package/dist/assets/{cell-editor-DsXpgc4r.js → cell-editor-nJeqD5Xq.js} +1 -1
- package/dist/assets/{chat-display-CRKEYeok.js → chat-display-DnlV-Vjp.js} +1 -1
- package/dist/assets/chat-panel-BrH9Bycd.js +3 -0
- package/dist/assets/{chat-ui-CQB2SbzK.js → chat-ui-gEEIyfNV.js} +1 -1
- package/dist/assets/{column-preview-CWOsM3UD.js → column-preview-PiH54hAW.js} +1 -1
- package/dist/assets/{command-palette-BXM1GCVc.js → command-palette-CrC7ohqO.js} +1 -1
- package/dist/assets/{edit-page-BXQVe56n.js → edit-page-idaINdSX.js} +7 -7
- package/dist/assets/{file-explorer-panel-QFaPxpp8.js → file-explorer-panel-sS4HTA69.js} +1 -1
- package/dist/assets/{form-CoRP5wCe.js → form-B-BLUzr3.js} +1 -1
- package/dist/assets/{formats-C_TavbEL.js → formats-N7VZhahg.js} +1 -1
- package/dist/assets/{home-page-GHJ3-S70.js → home-page-Lm5CjxXF.js} +1 -1
- package/dist/assets/{hooks-CfqzfU-0.js → hooks-ChIFqb9W.js} +1 -1
- package/dist/assets/index-CCazW2UV.css +2 -0
- package/dist/assets/index-eeNpwqOH.js +35 -0
- package/dist/assets/{layout-FSEZfgnG.js → layout-BlYB96ph.js} +1 -1
- package/dist/assets/{markdown-renderer-wLZT8no0.js → markdown-renderer-CYb9pckL.js} +1 -1
- package/dist/assets/{packages-panel-CwbHm9uC.js → packages-panel-C7RTPIUf.js} +1 -1
- package/dist/assets/{panels-BhaV1xQQ.js → panels-qPMPLlzN.js} +1 -1
- package/dist/assets/{run-page-BtSGYy1m.js → run-page-Cqmrl9SW.js} +1 -1
- package/dist/assets/{scratchpad-panel-riBRfLg4.js → scratchpad-panel-Ddw1KV8R.js} +1 -1
- package/dist/assets/{session-panel-B2ux2cYO.js → session-panel-DTp3QX73.js} +1 -1
- package/dist/assets/{state-LRco7VGF.js → state-Nag9RDED.js} +1 -1
- package/dist/assets/{useNotebookActions-C2iPqhjB.js → useNotebookActions-CG6L_-9T.js} +1 -1
- package/dist/assets/{utils-BDlGlVyF.js → utils-DWFl4LEP.js} +3 -3
- package/dist/assets/{vega-component-DiFt6ZG4.js → vega-component-BAuy1PqH.js} +1 -1
- package/dist/index.html +9 -9
- package/package.json +1 -1
- package/src/__tests__/branded.ts +6 -0
- package/src/components/chat/chat-panel.tsx +2 -1
- package/src/components/data-table/TableBottomBar.tsx +12 -1
- package/src/components/data-table/TableTopBar.tsx +31 -35
- package/src/components/data-table/charts/charts.tsx +40 -11
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
- package/src/components/data-table/data-table.tsx +6 -1
- package/src/components/data-table/loading-table.tsx +4 -1
- package/src/components/data-table/range-focus/cell-selection-stats.tsx +3 -1
- package/src/components/data-table/row-viewer-panel/row-viewer.tsx +1 -1
- package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +2 -2
- package/src/components/editor/ai/add-cell-with-ai.tsx +2 -1
- package/src/components/editor/chrome/panels/context-aware-panel/context-aware-panel.tsx +1 -1
- package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +2 -1
- package/src/core/cells/__tests__/apply-transaction.test.ts +12 -11
- package/src/core/cells/document-changes.ts +9 -9
- package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -2
- package/src/core/codemirror/copilot/client.ts +9 -2
- package/src/core/codemirror/copilot/language-server.ts +11 -0
- package/src/core/codemirror/copilot/transport.ts +32 -6
- package/src/core/islands/__tests__/bridge.test.ts +20 -10
- package/src/core/network/__tests__/requests-lazy.test.ts +30 -14
- package/src/core/websocket/useMarimoKernelConnection.tsx +5 -11
- package/src/core/websocket/useWebSocket.tsx +3 -1
- package/src/css/app/Cell.css +22 -1
- package/src/css/table.css +17 -0
- package/src/plugins/impl/DataTablePlugin.tsx +1 -0
- package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +2 -11
- package/src/plugins/impl/vega/__tests__/utils.test.ts +68 -0
- package/src/plugins/impl/vega/utils.ts +14 -5
- package/src/plugins/impl/vega/vega.css +2 -1
- package/src/utils/json/base64.ts +2 -5
- package/src/utils/time.ts +4 -2
- package/src/utils/typed.ts +2 -2
- package/dist/assets/ai-model-dropdown-Ck6NNlZH.js +0 -5
- package/dist/assets/chat-panel-CYkuZYzq.js +0 -3
- package/dist/assets/index-BFY3jw7I.css +0 -2
- package/dist/assets/index-e_bkIEdq.js +0 -35
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var jt=Object.defineProperty;var De=f=>{throw TypeError(f)};var Dt=(f,h,y)=>h in f?jt(f,h,{enumerable:!0,configurable:!0,writable:!0,value:y}):f[h]=y;var n=(f,h,y)=>Dt(f,typeof h!="symbol"?h+"":h,y),ue=(f,h,y)=>h.has(f)||De("Cannot "+y);var o=(f,h,y)=>(ue(f,h,"read from private field"),y?y.call(f):h.get(f)),_=(f,h,y)=>h.has(f)?De("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,y),C=(f,h,y,z)=>(ue(f,h,"write to private field"),z?z.call(f,y):h.set(f,y),y),A=(f,h,y)=>(ue(f,h,"access private method"),y);import{i as Q,p as de,u as Ht}from"./useEvent-D91BmmQi.js";import{Cn as Ot,Z as He,b as $t,ci as zt,ii as Vt,mi as Y,oi as Qt,pi as Yt,ti as Gt,x as Jt,__tla as Kt}from"./cells-TDIw6QvK.js";import{t as Zt}from"./get-D7jeR2wg.js";import{t as Xt}from"./debounce-oETUUMtd.js";import{t as er}from"./_baseSet-yJDdA_ya.js";import{g,m as p}from"./useEventListener-CQbucLPR.js";import{t as tr}from"./invariant-BUdrueMv.js";import{S as rr}from"./utils-qewlfixl.js";import{S as sr,n as nr}from"./config-CH9jJJXa.js";import{n as ar}from"./switch-emMeGI7I.js";import{n as Oe}from"./globals-D2bbVE4_.js";import{at as ce,ot as $e,__tla as ir}from"./JsonOutput-
|
|
1
|
+
var jt=Object.defineProperty;var De=f=>{throw TypeError(f)};var Dt=(f,h,y)=>h in f?jt(f,h,{enumerable:!0,configurable:!0,writable:!0,value:y}):f[h]=y;var n=(f,h,y)=>Dt(f,typeof h!="symbol"?h+"":h,y),ue=(f,h,y)=>h.has(f)||De("Cannot "+y);var o=(f,h,y)=>(ue(f,h,"read from private field"),y?y.call(f):h.get(f)),_=(f,h,y)=>h.has(f)?De("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,y),C=(f,h,y,z)=>(ue(f,h,"write to private field"),z?z.call(f,y):h.set(f,y),y),A=(f,h,y)=>(ue(f,h,"access private method"),y);import{i as Q,p as de,u as Ht}from"./useEvent-D91BmmQi.js";import{Cn as Ot,Z as He,b as $t,ci as zt,ii as Vt,mi as Y,oi as Qt,pi as Yt,ti as Gt,x as Jt,__tla as Kt}from"./cells-TDIw6QvK.js";import{t as Zt}from"./get-D7jeR2wg.js";import{t as Xt}from"./debounce-oETUUMtd.js";import{t as er}from"./_baseSet-yJDdA_ya.js";import{g,m as p}from"./useEventListener-CQbucLPR.js";import{t as tr}from"./invariant-BUdrueMv.js";import{S as rr}from"./utils-qewlfixl.js";import{S as sr,n as nr}from"./config-CH9jJJXa.js";import{n as ar}from"./switch-emMeGI7I.js";import{n as Oe}from"./globals-D2bbVE4_.js";import{at as ce,ot as $e,__tla as ir}from"./JsonOutput-CYRewW_n.js";import{t as or}from"./createReducer-CpPssm_w.js";import{r as lr}from"./strings-iUgL3ejw.js";import{t as pe}from"./requests-0-N0Gl6P.js";import{a as ze,l as ur,r as Ve,__tla as dr}from"./markdown-renderer-CYb9pckL.js";import{t as cr}from"./DeferredRequestRegistry-PcArWHw6.js";import{t as pr}from"./preload-helper-BzqwXe9B.js";import{t as Qe}from"./Deferred-DfDfr6E2.js";import{t as Ye}from"./uuid-D2ChqAFJ.js";import{t as fr}from"./use-toast-C2PIwu9w.js";import{n as hr,r as mr,t as gr}from"./share-C1ldWCur.js";import{t as yr}from"./blob-DB54BMNs.js";import{i as wr,r as br,t as vr}from"./events-Jv6Gm-Cy.js";let G,fe,he,Ge,Je,Ke,Ze,Xe,J,et,me,tt,rt,st,ge,nt,ne,at,it,ye,ot,lt,_r=Promise.all([(()=>{try{return Kt}catch{}})(),(()=>{try{return ir}catch{}})(),(()=>{try{return dr}catch{}})()]).then(async()=>{var U,ee,dt,Ie,M,T,E,Le,F,Ne,P,V,D,ae,Ae,Ue,te,I,L,H,R,B,N,ct,pt,ft,re;function f(t,e,r){return t==null?t:er(t,e,r)}G=f,lt=de(null);var{valueAtom:h,useActions:y}=or(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Ye()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});Ge=()=>Ht(h),ot=function(){return y()};let z,be,ve;z=class{constructor(){n(this,"subscriptions",new Map)}addSubscription(t,e){var r;this.subscriptions.has(t)||this.subscriptions.set(t,new Set),(r=this.subscriptions.get(t))==null||r.add(e)}removeSubscription(t,e){var r;(r=this.subscriptions.get(t))==null||r.delete(e)}notify(t,e){for(let r of this.subscriptions.get(t)??[])r(e)}},ye=class we{constructor(e){n(this,"subscriptions",new z);this.producer=e}static withProducerCallback(e){return new we(e)}static empty(){return new we}startProducer(){this.producer&&this.producer(e=>{this.subscriptions.notify("message",e)})}connect(){return new Promise(e=>setTimeout(e,0)).then(()=>{this.subscriptions.notify("open",new Event("open"))})}get readyState(){return WebSocket.OPEN}reconnect(e,r){this.close(),this.connect()}close(){this.subscriptions.notify("close",new Event("close"))}send(e){return this.subscriptions.notify("message",new MessageEvent("message",{data:e})),Promise.resolve()}addEventListener(e,r){this.subscriptions.addSubscription(e,r),e==="open"&&r(new Event("open")),e==="message"&&this.startProducer()}removeEventListener(e,r){this.subscriptions.removeSubscription(e,r)}},be=1e10,ve=1e3;function K(t,e){let r=t.map(s=>`"${s}"`).join(", ");return Error(`This RPC instance cannot ${e} because the transport did not provide one or more of these methods: ${r}`)}function mt(t={}){let e={};function r(l){e=l}let s={};function a(l){var c;s.unregisterHandler&&s.unregisterHandler(),s=l,(c=s.registerHandler)==null||c.call(s,Wt)}let i;function u(l){if(typeof l=="function"){i=l;return}i=(c,w)=>{let m=l[c];if(m)return m(w);let b=l._;if(!b)throw Error(`The requested method has no handler: ${c}`);return b(c,w)}}let{maxRequestTime:d=ve}=t;t.transport&&a(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let v=0;function q(){return v<=be?++v:v=0}let x=new Map,S=new Map;function O(l,...c){let w=c[0];return new Promise((m,b)=>{var $;if(!s.send)throw K(["send"],"make requests");let k=q(),j={type:"request",id:k,method:l,params:w};x.set(k,{resolve:m,reject:b}),d!==1/0&&S.set(k,setTimeout(()=>{S.delete(k),b(Error("RPC request timed out."))},d)),($=e.onSend)==null||$.call(e,j),s.send(j)})}let se=new Proxy(O,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>O(c,m)}),Te=se;function Be(l,...c){var b;let w=c[0];if(!s.send)throw K(["send"],"send messages");let m={type:"message",id:l,payload:w};(b=e.onSend)==null||b.call(e,m),s.send(m)}let We=new Proxy(Be,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>Be(c,m)}),je=We,W=new Map,le=new Set;function Tt(l,c){var w;if(!s.registerHandler)throw K(["registerHandler"],"register message listeners");if(l==="*"){le.add(c);return}W.has(l)||W.set(l,new Set),(w=W.get(l))==null||w.add(c)}function Bt(l,c){var w,m;if(l==="*"){le.delete(c);return}(w=W.get(l))==null||w.delete(c),((m=W.get(l))==null?void 0:m.size)===0&&W.delete(l)}async function Wt(l){var c,w;if((c=e.onReceive)==null||c.call(e,l),!("type"in l))throw Error("Message does not contain a type.");if(l.type==="request"){if(!s.send||!i)throw K(["send","requestHandler"],"handle requests");let{id:m,method:b,params:k}=l,j;try{j={type:"response",id:m,success:!0,payload:await i(b,k)}}catch($){if(!($ instanceof Error))throw $;j={type:"response",id:m,success:!1,error:$.message}}(w=e.onSend)==null||w.call(e,j),s.send(j);return}if(l.type==="response"){let m=S.get(l.id);m!=null&&clearTimeout(m);let{resolve:b,reject:k}=x.get(l.id)??{};l.success?b==null||b(l.payload):k==null||k(Error(l.error));return}if(l.type==="message"){for(let b of le)b(l.id,l.payload);let m=W.get(l.id);if(!m)return;for(let b of m)b(l.payload);return}throw Error(`Unexpected RPC message type: ${l.type}`)}return{setTransport:a,setRequestHandler:u,request:se,requestProxy:Te,send:We,sendProxy:je,addMessageListener:Tt,removeMessageListener:Bt,proxy:{send:je,request:Te},_setDebugHooks:r}}function gt(t){return mt(t)}var _e="[transport-id]";function yt(t,e){let{transportId:r}=e;return r==null?t:{[_e]:r,data:t}}function wt(t,e){let{transportId:r,filter:s}=e,a=s==null?void 0:s();if(r!=null&&a!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let i=t;if(r){if(t[_e]!==r)return[!0];i=t.data}return a===!1?[!0]:[!1,i]}function bt(t,e={}){let{transportId:r,filter:s,remotePort:a}=e,i=t,u=a??t,d;return{send(v){u.postMessage(yt(v,{transportId:r}))},registerHandler(v){d=q=>{let x=q.data,[S,O]=wt(x,{transportId:r,filter:()=>s==null?void 0:s(q)});S||v(O)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function vt(t,e){return bt(t,e)}function Ce(t){return gt({transport:vt(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{p.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{p.debug("[rpc] Worker -> Parent",e)}}})}fe=de("Initializing..."),Xe=de(t=>{let e=t($t),r=Object.values(e.cellRuntime);return r.some(s=>!ur(s.output))?!0:r.every(s=>s.status==="idle")});var Re=hr(),qe="marimo:file",xe=new Gt(null);const _t={saveFile(t){xe.set(qe,t)},readFile(){return xe.get(qe)}};var Ct={saveFile(t){Y.setCodeForHash((0,Re.compressToEncodedURIComponent)(t))},readFile(){let t=Y.getCodeFromHash()||Y.getCodeFromSearchParam();return t?(0,Re.decompressFromEncodedURIComponent)(t):null}};const Rt={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var qt={saveFile(t){},readFile(){if(window.location.hostname!=="marimo.app")return null;let t=new URL("files/wasm-intro.py",document.baseURI);return fetch(t.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}};const xt={saveFile(t){},readFile(){return Q.get(Vt)??null}};var St={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
|
|
2
2
|
`)}},Se=class{constructor(t){this.stores=t}insert(t,e){this.stores.splice(t,0,e)}saveFile(t){this.stores.forEach(e=>e.saveFile(t))}readFile(){for(let t of this.stores){let e=t.readFile();if(e)return e}return null}};let Z;J=new Se([xt,Rt,Ct]),Z=new Se([_t,qt,St]),ge=class ut{constructor(){n(this,"initialized",new Qe);n(this,"sendRename",async({filename:e})=>(e===null||(Y.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));n(this,"sendSave",async e=>{if(!this.saveRpc)return p.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(J.saveFile(r.contents),Z.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(s=>{p.error(s)}),null});n(this,"sendCopy",async()=>{g()});n(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));n(this,"sendPdb",async()=>{g()});n(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
|
|
3
3
|
`)),await this.putControlRequest({type:"execute-cells",...e}),null));n(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));n(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));n(this,"sendShutdown",async()=>(window.close(),null));n(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));n(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));n(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));n(this,"sendCodeCompletionRequest",async e=>(Q.get(Jt)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));n(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),ar.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(p.error(r),null))));n(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));n(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));n(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(J.saveFile(e.contents),Z.saveFile(e.contents)),mr(),null});n(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(p.warn("Save RPC not initialized"),{contents:""}));n(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));n(this,"openFile",async({path:e})=>{let r=gr({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});n(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));n(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));n(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Ye()}),null));n(this,"sendInstantiate",async e=>null);n(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));n(this,"sendCreateFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:e}));n(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));n(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));n(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));n(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));n(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));n(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));n(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));n(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));n(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));n(this,"previewSQLSchemaList",async e=>(await this.putControlRequest({type:"list-sql-schemas",...e}),null));n(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));n(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));n(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));n(this,"sendDocumentTransaction",()=>Promise.resolve(null));n(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));n(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));n(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());n(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));n(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));n(this,"getUsageStats",g);n(this,"openTutorial",g);n(this,"getRecentFiles",g);n(this,"getWorkspaceFiles",g);n(this,"getRunningNotebooks",g);n(this,"shutdownSession",g);n(this,"exportAsIPYNB",g);n(this,"exportAsPDF",g);n(this,"autoExportAsHTML",g);n(this,"autoExportAsMarkdown",g);n(this,"autoExportAsIPYNB",g);n(this,"updateCellOutputs",g);n(this,"writeSecret",g);n(this,"invokeAiTool",g);n(this,"clearCache",g);n(this,"getCacheInfo",g);n(this,"listStorageEntries",g);n(this,"downloadStorage",g);sr()&&(this.rpc=Ce(new Worker(new URL(""+new URL("worker-BPV9SmHz.js",import.meta.url).href,""+import.meta.url),{type:"module",name:Oe()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{Q.set(fe,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{this.initialized.status==="resolved"&&(p.error(e),fr({title:"Error initializing",description:e,variant:"danger"})),this.initialized.reject(Error(e))}),this.rpc.addMessageListener("kernelMessage",({message:e})=>{var r;(r=this.messageConsumer)==null||r.call(this,new MessageEvent("message",{data:e}))}))}static get INSTANCE(){let e="_marimo_private_PyodideBridge";return window[e]||(window[e]=new ut),window[e]}getSaveWorker(){return He()==="read"?(p.debug("Skipping SaveWorker in read-mode"),{readFile:g,readNotebook:g,saveNotebook:g}):Ce(new Worker(new URL(""+new URL("save-worker-CtJsIYIM.js",import.meta.url).href,""+import.meta.url),{type:"module",name:Oe()})).proxy.request}async startSession(){let e=await J.readFile(),r=await Z.readFile(),s=Q.get(Qt)??Y.getFilename(),a=Q.get(rr),i={},u=new URLSearchParams(window.location.search);for(let d of u.keys()){let v=u.getAll(d);i[d]=v.length===1?v[0]:v}await this.rpc.proxy.request.startSession({queryParameters:i,code:e||r||"",filename:s,userConfig:{...a,runtime:{...a.runtime,auto_instantiate:He()==="read"?!0:a.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):p.warn("Not running in a secure context; interrupts are not available.")}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:"put_control_request",payload:e})}},tt=function(){return ye.withProducerCallback(t=>{ge.INSTANCE.attachMessageConsumer(t)})},Ke=function(t=ce()){let e=window.fetch;return window.fetch=async(r,s)=>{let a=r instanceof Request?r.url:r.toString();if(a.startsWith("data:"))return e(r,s);try{let i=X(a,t);if(i){let u=await(await e(i)).arrayBuffer();return new Response(u,{headers:{"Content-Type":Et(a)}})}return e(r,s)}catch(i){return p.error("Error parsing URL",i),e(r,s)}},()=>{window.fetch=e}};function Et(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}Ze=function(t,e=ce()){let r=t.http.bind(t),s=t.load.bind(t);return t.http=async a=>{let i=X(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await r(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},t.load=async a=>{let i=X(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await s(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},()=>{t.http=r,t.load=s}};function Ee(t){return t.startsWith(".")?t.slice(1):t}function kt(t,e=ce()){let r=X(t,e);if(!r)return t;let s=yr(r);return URL.createObjectURL(s)}function X(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let s=new URL(t,r).pathname,a=ke(t),i=ke(s);return e[t]||e[Ee(t)]||e[s]||e[Ee(s)]||a&&e[a]||i&&e[i]}function ke(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function ie(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[s,a]of t.entries())r.push(...ie(a,[...e,s]));else if(typeof t=="object"&&t)for(let[s,a]of Object.entries(t))r.push(...ie(a,[...e,s]));return r}function Mt(t){let e=ie(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),s=[],a=[];for(let i of e){let u=Zt(t,i);if(u instanceof DataView){let d=ze(u);s.push(d),a.push(i),G(r,i,d)}}return{state:r,buffers:s,bufferPaths:a}}function Me(t){let{state:e,bufferPaths:r,buffers:s}=t;if(!r||r.length===0)return e;s&&tr(s.length===r.length,"Buffers and buffer paths not the same length");let a=e;for(let[i,u]of r.entries()){let d=s==null?void 0:s[i];if(d==null){p.warn("[anywidget] Could not find buffer at path",u);continue}typeof d=="string"?G(a,u,Ve(d)):G(a,u,d)}return a}const Pe={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw p.warn(t),Error(t)}};function Pt(t){if(typeof AbortSignal.any=="function")return AbortSignal.any(t);let e=new AbortController;for(let r of t){if(r.aborted)return e.abort(r.reason),e.signal;r.addEventListener("abort",()=>e.abort(r.reason),{once:!0})}return e.signal}var Ft=(Ie=class{constructor(){_(this,ee);_(this,U,new Map)}getModule(t,e){let r=o(this,U).get(e);if(r)return r;let s=A(this,ee,dt).call(this,t).catch(a=>{throw o(this,U).delete(e),a});return o(this,U).set(e,s),s}invalidate(t){p.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),o(this,U).delete(t)}},U=new WeakMap,ee=new WeakSet,dt=async function(t){let e=nr(t).toString();return $e()&&(e=kt(e)),pr(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},Ie),It=(Le=class{constructor(){_(this,M);_(this,T);_(this,E)}async bind(t,e){var i,u;if(o(this,E)&&o(this,T)===t)return o(this,E);o(this,E)&&o(this,T)!==t&&(p.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=o(this,M))==null||i.abort(),C(this,M,void 0),C(this,E,void 0)),C(this,T,t),C(this,M,new AbortController);let r=o(this,M).signal,s=typeof t=="function"?await t():t,a=await((u=s.initialize)==null?void 0:u.call(s,{model:e,experimental:Pe}));return a&&r.addEventListener("abort",a),C(this,E,async(d,v)=>{var x;let q=await((x=s.render)==null?void 0:x.call(s,{model:e,el:d,experimental:Pe}));q&&Pt([v,r]).addEventListener("abort",()=>{let S=v.aborted?"view unmount":"binding destroyed";p.debug(`[WidgetBinding] Render cleanup triggered (reason: ${S})`),q()})}),o(this,E)}destroy(){var t;p.debug("[WidgetBinding] Destroying binding, aborting initialize lifecycle"),(t=o(this,M))==null||t.abort(),C(this,M,void 0),C(this,T,void 0),C(this,E,void 0)}},M=new WeakMap,T=new WeakMap,E=new WeakMap,Le),Lt=(Ne=class{constructor(){_(this,F,new Map)}getOrCreate(t){let e=o(this,F).get(t);return e||(e=new It,o(this,F).set(t,e)),e}destroy(t){let e=o(this,F).get(t);e&&(p.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),o(this,F).delete(t))}has(t){return o(this,F).has(t)}},F=new WeakMap,Ne);it=new Ft,me=new Lt;var Nt=(Ae=class{constructor(t=1e4){_(this,D);_(this,P,new Map);_(this,V);C(this,V,t)}get(t){let e=A(this,D,ae).call(this,t);return e.deferred.status==="pending"&&setTimeout(()=>{e.deferred.status==="pending"&&(e.deferred.reject(Error(`Model not found for key: ${t}`)),o(this,P).delete(t))},o(this,V)),e.deferred.promise}create(t,e){let r=A(this,D,ae).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){A(this,D,ae).call(this,t).deferred.resolve(e)}getSync(t){let e=o(this,P).get(t);if(e&&e.deferred.status==="resolved")return e.deferred.value}delete(t){var e;p.debug(`[ModelManager] Deleting model=${t}, aborting lifecycle signal`),(e=o(this,P).get(t))==null||e.controller.abort(),o(this,P).delete(t)}},P=new WeakMap,V=new WeakMap,D=new WeakSet,ae=function(t){let e=o(this,P).get(t);return e||(e={deferred:new Qe,controller:new AbortController},o(this,P).set(t,e)),e},Ae),Fe=Symbol("marimo");function oe(t){return t[Fe]}ne=new Nt;var At=(Ue=Fe,B=class{constructor(e,r,s){_(this,N);_(this,te,"change");_(this,I);_(this,L);_(this,H);_(this,R,{});n(this,Ue,{updateAndEmitDiffs:e=>A(this,N,pt).call(this,e),emitCustomMessage:(e,r)=>A(this,N,ft).call(this,e,r)});n(this,"widget_manager",{async get_model(e){let r=await B._modelManager.get(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});_(this,re,Xt(()=>{let e=o(this,R)[o(this,te)];if(e)for(let r of e)try{r()}catch(s){p.error("Error emitting event",s)}},0));C(this,L,e),C(this,H,r),C(this,I,new Map),s&&s.addEventListener("abort",()=>{p.debug("[Model] Signal aborted, clearing all listeners"),C(this,R,{})})}off(e,r){var s;if(!e){C(this,R,{});return}if(!r){o(this,R)[e]=new Set;return}(s=o(this,R)[e])==null||s.delete(r)}send(e,r,s){let a=(s??[]).map(i=>i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength));return o(this,H).sendCustomMessage(e,a).then(()=>r==null?void 0:r())}get(e){return o(this,L)[e]}set(e,r){C(this,L,{...o(this,L),[e]:r}),o(this,I).set(e,r),A(this,N,ct).call(this,`change:${e}`,r),o(this,re).call(this)}save_changes(){if(o(this,I).size===0)return;let e=Object.fromEntries(o(this,I).entries());o(this,I).clear(),o(this,H).sendUpdate(e)}on(e,r){o(this,R)[e]||(o(this,R)[e]=new Set),o(this,R)[e].add(r)}},te=new WeakMap,I=new WeakMap,L=new WeakMap,H=new WeakMap,R=new WeakMap,N=new WeakSet,ct=function(e,r){if(!o(this,R)[e])return;let s=o(this,R)[e];for(let a of s)try{a(r)}catch(i){p.error("Error emitting event",i)}},pt=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;o(this,L)[s]!==e[s]&&this.set(s,e[s])})},ft=function(e,r=[]){let s=o(this,R)["msg:custom"];if(s)for(let a of s)try{a(e.content,r)}catch(i){p.error("Error emitting event",i)}},re=new WeakMap,n(B,"_modelManager",ne),B);Je=async function(t,e){let r=e.model_id,s=e.message,a=("buffers"in s?s.buffers:[]).map(Ve);switch(s.method){case"open":{let{state:i,buffer_paths:u=[]}=s,d=Me({state:i,bufferPaths:u,buffers:a}),v=t.getSync(r);if(v){oe(v).updateAndEmitDiffs(d);return}t.create(r,q=>new At(d,$e()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(x){if(q.aborted){p.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:S,buffers:O,bufferPaths:se}=Mt(x);await pe().sendModelValue({modelId:r,message:{method:"update",state:S,bufferPaths:se},buffers:O})},async sendCustomMessage(x,S){if(q.aborted){p.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await pe().sendModelValue({modelId:r,message:{method:"custom",content:x},buffers:S.map(ze)})}},q));return}case"custom":oe(await t.get(r)).emitCustomMessage({method:"custom",content:s.content},a);return;case"close":me.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=s,d=Me({state:i,bufferPaths:u,buffers:a});oe(await t.get(r)).updateAndEmitDiffs(d);return}default:lr(s)}},Ot(ne,"MODEL_MANAGER"),he=class ht{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new ht),window[e]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,r){this.entries.has(e)&&p.debug("UIElementRegistry overwriting entry for objectId.",e),this.entries.set(e,{objectId:e,value:r,elements:new Set})}registerInstance(e,r){let s=this.entries.get(e);s===void 0?this.entries.set(e,{objectId:e,value:Yt(r,this),elements:new Set([r])}):s.elements.add(r)}removeInstance(e,r){let s=this.entries.get(e);s!=null&&s.elements.has(r)&&s.elements.delete(r)}removeElementsByCell(e){[...this.entries.keys()].filter(r=>r.startsWith(`${e}-`)).forEach(r=>{this.entries.delete(r)})}lookupValue(e){let r=this.entries.get(e);return r===void 0?void 0:r.value}broadcastMessage(e,r,s){let a=this.entries.get(e);a===void 0?p.warn("UIElementRegistry missing entry",e):a.elements.forEach(i=>{i.dispatchEvent(vr.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:s}}))})}broadcastValueUpdate(e,r,s){let a=this.entries.get(r);a===void 0?p.warn("UIElementRegistry missing entry",r):(a.value=s,a.elements.forEach(i=>{i!==e&&i.dispatchEvent(wr.create({bubbles:!1,composed:!0,detail:{value:s,element:i}}))}),document.dispatchEvent(br.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},st=he.INSTANCE,et=new cr("function-call-result",async(t,e)=>{await pe().sendFunctionRequest({functionCallId:t,...e})}),at="68px";var Ut="288px";rt=t=>t?/^\d+$/.test(t)?`${t}px`:t:Ut,nt=zt({isOpen:!0},(t,e)=>{if(!e)return t;switch(e.type){case"toggle":return{...t,isOpen:e.isOpen??t.isOpen};case"setWidth":return{...t,width:e.width};default:return t}})});export{G as S,fe as _,_r as __tla,he as a,Ge as b,Je as c,Ke as d,Ze as f,Xe as g,J as h,et as i,me as l,tt as m,rt as n,st as o,ge as p,nt as r,ne as s,at as t,it as u,ye as v,ot as x,lt as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as we}from"./chunk-LvLJmgfZ.js";import{d as L,l as Ze,p as Qe,u as de}from"./useEvent-D91BmmQi.js";import{t as et}from"./react-Bj1aDYRI.js";import{$ as tt,E as ge,Sn as at,Vt as ot,_ as nt,_i as ce,_n as it,dr as st,et as lt,h as je,jr as rt,or as dt,rr as ct,t as ht,tr as pt,tt as ve,vn as mt,yn as ut}from"./cells-TDIw6QvK.js";import{t as D}from"./compiler-runtime-B3qBwwSJ.js";import{n as ft,x as yt}from"./ai-model-dropdown-Ck6NNlZH.js";import{c as Ce,m as T}from"./useEventListener-CQbucLPR.js";import{y as kt}from"./utils-qewlfixl.js";import{n as A,t as ze}from"./constants-BDjPUh_E.js";import{S as he,h as bt,x as xt}from"./config-CH9jJJXa.js";import{t as wt}from"./jsx-runtime-xyXE3D12.js";import{r as gt,t as pe}from"./button-BgTwlYC0.js";import{gt as jt}from"./JsonOutput-DK6QFpxq.js";import{i as vt,t as Me}from"./strings-iUgL3ejw.js";import{r as H}from"./requests-0-N0Gl6P.js";import{t as h}from"./createLucideIcon-Z8uTTfaG.js";import{a as We,f as Ct,i as Se,m as zt,p as _e,u as De}from"./layout-FSEZfgnG.js";import{t as Ae}from"./check-WgGirSpN.js";import{c as Pe,d as me,n as Mt,o as Wt,r as ue,t as St}from"./download-ICCUuhAD.js";import{n as _t}from"./maps-CnQ9K9y9.js";import{r as Dt}from"./useCellActionButton-D1xZfcsS.js";import{t as At}from"./copy-CmP8fx8m.js";import{t as Pt}from"./eye-off-CHSXjsKy.js";import{t as Nt}from"./file-plus-corner-o1Nm9msA.js";import{t as J}from"./file-BSf2fnT4.js";import{t as It}from"./github-qniLrzHf.js";import{m as Et}from"./form-CoRP5wCe.js";import{n as Lt,r as Tt,t as Ht}from"./youtube-C6DX5kVf.js";import{i as qt,n as Ne}from"./add-connection-dialog-uUw1BwGd.js";import{n as Rt,t as Bt}from"./square-C6Og_zeb.js";import{t as Vt}from"./image-BlZRoHvU.js";import{t as Ft}from"./link-iyozKDVW.js";import{r as Ot}from"./input-DU2xk5tN.js";import{t as Yt}from"./settings-DVC6DwOK.js";import{y as Kt}from"./textarea-CHIQ2xAV.js";import{t as C}from"./use-toast-C2PIwu9w.js";import{n as Ie,t as Ut}from"./paths-rMOIwfXZ.js";import{o as $t}from"./session-ics2EJbK.js";import{a as Gt,c as Jt,i as Xt,n as Zt,r as Qt,s as ea,t as ta}from"./select-BTEOTFSs.js";import{t as aa}from"./tooltip-DUgEnCzr.js";import{o as oa}from"./alert-dialog-DnF5sXhW.js";import{a as na,c as ia,i as sa,n as la,r as ra}from"./dialog-CM-ZSYIy.js";import{n as fe}from"./ImperativeModal-CiZHZcgk.js";import{r as da,t as ca}from"./share-C1ldWCur.js";import{n as X}from"./copy-DXv_vyt3.js";import{r as ha}from"./useRunCells-wkv91sMW.js";import{a as pa}from"./cell-link-CTUTRzHo.js";import{a as ma}from"./renderShortcut-CM8Ne7Px.js";import{t as ua}from"./icons-p6CV99Ur.js";import{t as fa}from"./links-CvcgecvB.js";import{r as ya,t as Ee}from"./hooks-CfqzfU-0.js";import{t as Le}from"./types-DJxVS5di.js";var ka=h("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),ba=h("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),Te=h("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),He=h("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),qe=h("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),xa=h("fast-forward",[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]]),wa=h("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),ga=h("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),Re=h("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),ja=h("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),va=h("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),Ca=h("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Be=h("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),za=h("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),Ma=h("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),Ve=h("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),Fe=D(),ye=we(et(),1),a=we(wt(),1),Z="https://static.marimo.app";const Wa=e=>{let t=(0,Fe.c)(25),{onClose:n}=e,[o,s]=(0,ye.useState)(""),{exportAsHTML:r}=H(),l=`${o}-${Math.random().toString(36).slice(2,6)}`,i=`${Z}/static/${l}`,d;t[0]!==r||t[1]!==n||t[2]!==l?(d=async v=>{v.preventDefault(),n();let N=await r({download:!1,includeCode:!0,files:Ct.INSTANCE.filenames()}),z=C({title:"Uploading static notebook...",description:"Please wait."});await fetch(`${Z}/api/static`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({html:N,path:l})}).catch(()=>{z.dismiss(),C({title:"Error uploading static page",description:(0,a.jsxs)("div",{children:["Please try again later. If the problem persists, please file a bug report on"," ",(0,a.jsx)("a",{href:A.issuesPage,target:"_blank",className:"underline",children:"GitHub"}),"."]})})}),z.dismiss(),C({title:"Static page uploaded!",description:(0,a.jsxs)("div",{children:["The URL has been copied to your clipboard.",(0,a.jsx)("br",{}),"You can share it with anyone."]})})},t[0]=r,t[1]=n,t[2]=l,t[3]=d):d=t[3];let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=(0,a.jsx)(ia,{children:"Share static notebook"}),t[4]=m):m=t[4];let w;t[5]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsxs)(na,{children:[m,(0,a.jsxs)(ra,{children:["You can publish a static, non-interactive version of this notebook to the public web. We will create a link for you that lives on"," ",(0,a.jsx)("a",{href:Z,target:"_blank",children:Z}),"."]})]}),t[5]=w):w=t[5];let g;t[6]===Symbol.for("react.memo_cache_sentinel")?(g=v=>{s(v.target.value.toLowerCase().replaceAll(/\s/g,"-").replaceAll(/[^\da-z-]/g,""))},t[6]=g):g=t[6];let u;t[7]===o?u=t[8]:(u=(0,a.jsx)(Ot,{"data-testid":"slug-input",id:"slug",autoFocus:!0,value:o,placeholder:"Notebook slug",onChange:g,required:!0,autoComplete:"off"}),t[7]=o,t[8]=u);let f;t[9]===i?f=t[10]:(f=(0,a.jsxs)("div",{className:"font-semibold text-sm text-muted-foreground gap-2 flex flex-col",children:["Anyone will be able to access your notebook at this URL:",(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(Sa,{text:i}),(0,a.jsx)("span",{className:"text-primary",children:i})]})]}),t[9]=i,t[10]=f);let y;t[11]!==u||t[12]!==f?(y=(0,a.jsxs)("div",{className:"flex flex-col gap-6 py-4",children:[u,f]}),t[11]=u,t[12]=f,t[13]=y):y=t[13];let k;t[14]===n?k=t[15]:(k=(0,a.jsx)(pe,{"data-testid":"cancel-share-static-notebook-button",variant:"secondary",onClick:n,children:"Cancel"}),t[14]=n,t[15]=k);let b;t[16]===i?b=t[17]:(b=(0,a.jsx)(pe,{"data-testid":"share-static-notebook-button","aria-label":"Save",variant:"default",type:"submit",onClick:async()=>{await X(i)},children:"Create"}),t[16]=i,t[17]=b);let x;t[18]!==k||t[19]!==b?(x=(0,a.jsxs)(sa,{children:[k,b]}),t[18]=k,t[19]=b,t[20]=x):x=t[20];let j;return t[21]!==d||t[22]!==x||t[23]!==y?(j=(0,a.jsx)(la,{className:"w-fit",children:(0,a.jsxs)("form",{onSubmit:d,children:[w,y,x]})}),t[21]=d,t[22]=x,t[23]=y,t[24]=j):j=t[24],j};var Sa=e=>{let t=(0,Fe.c)(8),[n,o]=ye.useState(!1),s;t[0]===e.text?s=t[1]:(s=gt.stopPropagation(async m=>{m.preventDefault(),await X(e.text),o(!0),setTimeout(()=>o(!1),2e3)}),t[0]=e.text,t[1]=s);let r=s,l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(At,{size:14,strokeWidth:1.5}),t[2]=l):l=t[2];let i;t[3]===r?i=t[4]:(i=(0,a.jsx)(pe,{"data-testid":"copy-static-notebook-url-button",onClick:r,size:"xs",variant:"secondary",children:l}),t[3]=r,t[4]=i);let d;return t[5]!==n||t[6]!==i?(d=(0,a.jsx)(aa,{content:"Copied!",open:n,children:i}),t[5]=n,t[6]=i,t[7]=d):d=t[7],d},_a=D();function Da(){let e=document.getElementsByClassName(ze.outputArea);for(let t of e){let n=t.getBoundingClientRect();if(n.bottom>0&&n.top<window.innerHeight){let o=ce.findElement(t);if(!o){T.warn("Could not find HTMLCellId for visible output area",t);continue}return{cellId:ce.parse(o.id)}}}return T.warn("No visible output area found for scroll anchor"),null}function Aa(e){if(!e){T.warn("No scroll anchor provided to restore scroll position");return}let t=document.getElementById(ce.create(e.cellId));if(!t){T.warn("Could not find cell element to restore scroll position",e.cellId);return}if(!t.querySelector(`.${ze.outputArea}`)){T.warn("Could not find output area to restore scroll position",e.cellId);return}t.scrollIntoView({block:"start",behavior:"auto"})}function Oe(){let e=(0,_a.c)(2),t=L(ve),n;return e[0]===t?n=e[1]:(n=()=>{let o=Da();t(s=>({mode:lt(s.mode),cellAnchor:(o==null?void 0:o.cellId)??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{Aa(o)})})},e[0]=t,e[1]=n),n}const Ye=Qe(!1);var Pa=D();const Na=()=>{let e=(0,Pa.c)(7),{selectedLayout:t}=We(),{setLayoutView:n}=Se();if(he()&&!at("wasm_layouts"))return null;let o;e[0]===n?o=e[1]:(o=i=>n(i),e[0]=n,e[1]=o);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(ea,{className:"min-w-[110px] border-border bg-background","data-testid":"layout-select",children:(0,a.jsx)(Jt,{placeholder:"Select a view"})}),e[2]=s):s=e[2];let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(Zt,{children:(0,a.jsxs)(Qt,{children:[(0,a.jsx)(Gt,{children:"View as"}),Le.map(Ea)]})}),e[3]=r):r=e[3];let l;return e[4]!==t||e[5]!==o?(l=(0,a.jsxs)(ta,{"data-testid":"layout-select",value:t,onValueChange:o,children:[s,r]}),e[4]=t,e[5]=o,e[6]=l):l=e[6],l};function Ia(e){return(0,a.jsx)(Ke(e),{className:"h-4 w-4"})}function Ke(e){switch(e){case"vertical":return ja;case"grid":return Tt;case"slides":return Be;default:return vt(e),Bt}}function Ue(e){return Me.startCase(e)}function Ea(e){return(0,a.jsx)(Xt,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 leading-5",children:[Ia(e),(0,a.jsx)("span",{children:Ue(e)})]})},e)}async function La(e){let{filename:t,preset:n,downloadPDF:o}=e;await o({filename:t,webpdf:!1,preset:n,includeInputs:!0,rasterServer:"static"})}var Ta=D();function Ha(e){let t=(0,Ta.c)(5),{openPrompt:n,closeModal:o}=fe(),{sendCopy:s}=H(),r;return t[0]!==o||t[1]!==n||t[2]!==s||t[3]!==e?(r=()=>{if(!e)return null;let l=Ut.guessDeliminator(e);n({title:"Copy notebook",description:"Enter a new filename for the notebook copy.",defaultValue:`_${Ie.basename(e)}`,confirmText:"Copy notebook",spellCheck:!1,onConfirm:i=>{let d=l.join(Ie.dirname(e),i);s({source:e,destination:d}).then(()=>{o(),C({title:"Notebook copied",description:"A copy of the notebook has been created."}),fa(d)})}})},t[0]=o,t[1]=n,t[2]=s,t[3]=e,t[4]=r):r=t[4],r}const qa=()=>{let{updateCellConfig:e}=ge(),{saveCellConfig:t}=H();return(0,ye.useCallback)(async()=>{let n=new ot,o=je(),s=o.cellIds.inOrderIds,r={};for(let i of s){if(o.cellData[i]===void 0)continue;let{code:d,config:m}=o.cellData[i];m.hide_code||n.isSupported(d)&&(r[i]={hide_code:!0})}let l=Ce.entries(r);if(l.length!==0){await t({configs:r});for(let[i,d]of l)e({cellId:i,config:d})}},[e])};var Ra=D();function $e(){let e=(0,Ra.c)(4),{openConfirm:t}=fe(),n=L(bt),{sendRestart:o}=H(),s;return e[0]!==t||e[1]!==o||e[2]!==n?(s=()=>{t({title:"Restart Kernel",description:"This will restart the Python kernel. You'll lose all data that's in memory. You will also lose any unsaved changes, so make sure to save your work before restarting.",variant:"destructive",confirmAction:(0,a.jsx)(oa,{onClick:async()=>{n({state:xt.CLOSING}),await o(),da()},"aria-label":"Confirm Restart",children:"Restart"})})},e[0]=t,e[1]=o,e[2]=n,e[3]=s):s=e[3],s}var Ba=D(),P=e=>{e==null||e.preventDefault(),e==null||e.stopPropagation()};function Va(){var be,xe;let e=(0,Ba.c)(51),t=pa(),{openModal:n,closeModal:o}=fe(),{toggleApplication:s}=it(),{selectedPanel:r}=mt(),[l]=Ze(ve),i=de(tt),d=qa(),[m]=kt(),{updateCellConfig:w,undoDeleteCell:g,clearAllCellOutputs:u,addSetupCellIfDoesntExist:f,collapseAllCells:y,expandAllCells:k}=ge(),b=$e(),x=ha(),j=Ha(t),v=L(Ye),N=L(ft),z=L(yt),{exportAsIPYNB:ee,exportAsMarkdown:te,readCode:I,saveCellConfig:ae,updateCellOutputs:M}=H(),W=ya(),oe=de(nt),ne=de(ht),{selectedLayout:q}=We(),{setLayoutView:ie}=Se(),R=Oe(),B=((be=m.sharing)==null?void 0:be.html)??!0,V=((xe=m.sharing)==null?void 0:xe.wasm)??!0,ke=!he(),se=q==="slides",Ge=so,Je=io,F;e[0]!==t||e[1]!==W||e[2]!==M?(F=async c=>{let{preset:p,title:E}=c;if(!t){Q();return}await Pe(E,async re=>{await Ee({takeScreenshots:()=>W({progress:re}),updateCellOutputs:M}),await La({filename:t,preset:p,downloadPDF:Mt})})},e[0]=t,e[1]=W,e[2]=M,e[3]=F):F=e[3];let S=F,O;e[4]===S?O=e[5]:(O=async()=>{if(ke){await S({preset:"document",title:"Downloading Document PDF..."});return}let c=new Event("export-beforeprint"),p=new Event("export-afterprint");window.dispatchEvent(c),setTimeout(no,0),setTimeout(()=>window.dispatchEvent(p),0)},e[4]=S,e[5]=O);let Y=O,K;e[6]!==ee||e[7]!==t||e[8]!==W||e[9]!==M?(K=async()=>{if(!t){Q();return}await Pe("Downloading IPYNB...",async c=>{await Ee({takeScreenshots:()=>W({progress:c}),updateCellOutputs:M});let p=await ee({download:!1});ue(new Blob([p],{type:"application/x-ipynb+json"}),me.toIPYNB(document.title))})},e[6]=ee,e[7]=t,e[8]=W,e[9]=M,e[10]=K):K=e[10];let le=K,U;e[11]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(jt,{size:14,strokeWidth:1.5}),e[11]=U):U=e[11];let $;e[12]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),e[12]=$):$=e[12];let _;e[13]===t?_=e[14]:(_=async()=>{if(!t){Q();return}await De({filename:t,includeCode:!0})},e[13]=t,e[14]=_);let G;return e[15]!==f||e[16]!==ne||e[17]!==u||e[18]!==o||e[19]!==y||e[20]!==j||e[21]!==S||e[22]!==k||e[23]!==te||e[24]!==t||e[25]!==Y||e[26]!==le||e[27]!==oe||e[28]!==d||e[29]!==se||e[30]!==i||e[31]!==n||e[32]!==I||e[33]!==b||e[34]!==x||e[35]!==ae||e[36]!==q||e[37]!==r||e[38]!==v||e[39]!==z||e[40]!==ie||e[41]!==N||e[42]!==B||e[43]!==V||e[44]!==_||e[45]!==s||e[46]!==R||e[47]!==g||e[48]!==w||e[49]!==l.mode?(G=[{icon:U,label:"Download",handle:P,dropdown:[{icon:$,label:"Download as HTML",handle:_},{icon:(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),label:"Download as HTML (exclude code)",handle:async()=>{if(!t){Q();return}await De({filename:t,includeCode:!1})}},{icon:(0,a.jsx)(ua,{strokeWidth:1.5,style:{width:14,height:14}}),label:"Download as Markdown",handle:async()=>{let c=await te({download:!1});ue(new Blob([c],{type:"text/plain"}),me.toMarkdown(document.title))}},{icon:(0,a.jsx)(va,{size:14,strokeWidth:1.5}),label:"Download as ipynb",handle:le},{icon:(0,a.jsx)(zt,{size:14,strokeWidth:1.5}),label:"Download Python code",handle:async()=>{let c=await I();ue(new Blob([c.contents],{type:"text/plain"}),me.toPY(document.title))}},{divider:!0,icon:(0,a.jsx)(Vt,{size:14,strokeWidth:1.5}),label:"Download as PNG",disabled:l.mode!=="present",tooltip:l.mode==="present"?void 0:(0,a.jsxs)("span",{children:["Only available in app view. ",(0,a.jsx)("br",{}),"Toggle with: ",ma("global.hideCode",!1)]}),handle:oo},se?{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:P,dropdown:[{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Document Layout",handle:Y},{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Slides Layout",rightElement:Je(!0),hidden:!ke,handle:async()=>{await S({preset:"slides",title:"Downloading Slides PDF..."})}}]}:{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:Y}]},{icon:(0,a.jsx)(za,{size:14,strokeWidth:1.5}),label:"Share",handle:P,hidden:!B&&!V,dropdown:[{icon:(0,a.jsx)(Et,{size:14,strokeWidth:1.5}),label:"Publish HTML to web",hidden:!B,handle:async()=>{n((0,a.jsx)(Wa,{onClose:o}))}},{icon:(0,a.jsx)(Ft,{size:14,strokeWidth:1.5}),label:"Create WebAssembly link",hidden:!V,handle:async()=>{await X(ca({code:(await I()).contents})),C({title:"Copied",description:"Link copied to clipboard."})}}]},{icon:(0,a.jsx)(Ca,{size:14,strokeWidth:1.5}),label:"Helper panel",redundant:!0,handle:P,dropdown:ut.flatMap(c=>{let{type:p,Icon:E,hidden:re,additionalKeywords:Xe}=c;return re?[]:{label:Me.startCase(p),rightElement:Ge(r===p),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),handle:()=>s(p),additionalKeywords:Xe}})},{icon:(0,a.jsx)(Be,{size:14,strokeWidth:1.5}),label:"Present as",handle:P,dropdown:[{icon:l.mode==="present"?(0,a.jsx)(Kt,{size:14,strokeWidth:1.5}):(0,a.jsx)(Re,{size:14,strokeWidth:1.5}),label:"Toggle app view",hotkey:"global.hideCode",handle:()=>{R()}},...Le.map((c,p)=>{let E=Ke(c);return{divider:p===0,label:Ue(c),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),rightElement:(0,a.jsx)("div",{className:"w-8 flex justify-end",children:q===c&&(0,a.jsx)(Ae,{size:14})}),handle:()=>{ie(c),l.mode==="edit"&&R()}}})]},{icon:(0,a.jsx)(wa,{size:14,strokeWidth:1.5}),label:"Duplicate notebook",hidden:!t||he(),handle:j},{icon:(0,a.jsx)(Te,{size:14,strokeWidth:1.5}),label:"Copy code to clipboard",hidden:!t,handle:async()=>{await X((await I()).contents),C({title:"Copied",description:"Code copied to clipboard."})}},{icon:(0,a.jsx)(Dt,{size:14,strokeWidth:1.5}),label:"Enable all cells",hidden:!oe||i,handle:async()=>{let c=rt(je());await ae({configs:Ce.fromEntries(c.map(ao))});for(let p of c)w({cellId:p,config:{disabled:!1}})}},{divider:!0,icon:(0,a.jsx)(qe,{size:14,strokeWidth:1.5}),label:"Add setup cell",handle:()=>{f({})}},{icon:(0,a.jsx)(ct,{size:14,strokeWidth:1.5}),label:"Add database connection",handle:()=>{n((0,a.jsx)(Ne,{onClose:o}))}},{icon:(0,a.jsx)(qt,{size:14,strokeWidth:1.5}),label:"Add remote storage",handle:()=>{n((0,a.jsx)(Ne,{defaultTab:"storage",onClose:o}))}},{icon:(0,a.jsx)(Ve,{size:14,strokeWidth:1.5}),label:"Undo cell deletion",hidden:!ne||i,handle:()=>{g()}},{icon:(0,a.jsx)(Ma,{size:14,strokeWidth:1.5}),label:"Restart kernel",variant:"danger",handle:b,additionalKeywords:["reset","reload","restart"]},{icon:(0,a.jsx)(xa,{size:14,strokeWidth:1.5}),label:"Re-run all cells",redundant:!0,hotkey:"global.runAll",handle:async()=>{x()}},{icon:(0,a.jsx)(dt,{size:14,strokeWidth:1.5}),label:"Clear all outputs",redundant:!0,handle:()=>{u()}},{icon:(0,a.jsx)(Pt,{size:14,strokeWidth:1.5}),label:"Hide all markdown code",handle:d,redundant:!0},{icon:(0,a.jsx)(ba,{size:14,strokeWidth:1.5}),label:"Collapse all sections",hotkey:"global.collapseAllSections",handle:y,redundant:!0},{icon:(0,a.jsx)(ka,{size:14,strokeWidth:1.5}),label:"Expand all sections",hotkey:"global.expandAllSections",handle:k,redundant:!0},{divider:!0,icon:(0,a.jsx)(He,{size:14,strokeWidth:1.5}),label:"Command palette",hotkey:"global.commandPalette",handle:()=>v(to)},{icon:(0,a.jsx)(ga,{size:14,strokeWidth:1.5}),label:"Keyboard shortcuts",hotkey:"global.showHelp",handle:()=>z(eo)},{icon:(0,a.jsx)(Yt,{size:14,strokeWidth:1.5}),label:"User settings",handle:()=>N(Qa),redundant:!0,additionalKeywords:["preferences","options","configuration"]},{icon:(0,a.jsx)(_t,{size:14,strokeWidth:1.5}),label:"Resources",handle:P,dropdown:[{icon:(0,a.jsx)(st,{size:14,strokeWidth:1.5}),label:"Documentation",handle:Za},{icon:(0,a.jsx)(It,{size:14,strokeWidth:1.5}),label:"GitHub",handle:Xa},{icon:(0,a.jsx)(Lt,{size:14,strokeWidth:1.5}),label:"Discord Community",handle:Ja},{icon:(0,a.jsx)(Ht,{size:14,strokeWidth:1.5}),label:"YouTube",handle:Ga},{icon:(0,a.jsx)(pt,{size:14,strokeWidth:1.5}),label:"Changelog",handle:$a}]},{divider:!0,icon:(0,a.jsx)(Rt,{size:14,strokeWidth:1.5}),label:"Return home",hidden:!location.search.includes("file"),handle:Ua},{icon:(0,a.jsx)(Nt,{size:14,strokeWidth:1.5}),label:"New notebook",hidden:!location.search.includes("file"),handle:Ka}].filter(Ya).map(Fa),e[15]=f,e[16]=ne,e[17]=u,e[18]=o,e[19]=y,e[20]=j,e[21]=S,e[22]=k,e[23]=te,e[24]=t,e[25]=Y,e[26]=le,e[27]=oe,e[28]=d,e[29]=se,e[30]=i,e[31]=n,e[32]=I,e[33]=b,e[34]=x,e[35]=ae,e[36]=q,e[37]=r,e[38]=v,e[39]=z,e[40]=ie,e[41]=N,e[42]=B,e[43]=V,e[44]=_,e[45]=s,e[46]=R,e[47]=g,e[48]=w,e[49]=l.mode,e[50]=G):G=e[50],G}function Fa(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Oa)}:e}function Oa(e){return!e.hidden}function Ya(e){return!e.hidden}function Ka(){let e=$t();window.open(e,"_blank")}function Ua(){let e=document.baseURI.split("?")[0];window.open(e,"_self")}function $a(){window.open(A.releasesPage,"_blank")}function Ga(){window.open(A.youtube,"_blank")}function Ja(){window.open(A.discordLink,"_blank")}function Xa(){window.open(A.githubPage,"_blank")}function Za(){window.open(A.docsPage,"_blank")}function Qa(e){return!e}function eo(e){return!e}function to(e){return!e}function ao(e){return[e,{disabled:!1}]}async function oo(){let e=document.getElementById("App");e&&await Wt({element:e,filename:document.title,prepare:St})}function no(){return window.print()}function io(e){return e?(0,a.jsx)("span",{className:"ml-3 shrink-0 rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:"Recommended"}):null}function so(e){return(0,a.jsx)("div",{className:"w-8 flex justify-end",children:e&&(0,a.jsx)(Ae,{size:14})})}function Q(){C({title:"Error",description:"Notebooks must be named to be exported.",variant:"danger"})}export{Oe as a,qe as c,Ye as i,He as l,$e as n,Ve as o,Na as r,Re as s,Va as t,Te as u};
|
|
1
|
+
import{s as we}from"./chunk-LvLJmgfZ.js";import{d as L,l as Ze,p as Qe,u as de}from"./useEvent-D91BmmQi.js";import{t as et}from"./react-Bj1aDYRI.js";import{$ as tt,E as ge,Sn as at,Vt as ot,_ as nt,_i as ce,_n as it,dr as st,et as lt,h as je,jr as rt,or as dt,rr as ct,t as ht,tr as pt,tt as ve,vn as mt,yn as ut}from"./cells-TDIw6QvK.js";import{t as D}from"./compiler-runtime-B3qBwwSJ.js";import{n as ft,x as yt}from"./ai-model-dropdown-CMj49xMg.js";import{c as Ce,m as T}from"./useEventListener-CQbucLPR.js";import{y as kt}from"./utils-qewlfixl.js";import{n as A,t as ze}from"./constants-BDjPUh_E.js";import{S as he,h as bt,x as xt}from"./config-CH9jJJXa.js";import{t as wt}from"./jsx-runtime-xyXE3D12.js";import{r as gt,t as pe}from"./button-BgTwlYC0.js";import{gt as jt}from"./JsonOutput-CYRewW_n.js";import{i as vt,t as Me}from"./strings-iUgL3ejw.js";import{r as H}from"./requests-0-N0Gl6P.js";import{t as h}from"./createLucideIcon-Z8uTTfaG.js";import{a as We,f as Ct,i as Se,m as zt,p as _e,u as De}from"./layout-BlYB96ph.js";import{t as Ae}from"./check-WgGirSpN.js";import{c as Pe,d as me,n as Mt,o as Wt,r as ue,t as St}from"./download-ICCUuhAD.js";import{n as _t}from"./maps-CnQ9K9y9.js";import{r as Dt}from"./useCellActionButton-D1xZfcsS.js";import{t as At}from"./copy-CmP8fx8m.js";import{t as Pt}from"./eye-off-CHSXjsKy.js";import{t as Nt}from"./file-plus-corner-o1Nm9msA.js";import{t as J}from"./file-BSf2fnT4.js";import{t as It}from"./github-qniLrzHf.js";import{m as Et}from"./form-B-BLUzr3.js";import{n as Lt,r as Tt,t as Ht}from"./youtube-C6DX5kVf.js";import{i as qt,n as Ne}from"./add-connection-dialog-_oI2JBU2.js";import{n as Rt,t as Bt}from"./square-C6Og_zeb.js";import{t as Vt}from"./image-BlZRoHvU.js";import{t as Ft}from"./link-iyozKDVW.js";import{r as Ot}from"./input-DU2xk5tN.js";import{t as Yt}from"./settings-DVC6DwOK.js";import{y as Kt}from"./textarea-CHIQ2xAV.js";import{t as C}from"./use-toast-C2PIwu9w.js";import{n as Ie,t as Ut}from"./paths-rMOIwfXZ.js";import{o as $t}from"./session-ics2EJbK.js";import{a as Gt,c as Jt,i as Xt,n as Zt,r as Qt,s as ea,t as ta}from"./select-BTEOTFSs.js";import{t as aa}from"./tooltip-DUgEnCzr.js";import{o as oa}from"./alert-dialog-DnF5sXhW.js";import{a as na,c as ia,i as sa,n as la,r as ra}from"./dialog-CM-ZSYIy.js";import{n as fe}from"./ImperativeModal-CiZHZcgk.js";import{r as da,t as ca}from"./share-C1ldWCur.js";import{n as X}from"./copy-DXv_vyt3.js";import{r as ha}from"./useRunCells-wkv91sMW.js";import{a as pa}from"./cell-link-CTUTRzHo.js";import{a as ma}from"./renderShortcut-CM8Ne7Px.js";import{t as ua}from"./icons-p6CV99Ur.js";import{t as fa}from"./links-CvcgecvB.js";import{r as ya,t as Ee}from"./hooks-ChIFqb9W.js";import{t as Le}from"./types-DJxVS5di.js";var ka=h("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),ba=h("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),Te=h("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),He=h("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),qe=h("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),xa=h("fast-forward",[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]]),wa=h("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),ga=h("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),Re=h("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),ja=h("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),va=h("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),Ca=h("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Be=h("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),za=h("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),Ma=h("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),Ve=h("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),Fe=D(),ye=we(et(),1),a=we(wt(),1),Z="https://static.marimo.app";const Wa=e=>{let t=(0,Fe.c)(25),{onClose:n}=e,[o,s]=(0,ye.useState)(""),{exportAsHTML:r}=H(),l=`${o}-${Math.random().toString(36).slice(2,6)}`,i=`${Z}/static/${l}`,d;t[0]!==r||t[1]!==n||t[2]!==l?(d=async v=>{v.preventDefault(),n();let N=await r({download:!1,includeCode:!0,files:Ct.INSTANCE.filenames()}),z=C({title:"Uploading static notebook...",description:"Please wait."});await fetch(`${Z}/api/static`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({html:N,path:l})}).catch(()=>{z.dismiss(),C({title:"Error uploading static page",description:(0,a.jsxs)("div",{children:["Please try again later. If the problem persists, please file a bug report on"," ",(0,a.jsx)("a",{href:A.issuesPage,target:"_blank",className:"underline",children:"GitHub"}),"."]})})}),z.dismiss(),C({title:"Static page uploaded!",description:(0,a.jsxs)("div",{children:["The URL has been copied to your clipboard.",(0,a.jsx)("br",{}),"You can share it with anyone."]})})},t[0]=r,t[1]=n,t[2]=l,t[3]=d):d=t[3];let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=(0,a.jsx)(ia,{children:"Share static notebook"}),t[4]=m):m=t[4];let w;t[5]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsxs)(na,{children:[m,(0,a.jsxs)(ra,{children:["You can publish a static, non-interactive version of this notebook to the public web. We will create a link for you that lives on"," ",(0,a.jsx)("a",{href:Z,target:"_blank",children:Z}),"."]})]}),t[5]=w):w=t[5];let g;t[6]===Symbol.for("react.memo_cache_sentinel")?(g=v=>{s(v.target.value.toLowerCase().replaceAll(/\s/g,"-").replaceAll(/[^\da-z-]/g,""))},t[6]=g):g=t[6];let u;t[7]===o?u=t[8]:(u=(0,a.jsx)(Ot,{"data-testid":"slug-input",id:"slug",autoFocus:!0,value:o,placeholder:"Notebook slug",onChange:g,required:!0,autoComplete:"off"}),t[7]=o,t[8]=u);let f;t[9]===i?f=t[10]:(f=(0,a.jsxs)("div",{className:"font-semibold text-sm text-muted-foreground gap-2 flex flex-col",children:["Anyone will be able to access your notebook at this URL:",(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(Sa,{text:i}),(0,a.jsx)("span",{className:"text-primary",children:i})]})]}),t[9]=i,t[10]=f);let y;t[11]!==u||t[12]!==f?(y=(0,a.jsxs)("div",{className:"flex flex-col gap-6 py-4",children:[u,f]}),t[11]=u,t[12]=f,t[13]=y):y=t[13];let k;t[14]===n?k=t[15]:(k=(0,a.jsx)(pe,{"data-testid":"cancel-share-static-notebook-button",variant:"secondary",onClick:n,children:"Cancel"}),t[14]=n,t[15]=k);let b;t[16]===i?b=t[17]:(b=(0,a.jsx)(pe,{"data-testid":"share-static-notebook-button","aria-label":"Save",variant:"default",type:"submit",onClick:async()=>{await X(i)},children:"Create"}),t[16]=i,t[17]=b);let x;t[18]!==k||t[19]!==b?(x=(0,a.jsxs)(sa,{children:[k,b]}),t[18]=k,t[19]=b,t[20]=x):x=t[20];let j;return t[21]!==d||t[22]!==x||t[23]!==y?(j=(0,a.jsx)(la,{className:"w-fit",children:(0,a.jsxs)("form",{onSubmit:d,children:[w,y,x]})}),t[21]=d,t[22]=x,t[23]=y,t[24]=j):j=t[24],j};var Sa=e=>{let t=(0,Fe.c)(8),[n,o]=ye.useState(!1),s;t[0]===e.text?s=t[1]:(s=gt.stopPropagation(async m=>{m.preventDefault(),await X(e.text),o(!0),setTimeout(()=>o(!1),2e3)}),t[0]=e.text,t[1]=s);let r=s,l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(At,{size:14,strokeWidth:1.5}),t[2]=l):l=t[2];let i;t[3]===r?i=t[4]:(i=(0,a.jsx)(pe,{"data-testid":"copy-static-notebook-url-button",onClick:r,size:"xs",variant:"secondary",children:l}),t[3]=r,t[4]=i);let d;return t[5]!==n||t[6]!==i?(d=(0,a.jsx)(aa,{content:"Copied!",open:n,children:i}),t[5]=n,t[6]=i,t[7]=d):d=t[7],d},_a=D();function Da(){let e=document.getElementsByClassName(ze.outputArea);for(let t of e){let n=t.getBoundingClientRect();if(n.bottom>0&&n.top<window.innerHeight){let o=ce.findElement(t);if(!o){T.warn("Could not find HTMLCellId for visible output area",t);continue}return{cellId:ce.parse(o.id)}}}return T.warn("No visible output area found for scroll anchor"),null}function Aa(e){if(!e){T.warn("No scroll anchor provided to restore scroll position");return}let t=document.getElementById(ce.create(e.cellId));if(!t){T.warn("Could not find cell element to restore scroll position",e.cellId);return}if(!t.querySelector(`.${ze.outputArea}`)){T.warn("Could not find output area to restore scroll position",e.cellId);return}t.scrollIntoView({block:"start",behavior:"auto"})}function Oe(){let e=(0,_a.c)(2),t=L(ve),n;return e[0]===t?n=e[1]:(n=()=>{let o=Da();t(s=>({mode:lt(s.mode),cellAnchor:(o==null?void 0:o.cellId)??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{Aa(o)})})},e[0]=t,e[1]=n),n}const Ye=Qe(!1);var Pa=D();const Na=()=>{let e=(0,Pa.c)(7),{selectedLayout:t}=We(),{setLayoutView:n}=Se();if(he()&&!at("wasm_layouts"))return null;let o;e[0]===n?o=e[1]:(o=i=>n(i),e[0]=n,e[1]=o);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(ea,{className:"min-w-[110px] border-border bg-background","data-testid":"layout-select",children:(0,a.jsx)(Jt,{placeholder:"Select a view"})}),e[2]=s):s=e[2];let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(Zt,{children:(0,a.jsxs)(Qt,{children:[(0,a.jsx)(Gt,{children:"View as"}),Le.map(Ea)]})}),e[3]=r):r=e[3];let l;return e[4]!==t||e[5]!==o?(l=(0,a.jsxs)(ta,{"data-testid":"layout-select",value:t,onValueChange:o,children:[s,r]}),e[4]=t,e[5]=o,e[6]=l):l=e[6],l};function Ia(e){return(0,a.jsx)(Ke(e),{className:"h-4 w-4"})}function Ke(e){switch(e){case"vertical":return ja;case"grid":return Tt;case"slides":return Be;default:return vt(e),Bt}}function Ue(e){return Me.startCase(e)}function Ea(e){return(0,a.jsx)(Xt,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 leading-5",children:[Ia(e),(0,a.jsx)("span",{children:Ue(e)})]})},e)}async function La(e){let{filename:t,preset:n,downloadPDF:o}=e;await o({filename:t,webpdf:!1,preset:n,includeInputs:!0,rasterServer:"static"})}var Ta=D();function Ha(e){let t=(0,Ta.c)(5),{openPrompt:n,closeModal:o}=fe(),{sendCopy:s}=H(),r;return t[0]!==o||t[1]!==n||t[2]!==s||t[3]!==e?(r=()=>{if(!e)return null;let l=Ut.guessDeliminator(e);n({title:"Copy notebook",description:"Enter a new filename for the notebook copy.",defaultValue:`_${Ie.basename(e)}`,confirmText:"Copy notebook",spellCheck:!1,onConfirm:i=>{let d=l.join(Ie.dirname(e),i);s({source:e,destination:d}).then(()=>{o(),C({title:"Notebook copied",description:"A copy of the notebook has been created."}),fa(d)})}})},t[0]=o,t[1]=n,t[2]=s,t[3]=e,t[4]=r):r=t[4],r}const qa=()=>{let{updateCellConfig:e}=ge(),{saveCellConfig:t}=H();return(0,ye.useCallback)(async()=>{let n=new ot,o=je(),s=o.cellIds.inOrderIds,r={};for(let i of s){if(o.cellData[i]===void 0)continue;let{code:d,config:m}=o.cellData[i];m.hide_code||n.isSupported(d)&&(r[i]={hide_code:!0})}let l=Ce.entries(r);if(l.length!==0){await t({configs:r});for(let[i,d]of l)e({cellId:i,config:d})}},[e])};var Ra=D();function $e(){let e=(0,Ra.c)(4),{openConfirm:t}=fe(),n=L(bt),{sendRestart:o}=H(),s;return e[0]!==t||e[1]!==o||e[2]!==n?(s=()=>{t({title:"Restart Kernel",description:"This will restart the Python kernel. You'll lose all data that's in memory. You will also lose any unsaved changes, so make sure to save your work before restarting.",variant:"destructive",confirmAction:(0,a.jsx)(oa,{onClick:async()=>{n({state:xt.CLOSING}),await o(),da()},"aria-label":"Confirm Restart",children:"Restart"})})},e[0]=t,e[1]=o,e[2]=n,e[3]=s):s=e[3],s}var Ba=D(),P=e=>{e==null||e.preventDefault(),e==null||e.stopPropagation()};function Va(){var be,xe;let e=(0,Ba.c)(51),t=pa(),{openModal:n,closeModal:o}=fe(),{toggleApplication:s}=it(),{selectedPanel:r}=mt(),[l]=Ze(ve),i=de(tt),d=qa(),[m]=kt(),{updateCellConfig:w,undoDeleteCell:g,clearAllCellOutputs:u,addSetupCellIfDoesntExist:f,collapseAllCells:y,expandAllCells:k}=ge(),b=$e(),x=ha(),j=Ha(t),v=L(Ye),N=L(ft),z=L(yt),{exportAsIPYNB:ee,exportAsMarkdown:te,readCode:I,saveCellConfig:ae,updateCellOutputs:M}=H(),W=ya(),oe=de(nt),ne=de(ht),{selectedLayout:q}=We(),{setLayoutView:ie}=Se(),R=Oe(),B=((be=m.sharing)==null?void 0:be.html)??!0,V=((xe=m.sharing)==null?void 0:xe.wasm)??!0,ke=!he(),se=q==="slides",Ge=so,Je=io,F;e[0]!==t||e[1]!==W||e[2]!==M?(F=async c=>{let{preset:p,title:E}=c;if(!t){Q();return}await Pe(E,async re=>{await Ee({takeScreenshots:()=>W({progress:re}),updateCellOutputs:M}),await La({filename:t,preset:p,downloadPDF:Mt})})},e[0]=t,e[1]=W,e[2]=M,e[3]=F):F=e[3];let S=F,O;e[4]===S?O=e[5]:(O=async()=>{if(ke){await S({preset:"document",title:"Downloading Document PDF..."});return}let c=new Event("export-beforeprint"),p=new Event("export-afterprint");window.dispatchEvent(c),setTimeout(no,0),setTimeout(()=>window.dispatchEvent(p),0)},e[4]=S,e[5]=O);let Y=O,K;e[6]!==ee||e[7]!==t||e[8]!==W||e[9]!==M?(K=async()=>{if(!t){Q();return}await Pe("Downloading IPYNB...",async c=>{await Ee({takeScreenshots:()=>W({progress:c}),updateCellOutputs:M});let p=await ee({download:!1});ue(new Blob([p],{type:"application/x-ipynb+json"}),me.toIPYNB(document.title))})},e[6]=ee,e[7]=t,e[8]=W,e[9]=M,e[10]=K):K=e[10];let le=K,U;e[11]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(jt,{size:14,strokeWidth:1.5}),e[11]=U):U=e[11];let $;e[12]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),e[12]=$):$=e[12];let _;e[13]===t?_=e[14]:(_=async()=>{if(!t){Q();return}await De({filename:t,includeCode:!0})},e[13]=t,e[14]=_);let G;return e[15]!==f||e[16]!==ne||e[17]!==u||e[18]!==o||e[19]!==y||e[20]!==j||e[21]!==S||e[22]!==k||e[23]!==te||e[24]!==t||e[25]!==Y||e[26]!==le||e[27]!==oe||e[28]!==d||e[29]!==se||e[30]!==i||e[31]!==n||e[32]!==I||e[33]!==b||e[34]!==x||e[35]!==ae||e[36]!==q||e[37]!==r||e[38]!==v||e[39]!==z||e[40]!==ie||e[41]!==N||e[42]!==B||e[43]!==V||e[44]!==_||e[45]!==s||e[46]!==R||e[47]!==g||e[48]!==w||e[49]!==l.mode?(G=[{icon:U,label:"Download",handle:P,dropdown:[{icon:$,label:"Download as HTML",handle:_},{icon:(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),label:"Download as HTML (exclude code)",handle:async()=>{if(!t){Q();return}await De({filename:t,includeCode:!1})}},{icon:(0,a.jsx)(ua,{strokeWidth:1.5,style:{width:14,height:14}}),label:"Download as Markdown",handle:async()=>{let c=await te({download:!1});ue(new Blob([c],{type:"text/plain"}),me.toMarkdown(document.title))}},{icon:(0,a.jsx)(va,{size:14,strokeWidth:1.5}),label:"Download as ipynb",handle:le},{icon:(0,a.jsx)(zt,{size:14,strokeWidth:1.5}),label:"Download Python code",handle:async()=>{let c=await I();ue(new Blob([c.contents],{type:"text/plain"}),me.toPY(document.title))}},{divider:!0,icon:(0,a.jsx)(Vt,{size:14,strokeWidth:1.5}),label:"Download as PNG",disabled:l.mode!=="present",tooltip:l.mode==="present"?void 0:(0,a.jsxs)("span",{children:["Only available in app view. ",(0,a.jsx)("br",{}),"Toggle with: ",ma("global.hideCode",!1)]}),handle:oo},se?{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:P,dropdown:[{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Document Layout",handle:Y},{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Slides Layout",rightElement:Je(!0),hidden:!ke,handle:async()=>{await S({preset:"slides",title:"Downloading Slides PDF..."})}}]}:{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:Y}]},{icon:(0,a.jsx)(za,{size:14,strokeWidth:1.5}),label:"Share",handle:P,hidden:!B&&!V,dropdown:[{icon:(0,a.jsx)(Et,{size:14,strokeWidth:1.5}),label:"Publish HTML to web",hidden:!B,handle:async()=>{n((0,a.jsx)(Wa,{onClose:o}))}},{icon:(0,a.jsx)(Ft,{size:14,strokeWidth:1.5}),label:"Create WebAssembly link",hidden:!V,handle:async()=>{await X(ca({code:(await I()).contents})),C({title:"Copied",description:"Link copied to clipboard."})}}]},{icon:(0,a.jsx)(Ca,{size:14,strokeWidth:1.5}),label:"Helper panel",redundant:!0,handle:P,dropdown:ut.flatMap(c=>{let{type:p,Icon:E,hidden:re,additionalKeywords:Xe}=c;return re?[]:{label:Me.startCase(p),rightElement:Ge(r===p),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),handle:()=>s(p),additionalKeywords:Xe}})},{icon:(0,a.jsx)(Be,{size:14,strokeWidth:1.5}),label:"Present as",handle:P,dropdown:[{icon:l.mode==="present"?(0,a.jsx)(Kt,{size:14,strokeWidth:1.5}):(0,a.jsx)(Re,{size:14,strokeWidth:1.5}),label:"Toggle app view",hotkey:"global.hideCode",handle:()=>{R()}},...Le.map((c,p)=>{let E=Ke(c);return{divider:p===0,label:Ue(c),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),rightElement:(0,a.jsx)("div",{className:"w-8 flex justify-end",children:q===c&&(0,a.jsx)(Ae,{size:14})}),handle:()=>{ie(c),l.mode==="edit"&&R()}}})]},{icon:(0,a.jsx)(wa,{size:14,strokeWidth:1.5}),label:"Duplicate notebook",hidden:!t||he(),handle:j},{icon:(0,a.jsx)(Te,{size:14,strokeWidth:1.5}),label:"Copy code to clipboard",hidden:!t,handle:async()=>{await X((await I()).contents),C({title:"Copied",description:"Code copied to clipboard."})}},{icon:(0,a.jsx)(Dt,{size:14,strokeWidth:1.5}),label:"Enable all cells",hidden:!oe||i,handle:async()=>{let c=rt(je());await ae({configs:Ce.fromEntries(c.map(ao))});for(let p of c)w({cellId:p,config:{disabled:!1}})}},{divider:!0,icon:(0,a.jsx)(qe,{size:14,strokeWidth:1.5}),label:"Add setup cell",handle:()=>{f({})}},{icon:(0,a.jsx)(ct,{size:14,strokeWidth:1.5}),label:"Add database connection",handle:()=>{n((0,a.jsx)(Ne,{onClose:o}))}},{icon:(0,a.jsx)(qt,{size:14,strokeWidth:1.5}),label:"Add remote storage",handle:()=>{n((0,a.jsx)(Ne,{defaultTab:"storage",onClose:o}))}},{icon:(0,a.jsx)(Ve,{size:14,strokeWidth:1.5}),label:"Undo cell deletion",hidden:!ne||i,handle:()=>{g()}},{icon:(0,a.jsx)(Ma,{size:14,strokeWidth:1.5}),label:"Restart kernel",variant:"danger",handle:b,additionalKeywords:["reset","reload","restart"]},{icon:(0,a.jsx)(xa,{size:14,strokeWidth:1.5}),label:"Re-run all cells",redundant:!0,hotkey:"global.runAll",handle:async()=>{x()}},{icon:(0,a.jsx)(dt,{size:14,strokeWidth:1.5}),label:"Clear all outputs",redundant:!0,handle:()=>{u()}},{icon:(0,a.jsx)(Pt,{size:14,strokeWidth:1.5}),label:"Hide all markdown code",handle:d,redundant:!0},{icon:(0,a.jsx)(ba,{size:14,strokeWidth:1.5}),label:"Collapse all sections",hotkey:"global.collapseAllSections",handle:y,redundant:!0},{icon:(0,a.jsx)(ka,{size:14,strokeWidth:1.5}),label:"Expand all sections",hotkey:"global.expandAllSections",handle:k,redundant:!0},{divider:!0,icon:(0,a.jsx)(He,{size:14,strokeWidth:1.5}),label:"Command palette",hotkey:"global.commandPalette",handle:()=>v(to)},{icon:(0,a.jsx)(ga,{size:14,strokeWidth:1.5}),label:"Keyboard shortcuts",hotkey:"global.showHelp",handle:()=>z(eo)},{icon:(0,a.jsx)(Yt,{size:14,strokeWidth:1.5}),label:"User settings",handle:()=>N(Qa),redundant:!0,additionalKeywords:["preferences","options","configuration"]},{icon:(0,a.jsx)(_t,{size:14,strokeWidth:1.5}),label:"Resources",handle:P,dropdown:[{icon:(0,a.jsx)(st,{size:14,strokeWidth:1.5}),label:"Documentation",handle:Za},{icon:(0,a.jsx)(It,{size:14,strokeWidth:1.5}),label:"GitHub",handle:Xa},{icon:(0,a.jsx)(Lt,{size:14,strokeWidth:1.5}),label:"Discord Community",handle:Ja},{icon:(0,a.jsx)(Ht,{size:14,strokeWidth:1.5}),label:"YouTube",handle:Ga},{icon:(0,a.jsx)(pt,{size:14,strokeWidth:1.5}),label:"Changelog",handle:$a}]},{divider:!0,icon:(0,a.jsx)(Rt,{size:14,strokeWidth:1.5}),label:"Return home",hidden:!location.search.includes("file"),handle:Ua},{icon:(0,a.jsx)(Nt,{size:14,strokeWidth:1.5}),label:"New notebook",hidden:!location.search.includes("file"),handle:Ka}].filter(Ya).map(Fa),e[15]=f,e[16]=ne,e[17]=u,e[18]=o,e[19]=y,e[20]=j,e[21]=S,e[22]=k,e[23]=te,e[24]=t,e[25]=Y,e[26]=le,e[27]=oe,e[28]=d,e[29]=se,e[30]=i,e[31]=n,e[32]=I,e[33]=b,e[34]=x,e[35]=ae,e[36]=q,e[37]=r,e[38]=v,e[39]=z,e[40]=ie,e[41]=N,e[42]=B,e[43]=V,e[44]=_,e[45]=s,e[46]=R,e[47]=g,e[48]=w,e[49]=l.mode,e[50]=G):G=e[50],G}function Fa(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Oa)}:e}function Oa(e){return!e.hidden}function Ya(e){return!e.hidden}function Ka(){let e=$t();window.open(e,"_blank")}function Ua(){let e=document.baseURI.split("?")[0];window.open(e,"_self")}function $a(){window.open(A.releasesPage,"_blank")}function Ga(){window.open(A.youtube,"_blank")}function Ja(){window.open(A.discordLink,"_blank")}function Xa(){window.open(A.githubPage,"_blank")}function Za(){window.open(A.docsPage,"_blank")}function Qa(e){return!e}function eo(e){return!e}function to(e){return!e}function ao(e){return[e,{disabled:!1}]}async function oo(){let e=document.getElementById("App");e&&await Wt({element:e,filename:document.title,prepare:St})}function no(){return window.print()}function io(e){return e?(0,a.jsx)("span",{className:"ml-3 shrink-0 rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:"Recommended"}):null}function so(e){return(0,a.jsx)("div",{className:"w-8 flex justify-end",children:e&&(0,a.jsx)(Ae,{size:14})})}function Q(){C({title:"Error",description:"Notebooks must be named to be exported.",variant:"danger"})}export{Oe as a,qe as c,Ye as i,He as l,$e as n,Ve as o,Na as r,Re as s,Va as t,Te as u};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var ce=Object.defineProperty;var de=(t,e,n)=>e in t?ce(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var A=(t,e,n)=>de(t,typeof e!="symbol"?e+"":e,n);var at,lt,ot,ut,ct;import{c as yt,m as he}from"./useEventListener-CQbucLPR.js";import{St as pt,a as fe,c as ye,gt as pe,o as ge,wt as me}from"./vega-loader.browser-BAOZVR5y.js";const gt=Uint8Array.of(65,82,82,79,87,49),$={V1:0,V2:1,V3:2,V4:3,V5:4},S={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},l={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},mt={HALF:0,SINGLE:1,DOUBLE:2},z={DAY:0,MILLISECOND:1},m={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},C={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},W={Sparse:0,Dense:1},vt=Uint8Array,bt=Uint16Array,xt=Uint32Array,wt=BigUint64Array,It=Int8Array,ve=Int16Array,x=Int32Array,L=BigInt64Array,be=Float32Array,k=Float64Array;function xe(t,e){let n=Math.log2(t)-3;return(e?[It,ve,x,L]:[vt,bt,xt,wt])[n]}Object.getPrototypeOf(Int8Array);function X(t,e){let n=0,r=t.length;if(r<=2147483648)do{let i=n+r>>>1;t[i]<=e?n=i+1:r=i}while(n<r);else do{let i=Math.trunc((n+r)/2);t[i]<=e?n=i+1:r=i}while(n<r);return n}function J(t,e,n){if(e(t))return t;throw Error(n(t))}function w(t,e,n){return e=Array.isArray(e)?e:Object.values(e),J(t,r=>e.includes(r),n??(()=>`${t} must be one of ${e}`))}function Lt(t,e){for(let[n,r]of Object.entries(t))if(r===e)return n;return"<Unknown>"}const Z=t=>`Unsupported data type: "${Lt(l,t)}" (id ${t})`,At=(t,e,n=!0,r=null)=>({name:t,type:e,nullable:n,metadata:r});function Nt(t){return Object.hasOwn(t,"name")&&Et(t.type)}function Et(t){return typeof(t==null?void 0:t.typeId)=="number"}function B(t,e="",n=!0){return Nt(t)?t:At(e,J(t,Et,()=>"Data type expected."),n)}const we=(t,e,n=!1,r=-1)=>({typeId:l.Dictionary,id:r,dictionary:t,indices:e||St(),ordered:n}),Dt=(t=32,e=!0)=>({typeId:l.Int,bitWidth:w(t,[8,16,32,64]),signed:e,values:xe(t,e)}),St=()=>Dt(32),Ie=(t=2)=>({typeId:l.Float,precision:w(t,mt),values:[bt,be,k][t]}),Le=()=>({typeId:l.Binary,offsets:x}),Ae=()=>({typeId:l.Utf8,offsets:x}),Ne=(t,e,n=128)=>({typeId:l.Decimal,precision:t,scale:e,bitWidth:w(n,[128,256]),values:wt}),Ee=t=>({typeId:l.Date,unit:w(t,z),values:t===z.DAY?x:L}),De=(t=m.MILLISECOND,e=32)=>({typeId:l.Time,unit:w(t,m),bitWidth:w(e,[32,64]),values:e===32?x:L}),Se=(t=m.MILLISECOND,e=null)=>({typeId:l.Timestamp,unit:w(t,m),timezone:e,values:L}),Be=(t=C.MONTH_DAY_NANO)=>({typeId:l.Interval,unit:w(t,C),values:t===C.MONTH_DAY_NANO?void 0:x}),Oe=t=>({typeId:l.List,children:[B(t)],offsets:x}),Te=t=>({typeId:l.Struct,children:Array.isArray(t)&&Nt(t[0])?t:Object.entries(t).map(([e,n])=>At(e,n))}),Me=(t,e,n,r)=>(n??(n=e.map((i,s)=>s)),{typeId:l.Union,mode:w(t,W),typeIds:n,typeMap:n.reduce((i,s,a)=>(i[s]=a,i),{}),children:e.map((i,s)=>B(i,`_${s}`)),typeIdForValue:r,offsets:x}),Ce=t=>({typeId:l.FixedSizeBinary,stride:t}),Ue=(t,e)=>({typeId:l.FixedSizeList,stride:e,children:[B(t)]}),Ve=(t,e)=>({typeId:l.Map,keysSorted:t,children:[e],offsets:x}),Fe=(t=m.MILLISECOND)=>({typeId:l.Duration,unit:w(t,m),values:L}),Re=()=>({typeId:l.LargeBinary,offsets:L}),$e=()=>({typeId:l.LargeUtf8,offsets:L}),ze=t=>({typeId:l.LargeList,children:[B(t)],offsets:L}),ke=(t,e)=>({typeId:l.RunEndEncoded,children:[J(B(t,"run_ends"),n=>n.type.typeId===l.Int,()=>"Run-ends must have an integer type."),B(e,"values")]}),je=t=>({typeId:l.ListView,children:[B(t,"value")],offsets:x}),Ye=t=>({typeId:l.LargeListView,children:[B(t,"value")],offsets:L});var j=new k(2).buffer;new L(j),new xt(j),new x(j),new vt(j);function O(t){if(t>2**53-1||t<-(2**53-1))throw Error(`BigInt exceeds integer number representation: ${t}`);return Number(t)}function G(t,e){return Number(t/e)+Number(t%e)/Number(e)}var U=t=>BigInt.asUintN(64,t);function _e(t,e){let n=e<<1,r;return BigInt.asIntN(64,t[n+1])<0?(r=U(~t[n])|U(~t[n+1])<<64n,r=-(r+1n)):r=t[n]|t[n+1]<<64n,r}function He(t,e){let n=e<<2,r;return BigInt.asIntN(64,t[n+3])<0?(r=U(~t[n])|U(~t[n+1])<<64n|U(~t[n+2])<<128n|U(~t[n+3])<<192n,r=-(r+1n)):r=t[n]|t[n+1]<<64n|t[n+2]<<128n|t[n+3]<<192n,r}var Pe=new TextDecoder("utf-8");new TextEncoder;function Y(t){return Pe.decode(t)}function Bt(t,e){return(t[e>>3]&1<<e%8)!=0}function N(t,e){let n=e+h(t,e),r=n-h(t,n),i=v(t,r);return(s,a,o=null)=>{if(s<i){let u=v(t,r+s);if(u)return a(t,n+u)}return o}}function M(t,e){return e}function F(t,e){return!!We(t,e)}function We(t,e){return q(t,e)<<24>>24}function q(t,e){return t[e]}function v(t,e){return Xe(t,e)<<16>>16}function Xe(t,e){return t[e]|t[e+1]<<8}function h(t,e){return t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24}function Ot(t,e){return h(t,e)>>>0}function b(t,e){return O(BigInt.asIntN(64,BigInt(Ot(t,e))+(BigInt(Ot(t,e+4))<<32n)))}function _(t,e){let n=e+h(t,e),r=h(t,n);return n+=4,Y(t.subarray(n,n+r))}function T(t,e,n,r){if(!e)return[];let i=e+h(t,e);return Array.from({length:h(t,i)},(s,a)=>r(t,i+4+a*n))}const K=Symbol("rowIndex");function Q(t,e){class n{constructor(s){this[K]=s}toJSON(){return Mt(t,e,this[K])}}let r=n.prototype;for(let i=0;i<t.length;++i){if(Object.hasOwn(r,t[i]))continue;let s=e[i];Object.defineProperty(r,t[i],{get(){return s.at(this[K])},enumerable:!0})}return i=>new n(i)}function Tt(t,e){return n=>Mt(t,e,n)}function Mt(t,e,n){let r={};for(let i=0;i<t.length;++i)r[t[i]]=e[i].at(n);return r}function Je(t){return t instanceof P}var H=(at=class{constructor({length:t,nullCount:e,type:n,validity:r,values:i,offsets:s,sizes:a,children:o}){this.length=t,this.nullCount=e,this.type=n,this.validity=r,this.values=i,this.offsets=s,this.sizes=a,this.children=o,(!e||!this.validity)&&(this.at=u=>this.value(u))}get[Symbol.toStringTag](){return"Batch"}at(t){return this.isValid(t)?this.value(t):null}isValid(t){return Bt(this.validity,t)}value(t){return this.values[t]}slice(t,e){let n=e-t,r=Array(n);for(let i=0;i<n;++i)r[i]=this.at(t+i);return r}*[Symbol.iterator](){for(let t=0;t<this.length;++t)yield this.at(t)}},A(at,"ArrayType",null),at),P=class extends H{constructor(t){super(t);let{length:e,values:n}=this;this.values=n.subarray(0,e)}slice(t,e){return this.nullCount?super.slice(t,e):this.values.subarray(t,e)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},tt=(lt=class extends H{},A(lt,"ArrayType",k),lt),f=(ot=class extends H{},A(ot,"ArrayType",Array),ot),Ze=class extends f{value(t){return null}},V=class extends tt{value(t){return O(this.values[t])}},Ge=class extends tt{value(t){let e=this.values[t],n=(e&31744)>>10,r=(e&1023)/1024,i=(-1)**((e&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)}},qe=class extends f{value(t){return Bt(this.values,t)}},Ct=class extends H{constructor(t){super(t);let{bitWidth:e,scale:n}=this.type;this.decimal=e===128?_e:He,this.scale=10n**BigInt(n)}},Ke=(ut=class extends Ct{value(t){return G(this.decimal(this.values,t),this.scale)}},A(ut,"ArrayType",k),ut),Qe=(ct=class extends Ct{value(t){return this.decimal(this.values,t)}},A(ct,"ArrayType",Array),ct),Ut=class extends f{constructor(t){super(t),this.source=t}value(t){return new Date(this.source.value(t))}},tn=class extends tt{value(t){return 864e5*this.values[t]}};const en=V;var nn=class extends V{value(t){return super.value(t)*1e3}};const rn=V;var sn=class extends V{value(t){return G(this.values[t],1000n)}},an=class extends V{value(t){return G(this.values[t],1000000n)}},ln=class extends f{value(t){return this.values.subarray(t<<1,t+1<<1)}},on=class extends f{value(t){let e=this.values,n=t<<4;return Float64Array.of(h(e,n),h(e,n+4),b(e,n+8))}},Vt=({values:t,offsets:e},n)=>t.subarray(e[n],e[n+1]),Ft=({values:t,offsets:e},n)=>t.subarray(O(e[n]),O(e[n+1])),un=class extends f{value(t){return Vt(this,t)}},cn=class extends f{value(t){return Ft(this,t)}},dn=class extends f{value(t){return Y(Vt(this,t))}},hn=class extends f{value(t){return Y(Ft(this,t))}},fn=class extends f{value(t){let e=this.offsets;return this.children[0].slice(e[t],e[t+1])}},yn=class extends f{value(t){let e=this.offsets;return this.children[0].slice(O(e[t]),O(e[t+1]))}},pn=class extends f{value(t){let e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(e,n)}},gn=class extends f{value(t){let e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(O(e),O(n))}},Rt=class extends f{constructor(t){super(t),this.stride=this.type.stride}},mn=class extends Rt{value(t){let{stride:e,values:n}=this;return n.subarray(t*e,(t+1)*e)}},vn=class extends Rt{value(t){let{children:e,stride:n}=this;return e[0].slice(t*n,(t+1)*n)}};function $t({children:t,offsets:e},n){let[r,i]=t[0].children,s=e[n],a=e[n+1],o=[];for(let u=s;u<a;++u)o.push([r.at(u),i.at(u)]);return o}var bn=class extends f{value(t){return $t(this,t)}},xn=class extends f{value(t){return new Map($t(this,t))}},zt=class extends f{constructor({typeIds:t,...e}){super(e),this.typeIds=t,this.typeMap=this.type.typeMap}value(t,e=t){let{typeIds:n,children:r,typeMap:i}=this;return r[i[n[t]]].at(e)}},wn=class extends zt{value(t){return super.value(t,this.offsets[t])}},kt=class extends f{constructor(t,e=Tt){super(t),this.names=this.type.children.map(n=>n.name),this.factory=e(this.names,this.children)}value(t){return this.factory(t)}},In=class extends kt{constructor(t){super(t,Q)}},Ln=class extends f{value(t){let[{values:e},n]=this.children;return n.at(X(e,t))}},An=class extends f{setDictionary(t){return this.dictionary=t,this.cache=t.cache(),this}value(t){return this.cache[this.key(t)]}key(t){return this.values[t]}},jt=class extends f{constructor({data:t,...e}){super(e),this.data=t}view(t){let{values:e,data:n}=this,r=t<<4,i=r+4,s=e,a=h(s,r);return a>12&&(i=h(s,r+12),s=n[h(s,r+8)]),s.subarray(i,i+a)}},Nn=class extends jt{value(t){return this.view(t)}},En=class extends jt{value(t){return Y(this.view(t))}};function Yt(t){let e=[];return{add(n){return e.push(n),this},clear:()=>e=[],done:()=>new Dn(e,t)}}var Dn=class{constructor(t,e=(n=>(n=t[0])==null?void 0:n.type)()){this.type=e,this.length=t.reduce((s,a)=>s+a.length,0),this.nullCount=t.reduce((s,a)=>s+a.nullCount,0),this.data=t;let r=t.length,i=new Int32Array(r+1);if(r===1){let[s]=t;i[1]=s.length,this.at=a=>s.at(a)}else for(let s=0,a=0;s<r;++s)i[s+1]=a+=t[s].length;this.offsets=i}get[Symbol.toStringTag](){return"Column"}[Symbol.iterator](){let t=this.data;return t.length===1?t[0][Symbol.iterator]():Sn(t)}at(t){var i;let{data:e,offsets:n}=this,r=X(n,t)-1;return(i=e[r])==null?void 0:i.at(t-n[r])}get(t){return this.at(t)}toArray(){let{length:t,nullCount:e,data:n}=this,r=!e&&Je(n[0]),i=n.length;if(r&&i===1)return n[0].values;let s=new(!i||e>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(t);return r?Bn(s,n):On(s,n)}cache(){return this._cache??(this._cache=this.toArray())}};function*Sn(t){for(let e=0;e<t.length;++e){let n=t[e][Symbol.iterator]();for(let r=n.next();!r.done;r=n.next())yield r.value}}function Bn(t,e){for(let n=0,r=0;n<e.length;++n){let{values:i}=e[n];t.set(i,r),r+=i.length}return t}function On(t,e){let n=-1;for(let r=0;r<e.length;++r){let i=e[r];for(let s=0;s<i.length;++s)t[++n]=i.at(s)}return t}var Tn=class oe{constructor(e,n,r=!1){let i=e.fields.map(a=>a.name);this.schema=e,this.names=i,this.children=n,this.factory=r?Q:Tt;let s=[];this.getFactory=a=>s[a]??(s[a]=this.factory(i,n.map(o=>o.data[a])))}get[Symbol.toStringTag](){return"Table"}get numCols(){return this.names.length}get numRows(){var e;return((e=this.children[0])==null?void 0:e.length)??0}getChildAt(e){return this.children[e]}getChild(e){let n=this.names.findIndex(r=>r===e);return n>-1?this.children[n]:void 0}selectAt(e,n=[]){let{children:r,factory:i,schema:s}=this,{fields:a}=s;return new oe({...s,fields:e.map((o,u)=>Mn(a[o],n[u]))},e.map(o=>r[o]),i===Q)}select(e,n){let r=this.names,i=e.map(s=>r.indexOf(s));return this.selectAt(i,n)}toColumns(){let{children:e,names:n}=this,r={};return n.forEach((i,s)=>{var a;return r[i]=((a=e[s])==null?void 0:a.toArray())??[]}),r}toArray(){var a;let{children:e,getFactory:n,numRows:r}=this,i=((a=e[0])==null?void 0:a.data)??[],s=Array(r);for(let o=0,u=-1;o<i.length;++o){let d=n(o);for(let c=0;c<i[o].length;++c)s[++u]=d(c)}return s}*[Symbol.iterator](){var i;let{children:e,getFactory:n}=this,r=((i=e[0])==null?void 0:i.data)??[];for(let s=0;s<r.length;++s){let a=n(s);for(let o=0;o<r[s].length;++o)yield a(o)}}at(e){let{children:n,getFactory:r,numRows:i}=this;if(e<0||e>=i)return null;let[{offsets:s}]=n,a=X(s,e)-1;return r(a)(e-s[a])}get(e){return this.at(e)}};function Mn(t,e){return e!=null&&e!==t.name?{...t,name:e}:t}function Cn(t,e={}){let{typeId:n,bitWidth:r,precision:i,unit:s}=t,{useBigInt:a,useDate:o,useDecimalBigInt:u,useMap:d,useProxy:c}=e;switch(n){case l.Null:return Ze;case l.Bool:return qe;case l.Int:case l.Time:case l.Duration:return a||r<64?P:V;case l.Float:return i?P:Ge;case l.Date:return _t(s===z.DAY?tn:en,o&&Ut);case l.Timestamp:return _t(s===m.SECOND?nn:s===m.MILLISECOND?rn:s===m.MICROSECOND?sn:an,o&&Ut);case l.Decimal:return u?Qe:Ke;case l.Interval:return s===C.DAY_TIME?ln:s===C.YEAR_MONTH?P:on;case l.FixedSizeBinary:return mn;case l.Utf8:return dn;case l.LargeUtf8:return hn;case l.Binary:return un;case l.LargeBinary:return cn;case l.BinaryView:return Nn;case l.Utf8View:return En;case l.List:return fn;case l.LargeList:return yn;case l.Map:return d?xn:bn;case l.ListView:return pn;case l.LargeListView:return gn;case l.FixedSizeList:return vn;case l.Struct:return c?In:kt;case l.RunEndEncoded:return Ln;case l.Dictionary:return An;case l.Union:return t.mode?wn:zt}throw Error(Z(n))}function _t(t,e){return e?class extends e{constructor(n){super(new t(n))}}:t}function Un(t,e){return{offset:b(t,e),metadataLength:h(t,e+8),bodyLength:b(t,e+16)}}function Ht(t,e){return T(t,e,24,Un)}function Pt(t,e,n){let r=N(t,e);if(r(10,M,0))throw Error("Record batch compression not implemented");let i=n<$.V4?8:0;return{length:r(4,b,0),nodes:T(t,r(6,M),16,(s,a)=>({length:b(s,a),nullCount:b(s,a+8)})),regions:T(t,r(8,M),16+i,(s,a)=>({offset:b(s,a+i),length:b(s,a+i+8)})),variadic:T(t,r(12,M),8,b)}}function Vn(t,e,n){let r=N(t,e);return{id:r(4,b,0),data:r(6,(i,s)=>Pt(i,s,n)),isDelta:r(8,F,!1)}}function Wt(t,e,n,r){w(n,l,Z);let i=N(t,e);switch(n){case l.Binary:return Le();case l.Utf8:return Ae();case l.LargeBinary:return Re();case l.LargeUtf8:return $e();case l.List:return Oe(r[0]);case l.ListView:return je(r[0]);case l.LargeList:return ze(r[0]);case l.LargeListView:return Ye(r[0]);case l.Struct:return Te(r);case l.RunEndEncoded:return ke(r[0],r[1]);case l.Int:return Dt(i(4,h,0),i(6,F,!1));case l.Float:return Ie(i(4,v,mt.HALF));case l.Decimal:return Ne(i(4,h,0),i(6,h,0),i(8,h,128));case l.Date:return Ee(i(4,v,z.MILLISECOND));case l.Time:return De(i(4,v,m.MILLISECOND),i(6,h,32));case l.Timestamp:return Se(i(4,v,m.SECOND),i(6,_));case l.Interval:return Be(i(4,v,C.YEAR_MONTH));case l.Duration:return Fe(i(4,v,m.MILLISECOND));case l.FixedSizeBinary:return Ce(i(4,h,0));case l.FixedSizeList:return Ue(r[0],i(4,h,0));case l.Map:return Ve(i(4,F,!1),r[0]);case l.Union:return Me(i(4,v,W.Sparse),r,T(t,i(6,M),4,h))}return{typeId:n}}function et(t,e){let n=T(t,e,4,(r,i)=>{let s=N(r,i);return[s(4,_),s(6,_)]});return n.length?new Map(n):null}function Xt(t,e,n){let r=N(t,e);return{version:n,endianness:r(4,v,0),fields:r(6,Fn,[]),metadata:r(8,et)}}function Fn(t,e){return T(t,e,4,Jt)}function Jt(t,e){let n=N(t,e),r=n(8,q,l.NONE),i=n(10,M,0),s=n(12,$n),a=Wt(t,i,r,n(14,(o,u)=>Rn(o,u)));return s&&(s.dictionary=a,a=s),{name:n(4,_),type:a,nullable:n(6,F,!1),metadata:n(16,et)}}function Rn(t,e){let n=T(t,e,4,Jt);return n.length?n:null}function $n(t,e){if(!e)return null;let n=N(t,e);return we(null,n(6,zn,St()),n(8,F,!1),n(4,b,0))}function zn(t,e){return Wt(t,e,l.Int)}var kn=(t,e)=>`Expected to read ${t} metadata bytes, but only read ${e}.`,jn=(t,e)=>`Expected to read ${t} bytes for message body, but only read ${e}.`,Yn=t=>`Unsupported message type: ${t} (${Lt(S,t)})`;function nt(t,e){let n=h(t,e)||0;if(e+=4,n===-1&&(n=h(t,e)||0,e+=4),n===0)return null;let r=t.subarray(e,e+=n);if(r.byteLength<n)throw Error(kn(n,r.byteLength));let i=N(r,0),s=i(4,v,$.V1),a=i(6,q,S.NONE),o=i(8,M,0),u=i(10,b,0),d;if(o){let c=a===S.Schema?Xt:a===S.DictionaryBatch?Vn:a===S.RecordBatch?Pt:null;if(!c)throw Error(Yn(a));if(d=c(r,o,s),u>0){let g=t.subarray(e,e+=u);if(g.byteLength<u)throw Error(jn(u,g.byteLength));d.body=g}}return{version:s,type:a,index:e,content:d}}function _n(t){let e=t instanceof ArrayBuffer?new Uint8Array(t):t;return e instanceof Uint8Array&&Hn(e)?Wn(e):Pn(e)}function Hn(t){if(!t||t.length<4)return!1;for(let e=0;e<6;++e)if(gt[e]!==t[e])return!1;return!0}function Pn(t){let e=[t].flat(),n,r=[],i=[];for(let s of e){if(!(s instanceof Uint8Array))throw Error("IPC data batch was not a Uint8Array.");let a=0;for(;;){let o=nt(s,a);if(o===null)break;if(a=o.index,o.content)switch(o.type){case S.Schema:n||(n=o.content);break;case S.RecordBatch:r.push(o.content);break;case S.DictionaryBatch:i.push(o.content);break}}}return{schema:n,dictionaries:i,records:r,metadata:null}}function Wn(t){let e=t.byteLength-(gt.length+4),n=N(t,e-h(t,e)),r=n(4,v,$.V1),i=n(8,Ht,[]),s=n(10,Ht,[]);return{schema:n(6,(a,o)=>Xt(a,o,r)),dictionaries:i.map(({offset:a})=>nt(t,a).content),records:s.map(({offset:a})=>nt(t,a).content),metadata:n(12,et)}}function rt(t,e){return Xn(_n(t),e)}function Xn(t,e={}){let{schema:n={fields:[]},dictionaries:r,records:i}=t,{version:s,fields:a}=n,o=new Map,u=Zn(e,s,o),d=new Map;Jn(n,y=>{let p=y.type;p.typeId===l.Dictionary&&d.set(p.id,p.dictionary)});let c=new Map;for(let y of r){let{id:p,data:E,isDelta:D,body:ue}=y,dt=d.get(p),ht=it(dt,u({...E,body:ue}));if(c.has(p)){let ft=c.get(p);D||ft.clear(),ft.add(ht)}else{if(D)throw Error("Delta update can not be first dictionary batch.");c.set(p,Yt(dt).add(ht))}}c.forEach((y,p)=>o.set(p,y.done()));let g=a.map(y=>Yt(y.type));for(let y of i){let p=u(y);a.forEach((E,D)=>g[D].add(it(E.type,p)))}return new Tn(n,g.map(y=>y.done()),e.useProxy)}function Jn(t,e){t.fields.forEach(function n(r){var i,s,a;e(r),(s=(i=r.type.dictionary)==null?void 0:i.children)==null||s.forEach(n),(a=r.type.children)==null||a.forEach(n)})}function Zn(t,e,n){let r={version:e,options:t,dictionary:i=>n.get(i)};return i=>{let{length:s,nodes:a,regions:o,variadic:u,body:d}=i,c=-1,g=-1,y=-1;return{...r,length:s,node:()=>a[++c],buffer:p=>{let{length:E,offset:D}=o[++g];return p?new p(d.buffer,d.byteOffset+D,E/p.BYTES_PER_ELEMENT):d.subarray(D,D+E)},variadic:()=>u[++y],visit(p){return p.map(E=>it(E.type,this))}}}}function it(t,e){let{typeId:n}=t,{length:r,options:i,node:s,buffer:a,variadic:o,version:u}=e,d=Cn(t,i);if(n===l.Null)return new d({length:r,nullCount:r,type:t});let c={...s(),type:t};switch(n){case l.Bool:case l.Int:case l.Time:case l.Duration:case l.Float:case l.Decimal:case l.Date:case l.Timestamp:case l.Interval:case l.FixedSizeBinary:return new d({...c,validity:a(),values:a(t.values)});case l.Utf8:case l.LargeUtf8:case l.Binary:case l.LargeBinary:return new d({...c,validity:a(),offsets:a(t.offsets),values:a()});case l.BinaryView:case l.Utf8View:return new d({...c,validity:a(),values:a(),data:Array.from({length:o()},()=>a())});case l.List:case l.LargeList:case l.Map:return new d({...c,validity:a(),offsets:a(t.offsets),children:e.visit(t.children)});case l.ListView:case l.LargeListView:return new d({...c,validity:a(),offsets:a(t.offsets),sizes:a(t.offsets),children:e.visit(t.children)});case l.FixedSizeList:case l.Struct:return new d({...c,validity:a(),children:e.visit(t.children)});case l.RunEndEncoded:return new d({...c,children:e.visit(t.children)});case l.Dictionary:{let{id:g,indices:y}=t;return new d({...c,validity:a(),values:a(y.values)}).setDictionary(e.dictionary(g))}case l.Union:return u<$.V5&&a(),new d({...c,typeIds:a(It),offsets:t.mode===W.Sparse?null:a(t.offsets),children:e.visit(t.children)});default:throw Error(Z(n))}}new Uint16Array(new Uint8Array([1,0]).buffer)[0];function R(t,e){let n=new Map;return(...r)=>{let i=e(...r);if(n.has(i))return n.get(i);let s=t(...r).finally(()=>{n.delete(i)});return n.set(i,s),s}}function st(t,e){return ge(t,e)}function Gn(){return fe()}const I=ye;function Zt(){let t=qn(Gn()),e=n=>JSON.stringify(n);return{load:R(t.load.bind(t),e),sanitize:R(t.sanitize.bind(t),e),http:R(t.http.bind(t),e),file:R(t.file.bind(t),e)}}function qn(t){return{...t,async load(e,n){return e.endsWith(".arrow")?rt(await Gt(e),{useProxy:!1}).toArray():t.load(e,n)}}}const Gt=R(t=>fetch(t).then(e=>e.arrayBuffer()),t=>t);var qt=I.integer,Kt=I.number,Kn=I.date,Qn=I.boolean,Qt=()=>(I.integer=t=>{if(t==="")return"";if(t==="-inf"||t==="inf")return t;function e(r){let i=qt(r);return Number.isNaN(i)?r:i}let n=Number.parseInt(t,10);if(Number.isNaN(n))return t;if(!(Math.abs(n)>2**53-1))return e(t);try{return BigInt(t)}catch{return e(t)}},I.number=t=>{if(t==="-inf"||t==="inf")return t;let e=Kt(t);return Number.isNaN(e)?t:e},()=>{I.integer=qt,I.number=Kt}),te=()=>(I.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 he.warn(`Failed to parse date: ${t}`),t}},()=>{I.date=Kn});I.boolean=t=>t==="True"?!0:t==="False"?!1:Qn(t);const ee=Zt();async function tr(t,e,n={}){let{handleBigIntAndNumberLike:r=!1,replacePeriod:i=!1}=n;if(t.endsWith(".arrow")||(e==null?void 0:e.type)==="arrow")return rt(await Gt(t),{useProxy:!0,useDate:!0,useBigInt:r}).toArray();let s=[te];r&&s.push(Qt);let a=[];try{let o=await ee.load(t);if(!e){if(typeof o=="string")try{JSON.parse(o),e={type:"json"}}catch{e={type:"csv",parse:"auto"}}typeof o=="object"&&(e={type:"json"})}let u=(e==null?void 0:e.type)==="csv";u&&typeof o=="string"&&(o=nr(o)),u&&typeof o=="string"&&i&&(o=rr(o));let d=(e==null?void 0:e.parse)||"auto";return typeof d=="object"&&(d=yt.mapValues(d,c=>c==="time"?"string":c==="datetime"?"date":c)),a=s.map(c=>c()),u?st(o,{...e,parse:d}):st(o,e)}finally{a.forEach(o=>o())}}function er(t,e=!0){let n=[te];e&&n.push(Qt);let r=n.map(s=>s()),i=st(t,{type:"csv",parse:"auto"});return r.forEach(s=>s()),i}function nr(t){return t!=null&&t.includes(",")?ne(t,e=>{let n=new Set;return e.map(r=>{let i=sr(r,n);return n.add(i),i})}):t}function rr(t){return t!=null&&t.includes(".")?ne(t,e=>e.map(n=>n.replaceAll(".","\u2024"))):t}function ne(t,e){let n=t.split(`
|
|
1
|
+
var de=Object.defineProperty;var he=(t,e,n)=>e in t?de(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var A=(t,e,n)=>he(t,typeof e!="symbol"?e+"":e,n);var at,lt,ot,ut,ct;import{c as yt,m as fe}from"./useEventListener-CQbucLPR.js";import{St as pt,a as ye,c as pe,gt as ge,o as me,wt as ve}from"./vega-loader.browser-BAOZVR5y.js";const gt=Uint8Array.of(65,82,82,79,87,49),$={V1:0,V2:1,V3:2,V4:3,V5:4},S={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},l={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},mt={HALF:0,SINGLE:1,DOUBLE:2},z={DAY:0,MILLISECOND:1},m={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},C={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},W={Sparse:0,Dense:1},vt=Uint8Array,bt=Uint16Array,xt=Uint32Array,wt=BigUint64Array,It=Int8Array,be=Int16Array,x=Int32Array,L=BigInt64Array,xe=Float32Array,k=Float64Array;function we(t,e){let n=Math.log2(t)-3;return(e?[It,be,x,L]:[vt,bt,xt,wt])[n]}Object.getPrototypeOf(Int8Array);function X(t,e){let n=0,r=t.length;if(r<=2147483648)do{let i=n+r>>>1;t[i]<=e?n=i+1:r=i}while(n<r);else do{let i=Math.trunc((n+r)/2);t[i]<=e?n=i+1:r=i}while(n<r);return n}function J(t,e,n){if(e(t))return t;throw Error(n(t))}function w(t,e,n){return e=Array.isArray(e)?e:Object.values(e),J(t,r=>e.includes(r),n??(()=>`${t} must be one of ${e}`))}function Lt(t,e){for(let[n,r]of Object.entries(t))if(r===e)return n;return"<Unknown>"}const Z=t=>`Unsupported data type: "${Lt(l,t)}" (id ${t})`,At=(t,e,n=!0,r=null)=>({name:t,type:e,nullable:n,metadata:r});function Nt(t){return Object.hasOwn(t,"name")&&Et(t.type)}function Et(t){return typeof(t==null?void 0:t.typeId)=="number"}function B(t,e="",n=!0){return Nt(t)?t:At(e,J(t,Et,()=>"Data type expected."),n)}const Ie=(t,e,n=!1,r=-1)=>({typeId:l.Dictionary,id:r,dictionary:t,indices:e||St(),ordered:n}),Dt=(t=32,e=!0)=>({typeId:l.Int,bitWidth:w(t,[8,16,32,64]),signed:e,values:we(t,e)}),St=()=>Dt(32),Le=(t=2)=>({typeId:l.Float,precision:w(t,mt),values:[bt,xe,k][t]}),Ae=()=>({typeId:l.Binary,offsets:x}),Ne=()=>({typeId:l.Utf8,offsets:x}),Ee=(t,e,n=128)=>({typeId:l.Decimal,precision:t,scale:e,bitWidth:w(n,[128,256]),values:wt}),De=t=>({typeId:l.Date,unit:w(t,z),values:t===z.DAY?x:L}),Se=(t=m.MILLISECOND,e=32)=>({typeId:l.Time,unit:w(t,m),bitWidth:w(e,[32,64]),values:e===32?x:L}),Be=(t=m.MILLISECOND,e=null)=>({typeId:l.Timestamp,unit:w(t,m),timezone:e,values:L}),Oe=(t=C.MONTH_DAY_NANO)=>({typeId:l.Interval,unit:w(t,C),values:t===C.MONTH_DAY_NANO?void 0:x}),Te=t=>({typeId:l.List,children:[B(t)],offsets:x}),Me=t=>({typeId:l.Struct,children:Array.isArray(t)&&Nt(t[0])?t:Object.entries(t).map(([e,n])=>At(e,n))}),Ce=(t,e,n,r)=>(n??(n=e.map((i,s)=>s)),{typeId:l.Union,mode:w(t,W),typeIds:n,typeMap:n.reduce((i,s,a)=>(i[s]=a,i),{}),children:e.map((i,s)=>B(i,`_${s}`)),typeIdForValue:r,offsets:x}),Ue=t=>({typeId:l.FixedSizeBinary,stride:t}),Ve=(t,e)=>({typeId:l.FixedSizeList,stride:e,children:[B(t)]}),Fe=(t,e)=>({typeId:l.Map,keysSorted:t,children:[e],offsets:x}),Re=(t=m.MILLISECOND)=>({typeId:l.Duration,unit:w(t,m),values:L}),$e=()=>({typeId:l.LargeBinary,offsets:L}),ze=()=>({typeId:l.LargeUtf8,offsets:L}),ke=t=>({typeId:l.LargeList,children:[B(t)],offsets:L}),je=(t,e)=>({typeId:l.RunEndEncoded,children:[J(B(t,"run_ends"),n=>n.type.typeId===l.Int,()=>"Run-ends must have an integer type."),B(e,"values")]}),Ye=t=>({typeId:l.ListView,children:[B(t,"value")],offsets:x}),_e=t=>({typeId:l.LargeListView,children:[B(t,"value")],offsets:L});var j=new k(2).buffer;new L(j),new xt(j),new x(j),new vt(j);function O(t){if(t>2**53-1||t<-(2**53-1))throw Error(`BigInt exceeds integer number representation: ${t}`);return Number(t)}function G(t,e){return Number(t/e)+Number(t%e)/Number(e)}var U=t=>BigInt.asUintN(64,t);function He(t,e){let n=e<<1,r;return BigInt.asIntN(64,t[n+1])<0?(r=U(~t[n])|U(~t[n+1])<<64n,r=-(r+1n)):r=t[n]|t[n+1]<<64n,r}function Pe(t,e){let n=e<<2,r;return BigInt.asIntN(64,t[n+3])<0?(r=U(~t[n])|U(~t[n+1])<<64n|U(~t[n+2])<<128n|U(~t[n+3])<<192n,r=-(r+1n)):r=t[n]|t[n+1]<<64n|t[n+2]<<128n|t[n+3]<<192n,r}var We=new TextDecoder("utf-8");new TextEncoder;function Y(t){return We.decode(t)}function Bt(t,e){return(t[e>>3]&1<<e%8)!=0}function N(t,e){let n=e+h(t,e),r=n-h(t,n),i=v(t,r);return(s,a,o=null)=>{if(s<i){let u=v(t,r+s);if(u)return a(t,n+u)}return o}}function M(t,e){return e}function F(t,e){return!!Xe(t,e)}function Xe(t,e){return q(t,e)<<24>>24}function q(t,e){return t[e]}function v(t,e){return Je(t,e)<<16>>16}function Je(t,e){return t[e]|t[e+1]<<8}function h(t,e){return t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24}function Ot(t,e){return h(t,e)>>>0}function b(t,e){return O(BigInt.asIntN(64,BigInt(Ot(t,e))+(BigInt(Ot(t,e+4))<<32n)))}function _(t,e){let n=e+h(t,e),r=h(t,n);return n+=4,Y(t.subarray(n,n+r))}function T(t,e,n,r){if(!e)return[];let i=e+h(t,e);return Array.from({length:h(t,i)},(s,a)=>r(t,i+4+a*n))}const K=Symbol("rowIndex");function Q(t,e){class n{constructor(s){this[K]=s}toJSON(){return Mt(t,e,this[K])}}let r=n.prototype;for(let i=0;i<t.length;++i){if(Object.hasOwn(r,t[i]))continue;let s=e[i];Object.defineProperty(r,t[i],{get(){return s.at(this[K])},enumerable:!0})}return i=>new n(i)}function Tt(t,e){return n=>Mt(t,e,n)}function Mt(t,e,n){let r={};for(let i=0;i<t.length;++i)r[t[i]]=e[i].at(n);return r}function Ze(t){return t instanceof P}var H=(at=class{constructor({length:t,nullCount:e,type:n,validity:r,values:i,offsets:s,sizes:a,children:o}){this.length=t,this.nullCount=e,this.type=n,this.validity=r,this.values=i,this.offsets=s,this.sizes=a,this.children=o,(!e||!this.validity)&&(this.at=u=>this.value(u))}get[Symbol.toStringTag](){return"Batch"}at(t){return this.isValid(t)?this.value(t):null}isValid(t){return Bt(this.validity,t)}value(t){return this.values[t]}slice(t,e){let n=e-t,r=Array(n);for(let i=0;i<n;++i)r[i]=this.at(t+i);return r}*[Symbol.iterator](){for(let t=0;t<this.length;++t)yield this.at(t)}},A(at,"ArrayType",null),at),P=class extends H{constructor(t){super(t);let{length:e,values:n}=this;this.values=n.subarray(0,e)}slice(t,e){return this.nullCount?super.slice(t,e):this.values.subarray(t,e)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},tt=(lt=class extends H{},A(lt,"ArrayType",k),lt),f=(ot=class extends H{},A(ot,"ArrayType",Array),ot),Ge=class extends f{value(t){return null}},V=class extends tt{value(t){return O(this.values[t])}},qe=class extends tt{value(t){let e=this.values[t],n=(e&31744)>>10,r=(e&1023)/1024,i=(-1)**((e&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)}},Ke=class extends f{value(t){return Bt(this.values,t)}},Ct=class extends H{constructor(t){super(t);let{bitWidth:e,scale:n}=this.type;this.decimal=e===128?He:Pe,this.scale=10n**BigInt(n)}},Qe=(ut=class extends Ct{value(t){return G(this.decimal(this.values,t),this.scale)}},A(ut,"ArrayType",k),ut),tn=(ct=class extends Ct{value(t){return this.decimal(this.values,t)}},A(ct,"ArrayType",Array),ct),Ut=class extends f{constructor(t){super(t),this.source=t}value(t){return new Date(this.source.value(t))}},en=class extends tt{value(t){return 864e5*this.values[t]}};const nn=V;var rn=class extends V{value(t){return super.value(t)*1e3}};const sn=V;var an=class extends V{value(t){return G(this.values[t],1000n)}},ln=class extends V{value(t){return G(this.values[t],1000000n)}},on=class extends f{value(t){return this.values.subarray(t<<1,t+1<<1)}},un=class extends f{value(t){let e=this.values,n=t<<4;return Float64Array.of(h(e,n),h(e,n+4),b(e,n+8))}},Vt=({values:t,offsets:e},n)=>t.subarray(e[n],e[n+1]),Ft=({values:t,offsets:e},n)=>t.subarray(O(e[n]),O(e[n+1])),cn=class extends f{value(t){return Vt(this,t)}},dn=class extends f{value(t){return Ft(this,t)}},hn=class extends f{value(t){return Y(Vt(this,t))}},fn=class extends f{value(t){return Y(Ft(this,t))}},yn=class extends f{value(t){let e=this.offsets;return this.children[0].slice(e[t],e[t+1])}},pn=class extends f{value(t){let e=this.offsets;return this.children[0].slice(O(e[t]),O(e[t+1]))}},gn=class extends f{value(t){let e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(e,n)}},mn=class extends f{value(t){let e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(O(e),O(n))}},Rt=class extends f{constructor(t){super(t),this.stride=this.type.stride}},vn=class extends Rt{value(t){let{stride:e,values:n}=this;return n.subarray(t*e,(t+1)*e)}},bn=class extends Rt{value(t){let{children:e,stride:n}=this;return e[0].slice(t*n,(t+1)*n)}};function $t({children:t,offsets:e},n){let[r,i]=t[0].children,s=e[n],a=e[n+1],o=[];for(let u=s;u<a;++u)o.push([r.at(u),i.at(u)]);return o}var xn=class extends f{value(t){return $t(this,t)}},wn=class extends f{value(t){return new Map($t(this,t))}},zt=class extends f{constructor({typeIds:t,...e}){super(e),this.typeIds=t,this.typeMap=this.type.typeMap}value(t,e=t){let{typeIds:n,children:r,typeMap:i}=this;return r[i[n[t]]].at(e)}},In=class extends zt{value(t){return super.value(t,this.offsets[t])}},kt=class extends f{constructor(t,e=Tt){super(t),this.names=this.type.children.map(n=>n.name),this.factory=e(this.names,this.children)}value(t){return this.factory(t)}},Ln=class extends kt{constructor(t){super(t,Q)}},An=class extends f{value(t){let[{values:e},n]=this.children;return n.at(X(e,t))}},Nn=class extends f{setDictionary(t){return this.dictionary=t,this.cache=t.cache(),this}value(t){return this.cache[this.key(t)]}key(t){return this.values[t]}},jt=class extends f{constructor({data:t,...e}){super(e),this.data=t}view(t){let{values:e,data:n}=this,r=t<<4,i=r+4,s=e,a=h(s,r);return a>12&&(i=h(s,r+12),s=n[h(s,r+8)]),s.subarray(i,i+a)}},En=class extends jt{value(t){return this.view(t)}},Dn=class extends jt{value(t){return Y(this.view(t))}};function Yt(t){let e=[];return{add(n){return e.push(n),this},clear:()=>e=[],done:()=>new Sn(e,t)}}var Sn=class{constructor(t,e=(n=>(n=t[0])==null?void 0:n.type)()){this.type=e,this.length=t.reduce((s,a)=>s+a.length,0),this.nullCount=t.reduce((s,a)=>s+a.nullCount,0),this.data=t;let r=t.length,i=new Int32Array(r+1);if(r===1){let[s]=t;i[1]=s.length,this.at=a=>s.at(a)}else for(let s=0,a=0;s<r;++s)i[s+1]=a+=t[s].length;this.offsets=i}get[Symbol.toStringTag](){return"Column"}[Symbol.iterator](){let t=this.data;return t.length===1?t[0][Symbol.iterator]():Bn(t)}at(t){var i;let{data:e,offsets:n}=this,r=X(n,t)-1;return(i=e[r])==null?void 0:i.at(t-n[r])}get(t){return this.at(t)}toArray(){let{length:t,nullCount:e,data:n}=this,r=!e&&Ze(n[0]),i=n.length;if(r&&i===1)return n[0].values;let s=new(!i||e>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(t);return r?On(s,n):Tn(s,n)}cache(){return this._cache??(this._cache=this.toArray())}};function*Bn(t){for(let e=0;e<t.length;++e){let n=t[e][Symbol.iterator]();for(let r=n.next();!r.done;r=n.next())yield r.value}}function On(t,e){for(let n=0,r=0;n<e.length;++n){let{values:i}=e[n];t.set(i,r),r+=i.length}return t}function Tn(t,e){let n=-1;for(let r=0;r<e.length;++r){let i=e[r];for(let s=0;s<i.length;++s)t[++n]=i.at(s)}return t}var Mn=class ue{constructor(e,n,r=!1){let i=e.fields.map(a=>a.name);this.schema=e,this.names=i,this.children=n,this.factory=r?Q:Tt;let s=[];this.getFactory=a=>s[a]??(s[a]=this.factory(i,n.map(o=>o.data[a])))}get[Symbol.toStringTag](){return"Table"}get numCols(){return this.names.length}get numRows(){var e;return((e=this.children[0])==null?void 0:e.length)??0}getChildAt(e){return this.children[e]}getChild(e){let n=this.names.findIndex(r=>r===e);return n>-1?this.children[n]:void 0}selectAt(e,n=[]){let{children:r,factory:i,schema:s}=this,{fields:a}=s;return new ue({...s,fields:e.map((o,u)=>Cn(a[o],n[u]))},e.map(o=>r[o]),i===Q)}select(e,n){let r=this.names,i=e.map(s=>r.indexOf(s));return this.selectAt(i,n)}toColumns(){let{children:e,names:n}=this,r={};return n.forEach((i,s)=>{var a;return r[i]=((a=e[s])==null?void 0:a.toArray())??[]}),r}toArray(){var a;let{children:e,getFactory:n,numRows:r}=this,i=((a=e[0])==null?void 0:a.data)??[],s=Array(r);for(let o=0,u=-1;o<i.length;++o){let d=n(o);for(let c=0;c<i[o].length;++c)s[++u]=d(c)}return s}*[Symbol.iterator](){var i;let{children:e,getFactory:n}=this,r=((i=e[0])==null?void 0:i.data)??[];for(let s=0;s<r.length;++s){let a=n(s);for(let o=0;o<r[s].length;++o)yield a(o)}}at(e){let{children:n,getFactory:r,numRows:i}=this;if(e<0||e>=i)return null;let[{offsets:s}]=n,a=X(s,e)-1;return r(a)(e-s[a])}get(e){return this.at(e)}};function Cn(t,e){return e!=null&&e!==t.name?{...t,name:e}:t}function Un(t,e={}){let{typeId:n,bitWidth:r,precision:i,unit:s}=t,{useBigInt:a,useDate:o,useDecimalBigInt:u,useMap:d,useProxy:c}=e;switch(n){case l.Null:return Ge;case l.Bool:return Ke;case l.Int:case l.Time:case l.Duration:return a||r<64?P:V;case l.Float:return i?P:qe;case l.Date:return _t(s===z.DAY?en:nn,o&&Ut);case l.Timestamp:return _t(s===m.SECOND?rn:s===m.MILLISECOND?sn:s===m.MICROSECOND?an:ln,o&&Ut);case l.Decimal:return u?tn:Qe;case l.Interval:return s===C.DAY_TIME?on:s===C.YEAR_MONTH?P:un;case l.FixedSizeBinary:return vn;case l.Utf8:return hn;case l.LargeUtf8:return fn;case l.Binary:return cn;case l.LargeBinary:return dn;case l.BinaryView:return En;case l.Utf8View:return Dn;case l.List:return yn;case l.LargeList:return pn;case l.Map:return d?wn:xn;case l.ListView:return gn;case l.LargeListView:return mn;case l.FixedSizeList:return bn;case l.Struct:return c?Ln:kt;case l.RunEndEncoded:return An;case l.Dictionary:return Nn;case l.Union:return t.mode?In:zt}throw Error(Z(n))}function _t(t,e){return e?class extends e{constructor(n){super(new t(n))}}:t}function Vn(t,e){return{offset:b(t,e),metadataLength:h(t,e+8),bodyLength:b(t,e+16)}}function Ht(t,e){return T(t,e,24,Vn)}function Pt(t,e,n){let r=N(t,e);if(r(10,M,0))throw Error("Record batch compression not implemented");let i=n<$.V4?8:0;return{length:r(4,b,0),nodes:T(t,r(6,M),16,(s,a)=>({length:b(s,a),nullCount:b(s,a+8)})),regions:T(t,r(8,M),16+i,(s,a)=>({offset:b(s,a+i),length:b(s,a+i+8)})),variadic:T(t,r(12,M),8,b)}}function Fn(t,e,n){let r=N(t,e);return{id:r(4,b,0),data:r(6,(i,s)=>Pt(i,s,n)),isDelta:r(8,F,!1)}}function Wt(t,e,n,r){w(n,l,Z);let i=N(t,e);switch(n){case l.Binary:return Ae();case l.Utf8:return Ne();case l.LargeBinary:return $e();case l.LargeUtf8:return ze();case l.List:return Te(r[0]);case l.ListView:return Ye(r[0]);case l.LargeList:return ke(r[0]);case l.LargeListView:return _e(r[0]);case l.Struct:return Me(r);case l.RunEndEncoded:return je(r[0],r[1]);case l.Int:return Dt(i(4,h,0),i(6,F,!1));case l.Float:return Le(i(4,v,mt.HALF));case l.Decimal:return Ee(i(4,h,0),i(6,h,0),i(8,h,128));case l.Date:return De(i(4,v,z.MILLISECOND));case l.Time:return Se(i(4,v,m.MILLISECOND),i(6,h,32));case l.Timestamp:return Be(i(4,v,m.SECOND),i(6,_));case l.Interval:return Oe(i(4,v,C.YEAR_MONTH));case l.Duration:return Re(i(4,v,m.MILLISECOND));case l.FixedSizeBinary:return Ue(i(4,h,0));case l.FixedSizeList:return Ve(r[0],i(4,h,0));case l.Map:return Fe(i(4,F,!1),r[0]);case l.Union:return Ce(i(4,v,W.Sparse),r,T(t,i(6,M),4,h))}return{typeId:n}}function et(t,e){let n=T(t,e,4,(r,i)=>{let s=N(r,i);return[s(4,_),s(6,_)]});return n.length?new Map(n):null}function Xt(t,e,n){let r=N(t,e);return{version:n,endianness:r(4,v,0),fields:r(6,Rn,[]),metadata:r(8,et)}}function Rn(t,e){return T(t,e,4,Jt)}function Jt(t,e){let n=N(t,e),r=n(8,q,l.NONE),i=n(10,M,0),s=n(12,zn),a=Wt(t,i,r,n(14,(o,u)=>$n(o,u)));return s&&(s.dictionary=a,a=s),{name:n(4,_),type:a,nullable:n(6,F,!1),metadata:n(16,et)}}function $n(t,e){let n=T(t,e,4,Jt);return n.length?n:null}function zn(t,e){if(!e)return null;let n=N(t,e);return Ie(null,n(6,kn,St()),n(8,F,!1),n(4,b,0))}function kn(t,e){return Wt(t,e,l.Int)}var jn=(t,e)=>`Expected to read ${t} metadata bytes, but only read ${e}.`,Yn=(t,e)=>`Expected to read ${t} bytes for message body, but only read ${e}.`,_n=t=>`Unsupported message type: ${t} (${Lt(S,t)})`;function nt(t,e){let n=h(t,e)||0;if(e+=4,n===-1&&(n=h(t,e)||0,e+=4),n===0)return null;let r=t.subarray(e,e+=n);if(r.byteLength<n)throw Error(jn(n,r.byteLength));let i=N(r,0),s=i(4,v,$.V1),a=i(6,q,S.NONE),o=i(8,M,0),u=i(10,b,0),d;if(o){let c=a===S.Schema?Xt:a===S.DictionaryBatch?Fn:a===S.RecordBatch?Pt:null;if(!c)throw Error(_n(a));if(d=c(r,o,s),u>0){let g=t.subarray(e,e+=u);if(g.byteLength<u)throw Error(Yn(u,g.byteLength));d.body=g}}return{version:s,type:a,index:e,content:d}}function Hn(t){let e=t instanceof ArrayBuffer?new Uint8Array(t):t;return e instanceof Uint8Array&&Pn(e)?Xn(e):Wn(e)}function Pn(t){if(!t||t.length<4)return!1;for(let e=0;e<6;++e)if(gt[e]!==t[e])return!1;return!0}function Wn(t){let e=[t].flat(),n,r=[],i=[];for(let s of e){if(!(s instanceof Uint8Array))throw Error("IPC data batch was not a Uint8Array.");let a=0;for(;;){let o=nt(s,a);if(o===null)break;if(a=o.index,o.content)switch(o.type){case S.Schema:n||(n=o.content);break;case S.RecordBatch:r.push(o.content);break;case S.DictionaryBatch:i.push(o.content);break}}}return{schema:n,dictionaries:i,records:r,metadata:null}}function Xn(t){let e=t.byteLength-(gt.length+4),n=N(t,e-h(t,e)),r=n(4,v,$.V1),i=n(8,Ht,[]),s=n(10,Ht,[]);return{schema:n(6,(a,o)=>Xt(a,o,r)),dictionaries:i.map(({offset:a})=>nt(t,a).content),records:s.map(({offset:a})=>nt(t,a).content),metadata:n(12,et)}}function rt(t,e){return Jn(Hn(t),e)}function Jn(t,e={}){let{schema:n={fields:[]},dictionaries:r,records:i}=t,{version:s,fields:a}=n,o=new Map,u=Gn(e,s,o),d=new Map;Zn(n,y=>{let p=y.type;p.typeId===l.Dictionary&&d.set(p.id,p.dictionary)});let c=new Map;for(let y of r){let{id:p,data:E,isDelta:D,body:ce}=y,dt=d.get(p),ht=it(dt,u({...E,body:ce}));if(c.has(p)){let ft=c.get(p);D||ft.clear(),ft.add(ht)}else{if(D)throw Error("Delta update can not be first dictionary batch.");c.set(p,Yt(dt).add(ht))}}c.forEach((y,p)=>o.set(p,y.done()));let g=a.map(y=>Yt(y.type));for(let y of i){let p=u(y);a.forEach((E,D)=>g[D].add(it(E.type,p)))}return new Mn(n,g.map(y=>y.done()),e.useProxy)}function Zn(t,e){t.fields.forEach(function n(r){var i,s,a;e(r),(s=(i=r.type.dictionary)==null?void 0:i.children)==null||s.forEach(n),(a=r.type.children)==null||a.forEach(n)})}function Gn(t,e,n){let r={version:e,options:t,dictionary:i=>n.get(i)};return i=>{let{length:s,nodes:a,regions:o,variadic:u,body:d}=i,c=-1,g=-1,y=-1;return{...r,length:s,node:()=>a[++c],buffer:p=>{let{length:E,offset:D}=o[++g];return p?new p(d.buffer,d.byteOffset+D,E/p.BYTES_PER_ELEMENT):d.subarray(D,D+E)},variadic:()=>u[++y],visit(p){return p.map(E=>it(E.type,this))}}}}function it(t,e){let{typeId:n}=t,{length:r,options:i,node:s,buffer:a,variadic:o,version:u}=e,d=Un(t,i);if(n===l.Null)return new d({length:r,nullCount:r,type:t});let c={...s(),type:t};switch(n){case l.Bool:case l.Int:case l.Time:case l.Duration:case l.Float:case l.Decimal:case l.Date:case l.Timestamp:case l.Interval:case l.FixedSizeBinary:return new d({...c,validity:a(),values:a(t.values)});case l.Utf8:case l.LargeUtf8:case l.Binary:case l.LargeBinary:return new d({...c,validity:a(),offsets:a(t.offsets),values:a()});case l.BinaryView:case l.Utf8View:return new d({...c,validity:a(),values:a(),data:Array.from({length:o()},()=>a())});case l.List:case l.LargeList:case l.Map:return new d({...c,validity:a(),offsets:a(t.offsets),children:e.visit(t.children)});case l.ListView:case l.LargeListView:return new d({...c,validity:a(),offsets:a(t.offsets),sizes:a(t.offsets),children:e.visit(t.children)});case l.FixedSizeList:case l.Struct:return new d({...c,validity:a(),children:e.visit(t.children)});case l.RunEndEncoded:return new d({...c,children:e.visit(t.children)});case l.Dictionary:{let{id:g,indices:y}=t;return new d({...c,validity:a(),values:a(y.values)}).setDictionary(e.dictionary(g))}case l.Union:return u<$.V5&&a(),new d({...c,typeIds:a(It),offsets:t.mode===W.Sparse?null:a(t.offsets),children:e.visit(t.children)});default:throw Error(Z(n))}}new Uint16Array(new Uint8Array([1,0]).buffer)[0];function R(t,e){let n=new Map;return(...r)=>{let i=e(...r);if(n.has(i))return n.get(i);let s=t(...r).finally(()=>{n.delete(i)});return n.set(i,s),s}}function st(t,e){return me(t,e)}function qn(){return ye()}const I=pe;function Zt(){let t=Kn(qn()),e=n=>JSON.stringify(n);return{load:R(t.load.bind(t),e),sanitize:R(t.sanitize.bind(t),e),http:R(t.http.bind(t),e),file:R(t.file.bind(t),e)}}function Kn(t){return{...t,async load(e,n){return e.endsWith(".arrow")?rt(await Gt(e),{useProxy:!1}).toArray():t.load(e,n)}}}const Gt=R(t=>fetch(t).then(e=>e.arrayBuffer()),t=>t);var qt=I.integer,Kt=I.number,Qn=I.date,tr=I.boolean,Qt=()=>(I.integer=t=>{if(t==="")return"";if(t==="-inf"||t==="inf")return t;function e(r){let i=qt(r);return Number.isNaN(i)?r:i}let n=Number.parseInt(t,10);if(Number.isNaN(n))return t;if(!(Math.abs(n)>2**53-1))return e(t);try{return BigInt(t)}catch{return e(t)}},I.number=t=>{if(t==="-inf"||t==="inf")return t;let e=Kt(t);return Number.isNaN(e)?t:e},()=>{I.integer=qt,I.number=Kt}),te=()=>(I.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 fe.warn(`Failed to parse date: ${t}`),t}},()=>{I.date=Qn});I.boolean=t=>t==="True"?!0:t==="False"?!1:tr(t);const ee=Zt();async function er(t,e,n={}){let{handleBigIntAndNumberLike:r=!1,replacePeriod:i=!1}=n;if(t.endsWith(".arrow")||(e==null?void 0:e.type)==="arrow")return rt(await Gt(t),{useProxy:!0,useDate:!0,useBigInt:r}).toArray();let s=[te];r&&s.push(Qt);let a=[];try{let o=await ee.load(t);if(!e){if(typeof o=="string")try{JSON.parse(o),e={type:"json"}}catch{e={type:"csv",parse:"auto"}}typeof o=="object"&&(e={type:"json"})}let u=(e==null?void 0:e.type)==="csv";u&&typeof o=="string"&&(o=rr(o)),u&&typeof o=="string"&&i&&(o=ir(o));let d=(e==null?void 0:e.parse)||"auto";return typeof d=="object"&&(d=yt.mapValues(d,c=>c==="time"?"string":c==="datetime"?"date":c)),a=s.map(c=>c()),u?st(o,{...e,parse:d}):st(o,e)}finally{a.forEach(o=>o())}}function nr(t,e=!0){let n=[te];e&&n.push(Qt);let r=n.map(s=>s()),i=st(t,{type:"csv",parse:"auto"});return r.forEach(s=>s()),i}function rr(t){return t!=null&&t.includes(",")?ne(t,e=>{let n=new Set;return e.map(r=>{let i=ar(r,n);return n.add(i),i})}):t}function ir(t){return t!=null&&t.includes(".")?ne(t,e=>e.map(n=>n.replaceAll(".","\u2024"))):t}function ne(t,e){let n=t.split(`
|
|
2
2
|
`);return n[0]=e(n[0].split(",")).join(","),n.join(`
|
|
3
|
-
`)}var
|
|
3
|
+
`)}var sr="\u200B";function ar(t,e){let n=t,r=1;for(;e.has(n);)n=`${t}${sr.repeat(r)}`,r++;return n}var lr={version:"1.1.0"};function or(t,e,n,r){if(ge(t))return`[${t.map(i=>e(ve(i)?i:re(i,n))).join(", ")}]`;if(pt(t)){let i="",{title:s,image:a,...o}=t;s&&(i+=`<h2>${e(s)}</h2>`),a&&(i+=`<img src="${new URL(e(a),r||location.href).href}">`);let u=Object.keys(o);if(u.length>0){i+="<table>";for(let d of u){let c=o[d];c!==void 0&&(pt(c)&&(c=re(c,n)),i+=`<tr><td class="key">${e(d)}</td><td class="value">${e(c)}</td></tr>`)}i+="</table>"}return i||"{}"}return e(t)}function ur(t){let e=[];return function(n,r){return typeof r!="object"||!r?r:(e.length=e.indexOf(this)+1,e.length>t?"[Object]":e.indexOf(r)>=0?"[Circular]":(e.push(r),r))}}function re(t,e){return JSON.stringify(t,ur(e))}var cr=`#vg-tooltip-element {
|
|
4
4
|
visibility: hidden;
|
|
5
5
|
padding: 8px;
|
|
6
6
|
position: fixed;
|
|
@@ -58,4 +58,4 @@ var ce=Object.defineProperty;var de=(t,e,n)=>e in t?ce(t,e,{enumerable:!0,config
|
|
|
58
58
|
#vg-tooltip-element.dark-theme td.key {
|
|
59
59
|
color: #bfbfbf;
|
|
60
60
|
}
|
|
61
|
-
`,ie="vg-tooltip-element",
|
|
61
|
+
`,ie="vg-tooltip-element",dr={offsetX:10,offsetY:10,id:ie,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:hr,maxDepth:2,formatTooltip:or,baseURL:"",anchor:"cursor",position:["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"]};function hr(t){return String(t).replace(/&/g,"&").replace(/</g,"<")}function fr(t){if(!/^[A-Za-z]+[-:.\w]*$/.test(t))throw Error("Invalid HTML ID");return cr.toString().replaceAll(ie,t)}function se(t,e,{offsetX:n,offsetY:r}){let i=ae({x1:t.clientX,x2:t.clientX,y1:t.clientY,y2:t.clientY},e,n,r);for(let s of["bottom-right","bottom-left","top-right","top-left"])if(le(i[s],e))return i[s];return i["top-left"]}function yr(t,e,n,r,i){let{position:s,offsetX:a,offsetY:o}=i,u=t._el.getBoundingClientRect(),d=t._origin,c=ae(pr(u,d,n),r,a,o),g=Array.isArray(s)?s:[s];for(let y of g)if(le(c[y],r)&&!gr(e,c[y],r))return c[y];return se(e,r,i)}function pr(t,e,n){let r=n.isVoronoi?n.datum.bounds:n.bounds,i=t.left+e[0]+r.x1,s=t.top+e[1]+r.y1,a=n;for(;a.mark.group;)a=a.mark.group,i+=a.x??0,s+=a.y??0;let o=r.x2-r.x1,u=r.y2-r.y1;return{x1:i,x2:i+o,y1:s,y2:s+u}}function ae(t,e,n,r){let i=(t.x1+t.x2)/2,s=(t.y1+t.y2)/2,a=t.x1-e.width-n,o=i-e.width/2,u=t.x2+n,d=t.y1-e.height-r,c=s-e.height/2,g=t.y2+r;return{top:{x:o,y:d},bottom:{x:o,y:g},left:{x:a,y:c},right:{x:u,y:c},"top-left":{x:a,y:d},"top-right":{x:u,y:d},"bottom-left":{x:a,y:g},"bottom-right":{x:u,y:g}}}function le(t,e){return t.x>=0&&t.y>=0&&t.x+e.width<=window.innerWidth&&t.y+e.height<=window.innerHeight}function gr(t,e,n){return t.clientX>=e.x&&t.clientX<=e.x+n.width&&t.clientY>=e.y&&t.clientY<=e.y+n.height}var mr=class{constructor(t){A(this,"call");A(this,"options");A(this,"el");this.options={...dr,...t};let e=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){let n=document.createElement("style");n.setAttribute("id",this.options.styleId),n.innerHTML=fr(e);let r=document.head;r.childNodes.length>0?r.insertBefore(n,r.childNodes[0]):r.appendChild(n)}}tooltipHandler(t,e,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:s}=this.options.anchor==="mark"?yr(t,e,n,this.el.getBoundingClientRect(),this.options):se(e,this.el.getBoundingClientRect(),this.options);this.el.style.top=`${s}px`,this.el.style.left=`${i}px`}};lr.version;const vr=new mr;function oe(t){if(typeof t=="object"&&t){if("width"in t)return t.width;if("spec"in t)return oe(t.spec)}}function br(t){return!t||Object.keys(t).length===0?"auto":yt.mapValues(t,e=>e==="date"||e==="time"?"string":e==="datetime"?"date":e)}export{er as a,rt as c,nr as i,br as n,ee as o,vr as r,Zt as s,oe as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as z}from"./chunk-LvLJmgfZ.js";import{n as C}from"./useEvent-D91BmmQi.js";import{t as Y}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import{t as tt}from"./compiler-runtime-B3qBwwSJ.js";import{t as et}from"./debounce-oETUUMtd.js";import{c as T,m as j}from"./useEventListener-CQbucLPR.js";import{n as V}from"./config-CH9jJJXa.js";import{t as nt}from"./jsx-runtime-xyXE3D12.js";import{r as rt}from"./button-BgTwlYC0.js";import{t as at}from"./cn-X2M2usMq.js";import{d as N}from"./arrays-BcjMYqgQ.js";import{u as it}from"./toDate-MTJujKHw.js";import"./session-ics2EJbK.js";import{r as ot}from"./useTheme-BI1laMnp.js";import"./Combination-Dsf8o4B8.js";import{t as lt}from"./tooltip-DUgEnCzr.js";import{t as ct}from"./isValid-BaJpcsAS.js";import{a as st,r as mt,t as pt}from"./utils-BDlGlVyF.js";import{n as ut}from"./vega-loader.browser-BAOZVR5y.js";import{t as ft}from"./react-vega-B75scL0q.js";import"./defaultLocale-BahgQn7E.js";import"./defaultLocale-9568JNk4.js";import{r as dt,t as ht}from"./alert-BX93yxc4.js";import{n as gt}from"./error-banner-CwqXGjgA.js";import{n as yt}from"./useAsyncData-CEULytbc.js";import{t as vt}from"./formats-C_TavbEL.js";import{t as H}from"./useDeepCompareMemoize-zUH53nql.js";var kt=tt(),x=z(Y(),1);function bt(t){return t.data&&"url"in t.data&&(t.data.url=V(t.data.url).href),t}const u={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"};var F=new Set(["boxplot","errorband","errorbar"]);const S={getMarkType(t){let e=typeof t=="string"?t:t.type;if(F.has(e))throw Error("Not supported");return e},isInteractive(t){let e=typeof t=="string"?t:t.type;return!F.has(e)},makeClickable(t){let e=typeof t=="string"?t:t.type;return e in u?typeof t=="string"?{type:t,cursor:"pointer",tooltip:!0}:{...t,type:e,cursor:"pointer",tooltip:!0}:t},getOpacity(t){return typeof t=="string"?null:"opacity"in t&&typeof t.opacity=="number"?t.opacity:null}},y={point(t){return t==null?"select_point":`select_point_${t}`},interval(t){return t==null?"select_interval":`select_interval_${t}`},legendSelection(t){return`legend_selection_${t}`},binColoring(t){return t==null?"bin_coloring":`bin_coloring_${t}`},HIGHLIGHT:"highlight",PAN_ZOOM:"pan_zoom",hasPoint(t){return t.some(e=>e.startsWith("select_point"))},hasInterval(t){return t.some(e=>e.startsWith("select_interval"))},hasLegend(t){return t.some(e=>e.startsWith("legend_selection"))},hasPanZoom(t){return t.some(e=>e.startsWith("pan_zoom"))},isBinColoring(t){return t.startsWith("bin_coloring")}},O={highlight(){return{name:y.HIGHLIGHT,select:{type:"point",on:"mouseover"}}},interval(t,e){return{name:y.interval(e),select:{type:"interval",encodings:W(t),mark:{fill:"#669EFF",fillOpacity:.07,stroke:"#669EFF",strokeOpacity:.4},on:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]",translate:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]"}}},point(t,e){return{name:y.point(e),select:{type:"point",encodings:W(t),on:"click[!event.metaKey]"}}},binColoring(t){return{name:y.binColoring(t),select:{type:"point",on:"click[!event.metaKey]"}}},legend(t){return{name:y.legendSelection(t),select:{type:"point",fields:[t]},bind:"legend"}},panZoom(){return{name:y.PAN_ZOOM,bind:"scales",select:{type:"interval",on:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",translate:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",zoom:"wheel![event.metaKey]"}}}};function W(t){switch(S.getMarkType(t.mark)){case u.image:case u.trail:return;case u.area:case u.arc:return["color"];case u.bar:{let e=wt(t);return e==="horizontal"?["y"]:e==="vertical"?["x"]:void 0}case u.circle:case u.geoshape:case u.line:case u.point:case u.rect:case u.rule:case u.square:case u.text:case u.tick:return["x","y"]}}function P(t){return"params"in t&&t.params&&t.params.length>0?N(t.params.filter(e=>e==null?!1:"select"in e&&e.select!==void 0).map(e=>e.name)):"layer"in t?N(t.layer.flatMap(P)):"vconcat"in t?N(t.vconcat.flatMap(P)):"hconcat"in t?N(t.hconcat.flatMap(P)):[]}function wt(t){var a,r;if(!t||!("mark"in t))return;let e=(a=t.encoding)==null?void 0:a.x,n=(r=t.encoding)==null?void 0:r.y;if(e&&"type"in e&&e.type==="nominal")return"vertical";if(n&&"type"in n&&n.type==="nominal"||e&&"aggregate"in e)return"horizontal";if(n&&"aggregate"in n)return"vertical"}function xt(t){if(!t.encoding)return[];let e=[];for(let n of Object.values(t.encoding))n&&typeof n=="object"&&"bin"in n&&n.bin&&"field"in n&&typeof n.field=="string"&&e.push(n.field);return e}function D(t){if(!t||!("encoding"in t))return[];let{encoding:e}=t;return e?Object.entries(e).flatMap(n=>{let[a,r]=n;return!r||!St.has(a)?[]:"field"in r&&typeof r.field=="string"?[r.field]:"condition"in r&&r.condition&&typeof r.condition=="object"&&"field"in r.condition&&r.condition.field&&typeof r.condition.field=="string"?[r.condition.field]:[]}):[]}var St=new Set(["color","fill","fillOpacity","opacity","shape","size"]);function G(t,e,n,a){let r=n.filter(o=>y.isBinColoring(o)),i={and:(r.length>0?r:n).map(o=>({param:o}))};if(t==="opacity"){let o=S.getOpacity(a)||1;return{...e,opacity:{condition:{test:i,value:o},value:o/5}}}else return e}function At(t){if(!("select"in t)||!t.select)return JSON.stringify(t);let e=t.select;if(typeof e=="string")return JSON.stringify({type:e,bind:t.bind});let n={type:e.type,encodings:"encodings"in e&&e.encodings?[...e.encodings].sort():void 0,fields:"fields"in e&&e.fields?[...e.fields].sort():void 0,bind:t.bind};return JSON.stringify(n)}function $(t){let e=E(t);if(e.length===0)return t;let n=jt(e);return n.length===0?t:{...L(K(t,new Set(n.map(a=>a.name))),n.map(a=>a.name)),params:[...t.params||[],...n]}}function E(t){let e=[];if("vconcat"in t&&Array.isArray(t.vconcat))for(let n of t.vconcat)e.push(...E(n));else if("hconcat"in t&&Array.isArray(t.hconcat))for(let n of t.hconcat)e.push(...E(n));else{if("layer"in t)return[];"mark"in t&&"params"in t&&t.params&&t.params.length>0&&e.push({params:t.params})}return e}function jt(t){if(t.length===0)return[];let e=new Map,n=t.length;for(let{params:r}of t){let i=new Set;for(let o of r){let l=At(o);i.has(l)||(i.add(l),e.has(l)||e.set(l,{count:0,param:o}),e.get(l).count++)}}let a=[];for(let[,{count:r,param:i}]of e)r===n&&a.push(i);return a}function K(t,e){if("vconcat"in t&&Array.isArray(t.vconcat))return{...t,vconcat:t.vconcat.map(n=>K(n,e))};if("hconcat"in t&&Array.isArray(t.hconcat))return{...t,hconcat:t.hconcat.map(n=>K(n,e))};if("mark"in t&&"params"in t&&t.params){let n=t.params,a=[];for(let r of n){if(!r||typeof r!="object"||!("name"in r)){a.push(r);continue}e.has(r.name)||a.push(r)}if(a.length===0){let{params:r,...i}=t;return i}return{...t,params:a}}return t}function L(t,e){return"vconcat"in t&&Array.isArray(t.vconcat)?{...t,vconcat:t.vconcat.map(n=>L(n,e))}:"hconcat"in t&&Array.isArray(t.hconcat)?{...t,hconcat:t.hconcat.map(n=>L(n,e))}:"layer"in t?t:"mark"in t&&S.isInteractive(t.mark)?{...t,mark:S.makeClickable(t.mark),encoding:G("opacity",t.encoding||{},e,t.mark)}:t}function Z(t,e){var l,k;let{chartSelection:n=!0,fieldSelection:a=!0}=e;if(!n&&!a)return t;(l=t.params)!=null&&l.some(s=>s.bind==="legend")&&(a=!1);let r=(k=t.params)==null?void 0:k.some(s=>!s.bind);r&&(n=!1);let i="vconcat"in t||"hconcat"in t;if(r&&i)return t;if("vconcat"in t){let s=t.vconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,vconcat:s})}if("hconcat"in t){let s=t.hconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,hconcat:s})}if("layer"in t){let s=t.params&&t.params.length>0,m=a!==!1&&!s,v=[];if(m){let p=t.layer.flatMap(f=>"mark"in f?D(f):[]);v=[...new Set(p)],Array.isArray(a)&&(v=v.filter(f=>a.includes(f)))}let w=t.layer.map((p,f)=>{if(!("mark"in p))return p;let h=p;if(f===0&&v.length>0){let _=v.map(M=>O.legend(M));h={...h,params:[...h.params||[],..._]}}return h=q(h,n,f),h=R(h),f===0&&(h=J(h)),h});return{...t,layer:w}}if(!("mark"in t)||!S.isInteractive(t.mark))return t;let o=t;return o=Ot(o,a),o=q(o,n,void 0),o=R(o),o=J(o),o}function Ot(t,e){if(e===!1)return t;let n=D(t);Array.isArray(e)&&(n=n.filter(i=>e.includes(i)));let a=n.map(i=>O.legend(i)),r=[...t.params||[],...a];return{...t,params:r}}function q(t,e,n){if(e===!1)return t;let a;try{a=S.getMarkType(t.mark)}catch{return t}if(a==="geoshape")return t;let r=xt(t),i=e===!0?r.length>0?["point"]:_t(a):[e];if(!i||i.length===0)return t;let o=i.map(k=>k==="interval"?O.interval(t,n):O.point(t,n)),l=[...t.params||[],...o];return r.length>0&&i.includes("point")&&l.push(O.binColoring(n)),{...t,params:l}}function J(t){let e;try{e=S.getMarkType(t.mark)}catch{}if(e==="geoshape")return t;let n=t.params||[];return n.some(a=>a.bind==="scales")?t:{...t,params:[...n,O.panZoom()]}}function R(t){let e="encoding"in t?t.encoding:void 0,n=t.params||[],a=n.map(r=>r.name);return n.length===0||!S.isInteractive(t.mark)?t:{...t,mark:S.makeClickable(t.mark),encoding:G("opacity",e||{},a,t.mark)}}function _t(t){switch(t){case"arc":case"area":return["point"];case"text":case"bar":return["point","interval"];case"line":return;default:return["point","interval"]}}async function Mt(t){if(!t)return t;let e="datasets"in t?{...t.datasets}:{},n=async r=>{if(!r)return r;if("layer"in r){let l=await Promise.all(r.layer.map(n));r={...r,layer:l}}if("hconcat"in r){let l=await Promise.all(r.hconcat.map(n));r={...r,hconcat:l}}if("vconcat"in r){let l=await Promise.all(r.vconcat.map(n));r={...r,vconcat:l}}if("spec"in r&&(r={...r,spec:await n(r.spec)}),!r.data||!("url"in r.data))return r;let i;try{i=V(r.data.url)}catch{return r}let o=await st(i.href,r.data.format);return e[i.pathname]=o,{...r,data:{name:i.pathname}}},a=await n(t);return Object.keys(e).length===0?a:{...a,datasets:e}}var d=z(nt(),1);ut("arrow",vt);var Nt=t=>{let e=(0,kt.c)(12),{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:o,embedOptions:l}=t,k,s;e[0]===o?(k=e[1],s=e[2]):(k=async()=>Mt(o),s=[o],e[0]=o,e[1]=k,e[2]=s);let{data:m,error:v}=yt(k,s);if(v){let p;return e[3]===v?p=e[4]:(p=(0,d.jsx)(gt,{error:v}),e[3]=v,e[4]=p),p}if(!m)return null;let w;return e[5]!==r||e[6]!==l||e[7]!==i||e[8]!==m||e[9]!==a||e[10]!==n?(w=(0,d.jsx)(Pt,{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:m,embedOptions:l}),e[5]=r,e[6]=l,e[7]=i,e[8]=m,e[9]=a,e[10]=n,e[11]=w):w=e[11],w},Pt=({value:t,setValue:e,chartSelection:n,fieldSelection:a,spec:r,embedOptions:i})=>{let{theme:o}=ot(),l=(0,x.useRef)(null),k=(0,x.useRef)(void 0),[s,m]=(0,x.useState)(),v=(0,x.useMemo)(()=>i&&"actions"in i?i.actions:{source:!1,compiled:!1},[i]),w=H(r),p=(0,x.useMemo)(()=>Z(bt(w),{chartSelection:n,fieldSelection:a}),[w,n,a]),f=(0,x.useMemo)(()=>P(p),[p]),h=C(c=>{e({...t,...c})}),_=(0,x.useMemo)(()=>et((c,g)=>{j.debug("[Vega signal]",c,g);let b=T.mapValues(g,Ct);b=T.mapValues(b,It),h({[c]:b})},100),[h]),M=H(f),I=(0,x.useMemo)(()=>M.reduce((c,g)=>(y.PAN_ZOOM===g||y.isBinColoring(g)||c.push({signalName:g,handler:(b,X)=>_(b,X)}),c),[]),[M,_]),B=C(c=>{j.error(c),j.debug(p),m(c)}),Q=C(c=>{j.debug("[Vega view] created",c),k.current=c,m(void 0)}),U=()=>{let c=[];return y.hasPoint(f)&&c.push(["Point selection","click to select a point; hold shift for multi-select"]),y.hasInterval(f)&&c.push(["Interval selection","click and drag to select an interval"]),y.hasLegend(f)&&c.push(["Legend selection","click to select a legend item; hold shift for multi-select"]),y.hasPanZoom(f)&&c.push(["Pan","hold the meta key and drag"],["Zoom","hold the meta key and scroll"]),c.length===0?null:(0,d.jsx)(lt,{delayDuration:300,side:"left",content:(0,d.jsx)("div",{className:"text-xs flex flex-col",children:c.map((g,b)=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("span",{className:"font-bold tracking-wide",children:[g[0],":"]})," ",g[1]]},b))}),children:(0,d.jsx)(it,{className:"absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground"})})},A=ft({ref:l,spec:p,options:{theme:o==="dark"?"dark":void 0,actions:v,mode:"vega-lite",tooltip:mt.call,renderer:"canvas"},onError:B,onEmbed:Q});return(0,x.useEffect)(()=>(I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.addSignalListener(c,g)}catch(b){j.error(b)}}),()=>{I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.removeSignalListener(c,g)}catch(b){j.error(b)}})}),[A,I]),(0,d.jsxs)(d.Fragment,{children:[s&&(0,d.jsxs)(ht,{variant:"destructive",children:[(0,d.jsx)(dt,{children:s.message}),(0,d.jsx)("div",{className:"text-md",children:s.stack})]}),(0,d.jsxs)("div",{className:at("relative"),onPointerDown:rt.stopPropagation(),children:[(0,d.jsx)("div",{ref:l,"data-container-width":pt(p)}),U()]})]})};function It(t){return t instanceof Set?[...t]:t}function Ct(t){return Array.isArray(t)?t.map(e=>e instanceof Date&&ct(e)?new Date(e).getTime():e):t}var Et=Nt;export{Et as default};
|
|
1
|
+
import{s as z}from"./chunk-LvLJmgfZ.js";import{n as C}from"./useEvent-D91BmmQi.js";import{t as Y}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import{t as tt}from"./compiler-runtime-B3qBwwSJ.js";import{t as et}from"./debounce-oETUUMtd.js";import{c as T,m as j}from"./useEventListener-CQbucLPR.js";import{n as V}from"./config-CH9jJJXa.js";import{t as nt}from"./jsx-runtime-xyXE3D12.js";import{r as rt}from"./button-BgTwlYC0.js";import{t as at}from"./cn-X2M2usMq.js";import{d as N}from"./arrays-BcjMYqgQ.js";import{u as it}from"./toDate-MTJujKHw.js";import"./session-ics2EJbK.js";import{r as ot}from"./useTheme-BI1laMnp.js";import"./Combination-Dsf8o4B8.js";import{t as lt}from"./tooltip-DUgEnCzr.js";import{t as ct}from"./isValid-BaJpcsAS.js";import{a as st,r as mt,t as pt}from"./utils-DWFl4LEP.js";import{n as ut}from"./vega-loader.browser-BAOZVR5y.js";import{t as ft}from"./react-vega-B75scL0q.js";import"./defaultLocale-BahgQn7E.js";import"./defaultLocale-9568JNk4.js";import{r as dt,t as ht}from"./alert-BX93yxc4.js";import{n as gt}from"./error-banner-CwqXGjgA.js";import{n as yt}from"./useAsyncData-CEULytbc.js";import{t as vt}from"./formats-N7VZhahg.js";import{t as H}from"./useDeepCompareMemoize-zUH53nql.js";var kt=tt(),x=z(Y(),1);function bt(t){return t.data&&"url"in t.data&&(t.data.url=V(t.data.url).href),t}const u={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"};var F=new Set(["boxplot","errorband","errorbar"]);const S={getMarkType(t){let e=typeof t=="string"?t:t.type;if(F.has(e))throw Error("Not supported");return e},isInteractive(t){let e=typeof t=="string"?t:t.type;return!F.has(e)},makeClickable(t){let e=typeof t=="string"?t:t.type;return e in u?typeof t=="string"?{type:t,cursor:"pointer",tooltip:!0}:{...t,type:e,cursor:"pointer",tooltip:!0}:t},getOpacity(t){return typeof t=="string"?null:"opacity"in t&&typeof t.opacity=="number"?t.opacity:null}},y={point(t){return t==null?"select_point":`select_point_${t}`},interval(t){return t==null?"select_interval":`select_interval_${t}`},legendSelection(t){return`legend_selection_${t}`},binColoring(t){return t==null?"bin_coloring":`bin_coloring_${t}`},HIGHLIGHT:"highlight",PAN_ZOOM:"pan_zoom",hasPoint(t){return t.some(e=>e.startsWith("select_point"))},hasInterval(t){return t.some(e=>e.startsWith("select_interval"))},hasLegend(t){return t.some(e=>e.startsWith("legend_selection"))},hasPanZoom(t){return t.some(e=>e.startsWith("pan_zoom"))},isBinColoring(t){return t.startsWith("bin_coloring")}},O={highlight(){return{name:y.HIGHLIGHT,select:{type:"point",on:"mouseover"}}},interval(t,e){return{name:y.interval(e),select:{type:"interval",encodings:W(t),mark:{fill:"#669EFF",fillOpacity:.07,stroke:"#669EFF",strokeOpacity:.4},on:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]",translate:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]"}}},point(t,e){return{name:y.point(e),select:{type:"point",encodings:W(t),on:"click[!event.metaKey]"}}},binColoring(t){return{name:y.binColoring(t),select:{type:"point",on:"click[!event.metaKey]"}}},legend(t){return{name:y.legendSelection(t),select:{type:"point",fields:[t]},bind:"legend"}},panZoom(){return{name:y.PAN_ZOOM,bind:"scales",select:{type:"interval",on:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",translate:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",zoom:"wheel![event.metaKey]"}}}};function W(t){switch(S.getMarkType(t.mark)){case u.image:case u.trail:return;case u.area:case u.arc:return["color"];case u.bar:{let e=wt(t);return e==="horizontal"?["y"]:e==="vertical"?["x"]:void 0}case u.circle:case u.geoshape:case u.line:case u.point:case u.rect:case u.rule:case u.square:case u.text:case u.tick:return["x","y"]}}function P(t){return"params"in t&&t.params&&t.params.length>0?N(t.params.filter(e=>e==null?!1:"select"in e&&e.select!==void 0).map(e=>e.name)):"layer"in t?N(t.layer.flatMap(P)):"vconcat"in t?N(t.vconcat.flatMap(P)):"hconcat"in t?N(t.hconcat.flatMap(P)):[]}function wt(t){var a,r;if(!t||!("mark"in t))return;let e=(a=t.encoding)==null?void 0:a.x,n=(r=t.encoding)==null?void 0:r.y;if(e&&"type"in e&&e.type==="nominal")return"vertical";if(n&&"type"in n&&n.type==="nominal"||e&&"aggregate"in e)return"horizontal";if(n&&"aggregate"in n)return"vertical"}function xt(t){if(!t.encoding)return[];let e=[];for(let n of Object.values(t.encoding))n&&typeof n=="object"&&"bin"in n&&n.bin&&"field"in n&&typeof n.field=="string"&&e.push(n.field);return e}function D(t){if(!t||!("encoding"in t))return[];let{encoding:e}=t;return e?Object.entries(e).flatMap(n=>{let[a,r]=n;return!r||!St.has(a)?[]:"field"in r&&typeof r.field=="string"?[r.field]:"condition"in r&&r.condition&&typeof r.condition=="object"&&"field"in r.condition&&r.condition.field&&typeof r.condition.field=="string"?[r.condition.field]:[]}):[]}var St=new Set(["color","fill","fillOpacity","opacity","shape","size"]);function G(t,e,n,a){let r=n.filter(o=>y.isBinColoring(o)),i={and:(r.length>0?r:n).map(o=>({param:o}))};if(t==="opacity"){let o=S.getOpacity(a)||1;return{...e,opacity:{condition:{test:i,value:o},value:o/5}}}else return e}function At(t){if(!("select"in t)||!t.select)return JSON.stringify(t);let e=t.select;if(typeof e=="string")return JSON.stringify({type:e,bind:t.bind});let n={type:e.type,encodings:"encodings"in e&&e.encodings?[...e.encodings].sort():void 0,fields:"fields"in e&&e.fields?[...e.fields].sort():void 0,bind:t.bind};return JSON.stringify(n)}function $(t){let e=E(t);if(e.length===0)return t;let n=jt(e);return n.length===0?t:{...L(K(t,new Set(n.map(a=>a.name))),n.map(a=>a.name)),params:[...t.params||[],...n]}}function E(t){let e=[];if("vconcat"in t&&Array.isArray(t.vconcat))for(let n of t.vconcat)e.push(...E(n));else if("hconcat"in t&&Array.isArray(t.hconcat))for(let n of t.hconcat)e.push(...E(n));else{if("layer"in t)return[];"mark"in t&&"params"in t&&t.params&&t.params.length>0&&e.push({params:t.params})}return e}function jt(t){if(t.length===0)return[];let e=new Map,n=t.length;for(let{params:r}of t){let i=new Set;for(let o of r){let l=At(o);i.has(l)||(i.add(l),e.has(l)||e.set(l,{count:0,param:o}),e.get(l).count++)}}let a=[];for(let[,{count:r,param:i}]of e)r===n&&a.push(i);return a}function K(t,e){if("vconcat"in t&&Array.isArray(t.vconcat))return{...t,vconcat:t.vconcat.map(n=>K(n,e))};if("hconcat"in t&&Array.isArray(t.hconcat))return{...t,hconcat:t.hconcat.map(n=>K(n,e))};if("mark"in t&&"params"in t&&t.params){let n=t.params,a=[];for(let r of n){if(!r||typeof r!="object"||!("name"in r)){a.push(r);continue}e.has(r.name)||a.push(r)}if(a.length===0){let{params:r,...i}=t;return i}return{...t,params:a}}return t}function L(t,e){return"vconcat"in t&&Array.isArray(t.vconcat)?{...t,vconcat:t.vconcat.map(n=>L(n,e))}:"hconcat"in t&&Array.isArray(t.hconcat)?{...t,hconcat:t.hconcat.map(n=>L(n,e))}:"layer"in t?t:"mark"in t&&S.isInteractive(t.mark)?{...t,mark:S.makeClickable(t.mark),encoding:G("opacity",t.encoding||{},e,t.mark)}:t}function Z(t,e){var l,k;let{chartSelection:n=!0,fieldSelection:a=!0}=e;if(!n&&!a)return t;(l=t.params)!=null&&l.some(s=>s.bind==="legend")&&(a=!1);let r=(k=t.params)==null?void 0:k.some(s=>!s.bind);r&&(n=!1);let i="vconcat"in t||"hconcat"in t;if(r&&i)return t;if("vconcat"in t){let s=t.vconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,vconcat:s})}if("hconcat"in t){let s=t.hconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,hconcat:s})}if("layer"in t){let s=t.params&&t.params.length>0,m=a!==!1&&!s,v=[];if(m){let p=t.layer.flatMap(f=>"mark"in f?D(f):[]);v=[...new Set(p)],Array.isArray(a)&&(v=v.filter(f=>a.includes(f)))}let w=t.layer.map((p,f)=>{if(!("mark"in p))return p;let h=p;if(f===0&&v.length>0){let _=v.map(M=>O.legend(M));h={...h,params:[...h.params||[],..._]}}return h=q(h,n,f),h=R(h),f===0&&(h=J(h)),h});return{...t,layer:w}}if(!("mark"in t)||!S.isInteractive(t.mark))return t;let o=t;return o=Ot(o,a),o=q(o,n,void 0),o=R(o),o=J(o),o}function Ot(t,e){if(e===!1)return t;let n=D(t);Array.isArray(e)&&(n=n.filter(i=>e.includes(i)));let a=n.map(i=>O.legend(i)),r=[...t.params||[],...a];return{...t,params:r}}function q(t,e,n){if(e===!1)return t;let a;try{a=S.getMarkType(t.mark)}catch{return t}if(a==="geoshape")return t;let r=xt(t),i=e===!0?r.length>0?["point"]:_t(a):[e];if(!i||i.length===0)return t;let o=i.map(k=>k==="interval"?O.interval(t,n):O.point(t,n)),l=[...t.params||[],...o];return r.length>0&&i.includes("point")&&l.push(O.binColoring(n)),{...t,params:l}}function J(t){let e;try{e=S.getMarkType(t.mark)}catch{}if(e==="geoshape")return t;let n=t.params||[];return n.some(a=>a.bind==="scales")?t:{...t,params:[...n,O.panZoom()]}}function R(t){let e="encoding"in t?t.encoding:void 0,n=t.params||[],a=n.map(r=>r.name);return n.length===0||!S.isInteractive(t.mark)?t:{...t,mark:S.makeClickable(t.mark),encoding:G("opacity",e||{},a,t.mark)}}function _t(t){switch(t){case"arc":case"area":return["point"];case"text":case"bar":return["point","interval"];case"line":return;default:return["point","interval"]}}async function Mt(t){if(!t)return t;let e="datasets"in t?{...t.datasets}:{},n=async r=>{if(!r)return r;if("layer"in r){let l=await Promise.all(r.layer.map(n));r={...r,layer:l}}if("hconcat"in r){let l=await Promise.all(r.hconcat.map(n));r={...r,hconcat:l}}if("vconcat"in r){let l=await Promise.all(r.vconcat.map(n));r={...r,vconcat:l}}if("spec"in r&&(r={...r,spec:await n(r.spec)}),!r.data||!("url"in r.data))return r;let i;try{i=V(r.data.url)}catch{return r}let o=await st(i.href,r.data.format);return e[i.pathname]=o,{...r,data:{name:i.pathname}}},a=await n(t);return Object.keys(e).length===0?a:{...a,datasets:e}}var d=z(nt(),1);ut("arrow",vt);var Nt=t=>{let e=(0,kt.c)(12),{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:o,embedOptions:l}=t,k,s;e[0]===o?(k=e[1],s=e[2]):(k=async()=>Mt(o),s=[o],e[0]=o,e[1]=k,e[2]=s);let{data:m,error:v}=yt(k,s);if(v){let p;return e[3]===v?p=e[4]:(p=(0,d.jsx)(gt,{error:v}),e[3]=v,e[4]=p),p}if(!m)return null;let w;return e[5]!==r||e[6]!==l||e[7]!==i||e[8]!==m||e[9]!==a||e[10]!==n?(w=(0,d.jsx)(Pt,{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:m,embedOptions:l}),e[5]=r,e[6]=l,e[7]=i,e[8]=m,e[9]=a,e[10]=n,e[11]=w):w=e[11],w},Pt=({value:t,setValue:e,chartSelection:n,fieldSelection:a,spec:r,embedOptions:i})=>{let{theme:o}=ot(),l=(0,x.useRef)(null),k=(0,x.useRef)(void 0),[s,m]=(0,x.useState)(),v=(0,x.useMemo)(()=>i&&"actions"in i?i.actions:{source:!1,compiled:!1},[i]),w=H(r),p=(0,x.useMemo)(()=>Z(bt(w),{chartSelection:n,fieldSelection:a}),[w,n,a]),f=(0,x.useMemo)(()=>P(p),[p]),h=C(c=>{e({...t,...c})}),_=(0,x.useMemo)(()=>et((c,g)=>{j.debug("[Vega signal]",c,g);let b=T.mapValues(g,Ct);b=T.mapValues(b,It),h({[c]:b})},100),[h]),M=H(f),I=(0,x.useMemo)(()=>M.reduce((c,g)=>(y.PAN_ZOOM===g||y.isBinColoring(g)||c.push({signalName:g,handler:(b,X)=>_(b,X)}),c),[]),[M,_]),B=C(c=>{j.error(c),j.debug(p),m(c)}),Q=C(c=>{j.debug("[Vega view] created",c),k.current=c,m(void 0)}),U=()=>{let c=[];return y.hasPoint(f)&&c.push(["Point selection","click to select a point; hold shift for multi-select"]),y.hasInterval(f)&&c.push(["Interval selection","click and drag to select an interval"]),y.hasLegend(f)&&c.push(["Legend selection","click to select a legend item; hold shift for multi-select"]),y.hasPanZoom(f)&&c.push(["Pan","hold the meta key and drag"],["Zoom","hold the meta key and scroll"]),c.length===0?null:(0,d.jsx)(lt,{delayDuration:300,side:"left",content:(0,d.jsx)("div",{className:"text-xs flex flex-col",children:c.map((g,b)=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("span",{className:"font-bold tracking-wide",children:[g[0],":"]})," ",g[1]]},b))}),children:(0,d.jsx)(it,{className:"absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground"})})},A=ft({ref:l,spec:p,options:{theme:o==="dark"?"dark":void 0,actions:v,mode:"vega-lite",tooltip:mt.call,renderer:"canvas"},onError:B,onEmbed:Q});return(0,x.useEffect)(()=>(I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.addSignalListener(c,g)}catch(b){j.error(b)}}),()=>{I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.removeSignalListener(c,g)}catch(b){j.error(b)}})}),[A,I]),(0,d.jsxs)(d.Fragment,{children:[s&&(0,d.jsxs)(ht,{variant:"destructive",children:[(0,d.jsx)(dt,{children:s.message}),(0,d.jsx)("div",{className:"text-md",children:s.stack})]}),(0,d.jsxs)("div",{className:at("relative"),onPointerDown:rt.stopPropagation(),children:[(0,d.jsx)("div",{ref:l,"data-container-width":pt(p)}),U()]})]})};function It(t){return t instanceof Set?[...t]:t}function Ct(t){return Array.isArray(t)?t.map(e=>e instanceof Date&&ct(e)?new Date(e).getTime():e):t}var Et=Nt;export{Et as default};
|
package/dist/index.html
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-eeNpwqOH.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BzqwXe9B.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/react-Bj1aDYRI.js">
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<link rel="modulepreload" crossorigin href="./assets/precisionRound-BWd4wizY.js">
|
|
77
77
|
<link rel="modulepreload" crossorigin href="./assets/defaultLocale-9568JNk4.js">
|
|
78
78
|
<link rel="modulepreload" crossorigin href="./assets/vega-loader.browser-BAOZVR5y.js">
|
|
79
|
-
<link rel="modulepreload" crossorigin href="./assets/utils-
|
|
79
|
+
<link rel="modulepreload" crossorigin href="./assets/utils-DWFl4LEP.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="./assets/clsx-BtEcuwwV.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="./assets/cn-X2M2usMq.js">
|
|
82
82
|
<link rel="modulepreload" crossorigin href="./assets/jsx-runtime-xyXE3D12.js">
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-CgR63hI6.js">
|
|
169
169
|
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-p4Qnjk3c.js">
|
|
170
170
|
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-DbWLTCMW.js">
|
|
171
|
-
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-
|
|
171
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-CYb9pckL.js">
|
|
172
172
|
<link rel="modulepreload" crossorigin href="./assets/dist-CbFQ_xuE.js">
|
|
173
173
|
<link rel="modulepreload" crossorigin href="./assets/command-D3BICvR1.js">
|
|
174
174
|
<link rel="modulepreload" crossorigin href="./assets/popover-B-U4TYNB.js">
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
<link rel="modulepreload" crossorigin href="./assets/table-CKgMdP5F.js">
|
|
180
180
|
<link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-DX1ibXJ6.js">
|
|
181
181
|
<link rel="modulepreload" crossorigin href="./assets/error-banner-CwqXGjgA.js">
|
|
182
|
-
<link rel="modulepreload" crossorigin href="./assets/formats-
|
|
182
|
+
<link rel="modulepreload" crossorigin href="./assets/formats-N7VZhahg.js">
|
|
183
183
|
<link rel="modulepreload" crossorigin href="./assets/en-US-CRK2zrZu.js">
|
|
184
184
|
<link rel="modulepreload" crossorigin href="./assets/isValid-BaJpcsAS.js">
|
|
185
185
|
<link rel="modulepreload" crossorigin href="./assets/dates-YVQ8lKSe.js">
|
|
@@ -193,14 +193,14 @@
|
|
|
193
193
|
<link rel="modulepreload" crossorigin href="./assets/table-d1stBdc6.js">
|
|
194
194
|
<link rel="modulepreload" crossorigin href="./assets/message-circle-BZ_YQ62K.js">
|
|
195
195
|
<link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-CqJ1WMs7.js">
|
|
196
|
-
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-
|
|
196
|
+
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-CYRewW_n.js">
|
|
197
197
|
<link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-BmezJTFV.js">
|
|
198
198
|
<link rel="modulepreload" crossorigin href="./assets/square-function-B_4sHUac.js">
|
|
199
199
|
<link rel="modulepreload" crossorigin href="./assets/spec-B5jqkOIH.js">
|
|
200
200
|
<link rel="modulepreload" crossorigin href="./assets/ellipsis-vertical-NMs5MChC.js">
|
|
201
201
|
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-APp2QBCB.js">
|
|
202
202
|
<link rel="modulepreload" crossorigin href="./assets/components-DGfV3WaM.js">
|
|
203
|
-
<link rel="modulepreload" crossorigin href="./assets/column-preview-
|
|
203
|
+
<link rel="modulepreload" crossorigin href="./assets/column-preview-PiH54hAW.js">
|
|
204
204
|
<link rel="modulepreload" crossorigin href="./assets/icons-p6CV99Ur.js">
|
|
205
205
|
<link rel="modulepreload" crossorigin href="./assets/floating-outline-DjsW4G2W.js">
|
|
206
206
|
<link rel="modulepreload" crossorigin href="./assets/useAddCell-CHNllnsN.js">
|
|
@@ -221,12 +221,12 @@
|
|
|
221
221
|
<link rel="modulepreload" crossorigin href="./assets/memoize-BwAF2XN5.js">
|
|
222
222
|
<link rel="modulepreload" crossorigin href="./assets/get-D7jeR2wg.js">
|
|
223
223
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-yJDdA_ya.js">
|
|
224
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
224
|
+
<link rel="modulepreload" crossorigin href="./assets/state-Nag9RDED.js">
|
|
225
225
|
<link rel="modulepreload" crossorigin href="./assets/label-B2Qq8SUQ.js">
|
|
226
226
|
<link rel="modulepreload" crossorigin href="./assets/textarea-CHIQ2xAV.js">
|
|
227
227
|
<link rel="modulepreload" crossorigin href="./assets/refresh-ccw-C_p5-FDN.js">
|
|
228
228
|
<link rel="modulepreload" crossorigin href="./assets/trash-2-CB1m4HRS.js">
|
|
229
|
-
<link rel="modulepreload" crossorigin href="./assets/form-
|
|
229
|
+
<link rel="modulepreload" crossorigin href="./assets/form-B-BLUzr3.js">
|
|
230
230
|
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-CM8Ne7Px.js">
|
|
231
231
|
<link rel="modulepreload" crossorigin href="./assets/field-pbSM0DjX.js">
|
|
232
232
|
<link rel="modulepreload" crossorigin href="./assets/VisuallyHidden-D9lr2Nj2.js">
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
<link rel="stylesheet" crossorigin href="./assets/cells-jmgGt1lS.css">
|
|
244
244
|
<link rel="stylesheet" crossorigin href="./assets/markdown-renderer-DdDKmWlR.css">
|
|
245
245
|
<link rel="stylesheet" crossorigin href="./assets/JsonOutput-B7vuddcd.css">
|
|
246
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
246
|
+
<link rel="stylesheet" crossorigin href="./assets/index-CCazW2UV.css">
|
|
247
247
|
</head>
|
|
248
248
|
<body>
|
|
249
249
|
<div id="root"></div>
|
package/package.json
CHANGED
package/src/__tests__/branded.ts
CHANGED
|
@@ -10,11 +10,17 @@
|
|
|
10
10
|
* everywhere.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import type { components } from "@marimo-team/marimo-api";
|
|
13
14
|
import type { CellId, UIElementId } from "@/core/cells/ids";
|
|
14
15
|
import type { RequestId } from "@/core/network/DeferredRequestRegistry";
|
|
15
16
|
import type { VariableName } from "@/core/variables/types";
|
|
16
17
|
|
|
18
|
+
type WidgetModelId = components["schemas"]["WidgetModelId"];
|
|
19
|
+
type Base64String = components["schemas"]["Base64String"];
|
|
20
|
+
|
|
17
21
|
export const cellId = (s: string) => s as CellId;
|
|
18
22
|
export const variableName = (s: string) => s as VariableName;
|
|
19
23
|
export const requestId = (s: string) => s as RequestId;
|
|
20
24
|
export const uiElementId = (s: string) => s as UIElementId;
|
|
25
|
+
export const widgetModelId = (s: string) => s as WidgetModelId;
|
|
26
|
+
export const base64String = (s: string) => s as Base64String;
|
|
@@ -465,7 +465,7 @@ const ChatPanelBody = () => {
|
|
|
465
465
|
messages: activeChat?.messages || [], // initial messages
|
|
466
466
|
transport: new DefaultChatTransport({
|
|
467
467
|
api: runtimeManager.getAiURL("chat").toString(),
|
|
468
|
-
headers: runtimeManager.headers(),
|
|
468
|
+
headers: () => runtimeManager.headers(),
|
|
469
469
|
prepareSendMessagesRequest: async (options) => {
|
|
470
470
|
const completionBody = await buildCompletionRequestBody(
|
|
471
471
|
options.messages,
|
|
@@ -476,6 +476,7 @@ const ChatPanelBody = () => {
|
|
|
476
476
|
const tools = FRONTEND_TOOL_REGISTRY.getToolSchemas(chatMode);
|
|
477
477
|
|
|
478
478
|
return {
|
|
479
|
+
api: runtimeManager.getAiURL("chat").toString(),
|
|
479
480
|
body: {
|
|
480
481
|
tools,
|
|
481
482
|
...options,
|