@deephaven/code-studio 0.38.1-beta.5 → 0.38.1-beta.7
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/build/assets/{AppRoot-2324c2b2.js → AppRoot-6c825f62.js} +2 -2
- package/build/assets/{AppRoot-2324c2b2.js.map → AppRoot-6c825f62.js.map} +1 -1
- package/build/assets/{index-a90b8903.js → index-23b7a5db.js} +2 -2
- package/build/assets/{index-a90b8903.js.map → index-23b7a5db.js.map} +1 -1
- package/build/assets/{index-c662db5b.js → index-7d566d32.js} +2 -2
- package/build/assets/{index-c662db5b.js.map → index-7d566d32.js.map} +1 -1
- package/build/assets/{useConnection-f5a52207.js → useConnection-4123360f.js} +5 -5
- package/build/assets/{useConnection-f5a52207.js.map → useConnection-4123360f.js.map} +1 -1
- package/build/index.html +1 -1
- package/package.json +31 -31
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as a,G as Q,A as v,I as sm,B as W,F as Y,J as jc,H as re,K as me,L as Pr,M as ws,N as Ke,O as ye,P as Hc,Q as et,S as sa,T as im,U as om,V as lm,W as rm,X as ae,R as il,Y as ad,Z as Ye,_ as ia,$ as am,a0 as dm,a1 as Uc,a2 as Oe,a3 as jr,E as cm,D as $t,a4 as Ol,a5 as Bc,a6 as oa,a7 as hm,a8 as Rn,a9 as um,aa as mm,ab as gm,ac as pm,ad as Hr,ae as fm,af as Cm,ag as bm,ah as dd,ai as Sm,aj as cd,ak as wm,al as vm,am as Tm,an as Em,ao as ym,ap as Rm,aq as St,ar as Vc,as as xm,at as $c,au as Im,av as Wc,aw as Dm,ax as Fm,ay as Nm,az as km,aA as hd,aB as Mm}from"./vendor-4a7e2c7c.js";import{P as Ee,s as we,T as Al,B as j,a as D,S as $e,M as Se,K as Re,G as zn,b as Qt,C as ie,c as en,D as Bn,d as yi,e as _l,f as st,g as mo,I as vi,U as Lm,h as Ce,i as F,j as Ys,F as Vn,k as mn,u as la,E as ke,l as N,m as Pn,n as vs,o as Jo,p as at,q as ze,r as rt,t as Pl,v as Om,O as Hn,w as Am,x as cn,y as rn,z as _m,A as Pm,R as jl,H as $n,J as Hl,L as Gc,N as zc,Q as jm,V as Hm,W as ud,X as Ge,Y as md,Z as Kc,_ as ra,$ as gd,a0 as ro,a1 as Yc,a2 as Um,a3 as qc,a4 as Bm,a5 as Vm,a6 as tn,a7 as $m,a8 as Wm,a9 as Gm,aa as zm,ab as Km,ac as Ym,ad as qm,ae as Xm,af as Zm,ag as Qm,ah as Jm,ai as eg}from"./useConnection-
|
|
1
|
+
import{C as a,G as Q,A as v,I as sm,B as W,F as Y,J as jc,H as re,K as me,L as Pr,M as ws,N as Ke,O as ye,P as Hc,Q as et,S as sa,T as im,U as om,V as lm,W as rm,X as ae,R as il,Y as ad,Z as Ye,_ as ia,$ as am,a0 as dm,a1 as Uc,a2 as Oe,a3 as jr,E as cm,D as $t,a4 as Ol,a5 as Bc,a6 as oa,a7 as hm,a8 as Rn,a9 as um,aa as mm,ab as gm,ac as pm,ad as Hr,ae as fm,af as Cm,ag as bm,ah as dd,ai as Sm,aj as cd,ak as wm,al as vm,am as Tm,an as Em,ao as ym,ap as Rm,aq as St,ar as Vc,as as xm,at as $c,au as Im,av as Wc,aw as Dm,ax as Fm,ay as Nm,az as km,aA as hd,aB as Mm}from"./vendor-4a7e2c7c.js";import{P as Ee,s as we,T as Al,B as j,a as D,S as $e,M as Se,K as Re,G as zn,b as Qt,C as ie,c as en,D as Bn,d as yi,e as _l,f as st,g as mo,I as vi,U as Lm,h as Ce,i as F,j as Ys,F as Vn,k as mn,u as la,E as ke,l as N,m as Pn,n as vs,o as Jo,p as at,q as ze,r as rt,t as Pl,v as Om,O as Hn,w as Am,x as cn,y as rn,z as _m,A as Pm,R as jl,H as $n,J as Hl,L as Gc,N as zc,Q as jm,V as Hm,W as ud,X as Ge,Y as md,Z as Kc,_ as ra,$ as gd,a0 as ro,a1 as Yc,a2 as Um,a3 as qc,a4 as Bm,a5 as Vm,a6 as tn,a7 as $m,a8 as Wm,a9 as Gm,aa as zm,ab as Km,ac as Ym,ad as qm,ae as Xm,af as Zm,ag as Qm,ah as Jm,ai as eg}from"./useConnection-4123360f.js";import{e as Wn,l as yn,K as Jt,a as pd,R as tg,b as gs,W as ng}from"./monaco-6eaf53f7.js";import{v as Ur,d as sg,a as Xc,b as aa,L as Dn,c as go,e as Un,f as Zc,g as ee,h as fd,i as ig,j as og,k as lg,l as rg,m as Wt,n as Ss,o as Qc,p as Gn,q as Ul,r as Ti,s as ag,t as dg,u as Cd,w as ol,x as bd,y as Jc,z as cg,A as po,B as eh,C as hg,D as ug,T as Ze,E as da,F as ca,G as ll,H as Mn,I as mg,J as gg,K as pg,M as fg,N as Cg,O as ha,P as Ts,Q as Sd,R as fo,S as ua,U as ma,V as th,W as bg,X as Bl,Y as Sg,Z as rl,_ as wg,$ as ga,a0 as nh,a1 as Vs,a2 as vg,a3 as Tg,a4 as Eg,a5 as yg,a6 as Rg,a7 as xg,a8 as wd,a9 as pr,aa as Ig,ab as Dg,ac as Fg,ad as Vl,ae as $l,af as Ng,ag as kg,ah as Wl,ai as sh,aj as Mg,ak as Lg,al as Og,am as ih,an as Ag,ao as _g,ap as Pg,aq as jg,ar as Hg,as as Ug,at as Bg,au as Vg,av as $g,aw as Wg,ax as Gg,ay as zg,az as Kg,aA as oh,aB as Yg,aC as Br,aD as Vr,aE as qg,aF as Xg,aG as Zg,aH as Qg,aI as Jg,aJ as ep,aK as tp,aL as np,aM as sp,aN as ip,aO as op,aP as lp,aQ as rp,aR as vd,aS as ap,aT as dp,aU as cp}from"./index-23b7a5db.js";import{P as al,b as hp,h as up,p as mp,o as gp,s as pp,t as fp,c as fr}from"./plotly-788bff8c.js";import"./helpers-042e6b4d.js";class pa{static isDark(e){const t=document.createElement("div");t.style.display="none",t.style.color=e;const n=getComputedStyle(document.body.appendChild(t)).color,s=n.match(/\d+/g);let i=[];if(s)i=s.map(l=>parseInt(l,10));else throw new Error(`Invalid color received. Got ${n}`);return document.body.removeChild(t),pa.getBrightness(i)<125}static getBrightness(e){return Math.round((e[0]*299+e[1]*587+e[2]*114)/1e3)}}const lh=pa,Cp="table_",Td="column_",bp=new Set(["in","not","i","ii","k"]),Sp=new Set(["abstract","continue","for","new","switch","assert","default","if","package","synchronized","boolean","do","goto","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","null","true","false"]),wp=/[^a-zA-Z0-9_$+@-]/g,vp=/[^A-Za-z0-9_$]/g;class As{static legalize=(e,t,n,s,i)=>{let o=e.trim().replace(/[- ]/g,"_");return s&&(bp.has(o)||Sp.has(o))&&(o=t+o),o=o.replace(n,""),o||(o=t+i),Number.isNaN(Number(o.charAt(0)))||(o=t+o),o};static legalizeTableName=e=>As.legalize(e,Cp,wp,!1,0);static legalizeColumnNames=e=>{const t=[];return e.forEach((n,s)=>{let i=As.legalizeColumnName(n,s);t.includes(i)&&(i=Td+s),t.push(i)}),t};static legalizeColumnName=(e,t=0)=>As.legalize(e,Td,vp,!0,t);static isValidTableName=e=>As.legalizeTableName(e)===e;static isValidColumnName=e=>As.legalizeColumnName(e)===e}const Ri=As;function Tp(c,e){return c?c.closest(`.${e}`):null}const Ep={getClosestByClassName:Tp};class yp{pending=[];resolved=[];add(e,t){const n=Ee.makeCancelable(e,t);return this.pending.push(n),n.then(()=>{this.resolve(n)},()=>{this.resolve(n)}),n}remove(e){for(let t=0;t<this.pending.length;t+=1)if(this.pending[t]===e){this.pending.splice(t,1);return}}resolve(e){this.remove(e),this.resolved.push(e)}cancel(){const e=[...this.pending,...this.resolved];for(let t=0;t<e.length;t+=1)e[t].cancel();this.pending=[],this.resolved=[]}}const Kn=yp;class Rp extends Error{isInvalid=!0}const bi=Rp;function rh({type:c}){switch(c){case we.VariableType.TABLE:case we.VariableType.TABLEMAP:case we.VariableType.TREETABLE:case we.VariableType.HIERARCHICALTABLE:return a.jsx(Q,{icon:aa});case we.VariableType.FIGURE:return a.jsx(Q,{icon:Xc});case we.VariableType.PANDAS:return a.jsx(Q,{icon:sg});default:return a.jsx(Q,{icon:Ur})}}class xp extends v.Component{constructor(e){super(e),this.container=null}componentDidMount(){this.colorize()}container;colorize(){const{children:e}=this.props;this.container&&e!=null&&Wn.colorizeElement(this.container,{theme:"dh-dark"})}render(){const{children:e,language:t}=this.props;return a.jsx("div",{children:a.jsx("div",{"data-lang":t,ref:n=>{this.container=n},style:{pointerEvents:"none"},children:e})})}}const Gl=xp;class Ip{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}const ah=Ip;class dl{static hasComment(e){return e.comment!==void 0}static hasPattern(e){return e.pattern!==void 0}static hasOp(e){return e.op!==void 0}static parseArguments(e){return e==null||!(typeof e=="string"||e instanceof String)?[]:sm.parse(e).filter(t=>!this.hasComment(t)).map(t=>this.hasPattern(t)?t.pattern:this.hasOp(t)?t.op:`${t}`)}static formatTimestamp(e){if(e==null||!(e instanceof Date))return null;const t=`${e.getHours()}`.padStart(2,"0"),n=`${e.getMinutes()}`.padStart(2,"0"),s=`${e.getSeconds()}`.padStart(2,"0"),i=`${e.getMilliseconds()}`.padStart(3,"0");return`${t}:${n}:${s}.${i}`}static isTableType(e){return e===we.VariableType.TABLE||e===we.VariableType.TREETABLE||e===we.VariableType.HIERARCHICALTABLE}static isWidgetType(e){return e===we.VariableType.FIGURE||e===we.VariableType.OTHERWIDGET||e===we.VariableType.PANDAS}static isOpenableType(e){return dl.isTableType(e)||dl.isWidgetType(e)}static isFigureType(e){return e===we.VariableType.FIGURE}static isPandas(e){return e===we.VariableType.PANDAS}}const $r=dl;function ch({children:c}){return a.jsxs("div",{className:"console-history-item-result",children:[a.jsx("div",{className:"console-history-gutter",children:"-"}),a.jsx("div",{className:"console-history-content",children:c})]})}ch.propTypes={children:W.node.isRequired};class Dp extends v.Component{static defaultProps={disabled:!1};constructor(e){super(e),this.updateElapsed=this.updateElapsed.bind(this),this.startTime=Date.now(),this.state={elapsed:0}}componentDidMount(){this.timer=setInterval(this.updateElapsed,1e3)}componentWillUnmount(){this.timer&&clearInterval(this.timer),this.timer=void 0}timer;startTime;updateElapsed(){this.setState({elapsed:Math.round((Date.now()-this.startTime)/1e3)})}render(){const{disabled:e,onCancelClick:t}=this.props,{elapsed:n}=this.state;return a.jsx("div",{className:Y("console-history-result-in-progress",{disabled:e}),children:a.jsxs("span",{className:"badge",children:[a.jsx(Dn,{})," Running... ",Al.formatElapsedTime(n)," ",a.jsx(j,{className:"console-history-result-in-progress-cancel",kind:"ghost",icon:go,tooltip:"Cancel",onClick:t,disabled:e})]})})}}const Fp=Dp;class cl extends v.PureComponent{static defaultProps={message:""};static mouseDragThreshold=5;constructor(e){super(e),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleToggleError=this.handleToggleError.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.mouseX=null,this.mouseY=null,this.isClicking=!1,this.state={isExpanded:!1,isTriggerHovered:!1}}mouseX;mouseY;isClicking;handleKeyPress(e){switch(e.key){case"Enter":case" ":this.handleToggleError(),e.stopPropagation(),e.preventDefault();break}}handleMouseDown(e){this.mouseX=e.clientX,this.mouseY=e.clientY,this.isClicking=!0}handleMouseMove(e){this.mouseX!=null&&this.mouseY!=null?(Math.abs(e.clientX-this.mouseX)>=cl.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=cl.mouseDragThreshold)&&(this.isClicking=!1):this.isClicking&&(this.isClicking=!1)}handleMouseUp(e){this.isClicking&&!e.shiftKey&&!e.metaKey&&!e.altKey&&this.handleToggleError(),this.mouseX=null,this.mouseY=null,this.isClicking=!1}handleToggleError(){this.setState(e=>({isExpanded:!e.isExpanded}))}handleMouseEnter(){this.setState({isTriggerHovered:!0})}handleMouseLeave(){this.setState({isTriggerHovered:!1})}render(){const{isExpanded:e,isTriggerHovered:t}=this.state,{message:n}=this.props;D(n);const s=n.indexOf(`
|
|
2
2
|
`),i=s>-1;let o=n;i&&(o=n.slice(0,s));const l=n.slice(s),r=t?"error-btn-link error-btn-link--active":"error-btn-link";return a.jsxs("div",{className:Y("error-message",{expanded:e}),children:[i&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"error-gutter",children:a.jsx("button",{type:"button",onClick:this.handleToggleError,className:r,tabIndex:-1,children:a.jsx(Q,{icon:e?Un:Zc,transform:"left-3"})})}),a.jsxs("div",{className:"error-content",children:[a.jsx("div",{className:"console-error-text-trigger",role:"button",tabIndex:0,onKeyPress:this.handleKeyPress,onMouseDown:this.handleMouseDown,onMouseMove:this.handleMouseMove,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onMouseUp:this.handleMouseUp,children:o}),e?l:""]})]}),!i&&a.jsx("div",{className:"error-content",children:a.jsx("div",{className:"console-error-text",children:o})})]},"error")}}const Np=cl;const Ed=ee.module("ConsoleHistoryItem");class kp extends v.PureComponent{static defaultProps={disabled:!1};constructor(e){super(e),this.handleCancelClick=this.handleCancelClick.bind(this),this.handleObjectClick=this.handleObjectClick.bind(this)}handleObjectClick(e){Ed.debug("handleObjectClick",e);const{openObject:t}=this.props;t(e)}handleCancelClick(){const{item:e}=this.props;e!=null&&e.cancelResult&&(Ed.debug(`Cancelling command: ${e.command}`),e.cancelResult())}render(){const{disabled:e,item:t,language:n}=this.props,{disabledObjects:s,result:i}=t;let o=null;t.command!=null&&t.command!==""&&(o=a.jsxs("div",{className:"console-history-item-command",children:[a.jsx("div",{className:"console-history-gutter",children:">"}),a.jsx("div",{className:"console-history-content",children:a.jsx(Gl,{language:n,children:t.command})})]}));const l=[];let r=!1;if(i){const{error:h,message:u,changes:m}=i;if(m){const{created:g,updated:p}=m;[...g,...p].forEach(f=>{r=!0;const{title:b}=f,C=`${b}`,S=e===void 0||e||(s??[]).indexOf(C)>=0,w=a.jsx(j,{kind:"primary",onClick:()=>this.handleObjectClick(f),className:"btn-console-object",disabled:S,icon:a.jsx(rh,{type:f.type}),children:b},C);l.push(w)})}if(h!=null&&t.command==null){let g=`${h.message??h}`;g||(g=h);const p=a.jsx(Np,{message:g},"result-error");l.push(p)}if(u!==void 0&&u!==""){const g=a.jsx("div",{className:"log-message",children:u},"log-message");l.push(g)}}else{r=!0;const h=a.jsx(Fp,{onCancelClick:this.handleCancelClick,disabled:e},"in_progress");l.push(h)}let d=null;return l.length>0&&(d=a.jsx(ch,{children:l})),a.jsxs("div",{className:Y("console-command-result",{"console-result-buttons":r}),children:[o,d]})}}const Mp=kp;class fa extends v.Component{static defaultProps={disabled:!1};static itemKey(e,t){return`${e}.${t.command}.${t.result&&t.result.message}.${t.result&&t.result.error}`}render(){const{disabled:e,items:t,language:n,openObject:s}=this.props,i=[];for(let o=0;o<t.length;o+=1){const l=t[o],r=a.jsx(Mp,{disabled:e,item:l,openObject:s,language:n},fa.itemKey(o,l));i.push(r)}return a.jsx("div",{className:"container-fluid console-history",children:i})}}const Lp=fa,Op={name:"Console",CLEAR:$e.createAndAdd({id:"CONSOLE.CLEAR",name:"Clear",shortcut:[Se.CTRL,Re.L],macShortcut:[Se.CTRL,Re.C]}),FOCUS_HISTORY:$e.createAndAdd({id:"CONSOLE.FOCUS_HISTORY",name:"Focus History",shortcut:[Se.CTRL,Re.H],macShortcut:[Se.CTRL,Se.OPTION,Re.H]})},Ap={name:"Command History",FOCUS_HISTORY:$e.createAndAdd({id:"COMMAND_HISTORY.FOCUS_HISTORY",name:"Focus History Search",shortcut:[Se.CTRL,Re.H],macShortcut:[Se.CTRL,Se.OPTION,Re.H]}),SEND_TO_CONSOLE:$e.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_CONSOLE",name:"Send to Console",shortcut:[Re.ENTER],macShortcut:[Re.ENTER]}),SEND_TO_NOTEBOOK:$e.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_NOTEBOOK",name:"Send to Notebook",shortcut:[Se.CTRL,Re.ENTER],macShortcut:[Se.CMD,Re.ENTER]}),RUN:$e.createAndAdd({id:"COMMAND_HISTORY.RUN",name:"Run",shortcut:[Se.ALT,Re.R],macShortcut:[Se.OPTION,Re.R]})},_p={name:"Notebook",RUN:$e.createAndAdd({id:"NOTEBOOK.RUN",name:"Run",shortcut:[Se.ALT,Re.R],macShortcut:[Se.OPTION,Re.R]}),RUN_SELECTED:$e.createAndAdd({id:"NOTEBOOK.RUN_SELECTED",name:"Run Selected",shortcut:[Se.ALT,Se.SHIFT,Re.R],macShortcut:[Se.OPTION,Se.SHIFT,Re.R]}),FIND:$e.createAndAdd({id:"NOTEBOOK.FIND",name:"Find",shortcut:[Se.CTRL,Re.F],macShortcut:[Se.CMD,Re.F],isEditable:!1}),MINIMAP:$e.createAndAdd({id:"NOTEBOOK.MINIMAP",name:"Show Minimap",shortcut:[Se.ALT,Re.M],macShortcut:[Se.OPTION,Re.M]}),WORDWRAP:$e.createAndAdd({id:"NOTEBOOK.WORDWRAP",name:"Word Wrap",shortcut:[Se.ALT,Re.Z],macShortcut:[Se.OPTION,Re.Z]})},Pp={CONSOLE:Op,COMMAND_HISTORY:Ap,NOTEBOOK:_p},Nt=Pp,ft=Object.freeze({FATAL:"FATAL",STDERR:"STDERR",ERROR:"ERROR",WARN:"WARN",STDOUT:"STDOUT",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}),jp="#2d2a2e",Hp="#fcfcfa",Up="#fcd65b",Bp="#b2b1b2",Vp="#9edc6f",$p="#76d9e4",Wp="#f95d84",Gp="#aa9af4",zp="#f95d84",Kp="#fcfcfa",Yp="#7c7b7c",ge={"error-foreground":"#f95d84",background:jp,foreground:Hp,"line-height":"19px",string:Up,"string-delim":"#929192",delimiter:Bp,predefined:Vp,keyword:$p,storage:Wp,number:Gp,operator:zp,identifier:Kp,"namespace-identifier":"#f95d84","identifier-js":"#fcd65b",comment:Yp,"input-option-active-border":"#929192","focus-border":"rgba(72, 120, 234, 0.85)","input-background":"#555356","input-foreground":"#f0f0ee","input-border":"#929192","editor-line-number-foreground":"#929192","editor-selection-background":"#676368","editor-line-highlight-bg":"#373438","context-menu-background":"#555356","context-menu-foreground":"#f0f0ee","menu-selection-background":"#4878ea","log-date":"#929192","log-error":"#f95d84","log-info":"#76d9e4","log-stdout":"#f0f0ee","log-warn":"#fcd65b","log-debug":"#aa9af4","log-trace":"#9edc6f","editor-find-match-background":"#3c5595","editor-find-match-highlight-background":"#343e5d","editor-widget-background":"#403e41","input-option-active-background":"#4878ea","input-option-active-foreground":"#f0f0ee","editor-suggest-widget-background":"#403e41","editor-suggest-widget-border":"#5b5a5c","editor-suggest-widget-foreground":"#f0f0ee","editor-suggest-widget-selected-background":"#41475a","editor-suggest-widget-highlightForeground":"#4878ea","list-hover-background":"#555356","text-link-foreground":"#929192","text-link-active-foreground":"#f0f0ee","editor-link-active-foreground":"#f0f0ee"},qp="python",Xp={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},Zp={keywords:["and","del","from","not","while","as","elif","global","or","with","assert","else","if","pass","yield","break","except","import","print","exec","in","raise","continue","finally","is","return","for","try",":","=","isinstance","__debug__"],storage:["class","def","async","lambda"],operators:["+","-","*","**","/","//","%","<<",">>","&","|","^","~","<",">","<=",">=","==","!=","<>","+=","-=","*=","/","//=","%=","&=","|=","^=",">>=","<<=","**="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~&|+\-*/^%]+/,delimiters:/[;=.@:,`]/,escapes:/\\(?:[abfnrtv\\"'\n\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{\w+\})/,rawpre:/(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,strpre:/(?:[buBU])/,tokenizer:{root:[[/@strpre?("""|''')/,{token:"string.delim",bracket:"@open",next:"@mstring.$1"}],[/@strpre?"([^"\\]|\\.)*$/,"string.invalid"],[/@strpre?'([^'\\]|\\.)*$/,"string.invalid"],[/@strpre?(["])/,{token:"string.delim",bracket:"@open",next:"@sstring.$1",nextEmbedded:"deephavenDb"}],[/@strpre?(["'])/,{token:"string.delim",bracket:"@open",next:"@string.$1"}],[/@rawpre("""|''')/,{token:"string.delim",bracket:"@open",next:"@mrawstring.$1"}],[/@rawpre"([^"\\]|\\.)*$/,"string.invalid"],[/@rawpre'([^'\\]|\\.)*$/,"string.invalid"],[/@rawpre(["'])/,{token:"string.delim",bracket:"@open",next:"@rawstring.$1"}],[/__[\w$]*/,"predefined"],[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@storage":"storage","@default":"identifier"}}],[/[A-Z][\w]*/,{cases:{"~[A-Z0-9_]+":"constructor.identifier","@default":"namespace.identifier"}}],{include:"@whitespace"},[/[{}()[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywords":"keyword","@operators":"operator","@default":""}}],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+[lL]?/,"number.hex"],[/0[bB][0-1]+[lL]?/,"number.binary"],[/(0[oO][0-7]+|0[0-7]+)[lL]?/,"number.octal"],[/(0|[1-9]\d*)[lL]?/,"number"],[":",{token:"keyword",bracket:"@open"}],[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}]],comment:[[/[^/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[/*]/,"comment"]],mstring:[{include:"@strcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],sstring:[{include:"@strcontent"},[/["]/,{token:"string.delim",bracket:"@close",next:"@pop",nextEmbedded:"@pop"}],[/./,"string.invalid"]],string:[{include:"@strcontent"},[/[']/,{token:"string.delim",bracket:"@close",next:"@pop"}],[/./,"string.invalid"]],strcontent:[[/[^\\"']+/,"string"],[/\\$/,"string.escape"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"]],mrawstring:[{include:"@rawstrcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],rawstring:[{include:"@rawstrcontent"},[/["']/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/./,"string.invalid"]],rawstrcontent:[[/[^\\"']+/,"string"],[/\\["']/,"string"],[/\\u[0-9A-Fa-f]{4}/,"string.escape"],[/\\/,"string"]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]]}},Qp={id:qp,conf:Xp,language:Zp},Jp=Qp,ef="groovy",tf={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},nf={keywords:["and","del","from","not","while","as","elif","global","or","with","assert","else","if","pass","yield","break","except","import","print","println","class","exec","in","raise","continue","finally","is","return","def","for","lambda","try",":","=","isinstance","__debug__"],operators:["+","-","*","**","/","//","%","<<",">>","&","|","^","~","<",">","<=",">=","==","!=","<>","+=","-=","*=","/","//=","%=","&=","|=","^=",">>=","<<=","**="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~&|+\-*/^%]+/,delimiters:/[;=.@:,`]/,escapes:/\\(?:[abfnrtv\\"'\n\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{\w+\})/,rawpre:/(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,strpre:/(?:[buBU])/,tokenizer:{root:[[/@strpre?("""|''')/,{token:"string.delim",bracket:"@open",next:"@mstring.$1"}],[/@strpre?"([^"\\]|\\.)*$/,"string.invalid"],[/@strpre?'([^'\\]|\\.)*$/,"string.invalid"],[/@strpre?(["])/,{token:"string.delim",bracket:"@open",next:"@sstring.$1",nextEmbedded:"deephavenDb"}],[/@strpre?(["'])/,{token:"string.delim",bracket:"@open",next:"@string.$1"}],[/@rawpre("""|''')/,{token:"string.delim",bracket:"@open",next:"@mrawstring.$1"}],[/@rawpre"([^"\\]|\\.)*$/,"string.invalid"],[/@rawpre'([^'\\]|\\.)*$/,"string.invalid"],[/@rawpre(["'])/,{token:"string.delim",bracket:"@open",next:"@rawstring.$1"}],[/__[\w$]*/,"predefined"],[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w]*/,{cases:{"~[A-Z0-9_]+":"constructor.identifier","@default":"namespace.identifier"}}],{include:"@whitespace"},[/[{}()[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywords":"keyword","@operators":"operator","@default":""}}],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+[lL]?/,"number.hex"],[/0[bB][0-1]+[lL]?/,"number.binary"],[/(0[oO][0-7]+|0[0-7]+)[lL]?/,"number.octal"],[/(0|[1-9]\d*)[lL]?/,"number"],[":",{token:"keyword",bracket:"@open"}],[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}]],mstring:[{include:"@strcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],sstring:[{include:"@strcontent"},[/["]/,{token:"string.delim",bracket:"@close",next:"@pop",nextEmbedded:"@pop"}],[/./,"string.invalid"]],string:[{include:"@strcontent"},[/[']/,{token:"string.delim",bracket:"@close",next:"@pop"}],[/./,"string.invalid"]],strcontent:[[/[^\\"']+/,"string"],[/\\$/,"string.escape"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"]],mrawstring:[{include:"@rawstrcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],rawstring:[{include:"@rawstrcontent"},[/["']/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/./,"string.invalid"]],rawstrcontent:[[/[^\\"']+/,"string"],[/\\["']/,"string"],[/\\u[0-9A-Fa-f]{4}/,"string.escape"],[/\\/,"string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],doccomment:[[/[^/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[/*]/,"comment.doc"]]}},sf={id:ef,conf:tf,language:nf},of=sf,lf="scala",rf={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:/^\s*\/\/\s*(?:(?:#?region\b)|(?:<editor-fold\b))/,end:/^\s*\/\/\s*(?:(?:#?endregion\b)|(?:<\/editor-fold>))/}}},af={keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=><!~?:&|+\-*/^\\%@#]+/,digits:/\d+(_+\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\braw"""/,{token:"string.quote",bracket:"@open",next:"@rawstringt"}],[/\braw"/,{token:"string.quote",bracket:"@open",next:"@rawstring"}],[/\bs"""/,{token:"string.quote",bracket:"@open",next:"@sstringt"}],[/\bs"/,{token:"string.quote",bracket:"@open",next:"@sstring"}],[/\bf""""/,{token:"string.quote",bracket:"@open",next:"@fstringt"}],[/\bf"/,{token:"string.quote",bracket:"@open",next:"@fstring"}],[/"""/,{token:"string.quote",bracket:"@open",next:"@stringt"}],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/(@digits)[eE]([-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/(@digits)\.(@digits)([eE][-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/0[xX](@hexdigits)[Ll]?/,"number.hex","@allowMethod"],[/(@digits)[fFdD]/,"number.float","@allowMethod"],[/(@digits)[lL]?/,"number","@allowMethod"],[/\b_\*/,"key"],[/\b(_)\b/,"keyword","@allowMethod"],[/\bimport\b/,"keyword","@import"],[/\b(case)([ \t]+)(class)\b/,["keyword.modifier","white","keyword"]],[/\bcase\b/,"keyword","@case"],[/\bva[lr]\b/,"keyword","@vardef"],[/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,["keyword","white","identifier"]],[/@name(?=[ \t]*:(?!:))/,"variable"],[/(\.)(@name|@symbols)/,[{token:"operator"},{token:"@rematch",next:"@allowMethod"}]],[/([{(])(\s*)(@name(?=\s*=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,[{token:"string"},{token:"string.escape"},{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}},df={id:lf,conf:rf,language:af},cf=df,hf="deephavenDb",uf={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},mf={tokenPostfix:".js",keywords:["boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with"],builtins:["define","require","window","document","undefined"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[~!@#%\^&*-+=|\\:`<>.?\/]+/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,exponent:/[eE][\-+]?[0-9]+/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/([a-zA-Z_\$][\w\$]*)(\s*)(:?)/,{cases:{"$1@keywords":["keyword","white","delimiter"],$3:["key.identifier","white","delimiter"],"$1@builtins":["predefined.identifier","white","delimiter"],"@default":["identifier","white","delimiter"]}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/)/,{token:"regexp.slash",bracket:"@open",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d+\.\d*(@exponent)?/,"number.float"],[/\.\d+(@exponent)?/,"number.float"],[/\d+@exponent/,"number.float"],[/0[xX][\da-fA-F]+/,"number.hex"],[/0[0-7]+/,"number.octal"],[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment.invalid"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[{token:"@brackets.regexp.escape.control"},{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],["/",{token:"regexp.slash",bracket:"@close"},"@pop"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]]}},gf={id:hf,conf:uf,language:mf},pf=gf,ff="log",Cf={},bf={tokenizer:{root:[[/ FATAL[\s\S]*/,{token:"error",next:"@error"}],[/ ERROR[\s\S]*/,{token:"error",next:"@error"}],[/ STDERR[\s\S]*/,{token:"error",next:"@error"}],[/ STDOUT.*/,{token:"stdout",next:"@stdout"}],[/ INFO[\s\S]*/,{token:"info",next:"@info"}],[/ WARN.*/,{token:"warn",next:"@warn"}],[/ TRACE[\s\S]*/,{token:"trace",next:"@trace"}],[/ DEBUG[.\s\S]*/,{token:"debug",next:"@debug"}],[/^\d{2}:\d{2}:\d{2}.\d{3}/,"date"]],error:[{include:"@body"}],info:[{include:"@body"}],warn:[{include:"@body"}],stdout:[{include:"@body"}],trace:[{include:"@body"}],debug:[{include:"@body"}],body:[[/^\d{2}:\d{2}:\d{2}.\d{3}/,{token:"date",next:"@pop"}],[/[\s\S]*/,{token:"$S0"}]]}},Sf={id:ff,conf:Cf,language:bf},wf=Sf,bn=ee.module("MonacoUtils");class wn{static init({getWorker:e}={}){bn.debug("Initializing Monaco..."),e!==void 0&&wn.registerGetWorker(e);const{registerLanguages:t,removeHashtag:n}=wn,s=[{token:"",foreground:n(ge.foreground)},{token:"string",foreground:n(ge.string)},{token:"string.delim",foreground:n(ge["string-delim"])},{token:"keyword",foreground:n(ge.keyword)},{token:"identifier.js",foreground:n(ge["identifier-js"])},{token:"delimiter",foreground:n(ge.delimiter)},{token:"comment",foreground:n(ge.comment)},{token:"number",foreground:n(ge.number)},{token:"storage",foreground:n(ge.storage)},{token:"identifier",foreground:n(ge.identifier)},{token:"namespace.identifier",foreground:n(ge["namespace-identifier"])},{token:"operator",foreground:n(ge.operator)},{token:"predefined",foreground:n(ge.predefined)},{token:"error.log",foreground:ge["log-error"].substring(1)},{token:"warn.log",foreground:n(ge["log-warn"])},{token:"info.log",foreground:n(ge["log-info"])},{token:"stdout.log",foreground:n(ge["log-stdout"])},{token:"trace.log",foreground:n(ge["log-trace"])},{token:"debug.log",foreground:n(ge["log-debug"])},{token:"date.log",foreground:n(ge["log-date"])}],i={errorForeground:ge["error-foreground"],"inputOption.activeBorder":ge["input-option-active-border"],"editor.background":ge.background,"editor.foreground":ge.foreground,"editor.lineHighlightBackground":ge["editor-line-highlight-bg"],"editorLineNumber.foreground":ge["editor-line-number-foreground"],"editor.selectionBackground":ge["editor-selection-background"],"editor.findMatchBackground":ge["editor-find-match-background"],"editor.findMatchHighlightBackground":ge["editor-find-match-highlight-background"],"editorSuggestWidget.background":ge["editor-suggest-widget-background"],"editorSuggestWidget.border":ge["editor-suggest-widget-border"],"editorSuggestWidget.foreground":ge["editor-suggest-widget-foreground"],"editorSuggestWidget.selectedBackground":ge["editor-suggest-widget-selected-background"],"editorSuggestWidget.highlightForeground":ge["editor-suggest-widget-highlightForeground"],"list.hoverBackground":ge["list-hover-background"],"dropdown.background":ge["context-menu-background"],"dropdown.foreground":ge["context-menu-foreground"],"menu.selectionBackground":ge["menu-selection-background"],"list.focusBackground":ge["menu-selection-background"],"editorWidget.background":ge["editor-widget-background"],"inputOption.activeBackground":ge["input-option-active-background"],"inputOption.activeForeground":ge["input-option-active-foreground"],focusBorder:ge["focus-border"],"input.background":ge["input-background"],"input.foreground":ge["input-foreground"],"input.border":ge["input-border"],"textLink.foreground":ge["text-link-foreground"],"textLink.activeForeground":ge["text-link-active-foreground"],"editorLink.activeForeground":ge["editor-link-active-foreground"]};Wn.defineTheme("dh-dark",{base:"vs-dark",inherit:!0,rules:s,colors:i}),bn.debug2("monaco theme: ",ge),Wn.setTheme("dh-dark"),t([pf,Jp,of,wf,cf]),bn.debug("Monaco initialized.")}static registerGetWorker(e){window.MonacoEnvironment={...window.MonacoEnvironment,getWorker:e}}static removeHashtag(e){return e.substring(1)}static registerLanguages(e){const t=e.map(({id:n})=>n);yn.getLanguages().filter(({id:n})=>t.includes(n)).forEach(n=>{const s=n;bn.debug2("Overriding default language loader:",s.id)}),e.forEach(n=>{wn.registerLanguage(n)})}static registerLanguage(e){bn.debug2("Registering language: ",e.id),yn.register(e),yn.onLanguage(e.id,()=>{yn.setLanguageConfiguration(e.id,e.conf),yn.setMonarchTokensProvider(e.id,e.language)})}static setEOL(e,t=Wn.EndOfLineSequence.LF){e.getModel()?.setEOL(t)}static openDocument(e,t){const n=e.getModel();D(n);const s={textDocument:{uri:`${n.uri}`,languageId:n.getLanguageId(),version:n.getVersionId(),text:n.getValue()}};return bn.debug2("didOpenDocumentParams: ",s),t.openDocument(s),e.onDidChangeModelContent(o=>{const{changes:l,versionId:r}=o,d=[];for(let h=0;h<l.length;h+=1){const u=l[h],{range:m,rangeLength:g,text:p}=u,f={range:{start:{line:m.startLineNumber-1,character:m.startColumn-1},end:{line:m.endLineNumber-1,character:m.endColumn-1}},rangeLength:g,text:p};d.push(f)}if(d.length>0){const h={textDocument:{version:r,uri:`${n.uri}`},contentChanges:d};bn.debug2("didChangeDocumentParams",h),t.changeDocument(h)}})}static closeDocument(e,t){const n=e.getModel();D(n);const s={textDocument:{uri:`${n.uri}`}};t.closeDocument(s)}static registerPasteHandler(e){e.onDidPaste(t=>{const n=/“|”/g,s=/\u200b/g,i=/\u00A0/g,o=e.getModel();D(o);const l=o.getValueInRange(t.range);(n.test(l)||s.test(l)||i.test(l))&&o.applyEdits([{range:t.range,text:l.replace(n,'"').replace(s,"").replace(i," ")}])})}static isMacPlatform(){const{platform:e}=window.navigator;return e.startsWith("Mac")}static removeConflictingKeybindings(e){const t=[{windows:"ctrl+D",mac:"meta+D"},{windows:"ctrl+H"}];try{t.forEach(n=>{wn.isMacPlatform()&&n.mac===""||!wn.isMacPlatform()&&n.windows===""||wn.removeKeybinding(e,wn.isMacPlatform()?n.mac:n.windows)})}catch(n){bn.error(n)}}static removeKeybinding(e,t){if(t===void 0)return;const n=e._standaloneKeybindingService._getResolver()._map.get(t);n!=null?n.forEach(s=>{bn.debug2(`Removing Monaco keybinding ${t} for ${s.command}`),e._standaloneKeybindingService.addDynamicKeybinding(`-${s.command}`,null,()=>{})}):bn.warn(`Did not find any keybindings to remove for ${t}`)}static getMonacoKeyCodeFromShortcut(e){const{keyState:t}=e,{keyValue:n}=t;return n===null?0:wn.isMacPlatform()?(t.metaKey?Jt.CtrlCmd:0)|(t.shiftKey?Jt.Shift:0)|(t.altKey?Jt.Alt:0)|(t.ctrlKey?Jt.WinCtrl:0)|pd.fromString(n):(t.ctrlKey?Jt.CtrlCmd:0)|(t.shiftKey?Jt.Shift:0)|(t.altKey?Jt.Alt:0)|(t.metaKey?Jt.WinCtrl:0)|pd.fromString(n)}static provideLinks(e){const t=[];for(let n=1;n<=e.getLineCount();n+=1){const s=e.getLineContent(n);jc(s).filter(l=>l.type==="url"?/^https?:\/\//.test(l.value):!0).forEach(l=>{t.push({url:l.href,range:new tg(n,l.start+1,n,l.end+1)})})}return{links:t}}}const Ot=wn,Ln=ee.module("MonacoCompletionProvider");class _s extends v.PureComponent{static lspToMonacoKind(e){const t=yn.CompletionItemKind;switch(e){case 1:return t.Text;case 2:return t.Method;case 3:return t.Function;case 4:return t.Constructor;case 5:return t.Field;case 6:return t.Variable;case 7:return t.Class;case 8:return t.Interface;case 9:return t.Module;case 10:return t.Property;case 11:return t.Unit;case 12:return t.Value;case 13:return t.Enum;case 14:return t.Keyword;case 15:return t.Snippet;case 16:return t.Color;case 17:return t.File;case 18:return t.Reference;case 19:return t.Folder;case 20:return t.EnumMember;case 21:return t.Constant;case 22:return t.Struct;case 23:return t.Event;case 24:return t.Operator;case 25:return t.TypeParameter;default:return t.Variable}}static lspToMonacoRange(e){const{start:t,end:n}=e;return{startLineNumber:t.line+1,startColumn:t.character+1,endLineNumber:n.line+1,endColumn:n.character+1}}static monacoToLspPosition(e){return{line:e.lineNumber-1,character:e.column-1}}constructor(e){super(e),this.handleCompletionRequest=this.handleCompletionRequest.bind(this),this.handleSignatureRequest=this.handleSignatureRequest.bind(this),this.handleHoverRequest=this.handleHoverRequest.bind(this)}componentDidMount(){const{language:e,session:t}=this.props;this.registeredCompletionProvider=yn.registerCompletionItemProvider(e,{provideCompletionItems:this.handleCompletionRequest,triggerCharacters:[".",'"',"'"]}),t.getSignatureHelp&&(this.registeredSignatureProvider=yn.registerSignatureHelpProvider(e,{provideSignatureHelp:this.handleSignatureRequest,signatureHelpTriggerCharacters:["(",","]})),t.getHover&&(this.registeredHoverProvider=yn.registerHoverProvider(e,{provideHover:this.handleHoverRequest}))}componentWillUnmount(){this.registeredCompletionProvider?.dispose(),this.registeredSignatureProvider?.dispose(),this.registeredHoverProvider?.dispose()}registeredCompletionProvider;registeredSignatureProvider;registeredHoverProvider;handleCompletionRequest(e,t,n){const{model:s,session:i}=this.props;if(e!==s)return null;const o={textDocument:{uri:`${e.uri}`,version:e.getVersionId()},position:_s.monacoToLspPosition(t),context:n},l=i.getCompletionItems(o);return Ln.debug("Requested completion items",o),l.then(d=>(Ln.debug("Completion items received: ",o,d),{incomplete:!0,suggestions:d.map(u=>{const{label:m,kind:g,detail:p,documentation:f,sortText:b,filterText:C,textEdit:S,insertTextFormat:w}=u;return{label:m,kind:_s.lspToMonacoKind(g),detail:p,documentation:f?.kind==="markdown"?f:f?.value,sortText:b,filterText:C,insertText:S.text,insertTextRules:w===2?4:w,range:_s.lspToMonacoRange(S.range)}})})).catch(d=>(Ln.error("There was an error retrieving completion items",d),{suggestions:[]}))}handleSignatureRequest(e,t,n,s){const i={value:{signatures:[],activeSignature:0,activeParameter:0},dispose:()=>{}},{model:o,session:l}=this.props;if(e!==o||!l.getSignatureHelp)return null;const r={textDocument:{uri:`${e.uri}`,version:e.getVersionId()},position:_s.monacoToLspPosition(t),context:s},d=l.getSignatureHelp(r);return Ln.debug("Requested signature help",r),d.then(u=>{Ln.debug("Signatures received: ",r,d);const m=u.map(p=>{const{label:f,documentation:b,parameters:C}=p;return{documentation:b?.kind==="markdown"?b:b?.value,label:f,parameters:C??[]}});if(m.length===0)return i;const g=0;return{value:{signatures:m,activeSignature:g,activeParameter:u[g].activeParameter},dispose:()=>{}}}).catch(u=>(Ln.error("There was an error retrieving completion items",u),i))}handleHoverRequest(e,t){const{model:n,session:s}=this.props;if(e!==n||!s.getHover)return null;const i={textDocument:{uri:`${e.uri}`,version:e.getVersionId()},position:_s.monacoToLspPosition(t)},o=s.getHover(i);return Ln.debug("Requested hover",i),o.then(r=>{Ln.debug("Hover received: ",i,r);const{contents:d}=r;return{contents:d?[d]:[]}}).catch(r=>(Ln.error("There was an error retrieving hover",r),{contents:[]}))}render(){return null}}const hh=_s;const Cr=ee.module("ConsoleInput"),el=parseInt(ge["line-height"],10),uh=6,mh=6,vf=el+uh+mh,br=100;class Ca extends v.PureComponent{static defaultProps={maxHeight:el*10,scope:null,disabled:!1};static INPUT_CLASS_NAME="console-input";constructor(e){super(e),this.handleWindowResize=this.handleWindowResize.bind(this),this.commandContainer=re.createRef(),this.commandHistoryIndex=null,this.timestamp=Date.now(),this.bufferIndex=0,this.history=[],this.modifiedCommands=new Map,this.state={commandEditorHeight:el,isFocused:!1,model:null}}componentDidMount(){this.initCommandEditor(),window.addEventListener("resize",this.handleWindowResize),this.loadMoreHistory()}componentDidUpdate(){this.layoutEditor()}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.loadingPromise!=null&&this.loadingPromise.cancel(),this.destroyCommandEditor()}cancelListener;commandContainer;commandEditor;commandHistoryIndex;commandSuggestionContainer;loadingPromise;timestamp;bufferIndex;history;modifiedCommands;setConsoleText(e,t=!0,n=!1){e&&(Cr.debug("Command received: ",e),n||(this.commandHistoryIndex=null,this.commandEditor?.setValue(e)),t&&this.focusEnd(),this.updateDimensions(),n&&this.processCommand(e))}initCommandEditor(){const{language:e,session:t}=this.props,n={copyWithSyntaxHighlighting:!1,cursorStyle:"block",fixedOverflowWidgets:!0,folding:!1,fontFamily:"Fira Mono",glyphMargin:!1,language:e,lineHeight:el,lineDecorationsWidth:3,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollBeyondLastLine:!1,scrollbar:{arrowSize:0,horizontal:"hidden",horizontalScrollbarSize:0},padding:{top:uh,bottom:mh},tabCompletion:"on",value:"",wordWrap:"on"},s=this.commandContainer.current;D(s),this.commandEditor=Wn.create(s,n),Ot.setEOL(this.commandEditor),Ot.openDocument(this.commandEditor,t),this.commandEditor.onDidChangeModelContent(()=>{const i=this.commandEditor?.getValue();this.modifiedCommands.set(this.commandHistoryIndex,i??null),this.updateDimensions()}),this.commandEditor.onDidFocusEditorText(()=>{this.setState({isFocused:!0})}),this.commandEditor.onDidBlurEditorText(()=>{this.setState({isFocused:!1})}),this.commandEditor.onKeyDown(i=>{const{commandEditor:o,commandHistoryIndex:l}=this,r=o?.getPosition();D(r);const{lineNumber:d}=r,h=o?.getModel();if(i.code==="ArrowUp"&&!this.isSuggestionMenuPopulated()&&d===1){l!=null?this.loadCommand(l+1):this.loadCommand(0),this.focusStart(),i.stopPropagation(),i.preventDefault();return}if(i.code==="ArrowDown"&&!this.isSuggestionMenuPopulated()&&d===h?.getLineCount()){l!=null&&l>0?this.loadCommand(l-1):this.loadCommand(null),this.focusEnd(),i.stopPropagation(),i.preventDefault();return}if(!i.altKey&&!i.shiftKey&&!i.metaKey)if(i.keyCode===gs.Enter){if(!this.isSuggestionMenuPopulated()){i.stopPropagation(),i.preventDefault();const u=this.commandEditor?.getValue().trim();u!==void 0&&(this.processCommand(u),this.commandEditor?.setValue(""))}}else i.keyCode===gs.Tab&&(this.isSuggestionMenuActive()?this.isSuggestionMenuPopulated()||(i.stopPropagation(),i.preventDefault()):(i.stopPropagation(),i.preventDefault(),this.commandEditor?.trigger("Tab key trigger suggestions","editor.action.triggerSuggest",{})))}),this.commandEditor.addCommand(Jt.CtrlCmd|gs.KeyF,()=>{}),Ot.removeConflictingKeybindings(this.commandEditor),Ot.registerPasteHandler(this.commandEditor),this.commandEditor.focus(),this.updateDimensions(),this.setState({model:this.commandEditor.getModel()})}destroyCommandEditor(){const{session:e}=this.props;this.commandEditor&&(Ot.closeDocument(this.commandEditor,e),this.commandEditor.dispose(),this.commandEditor=void 0)}handleWindowResize(){this.updateDimensions()}isSuggestionMenuActive(){return this.commandSuggestionContainer||(this.commandSuggestionContainer=this.commandEditor?.getDomNode()?.querySelector(".suggest-widget")),(this.commandSuggestionContainer&&this.commandSuggestionContainer.classList.contains("visible"))??!1}isSuggestionMenuPopulated(){return this.isSuggestionMenuActive()&&(this.commandSuggestionContainer?.querySelector(".monaco-list-rows")?.childElementCount??0)>0}focus(){this.commandEditor?.focus()}focusStart(){const e=this.commandEditor?.getModel();D(e);const t=e.getLineLength(1)+1,n=this.commandEditor?.getTopForPosition(1,t);D(n),this.commandEditor?.setPosition({lineNumber:1,column:t}),this.commandEditor?.setScrollTop(n),this.commandEditor?.focus()}focusEnd(){const e=this.commandEditor?.getModel();D(e);const t=e.getLineCount(),n=e.getLineLength(t)+1,s=this.commandEditor?.getTopForPosition(t,n);D(s),this.commandEditor?.setPosition({lineNumber:t,column:n}),this.commandEditor?.setScrollTop(s),this.commandEditor?.focus()}clear(){this.commandEditor?.focus(),this.commandEditor?.getModel()?.setValue(""),this.commandHistoryIndex=null}layoutEditor(){this.commandEditor&&this.commandEditor.layout()}loadCommand(e){if(e!==null&&e>=this.history.length)return;const t=this.modifiedCommands.get(e),n=e===null?"":this.history[this.history.length-e-1];this.commandHistoryIndex=e,this.commandEditor?.getModel()?.setValue(t??n),e!==null&&e>this.history.length-br&&this.loadMoreHistory()}async loadMoreHistory(){try{if(this.loadingPromise!=null||this.bufferIndex==null)return;const{commandHistoryStorage:e,language:t,scope:n}=this.props;this.loadingPromise=Ee.makeCancelable(e.getTable(t,n??"",this.timestamp),o=>o.close());const s=await this.loadingPromise;s.setReversed(!0),s.setViewport({top:this.bufferIndex,bottom:this.bufferIndex+br-1}),this.loadingPromise=Ee.makeCancelable(s.getViewportData(),()=>s.close());const i=await this.loadingPromise;this.bufferIndex+=br,this.bufferIndex>=s.size&&(this.bufferIndex=null),this.history=[...i.items.filter(({name:o},l,r)=>l===0||o!==r[l-1].name).map(({name:o})=>o).reverse(),...this.history],this.loadingPromise=void 0,s.close()}catch(e){if(this.loadingPromise=void 0,Ee.isCanceled(e)){Cr.debug2("Promise canceled, not loading history");return}Cr.error("Error fetching history",e)}}processCommand(e){this.commandHistoryIndex=null,this.modifiedCommands.clear(),D(e),e!==""&&(this.history.length===0||e!==this.history[this.history.length-1])&&this.history.push(e),this.updateDimensions();const{onSubmit:t}=this.props;t(e)}updateDimensions(){if(!this.commandEditor)return;const{maxHeight:e}=this.props;D(e);const t=this.commandEditor.getContentHeight(),n=Math.max(Math.min(t,e),vf),i={overviewRulerLanes:t>n?void 0:0};this.setState({commandEditorHeight:n},()=>{this.commandEditor?.updateOptions(i),this.commandEditor?.layout()})}render(){const{disabled:e,language:t,session:n}=this.props,{commandEditorHeight:s,isFocused:i,model:o}=this.state;return a.jsx("div",{className:Y("console-input-wrapper",{disabled:e}),children:a.jsxs("div",{className:Y("console-input-inner-wrapper",{focus:i}),children:[a.jsx("div",{className:Ca.INPUT_CLASS_NAME,ref:this.commandContainer,style:{height:s}}),o&&a.jsx(hh,{model:o,language:t,session:n})]})})}}const yd=Ca;const Rd="pasted values",Tf=[/^audio.*/,/^font.*/,/^image.*/,/^video.*/],Sr=[".csv",".tsv",".tab",".psv",".dsv",".txt"],xd=[".zip"];class Ps extends v.Component{static defaultProps={allowZip:!1,dragError:null};static MULTIPLE_FILE_ERROR="Please select only one file";static FILE_TYPE_ERROR="Filetype not supported.";static isValidDropItem(e){return e!=null&&e.kind==="file"&&!Tf.find(t=>t.test(e.type))}static isValidExtension(e,t=!1){return Sr.some(n=>e.endsWith(n))||t&&xd.some(n=>e.endsWith(n))}static handleDragOver(e){e.preventDefault(),e.stopPropagation()}static getIcon(e){return e===Rd?fd:e.endsWith(".csv")?ig:e.endsWith(".zip")?og:lg}constructor(e){super(e),this.handleSelectFile=this.handleSelectFile.bind(this),this.handleFiles=this.handleFiles.bind(this),this.handleDrop=this.handleDrop.bind(this),this.unstageFile=this.unstageFile.bind(this),this.handleMenuPaste=this.handleMenuPaste.bind(this),this.handlePasteEvent=this.handlePasteEvent.bind(this),this.fileElem=re.createRef(),this.divElem=re.createRef(),this.state={selectedFileName:""}}componentDidMount(){this.divElem.current?.addEventListener("paste",this.handlePasteEvent),this.divElem.current?.focus()}componentWillUnmount(){this.divElem.current?.removeEventListener("paste",this.handlePasteEvent)}fileElem;divElem;handleSelectFile(){this.fileElem.current&&(this.fileElem.current.value="",this.fileElem.current?.click())}handleFiles(e){e.stopPropagation(),e.preventDefault();const{files:t}=e.target;t!=null&&this.handleFile(t[0])}handleDrop(e){const{allowZip:t,clearDragError:n,dragError:s}=this.props;if(e.preventDefault(),e.stopPropagation(),s!=null){n();return}if(e.dataTransfer==null||e.dataTransfer.items==null||e.dataTransfer.items.length===0)return;const i=e.dataTransfer.items[0].getAsFile();D(i),Ps.isValidExtension(i.name,t)?this.handleFile(i):this.setState({dropError:Ps.FILE_TYPE_ERROR})}unstageFile(e){const{onCancel:t}=this.props;e.stopPropagation(),e.preventDefault(),t(),this.setState({selectedFileName:"",dropError:void 0})}handleFile(e){const{onFileOpened:t}=this.props;t(e),this.setState({selectedFileName:e.name,dropError:void 0})}handleMenuPaste(){const{onPaste:e,onError:t,uploadInProgress:n}=this.props;n||navigator.clipboard.readText().then(s=>{e(s),this.setState({selectedFileName:Rd,dropError:void 0})}).catch(s=>t(s))}handlePasteEvent(e){e.stopPropagation(),e.preventDefault(),this.handleMenuPaste()}makeContextMenuItems(){const{uploadInProgress:e}=this.props;return[{title:"Paste",icon:fd,action:this.handleMenuPaste,shortcut:zn.PASTE,disabled:e}]}getValidExtensions=me(e=>e?[...Sr,...xd]:[...Sr]);getAcceptString=me(e=>this.getValidExtensions(e).join(", "));getFileTypeErrorString=me(e=>Qt.join(this.getValidExtensions(e),"or"));render(){const{allowZip:e,dragError:t,uploadInProgress:n}=this.props,{selectedFileName:s,dropError:i}=this.state,o=t??i,l=this.makeContextMenuItems();return a.jsxs("div",{ref:this.divElem,className:"csv-overlay fill-parent-absolute",onDragOver:Ps.handleDragOver,onDrop:this.handleDrop,tabIndex:-1,children:[a.jsx(ie,{actions:l}),a.jsx("input",{ref:this.fileElem,type:"file",id:"fileElem",accept:this.getAcceptString(e),style:{display:"none"},onChange:this.handleFiles,"data-testid":"fileElem"}),!s&&(o===void 0||o==="")&&a.jsxs("div",{className:"message-content",children:[a.jsx("div",{className:"message-icon",children:a.jsx(Q,{icon:rg})}),a.jsx("label",{children:"Drop file (or paste values) here to import"}),a.jsx("div",{className:"message-small",children:a.jsx("label",{children:"or"})}),a.jsx(j,{kind:"primary",onClick:this.handleSelectFile,children:"Select File..."})]}),s&&(o===void 0||o==="")&&a.jsxs("div",{className:"selected-content",children:[a.jsx("div",{className:"selected-icon",children:a.jsx(Q,{icon:Ps.getIcon(s)})}),a.jsxs("div",{className:"selected-text",children:[a.jsx("label",{children:"Selected File"}),a.jsxs("label",{className:"selected-name",children:[s,!n&&a.jsx(j,{kind:"ghost",className:"ml-2",onClick:this.unstageFile,icon:Wt,tooltip:"Remove"})]})]})]}),Boolean(o)&&a.jsxs("div",{className:"message-content",children:[a.jsx("div",{className:"message-icon",children:a.jsx(Q,{icon:Ss})}),a.jsx("label",{children:o}),o===Ps.FILE_TYPE_ERROR&&a.jsx("div",{className:"message-small",children:a.jsx("label",{children:this.getFileTypeErrorString(e)})})]})]})}}const ai=Ps;class Ef{static INTEGER="int";static LONG="long";static DOUBLE="double";static BOOLEAN="bool";static STRING="string";static DATE_TIME="datetime";static LOCAL_TIME="localtime"}const Ae=Ef,Id="unknown",yf=2147483647,Rf=-2147483648,Dd=/^[0-9]{4}-[0-1][0-9]-[0-3][0-9][ T][0-2][0-9]:[0-5][0-9]:[0-6][0-9](?:\.[0-9]{1,9})?(?: [a-zA-Z]+)?$/,Fd=/^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\.[0-9]{1,9})?$/;class yt{static determineType(e,t,n){if(!e||e===n)return t;switch(t){case Ae.STRING:return Ae.STRING;case Ae.INTEGER:return yt.checkInteger(e);case Ae.LONG:return yt.checkLong(e);case Ae.DOUBLE:return yt.checkDouble(e);case Ae.BOOLEAN:return yt.checkBoolean(e);case Ae.DATE_TIME:return yt.checkDateTime(e);case Ae.LOCAL_TIME:return yt.checkLocalTime(e);default:return yt.getTypeFromUnknown(e)}}static isNotParsableNumber(e){return isNaN(e)||e==="Infinity"||e==="-Infinity"}static checkInteger(e){const t=e.replace(/,/g,"");return yt.isNotParsableNumber(t)?Ae.STRING:yt.getNumberType(t)}static checkLong(e){const t=e.replace(/,/g,"");return yt.isNotParsableNumber(t)?Ae.STRING:t.includes(".")?Ae.DOUBLE:Ae.LONG}static checkDouble(e){const t=e.replace(/,/g,"");return yt.isNotParsableNumber(t)?Ae.STRING:Ae.DOUBLE}static checkBoolean(e){const t=e.toLowerCase();return t==="true"||t==="false"?Ae.BOOLEAN:Ae.STRING}static checkDateTime(e){return Dd.test(e)?Ae.DATE_TIME:Ae.STRING}static checkLocalTime(e){return Fd.test(e)?Ae.LOCAL_TIME:Ae.STRING}static getTypeFromUnknown(e){const t=e.replace(/,/g,"");if(yt.isNotParsableNumber(t)){const n=e.toLowerCase();return n==="true"||n==="false"?Ae.BOOLEAN:Dd.test(e)&&e.includes(":")?Ae.DATE_TIME:Fd.test(e)?Ae.LOCAL_TIME:Ae.STRING}return yt.getNumberType(t)}static getNumberType(e){if(e.includes("."))return Ae.DOUBLE;const t=e.startsWith("-")?11:10;if(e.length>t)return Ae.LONG;const n=parseInt(e,10);return n>yf||n<Rf?Ae.LONG:Ae.INTEGER}constructor(e,t,n,s,i,o,l,r,d,h){this.onFileCompleted=e,this.file=t,this.readHeaders=n,this.nullString=i,this.onProgress=o,this.onError=l,this.chunks=0,this.totalChunks=r,this.isZip=d,this.shouldTrim=h,this.zipProgress=0,this.handleChunk=this.handleChunk.bind(this),this.handleComplete=this.handleComplete.bind(this),this.handleError=this.handleError.bind(this),this.handleNodeUpdate=this.handleNodeUpdate.bind(this),this.config={...s,error:this.handleError,chunk:this.handleChunk,complete:this.handleComplete}}onFileCompleted;file;readHeaders;nullString;onProgress;onError;types;chunks;totalChunks;isZip;shouldTrim;zipProgress;config;parse(){const e=this.isZip?this.file.nodeStream("nodebuffer",this.handleNodeUpdate):this.file;Pr.parse(e,this.config)}handleChunk(e,t){let{data:n}=e;if(!this.types){if(n==null||n.length===0){t.abort(),this.onError("Error parsing CSV: no data in file.");return}this.types=new Array(n[0].length).fill(Id),this.readHeaders&&(n=n.slice(1))}D(this.types);const s=[...this.types];n.forEach(l=>{if(l.length>=s.length){for(let r=0;r<s.length;r+=1)s[r]=yt.determineType(this.shouldTrim?l[r].trim():l[r],s[r],this.nullString);this.types=s}else t.abort(),this.onError(`Error parsing CSV: Insufficient data in row.
|
|
3
3
|
Expected length ${s.length} but found ${l.length}.
|
|
4
4
|
Row = ${l}`)}),this.chunks+=1;let i=0;this.totalChunks>0?i=Math.round(this.chunks/this.totalChunks*50):i=Math.round(this.zipProgress/2),this.onProgress(i)&&t.abort()}handleComplete(e){const{types:t,onFileCompleted:n}=this;D(t),(e==null||!e.meta.aborted)&&n(t.map(s=>s===Id?Ae.STRING:s))}handleError(e){const{onError:t}=this;t(e)}handleNodeUpdate(e){this.zipProgress=e.percent}}const xf=yt,Oo=ee.module("CsvParser"),If=650;class Ji{static generateHeaders=e=>{const t=[];for(let n=0;n<e;n+=1)t.push(Ji.generateHeaderRecursive(n));return t};static generateHeaderRecursive(e){let t="",n=e;return e>=26&&(t=t.concat(Ji.generateHeaderRecursive(Math.floor(e/26)-1)),n=e%26),t.concat(String.fromCharCode(65+n))}constructor({onFileCompleted:e,session:t,file:n,type:s,readHeaders:i=!0,onProgress:o,onError:l,timeZone:r,isZip:d}){this.onFileCompleted=e,this.session=t,this.file=n,this.isZip=d,this.type=s,this.readHeaders=i,this.timeZone=r,this.onProgress=o,this.onError=l,this.tables=[],this.chunks=0,this.totalChunks=d?0:Math.ceil(n.size/Pr.LocalChunkSize),this.isComplete=!1,this.zipProgress=0,this.numConsolidated=0,this.isCancelled=!1,this.handleChunk=this.handleChunk.bind(this),this.handleError=this.handleError.bind(this),this.handleComplete=this.handleComplete.bind(this),this.handleNodeUpdate=this.handleNodeUpdate.bind(this),this.handleCreateTable=this.handleCreateTable.bind(this),this.config={delimiter:s.delimiter,newline:s.newline,escapeChar:s.escapeChar,dynamicTyping:!1,error:this.handleError,skipEmptyLines:s.skipEmptyLines,chunk:this.handleChunk,complete:this.handleComplete,fastMode:!1}}onFileCompleted;session;file;isZip;type;readHeaders;timeZone;onProgress;onError;tables;headers;types;chunks;totalChunks;isComplete;zipProgress;consolidatedChunks;numConsolidated;isCancelled;config;cancel(){this.isCancelled=!0}transpose(e,t){const n=t.length,s=new Array(e).fill(null).map(()=>new Array(n));for(let i=0;i<n;i+=1){const o=t[i];if(o.length<e)throw new Error(`Insufficient columns. Expected ${e} but found ${o.length}
|
|
@@ -39,4 +39,4 @@ This note can be edited using **markdown** for styling.`;static getNewMarkdownTi
|
|
|
39
39
|
Web UI Version: ${e}
|
|
40
40
|
Java Version: ${l}
|
|
41
41
|
Barrage Version: ${o}`,children:"Copy Versions"})]})]})]}),a.jsx("div",{className:"app-settings-footer-item",children:a.jsx(Nx,{})})]}),a.jsx("div",{className:"app-settings-footer-section",children:a.jsx("div",{className:"logo",children:a.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://deephaven.io",className:"d-inline-block custom-link p-1",children:a.jsx("img",{src:Yu,alt:"Deephaven Data Labs",width:"230px"})})})})]})]})]})}}const Ac=10;function pi(c){const{forwardedProps:{menuItem:{action:e,title:t,disabled:n},iconElement:s,displayShortcut:i,isMouseSelected:o,isKeyboardSelected:l,closeMenu:r}}=c,d=v.useRef(),h=v.useRef(),u=v.useRef(null),[m,g]=v.useState(!1),p=v.useCallback(C=>{d.current!=null&&h.current!=null&&u.current&&(Math.abs(d.current-C.clientX)>=Ac||Math.abs(h.current-C.clientY)>=Ac)&&(g(!0),window.removeEventListener("mousemove",p),r(),e(C),u.current=null)},[e,r]);function f(C){d.current=C.clientX,h.current=C.clientY,u.current=C.target,window.addEventListener("mousemove",p)}function b(C){u.current===C.target&&(g(!0),r(),e(),window.removeEventListener("mousemove",p)),u.current=null}return v.useEffect(function(){return function(){return window.removeEventListener("mousemove",p)}},[p]),a.jsxs("button",{type:"button",className:Y("btn-context-menu",{disabled:n},{active:o&&!n},{"keyboard-active":l&&!n}),onMouseDown:f,onMouseUp:b,disabled:m,children:[a.jsx("span",{className:Y("icon"),children:s}),a.jsx("span",{className:"title",children:t}),a.jsx("span",{className:"shortcut",children:i})]})}function od(c){const{handleControlSelect:e,handleToolSelect:t,onClearFilter:n}=c,s=v.useMemo(()=>[{title:"Input Filter",icon:op,menuElement:a.jsx(pi,{}),action:i=>{e(Cs.INPUT_FILTER,i)},order:10},{title:"Dropdown Filter",icon:ih,menuElement:a.jsx(pi,{}),action:i=>{e(Cs.DROPDOWN_FILTER,i)},order:15},{title:"Markdown Widget",icon:lp,menuElement:a.jsx(pi,{}),action:i=>{e(Cs.MARKDOWN,i)},order:20},{title:"Filter Sets",icon:Br,menuElement:a.jsx(pi,{}),action:i=>{e(Cs.FILTER_SET_MANAGER,i)},order:25},{disabled:!0,menuElement:a.jsx("div",{className:"context-menu-group-header",children:"Tools"}),order:30},{title:"Linker",icon:th,action:()=>{t(At.LINKER)},order:40,shortcut:zn.LINKER},{disabled:!0,menuElement:a.jsx("div",{className:"context-menu-group-header",children:"Actions"}),order:50},{title:"Clear All Filters",icon:rp,action:()=>{n()},order:60,shortcut:Ut.TABLE.CLEAR_ALL_FILTERS}],[e,t,n]);return a.jsx(Bn,{popperClassName:"controls-menu-popper",actions:s})}od.propTypes={handleControlSelect:W.func,handleToolSelect:W.func,onClearFilter:W.func};od.defaultProps={handleControlSelect:()=>{},handleToolSelect:()=>{},onClearFilter:()=>{}};pi.propTypes={forwardedProps:W.shape({iconElement:W.node,displayShortcut:W.string,isMouseSelected:W.bool.isRequired,isKeyboardSelected:W.bool.isRequired,closeMenu:W.func.isRequired,menuItem:W.shape({action:W.func,title:W.string,disabled:W.bool}).isRequired})};pi.defaultProps={forwardedProps:null};const Gx=Zs(Ku,null),zx={layoutStorage:Gx},Kx=c=>c.layoutStorage,Yx=c=>c.serverConfigValues;Object.entries(zx).map(([c,e])=>bo.register(c,e));const _c=10;function qx(c){const{onExportLayout:e,onImportLayout:t,onResetLayout:n,onSelect:s,widgets:i=[]}=c,[o,l]=v.useState(!1),[r,d]=v.useState(""),h=v.useRef(null),u=v.useRef(),m=v.useCallback((T,y)=>{T!=null&&s(T,y)},[s]),g=v.useCallback(T=>{d(T.target.value)},[]),p=v.useCallback(T=>{u.current!=null&&(Math.abs(u.current.x-T.clientX)>=_c||Math.abs(u.current.y-T.clientY)>=_c)&&(l(!0),window.removeEventListener("mousemove",p),m(u.current.widget,T),u.current=void 0)},[u,m]),f=v.useCallback((T,y)=>{u.current={x:T.clientX,y:T.clientY,widget:y},window.addEventListener("mousemove",p)},[p]),b=v.useCallback((T,y)=>{window.removeEventListener("mousemove",p),u.current?.widget===y&&(l(!0),m(y)),u.current=void 0},[p,u,m]),C=v.useMemo(()=>i.filter(T=>r?T.name?.toLowerCase().includes(r.toLowerCase()):!0),[r,i]).sort((T,y)=>T.name?.localeCompare(y.name??"")??0),S=v.useMemo(()=>C.map(T=>a.jsx("li",{children:a.jsxs(j,{kind:"ghost","data-testid":`panel-list-item-${T.name??""}-button`,onMouseDown:y=>{f(y,T)},onMouseUp:y=>{b(y,T)},onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&m(T)},disabled:o,onClick:()=>{},children:[a.jsx(rh,{type:T.type})," ",T.name??""]})},T.name)),[C,o,f,b,m]),w=v.useMemo(()=>S.length===0?a.jsx("span",{children:"No bound variables found."}):null,[S]);return a.jsxs("div",{className:"widget-list-container d-flex flex-column",children:[a.jsx("div",{className:"widget-list-header",children:a.jsx(yi,{value:r,placeholder:"Find Table, Plot or Widget",onChange:g,ref:h})}),a.jsxs("ul",{className:"widget-list flex-grow-1",children:[w&&a.jsx("li",{className:"widget-list-message",children:w}),!w&&S]}),a.jsx("div",{children:a.jsx("hr",{})}),a.jsxs("div",{className:"widget-list-footer",children:[a.jsxs(j,{kind:"ghost",onClick:e,children:[a.jsxs("div",{className:"fa-md fa-layers",children:[a.jsx(Q,{mask:Ur,icon:vd,transform:"right-5 down-5"}),a.jsx(Q,{icon:vd,transform:"right-8 down-6"})]}),"Export Layout"]}),a.jsxs(j,{kind:"ghost",onClick:t,children:[a.jsxs("div",{className:"fa-md fa-layers",children:[a.jsx(Q,{mask:Ur,icon:Vr,transform:"right-5 down-5"}),a.jsx(Q,{icon:Vr,transform:"right-8 down-6"})]}),"Import Layout"]}),a.jsx(j,{kind:"ghost",icon:Vs,onClick:n,tooltip:"Reset Layout"})]})]})}const Xx=async(c,e,t,n)=>{let s,i,o,l;if(tl(t)?(s=t.settings,i=t.table,o=void 0,l=t.tableSettings):(s={},i="",o=t.figure,l={}),n!==void 0&&(n.tableSettings!=null&&(l=n.tableSettings),n.table!=null&&(i=n.table),n.figure!=null&&(o=n.figure),n.settings!=null&&(s={...s,...n.settings})),o!==void 0){const h={title:o,name:o,type:c.VariableType.FIGURE},u=await e.getObject(h);return ml.makeModel(c,s,u)}const r={title:o,name:i,type:c.VariableType.TABLE},d=await e.getObject(r);return new ve(c).applyTableSettings(d,l,Co(ya.getState())),ml.makeModelFromSettings(c,s,d)},Zx=async(c,e,t,n=c.VariableType.TABLE)=>{const{table:s}=t,i={title:s,name:s,type:n},o=await e.getObject(i);return Wa.makeModel(c,o)};function Qx({onAutoFillClick:c=()=>{}}){return a.jsxs("div",{className:"empty-dashboard-container",children:[a.jsxs("div",{className:"hint-container",children:[a.jsx(Q,{icon:sh})," ",a.jsx("br",{}),"Use the panel list to add objects from a query."]}),a.jsxs("div",{className:"empty-dashboard",children:[a.jsx("div",{className:"add-panels-hint",children:"Drag Panels Here"}),a.jsx(j,{kind:"tertiary",onClick:c,children:"Auto fill objects"})]})]})}function Jx(c){return c.version===2}function eI(c){return Array.isArray(c)}const Zo=ee.module("UserLayoutUtils"),tI={layoutConfig:[{type:"column",content:[{type:"row",height:40,content:[{type:"stack",content:[{type:"react-component",component:gi.COMPONENT,title:gi.TITLE,isClosable:!1},{type:"react-component",component:kl.COMPONENT,title:kl.TITLE,isClosable:!1}]},{type:"stack",width:25,content:[{type:"react-component",component:Rl.COMPONENT,title:Rl.TITLE,isClosable:!1},{type:"react-component",component:Il.COMPONENT,title:Il.TITLE,isClosable:!1}]}]},{type:"row",content:[{type:"stack",title:"Notebooks",content:[]}]}]}],links:[],filterSets:[],version:2},nI={layoutConfig:[],links:[],filterSets:[],version:2};function tm(c){if(Jx(c))return c;if(eI(c))return{layoutConfig:c,links:[],filterSets:[],version:2};throw new Error(`Unexpected layout import format: ${c}`)}async function sI(c,e=!0){try{const t=await c.getLayouts();if(t.length>0)try{const n=await c.getLayout(t[0]);return tm(n)}catch(n){Zo.error("Unable to load layout",t[0],":",n),Zo.warn("No valid layouts found, falling back to default layout")}}catch(t){Zo.error("Unable to fetch layout list",t),Zo.warn("Falling back to default layout")}return e?tI:nI}function iI(c){const{filterSets:e,layoutConfig:t,links:n}=c;return{filterSets:e,layoutConfig:t,links:n,version:2}}const sl={exportLayout:iI,getDefaultLayout:sI,normalizeLayout:tm},Qo=ee.module("DownloadServiceWorkerUtils");class uo{static DOWNLOAD_PATH="/download/";static registerOnLoaded(){new URL("./",window.location.href).origin===window.location.origin&&("serviceWorker"in navigator?window.addEventListener("load",()=>{const t=new URL("./download/serviceWorker.js",window.location.href);navigator.serviceWorker.register(t).then(n=>{n.update(),Qo.info("Registering service worker on ",t,n)}).catch(n=>{Qo.error("Failed to register service worker",n)})}):Qo.info("Service worker is not supported."))}static async getServiceWorker(){if("serviceWorker"in navigator){const t=(await navigator.serviceWorker.getRegistrations()).find(n=>n.scope.endsWith(uo.DOWNLOAD_PATH));if(t&&t.active)return Qo.info("Download service worker is active."),t.active;throw new Error("Can not find download service worker.")}throw new Error("Download service worker is not available.")}static unregisterSW(){}}const lt=ee.module("AppMainContainer");class fi extends v.Component{static handleWindowBeforeUnload(e){e.preventDefault(),e.returnValue=""}static hydrateConsole(e,t){return qr.hydrate({...e,unzip:n=>Wc.loadAsync(n).then(s=>Object.values(s.files))},t)}static handleRefresh(){lt.info("Refreshing application"),window.location.reload()}constructor(e){super(e),this.handleSettingsMenuHide=this.handleSettingsMenuHide.bind(this),this.handleSettingsMenuShow=this.handleSettingsMenuShow.bind(this),this.handleError=this.handleError.bind(this),this.handleControlSelect=this.handleControlSelect.bind(this),this.handleToolSelect=this.handleToolSelect.bind(this),this.handleClearFilter=this.handleClearFilter.bind(this),this.handleDataChange=this.handleDataChange.bind(this),this.handleAutoFillClick=this.handleAutoFillClick.bind(this),this.handleGoldenLayoutChange=this.handleGoldenLayoutChange.bind(this),this.handleLayoutConfigChange=this.handleLayoutConfigChange.bind(this),this.handleExportLayoutClick=this.handleExportLayoutClick.bind(this),this.handleImportLayoutClick=this.handleImportLayoutClick.bind(this),this.handleImportLayoutFiles=this.handleImportLayoutFiles.bind(this),this.handleLoadTablePlugin=this.handleLoadTablePlugin.bind(this),this.handleResetLayoutClick=this.handleResetLayoutClick.bind(this),this.handleWidgetMenuClick=this.handleWidgetMenuClick.bind(this),this.handleWidgetsMenuClose=this.handleWidgetsMenuClose.bind(this),this.handleWidgetSelect=this.handleWidgetSelect.bind(this),this.handlePaste=this.handlePaste.bind(this),this.hydrateChart=this.hydrateChart.bind(this),this.hydrateGrid=this.hydrateGrid.bind(this),this.hydratePandas=this.hydratePandas.bind(this),this.hydrateDefault=this.hydrateDefault.bind(this),this.openNotebookFromURL=this.openNotebookFromURL.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.handleReconnect=this.handleReconnect.bind(this),this.handleReconnectAuthFailed=this.handleReconnectAuthFailed.bind(this),this.importElement=re.createRef(),this.state={contextActions:[{action:()=>{this.handleToolSelect(At.LINKER)},shortcut:zn.LINKER,isGlobal:!0},{action:()=>{this.sendClearFilter()},shortcut:Ut.TABLE.CLEAR_ALL_FILTERS,isGlobal:!0},{action:()=>{lt.debug("Consume unhandled save shortcut")},shortcut:zn.SAVE,isGlobal:!0}],isAuthFailed:!1,isDisconnected:!1,isPanelsMenuShown:!1,isSettingsMenuShown:!1,widgets:[]}}componentDidMount(){this.initWidgets(),this.startListeningForDisconnect(),window.addEventListener("beforeunload",fi.handleWindowBeforeUnload)}componentDidUpdate(e){const{dashboardData:t}=this.props;e.dashboardData!==t&&this.handleDataChange(t)}componentWillUnmount(){this.deinitWidgets(),this.stopListeningForDisconnect(),window.removeEventListener("beforeunload",fi.handleWindowBeforeUnload)}goldenLayout;importElement;widgetListenerRemover;initWidgets(){const{connection:e}=this.props;if(e.subscribeToFieldUpdates==null){lt.warn("subscribeToFieldUpdates not supported, not initializing widgets");return}this.widgetListenerRemover=e.subscribeToFieldUpdates(t=>{lt.debug("Got updates",t),this.setState(({widgets:n})=>{const{updated:s,created:i,removed:o}=t,l=[...s,...o],r=n.filter(h=>!l.some(u=>u.name===h.name));return[...s,...i].forEach(h=>{h.name!=null&&h.name!==""&&r.push(h)}),{widgets:r}})})}deinitWidgets(){this.widgetListenerRemover?.()}openNotebookFromURL(){const{match:e}=this.props,{notebookPath:t}=e.params;if(t){const{session:n,sessionConfig:s}=this.props;if(n==null||s==null){lt.error("No session available to open notebook URL",t);return}const i={id:`/${t}`,itemName:`/${t}`},o=s.type,l={value:null,language:o};this.emitLayoutEvent(Ue.SELECT_NOTEBOOK,n,o,l,i,!0)}}sendClearFilter(){this.emitLayoutEvent(Xe.CLEAR_ALL_FILTERS)}emitLayoutEvent(e,...t){this.goldenLayout?.eventHub.emit(e,...t)}handleError(e){Ee.isCanceled(e)||lt.error(e)}handleSettingsMenuHide(){this.setState({isSettingsMenuShown:!1})}handleSettingsMenuShow(){this.setState({isSettingsMenuShown:!0})}handleControlSelect(e,t=null){switch(lt.debug("handleControlSelect",e),e){case Cs.DROPDOWN_FILTER:this.emitLayoutEvent(Xe.OPEN_DROPDOWN,{title:"DropdownFilter",type:e,createNewStack:!0,dragEvent:t});break;case Cs.INPUT_FILTER:this.emitLayoutEvent(Xe.OPEN_INPUT,{title:"InputFilter",type:e,createNewStack:!0,dragEvent:t});break;case Cs.MARKDOWN:this.emitLayoutEvent(Pu.OPEN,{title:"Markdown",type:e,dragEvent:t});break;case Cs.FILTER_SET_MANAGER:this.emitLayoutEvent(Xe.OPEN_FILTER_SET_MANAGER,{title:"FilterSets",type:e,dragEvent:t});break;default:throw new Error(`Unrecognized control type ${e}`)}}handleToolSelect(e){lt.debug("handleToolSelect",e);const{activeTool:t,setActiveTool:n}=this.props;n(t===e?At.DEFAULT:e)}handleClearFilter(){this.sendClearFilter()}handleDataChange(e){const{updateWorkspaceData:t}=this.props,{closed:n,filterSets:s,links:i}=e;t({closed:n,filterSets:s,links:i})}handleGoldenLayoutChange(e){this.goldenLayout=e}handleLayoutConfigChange(e){const{updateWorkspaceData:t}=this.props;t({layoutConfig:e})}handleWidgetMenuClick(){this.setState(({isPanelsMenuShown:e})=>({isPanelsMenuShown:!e}))}handleWidgetSelect(e,t){this.setState({isPanelsMenuShown:!1}),lt.debug("handleWidgetSelect",e,t),this.openWidget(e,t)}handleWidgetsMenuClose(){this.setState({isPanelsMenuShown:!1})}handleAutoFillClick(){const{widgets:e}=this.state;lt.debug("handleAutoFillClick",e);const t=e.sort((n,s)=>n.title!=null&&s.title!=null?n.title.localeCompare(s.title):0);for(let n=0;n<t.length;n+=1)this.openWidget(t[n])}handleExportLayoutClick(){lt.info("handleExportLayoutClick"),this.setState({isPanelsMenuShown:!1});try{const{workspace:e}=this.props,{data:t}=e,n=sl.exportLayout(t);lt.info("handleExportLayoutClick exportedConfig",n);const s=new Blob([JSON.stringify(n)],{type:"application/json"}),i=we.i18n.DateTimeFormat.format("yyyy-MM-dd-HHmmss",new Date),o=document.createElement("a");o.href=URL.createObjectURL(s),o.download=`deephaven-app-layout-${i}.json`,o.click()}catch(e){lt.error("Unable to export layout",e)}}handleImportLayoutClick(){lt.info("handleImportLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.importElement.current!=null&&(this.importElement.current.value="",this.importElement.current.click())}handleResetLayoutClick(){lt.info("handleResetLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.resetLayout()}handleImportLayoutFiles(e){e.stopPropagation(),e.preventDefault(),e.target.files!=null&&this.importLayoutFile(e.target.files?.[0])}handleDisconnect(){lt.info("Disconnected from server"),this.setState({isDisconnected:!0})}handleReconnect(){lt.info("Reconnected to server"),this.setState({isDisconnected:!1})}handleReconnectAuthFailed(){lt.warn("Reconnect authentication failed"),this.setState({isAuthFailed:!0})}async importLayoutFile(e){try{const{updateDashboardData:t,updateWorkspaceData:n}=this.props,s=await e.text(),i=JSON.parse(s),{filterSets:o,layoutConfig:l,links:r}=sl.normalizeLayout(i);n({layoutConfig:l}),t(hn,{filterSets:o,links:r})}catch(t){lt.error("Unable to import layout",t)}}async resetLayout(){const{layoutStorage:e,session:t}=this.props,{filterSets:n,layoutConfig:s,links:i}=await sl.getDefaultLayout(e,t!==void 0),{updateDashboardData:o,updateWorkspaceData:l}=this.props;l({layoutConfig:s}),o(hn,{filterSets:n,links:i})}handlePaste(e){if(e.target instanceof HTMLElement&&e.target.closest(".monaco-editor"))return;const{clipboardData:t}=e,n=t.getData("Text"),s=/“|”/g;s.test(n)&&(e.preventDefault(),e.stopPropagation(),document.execCommand("insertText",!1,n.replace(s,'"')))}handleLoadTablePlugin(e){const{plugins:t}=this.props,n=t.get(e);if(n!=null&&n.TablePlugin!=null)return n.TablePlugin;const s=`Unable to find table plugin ${e}.`;return lt.error(s),a.jsx("div",{className:"error-message",children:`${s}`})}startListeningForDisconnect(){const{connection:e}=this.props;e.addEventListener(we.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.addEventListener(we.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.addEventListener(we.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}stopListeningForDisconnect(){const{connection:e}=this.props;e.removeEventListener(we.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.removeEventListener(we.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.removeEventListener(we.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}hydrateDefault(e,t){const{connection:n}=this.props,{metadata:s}=e;if(s?.type!=null&&(s?.id!=null||s?.name!=null)){const i=s.id!=null?{type:s.type,id:s.id}:{type:s.type,name:s.name,title:s.name};return{fetch:()=>n.getObject(i),localDashboardId:t,...e}}return qr.hydrate(e,t)}hydrateGrid(e,t){return this.hydrateTable(e,t,e.metadata.type??we.VariableType.TABLE)}hydratePandas(e,t){return this.hydrateTable(e,t,we.VariableType.PANDAS)}hydrateTable(e,t,n=we.VariableType.TABLE){const{connection:s}=this.props;return{...e,getDownloadWorker:uo.getServiceWorker,loadPlugin:this.handleLoadTablePlugin,localDashboardId:t,makeApi:()=>Promise.resolve(we),makeModel:()=>Zx(we,s,e.metadata,n)}}hydrateChart(e,t){const{connection:n}=this.props;return{...e,localDashboardId:t,makeApi:()=>Promise.resolve(we),makeModel:()=>{const{metadata:s,panelState:i}=e;return Xx(we,n,s,i)}}}openWidget(e,t){const{connection:n}=this.props;this.emitLayoutEvent(Te.OPEN,{dragEvent:t,fetch:()=>n.getObject(e),widget:e})}getDashboardPlugins=me(e=>[...e.entries()].filter(([,t])=>t.DashboardPlugin!=null).map(([t,{DashboardPlugin:n}])=>a.jsx(n,{},t)));render(){const{activeTool:e,plugins:t,user:n,workspace:s,serverConfigValues:i}=this.props,{data:o}=s,{layoutConfig:l}=o,{permissions:r}=n,{canUsePanels:d}=r,{contextActions:h,isAuthFailed:u,isDisconnected:m,isPanelsMenuShown:g,isSettingsMenuShown:p,widgets:f}=this.state,b=this.getDashboardPlugins(t);return a.jsxs("div",{className:Y("app-main-tabs","w-100","h-100","d-flex","flex-column",e?`active-tool-${e.toLowerCase()}`:""),onPaste:this.handlePaste,tabIndex:-1,children:[a.jsx("nav",{className:"nav-container",children:a.jsxs("div",{className:"app-main-top-nav-menus",children:[a.jsx("img",{src:Yu,alt:"Deephaven Data Labs",width:"115px",className:"ml-1"}),a.jsxs("div",{children:[a.jsxs(j,{kind:"ghost",className:"btn-panels-menu",icon:ap,onClick:()=>{},children:["Controls",a.jsx(od,{handleControlSelect:this.handleControlSelect,handleToolSelect:this.handleToolSelect,onClearFilter:this.handleClearFilter})]}),d&&a.jsxs(j,{kind:"ghost",className:"btn-panels-menu btn-show-panels","data-testid":"app-main-panels-button",onClick:this.handleWidgetMenuClick,icon:dp,children:["Panels",a.jsx(Hl,{isShown:g,className:"panels-menu-popper",onExited:this.handleWidgetsMenuClose,closeOnBlur:!0,interactive:!0,children:a.jsx(qx,{widgets:f,onExportLayout:this.handleExportLayoutClick,onImportLayout:this.handleImportLayoutClick,onResetLayout:this.handleResetLayoutClick,onSelect:this.handleWidgetSelect})})]}),a.jsx(j,{kind:"ghost",className:Y("btn-settings-menu",{"text-warning":n.operateAs!=null&&n.operateAs!==n.name}),onClick:this.handleSettingsMenuShow,icon:a.jsx(Q,{icon:po,transform:"grow-3 right-1 down-1"}),tooltip:"User Settings"})]})]})}),a.jsxs(ES,{emptyDashboard:a.jsx(Qx,{onAutoFillClick:this.handleAutoFillClick}),id:hn,layoutConfig:l,onGoldenLayoutChange:this.handleGoldenLayoutChange,onLayoutConfigChange:this.handleLayoutConfigChange,onLayoutInitialized:this.openNotebookFromURL,hydrate:this.hydrateDefault,children:[a.jsx(qR,{hydrate:this.hydrateGrid,getDownloadWorker:uo.getServiceWorker,loadPlugin:this.handleLoadTablePlugin}),a.jsx($R,{hydrate:this.hydrateChart}),a.jsx(WR,{}),a.jsx(zR,{hydrateConsole:fi.hydrateConsole,notebooksUrl:new URL("notebooks/",document.baseURI).href}),a.jsx(KR,{}),a.jsx(rx,{hydrate:this.hydratePandas}),a.jsx(lx,{}),a.jsx(ox,{}),b]}),a.jsx($t,{in:p,timeout:Ze.transitionMidMs,classNames:"slide-left",mountOnEnter:!0,unmountOnExit:!0,children:a.jsx(En,{serverConfigValues:i,onDone:this.handleSettingsMenuHide,user:n})}),a.jsx(ie,{actions:h}),a.jsx("input",{ref:this.importElement,type:"file",accept:".json",style:{display:"none"},onChange:this.handleImportLayoutFiles}),a.jsx(zm,{isOpen:m&&!u,debounceMs:250,children:a.jsx(Km,{icon:cp,title:a.jsxs(a.Fragment,{children:[a.jsx(Dn,{})," Attempting to reconnect..."]}),subtitle:"Please check your network connection."})}),a.jsx(ro,{confirmButtonText:"Refresh",onConfirm:fi.handleRefresh,isOpen:u,headerText:"Authentication failed",bodyText:"Credentials are invalid. Please refresh your browser to try and reconnect."})]})}}const oI=c=>({activeTool:Kl(c),dashboardData:_t(c,hn),layoutStorage:Kx(c),plugins:SC(c),connection:xy(c,hn),session:Xs(c,hn)?.session,sessionConfig:Xs(c,hn)?.config,user:Sh(c),workspace:zl(c),serverConfigValues:Yx(c)}),lI=St(oI,{setActiveTool:ql,updateDashboardData:Fn,updateWorkspaceData:jh})(Fm(fi));function rI(){return a.jsxs("div",{className:"app",children:[a.jsx(lI,{}),a.jsx(qc,{})]})}const aI=ee.module("LocalWorkspaceStorage");class Ci{static STORAGE_KEY="deephaven.WorkspaceStorage";static async makeDefaultWorkspaceData(e,t){const{filterSets:n,links:s,layoutConfig:i}=await sl.getDefaultLayout(e,t?.isConsoleAvailable);return{settings:{defaultDateTimeFormat:at.DEFAULT_DATETIME_FORMAT_STRING,formatter:[],timeZone:at.DEFAULT_TIME_ZONE_ID,showTimeZone:!1,showTSeparator:!0,disableMoveConfirmation:!1,defaultDecimalFormatOptions:{defaultFormatString:ze.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:rt.DEFAULT_FORMAT_STRING},truncateNumbersWithPound:!1,defaultNotebookSettings:{isMinimapEnabled:!1}},layoutConfig:i,closed:[{}],links:s,filterSets:n}}static async makeDefaultWorkspace(e,t){return{data:await Ci.makeDefaultWorkspaceData(e,t)}}layoutStorage;constructor(e){this.layoutStorage=e}async load(e){try{return JSON.parse(localStorage.getItem(Ci.STORAGE_KEY)??"")}catch{return aI.info("Unable to load workspace data, initializing to default data"),Ci.makeDefaultWorkspace(this.layoutStorage,e)}}async save(e){return localStorage.setItem(Ci.STORAGE_KEY,JSON.stringify(e)),e}}class dI{storageService;root;constructor(e,t=""){this.storageService=e,this.root=t}async getLayouts(){return(await this.storageService.listItems(this.root,"*.json")).map(t=>t.basename)}async getLayout(e){const n=await(await this.storageService.loadFile(`${this.root}/${e}`)).text();return JSON.parse(n)}}const qi=ee.module("GrpcFileStorageTable");class Ll{static REFRESH_DEBOUNCE=50;storageService;baseRoot;root;currentSize=0;currentViewport;listeners=[];viewportUpdatePromise;currentViewportData;childTables=new Map;constructor(e,t="",n=t){this.storageService=e,this.baseRoot=t,this.root=n,n===t&&(this.doRefresh=Ke(this.doRefresh.bind(this),Ll.REFRESH_DEBOUNCE))}removeBaseRoot(e){return pe.removeRoot(this.baseRoot,e)}getViewportData(){return this.viewportUpdatePromise||this.refreshInternal(),this.viewportUpdatePromise??Promise.resolve({items:[],offset:0})}getSnapshot(e){throw new Error("Method not implemented.")}get size(){return this.currentSize}setExpanded(e,t){const n=e.split("/");let s=n.shift();if((s===void 0||s==="")&&(s=n.shift()),s===void 0||s==="")throw new Error(`Invalid path: ${e}`);const i=n.join("/");if(t){if(!this.childTables.has(s)){const o=new Ll(this.storageService,this.baseRoot,`${this.root}/${s}`);this.childTables.set(s,o)}i&&this.childTables.get(s)?.setExpanded(i,t)}else this.childTables.has(s)&&(i?this.childTables.get(s)?.setExpanded(i,t):this.childTables.delete(s));this.currentViewport&&this.refreshInternal()}collapseAll(){this.childTables.clear(),this.currentViewport&&this.refreshInternal()}setSearch(e){throw new Error("Method not implemented.")}setViewport(e){this.currentViewport=e,this.refreshInternal()}setFilters(){throw new Error("Method not implemented.")}setSorts(){throw new Error("Method not implemented.")}setReversed(){throw new Error("Method not implemented.")}close(){this.listeners=[]}onUpdate(e){return this.listeners=[...this.listeners,e],()=>{this.listeners=this.listeners.filter(t=>t!==e)}}doRefresh(e){qi.debug2("doRefresh",this.root),e(this.fetchData())}refresh(){qi.debug2("refresh",this.root),this.viewportUpdatePromise?.cancel();const e=new Promise(n=>{this.doRefresh(n)}),t=Ee.makeCancelable(e.then(n=>{if(this.viewportUpdatePromise!==t)throw new _l;return this.currentViewportData=n,this.sendUpdate(),n}));t.catch(n=>{Ee.isCanceled(n)||qi.error("Error updating viewport",n)}),this.viewportUpdatePromise=t}refreshInternal(){try{this.refresh()}catch(e){Ee.isCanceled(e)||qi.error("Unable to refresh data",e)}}async fetchData(){const{currentViewport:e}=this;if(!e)throw new Error("No viewport set");let n=(await this.storageService.listItems(this.root)).map(s=>({type:s.type,filename:this.removeBaseRoot(s.filename),basename:s.basename,id:this.removeBaseRoot(s.filename),isExpanded:s.type==="directory"?this.childTables.has(s.basename):void 0})).sort((s,i)=>s.type!==i.type?s.type==="directory"?-1:1:s.basename.localeCompare(i.basename));for(let s=0;s<n.length;s+=1){const i=n[s],{basename:o,filename:l}=i;if(l===this.removeBaseRoot(`${this.root}/${o}`)&&i.type==="directory"){const r=this.childTables.get(o);if(r!=null){r.setViewport({top:0,bottom:e.bottom-s});const d=await r.getViewportData();n.splice(s+1,0,...d.items)}}}return this.currentSize=n.length,qi.debug2(this.root,"items",n,e),n=n.slice(e.top,e.bottom),{items:n,offset:e.top}}sendUpdate(){const{listeners:e}=this,t=this.currentViewportData??{items:[],offset:0};for(let n=0;n<e.length;n+=1)e[n](t)}}const cI=ee.module("GrpcFileStorage");class ld{static REFRESH_THROTTLE=150;storageService;tables=[];root;constructor(e,t=""){this.storageService=e,this.root=t}removeRoot(e){return pe.removeRoot(this.root,e)}addRoot(e){return pe.addRoot(this.root,e)}async createDirectory(e){return await this.storageService.createDirectory(this.addRoot(e)),this.refreshTables(),{type:"directory",id:e,filename:e,basename:pe.getBaseName(e)}}async getTable(){const e=new Ll(this.storageService,this.root);return this.tables.push(e),e}async saveFile(e){const t=dh.storage.FileContents.text(e.content);return await this.storageService.saveFile(this.addRoot(e.filename),t,!0),this.refreshTables(),e}async loadFile(e){const n=await(await this.storageService.loadFile(this.addRoot(e))).text();return{filename:e,basename:pe.getBaseName(e),content:n}}async deleteFile(e){await this.storageService.deleteItem(this.addRoot(e)),this.refreshTables()}async moveFile(e,t){await this.storageService.moveItem(this.addRoot(e),this.addRoot(t)),this.refreshTables()}async info(e){const t=await this.storageService.listItems(this.addRoot(pe.getPath(e)),pe.getBaseName(e));if(t.length===0)throw new Ja;if(t.length>1)throw cI.error("More than one matching file found, should never happen.",t),new Error("More than one matching file found");const n=t[0];return{filename:this.removeRoot(n.filename),basename:n.basename,id:this.removeRoot(n.filename),type:n.type}}refreshTables=ws(()=>{this.tables.forEach(e=>e.refresh())},ld.REFRESH_THROTTLE)}const hI=ee.module("AppInit");function rd(c){const{workspace:e,setActiveTool:t,setCommandHistoryStorage:n,setDashboardData:s,setFileStorage:i,setLayoutStorage:o,setDashboardConnection:l,setDashboardSessionWrapper:r,setPlugins:d,setUser:h,setWorkspace:u,setWorkspaceStorage:m,setServerConfigValues:g}=c,p=Ym(),f=qm(),b=Xm(),C=v.useContext(Zm),S=v.useContext(Qm),[w,T]=v.useState();v.useEffect(function(){d(b)},[b,d]),v.useEffect(function(){async function I(){try{const k=await Jm(),M=await eg(f,k),P=p.getStorageService(),L=new dI(P,"/layouts"),B=new ld(P,"/notebooks"),U=new Ci(L),H=new vx,[_,z]=await Promise.all([p.getServerConfigValues(),U.load({isConsoleAvailable:M!==void 0})]),{data:te}=z,{settings:V}=te;V.defaultDecimalFormatOptions===void 0&&(V.defaultDecimalFormatOptions={defaultFormatString:ze.DEFAULT_FORMAT_STRING}),V.defaultIntegerFormatOptions===void 0&&(V.defaultIntegerFormatOptions={defaultFormatString:rt.DEFAULT_FORMAT_STRING}),V.truncateNumbersWithPound===void 0&&(V.truncateNumbersWithPound=!1);const{shortcutOverrides:O={}}=V,q=tn.isMacPlatform?O.mac??{}:O.windows??{};Object.entries(q).forEach(([ce,oe])=>{$e.get(ce)?.setKeyState(oe)});const Z={filterSets:te.filterSets,links:te.links},ne=new Map(_),G="",se={name:G,operateAs:G,groups:[],...C,permissions:{isACLEditor:!1,isSuperUser:!1,isQueryViewOnly:!1,isNonInteractive:!1,canUsePanels:!0,canCreateDashboard:!0,canCreateCodeStudio:!0,canCreateQueryMonitor:!0,canCopy:ne.get("internal.webClient.appInit.canCopy")!=="false",canDownloadCsv:ne.get("internal.webClient.appInit.canDownloadCsv")!=="false",canLogout:!0,...S}};t(At.DEFAULT),g(ne),n(H),s(hn,Z),i(B),o(L),l(hn,f),M!==void 0&&r(hn,M),h(se),m(U),u(z)}catch(k){hI.error(k),T(k)}}I()},[p,f,t,n,s,i,o,l,r,h,u,m,g,C,S]);const y=e==null&&w==null,E=!y&&w==null,R=w!=null?`${w}`:null;return a.jsxs(a.Fragment,{children:[E&&a.jsx(rI,{}),a.jsx(Ul,{isLoading:y&&R==null,isLoaded:E,errorMessage:R})]})}rd.propTypes={workspace:W.shape({}),workspaceStorage:W.shape({close:W.func}),setActiveTool:W.func.isRequired,setCommandHistoryStorage:W.func.isRequired,setDashboardData:W.func.isRequired,setFileStorage:W.func.isRequired,setLayoutStorage:W.func.isRequired,setDashboardConnection:W.func.isRequired,setDashboardSessionWrapper:W.func.isRequired,setPlugins:W.func.isRequired,setUser:W.func.isRequired,setWorkspace:W.func.isRequired,setWorkspaceStorage:W.func.isRequired};rd.defaultProps={workspace:null,workspaceStorage:null};const uI=c=>({workspace:zl(c),workspaceStorage:fC(c)}),Pc=St(uI,{setActiveTool:ql,setCommandHistoryStorage:TC,setDashboardData:au,setFileStorage:EC,setLayoutStorage:Tx,setDashboardConnection:Iy,setDashboardSessionWrapper:Dy,setPlugins:RC,setUser:wC,setWorkspace:Ph,setWorkspaceStorage:vC,setServerConfigValues:xC})(rd),mI=document.location.pathname;function gI(){return a.jsx(Nm,{basename:mI,children:a.jsxs(km,{children:[a.jsx(hd,{exact:!0,path:"/",component:Pc}),a.jsx(hd,{path:"/notebooks/:notebookPath+",component:Pc}),a.jsx(Mm,{from:"*",to:"/"})]})})}function TI(){return uo.registerOnLoaded(),Ot.init({getWorker:()=>new ng}),window["__react-beautiful-dnd-disable-dev-warnings"]=!0,a.jsx(Uc,{store:ya,children:a.jsx(gI,{})})}export{TI as AppRoot,TI as default};
|
|
42
|
-
//# sourceMappingURL=AppRoot-
|
|
42
|
+
//# sourceMappingURL=AppRoot-6c825f62.js.map
|