@deephaven/code-studio 0.41.4 → 0.41.5

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.
@@ -1,4 +1,4 @@
1
- import{C as h,G as re,r as E,I as xb,P as Y,F as Q,J as Df,K as fe,L as xu,M as zi,N as et,O as Te,Q as Rf,S as dt,T as Oh,U as Hb,V as Ub,W as $b,X as Bb,$ as ce,R as Ph,Y as Yc,Z as qe,_ as Dh,a0 as Vb,a1 as je,a2 as Hu,E as Wb,D as _r,a3 as td,a4 as Nf,a5 as Rh,a6 as Gb,a7 as Tn,a8 as jb,a9 as zb,aa as Kb,ab as Yb,ac as Uu,ad as qb,ae as Xb,af as Zb,ag as qc,ah as Qb,ai as Xc,aj as Jb,ak as eS,al as tS,am as rS,an as nS,ao as iS,ap as Ht,aq as Ff,ar as aS,as as If,at as oS,H as R,au as _f,av as sS,aw as lS,ax as dS,ay as uS,az as Zc,aA as hS,aB as cS}from"./vendor-27e19fee.js";import{e as Zn,l as wn,K as Gr,a as Qc,R as mS,b as Ui,W as vS}from"./monaco-13f9c9bb.js";import{v as $u,d as gS,a as Mf,b as Nh,L as Dn,c as vs,e as qn,f as Af,g as ie,h as Jc,i as fS,j as pS,k as CS,l as bS,m as Ar,n as Gi,o as Lf,p as Qn,q as rd,r as ro,s as SS,t as ES,u as em,w as Dl,x as tm,y as kf,z as wS,A as gs,B as xf,C as yS,D as TS,T as Qe,E as Fh,F as Ih,G as Rl,H as kn,I as OS,J as PS,K as DS,M as RS,N as NS,O as _h,P as Yi,Q as rm,R as fs,S as Mh,U as Ah,V as Hf,W as FS,X as nd,Y as IS,Z as as,_ as _S,$ as Lh,a0 as Uf,a1 as ca,a2 as MS,a3 as AS,a4 as LS,a5 as kS,a6 as xS,a7 as HS,a8 as au,a9 as US,aa as nm,ab as $S,ac as BS,ad as id,ae as ad,af as VS,ag as WS,ah as od,ai as $f,aj as GS,ak as jS,al as zS,am as Bf,an as KS,ao as YS,ap as qS,aq as XS,ar as ZS,as as QS,at as JS,au as eE,av as tE,aw as rE,ax as nE,ay as iE,az as aE,aA as Vf,aB as oE,aC as Bu,aD as Vu,aE as sE,aF as lE,aG as dE,aH as uE,aI as hE,aJ as cE,aK as mE,aL as vE,aM as gE,aN as fE,aO as pE,aP as CE,aQ as bE,aR as im,aS as SE,aT as EE,aU as am}from"./index-529e119c.js";import{P as ye,u as ya,T as sd,B as W,a as L,S as Ye,M as Se,K as Oe,G as ii,C as oe,b as jr,c as qr,D as Jn,d as vo,e as ld,f as gt,g as ps,I as no,U as wE,h as ge,i as x,F as ei,j as un,k as Ea,l as kh,E as Le,m as U,n as jn,o as Ki,p as Cl,q as yt,r as Je,s as wt,t as dd,v as yE,O as Kn,w as TE,x as ln,y as rn,z as OE,A as PE,R as ud,H as ti,J as hd,L as Wf,N as Gf,Q as DE,V as RE,W as om,X as Ze,Y as sm,Z as jf,_ as xh,$ as lm,a0 as os,a1 as zf,a2 as NE,a3 as Kf,a4 as FE,a5 as Jr,a6 as IE,a7 as _E,a8 as ME,a9 as AE,aa as LE,ab as kE,ac as xE,ad as HE,ae as UE,af as $E,ag as BE,ah as VE}from"./useConnection-d437bb05.js";import{P as Nl,b as WE,h as GE,p as jE,o as zE,s as KE,t as YE,c as bl}from"./plotly-7771003a.js";import"./helpers-042e6b4d.js";class Hh{static isDark(e){var t=document.createElement("div");t.style.display="none",t.style.color=e;var r=getComputedStyle(document.body.appendChild(t)).color,i=r.match(/\d+/g),a=[];if(i)a=i.map(s=>parseInt(s,10));else throw new Error("Invalid color received. Got ".concat(r));document.body.removeChild(t);var o=Hh.getBrightness(a);return o<125}static getBrightness(e){return Math.round((e[0]*299+e[1]*587+e[2]*114)/1e3)}}const Yf=Hh;function go(n,e,t){return e=qE(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function qE(n){var e=XE(n,"string");return typeof e=="symbol"?e:String(e)}function XE(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var ZE="table_",qf="column_",QE=new Set(["in","not","i","ii","k"]),JE=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"]),ew=/[^a-zA-Z0-9_$+@-]/g,tw=/[^A-Za-z0-9_$]/g;class Xr{}go(Xr,"legalize",(n,e,t,r,i)=>{var a=n.trim().replace(/[- ]/g,"_");return r&&(QE.has(a)||JE.has(a))&&(a=e+a),a=a.replace(t,""),a||(a=e+i),Number.isNaN(Number(a.charAt(0)))||(a=e+a),a});go(Xr,"legalizeTableName",n=>Xr.legalize(n,ZE,ew,!1,0));go(Xr,"legalizeColumnNames",n=>{var e=[];return n.forEach((t,r)=>{var i=Xr.legalizeColumnName(t,r);e.includes(i)&&(i=qf+r),e.push(i)}),e});go(Xr,"legalizeColumnName",function(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Xr.legalize(n,qf,tw,!0,e)});go(Xr,"isValidTableName",n=>Xr.legalizeTableName(n)===n);go(Xr,"isValidColumnName",n=>Xr.legalizeColumnName(n)===n);const fo=Xr;function rw(n,e){return n?n.closest(".".concat(e)):null}const nw={getClosestByClassName:rw};function dm(n,e,t){return e=iw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function iw(n){var e=aw(n,"string");return typeof e=="symbol"?e:String(e)}function aw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class ow{constructor(){dm(this,"pending",[]),dm(this,"resolved",[])}add(e,t){var r=ye.makeCancelable(e,t);return this.pending.push(r),r.then(()=>{this.resolve(r)},()=>{this.resolve(r)}),r}remove(e){for(var 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(){for(var e=[...this.pending,...this.resolved],t=0;t<e.length;t+=1)e[t].cancel();this.pending=[],this.resolved=[]}}const ai=ow;function sw(n,e,t){return e=lw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lw(n){var e=dw(n,"string");return typeof e=="symbol"?e:String(e)}function dw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class uw extends Error{constructor(){super(...arguments),sw(this,"isInvalid",!0)}}const Qa=uw;function Xf(n){var{type:e}=n,t=ya();switch(e){case t.VariableType.TABLE:case t.VariableType.TABLEMAP:case t.VariableType.TREETABLE:case t.VariableType.HIERARCHICALTABLE:return h.createElement(re,{icon:Nh});case t.VariableType.FIGURE:return h.createElement(re,{icon:Mf});case t.VariableType.PANDAS:return h.createElement(re,{icon:gS});default:return h.createElement(re,{icon:$u})}}function hw(n,e,t){return e=cw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function cw(n){var e=mw(n,"string");return typeof e=="symbol"?e:String(e)}function mw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class vw extends E.Component{constructor(e){super(e),hw(this,"container",void 0),this.container=null}componentDidMount(){this.colorize()}colorize(){var{children:e}=this.props;this.container&&e!=null&&Zn.colorizeElement(this.container,{theme:"dh-dark"})}render(){var{children:e,language:t}=this.props;return h.createElement("div",null,h.createElement("div",{"data-lang":t,ref:r=>{this.container=r},style:{pointerEvents:"none"}},e))}}const cd=vw;class gw{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}const Zf=gw;class Fl{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)?[]:xb.parse(e).filter(t=>!this.hasComment(t)).map(t=>this.hasPattern(t)?t.pattern:this.hasOp(t)?t.op:"".concat(t))}static formatTimestamp(e){if(e==null||!(e instanceof Date))return null;var t="".concat(e.getHours()).padStart(2,"0"),r="".concat(e.getMinutes()).padStart(2,"0"),i="".concat(e.getSeconds()).padStart(2,"0"),a="".concat(e.getMilliseconds()).padStart(3,"0");return"".concat(t,":").concat(r,":").concat(i,".").concat(a)}static isTableType(e,t){return t===e.VariableType.TABLE||t===e.VariableType.TREETABLE||t===e.VariableType.HIERARCHICALTABLE}static isWidgetType(e,t){return t===e.VariableType.FIGURE||t===e.VariableType.OTHERWIDGET||t===e.VariableType.PANDAS}static isOpenableType(e,t){return Fl.isTableType(e,t)||Fl.isWidgetType(e,t)}static isFigureType(e,t){return t===e.VariableType.FIGURE}static isPandas(e,t){return t===e.VariableType.PANDAS}}const Wu=Fl;function Qf(n){var{children:e}=n;return h.createElement("div",{className:"console-history-item-result"},h.createElement("div",{className:"console-history-gutter"},"-"),h.createElement("div",{className:"console-history-content"},e))}Qf.propTypes={children:Y.node.isRequired};function Gu(n,e,t){return e=fw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function fw(n){var e=pw(n,"string");return typeof e=="symbol"?e:String(e)}function pw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class Jf extends E.Component{constructor(e){super(e),Gu(this,"timer",void 0),Gu(this,"startTime",void 0),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}updateElapsed(){this.setState({elapsed:Math.round((Date.now()-this.startTime)/1e3)})}render(){var{disabled:e,onCancelClick:t}=this.props,{elapsed:r}=this.state;return h.createElement("div",{className:Q("console-history-result-in-progress",{disabled:e})},h.createElement("span",{className:"badge"},h.createElement(Dn,null)," Running... ",sd.formatElapsedTime(r)," ",h.createElement(W,{className:"console-history-result-in-progress-cancel",kind:"ghost",icon:vs,tooltip:"Cancel",onClick:t,disabled:e})))}}Gu(Jf,"defaultProps",{disabled:!1});const Cw=Jf;function Xo(n,e,t){return e=bw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function bw(n){var e=Sw(n,"string");return typeof e=="symbol"?e:String(e)}function Sw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class io extends E.PureComponent{constructor(e){super(e),Xo(this,"mouseX",void 0),Xo(this,"mouseY",void 0),Xo(this,"isClicking",void 0),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}}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)>=io.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=io.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(){var{isExpanded:e,isTriggerHovered:t}=this.state,{message:r}=this.props;L(r);var i=r.indexOf(`
1
+ import{C as h,G as re,r as E,I as xb,P as Y,F as Q,J as Df,K as fe,L as xu,M as zi,N as et,O as Te,Q as Rf,S as dt,T as Oh,U as Hb,V as Ub,W as $b,X as Bb,$ as ce,R as Ph,Y as Yc,Z as qe,_ as Dh,a0 as Vb,a1 as je,a2 as Hu,E as Wb,D as _r,a3 as td,a4 as Nf,a5 as Rh,a6 as Gb,a7 as Tn,a8 as jb,a9 as zb,aa as Kb,ab as Yb,ac as Uu,ad as qb,ae as Xb,af as Zb,ag as qc,ah as Qb,ai as Xc,aj as Jb,ak as eS,al as tS,am as rS,an as nS,ao as iS,ap as Ht,aq as Ff,ar as aS,as as If,at as oS,H as R,au as _f,av as sS,aw as lS,ax as dS,ay as uS,az as Zc,aA as hS,aB as cS}from"./vendor-27e19fee.js";import{e as Zn,l as wn,K as Gr,a as Qc,R as mS,b as Ui,W as vS}from"./monaco-13f9c9bb.js";import{v as $u,d as gS,a as Mf,b as Nh,L as Dn,c as vs,e as qn,f as Af,g as ie,h as Jc,i as fS,j as pS,k as CS,l as bS,m as Ar,n as Gi,o as Lf,p as Qn,q as rd,r as ro,s as SS,t as ES,u as em,w as Dl,x as tm,y as kf,z as wS,A as gs,B as xf,C as yS,D as TS,T as Qe,E as Fh,F as Ih,G as Rl,H as kn,I as OS,J as PS,K as DS,M as RS,N as NS,O as _h,P as Yi,Q as rm,R as fs,S as Mh,U as Ah,V as Hf,W as FS,X as nd,Y as IS,Z as as,_ as _S,$ as Lh,a0 as Uf,a1 as ca,a2 as MS,a3 as AS,a4 as LS,a5 as kS,a6 as xS,a7 as HS,a8 as au,a9 as US,aa as nm,ab as $S,ac as BS,ad as id,ae as ad,af as VS,ag as WS,ah as od,ai as $f,aj as GS,ak as jS,al as zS,am as Bf,an as KS,ao as YS,ap as qS,aq as XS,ar as ZS,as as QS,at as JS,au as eE,av as tE,aw as rE,ax as nE,ay as iE,az as aE,aA as Vf,aB as oE,aC as Bu,aD as Vu,aE as sE,aF as lE,aG as dE,aH as uE,aI as hE,aJ as cE,aK as mE,aL as vE,aM as gE,aN as fE,aO as pE,aP as CE,aQ as bE,aR as im,aS as SE,aT as EE,aU as am}from"./index-8ef968b3.js";import{P as ye,u as ya,T as sd,B as W,a as L,S as Ye,M as Se,K as Oe,G as ii,C as oe,b as jr,c as qr,D as Jn,d as vo,e as ld,f as gt,g as ps,I as no,U as wE,h as ge,i as x,F as ei,j as un,k as Ea,l as kh,E as Le,m as U,n as jn,o as Ki,p as Cl,q as yt,r as Je,s as wt,t as dd,v as yE,O as Kn,w as TE,x as ln,y as rn,z as OE,A as PE,R as ud,H as ti,J as hd,L as Wf,N as Gf,Q as DE,V as RE,W as om,X as Ze,Y as sm,Z as jf,_ as xh,$ as lm,a0 as os,a1 as zf,a2 as NE,a3 as Kf,a4 as FE,a5 as Jr,a6 as IE,a7 as _E,a8 as ME,a9 as AE,aa as LE,ab as kE,ac as xE,ad as HE,ae as UE,af as $E,ag as BE,ah as VE}from"./useConnection-d757aad8.js";import{P as Nl,b as WE,h as GE,p as jE,o as zE,s as KE,t as YE,c as bl}from"./plotly-7771003a.js";import"./helpers-042e6b4d.js";class Hh{static isDark(e){var t=document.createElement("div");t.style.display="none",t.style.color=e;var r=getComputedStyle(document.body.appendChild(t)).color,i=r.match(/\d+/g),a=[];if(i)a=i.map(s=>parseInt(s,10));else throw new Error("Invalid color received. Got ".concat(r));document.body.removeChild(t);var o=Hh.getBrightness(a);return o<125}static getBrightness(e){return Math.round((e[0]*299+e[1]*587+e[2]*114)/1e3)}}const Yf=Hh;function go(n,e,t){return e=qE(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function qE(n){var e=XE(n,"string");return typeof e=="symbol"?e:String(e)}function XE(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var ZE="table_",qf="column_",QE=new Set(["in","not","i","ii","k"]),JE=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"]),ew=/[^a-zA-Z0-9_$+@-]/g,tw=/[^A-Za-z0-9_$]/g;class Xr{}go(Xr,"legalize",(n,e,t,r,i)=>{var a=n.trim().replace(/[- ]/g,"_");return r&&(QE.has(a)||JE.has(a))&&(a=e+a),a=a.replace(t,""),a||(a=e+i),Number.isNaN(Number(a.charAt(0)))||(a=e+a),a});go(Xr,"legalizeTableName",n=>Xr.legalize(n,ZE,ew,!1,0));go(Xr,"legalizeColumnNames",n=>{var e=[];return n.forEach((t,r)=>{var i=Xr.legalizeColumnName(t,r);e.includes(i)&&(i=qf+r),e.push(i)}),e});go(Xr,"legalizeColumnName",function(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Xr.legalize(n,qf,tw,!0,e)});go(Xr,"isValidTableName",n=>Xr.legalizeTableName(n)===n);go(Xr,"isValidColumnName",n=>Xr.legalizeColumnName(n)===n);const fo=Xr;function rw(n,e){return n?n.closest(".".concat(e)):null}const nw={getClosestByClassName:rw};function dm(n,e,t){return e=iw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function iw(n){var e=aw(n,"string");return typeof e=="symbol"?e:String(e)}function aw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class ow{constructor(){dm(this,"pending",[]),dm(this,"resolved",[])}add(e,t){var r=ye.makeCancelable(e,t);return this.pending.push(r),r.then(()=>{this.resolve(r)},()=>{this.resolve(r)}),r}remove(e){for(var 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(){for(var e=[...this.pending,...this.resolved],t=0;t<e.length;t+=1)e[t].cancel();this.pending=[],this.resolved=[]}}const ai=ow;function sw(n,e,t){return e=lw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lw(n){var e=dw(n,"string");return typeof e=="symbol"?e:String(e)}function dw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class uw extends Error{constructor(){super(...arguments),sw(this,"isInvalid",!0)}}const Qa=uw;function Xf(n){var{type:e}=n,t=ya();switch(e){case t.VariableType.TABLE:case t.VariableType.TABLEMAP:case t.VariableType.TREETABLE:case t.VariableType.HIERARCHICALTABLE:return h.createElement(re,{icon:Nh});case t.VariableType.FIGURE:return h.createElement(re,{icon:Mf});case t.VariableType.PANDAS:return h.createElement(re,{icon:gS});default:return h.createElement(re,{icon:$u})}}function hw(n,e,t){return e=cw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function cw(n){var e=mw(n,"string");return typeof e=="symbol"?e:String(e)}function mw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class vw extends E.Component{constructor(e){super(e),hw(this,"container",void 0),this.container=null}componentDidMount(){this.colorize()}colorize(){var{children:e}=this.props;this.container&&e!=null&&Zn.colorizeElement(this.container,{theme:"dh-dark"})}render(){var{children:e,language:t}=this.props;return h.createElement("div",null,h.createElement("div",{"data-lang":t,ref:r=>{this.container=r},style:{pointerEvents:"none"}},e))}}const cd=vw;class gw{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}const Zf=gw;class Fl{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)?[]:xb.parse(e).filter(t=>!this.hasComment(t)).map(t=>this.hasPattern(t)?t.pattern:this.hasOp(t)?t.op:"".concat(t))}static formatTimestamp(e){if(e==null||!(e instanceof Date))return null;var t="".concat(e.getHours()).padStart(2,"0"),r="".concat(e.getMinutes()).padStart(2,"0"),i="".concat(e.getSeconds()).padStart(2,"0"),a="".concat(e.getMilliseconds()).padStart(3,"0");return"".concat(t,":").concat(r,":").concat(i,".").concat(a)}static isTableType(e,t){return t===e.VariableType.TABLE||t===e.VariableType.TREETABLE||t===e.VariableType.HIERARCHICALTABLE}static isWidgetType(e,t){return t===e.VariableType.FIGURE||t===e.VariableType.OTHERWIDGET||t===e.VariableType.PANDAS}static isOpenableType(e,t){return Fl.isTableType(e,t)||Fl.isWidgetType(e,t)}static isFigureType(e,t){return t===e.VariableType.FIGURE}static isPandas(e,t){return t===e.VariableType.PANDAS}}const Wu=Fl;function Qf(n){var{children:e}=n;return h.createElement("div",{className:"console-history-item-result"},h.createElement("div",{className:"console-history-gutter"},"-"),h.createElement("div",{className:"console-history-content"},e))}Qf.propTypes={children:Y.node.isRequired};function Gu(n,e,t){return e=fw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function fw(n){var e=pw(n,"string");return typeof e=="symbol"?e:String(e)}function pw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class Jf extends E.Component{constructor(e){super(e),Gu(this,"timer",void 0),Gu(this,"startTime",void 0),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}updateElapsed(){this.setState({elapsed:Math.round((Date.now()-this.startTime)/1e3)})}render(){var{disabled:e,onCancelClick:t}=this.props,{elapsed:r}=this.state;return h.createElement("div",{className:Q("console-history-result-in-progress",{disabled:e})},h.createElement("span",{className:"badge"},h.createElement(Dn,null)," Running... ",sd.formatElapsedTime(r)," ",h.createElement(W,{className:"console-history-result-in-progress-cancel",kind:"ghost",icon:vs,tooltip:"Cancel",onClick:t,disabled:e})))}}Gu(Jf,"defaultProps",{disabled:!1});const Cw=Jf;function Xo(n,e,t){return e=bw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function bw(n){var e=Sw(n,"string");return typeof e=="symbol"?e:String(e)}function Sw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class io extends E.PureComponent{constructor(e){super(e),Xo(this,"mouseX",void 0),Xo(this,"mouseY",void 0),Xo(this,"isClicking",void 0),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}}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)>=io.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=io.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(){var{isExpanded:e,isTriggerHovered:t}=this.state,{message:r}=this.props;L(r);var i=r.indexOf(`
2
2
  `),a=i>-1,o=r;a&&(o=r.slice(0,i));var s=r.slice(i),l=t?"error-btn-link error-btn-link--active":"error-btn-link";return h.createElement("div",{key:"error",className:Q("error-message",{expanded:e})},a&&h.createElement(h.Fragment,null,h.createElement("div",{className:"error-gutter"},h.createElement("button",{type:"button",onClick:this.handleToggleError,className:l,tabIndex:-1},h.createElement(re,{icon:e?qn:Af,transform:"left-3"}))),h.createElement("div",{className:"error-content"},h.createElement("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},o),e?s:"")),!a&&h.createElement("div",{className:"error-content"},h.createElement("div",{className:"console-error-text"},o)))}}Xo(io,"defaultProps",{message:""});Xo(io,"mouseDragThreshold",5);const Ew=io;function ww(n,e,t){return e=yw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function yw(n){var e=Tw(n,"string");return typeof e=="symbol"?e:String(e)}function Tw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var um=ie.module("ConsoleHistoryItem");class ep extends E.PureComponent{constructor(e){super(e),this.handleCancelClick=this.handleCancelClick.bind(this),this.handleObjectClick=this.handleObjectClick.bind(this)}handleObjectClick(e){um.debug("handleObjectClick",e);var{openObject:t}=this.props;t(e)}handleCancelClick(){var{item:e}=this.props;e!=null&&e.cancelResult&&(um.debug("Cancelling command: ".concat(e.command)),e.cancelResult())}render(){var{disabled:e,item:t,language:r}=this.props,{disabledObjects:i,result:a}=t,o=null;t.command!=null&&t.command!==""&&(o=h.createElement("div",{className:"console-history-item-command"},h.createElement("div",{className:"console-history-gutter"},">"),h.createElement("div",{className:"console-history-content"},h.createElement(cd,{language:r},t.command))));var s=[],l=!1;if(a){var{error:d,message:u,changes:c}=a;if(c){var{created:m,updated:v}=c;[...m,...v].forEach(w=>{l=!0;var{title:y}=w,T="".concat(y),P=e===void 0||e||(i??[]).indexOf(T)>=0,D=h.createElement(W,{key:T,kind:"primary",onClick:()=>this.handleObjectClick(w),className:"btn-console-object",disabled:P,icon:h.createElement(Xf,{type:w.type})},y);s.push(D)})}if(d!=null&&t.command==null){var g,f="".concat((g=d.message)!==null&&g!==void 0?g:d);f||(f=d);var p=h.createElement(Ew,{key:"result-error",message:f});s.push(p)}if(u!==void 0&&u!==""){var C=h.createElement("div",{key:"log-message",className:"log-message"},u);s.push(C)}}else{l=!0;var b=h.createElement(Cw,{key:"in_progress",onCancelClick:this.handleCancelClick,disabled:e});s.push(b)}var S=null;return s.length>0&&(S=h.createElement(Qf,null,s)),h.createElement("div",{className:Q("console-command-result",{"console-result-buttons":l})},o,S)}}ww(ep,"defaultProps",{disabled:!1});const Ow=ep;function Pw(n,e,t){return e=Dw(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Dw(n){var e=Rw(n,"string");return typeof e=="symbol"?e:String(e)}function Rw(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class md extends E.Component{static itemKey(e,t){return"".concat(e,".").concat(t.command,".").concat(t.result&&t.result.message,".").concat(t.result&&t.result.error)}render(){for(var{disabled:e,items:t,language:r,openObject:i}=this.props,a=[],o=0;o<t.length;o+=1){var s=t[o],l=h.createElement(Ow,{key:md.itemKey(o,s),disabled:e,item:s,openObject:i,language:r});a.push(l)}return h.createElement("div",{className:"container-fluid console-history"},a)}}Pw(md,"defaultProps",{disabled:!1});const Nw=md;var Fw={name:"Console",CLEAR:Ye.createAndAdd({id:"CONSOLE.CLEAR",name:"Clear",shortcut:[Se.CTRL,Oe.L],macShortcut:[Se.CTRL,Oe.C]}),FOCUS_HISTORY:Ye.createAndAdd({id:"CONSOLE.FOCUS_HISTORY",name:"Focus History",shortcut:[Se.CTRL,Oe.H],macShortcut:[Se.CTRL,Se.OPTION,Oe.H]})},Iw={name:"Command History",FOCUS_HISTORY:Ye.createAndAdd({id:"COMMAND_HISTORY.FOCUS_HISTORY",name:"Focus History Search",shortcut:[Se.CTRL,Oe.H],macShortcut:[Se.CTRL,Se.OPTION,Oe.H]}),SEND_TO_CONSOLE:Ye.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_CONSOLE",name:"Send to Console",shortcut:[Oe.ENTER],macShortcut:[Oe.ENTER]}),SEND_TO_NOTEBOOK:Ye.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_NOTEBOOK",name:"Send to Notebook",shortcut:[Se.CTRL,Oe.ENTER],macShortcut:[Se.CMD,Oe.ENTER]}),RUN:Ye.createAndAdd({id:"COMMAND_HISTORY.RUN",name:"Run",shortcut:[Se.ALT,Oe.R],macShortcut:[Se.OPTION,Oe.R]})},_w={name:"Notebook",RUN:Ye.createAndAdd({id:"NOTEBOOK.RUN",name:"Run",shortcut:[Se.ALT,Oe.R],macShortcut:[Se.OPTION,Oe.R]}),RUN_SELECTED:Ye.createAndAdd({id:"NOTEBOOK.RUN_SELECTED",name:"Run Selected",shortcut:[Se.ALT,Se.SHIFT,Oe.R],macShortcut:[Se.OPTION,Se.SHIFT,Oe.R]}),FIND:Ye.createAndAdd({id:"NOTEBOOK.FIND",name:"Find",shortcut:[Se.CTRL,Oe.F],macShortcut:[Se.CMD,Oe.F],isEditable:!1}),MINIMAP:Ye.createAndAdd({id:"NOTEBOOK.MINIMAP",name:"Show Minimap",shortcut:[Se.ALT,Oe.M],macShortcut:[Se.OPTION,Oe.M]}),WORDWRAP:Ye.createAndAdd({id:"NOTEBOOK.WORDWRAP",name:"Word Wrap",shortcut:[Se.ALT,Oe.Z],macShortcut:[Se.OPTION,Oe.Z]})},Mw={CONSOLE:Fw,COMMAND_HISTORY:Iw,NOTEBOOK:_w};const rr=Mw,Lt=Object.freeze({FATAL:"FATAL",STDERR:"STDERR",ERROR:"ERROR",WARN:"WARN",STDOUT:"STDOUT",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}),Aw="#2d2a2e",Lw="#fcfcfa",kw="#fcd65b",xw="#b2b1b2",Hw="#9edc6f",Uw="#76d9e4",$w="#f95d84",Bw="#aa9af4",Vw="#f95d84",Ww="#fcfcfa",Gw="#7c7b7c",pe={"error-foreground":"#f95d84",background:Aw,foreground:Lw,"line-height":"19px",string:kw,"string-delim":"#929192",delimiter:xw,predefined:Hw,keyword:Uw,storage:$w,number:Bw,operator:Vw,identifier:Ww,"namespace-identifier":"#f95d84","identifier-js":"#fcd65b",comment:Gw,"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"};var jw="python",zw={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/}}},Kw={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"]]}},Yw={id:jw,conf:zw,language:Kw};const qw=Yw;var Xw="groovy",Zw={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/}}},Qw={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"]]}},Jw={id:Xw,conf:Zw,language:Qw};const ey=Jw;var ty="scala",ry={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>))/}}},ny={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"]]}},iy={id:ty,conf:ry,language:ny};const ay=iy;var oy="deephavenDb",sy={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/}}},ly={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"]]}},dy={id:oy,conf:sy,language:ly};const uy=dy;var hy="log",cy={},my={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"}]]}},vy={id:hy,conf:cy,language:my};const gy=vy;function hm(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function cm(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?hm(Object(t),!0).forEach(function(r){fy(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):hm(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function fy(n,e,t){return e=py(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function py(n){var e=Cy(n,"string");return typeof e=="symbol"?e:String(e)}function Cy(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var gn=ie.module("MonacoUtils");class Cn{static init(){var{getWorker:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gn.debug("Initializing Monaco..."),e!==void 0&&Cn.registerGetWorker(e);var{registerLanguages:t,removeHashtag:r}=Cn,i=[{token:"",foreground:r(pe.foreground)},{token:"string",foreground:r(pe.string)},{token:"string.delim",foreground:r(pe["string-delim"])},{token:"keyword",foreground:r(pe.keyword)},{token:"identifier.js",foreground:r(pe["identifier-js"])},{token:"delimiter",foreground:r(pe.delimiter)},{token:"comment",foreground:r(pe.comment)},{token:"number",foreground:r(pe.number)},{token:"storage",foreground:r(pe.storage)},{token:"identifier",foreground:r(pe.identifier)},{token:"namespace.identifier",foreground:r(pe["namespace-identifier"])},{token:"operator",foreground:r(pe.operator)},{token:"predefined",foreground:r(pe.predefined)},{token:"error.log",foreground:pe["log-error"].substring(1)},{token:"warn.log",foreground:r(pe["log-warn"])},{token:"info.log",foreground:r(pe["log-info"])},{token:"stdout.log",foreground:r(pe["log-stdout"])},{token:"trace.log",foreground:r(pe["log-trace"])},{token:"debug.log",foreground:r(pe["log-debug"])},{token:"date.log",foreground:r(pe["log-date"])}],a={errorForeground:pe["error-foreground"],"inputOption.activeBorder":pe["input-option-active-border"],"editor.background":pe.background,"editor.foreground":pe.foreground,"editor.lineHighlightBackground":pe["editor-line-highlight-bg"],"editorLineNumber.foreground":pe["editor-line-number-foreground"],"editor.selectionBackground":pe["editor-selection-background"],"editor.findMatchBackground":pe["editor-find-match-background"],"editor.findMatchHighlightBackground":pe["editor-find-match-highlight-background"],"editorSuggestWidget.background":pe["editor-suggest-widget-background"],"editorSuggestWidget.border":pe["editor-suggest-widget-border"],"editorSuggestWidget.foreground":pe["editor-suggest-widget-foreground"],"editorSuggestWidget.selectedBackground":pe["editor-suggest-widget-selected-background"],"editorSuggestWidget.highlightForeground":pe["editor-suggest-widget-highlightForeground"],"list.hoverBackground":pe["list-hover-background"],"dropdown.background":pe["context-menu-background"],"dropdown.foreground":pe["context-menu-foreground"],"menu.selectionBackground":pe["menu-selection-background"],"list.focusBackground":pe["menu-selection-background"],"editorWidget.background":pe["editor-widget-background"],"inputOption.activeBackground":pe["input-option-active-background"],"inputOption.activeForeground":pe["input-option-active-foreground"],focusBorder:pe["focus-border"],"input.background":pe["input-background"],"input.foreground":pe["input-foreground"],"input.border":pe["input-border"],"textLink.foreground":pe["text-link-foreground"],"textLink.activeForeground":pe["text-link-active-foreground"],"editorLink.activeForeground":pe["editor-link-active-foreground"]};Zn.defineTheme("dh-dark",{base:"vs-dark",inherit:!0,rules:i,colors:a}),gn.debug2("monaco theme: ",pe),Zn.setTheme("dh-dark"),t([uy,qw,ey,gy,ay]),gn.debug("Monaco initialized.")}static registerGetWorker(e){window.MonacoEnvironment=cm(cm({},window.MonacoEnvironment),{},{getWorker:e})}static removeHashtag(e){return e.substring(1)}static registerLanguages(e){var t=e.map(r=>{var{id:i}=r;return i});wn.getLanguages().filter(r=>{var{id:i}=r;return t.includes(i)}).forEach(r=>{var i=r;gn.debug2("Overriding default language loader:",i.id)}),e.forEach(r=>{Cn.registerLanguage(r)})}static registerLanguage(e){gn.debug2("Registering language: ",e.id),wn.register(e),wn.onLanguage(e.id,()=>{wn.setLanguageConfiguration(e.id,e.conf),wn.setMonarchTokensProvider(e.id,e.language)})}static setEOL(e){var t,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zn.EndOfLineSequence.LF;(t=e.getModel())===null||t===void 0||t.setEOL(r)}static openDocument(e,t){var r=e.getModel();L(r);var i={textDocument:{uri:"".concat(r.uri),languageId:r.getLanguageId(),version:r.getVersionId(),text:r.getValue()}};gn.debug2("didOpenDocumentParams: ",i),t.openDocument(i);var a=e.onDidChangeModelContent(o=>{for(var{changes:s,versionId:l}=o,d=[],u=0;u<s.length;u+=1){var c=s[u],{range:m,rangeLength:v,text:g}=c,f={range:{start:{line:m.startLineNumber-1,character:m.startColumn-1},end:{line:m.endLineNumber-1,character:m.endColumn-1}},rangeLength:v,text:g};d.push(f)}if(d.length>0){var p={textDocument:{version:l,uri:"".concat(r.uri)},contentChanges:d};gn.debug2("didChangeDocumentParams",p),t.changeDocument(p)}});return a}static closeDocument(e,t){var r=e.getModel();L(r);var i={textDocument:{uri:"".concat(r.uri)}};t.closeDocument(i)}static registerPasteHandler(e){e.onDidPaste(t=>{var r=/“|”/g,i=/\u200b/g,a=/\u00A0/g,o=e.getModel();L(o);var s=o.getValueInRange(t.range);(r.test(s)||i.test(s)||a.test(s))&&o.applyEdits([{range:t.range,text:s.replace(r,'"').replace(i,"").replace(a," ")}])})}static isMacPlatform(){var{platform:e}=window.navigator;return e.startsWith("Mac")}static removeConflictingKeybindings(e){var t=[{windows:"ctrl+D",mac:"meta+D"},{windows:"ctrl+H"}];try{t.forEach(r=>{Cn.isMacPlatform()&&r.mac===""||!Cn.isMacPlatform()&&r.windows===""||Cn.removeKeybinding(e,Cn.isMacPlatform()?r.mac:r.windows)})}catch(r){gn.error(r)}}static removeKeybinding(e,t){if(t!==void 0){var r=e._standaloneKeybindingService._getResolver()._map.get(t);r!=null?r.forEach(i=>{gn.debug2("Removing Monaco keybinding ".concat(t," for ").concat(i.command)),e._standaloneKeybindingService.addDynamicKeybinding("-".concat(i.command),null,()=>{})}):gn.warn("Did not find any keybindings to remove for ".concat(t))}}static getMonacoKeyCodeFromShortcut(e){var{keyState:t}=e,{keyValue:r}=t;if(r===null)return 0;var i=Cn.isMacPlatform();return i?(t.metaKey?Gr.CtrlCmd:0)|(t.shiftKey?Gr.Shift:0)|(t.altKey?Gr.Alt:0)|(t.ctrlKey?Gr.WinCtrl:0)|Qc.fromString(r):(t.ctrlKey?Gr.CtrlCmd:0)|(t.shiftKey?Gr.Shift:0)|(t.altKey?Gr.Alt:0)|(t.metaKey?Gr.WinCtrl:0)|Qc.fromString(r)}static provideLinks(e){for(var t=[],r=function(o){var s=e.getLineContent(o),l=Df(s),d=l.filter(u=>u.type==="url"?/^https?:\/\//.test(u.value):!0);d.forEach(u=>{t.push({url:u.href,range:new mS(o,u.start+1,o,u.end+1)})})},i=1;i<=e.getLineCount();i+=1)r(i);return{links:t}}}const gr=Cn;function ou(n,e,t){return e=by(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function by(n){var e=Sy(n,"string");return typeof e=="symbol"?e:String(e)}function Sy(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var xn=ie.module("MonacoCompletionProvider");class da extends E.PureComponent{static lspToMonacoKind(e){var t=wn.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){var{start:t,end:r}=e;return{startLineNumber:t.line+1,startColumn:t.character+1,endLineNumber:r.line+1,endColumn:r.character+1}}static monacoToLspPosition(e){return{line:e.lineNumber-1,character:e.column-1}}constructor(e){super(e),ou(this,"registeredCompletionProvider",void 0),ou(this,"registeredSignatureProvider",void 0),ou(this,"registeredHoverProvider",void 0),this.handleCompletionRequest=this.handleCompletionRequest.bind(this),this.handleSignatureRequest=this.handleSignatureRequest.bind(this),this.handleHoverRequest=this.handleHoverRequest.bind(this)}componentDidMount(){var{language:e,session:t}=this.props;this.registeredCompletionProvider=wn.registerCompletionItemProvider(e,{provideCompletionItems:this.handleCompletionRequest,triggerCharacters:[".",'"',"'"]}),t.getSignatureHelp&&(this.registeredSignatureProvider=wn.registerSignatureHelpProvider(e,{provideSignatureHelp:this.handleSignatureRequest,signatureHelpTriggerCharacters:["(",","]})),t.getHover&&(this.registeredHoverProvider=wn.registerHoverProvider(e,{provideHover:this.handleHoverRequest}))}componentWillUnmount(){var e,t,r;(e=this.registeredCompletionProvider)===null||e===void 0||e.dispose(),(t=this.registeredSignatureProvider)===null||t===void 0||t.dispose(),(r=this.registeredHoverProvider)===null||r===void 0||r.dispose()}handleCompletionRequest(e,t,r){var{model:i,session:a}=this.props;if(e!==i)return null;var o={textDocument:{uri:"".concat(e.uri),version:e.getVersionId()},position:da.monacoToLspPosition(t),context:r},s=a.getCompletionItems(o);xn.debug("Requested completion items",o);var l=s.then(d=>{xn.debug("Completion items received: ",o,d);var u=d.map(c=>{var{label:m,kind:v,detail:g,documentation:f,sortText:p,filterText:C,textEdit:b,insertTextFormat:S}=c;return{label:m,kind:da.lspToMonacoKind(v),detail:g,documentation:f?.kind==="markdown"?f:f?.value,sortText:p,filterText:C,insertText:b.text,insertTextRules:S===2?4:S,range:da.lspToMonacoRange(b.range)}});return{incomplete:!0,suggestions:u}}).catch(d=>(xn.error("There was an error retrieving completion items",d),{suggestions:[]}));return l}handleSignatureRequest(e,t,r,i){var a={value:{signatures:[],activeSignature:0,activeParameter:0},dispose:()=>{}},{model:o,session:s}=this.props;if(e!==o||!s.getSignatureHelp)return null;var l={textDocument:{uri:"".concat(e.uri),version:e.getVersionId()},position:da.monacoToLspPosition(t),context:i},d=s.getSignatureHelp(l);xn.debug("Requested signature help",l);var u=d.then(c=>{xn.debug("Signatures received: ",l,d);var m=c.map(g=>{var{label:f,documentation:p,parameters:C}=g;return{documentation:p?.kind==="markdown"?p:p?.value,label:f,parameters:C??[]}});if(m.length===0)return a;var v=0;return{value:{signatures:m,activeSignature:v,activeParameter:c[v].activeParameter},dispose:()=>{}}}).catch(c=>(xn.error("There was an error retrieving completion items",c),a));return u}handleHoverRequest(e,t){var{model:r,session:i}=this.props;if(e!==r||!i.getHover)return null;var a={textDocument:{uri:"".concat(e.uri),version:e.getVersionId()},position:da.monacoToLspPosition(t)},o=i.getHover(a);xn.debug("Requested hover",a);var s=o.then(l=>{xn.debug("Hover received: ",a,l);var{contents:d}=l;return{contents:d?[d]:[]}}).catch(l=>(xn.error("There was an error retrieving hover",l),{contents:[]}));return s}render(){return null}}const tp=da;function mm(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function Ey(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){mm(a,r,i,o,s,"next",l)}function s(l){mm(a,r,i,o,s,"throw",l)}o(void 0)})}}function $r(n,e,t){return e=wy(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function wy(n){var e=yy(n,"string");return typeof e=="symbol"?e:String(e)}function yy(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var su=ie.module("ConsoleInput"),Il=parseInt(pe["line-height"],10),rp=6,np=6,Ty=Il+rp+np,lu=100;class Cs extends E.PureComponent{constructor(e){super(e),$r(this,"cancelListener",void 0),$r(this,"commandContainer",void 0),$r(this,"commandEditor",void 0),$r(this,"commandHistoryIndex",void 0),$r(this,"commandSuggestionContainer",void 0),$r(this,"loadingPromise",void 0),$r(this,"timestamp",void 0),$r(this,"bufferIndex",void 0),$r(this,"history",void 0),$r(this,"modifiedCommands",void 0),this.handleWindowResize=this.handleWindowResize.bind(this),this.commandContainer=h.createRef(),this.commandHistoryIndex=null,this.timestamp=Date.now(),this.bufferIndex=0,this.history=[],this.modifiedCommands=new Map,this.state={commandEditorHeight:Il,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()}setConsoleText(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(e){if(su.debug("Command received: ",e),!r){var i;this.commandHistoryIndex=null,(i=this.commandEditor)===null||i===void 0||i.setValue(e)}t&&this.focusEnd(),this.updateDimensions(),r&&this.processCommand(e)}}initCommandEditor(){var{language:e,session:t}=this.props,r={copyWithSyntaxHighlighting:!1,cursorStyle:"block",fixedOverflowWidgets:!0,folding:!1,fontFamily:"Fira Mono",glyphMargin:!1,language:e,lineHeight:Il,lineDecorationsWidth:3,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollBeyondLastLine:!1,scrollbar:{arrowSize:0,horizontal:"hidden",horizontalScrollbarSize:0},padding:{top:rp,bottom:np},tabCompletion:"on",value:"",wordWrap:"on"},i=this.commandContainer.current;L(i),this.commandEditor=Zn.create(i,r),gr.setEOL(this.commandEditor),gr.openDocument(this.commandEditor,t),this.commandEditor.onDidChangeModelContent(()=>{var a,o=(a=this.commandEditor)===null||a===void 0?void 0:a.getValue();this.modifiedCommands.set(this.commandHistoryIndex,o??null),this.updateDimensions()}),this.commandEditor.onDidFocusEditorText(()=>{this.setState({isFocused:!0})}),this.commandEditor.onDidBlurEditorText(()=>{this.setState({isFocused:!1})}),this.commandEditor.onKeyDown(a=>{var{commandEditor:o,commandHistoryIndex:s}=this,l=o?.getPosition();L(l);var{lineNumber:d}=l,u=o?.getModel();if(a.code==="ArrowUp"&&!this.isSuggestionMenuPopulated()&&d===1){s!=null?this.loadCommand(s+1):this.loadCommand(0),this.focusStart(),a.stopPropagation(),a.preventDefault();return}if(a.code==="ArrowDown"&&!this.isSuggestionMenuPopulated()&&d===u?.getLineCount()){s!=null&&s>0?this.loadCommand(s-1):this.loadCommand(null),this.focusEnd(),a.stopPropagation(),a.preventDefault();return}if(!a.altKey&&!a.shiftKey&&!a.metaKey){if(a.keyCode===Ui.Enter){if(!this.isSuggestionMenuPopulated()){var c;a.stopPropagation(),a.preventDefault();var m=(c=this.commandEditor)===null||c===void 0?void 0:c.getValue().trim();if(m!==void 0){var v;this.processCommand(m),(v=this.commandEditor)===null||v===void 0||v.setValue("")}}}else if(a.keyCode===Ui.Tab)if(this.isSuggestionMenuActive())this.isSuggestionMenuPopulated()||(a.stopPropagation(),a.preventDefault());else{var g;a.stopPropagation(),a.preventDefault(),(g=this.commandEditor)===null||g===void 0||g.trigger("Tab key trigger suggestions","editor.action.triggerSuggest",{})}}}),this.commandEditor.addCommand(Gr.CtrlCmd|Ui.KeyF,()=>{}),gr.removeConflictingKeybindings(this.commandEditor),gr.registerPasteHandler(this.commandEditor),this.commandEditor.focus(),this.updateDimensions(),this.setState({model:this.commandEditor.getModel()})}destroyCommandEditor(){var{session:e}=this.props;this.commandEditor&&(gr.closeDocument(this.commandEditor,e),this.commandEditor.dispose(),this.commandEditor=void 0)}handleWindowResize(){this.updateDimensions()}isSuggestionMenuActive(){var e;if(!this.commandSuggestionContainer){var t,r;this.commandSuggestionContainer=(t=this.commandEditor)===null||t===void 0||(r=t.getDomNode())===null||r===void 0?void 0:r.querySelector(".suggest-widget")}return(e=this.commandSuggestionContainer&&this.commandSuggestionContainer.classList.contains("visible"))!==null&&e!==void 0?e:!1}isSuggestionMenuPopulated(){var e,t,r;return this.isSuggestionMenuActive()&&((e=(t=this.commandSuggestionContainer)===null||t===void 0||(r=t.querySelector(".monaco-list-rows"))===null||r===void 0?void 0:r.childElementCount)!==null&&e!==void 0?e:0)>0}focus(){var e;(e=this.commandEditor)===null||e===void 0||e.focus()}focusStart(){var e,t,r,i,a,o=(e=this.commandEditor)===null||e===void 0?void 0:e.getModel();L(o);var s=o.getLineLength(1)+1,l=(t=this.commandEditor)===null||t===void 0?void 0:t.getTopForPosition(1,s);L(l),(r=this.commandEditor)===null||r===void 0||r.setPosition({lineNumber:1,column:s}),(i=this.commandEditor)===null||i===void 0||i.setScrollTop(l),(a=this.commandEditor)===null||a===void 0||a.focus()}focusEnd(){var e,t,r,i,a,o=(e=this.commandEditor)===null||e===void 0?void 0:e.getModel();L(o);var s=o.getLineCount(),l=o.getLineLength(s)+1,d=(t=this.commandEditor)===null||t===void 0?void 0:t.getTopForPosition(s,l);L(d),(r=this.commandEditor)===null||r===void 0||r.setPosition({lineNumber:s,column:l}),(i=this.commandEditor)===null||i===void 0||i.setScrollTop(d),(a=this.commandEditor)===null||a===void 0||a.focus()}clear(){var e,t,r;(e=this.commandEditor)===null||e===void 0||e.focus(),(t=this.commandEditor)===null||t===void 0||(r=t.getModel())===null||r===void 0||r.setValue(""),this.commandHistoryIndex=null}layoutEditor(){this.commandEditor&&this.commandEditor.layout()}loadCommand(e){var t,r;if(!(e!==null&&e>=this.history.length)){var i=this.modifiedCommands.get(e),a=e===null?"":this.history[this.history.length-e-1];this.commandHistoryIndex=e,(t=this.commandEditor)===null||t===void 0||(r=t.getModel())===null||r===void 0||r.setValue(i??a),e!==null&&e>this.history.length-lu&&this.loadMoreHistory()}}loadMoreHistory(){var e=this;return Ey(function*(){try{if(e.loadingPromise!=null||e.bufferIndex==null)return;var{commandHistoryStorage:t,language:r,scope:i}=e.props;e.loadingPromise=ye.makeCancelable(t.getTable(r,i??"",e.timestamp),s=>s.close());var a=yield e.loadingPromise;a.setReversed(!0),a.setViewport({top:e.bufferIndex,bottom:e.bufferIndex+lu-1}),e.loadingPromise=ye.makeCancelable(a.getViewportData(),()=>a.close());var o=yield e.loadingPromise;e.bufferIndex+=lu,e.bufferIndex>=a.size&&(e.bufferIndex=null),e.history=[...o.items.filter((s,l,d)=>{var{name:u}=s;return l===0||u!==d[l-1].name}).map(s=>{var{name:l}=s;return l}).reverse(),...e.history],e.loadingPromise=void 0,a.close()}catch(s){if(e.loadingPromise=void 0,ye.isCanceled(s)){su.debug2("Promise canceled, not loading history");return}su.error("Error fetching history",s)}})()}processCommand(e){this.commandHistoryIndex=null,this.modifiedCommands.clear(),L(e),e!==""&&(this.history.length===0||e!==this.history[this.history.length-1])&&this.history.push(e),this.updateDimensions();var{onSubmit:t}=this.props;t(e)}updateDimensions(){if(this.commandEditor){var{maxHeight:e}=this.props;L(e);var t=this.commandEditor.getContentHeight(),r=Math.max(Math.min(t,e),Ty),i=t>r,a={overviewRulerLanes:i?void 0:0};this.setState({commandEditorHeight:r},()=>{var o,s;(o=this.commandEditor)===null||o===void 0||o.updateOptions(a),(s=this.commandEditor)===null||s===void 0||s.layout()})}}render(){var{disabled:e,language:t,session:r}=this.props,{commandEditorHeight:i,isFocused:a,model:o}=this.state;return h.createElement("div",{className:Q("console-input-wrapper",{disabled:e})},h.createElement("div",{className:Q("console-input-inner-wrapper",{focus:a})},h.createElement("div",{className:Cs.INPUT_CLASS_NAME,ref:this.commandContainer,style:{height:i}}),o&&h.createElement(tp,{model:o,language:t,session:r})))}}$r(Cs,"defaultProps",{maxHeight:Il*10,scope:null,disabled:!1});$r(Cs,"INPUT_CLASS_NAME","console-input");const vm=Cs;function ki(n,e,t){return e=Oy(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Oy(n){var e=Py(n,"string");return typeof e=="symbol"?e:String(e)}function Py(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var gm="pasted values",Dy=[/^audio.*/,/^font.*/,/^image.*/,/^video.*/],du=[".csv",".tsv",".tab",".psv",".dsv",".txt"],fm=[".zip"];class yn extends E.Component{static isValidDropItem(e){return e!=null&&e.kind==="file"&&!Dy.find(t=>t.test(e.type))}static isValidExtension(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return du.some(r=>e.endsWith(r))||t&&fm.some(r=>e.endsWith(r))}static handleDragOver(e){e.preventDefault(),e.stopPropagation()}static getIcon(e){return e===gm?Jc:e.endsWith(".csv")?fS:e.endsWith(".zip")?pS:CS}constructor(e){super(e),ki(this,"fileElem",void 0),ki(this,"divElem",void 0),ki(this,"getValidExtensions",fe(t=>t?[...du,...fm]:[...du])),ki(this,"getAcceptString",fe(t=>this.getValidExtensions(t).join(", "))),ki(this,"getFileTypeErrorString",fe(t=>jr.join(this.getValidExtensions(t),"or"))),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=h.createRef(),this.divElem=h.createRef(),this.state={selectedFileName:""}}componentDidMount(){var e,t;(e=this.divElem.current)===null||e===void 0||e.addEventListener("paste",this.handlePasteEvent),(t=this.divElem.current)===null||t===void 0||t.focus()}componentWillUnmount(){var e;(e=this.divElem.current)===null||e===void 0||e.removeEventListener("paste",this.handlePasteEvent)}handleSelectFile(){if(this.fileElem.current){var e;this.fileElem.current.value="",(e=this.fileElem.current)===null||e===void 0||e.click()}}handleFiles(e){e.stopPropagation(),e.preventDefault();var{files:t}=e.target;t!=null&&this.handleFile(t[0])}handleDrop(e){var{allowZip:t,clearDragError:r,dragError:i}=this.props;if(e.preventDefault(),e.stopPropagation(),i!=null){r();return}if(!(e.dataTransfer==null||e.dataTransfer.items==null||e.dataTransfer.items.length===0)){var a=e.dataTransfer.items[0].getAsFile();L(a),yn.isValidExtension(a.name,t)?this.handleFile(a):this.setState({dropError:yn.FILE_TYPE_ERROR})}}unstageFile(e){var{onCancel:t}=this.props;e.stopPropagation(),e.preventDefault(),t(),this.setState({selectedFileName:"",dropError:void 0})}handleFile(e){var{onFileOpened:t}=this.props;t(e),this.setState({selectedFileName:e.name,dropError:void 0})}handleMenuPaste(){var{onPaste:e,onError:t,uploadInProgress:r}=this.props;r||navigator.clipboard.readText().then(i=>{e(i),this.setState({selectedFileName:gm,dropError:void 0})}).catch(i=>t(i))}handlePasteEvent(e){e.stopPropagation(),e.preventDefault(),this.handleMenuPaste()}makeContextMenuItems(){var{uploadInProgress:e}=this.props;return[{title:"Paste",icon:Jc,action:this.handleMenuPaste,shortcut:ii.PASTE,disabled:e}]}render(){var{allowZip:e,dragError:t,uploadInProgress:r}=this.props,{selectedFileName:i,dropError:a}=this.state,o=t??a,s=this.makeContextMenuItems();return h.createElement("div",{ref:this.divElem,className:"csv-overlay fill-parent-absolute",onDragOver:yn.handleDragOver,onDrop:this.handleDrop,tabIndex:-1},h.createElement(oe,{actions:s}),h.createElement("input",{ref:this.fileElem,type:"file",id:"fileElem",accept:this.getAcceptString(e),style:{display:"none"},onChange:this.handleFiles,"data-testid":"fileElem"}),!i&&(o===void 0||o==="")&&h.createElement("div",{className:"message-content"},h.createElement("div",{className:"message-icon"},h.createElement(re,{icon:bS})),h.createElement("label",null,"Drop file (or paste values) here to import"),h.createElement("div",{className:"message-small"},h.createElement("label",null,"or")),h.createElement(W,{kind:"primary",onClick:this.handleSelectFile},"Select File...")),i&&(o===void 0||o==="")&&h.createElement("div",{className:"selected-content"},h.createElement("div",{className:"selected-icon"},h.createElement(re,{icon:yn.getIcon(i)})),h.createElement("div",{className:"selected-text"},h.createElement("label",null,"Selected File"),h.createElement("label",{className:"selected-name"},i,!r&&h.createElement(W,{kind:"ghost",className:"ml-2",onClick:this.unstageFile,icon:Ar,tooltip:"Remove"})))),!!o&&h.createElement("div",{className:"message-content"},h.createElement("div",{className:"message-icon"},h.createElement(re,{icon:Gi})),h.createElement("label",null,o),o===yn.FILE_TYPE_ERROR&&h.createElement("div",{className:"message-small"},h.createElement("label",null,this.getFileTypeErrorString(e)))))}}ki(yn,"defaultProps",{allowZip:!1,dragError:null});ki(yn,"MULTIPLE_FILE_ERROR","Please select only one file");ki(yn,"FILE_TYPE_ERROR","Filetype not supported.");const Ga=yn;function Ta(n,e,t){return e=Ry(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ry(n){var e=Ny(n,"string");return typeof e=="symbol"?e:String(e)}function Ny(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class qi{}Ta(qi,"INTEGER","int");Ta(qi,"LONG","long");Ta(qi,"DOUBLE","double");Ta(qi,"BOOLEAN","bool");Ta(qi,"STRING","string");Ta(qi,"DATE_TIME","datetime");Ta(qi,"LOCAL_TIME","localtime");const Ve=qi;function pm(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Cm(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?pm(Object(t),!0).forEach(function(r){lr(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):pm(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function lr(n,e,t){return e=Fy(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Fy(n){var e=Iy(n,"string");return typeof e=="symbol"?e:String(e)}function Iy(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var bm="unknown",_y=2147483647,My=-2147483648,Sm=/^[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]+)?$/,Em=/^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\.[0-9]{1,9})?$/;class jt{static determineType(e,t,r){if(!e||e===r)return t;switch(t){case Ve.STRING:return Ve.STRING;case Ve.INTEGER:return jt.checkInteger(e);case Ve.LONG:return jt.checkLong(e);case Ve.DOUBLE:return jt.checkDouble(e);case Ve.BOOLEAN:return jt.checkBoolean(e);case Ve.DATE_TIME:return jt.checkDateTime(e);case Ve.LOCAL_TIME:return jt.checkLocalTime(e);default:return jt.getTypeFromUnknown(e)}}static isNotParsableNumber(e){return isNaN(e)||e==="Infinity"||e==="-Infinity"}static checkInteger(e){var t=e.replace(/,/g,"");return jt.isNotParsableNumber(t)?Ve.STRING:jt.getNumberType(t)}static checkLong(e){var t=e.replace(/,/g,"");return jt.isNotParsableNumber(t)?Ve.STRING:t.includes(".")?Ve.DOUBLE:Ve.LONG}static checkDouble(e){var t=e.replace(/,/g,"");return jt.isNotParsableNumber(t)?Ve.STRING:Ve.DOUBLE}static checkBoolean(e){var t=e.toLowerCase();return t==="true"||t==="false"?Ve.BOOLEAN:Ve.STRING}static checkDateTime(e){return Sm.test(e)?Ve.DATE_TIME:Ve.STRING}static checkLocalTime(e){return Em.test(e)?Ve.LOCAL_TIME:Ve.STRING}static getTypeFromUnknown(e){var t=e.replace(/,/g,"");if(jt.isNotParsableNumber(t)){var r=e.toLowerCase();return r==="true"||r==="false"?Ve.BOOLEAN:Sm.test(e)&&e.includes(":")?Ve.DATE_TIME:Em.test(e)?Ve.LOCAL_TIME:Ve.STRING}return jt.getNumberType(t)}static getNumberType(e){if(e.includes("."))return Ve.DOUBLE;var t=e.startsWith("-")?11:10;if(e.length>t)return Ve.LONG;var r=parseInt(e,10);return r>_y||r<My?Ve.LONG:Ve.INTEGER}constructor(e,t,r,i,a,o,s,l,d,u){lr(this,"onFileCompleted",void 0),lr(this,"file",void 0),lr(this,"readHeaders",void 0),lr(this,"nullString",void 0),lr(this,"onProgress",void 0),lr(this,"onError",void 0),lr(this,"types",void 0),lr(this,"chunks",void 0),lr(this,"totalChunks",void 0),lr(this,"isZip",void 0),lr(this,"shouldTrim",void 0),lr(this,"zipProgress",void 0),lr(this,"config",void 0),this.onFileCompleted=e,this.file=t,this.readHeaders=r,this.nullString=a,this.onProgress=o,this.onError=s,this.chunks=0,this.totalChunks=l,this.isZip=d,this.shouldTrim=u,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=Cm(Cm({},i),{},{error:this.handleError,chunk:this.handleChunk,complete:this.handleComplete})}parse(){var e=this.isZip?this.file.nodeStream("nodebuffer",this.handleNodeUpdate):this.file;xu.parse(e,this.config)}handleChunk(e,t){var{data:r}=e;if(!this.types){if(r==null||r.length===0){t.abort(),this.onError("Error parsing CSV: no data in file.");return}this.types=new Array(r[0].length).fill(bm),this.readHeaders&&(r=r.slice(1))}L(this.types);var i=[...this.types];r.forEach(s=>{if(s.length>=i.length){for(var l=0;l<i.length;l+=1)i[l]=jt.determineType(this.shouldTrim?s[l].trim():s[l],i[l],this.nullString);this.types=i}else t.abort(),this.onError(`Error parsing CSV: Insufficient data in row.
3
3
  Expected length `.concat(i.length," but found ").concat(s.length,`.
4
4
  Row = `).concat(s))}),this.chunks+=1;var a=0;this.totalChunks>0?a=Math.round(this.chunks/this.totalChunks*50):a=Math.round(this.zipProgress/2);var o=this.onProgress(a);o&&t.abort()}handleComplete(e){var{types:t,onFileCompleted:r}=this;L(t),(e==null||!e.meta.aborted)&&r(t.map(i=>i===bm?Ve.STRING:i))}handleError(e){var{onError:t}=this;t(e)}handleNodeUpdate(e){this.zipProgress=e.percent}}const Ay=jt;function mt(n,e,t){return e=Ly(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ly(n){var e=ky(n,"string");return typeof e=="symbol"?e:String(e)}function ky(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Hs=ie.module("CsvParser"),xy=650;class ao{static generateHeaderRecursive(e){var t="",r=e;return e>=26&&(t=t.concat(ao.generateHeaderRecursive(Math.floor(e/26)-1)),r=e%26),t.concat(String.fromCharCode(65+r))}constructor(e){var{onFileCompleted:t,session:r,file:i,type:a,readHeaders:o=!0,onProgress:s,onError:l,timeZone:d,isZip:u}=e;mt(this,"onFileCompleted",void 0),mt(this,"session",void 0),mt(this,"file",void 0),mt(this,"isZip",void 0),mt(this,"type",void 0),mt(this,"readHeaders",void 0),mt(this,"timeZone",void 0),mt(this,"onProgress",void 0),mt(this,"onError",void 0),mt(this,"tables",void 0),mt(this,"headers",void 0),mt(this,"types",void 0),mt(this,"chunks",void 0),mt(this,"totalChunks",void 0),mt(this,"isComplete",void 0),mt(this,"zipProgress",void 0),mt(this,"consolidatedChunks",void 0),mt(this,"numConsolidated",void 0),mt(this,"isCancelled",void 0),mt(this,"config",void 0),this.onFileCompleted=t,this.session=r,this.file=i,this.isZip=u,this.type=a,this.readHeaders=o,this.timeZone=d,this.onProgress=s,this.onError=l,this.tables=[],this.chunks=0,this.totalChunks=u?0:Math.ceil(i.size/xu.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:a.delimiter,newline:a.newline,escapeChar:a.escapeChar,dynamicTyping:!1,error:this.handleError,skipEmptyLines:a.skipEmptyLines,chunk:this.handleChunk,complete:this.handleComplete,fastMode:!1}}cancel(){this.isCancelled=!0}transpose(e,t){for(var r=t.length,i=new Array(e).fill(null).map(()=>new Array(r)),a=0;a<r;a+=1){var o=t[a];if(o.length<e)throw new Error("Insufficient columns. Expected ".concat(e," but found ").concat(o.length,`
@@ -34,9 +34,9 @@ Check your internet connection.`;if(t&&r)return"Disconnected from server.";if(r)
34
34
  `).concat(to.makeCirclePath(i,a,sf),`
35
35
  `).concat(to.makeCirclePath(o,s,sf)),D="link-select-clip-".concat(l),O=Math.atan2(s-y,o-w),F=O-of+Math.PI,I=O+of+Math.PI,_=o+Math.cos(O)*af,M=s+Math.sin(O)*af,V=_+Math.cos(F)*vl,H=M+Math.sin(F)*vl,z=_+Math.cos(I)*vl,G=M+Math.sin(I)*vl,K="".concat(_,",").concat(M," ").concat(V,",").concat(H," ").concat(z,",").concat(G),ee=.25*i+.5*w+.25*o,te=.25*a+.5*y+.25*s,A=w-i+(o-w),N=y-a+(s-y),k=N/A,$=20,X=$/Math.sqrt(1+k**2),j=X*k,J=X*-1,ae=j*-1;Number.isFinite(k)?k>0?(X*=-1,j*=-1,J*=-1,ae*=-1,J-=50-10*(Math.abs(v)%Fi),ae+=10*(Math.abs(v)%Fi),X-=50-10*(Math.abs(v)%Fi),j+=10*(Math.abs(v)%Fi)):k<0?(J+=10*(Math.abs(v)%Fi),ae+=10*(Math.abs(v)%Fi),X+=10*(Math.abs(v)%Fi),j+=10*(Math.abs(v)%Fi)):(J=15,ae=10,X=-25,j=10):(J=10,ae=5,X=10,j=-35);var de="";t!==void 0&&(t==="startsWith"?de="a*":t==="endsWith"?de="*z":de=x.getFilterOperatorString(t));var se=u!=="chartLink"&&u!=="filterSource";return h.createElement(h.Fragment,null,h.createElement("svg",{className:Q(e,{hovering:c})},h.createElement("clipPath",{id:D},h.createElement("path",{d:P,clipRule:"evenodd"})),h.createElement("path",{className:"link-select",d:T,onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,clipPath:"url(#".concat(D,")"),"data-testid":"link-select"}),h.createElement("path",{className:"link-background",d:T}),h.createElement("path",{className:"link-foreground",d:T}),h.createElement("circle",{className:"link-dot",cx:i,cy:a,r:"5"}),h.createElement("polygon",{className:"link-triangle",points:K})),d!=null&&r&&h.createElement(h.Fragment,null,se&&h.createElement(W,{kind:"primary",className:"btn-fab btn-operator",style:{top:te+(k>=0?j:ae),left:ee+(k>=0?X:J)},onClick:()=>{},icon:h.createElement("div",{className:"fa-md fa-layers"},h.createElement("b",null,de),h.createElement(re,{icon:qn,transform:"right-8 down-9 shrink-5"})),tooltip:"Change comparison operator"},h.createElement(Jn,{actions:this.getDropdownActions,popperOptions:{placement:"bottom-start"}})),h.createElement(W,{kind:"primary",className:"btn-fab btn-delete",style:{top:te+(k<0?j:ae),left:ee+(k<0?X:J)},onClick:this.handleDelete,icon:Ar,tooltip:"Delete"})))}}ib(to,"defaultProps",{className:"",isSelected:!1,onClick(){},onDelete(){}});const Wk=to;function lf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function df(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lf(Object(t),!0).forEach(function(r){Dc(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):lf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Dc(n,e,t){return e=Gk(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Gk(n){var e=jk(n,"string");return typeof e=="symbol"?e:String(e)}function jk(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Iu=ie.module("LinkerOverlayContent");class sb extends E.Component{constructor(e){super(e),Dc(this,"dialogRef",void 0),this.handleBlur=this.handleBlur.bind(this),this.handleResize=this.handleResize.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleKeyUp=this.handleKeyUp.bind(this),this.handleEscapePressed=this.handleEscapePressed.bind(this),this.handleOperatorChanged=this.handleOperatorChanged.bind(this),this.dialogRef=h.createRef(),this.state={mouse:void 0,dialog:void 0,offset:{x:0,y:0},isDragging:!1,mode:"select"}}componentDidMount(){window.addEventListener("blur",this.handleBlur,!0),window.addEventListener("mousemove",this.handleMouseMove,!0),window.addEventListener("mouseup",this.handleMouseUp,!0),window.addEventListener("keydown",this.handleKeyDown,!0),window.addEventListener("keyup",this.handleKeyUp,!0),window.addEventListener("resize",this.handleResize,!0)}componentDidCatch(e,t){Iu.error("componentDidCatch",e,t)}componentWillUnmount(){window.removeEventListener("blur",this.handleBlur,!0),window.removeEventListener("mousemove",this.handleMouseMove,!0),window.removeEventListener("mouseup",this.handleMouseUp,!0),window.removeEventListener("keydown",this.handleKeyDown,!0),window.removeEventListener("keyup",this.handleKeyUp,!0),window.removeEventListener("resize",this.handleResize,!0)}getPointFromLinkPoint(e){var{panelManager:t}=this.props,{panelId:r,columnName:i}=e,a=t.getOpenedPanelById(r);if(a!=null){if(!nb(a))throw new Error("Panel does not have getCoordinateForColumn method: ".concat(r));try{var o=a.getCoordinateForColumn(i);if(o!=null)return o}catch{Iu.error("Could not get coordinate for column",i,a)}}var s=t.getContainerByPanelId(r);if(s==null)throw new Error("Unable to find panel container for id: ".concat(r));return q.getTabPoint(s)}handleOperatorChanged(e,t){var{links:r,onLinksUpdated:i}=this.props,a=r.map(o=>o.id===e?df(df({},o),{},{operator:t}):o);i(a)}handleBlur(){this.setState({mode:"select"})}handleResize(){var{dialog:e}=this.state;if(e&&this.dialogRef.current){var t=this.dialogRef.current.getBoundingClientRect(),r=je(e.x,0,window.innerWidth-t.width),i=je(e.y,0,window.innerHeight-t.height);this.setState({dialog:{x:r,y:i}})}}handleMouseMove(e){var{offset:t,isDragging:r}=this.state;if(this.setState({mouse:{x:e.clientX,y:e.clientY}}),r&&this.dialogRef.current){var i=this.dialogRef.current.getBoundingClientRect(),a=je(window.innerWidth-(e.clientX+i.width+t.x),0,window.innerWidth-i.width),o=je(window.innerHeight-(e.clientY+i.height+t.y),0,window.innerHeight-i.height);this.setState({dialog:{x:a,y:o}})}}handleMouseDown(e){var t={x:0,y:0};if(this.dialogRef.current){var r=this.dialogRef.current.getBoundingClientRect();t.x=r.right-(r.width+e.clientX),t.y=r.bottom-(r.height+e.clientY)}this.setState({isDragging:!0,offset:t})}handleMouseUp(){this.setState({isDragging:!1})}handleKeyDown(e){if(e.key==="Alt")e.preventDefault(),this.setState({mode:"delete"});else if(e.key==="Delete"||e.key==="Backspace"){var{selectedIds:t,onLinkDeleted:r}=this.props;e.preventDefault(),t.forEach(i=>r(i))}}handleKeyUp(e){e.key==="Alt"&&(e.preventDefault(),this.setState({mode:"select"}))}handleEscapePressed(){var{onCancel:e}=this.props;e()}render(){var{disabled:e,links:t,selectedIds:r,messageText:i,onLinkSelected:a,onLinkDeleted:o,onAllLinksDeleted:s,onDone:l}=this.props,{mouse:d,dialog:u,isDragging:c,mode:m}=this.state,v=t.map(g=>{try{var f,p,{id:C,type:b,isReversed:S,start:w,end:y,operator:T}=g,P=w.columnType,[D,O]=this.getPointFromLinkPoint(w),F=(f=d?.x)!==null&&f!==void 0?f:D,I=(p=d?.y)!==null&&p!==void 0?p:O;if(y!=null&&([F,I]=this.getPointFromLinkPoint(y)),S!=null&&S){var[_,M]=[D,O];[D,O]=[F,I],[F,I]=[_,M]}var V=Q("linker-link",{disabled:e},{"link-filter-source":b==="filterSource"},{"link-invalid":b==="invalid"},{interactive:g.end==null},{"link-is-selected":r.has(C)},{"danger-delete":m==="delete"});return{x1:D,y1:O,x2:F,y2:I,id:C,className:V,operator:T,startColumnType:P,type:b}}catch(H){return Iu.warn("Unable to get point for link",g,H),null}}).filter(g=>g!=null);return h.createElement("div",{className:Q("linker-overlay",{"danger-delete":m==="delete"})},v.map(g=>{var{x1:f,y1:p,x2:C,y2:b,id:S,className:w,operator:y,startColumnType:T,type:P}=g;return h.createElement(Wk,{className:w,id:S,x1:f,y1:p,x2:C,y2:b,key:S,onClick:a,onDelete:o,isSelected:r.has(S),operator:y,startColumnType:T,type:P,onOperatorChanged:this.handleOperatorChanged})}),h.createElement("div",{className:Q("linker-toast-dialog",{dragging:c}),ref:this.dialogRef,style:{bottom:u?.y,right:u?.x},"data-testid":"linker-toast-dialog"},h.createElement(W,{draggable:!0,kind:"inline",className:"btn-drag-handle",icon:nd,onClick:()=>{},onMouseDown:this.handleMouseDown},!c&&h.createElement(gt,null,"Drag to reposition")),h.createElement("div",{className:"toast-body"},i),h.createElement("div",{className:"toast-footer"},h.createElement(W,{kind:"secondary",onClick:s},"Clear All"),h.createElement(W,{kind:"primary",onClick:l},"Done"))),h.createElement(oe,{actions:[{action:this.handleEscapePressed,shortcut:ii.LINKER_CLOSE,isGlobal:!0}]}))}}Dc(sb,"defaultProps",{disabled:"false"});const zk=sb;function uf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function hf(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?uf(Object(t),!0).forEach(function(r){lb(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):uf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function lb(n,e,t){return e=Kk(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Kk(n){var e=Yk(n,"string");return typeof e=="symbol"?e:String(e)}function Yk(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var It=ie.module("Linker"),qk=(n,e)=>({activeTool:bd(n),dh:pd(n),isolatedLinkerPanelId:fc(n,e.localDashboardId),links:Eo(n,e.localDashboardId),timeZone:bs(n)}),Xk=Ht(qk,{setActiveTool:Ed,setDashboardLinks:Cc,addDashboardLinks:DL,deleteDashboardLinks:RL,setDashboardIsolatedLinkerPanelId:zC,setDashboardColumnSelectionValidator:NL});class Zk extends E.Component{constructor(e){super(e),lb(this,"getCachedLinks",fe((t,r,i)=>{var a=[...t];return r!=null&&r.start!=null&&a.push(r),i!==void 0?a.filter(o=>{var s,l;return(o==null||(s=o.start)===null||s===void 0?void 0:s.panelId)===i||(o==null||(l=o.end)===null||l===void 0?void 0:l.panelId)===i||o?.end==null}):a})),this.handleCancel=this.handleCancel.bind(this),this.handleDone=this.handleDone.bind(this),this.handlePanelCloned=this.handlePanelCloned.bind(this),this.handleFilterColumnSelect=this.handleFilterColumnSelect.bind(this),this.handleColumnsChanged=this.handleColumnsChanged.bind(this),this.handlePanelClosed=this.handlePanelClosed.bind(this),this.handleLayoutStateChanged=this.handleLayoutStateChanged.bind(this),this.handleAllLinksDeleted=this.handleAllLinksDeleted.bind(this),this.handleLinkDeleted=this.handleLinkDeleted.bind(this),this.handleLinksUpdated=this.handleLinksUpdated.bind(this),this.handleChartColumnSelect=this.handleChartColumnSelect.bind(this),this.handleGridColumnSelect=this.handleGridColumnSelect.bind(this),this.handleUpdateValues=this.handleUpdateValues.bind(this),this.handleStateChange=this.handleStateChange.bind(this),this.handleExited=this.handleExited.bind(this),this.handleLinkSelected=this.handleLinkSelected.bind(this),this.handlePanelDragging=this.handlePanelDragging.bind(this),this.handlePanelDropped=this.handlePanelDropped.bind(this),this.isColumnSelectionValid=this.isColumnSelectionValid.bind(this),this.state={linkInProgress:void 0,selectedIds:new Set,isDraggingPanel:!1}}componentDidMount(){var{layout:e}=this.props;this.startListening(e),this.updateSelectionValidators()}componentDidUpdate(e){var{activeTool:t,layout:r}=this.props;r!==e.layout&&(this.stopListening(e.layout),this.startListening(r)),t!==e.activeTool&&(this.updateSelectionValidators(),t===pr.DEFAULT&&this.reset())}componentDidCatch(e,t){It.error("componentDidCatch",e,t)}componentWillUnmount(){var{layout:e}=this.props;this.stopListening(e)}startListening(e){e.on("stateChanged",this.handleLayoutStateChanged);var{eventHub:t}=e;t.on(an.COLUMN_SELECTED,this.handleGridColumnSelect),t.on(an.DATA_SELECTED,this.handleUpdateValues),t.on(an.STATE_CHANGED,this.handleStateChange),t.on(Sh.COLUMN_SELECTED,this.handleChartColumnSelect),t.on(Ee.CLONED,this.handlePanelCloned),t.on(rt.COLUMN_SELECTED,this.handleFilterColumnSelect),t.on(rt.COLUMNS_CHANGED,this.handleColumnsChanged),t.on(Ee.CLOSE,this.handlePanelClosed),t.on(Ee.CLOSED,this.handlePanelClosed),t.on(Ee.DRAGGING,this.handlePanelDragging),t.on(Ee.DROPPED,this.handlePanelDropped)}stopListening(e){e.off("stateChanged",this.handleLayoutStateChanged);var{eventHub:t}=e;t.off(an.COLUMN_SELECTED,this.handleGridColumnSelect),t.off(an.DATA_SELECTED,this.handleUpdateValues),t.off(an.STATE_CHANGED,this.handleStateChange),t.off(Sh.COLUMN_SELECTED,this.handleChartColumnSelect),t.off(Ee.CLONED,this.handlePanelCloned),t.off(rt.COLUMN_SELECTED,this.handleFilterColumnSelect),t.off(rt.COLUMNS_CHANGED,this.handleColumnsChanged),t.off(Ee.CLOSE,this.handlePanelClosed),t.off(Ee.CLOSED,this.handlePanelClosed),t.off(Ee.DRAGGING,this.handlePanelDragging),t.off(Ee.DROPPED,this.handlePanelDropped)}reset(){this.setState({linkInProgress:void 0,selectedIds:new Set})}handleCancel(){var{linkInProgress:e}=this.state;if(e==null){var{setActiveTool:t}=this.props;t(pr.DEFAULT)}this.setState({linkInProgress:void 0})}handleDone(){var{setActiveTool:e}=this.props;e(pr.DEFAULT)}handleChartColumnSelect(e,t){this.columnSelected(e,t,!0)}handleFilterColumnSelect(e,t){It.debug("handleFilterColumnSelect",this.isOverlayShown());var{links:r,localDashboardId:i,setActiveTool:a,setDashboardIsolatedLinkerPanelId:o}=this.props,s=q.getIdFromPanel(e),l=r.filter(d=>{var u,c;return((u=d.start)===null||u===void 0?void 0:u.panelId)===s||((c=d.end)===null||c===void 0?void 0:c.panelId)===s});if(!this.isOverlayShown()&&s!=null){a(pr.LINKER),o(i,s),l.length===0&&this.columnSelected(e,t,!0,s);return}this.columnSelected(e,t,!0)}handleColumnsChanged(e,t){It.debug("handleColumnsChanged",e,t);var{links:r}=this.props,i=q.getIdFromPanel(e);if(i==null){It.error("Invalid panelId",e);return}var a=r.filter(o=>{var{start:s,end:l}=o;return s.panelId===i&&Wa.findColumn(t,s)==null||l!=null&&l.panelId===i&&Wa.findColumn(t,l)==null});this.deleteLinks(a)}handleGridColumnSelect(e,t){if(!tf(t)){It.debug2("Column is not filterable");return}this.columnSelected(e,t)}columnSelected(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3?arguments[3]:void 0;if(!(i===void 0&&!this.isOverlayShown())){var{isolatedLinkerPanelId:a}=this.props,{linkInProgress:o}=this.state,s=q.getIdFromPanel(e);if(s!=null){var l=q.getComponentNameFromPanel(e),{name:d,type:u}=t;if(o==null||o.start==null){var c={id:qe.generate(),start:{panelId:s,panelComponent:l,columnName:d,columnType:u},type:"invalid",isReversed:r};It.debug("starting link",c),this.setState({linkInProgress:c})}else{var{links:m}=this.props,{start:v,id:g,isReversed:f}=o,p={panelId:s,panelComponent:l,columnName:d,columnType:u},C=Wa.getLinkType(f!==void 0&&f?p:v,f!==void 0&&f?v:p,i??a);switch(C){case"invalid":It.debug("Ignore invalid link connection",o,p);return;case"filterSource":{var b=f!==void 0&&f?v.panelId:p.panelId,S=m.filter(D=>{var{end:O}=D;return O?.panelId===b});this.deleteLinks(S);break}case"chartLink":{var w=f===!0?v:p,y=f===!0?p:v;It.debug("creating chartlink",{existingLinkEnd:w,start:v,end:p});var T=m.filter(D=>{var{end:O,start:F}=D;return F?.panelId===y.panelId&&O?.panelId===w.panelId&&O?.columnName===w.columnName&&O?.columnType===w.columnType});this.deleteLinks(T);break}}var P={start:f!==void 0&&f?p:v,end:f!==void 0&&f?v:p,id:g,type:C,operator:ge.eq};It.info("creating link",P),this.setState({linkInProgress:void 0,selectedIds:new Set([g])},()=>{this.addLinks([P])})}}}}unsetFilterValueForLink(e){var{panelManager:t}=this.props;if(e.end){var{end:r}=e,{panelId:i,columnName:a,columnType:o}=r,s=t.getOpenedPanelById(i);s?ef(s)?s.unsetFilterValue(a,o):It.debug("endPanel.unsetFilterValue not implemented",s):It.debug("endPanel no longer exists, ignoring unsetFilterValue",i)}}setPanelFilterMap(e,t){It.debug("Set filter data for panel:",e,t);var{panelManager:r}=this.props,i=r.getOpenedPanelById(e);i?ef(i)?i.setFilterMap(t):It.debug("panel.setFilterMap not implemented",e,i):It.debug("panel no longer exists, ignoring setFilterMap",e)}addLinks(e){var{addDashboardLinks:t,localDashboardId:r}=this.props;t(r,e)}deleteLinks(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,{localDashboardId:r}=this.props;if(e.forEach(o=>this.unsetFilterValueForLink(o)),t){var{setDashboardLinks:i}=this.props;i(r,[])}else if(e.length>0){var{deleteDashboardLinks:a}=this.props;a(r,e.map(o=>{var{id:s}=o;return s}))}}handleAllLinksDeleted(){var{links:e,isolatedLinkerPanelId:t}=this.props;if(t===void 0)this.deleteLinks(e,!0);else{var r=e.filter(i=>{var a,o;return(i==null||(a=i.start)===null||a===void 0?void 0:a.panelId)===t||(i==null||(o=i.end)===null||o===void 0?void 0:o.panelId)===t});this.deleteLinks(r)}this.reset()}handleLinkDeleted(e){var{links:t}=this.props,r=t.find(i=>i.id===e);r?this.deleteLinks([r]):It.error("Unable to find link to delete",e)}handleUpdateValues(e,t){for(var r=q.getIdFromPanel(e),{dh:i,links:a,timeZone:o}=this.props,s=new Map,l=0;l<a.length;l+=1){var{start:d,end:u,operator:c}=a[l];if(d.panelId===r&&u!=null){var{panelId:m,columnName:v,columnType:g}=u,f=s.has(m)?s.get(m):new Map,p=f.has(v)===!0?f.get(v).filterList:[],{visibleIndex:C,isExpandable:b,isGrouped:S}=t[d.columnName],{value:w}=t[d.columnName],y="".concat(w);if(w===null&&b&&S&&(w=void 0),g!=null&&x.isDateType(g)){var T=new yt(i,{timeZone:o,showTimeZone:!1,showTSeparator:!0,defaultDateTimeFormatString:Ea.FULL_DATE_FORMAT});y=T.format(w)}var P={operator:c,text:y,value:w,startColumnIndex:C};p.push(P),f.set(v,{columnType:g,filterList:p}),s.set(m,f)}}s.forEach((D,O)=>{this.setPanelFilterMap(O,D)})}handlePanelCloned(e,t){var{links:r}=this.props,i=q.getIdFromPanel(e),a=t.id;if(i!=null){var o=Wa.cloneLinksForPanel(r,i,a);this.addLinks(o)}}handlePanelDragging(e){for(var{links:t}=this.props,r=0;r<t.length;r+=1){var i=t[r],{start:a,end:o}=i;if(a.panelId===e||o?.panelId===e){this.setState({isDraggingPanel:!0});return}}}handlePanelDropped(){this.setState({isDraggingPanel:!1})}handlePanelClosed(e){It.debug("Panel ".concat(e," closed, deleting links.")),this.deleteLinksForPanelId(e)}handleLinkSelected(e){this.setState({selectedIds:new Set([e])})}handleLinksUpdated(e){var{localDashboardId:t,setDashboardLinks:r}=this.props;r(t,e)}handleLayoutStateChanged(){this.forceUpdate()}handleStateChange(){this.forceUpdate()}handleExited(){var{localDashboardId:e,setDashboardIsolatedLinkerPanelId:t}=this.props;t(e,void 0)}deleteLinksForPanelId(e){for(var{links:t}=this.props,r=0;r<t.length;r+=1){var i=t[r],{start:a,end:o,id:s}=i;(a.panelId===e||o?.panelId===e)&&this.handleLinkDeleted(s)}}isOverlayShown(){var{activeTool:e}=this.props;return e===pr.LINKER}updateSelectionValidators(){var{activeTool:e,setDashboardColumnSelectionValidator:t,localDashboardId:r}=this.props;switch(e){case pr.LINKER:t(r,this.isColumnSelectionValid);break;default:t(r,void 0);break}}updateLinkInProgressType(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"invalid";this.setState(t=>{var{linkInProgress:r}=t;return r!==void 0?{linkInProgress:hf(hf({},r),{},{type:e})}:null})}isColumnSelectionValid(e,t){var{linkInProgress:r}=this.state,{isolatedLinkerPanelId:i}=this.props;if(t==null)return r?.start!=null&&this.updateLinkInProgressType(),!1;if(!tf(t))return It.debug2("Column is not filterable",t.description),r?.start!=null&&this.updateLinkInProgressType("invalid"),!1;if(r?.start==null)return!0;var{isReversed:a,start:o}=r,s=q.getIdFromPanel(e);if(s==null)return!1;var l={panelId:s,panelComponent:q.getComponentNameFromPanel(e),columnName:t.name,columnType:t.type},d=a!==void 0&&a?Wa.getLinkType(l,o,i):Wa.getLinkType(o,l,i);return this.updateLinkInProgressType(d),d!=="invalid"}render(){var{links:e,isolatedLinkerPanelId:t,panelManager:r}=this.props,{linkInProgress:i,selectedIds:a,isDraggingPanel:o}=this.state,s=this.isOverlayShown(),l=i!=null&&i.start!=null,d=t===void 0?"Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.":"Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.";return o?null:h.createElement(_r,{in:s,timeout:Qe.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,onExited:this.handleExited},h.createElement(zk,{disabled:l,panelManager:r,links:this.getCachedLinks(e,i,t),selectedIds:a,messageText:d,onLinkSelected:this.handleLinkSelected,onLinkDeleted:this.handleLinkDeleted,onAllLinksDeleted:this.handleAllLinksDeleted,onLinksUpdated:this.handleLinksUpdated,onDone:this.handleDone,onCancel:this.handleCancel}))}}var Qk=Xk(Zk);const Jk=Qk;function ex(n){Zi(n);var{id:e,layout:t,panelManager:r}=n;return h.createElement(Jk,{layout:t,localDashboardId:e,panelManager:r})}function db(n,e,t){return e=tx(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function tx(n){var e=rx(n,"string");return typeof e=="symbol"?e:String(e)}function rx(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class mo{static getNewMarkdownTitle(e){for(var t="".concat(mo.DEFAULT_TITLE),r=0;e.indexOf(t)>=0;)r+=1,t="".concat(mo.DEFAULT_TITLE,"-").concat(r);return t}}db(mo,"DEFAULT_TITLE","Note");db(mo,"DEFAULT_CONTENT",`# Markdown Note
36
36
 
37
- This note can be edited using **markdown** for styling.`);const _u=mo;function nx(n){Zi(n);var{id:e,layout:t,panelManager:r,registerComponent:i}=n,a=E.useCallback(s=>{var{title:l,componentState:d,props:u}=s,{panelState:c=null}=u;return d!=null&&({panelState:c=null}=d),l==null||c==null||c.content==null||c.content.length===0||c.content===_u.DEFAULT_CONTENT?null:Qh(s)},[]),o=E.useCallback(function(){var{title:s="",metadata:l={},id:d=qe.generate(),focusElement:u=q.DEFAULT_FOCUS_SELECTOR,createNewStack:c=!1,dragEvent:m=null}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=r.getOpenedPanelConfigsOfType(Ho.COMPONENT),g=r.getClosedPanelConfigsOfType(Ho.COMPONENT),f=v.map(w=>{var y;return(y=w.title)!==null&&y!==void 0?y:""}),p=s!=null&&s!==""?s:_u.getNewMarkdownTitle(f),C=g.length>0?null:_u.DEFAULT_CONTENT,b={type:"react-component",component:Ho.COMPONENT,props:{id:d,metadata:l,panelState:{content:C},localDashboardId:e},title:p,id:d},{root:S}=t;q.openComponent({root:S,config:b,focusElement:u,createNewStack:c,dragEvent:m})},[e,t,r]);return E.useEffect(function(){var l=[i(Ho.COMPONENT,Ho,Jh,a)];return()=>{l.forEach(d=>d())}},[a,i]),Ge(t.eventHub,xC.OPEN,o),null}function ix(n){Zi(n);var{hydrate:e,id:t,layout:r,registerComponent:i}=n,a=ya(),o=E.useCallback(s=>{var{dragEvent:l,fetch:d,panelId:u=qe.generate(),widget:c}=s,{name:m,type:v}=c;if(v===a.VariableType.PANDAS){var g={name:m,table:m},f=()=>d().then(b=>hc.makeModel(a,b)),p={type:"react-component",component:Fu.COMPONENT,props:{localDashboardId:t,id:u,metadata:g,makeModel:f},title:m,id:u},{root:C}=r;q.openComponent({root:C,config:p,dragEvent:l})}},[a,t,r]);return E.useEffect(function(){var l=[i(Fu.COMPONENT,Fu,e)];return()=>{l.forEach(d=>d())}},[e,i]),Ge(r.eventHub,Ee.OPEN,o),null}function Ld(n,e,t){return e=ax(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ax(n){var e=ox(n,"string");return typeof e=="symbol"?e:String(e)}function ox(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class Ds{}Ld(Ds,"DROPDOWN_FILTER","ControlType.DROPDOWN_FILTER");Ld(Ds,"INPUT_FILTER","ControlType.INPUT_FILTER");Ld(Ds,"MARKDOWN","ControlType.MARKDOWN");Ld(Ds,"FILTER_SET_MANAGER","ControlType.FILTER_SET_MANAGER");const Vi=Ds;class cf{static makeSortConfig(e,t){return{column:e,direction:t}}static makeFilterConfig(e){var t=[],r=[];return e.forEach((i,a)=>{t.push(i),a>0&&r.push(Kn.and)}),{filterItems:t,filterOperators:r}}static combineFilterConfigs(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Kn.and;return{filterItems:[...e.filterItems,...t.filterItems],filterOperators:[...e.filterOperators,r,...t.filterOperators]}}static makeFilterItem(e,t,r){return{columnName:e,type:t,value:r}}}function sx(n,e,t){if(n.length>e){var r=n.length-t;return{toKeep:n.slice(r),toPrune:n.slice(0,r)}}return{toKeep:n,toPrune:[]}}function mf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function vf(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?mf(Object(t),!0).forEach(function(r){yr(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):mf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function gf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function Vn(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){gf(a,r,i,o,s,"next",l)}function s(l){gf(a,r,i,o,s,"throw",l)}o(void 0)})}}function yr(n,e,t){return e=lx(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lx(n){var e=dx(n,"string");return typeof e=="symbol"?e:String(e)}function dx(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Mu=ie.module("PouchStorageTable"),ux="Deephaven.";If.plugin(oS);function hx(n,e){switch(n){case ge.in:case ge.contains:return{$regex:new RegExp("".concat(e))};case ge.inIgnoreCase:return{$regex:new RegExp("".concat(e),"i")};case ge.eq:return{$eq:e};case ge.notEq:return{$neq:e};case ge.greaterThan:return{$gt:e};case ge.greaterThanOrEqualTo:return{$gte:e};case ge.lessThan:return{$lt:e};case ge.lessThanOrEqualTo:return{$lte:e};case ge.startsWith:return{$regex:new RegExp("^(?".concat(e,").*"))};default:throw new Error("Unsupported type: ".concat(n))}}function cx(n){for(var{filterItems:e,filterOperators:t}=n,r=null,i=0;i<e.length;i+=1){var a=e[i],{columnName:o,type:s,value:l}=a,d={[o]:hx(s,l)};if(i===0)r=d;else if(r!==null&&i-1<t.length){var u=t[i-1];if(u===Kn.and)r={$and:[r,d]};else if(u===Kn.or)r={$or:[r,d]};else throw new Error("Unexpected filter operator ".concat(u,", ").concat(d))}}if(r==null)throw new Error("Invalid filter config ".concat(n));return r}function Au(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return{$and:[...n.map(e=>cx(e)),{name:{$gt:null}},{id:{$gt:null}}]}}function mx(n){var e,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return[{id:t?"desc":"asc"},...(e=n?.map(r=>({[r.column]:r.direction})))!==null&&e!==void 0?e:[]]}class vx{constructor(e,t){yr(this,"db",void 0),yr(this,"changes",void 0),yr(this,"listeners",[]),yr(this,"itemListeners",new Map),yr(this,"currentSize",0),yr(this,"currentViewport",void 0),yr(this,"currentReverse",!1),yr(this,"currentFilter",null),yr(this,"currentSort",null),yr(this,"infoUpdatePromise",void 0),yr(this,"viewportUpdatePromise",void 0),yr(this,"currentViewportData",void 0),this.db=new If("".concat(ux).concat(e),t),this.db._remote=!1,this.listenForChanges(),this.db.createIndex({index:{fields:["id","name"]}}),this.refreshInfo()}listenForChanges(){this.changes=this.db.changes({live:!0,since:"now",include_docs:!0}).on("change",this.dbUpdate.bind(this))}onUpdate(e){return this.listeners=[...this.listeners,e],()=>{this.listeners=this.listeners.filter(t=>t!==e)}}onItemUpdate(e,t){return this.itemListeners.has(e)||this.itemListeners.set(e,[]),this.itemListeners.set(e,[...this.itemListeners.get(e),t]),this.refreshItem(e),()=>{this.itemListeners.set(e,this.itemListeners.get(e).filter(r=>r!==t))}}close(){this.listeners=[]}get size(){return this.currentSize}get viewport(){return this.currentViewport}setReversed(e){this.currentReverse=e,this.currentViewportData=void 0,this.refreshData()}setViewport(e){this.currentViewport=e,this.refreshInfo(),this.refreshData()}setSorts(e){this.currentSort=e,this.currentViewportData=void 0,this.refreshData()}setFilters(e){this.currentFilter=e,this.currentViewportData=void 0,this.refreshInfo(),this.refreshData()}get data(){return this.currentViewportData}getViewportData(){var e=this;return Vn(function*(){var t;return e.viewportUpdatePromise||e.refreshData(),(t=e.viewportUpdatePromise)!==null&&t!==void 0?t:Promise.resolve({items:[],offset:0})})()}put(e){var t=this;return Vn(function*(){var r=vf(vf({},e),{},{_id:e.id});return yield t.db.put(r),r})()}sendUpdate(){for(var e,{listeners:t}=this,r=(e=this.currentViewportData)!==null&&e!==void 0?e:{items:[],offset:0},i=0;i<t.length;i+=1)t[i](r)}sendItemUpdate(e){var t=this.itemListeners.get(e.id);if(t!==void 0)for(var r=0;r<t.length;r+=1)t[r](e)}dbUpdate(e){Mu.debug("Update received",e),this.refreshInfo(),e.doc!==void 0&&this.sendItemUpdate(e.doc),this.refreshData()}fetchInfo(e){var t=this;return Vn(function*(){return t.db.find({selector:e,fields:[]})})()}refreshInfo(){var e=this;return Vn(function*(){try{var t,r;(t=e.infoUpdatePromise)===null||t===void 0||t.cancel(),e.infoUpdatePromise=ye.makeCancelable(e.fetchInfo(Au((r=e.currentFilter)!==null&&r!==void 0?r:[])));var i=yield e.infoUpdatePromise;e.currentSize=i.docs.length,e.sendUpdate()}catch(a){if(!ye.isCanceled(a))throw Mu.error("Unable to refreshInfo",a),a}})()}fetchViewportData(e,t,r){var i=this;return Vn(function*(){return i.db.find({selector:t,skip:e.top,limit:e.bottom-e.top+1,sort:r,fields:["id","name"]}).then(a=>({items:a.docs,offset:e.top}))})()}refreshData(){var e=this;return Vn(function*(){if(e.currentViewport)try{var t,r,i=Au((t=e.currentFilter)!==null&&t!==void 0?t:[]),a=mx(e.currentSort,e.currentReverse);(r=e.viewportUpdatePromise)===null||r===void 0||r.cancel(),e.viewportUpdatePromise=ye.makeCancelable(e.fetchViewportData(e.currentViewport,i,a));var o=yield e.viewportUpdatePromise;return e.currentViewportData=o,e.sendUpdate(),o}catch(s){if(!ye.isCanceled(s))throw Mu.error("Unable to refreshData",s),s}})()}refreshItem(e){var t=this;return Vn(function*(){var r=yield t.db.find({selector:{id:e},limit:1}),i=r.docs[0];return i!==void 0&&t.sendItemUpdate(i),i})()}getSnapshot(e){var t=this;return Vn(function*(){var r=new Map,i=[{id:t.currentReverse?"desc":"asc"}];return yield Promise.all(e.map(function(){var a=Vn(function*(o){var s,[l,d]=o,u=d-l+1;return t.db.find({selector:Au((s=t.currentFilter)!==null&&s!==void 0?s:[]),skip:l,limit:u,sort:i,fields:["id","name"]}).then(c=>{for(var m=0;m<u;m+=1){var v=l+m;r.set(v,c.docs[m])}})});return function(o){return a.apply(this,arguments)}}())),r})()}}const gx=vx;function ff(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function gl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ff(Object(t),!0).forEach(function(r){ub(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ff(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function pf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function Bo(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){pf(a,r,i,o,s,"next",l)}function s(l){pf(a,r,i,o,s,"throw",l)}o(void 0)})}}function ub(n,e,t){return e=fx(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function fx(n){var e=px(n,"string");return typeof e=="symbol"?e:String(e)}function px(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Cx=2500,bx=2e3,Ur=ie.module("PouchCommandHistoryTable");class Sx extends gx{constructor(e,t){var r;super("CommandHistoryStorage.".concat(e),{auto_compaction:!0,revs_limit:1}),ub(this,"searchText",void 0),this.cache=t,this.cache.tableRegistry.has(this.cacheKey)||this.cache.tableRegistry.set(this.cacheKey,new Set),Ur.debug("Adding table to registry",this.cacheKey),(r=this.cache.tableRegistry.get(this.cacheKey))===null||r===void 0||r.add(this)}get cacheKey(){return this.db.name}setSearch(e){Ur.debug("Setting search filters",e),this.searchText=e.trim().toLowerCase(),this.setFilters(e?[cf.makeFilterConfig([cf.makeFilterItem("name",ge.contains,e)])]:[])}dbUpdate(e){Ur.debug("Clearing cache and refreshing data",e),this.cache.response.delete(this.cacheKey),super.dbUpdate(e)}fetchData(e){var t=this;return Bo(function*(){return ye.withTimeout(0,Bo(function*(){t.cache.response.has(t.cacheKey)?Ur.debug("Fetching from cache",t.searchText,t.viewport):(Ur.debug("Fetching from PouchDB",t.searchText,t.viewport),t.cache.response.set(t.cacheKey,t.db.allDocs({include_docs:!0}).then(i=>{var a=i.rows.map(l=>l.doc).filter(l=>{var{name:d}=l;return d});Ur.debug("Fetched ".concat(a.length," command history items"));var{toKeep:o,toPrune:s}=sx(a,Cx,bx);return s.length&&t.pruneItems(s),{docs:o}})));var r=t.cache.response.get(t.cacheKey);return t.searchText==null||t.searchText===""?r:gl(gl({},r),{},{docs:(yield r).docs.filter(i=>{var{name:a}=i;return a.toLowerCase().includes(t.searchText)})})}))})()}fetchInfo(e){var t=this;return Bo(function*(){return t.fetchData(e)})()}fetchViewportData(e,t,r){var i=this;return Bo(function*(){var a=yield i.fetchData(t);Ur.debug("Fetching viewport data",e.top,e.bottom+1,r,a);var o=typeof r[0]=="object"&&r[0].id==="desc",s=o?a.docs.slice(0).reverse():a.docs,l=s.slice(e.top,e.bottom+1);return{items:l,offset:e.top}})()}pruneItems(e){var t=this;return Bo(function*(){if(t.cache.isPruning.get(t.cacheKey)===!0){Ur.debug("Pruning already in progress. Skipping.");return}try{Ur.debug("Pruning ".concat(e.length," command history items"));var r=t.cache.pauseChangeListeners(t.cacheKey);t.cache.isPruning.set(t.cacheKey,!0),yield t.db.bulkDocs(e.map(i=>gl(gl({},i),{},{_deleted:!0}))),t.cache.isPruning.set(t.cacheKey,!1),r(),Ur.debug("Finished pruning command history items")}catch(i){Ur.error("An error occurred while pruning db",i)}})()}close(){var e,t,r;Ur.debug("Closing table",this,(e=this.cache.tableRegistry.get(this.cacheKey))===null||e===void 0?void 0:e.size),(t=this.cache.tableRegistry.get(this.cacheKey))===null||t===void 0||t.delete(this),(r=this.changes)===null||r===void 0||r.cancel(),super.close()}}const Cf=Sx;function Lu(n,e,t){return e=Ex(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ex(n){var e=wx(n,"string");return typeof e=="symbol"?e:String(e)}function wx(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var bf=ie.module("PouchCommandHistoryCache");class yx{constructor(){Lu(this,"isPruning",void 0),Lu(this,"response",void 0),Lu(this,"tableRegistry",void 0),this.isPruning=new Map,this.response=new Map,this.tableRegistry=new Map}pauseChangeListeners(e){var t,r=[];return(t=this.tableRegistry.get(e))===null||t===void 0||t.forEach(i=>{i.changes&&(bf.debug("Pausing event listeners on '".concat(e,"' table"),i),i.changes.cancel(),r.push(i))}),()=>{r.forEach(i=>{var a,o;(a=(o=this.tableRegistry.get(e))===null||o===void 0?void 0:o.has(i))!==null&&a!==void 0&&a&&(bf.debug("Resuming event listeners on '".concat(e,"' table"),i),i.listenForChanges())})}}}const Tx=yx;function Sf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Ef(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Sf(Object(t),!0).forEach(function(r){yh(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Sf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function wf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function ku(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){wf(a,r,i,o,s,"next",l)}function s(l){wf(a,r,i,o,s,"throw",l)}o(void 0)})}}function yh(n,e,t){return e=Ox(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ox(n){var e=Px(n,"string");return typeof e=="symbol"?e:String(e)}function Px(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var yf=ie.module("PouchCommandHistoryStorage");class Dx{constructor(){yh(this,"cache",new Tx),yh(this,"updateTableMap",new Map)}getUpdateTable(e){return this.updateTableMap.has(e)||this.updateTableMap.set(e,new Cf(e,this.cache)),this.updateTableMap.get(e)}getTable(e){var t=this;return ku(function*(){return new Cf(e,t.cache)})()}addItem(e,t,r,i){var a=this;return ku(function*(){return a.updateItem(e,{id:"".concat(new Date().getTime()),name:r,data:i})})()}updateItem(e,t){var r=this;return ku(function*(){var i=r.getUpdateTable(e),a=yield i.refreshItem(t.id),o=Ef(Ef({},a??{}),t);return yf.debug("Updating item",o),yield i.put(o),yf.debug("Update saved"),t})()}listenItem(e,t,r){var i=this.getUpdateTable(e);return i.onItemUpdate(t,r)}}const hb="SET_LAYOUT_STORAGE",Rx=n=>({type:hb,payload:n});var{dh:Nx}=globalThis;const Tr=Nx,cb=""+new URL("community-wordmark-app-d2c5c1eb.svg",import.meta.url).href;const Fx=ie.module("SettingsUtils");function Ix(n){return n.formatString!=null}function Th(n){const e=n?.querySelector("input, select, textarea");e&&e.focus()}function mb(n,e){return n.defaultFormatString===e.defaultFormatString}function _x(n,e){return mb(n,e)}function Mx(n,e){return mb(n,e)}function vb(n){return n!==""&&fo.isValidColumnName(n)}function Wi(n,e,t){if(!e||t.formatString==null||!Ix(t))return!1;switch(e){case"datetime":return yt.isValid(n,t);case"decimal":return Je.isValid(n,t);case"int":return wt.isValid(n,t);default:return Fx.warn("Trying to validate format of unknown type"),!0}}function gb(n){const{id:e,isNewRule:t,...r}=n;return r}function fb(n,e){return vb(e.columnName)&&Wi(n,e.columnType,e.format)}function pb(n){const{timestamp:e,timeZone:t,showTimeZone:r,showTSeparator:i,isGlobalOptions:a,legacyGlobalFormat:o}=n,s=ya(),l=E.useMemo(()=>new un(s,[],{timeZone:t,showTimeZone:r,showTSeparator:i}),[s,r,i,t]),d=a?yt.getGlobalFormats(r,i):yt.getFormats(r,i);return o!=null&&!d.includes(o)&&d.unshift(o),R.jsx(R.Fragment,{children:d.map(u=>{const c=yt.makeFormat("",u,yt.TYPE_GLOBAL);return R.jsx("option",{value:u,"data-testid":"time-format",children:l.getFormattedString(e,x.dataType.DATETIME,"",c)},u)})})}function Ax(){return R.jsx(R.Fragment,{children:sd.TIME_ZONES.map(n=>{const{label:e,value:t}=n;return R.jsx("option",{value:t,children:e},t)})})}const la=ie.module("FormattingSectionContent");class Rc extends E.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:yt.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:Je.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:wt.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:yt.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=et(this.commitChanges.bind(this),Rc.inputDebounceTime),this.handleDefaultDateTimeFormatChange=this.handleDefaultDateTimeFormatChange.bind(this),this.handleDefaultDecimalFormatChange=this.handleDefaultDecimalFormatChange.bind(this),this.handleDefaultIntegerFormatChange=this.handleDefaultIntegerFormatChange.bind(this),this.handleShowTimeZoneChange=this.handleShowTimeZoneChange.bind(this),this.handleShowTSeparatorChange=this.handleShowTSeparatorChange.bind(this),this.handleTimeZoneChange=this.handleTimeZoneChange.bind(this),this.handleResetDateTimeFormat=this.handleResetDateTimeFormat.bind(this),this.handleResetDecimalFormat=this.handleResetDecimalFormat.bind(this),this.handleResetIntegerFormat=this.handleResetIntegerFormat.bind(this),this.handleResetTimeZone=this.handleResetTimeZone.bind(this),this.handleTruncateNumbersWithPoundChange=this.handleTruncateNumbersWithPoundChange.bind(this);const{formatter:t,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,showTimeZone:o,showTSeparator:s,timeZone:l,truncateNumbersWithPound:d}=e,u=t.map((c,m)=>({...c,id:m}));this.containerRef=h.createRef(),this.state={formatSettings:u,showTimeZone:o,showTSeparator:s,timeZone:l,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Th(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;getCachedDateTimeFormatOptions=Te((e,t,r,i=!1,a)=>{const{timestampAtMenuOpen:o}=this.state;return R.jsx(pb,{timestamp:o,timeZone:e,showTimeZone:t,showTSeparator:r,isGlobalOptions:i,legacyGlobalFormat:a})});handleDefaultDateTimeFormatChange(e){la.debug("handleDefaultDateTimeFormatChange",e.target.value),this.setState({defaultDateTimeFormat:e.target.value},()=>{this.debouncedCommitChanges()})}handleDefaultDecimalFormatChange(e){la.debug("handleDefaultDecimalFormatChange",e.target.value),this.setState({defaultDecimalFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleDefaultIntegerFormatChange(e){la.debug("handleDefaultIntegerFormatChange",e.target.value),this.setState({defaultIntegerFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleShowTimeZoneChange(){this.setState(e=>({showTimeZone:!e.showTimeZone}),()=>{this.debouncedCommitChanges()})}handleShowTSeparatorChange(){this.setState(e=>({showTSeparator:!e.showTSeparator}),()=>{this.debouncedCommitChanges()})}handleTimeZoneChange(e){this.setState({timeZone:e.target.value},()=>{this.debouncedCommitChanges()})}handleResetDateTimeFormat(){const{defaults:e}=this.props,{defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i}=e;la.debug("handleResetDateTimeFormat"),this.setState({defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i},()=>{this.debouncedCommitChanges()})}handleResetTimeZone(){const{defaults:e}=this.props,{timeZone:t}=e;la.debug("handleResetTimeZone"),this.setState({timeZone:t},()=>{this.debouncedCommitChanges()})}handleResetDecimalFormat(){const{defaults:e}=this.props,{defaultDecimalFormatOptions:t}=e;la.debug("handleResetDecimalFormat"),this.setState({defaultDecimalFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleResetIntegerFormat(){const{defaults:e}=this.props,{defaultIntegerFormatOptions:t}=e;la.debug("handleResetIntegerFormat"),this.setState({defaultIntegerFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleTruncateNumbersWithPoundChange(){this.setState(e=>({truncateNumbersWithPound:!e.truncateNumbersWithPound}),()=>{this.debouncedCommitChanges()})}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:s,truncateNumbersWithPound:l}=this.state,{dh:d}=this.props,u=e.filter(g=>fb(d,g)).map(gb)??[],{settings:c,saveSettings:m}=this.props,v={...c,formatter:u,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,truncateNumbersWithPound:l};Wi(d,x.dataType.DECIMAL,Je.makeCustomFormat(o.defaultFormatString))&&(v.defaultDecimalFormatOptions=o),Wi(d,x.dataType.INT,wt.makeCustomFormat(s.defaultFormatString))&&(v.defaultIntegerFormatOptions=s),m(v)}render(){const{defaults:e,dh:t}=this.props,{defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,timeZone:o,showTimeZone:s,showTSeparator:l,truncateNumbersWithPound:d}=this.state,{defaultFormatString:u=Je.DEFAULT_FORMAT_STRING}=i??{},{defaultFormatString:c=wt.DEFAULT_FORMAT_STRING}=a??{},m=o===e.timeZone,v=l===e.showTSeparator&&s===e.showTimeZone&&r===e.defaultDateTimeFormat,g=_x(i,e.defaultDecimalFormatOptions),f=Mx(a,e.defaultIntegerFormatOptions);return R.jsx("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:R.jsxs("div",{className:"container-fluid p-0",children:[R.jsx("div",{className:"app-settings-menu-description mb-3",children:"Choose the default formatting rule to apply to all table columns based on their type."}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"select-reset-timezone",children:"Time zone"}),R.jsx("div",{className:"col pr-0",children:R.jsx("select",{className:"custom-select",value:o,onChange:this.handleTimeZoneChange,id:"select-reset-timezone",children:R.jsx(Ax,{})})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetTimeZone,tooltip:"Reset Time Zone",className:Q("btn-reset","btn-reset-time-zone",{hidden:m})})})]}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"select-default-time-format",children:"DateTime"}),R.jsx("div",{className:"col pr-0",children:R.jsx("select",{className:"custom-select",value:r,onChange:this.handleDefaultDateTimeFormatChange,id:"select-default-time-format",children:this.getCachedDateTimeFormatOptions(o,s,l,!0,r)})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetDateTimeFormat,tooltip:"Reset DateTime Options",className:Q("btn-reset","btn-reset-date-time",{hidden:v})})})]}),R.jsx("div",{className:"form-row",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:s??null,onChange:this.handleShowTimeZoneChange,children:"Show time zone in dates"})})}),R.jsx("div",{className:"form-row mb-3",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:l??null,onChange:this.handleShowTSeparatorChange,children:"Show 'T' separator"})})}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"default-decimal-format-input",children:"Decimal"}),R.jsx("div",{className:"col pr-0",children:R.jsx("input",{className:Q("form-control","flex-grow-1","default-decimal-format-input",{"is-invalid":!Wi(t,x.dataType.DECIMAL,Je.makeCustomFormat(u))}),"data-lpignore":!0,placeholder:Je.DEFAULT_FORMAT_STRING,type:"text",id:"default-decimal-format-input",value:u,onChange:this.handleDefaultDecimalFormatChange})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetDecimalFormat,tooltip:"Reset Decimal Formatting",className:Q("btn-reset","btn-reset-decimal",{hidden:g}),"data-testid":"btn-reset-decimal"})})]}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"Integer"}),R.jsx("div",{className:"col pr-0",children:R.jsx("input",{className:Q("form-control","flex-grow-1","default-integer-format-input",{"is-invalid":!Wi(t,x.dataType.INT,wt.makeCustomFormat(c))}),"data-lpignore":!0,placeholder:wt.DEFAULT_FORMAT_STRING,type:"text",id:"default-integer-format-input",value:c,onChange:this.handleDefaultIntegerFormatChange})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetIntegerFormat,tooltip:"Reset Integer Formatting",className:Q("btn-reset","btn-reset-integer",{hidden:f}),"data-testid":"btn-reset-integer"})})]}),R.jsx("div",{className:"form-row mb-3",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:d??null,onChange:this.handleTruncateNumbersWithPoundChange,children:"Truncate numbers with #"})})})]})})}}const Lx=n=>({formatter:Sp(n),defaultDateTimeFormat:pp(n),defaultDecimalFormatOptions:Cp(n),defaultIntegerFormatOptions:bp(n),dh:pd(n),showTimeZone:Ep(n),showTSeparator:wp(n),truncateNumbersWithPound:yp(n),timeZone:bs(n),settings:Ut(n)}),kx=Ht(Lx,{saveSettings:Sd})(Rc);function xx(){const[n,e]=E.useState(!1),t=()=>{e(!n)};return R.jsxs(W,{kind:"ghost",onClick:t,icon:dE,children:["Legal Notices",R.jsxs(id,{isOpen:n,toggle:t,className:"theme-bg-light",children:[R.jsx(ad,{toggle:t,children:"Legal Notice"}),R.jsxs(od,{children:[R.jsx("p",{children:"Deephaven software is protected by U.S. Patent Nos. 9,612,959; 9,613,018; 9,613,109; 9,619,210; 9,633,060; 9,639,570; 9,672,238; 9,679,006; 9,690,821; 9,710,511; 9,760,591; 9,805,084; 9,836,494; 9,836,495; 9,886,469; 9,898,496; 9,934,266; 10,002,153; 10,002,154; 10,002,155; 10,003,673; 10,019,138; 10,069,943; 10,176,211; 10,198,465; 10,198,466; 10,198,469; 10,212,257; 10,241,960; 10,241,965; 10,242,040; 10,242,041; 10,346,394; 10,353,893; 10,452,649; 10,496,639; 10,540,351; 10,552,412; 10,565,194; 10,565,206; 10,572,474; 10,621,168; 10,642,829; 10,657,184; 10,678,787; 10,691,686; 10,783,191; 10,866,943; 10,909,183; 10,915,526; 10,922,311; 10,929,394; 11,023,462; 11,126,662; 11,151,133; 11,238,036; 11,249,994; 11,263,211; 11,449,557; 11,514,037; 11,556,528; and 11,574,018. Other patents pending."}),R.jsxs("p",{children:["© 2016-",new Date().getFullYear()," Deephaven Data Labs LLC. Patent Pending."]})]})]})]})}function is(n){const{children:e,isExpanded:t,sectionKey:r,title:i,onToggle:a}=n;return R.jsxs(R.Fragment,{children:[R.jsx("div",{children:R.jsxs(W,{kind:"ghost",className:"btn-collapse-trigger",onClick:()=>a(r),children:[R.jsx("div",{className:"flex-grow-1",children:i}),R.jsx("div",{className:"flex-shrink-0",children:R.jsx(re,{transform:t?"flip-v":"",icon:qn})})]})}),R.jsx(FE,{in:t,autoFocusOnShow:!0,children:e})]})}is.propTypes={children:Y.node,isExpanded:Y.bool.isRequired,sectionKey:Y.string.isRequired,title:Y.node.isRequired,onToggle:Y.func};is.defaultProps={children:null,onToggle:()=>{}};function Hx({shortcut:n,displayText:e,categoryName:t,onChange:r}){const[i,a]=E.useState(e),[o,s]=E.useState(n.getKeyState()),[l,d]=E.useState(!1),[u,c]=E.useState("");E.useEffect(function(){a(e),s(n.getKeyState())},[e,n]),E.useEffect(function(){a(Jr.getDisplayText(o)),n.matchesKeyState(o)&&d(!1)},[o,n]),E.useEffect(function(){if(l){if(!Jr.isValidKeyState(o)){Jr.isAllowedKey(o.keyValue)?c("Must contain a modifier key"):c("Must contain an allowed action key");return}const w=Ye.getConflictingShortcuts(o).filter(y=>y.id.startsWith(t)&&y!==n).map(y=>y.name);if(w.length){c(`Conflicts with ${w.join(", ")}`);return}c("")}else c("")},[l,o,t,n]);function m(S){if(S.stopPropagation(),S.preventDefault(),n.isEditable&&!S.repeat){const w=Jr.getKeyStateFromEvent(S),y=Jr.createKeyState([Oe.BACKSPACE]);Jr.doKeyStatesMatch(w,y)?s(Jr.NULL_KEY_STATE):s(w)}}function v(S){S.stopPropagation(),S.preventDefault(),n.matchesKeyState(o)||d(!0)}function g(){Ki.disableAllActions()}function f(){Ki.enableAllActions()}function p(){n.setKeyState(o),d(!1),r(n)}function C(){const S=n.getKeyState();s(S),d(!1)}function b(){d(!0),s(n.getDefaultKeyState())}return R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"shortcut-item-container",children:[R.jsxs("label",{className:"shortcut-item-name",children:[n.name,n.tooltip!==void 0&&R.jsx(gt,{children:n.tooltip})]}),R.jsxs("div",{className:"shortcut-item-input-container",children:[R.jsx("input",{className:Q("form-control",{"is-invalid":u}),onKeyDown:m,onKeyUp:v,onFocus:g,onBlur:f,disabled:!n.isEditable,value:i,readOnly:!0}),!Jr.doKeyStatesMatch(o,n.getDefaultKeyState())&&!u&&R.jsx(W,{className:"reset-to-default-button",kind:"ghost",icon:R.jsx(re,{icon:ca,transform:{rotate:90,flipX:!0}}),tooltip:"Reset to default",onClick:b})]})]}),l&&R.jsxs("div",{className:Q("shortcut-item-message-container",{"is-invalid":u}),children:[R.jsx("div",{className:"shortcut-item-message",children:u}),R.jsxs("div",{className:"shortcut-item-message-buttons",children:[Jr.isValidKeyState(o)&&R.jsx(W,{kind:"ghost",onClick:p,children:"Confirm"}),R.jsx(W,{kind:"ghost",onClick:C,children:"Undo"})]})]})]})}function Ux({shortcutOverrides:n={},settings:e,saveSettings:t}){const r=E.useCallback(s=>{const l=Jr.isMacPlatform,d={mac:{...n.mac},windows:{...n.windows}},u=l?d.mac:d.windows;s.forEach(c=>{c.isDefault()?delete u[c.id]:u[c.id]=c.getKeyState()}),t({...e,shortcutOverrides:d})},[e,t,n]);let i=Array.from(Ye.shortcutsByCategory.entries()).map(([s,l])=>({name:s,shortcuts:l}));const a=i.findIndex(s=>s.name.toUpperCase()==="GLOBAL"),o=i.splice(a,1);return i=i.concat(o),R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"app-settings-menu-description",children:"Customize shortcuts below. To prevent unexpected results, avoid conflicting shortcuts with the browser or IDE editor."}),i.map(s=>R.jsx($x,{name:s.name,shortcuts:s.shortcuts,saveShortcutOverrides:r},s.name))]})}function $x({name:n,shortcuts:e,saveShortcutOverrides:t}){function r(l){return l.split("_").map(d=>`${d[0].toUpperCase()}${d.slice(1).toLowerCase()}`).join(" ")}const[i,a]=E.useState(e);function o(l){const d=i.filter(c=>c!==l&&!c.isNull()&&c.matchesKeyState(l.getKeyState()));d.forEach(c=>c.setToNull());const u=[l,...d];t(u),a(c=>[...c])}const s=E.useMemo(()=>i.map(l=>l.getDisplayText()),[i]);return R.jsxs("div",{className:"mt-3",children:[R.jsx("div",{className:"font-weight-bold",children:r(n)}),i.map((l,d)=>R.jsx(Hx,{shortcut:l,displayText:s[d],categoryName:n,onChange:o},l.id))]})}const Bx=n=>({settings:Ut(n),shortcutOverrides:Q0(n)}),Vx={saveSettings:Sd},Wx=Ht(Bx,Vx)(Ux),Gx="yyyy-MM-dd-HHmmss";function Cb(n,e="root",t=new Map([[n,""]])){const r={};return Object.entries(n).forEach(([i,a])=>{try{JSON.stringify(a),r[i]=a}catch{const s=a;if(typeof a=="bigint")r[i]=a.toString();else if(t.has(s))r[i]=`Circular ref to ${t.get(s)}`;else{const l=`${e}.${i}`;t.set(s,l),r[i]=Cb(a,l,t)}}}),r}function jx(){const n=Gh.getState();return JSON.stringify(Cb(n),null,2)}function zx(n){const e={uiVersion:"0.41.4",userAgent:navigator.userAgent,...n};return JSON.stringify(e,null,2)}async function Kx(n=`${Tr.i18n.DateTimeFormat.format(Gx,new Date)}_support_logs`,e){const t=new _f,r=t.folder(n);r.file("console.txt",uE.getFormattedHistory()),r.file("redux.json",jx()),r.file("metadata.json",zx(e));const i=await t.generateAsync({type:"blob"}),a=document.createElement("a");a.href=URL.createObjectURL(i),a.download=`${n}.zip`,a.click()}const Yx=[{value:x.dataType.DATETIME,label:"DateTime"},{value:x.dataType.DECIMAL,label:"Decimal"},{value:x.dataType.INT,label:"Integer"}];function qx(){const n=Yx.map(e=>R.jsx("option",{value:e.value,children:e.label},`key-columnType-${e.value}`));return R.jsxs(R.Fragment,{children:[R.jsx("option",{disabled:!0,value:"",children:"Select Type"},"key-columnType-placeholder"),n]})}class Nc extends E.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:yt.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:Je.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:wt.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:yt.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=et(this.commitChanges.bind(this),Nc.inputDebounceTime),this.handleFormatRuleEntered=this.handleFormatRuleEntered.bind(this),this.handleFormatRuleChange=this.handleFormatRuleChange.bind(this),this.handleFormatRuleCreate=this.handleFormatRuleCreate.bind(this),this.handleFormatRuleDelete=this.handleFormatRuleDelete.bind(this);const{formatter:t,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,showTimeZone:o,showTSeparator:s,timeZone:l,truncateNumbersWithPound:d}=e,u=t.map((c,m)=>({...c,id:m}));this.containerRef=h.createRef(),this.addFormatRuleButtonRef=h.createRef(),this.lastFormatRuleIndex=u.length,this.state={formatSettings:u,formatRulesChanged:!1,showTimeZone:o,showTSeparator:s,timeZone:l,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Th(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;addFormatRuleButtonRef;lastFormatRuleIndex;isDuplicateRule(e){const{formatSettings:t}=this.state;return t.some(r=>r.id!==e.id&&r.columnName===e.columnName&&r.columnType===e.columnType)??!1}getAutoIncrementFormatRuleIndex(){const{lastFormatRuleIndex:e}=this;return this.lastFormatRuleIndex+=1,e}getCachedColumnTypeOptions=Te(()=>R.jsx(qx,{}));getCachedDateTimeFormatOptions=Te((e,t,r,i=!1,a)=>{const{timestampAtMenuOpen:o}=this.state;return R.jsx(pb,{timestamp:o,timeZone:e,showTimeZone:t,showTSeparator:r,isGlobalOptions:i,legacyGlobalFormat:a})});handleFormatRuleChange(e,t,r){this.setState(i=>{const{formatSettings:a}=i;L(a);const o=[...a];let s={};t==="columnType"&&(s={format:""});const l={...o[e],...s,[t]:r};return o[e]=l,{formatSettings:o}},()=>{this.debouncedCommitChanges()})}handleFormatRuleCreate(){this.setState(e=>{const{formatSettings:t}=e,r={columnType:x.dataType.DATETIME,columnName:"",format:{},id:this.getAutoIncrementFormatRuleIndex(),isNewRule:!0};return{formatSettings:[...t,r],formatRulesChanged:!0}})}handleFormatRuleDelete(e){this.setState(t=>{const{formatSettings:r}=t;return{formatSettings:r.filter((a,o)=>o!==e),formatRulesChanged:!0}},()=>{this.debouncedCommitChanges()})}handleFormatRuleEntered(e){this.scrollToFormatBlockBottom(),Th(e)}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:s,truncateNumbersWithPound:l}=this.state,{dh:d}=this.props,u=e.filter(g=>fb(d,g)).map(gb)??[],{settings:c,saveSettings:m}=this.props,v={...c,formatter:u,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,truncateNumbersWithPound:l};Wi(d,x.dataType.DECIMAL,Je.makeCustomFormat(o.defaultFormatString))&&(v.defaultDecimalFormatOptions=o),Wi(d,x.dataType.INT,wt.makeCustomFormat(s.defaultFormatString))&&(v.defaultIntegerFormatOptions=s),m(v)}scrollToFormatBlockBottom(){const{scrollTo:e}=this.props;e(0,(this.addFormatRuleButtonRef.current?.offsetHeight??0)+(this.addFormatRuleButtonRef.current?.offsetTop??0))}getRuleError(e){const{dh:t}=this.props,r={hasColumnNameError:!1,hasFormatError:!1,message:""},i=[];return e.isNewRule!==void 0&&e.isNewRule||(this.isDuplicateRule(e)&&(r.hasColumnNameError=!0,i.push("Duplicate column name/type combo.")),vb(e.columnName)||(r.hasColumnNameError=!0,i.push("Column names must start with a letter or underscore and contain only alphanumeric characters or underscores.")),e.format.formatString!==void 0&&e.format.formatString.length===0?(r.hasFormatError=!0,i.push("Empty formatting rule.")):Wi(t,e.columnType,e.format)||(r.hasFormatError=!0,i.push("Invalid formatting rule.")),r.message=i.join(`
38
- `)),r}renderFormatRule(e,t){const r=`input-${e}-columnName`,i=`input-${e}-columnType`,a=`input-${e}-format`,o=this.getCachedColumnTypeOptions(),s=c=>this.handleFormatRuleChange(e,"columnName",c.target.value),l=()=>this.handleFormatRuleChange(e,"isNewRule",!1),d=c=>this.handleFormatRuleChange(e,"columnType",c.target.value),u=this.getRuleError(t);return R.jsxs("fieldset",{className:"container-fluid format-rule-container",children:[R.jsxs("div",{className:"form-row",children:[R.jsxs("div",{className:"form-group col-7 mb-2",children:[R.jsx("label",{htmlFor:r,children:"Column Name"}),R.jsx("input",{id:r,className:Q("form-control",{"is-invalid":u.hasColumnNameError}),"data-lpignore":!0,type:"text",value:t.columnName,onChange:s,onBlur:l})]}),R.jsxs("div",{className:"form-group col mb-2",children:[R.jsx(W,{kind:"ghost",className:"btn-delete-format-rule float-right",tabIndex:-1,onClick:()=>this.handleFormatRuleDelete(e),icon:Ar,tooltip:"Delete","aria-label":"Delete Format Rule"}),R.jsx("label",{htmlFor:i,children:"Column Type"}),R.jsx("select",{id:i,className:"custom-select",value:t.columnType,onChange:d,children:o})]})]}),R.jsx("div",{className:"form-row",children:R.jsxs("div",{className:"form-group col-12 d-flex mb-2",children:[R.jsx("label",{className:"flex-shrink-0 col-form-label mr-3",htmlFor:a,children:"Formatting Rule"}),this.renderFormatRuleInput(e,t.columnType,a,t.format,u.hasFormatError)]})}),R.jsx("div",{className:"form-row",children:R.jsx("div",{className:"form-group col-12 d-flex mb-2",children:u.message&&R.jsx("p",{className:"text-danger",children:u.message})})})]},e)}renderFormatRuleInput(e,t,r,i,a){switch(x.getNormalizedType(t)){case x.dataType.DATETIME:return this.renderDateTimeFormatRuleInput(e,r,i,a);case x.dataType.DECIMAL:return this.renderDecimalFormatRuleInput(e,r,i,a);case x.dataType.INT:return this.renderIntegerFormatRuleInput(e,r,i,a);default:throw new Error(`Unrecognized column type: ${t}`)}}renderDateTimeFormatRuleInput(e,t,r,i){const{showTimeZone:a,showTSeparator:o,timeZone:s}=this.state,l=r.formatString??"";return R.jsxs("select",{className:Q("custom-select",{"is-invalid":i}),value:l,id:t,onChange:d=>{const u=yt.makeFormat("",d.target.value,yt.TYPE_GLOBAL);this.handleFormatRuleChange(e,"format",u)},children:[R.jsx("option",{value:"",disabled:!0,children:"Select format"},"default"),this.getCachedDateTimeFormatOptions(s,a,o)]})}renderIntegerFormatRuleInput(e,t,r,i){const a=r.formatString??"";return R.jsx("input",{className:Q("form-control","flex-grow-1",{"is-invalid":i}),"data-lpignore":!0,id:t,placeholder:wt.DEFAULT_FORMAT_STRING,type:"text",value:a,onChange:o=>{const s=wt.makeFormat("",o.target.value,wt.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",s)}})}renderDecimalFormatRuleInput(e,t,r,i){const a=r.formatString??"";return R.jsx("input",{className:Q("form-control","flex-grow-1",{"is-invalid":i}),"data-lpignore":!0,id:t,placeholder:Je.DEFAULT_FORMAT_STRING,type:"text",value:a,onChange:o=>{const s=Je.makeFormat("",o.target.value,Je.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",s)}})}render(){const{formatRulesChanged:e,formatSettings:t}=this.state,r=t.map((a,o)=>R.jsx(_r,{classNames:"fade",timeout:Qe.transitionMs,onEnter:this.handleFormatRuleEntered,children:this.renderFormatRule(o,a)},a.id)),i=R.jsx(W,{kind:"ghost",className:"mb-3",onClick:this.handleFormatRuleCreate,ref:this.addFormatRuleButtonRef,icon:Yi,children:"Add New Rule"});return R.jsxs("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:[R.jsx("div",{className:"app-settings-menu-description mb-3",children:"Customize the formatting of table columns by applying rules based on matching both a column name and column type."}),R.jsx(sS,{appear:e,enter:e,exit:e,children:r}),i]})}}const Xx=n=>({formatter:Sp(n),defaultDateTimeFormat:pp(n),defaultDecimalFormatOptions:Cp(n),defaultIntegerFormatOptions:bp(n),dh:pd(n),showTimeZone:Ep(n),showTSeparator:wp(n),truncateNumbersWithPound:yp(n),timeZone:bs(n),settings:Ut(n)}),Zx=Ht(Xx,{saveSettings:Sd})(Nc);class bn extends E.Component{static defaultProps={onDone:()=>{}};static FORMATTING_SECTION_KEY="SettingsMenu.formatting";static COLUMN_SPECIFIC_SECTION_KEY="SettingsMenu.columnFormatting";static APPLICATION_SECTION_KEY="ApplicationMenu.settings";static SHORTCUT_SECTION_KEY="SettingsMenu.shortcuts";static focusFirstInputInContainer(e){const t=e?.querySelector("input, select, textarea");t&&t.focus()}constructor(e){super(e),this.handleClose=this.handleClose.bind(this),this.handleScrollTo=this.handleScrollTo.bind(this),this.handleSectionToggle=this.handleSectionToggle.bind(this),this.handleExportSupportLogs=this.handleExportSupportLogs.bind(this),this.handleLogout=this.handleLogout.bind(this),this.menuContentRef=h.createRef(),this.broadcastChannel=new BroadcastChannel(IE),this.state={expandedSectionKey:bn.FORMATTING_SECTION_KEY}}componentDidMount(){bn.focusFirstInputInContainer(this.menuContentRef.current)}componentWillUnmount(){this.broadcastChannel.close()}menuContentRef;broadcastChannel;isSectionExpanded(e){const{expandedSectionKey:t}=this.state;return t===e}handleLogout(){this.broadcastChannel.postMessage(_E(ME))}handleScrollTo(e,t){this.menuContentRef.current?.scrollTo(e,t)}handleSectionToggle(e){this.setState(t=>({expandedSectionKey:t.expandedSectionKey===e?void 0:e}))}handleClose(){const{onDone:e}=this.props;e()}handleExportSupportLogs(){const{serverConfigValues:e}=this.props;Kx(void 0,Object.fromEntries(e))}render(){const e="0.41.4",t="https://github.com/deephaven/web-client-ui/",r="https://deephaven.io/core/docs/",{serverConfigValues:i,user:a}=this.props,o=i.get("barrage.version"),s=i.get("java.version"),l=i.get("deephaven.version"),d=(v,g)=>R.jsxs(R.Fragment,{children:[R.jsx("div",{children:v}),R.jsx("div",{children:g})]}),u=a.displayName??a.name,c=a.image!=null&&a.image!=="",m=u!=="";return R.jsxs("div",{className:"app-settings-menu",children:[R.jsxs("header",{className:"app-settings-menu-header",children:[R.jsxs("div",{className:"user-info",children:[R.jsxs("div",{className:"user-image",children:[!c&&R.jsx(re,{icon:hE,transform:"grow-8"}),c&&R.jsx("img",{src:a.image,alt:u})]}),R.jsxs("div",{className:"user-details",children:[m&&R.jsxs("div",{className:"user-name",children:[u,a.operateAs!=null&&a.name!==a.operateAs&&R.jsxs(R.Fragment,{children:[R.jsxs("span",{className:"font-weight-light font-italic",children:[" ","as"," "]}),R.jsxs("span",{className:"operating-as-user",children:[R.jsx(re,{icon:cE,className:"mr-1"}),a.operateAs]})]})]}),a.permissions.canLogout&&R.jsx("button",{type:"button",className:"btn btn-link",onClick:this.handleLogout,children:"logout"})]})]}),R.jsx(W,{kind:"ghost",className:"btn-close-settings-menu",onClick:this.handleClose,icon:R.jsx(re,{icon:vs,transform:"grow-4"}),tooltip:"Close"})]}),R.jsxs("div",{className:"app-settings-menu-content",ref:this.menuContentRef,children:[R.jsx("h5",{children:"Settings"}),R.jsx("hr",{className:"my-0"}),R.jsx(is,{sectionKey:bn.FORMATTING_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.FORMATTING_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:mE,transform:"grow-4",className:"mr-2"}),"Default Format & Time zone"]}),onToggle:this.handleSectionToggle,children:R.jsx(kx,{})}),R.jsx(is,{sectionKey:bn.COLUMN_SPECIFIC_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.COLUMN_SPECIFIC_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:vE,transform:"grow-4",className:"mr-2"}),"Format by Column Name & Type"]}),onToggle:this.handleSectionToggle,children:R.jsx(Zx,{scrollTo:this.handleScrollTo})}),R.jsx(is,{sectionKey:bn.SHORTCUT_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.SHORTCUT_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:gE,transform:"grow-2"})," ","Keyboard Shortcuts"]}),onToggle:this.handleSectionToggle,children:R.jsx(Wx,{})}),R.jsxs("div",{className:"app-settings-footer",children:[R.jsxs("div",{className:"app-settings-footer-section",children:[R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Support"}),R.jsxs("div",{children:["GitHub: ",R.jsx("a",{href:t,className:"custom-link",target:"_blank",rel:"noopener noreferrer",children:t})]}),R.jsx(W,{kind:"tertiary",className:"mt-2 py-2",onClick:this.handleExportSupportLogs,children:"Export Logs"})]}),R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Documentation"}),R.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:r,className:"custom-link",children:r})]}),R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Version"}),R.jsxs("span",{className:"d-inline-block text-muted",children:[l," ",R.jsx(re,{icon:fE}),R.jsxs(gt,{interactive:!0,children:[R.jsxs("div",{className:"detailed-server-config",children:[d("Engine Version",l),d("Web UI Version",e),d("Java Version",s),d("Barrage Version",o)]}),R.jsx(dd,{tooltip:"Copy version numbers",copy:`Engine Version: ${l}
37
+ This note can be edited using **markdown** for styling.`);const _u=mo;function nx(n){Zi(n);var{id:e,layout:t,panelManager:r,registerComponent:i}=n,a=E.useCallback(s=>{var{title:l,componentState:d,props:u}=s,{panelState:c=null}=u;return d!=null&&({panelState:c=null}=d),l==null||c==null||c.content==null||c.content.length===0||c.content===_u.DEFAULT_CONTENT?null:Qh(s)},[]),o=E.useCallback(function(){var{title:s="",metadata:l={},id:d=qe.generate(),focusElement:u=q.DEFAULT_FOCUS_SELECTOR,createNewStack:c=!1,dragEvent:m=null}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=r.getOpenedPanelConfigsOfType(Ho.COMPONENT),g=r.getClosedPanelConfigsOfType(Ho.COMPONENT),f=v.map(w=>{var y;return(y=w.title)!==null&&y!==void 0?y:""}),p=s!=null&&s!==""?s:_u.getNewMarkdownTitle(f),C=g.length>0?null:_u.DEFAULT_CONTENT,b={type:"react-component",component:Ho.COMPONENT,props:{id:d,metadata:l,panelState:{content:C},localDashboardId:e},title:p,id:d},{root:S}=t;q.openComponent({root:S,config:b,focusElement:u,createNewStack:c,dragEvent:m})},[e,t,r]);return E.useEffect(function(){var l=[i(Ho.COMPONENT,Ho,Jh,a)];return()=>{l.forEach(d=>d())}},[a,i]),Ge(t.eventHub,xC.OPEN,o),null}function ix(n){Zi(n);var{hydrate:e,id:t,layout:r,registerComponent:i}=n,a=ya(),o=E.useCallback(s=>{var{dragEvent:l,fetch:d,panelId:u=qe.generate(),widget:c}=s,{name:m,type:v}=c;if(v===a.VariableType.PANDAS){var g={name:m,table:m},f=()=>d().then(b=>hc.makeModel(a,b)),p={type:"react-component",component:Fu.COMPONENT,props:{localDashboardId:t,id:u,metadata:g,makeModel:f},title:m,id:u},{root:C}=r;q.openComponent({root:C,config:p,dragEvent:l})}},[a,t,r]);return E.useEffect(function(){var l=[i(Fu.COMPONENT,Fu,e)];return()=>{l.forEach(d=>d())}},[e,i]),Ge(r.eventHub,Ee.OPEN,o),null}function Ld(n,e,t){return e=ax(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ax(n){var e=ox(n,"string");return typeof e=="symbol"?e:String(e)}function ox(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class Ds{}Ld(Ds,"DROPDOWN_FILTER","ControlType.DROPDOWN_FILTER");Ld(Ds,"INPUT_FILTER","ControlType.INPUT_FILTER");Ld(Ds,"MARKDOWN","ControlType.MARKDOWN");Ld(Ds,"FILTER_SET_MANAGER","ControlType.FILTER_SET_MANAGER");const Vi=Ds;class cf{static makeSortConfig(e,t){return{column:e,direction:t}}static makeFilterConfig(e){var t=[],r=[];return e.forEach((i,a)=>{t.push(i),a>0&&r.push(Kn.and)}),{filterItems:t,filterOperators:r}}static combineFilterConfigs(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Kn.and;return{filterItems:[...e.filterItems,...t.filterItems],filterOperators:[...e.filterOperators,r,...t.filterOperators]}}static makeFilterItem(e,t,r){return{columnName:e,type:t,value:r}}}function sx(n,e,t){if(n.length>e){var r=n.length-t;return{toKeep:n.slice(r),toPrune:n.slice(0,r)}}return{toKeep:n,toPrune:[]}}function mf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function vf(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?mf(Object(t),!0).forEach(function(r){yr(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):mf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function gf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function Vn(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){gf(a,r,i,o,s,"next",l)}function s(l){gf(a,r,i,o,s,"throw",l)}o(void 0)})}}function yr(n,e,t){return e=lx(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lx(n){var e=dx(n,"string");return typeof e=="symbol"?e:String(e)}function dx(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Mu=ie.module("PouchStorageTable"),ux="Deephaven.";If.plugin(oS);function hx(n,e){switch(n){case ge.in:case ge.contains:return{$regex:new RegExp("".concat(e))};case ge.inIgnoreCase:return{$regex:new RegExp("".concat(e),"i")};case ge.eq:return{$eq:e};case ge.notEq:return{$neq:e};case ge.greaterThan:return{$gt:e};case ge.greaterThanOrEqualTo:return{$gte:e};case ge.lessThan:return{$lt:e};case ge.lessThanOrEqualTo:return{$lte:e};case ge.startsWith:return{$regex:new RegExp("^(?".concat(e,").*"))};default:throw new Error("Unsupported type: ".concat(n))}}function cx(n){for(var{filterItems:e,filterOperators:t}=n,r=null,i=0;i<e.length;i+=1){var a=e[i],{columnName:o,type:s,value:l}=a,d={[o]:hx(s,l)};if(i===0)r=d;else if(r!==null&&i-1<t.length){var u=t[i-1];if(u===Kn.and)r={$and:[r,d]};else if(u===Kn.or)r={$or:[r,d]};else throw new Error("Unexpected filter operator ".concat(u,", ").concat(d))}}if(r==null)throw new Error("Invalid filter config ".concat(n));return r}function Au(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return{$and:[...n.map(e=>cx(e)),{name:{$gt:null}},{id:{$gt:null}}]}}function mx(n){var e,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return[{id:t?"desc":"asc"},...(e=n?.map(r=>({[r.column]:r.direction})))!==null&&e!==void 0?e:[]]}class vx{constructor(e,t){yr(this,"db",void 0),yr(this,"changes",void 0),yr(this,"listeners",[]),yr(this,"itemListeners",new Map),yr(this,"currentSize",0),yr(this,"currentViewport",void 0),yr(this,"currentReverse",!1),yr(this,"currentFilter",null),yr(this,"currentSort",null),yr(this,"infoUpdatePromise",void 0),yr(this,"viewportUpdatePromise",void 0),yr(this,"currentViewportData",void 0),this.db=new If("".concat(ux).concat(e),t),this.db._remote=!1,this.listenForChanges(),this.db.createIndex({index:{fields:["id","name"]}}),this.refreshInfo()}listenForChanges(){this.changes=this.db.changes({live:!0,since:"now",include_docs:!0}).on("change",this.dbUpdate.bind(this))}onUpdate(e){return this.listeners=[...this.listeners,e],()=>{this.listeners=this.listeners.filter(t=>t!==e)}}onItemUpdate(e,t){return this.itemListeners.has(e)||this.itemListeners.set(e,[]),this.itemListeners.set(e,[...this.itemListeners.get(e),t]),this.refreshItem(e),()=>{this.itemListeners.set(e,this.itemListeners.get(e).filter(r=>r!==t))}}close(){this.listeners=[]}get size(){return this.currentSize}get viewport(){return this.currentViewport}setReversed(e){this.currentReverse=e,this.currentViewportData=void 0,this.refreshData()}setViewport(e){this.currentViewport=e,this.refreshInfo(),this.refreshData()}setSorts(e){this.currentSort=e,this.currentViewportData=void 0,this.refreshData()}setFilters(e){this.currentFilter=e,this.currentViewportData=void 0,this.refreshInfo(),this.refreshData()}get data(){return this.currentViewportData}getViewportData(){var e=this;return Vn(function*(){var t;return e.viewportUpdatePromise||e.refreshData(),(t=e.viewportUpdatePromise)!==null&&t!==void 0?t:Promise.resolve({items:[],offset:0})})()}put(e){var t=this;return Vn(function*(){var r=vf(vf({},e),{},{_id:e.id});return yield t.db.put(r),r})()}sendUpdate(){for(var e,{listeners:t}=this,r=(e=this.currentViewportData)!==null&&e!==void 0?e:{items:[],offset:0},i=0;i<t.length;i+=1)t[i](r)}sendItemUpdate(e){var t=this.itemListeners.get(e.id);if(t!==void 0)for(var r=0;r<t.length;r+=1)t[r](e)}dbUpdate(e){Mu.debug("Update received",e),this.refreshInfo(),e.doc!==void 0&&this.sendItemUpdate(e.doc),this.refreshData()}fetchInfo(e){var t=this;return Vn(function*(){return t.db.find({selector:e,fields:[]})})()}refreshInfo(){var e=this;return Vn(function*(){try{var t,r;(t=e.infoUpdatePromise)===null||t===void 0||t.cancel(),e.infoUpdatePromise=ye.makeCancelable(e.fetchInfo(Au((r=e.currentFilter)!==null&&r!==void 0?r:[])));var i=yield e.infoUpdatePromise;e.currentSize=i.docs.length,e.sendUpdate()}catch(a){if(!ye.isCanceled(a))throw Mu.error("Unable to refreshInfo",a),a}})()}fetchViewportData(e,t,r){var i=this;return Vn(function*(){return i.db.find({selector:t,skip:e.top,limit:e.bottom-e.top+1,sort:r,fields:["id","name"]}).then(a=>({items:a.docs,offset:e.top}))})()}refreshData(){var e=this;return Vn(function*(){if(e.currentViewport)try{var t,r,i=Au((t=e.currentFilter)!==null&&t!==void 0?t:[]),a=mx(e.currentSort,e.currentReverse);(r=e.viewportUpdatePromise)===null||r===void 0||r.cancel(),e.viewportUpdatePromise=ye.makeCancelable(e.fetchViewportData(e.currentViewport,i,a));var o=yield e.viewportUpdatePromise;return e.currentViewportData=o,e.sendUpdate(),o}catch(s){if(!ye.isCanceled(s))throw Mu.error("Unable to refreshData",s),s}})()}refreshItem(e){var t=this;return Vn(function*(){var r=yield t.db.find({selector:{id:e},limit:1}),i=r.docs[0];return i!==void 0&&t.sendItemUpdate(i),i})()}getSnapshot(e){var t=this;return Vn(function*(){var r=new Map,i=[{id:t.currentReverse?"desc":"asc"}];return yield Promise.all(e.map(function(){var a=Vn(function*(o){var s,[l,d]=o,u=d-l+1;return t.db.find({selector:Au((s=t.currentFilter)!==null&&s!==void 0?s:[]),skip:l,limit:u,sort:i,fields:["id","name"]}).then(c=>{for(var m=0;m<u;m+=1){var v=l+m;r.set(v,c.docs[m])}})});return function(o){return a.apply(this,arguments)}}())),r})()}}const gx=vx;function ff(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function gl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ff(Object(t),!0).forEach(function(r){ub(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ff(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function pf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function Bo(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){pf(a,r,i,o,s,"next",l)}function s(l){pf(a,r,i,o,s,"throw",l)}o(void 0)})}}function ub(n,e,t){return e=fx(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function fx(n){var e=px(n,"string");return typeof e=="symbol"?e:String(e)}function px(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Cx=2500,bx=2e3,Ur=ie.module("PouchCommandHistoryTable");class Sx extends gx{constructor(e,t){var r;super("CommandHistoryStorage.".concat(e),{auto_compaction:!0,revs_limit:1}),ub(this,"searchText",void 0),this.cache=t,this.cache.tableRegistry.has(this.cacheKey)||this.cache.tableRegistry.set(this.cacheKey,new Set),Ur.debug("Adding table to registry",this.cacheKey),(r=this.cache.tableRegistry.get(this.cacheKey))===null||r===void 0||r.add(this)}get cacheKey(){return this.db.name}setSearch(e){Ur.debug("Setting search filters",e),this.searchText=e.trim().toLowerCase(),this.setFilters(e?[cf.makeFilterConfig([cf.makeFilterItem("name",ge.contains,e)])]:[])}dbUpdate(e){Ur.debug("Clearing cache and refreshing data",e),this.cache.response.delete(this.cacheKey),super.dbUpdate(e)}fetchData(e){var t=this;return Bo(function*(){return ye.withTimeout(0,Bo(function*(){t.cache.response.has(t.cacheKey)?Ur.debug("Fetching from cache",t.searchText,t.viewport):(Ur.debug("Fetching from PouchDB",t.searchText,t.viewport),t.cache.response.set(t.cacheKey,t.db.allDocs({include_docs:!0}).then(i=>{var a=i.rows.map(l=>l.doc).filter(l=>{var{name:d}=l;return d});Ur.debug("Fetched ".concat(a.length," command history items"));var{toKeep:o,toPrune:s}=sx(a,Cx,bx);return s.length&&t.pruneItems(s),{docs:o}})));var r=t.cache.response.get(t.cacheKey);return t.searchText==null||t.searchText===""?r:gl(gl({},r),{},{docs:(yield r).docs.filter(i=>{var{name:a}=i;return a.toLowerCase().includes(t.searchText)})})}))})()}fetchInfo(e){var t=this;return Bo(function*(){return t.fetchData(e)})()}fetchViewportData(e,t,r){var i=this;return Bo(function*(){var a=yield i.fetchData(t);Ur.debug("Fetching viewport data",e.top,e.bottom+1,r,a);var o=typeof r[0]=="object"&&r[0].id==="desc",s=o?a.docs.slice(0).reverse():a.docs,l=s.slice(e.top,e.bottom+1);return{items:l,offset:e.top}})()}pruneItems(e){var t=this;return Bo(function*(){if(t.cache.isPruning.get(t.cacheKey)===!0){Ur.debug("Pruning already in progress. Skipping.");return}try{Ur.debug("Pruning ".concat(e.length," command history items"));var r=t.cache.pauseChangeListeners(t.cacheKey);t.cache.isPruning.set(t.cacheKey,!0),yield t.db.bulkDocs(e.map(i=>gl(gl({},i),{},{_deleted:!0}))),t.cache.isPruning.set(t.cacheKey,!1),r(),Ur.debug("Finished pruning command history items")}catch(i){Ur.error("An error occurred while pruning db",i)}})()}close(){var e,t,r;Ur.debug("Closing table",this,(e=this.cache.tableRegistry.get(this.cacheKey))===null||e===void 0?void 0:e.size),(t=this.cache.tableRegistry.get(this.cacheKey))===null||t===void 0||t.delete(this),(r=this.changes)===null||r===void 0||r.cancel(),super.close()}}const Cf=Sx;function Lu(n,e,t){return e=Ex(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ex(n){var e=wx(n,"string");return typeof e=="symbol"?e:String(e)}function wx(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var bf=ie.module("PouchCommandHistoryCache");class yx{constructor(){Lu(this,"isPruning",void 0),Lu(this,"response",void 0),Lu(this,"tableRegistry",void 0),this.isPruning=new Map,this.response=new Map,this.tableRegistry=new Map}pauseChangeListeners(e){var t,r=[];return(t=this.tableRegistry.get(e))===null||t===void 0||t.forEach(i=>{i.changes&&(bf.debug("Pausing event listeners on '".concat(e,"' table"),i),i.changes.cancel(),r.push(i))}),()=>{r.forEach(i=>{var a,o;(a=(o=this.tableRegistry.get(e))===null||o===void 0?void 0:o.has(i))!==null&&a!==void 0&&a&&(bf.debug("Resuming event listeners on '".concat(e,"' table"),i),i.listenForChanges())})}}}const Tx=yx;function Sf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Ef(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Sf(Object(t),!0).forEach(function(r){yh(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Sf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function wf(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(d){t(d);return}s.done?e(l):Promise.resolve(l).then(r,i)}function ku(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){wf(a,r,i,o,s,"next",l)}function s(l){wf(a,r,i,o,s,"throw",l)}o(void 0)})}}function yh(n,e,t){return e=Ox(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ox(n){var e=Px(n,"string");return typeof e=="symbol"?e:String(e)}function Px(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var yf=ie.module("PouchCommandHistoryStorage");class Dx{constructor(){yh(this,"cache",new Tx),yh(this,"updateTableMap",new Map)}getUpdateTable(e){return this.updateTableMap.has(e)||this.updateTableMap.set(e,new Cf(e,this.cache)),this.updateTableMap.get(e)}getTable(e){var t=this;return ku(function*(){return new Cf(e,t.cache)})()}addItem(e,t,r,i){var a=this;return ku(function*(){return a.updateItem(e,{id:"".concat(new Date().getTime()),name:r,data:i})})()}updateItem(e,t){var r=this;return ku(function*(){var i=r.getUpdateTable(e),a=yield i.refreshItem(t.id),o=Ef(Ef({},a??{}),t);return yf.debug("Updating item",o),yield i.put(o),yf.debug("Update saved"),t})()}listenItem(e,t,r){var i=this.getUpdateTable(e);return i.onItemUpdate(t,r)}}const hb="SET_LAYOUT_STORAGE",Rx=n=>({type:hb,payload:n});var{dh:Nx}=globalThis;const Tr=Nx,cb=""+new URL("community-wordmark-app-d2c5c1eb.svg",import.meta.url).href;const Fx=ie.module("SettingsUtils");function Ix(n){return n.formatString!=null}function Th(n){const e=n?.querySelector("input, select, textarea");e&&e.focus()}function mb(n,e){return n.defaultFormatString===e.defaultFormatString}function _x(n,e){return mb(n,e)}function Mx(n,e){return mb(n,e)}function vb(n){return n!==""&&fo.isValidColumnName(n)}function Wi(n,e,t){if(!e||t.formatString==null||!Ix(t))return!1;switch(e){case"datetime":return yt.isValid(n,t);case"decimal":return Je.isValid(n,t);case"int":return wt.isValid(n,t);default:return Fx.warn("Trying to validate format of unknown type"),!0}}function gb(n){const{id:e,isNewRule:t,...r}=n;return r}function fb(n,e){return vb(e.columnName)&&Wi(n,e.columnType,e.format)}function pb(n){const{timestamp:e,timeZone:t,showTimeZone:r,showTSeparator:i,isGlobalOptions:a,legacyGlobalFormat:o}=n,s=ya(),l=E.useMemo(()=>new un(s,[],{timeZone:t,showTimeZone:r,showTSeparator:i}),[s,r,i,t]),d=a?yt.getGlobalFormats(r,i):yt.getFormats(r,i);return o!=null&&!d.includes(o)&&d.unshift(o),R.jsx(R.Fragment,{children:d.map(u=>{const c=yt.makeFormat("",u,yt.TYPE_GLOBAL);return R.jsx("option",{value:u,"data-testid":"time-format",children:l.getFormattedString(e,x.dataType.DATETIME,"",c)},u)})})}function Ax(){return R.jsx(R.Fragment,{children:sd.TIME_ZONES.map(n=>{const{label:e,value:t}=n;return R.jsx("option",{value:t,children:e},t)})})}const la=ie.module("FormattingSectionContent");class Rc extends E.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:yt.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:Je.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:wt.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:yt.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=et(this.commitChanges.bind(this),Rc.inputDebounceTime),this.handleDefaultDateTimeFormatChange=this.handleDefaultDateTimeFormatChange.bind(this),this.handleDefaultDecimalFormatChange=this.handleDefaultDecimalFormatChange.bind(this),this.handleDefaultIntegerFormatChange=this.handleDefaultIntegerFormatChange.bind(this),this.handleShowTimeZoneChange=this.handleShowTimeZoneChange.bind(this),this.handleShowTSeparatorChange=this.handleShowTSeparatorChange.bind(this),this.handleTimeZoneChange=this.handleTimeZoneChange.bind(this),this.handleResetDateTimeFormat=this.handleResetDateTimeFormat.bind(this),this.handleResetDecimalFormat=this.handleResetDecimalFormat.bind(this),this.handleResetIntegerFormat=this.handleResetIntegerFormat.bind(this),this.handleResetTimeZone=this.handleResetTimeZone.bind(this),this.handleTruncateNumbersWithPoundChange=this.handleTruncateNumbersWithPoundChange.bind(this);const{formatter:t,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,showTimeZone:o,showTSeparator:s,timeZone:l,truncateNumbersWithPound:d}=e,u=t.map((c,m)=>({...c,id:m}));this.containerRef=h.createRef(),this.state={formatSettings:u,showTimeZone:o,showTSeparator:s,timeZone:l,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Th(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;getCachedDateTimeFormatOptions=Te((e,t,r,i=!1,a)=>{const{timestampAtMenuOpen:o}=this.state;return R.jsx(pb,{timestamp:o,timeZone:e,showTimeZone:t,showTSeparator:r,isGlobalOptions:i,legacyGlobalFormat:a})});handleDefaultDateTimeFormatChange(e){la.debug("handleDefaultDateTimeFormatChange",e.target.value),this.setState({defaultDateTimeFormat:e.target.value},()=>{this.debouncedCommitChanges()})}handleDefaultDecimalFormatChange(e){la.debug("handleDefaultDecimalFormatChange",e.target.value),this.setState({defaultDecimalFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleDefaultIntegerFormatChange(e){la.debug("handleDefaultIntegerFormatChange",e.target.value),this.setState({defaultIntegerFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleShowTimeZoneChange(){this.setState(e=>({showTimeZone:!e.showTimeZone}),()=>{this.debouncedCommitChanges()})}handleShowTSeparatorChange(){this.setState(e=>({showTSeparator:!e.showTSeparator}),()=>{this.debouncedCommitChanges()})}handleTimeZoneChange(e){this.setState({timeZone:e.target.value},()=>{this.debouncedCommitChanges()})}handleResetDateTimeFormat(){const{defaults:e}=this.props,{defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i}=e;la.debug("handleResetDateTimeFormat"),this.setState({defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i},()=>{this.debouncedCommitChanges()})}handleResetTimeZone(){const{defaults:e}=this.props,{timeZone:t}=e;la.debug("handleResetTimeZone"),this.setState({timeZone:t},()=>{this.debouncedCommitChanges()})}handleResetDecimalFormat(){const{defaults:e}=this.props,{defaultDecimalFormatOptions:t}=e;la.debug("handleResetDecimalFormat"),this.setState({defaultDecimalFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleResetIntegerFormat(){const{defaults:e}=this.props,{defaultIntegerFormatOptions:t}=e;la.debug("handleResetIntegerFormat"),this.setState({defaultIntegerFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleTruncateNumbersWithPoundChange(){this.setState(e=>({truncateNumbersWithPound:!e.truncateNumbersWithPound}),()=>{this.debouncedCommitChanges()})}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:s,truncateNumbersWithPound:l}=this.state,{dh:d}=this.props,u=e.filter(g=>fb(d,g)).map(gb)??[],{settings:c,saveSettings:m}=this.props,v={...c,formatter:u,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,truncateNumbersWithPound:l};Wi(d,x.dataType.DECIMAL,Je.makeCustomFormat(o.defaultFormatString))&&(v.defaultDecimalFormatOptions=o),Wi(d,x.dataType.INT,wt.makeCustomFormat(s.defaultFormatString))&&(v.defaultIntegerFormatOptions=s),m(v)}render(){const{defaults:e,dh:t}=this.props,{defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,timeZone:o,showTimeZone:s,showTSeparator:l,truncateNumbersWithPound:d}=this.state,{defaultFormatString:u=Je.DEFAULT_FORMAT_STRING}=i??{},{defaultFormatString:c=wt.DEFAULT_FORMAT_STRING}=a??{},m=o===e.timeZone,v=l===e.showTSeparator&&s===e.showTimeZone&&r===e.defaultDateTimeFormat,g=_x(i,e.defaultDecimalFormatOptions),f=Mx(a,e.defaultIntegerFormatOptions);return R.jsx("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:R.jsxs("div",{className:"container-fluid p-0",children:[R.jsx("div",{className:"app-settings-menu-description mb-3",children:"Choose the default formatting rule to apply to all table columns based on their type."}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"select-reset-timezone",children:"Time zone"}),R.jsx("div",{className:"col pr-0",children:R.jsx("select",{className:"custom-select",value:o,onChange:this.handleTimeZoneChange,id:"select-reset-timezone",children:R.jsx(Ax,{})})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetTimeZone,tooltip:"Reset Time Zone",className:Q("btn-reset","btn-reset-time-zone",{hidden:m})})})]}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"select-default-time-format",children:"DateTime"}),R.jsx("div",{className:"col pr-0",children:R.jsx("select",{className:"custom-select",value:r,onChange:this.handleDefaultDateTimeFormatChange,id:"select-default-time-format",children:this.getCachedDateTimeFormatOptions(o,s,l,!0,r)})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetDateTimeFormat,tooltip:"Reset DateTime Options",className:Q("btn-reset","btn-reset-date-time",{hidden:v})})})]}),R.jsx("div",{className:"form-row",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:s??null,onChange:this.handleShowTimeZoneChange,children:"Show time zone in dates"})})}),R.jsx("div",{className:"form-row mb-3",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:l??null,onChange:this.handleShowTSeparatorChange,children:"Show 'T' separator"})})}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"default-decimal-format-input",children:"Decimal"}),R.jsx("div",{className:"col pr-0",children:R.jsx("input",{className:Q("form-control","flex-grow-1","default-decimal-format-input",{"is-invalid":!Wi(t,x.dataType.DECIMAL,Je.makeCustomFormat(u))}),"data-lpignore":!0,placeholder:Je.DEFAULT_FORMAT_STRING,type:"text",id:"default-decimal-format-input",value:u,onChange:this.handleDefaultDecimalFormatChange})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetDecimalFormat,tooltip:"Reset Decimal Formatting",className:Q("btn-reset","btn-reset-decimal",{hidden:g}),"data-testid":"btn-reset-decimal"})})]}),R.jsxs("div",{className:"form-row mb-2",children:[R.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"Integer"}),R.jsx("div",{className:"col pr-0",children:R.jsx("input",{className:Q("form-control","flex-grow-1","default-integer-format-input",{"is-invalid":!Wi(t,x.dataType.INT,wt.makeCustomFormat(c))}),"data-lpignore":!0,placeholder:wt.DEFAULT_FORMAT_STRING,type:"text",id:"default-integer-format-input",value:c,onChange:this.handleDefaultIntegerFormatChange})}),R.jsx("div",{className:"col-1 btn-col",children:R.jsx(W,{kind:"ghost",icon:ca,onClick:this.handleResetIntegerFormat,tooltip:"Reset Integer Formatting",className:Q("btn-reset","btn-reset-integer",{hidden:f}),"data-testid":"btn-reset-integer"})})]}),R.jsx("div",{className:"form-row mb-3",children:R.jsx("div",{className:"offset-3 col-9",children:R.jsx(qr,{checked:d??null,onChange:this.handleTruncateNumbersWithPoundChange,children:"Truncate numbers with #"})})})]})})}}const Lx=n=>({formatter:Sp(n),defaultDateTimeFormat:pp(n),defaultDecimalFormatOptions:Cp(n),defaultIntegerFormatOptions:bp(n),dh:pd(n),showTimeZone:Ep(n),showTSeparator:wp(n),truncateNumbersWithPound:yp(n),timeZone:bs(n),settings:Ut(n)}),kx=Ht(Lx,{saveSettings:Sd})(Rc);function xx(){const[n,e]=E.useState(!1),t=()=>{e(!n)};return R.jsxs(W,{kind:"ghost",onClick:t,icon:dE,children:["Legal Notices",R.jsxs(id,{isOpen:n,toggle:t,className:"theme-bg-light",children:[R.jsx(ad,{toggle:t,children:"Legal Notice"}),R.jsxs(od,{children:[R.jsx("p",{children:"Deephaven software is protected by U.S. Patent Nos. 9,612,959; 9,613,018; 9,613,109; 9,619,210; 9,633,060; 9,639,570; 9,672,238; 9,679,006; 9,690,821; 9,710,511; 9,760,591; 9,805,084; 9,836,494; 9,836,495; 9,886,469; 9,898,496; 9,934,266; 10,002,153; 10,002,154; 10,002,155; 10,003,673; 10,019,138; 10,069,943; 10,176,211; 10,198,465; 10,198,466; 10,198,469; 10,212,257; 10,241,960; 10,241,965; 10,242,040; 10,242,041; 10,346,394; 10,353,893; 10,452,649; 10,496,639; 10,540,351; 10,552,412; 10,565,194; 10,565,206; 10,572,474; 10,621,168; 10,642,829; 10,657,184; 10,678,787; 10,691,686; 10,783,191; 10,866,943; 10,909,183; 10,915,526; 10,922,311; 10,929,394; 11,023,462; 11,126,662; 11,151,133; 11,238,036; 11,249,994; 11,263,211; 11,449,557; 11,514,037; 11,556,528; and 11,574,018. Other patents pending."}),R.jsxs("p",{children:["© 2016-",new Date().getFullYear()," Deephaven Data Labs LLC. Patent Pending."]})]})]})]})}function is(n){const{children:e,isExpanded:t,sectionKey:r,title:i,onToggle:a}=n;return R.jsxs(R.Fragment,{children:[R.jsx("div",{children:R.jsxs(W,{kind:"ghost",className:"btn-collapse-trigger",onClick:()=>a(r),children:[R.jsx("div",{className:"flex-grow-1",children:i}),R.jsx("div",{className:"flex-shrink-0",children:R.jsx(re,{transform:t?"flip-v":"",icon:qn})})]})}),R.jsx(FE,{in:t,autoFocusOnShow:!0,children:e})]})}is.propTypes={children:Y.node,isExpanded:Y.bool.isRequired,sectionKey:Y.string.isRequired,title:Y.node.isRequired,onToggle:Y.func};is.defaultProps={children:null,onToggle:()=>{}};function Hx({shortcut:n,displayText:e,categoryName:t,onChange:r}){const[i,a]=E.useState(e),[o,s]=E.useState(n.getKeyState()),[l,d]=E.useState(!1),[u,c]=E.useState("");E.useEffect(function(){a(e),s(n.getKeyState())},[e,n]),E.useEffect(function(){a(Jr.getDisplayText(o)),n.matchesKeyState(o)&&d(!1)},[o,n]),E.useEffect(function(){if(l){if(!Jr.isValidKeyState(o)){Jr.isAllowedKey(o.keyValue)?c("Must contain a modifier key"):c("Must contain an allowed action key");return}const w=Ye.getConflictingShortcuts(o).filter(y=>y.id.startsWith(t)&&y!==n).map(y=>y.name);if(w.length){c(`Conflicts with ${w.join(", ")}`);return}c("")}else c("")},[l,o,t,n]);function m(S){if(S.stopPropagation(),S.preventDefault(),n.isEditable&&!S.repeat){const w=Jr.getKeyStateFromEvent(S),y=Jr.createKeyState([Oe.BACKSPACE]);Jr.doKeyStatesMatch(w,y)?s(Jr.NULL_KEY_STATE):s(w)}}function v(S){S.stopPropagation(),S.preventDefault(),n.matchesKeyState(o)||d(!0)}function g(){Ki.disableAllActions()}function f(){Ki.enableAllActions()}function p(){n.setKeyState(o),d(!1),r(n)}function C(){const S=n.getKeyState();s(S),d(!1)}function b(){d(!0),s(n.getDefaultKeyState())}return R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"shortcut-item-container",children:[R.jsxs("label",{className:"shortcut-item-name",children:[n.name,n.tooltip!==void 0&&R.jsx(gt,{children:n.tooltip})]}),R.jsxs("div",{className:"shortcut-item-input-container",children:[R.jsx("input",{className:Q("form-control",{"is-invalid":u}),onKeyDown:m,onKeyUp:v,onFocus:g,onBlur:f,disabled:!n.isEditable,value:i,readOnly:!0}),!Jr.doKeyStatesMatch(o,n.getDefaultKeyState())&&!u&&R.jsx(W,{className:"reset-to-default-button",kind:"ghost",icon:R.jsx(re,{icon:ca,transform:{rotate:90,flipX:!0}}),tooltip:"Reset to default",onClick:b})]})]}),l&&R.jsxs("div",{className:Q("shortcut-item-message-container",{"is-invalid":u}),children:[R.jsx("div",{className:"shortcut-item-message",children:u}),R.jsxs("div",{className:"shortcut-item-message-buttons",children:[Jr.isValidKeyState(o)&&R.jsx(W,{kind:"ghost",onClick:p,children:"Confirm"}),R.jsx(W,{kind:"ghost",onClick:C,children:"Undo"})]})]})]})}function Ux({shortcutOverrides:n={},settings:e,saveSettings:t}){const r=E.useCallback(s=>{const l=Jr.isMacPlatform,d={mac:{...n.mac},windows:{...n.windows}},u=l?d.mac:d.windows;s.forEach(c=>{c.isDefault()?delete u[c.id]:u[c.id]=c.getKeyState()}),t({...e,shortcutOverrides:d})},[e,t,n]);let i=Array.from(Ye.shortcutsByCategory.entries()).map(([s,l])=>({name:s,shortcuts:l}));const a=i.findIndex(s=>s.name.toUpperCase()==="GLOBAL"),o=i.splice(a,1);return i=i.concat(o),R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"app-settings-menu-description",children:"Customize shortcuts below. To prevent unexpected results, avoid conflicting shortcuts with the browser or IDE editor."}),i.map(s=>R.jsx($x,{name:s.name,shortcuts:s.shortcuts,saveShortcutOverrides:r},s.name))]})}function $x({name:n,shortcuts:e,saveShortcutOverrides:t}){function r(l){return l.split("_").map(d=>`${d[0].toUpperCase()}${d.slice(1).toLowerCase()}`).join(" ")}const[i,a]=E.useState(e);function o(l){const d=i.filter(c=>c!==l&&!c.isNull()&&c.matchesKeyState(l.getKeyState()));d.forEach(c=>c.setToNull());const u=[l,...d];t(u),a(c=>[...c])}const s=E.useMemo(()=>i.map(l=>l.getDisplayText()),[i]);return R.jsxs("div",{className:"mt-3",children:[R.jsx("div",{className:"font-weight-bold",children:r(n)}),i.map((l,d)=>R.jsx(Hx,{shortcut:l,displayText:s[d],categoryName:n,onChange:o},l.id))]})}const Bx=n=>({settings:Ut(n),shortcutOverrides:Q0(n)}),Vx={saveSettings:Sd},Wx=Ht(Bx,Vx)(Ux),Gx="yyyy-MM-dd-HHmmss";function Cb(n,e="root",t=new Map([[n,""]])){const r={};return Object.entries(n).forEach(([i,a])=>{try{JSON.stringify(a),r[i]=a}catch{const s=a;if(typeof a=="bigint")r[i]=a.toString();else if(t.has(s))r[i]=`Circular ref to ${t.get(s)}`;else{const l=`${e}.${i}`;t.set(s,l),r[i]=Cb(a,l,t)}}}),r}function jx(){const n=Gh.getState();return JSON.stringify(Cb(n),null,2)}function zx(n){const e={uiVersion:"0.41.5",userAgent:navigator.userAgent,...n};return JSON.stringify(e,null,2)}async function Kx(n=`${Tr.i18n.DateTimeFormat.format(Gx,new Date)}_support_logs`,e){const t=new _f,r=t.folder(n);r.file("console.txt",uE.getFormattedHistory()),r.file("redux.json",jx()),r.file("metadata.json",zx(e));const i=await t.generateAsync({type:"blob"}),a=document.createElement("a");a.href=URL.createObjectURL(i),a.download=`${n}.zip`,a.click()}const Yx=[{value:x.dataType.DATETIME,label:"DateTime"},{value:x.dataType.DECIMAL,label:"Decimal"},{value:x.dataType.INT,label:"Integer"}];function qx(){const n=Yx.map(e=>R.jsx("option",{value:e.value,children:e.label},`key-columnType-${e.value}`));return R.jsxs(R.Fragment,{children:[R.jsx("option",{disabled:!0,value:"",children:"Select Type"},"key-columnType-placeholder"),n]})}class Nc extends E.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:yt.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:Je.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:wt.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:yt.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=et(this.commitChanges.bind(this),Nc.inputDebounceTime),this.handleFormatRuleEntered=this.handleFormatRuleEntered.bind(this),this.handleFormatRuleChange=this.handleFormatRuleChange.bind(this),this.handleFormatRuleCreate=this.handleFormatRuleCreate.bind(this),this.handleFormatRuleDelete=this.handleFormatRuleDelete.bind(this);const{formatter:t,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,showTimeZone:o,showTSeparator:s,timeZone:l,truncateNumbersWithPound:d}=e,u=t.map((c,m)=>({...c,id:m}));this.containerRef=h.createRef(),this.addFormatRuleButtonRef=h.createRef(),this.lastFormatRuleIndex=u.length,this.state={formatSettings:u,formatRulesChanged:!1,showTimeZone:o,showTSeparator:s,timeZone:l,defaultDateTimeFormat:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:a,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Th(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;addFormatRuleButtonRef;lastFormatRuleIndex;isDuplicateRule(e){const{formatSettings:t}=this.state;return t.some(r=>r.id!==e.id&&r.columnName===e.columnName&&r.columnType===e.columnType)??!1}getAutoIncrementFormatRuleIndex(){const{lastFormatRuleIndex:e}=this;return this.lastFormatRuleIndex+=1,e}getCachedColumnTypeOptions=Te(()=>R.jsx(qx,{}));getCachedDateTimeFormatOptions=Te((e,t,r,i=!1,a)=>{const{timestampAtMenuOpen:o}=this.state;return R.jsx(pb,{timestamp:o,timeZone:e,showTimeZone:t,showTSeparator:r,isGlobalOptions:i,legacyGlobalFormat:a})});handleFormatRuleChange(e,t,r){this.setState(i=>{const{formatSettings:a}=i;L(a);const o=[...a];let s={};t==="columnType"&&(s={format:""});const l={...o[e],...s,[t]:r};return o[e]=l,{formatSettings:o}},()=>{this.debouncedCommitChanges()})}handleFormatRuleCreate(){this.setState(e=>{const{formatSettings:t}=e,r={columnType:x.dataType.DATETIME,columnName:"",format:{},id:this.getAutoIncrementFormatRuleIndex(),isNewRule:!0};return{formatSettings:[...t,r],formatRulesChanged:!0}})}handleFormatRuleDelete(e){this.setState(t=>{const{formatSettings:r}=t;return{formatSettings:r.filter((a,o)=>o!==e),formatRulesChanged:!0}},()=>{this.debouncedCommitChanges()})}handleFormatRuleEntered(e){this.scrollToFormatBlockBottom(),Th(e)}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:s,truncateNumbersWithPound:l}=this.state,{dh:d}=this.props,u=e.filter(g=>fb(d,g)).map(gb)??[],{settings:c,saveSettings:m}=this.props,v={...c,formatter:u,defaultDateTimeFormat:t,showTimeZone:r,showTSeparator:i,timeZone:a,truncateNumbersWithPound:l};Wi(d,x.dataType.DECIMAL,Je.makeCustomFormat(o.defaultFormatString))&&(v.defaultDecimalFormatOptions=o),Wi(d,x.dataType.INT,wt.makeCustomFormat(s.defaultFormatString))&&(v.defaultIntegerFormatOptions=s),m(v)}scrollToFormatBlockBottom(){const{scrollTo:e}=this.props;e(0,(this.addFormatRuleButtonRef.current?.offsetHeight??0)+(this.addFormatRuleButtonRef.current?.offsetTop??0))}getRuleError(e){const{dh:t}=this.props,r={hasColumnNameError:!1,hasFormatError:!1,message:""},i=[];return e.isNewRule!==void 0&&e.isNewRule||(this.isDuplicateRule(e)&&(r.hasColumnNameError=!0,i.push("Duplicate column name/type combo.")),vb(e.columnName)||(r.hasColumnNameError=!0,i.push("Column names must start with a letter or underscore and contain only alphanumeric characters or underscores.")),e.format.formatString!==void 0&&e.format.formatString.length===0?(r.hasFormatError=!0,i.push("Empty formatting rule.")):Wi(t,e.columnType,e.format)||(r.hasFormatError=!0,i.push("Invalid formatting rule.")),r.message=i.join(`
38
+ `)),r}renderFormatRule(e,t){const r=`input-${e}-columnName`,i=`input-${e}-columnType`,a=`input-${e}-format`,o=this.getCachedColumnTypeOptions(),s=c=>this.handleFormatRuleChange(e,"columnName",c.target.value),l=()=>this.handleFormatRuleChange(e,"isNewRule",!1),d=c=>this.handleFormatRuleChange(e,"columnType",c.target.value),u=this.getRuleError(t);return R.jsxs("fieldset",{className:"container-fluid format-rule-container",children:[R.jsxs("div",{className:"form-row",children:[R.jsxs("div",{className:"form-group col-7 mb-2",children:[R.jsx("label",{htmlFor:r,children:"Column Name"}),R.jsx("input",{id:r,className:Q("form-control",{"is-invalid":u.hasColumnNameError}),"data-lpignore":!0,type:"text",value:t.columnName,onChange:s,onBlur:l})]}),R.jsxs("div",{className:"form-group col mb-2",children:[R.jsx(W,{kind:"ghost",className:"btn-delete-format-rule float-right",tabIndex:-1,onClick:()=>this.handleFormatRuleDelete(e),icon:Ar,tooltip:"Delete","aria-label":"Delete Format Rule"}),R.jsx("label",{htmlFor:i,children:"Column Type"}),R.jsx("select",{id:i,className:"custom-select",value:t.columnType,onChange:d,children:o})]})]}),R.jsx("div",{className:"form-row",children:R.jsxs("div",{className:"form-group col-12 d-flex mb-2",children:[R.jsx("label",{className:"flex-shrink-0 col-form-label mr-3",htmlFor:a,children:"Formatting Rule"}),this.renderFormatRuleInput(e,t.columnType,a,t.format,u.hasFormatError)]})}),R.jsx("div",{className:"form-row",children:R.jsx("div",{className:"form-group col-12 d-flex mb-2",children:u.message&&R.jsx("p",{className:"text-danger",children:u.message})})})]},e)}renderFormatRuleInput(e,t,r,i,a){switch(x.getNormalizedType(t)){case x.dataType.DATETIME:return this.renderDateTimeFormatRuleInput(e,r,i,a);case x.dataType.DECIMAL:return this.renderDecimalFormatRuleInput(e,r,i,a);case x.dataType.INT:return this.renderIntegerFormatRuleInput(e,r,i,a);default:throw new Error(`Unrecognized column type: ${t}`)}}renderDateTimeFormatRuleInput(e,t,r,i){const{showTimeZone:a,showTSeparator:o,timeZone:s}=this.state,l=r.formatString??"";return R.jsxs("select",{className:Q("custom-select",{"is-invalid":i}),value:l,id:t,onChange:d=>{const u=yt.makeFormat("",d.target.value,yt.TYPE_GLOBAL);this.handleFormatRuleChange(e,"format",u)},children:[R.jsx("option",{value:"",disabled:!0,children:"Select format"},"default"),this.getCachedDateTimeFormatOptions(s,a,o)]})}renderIntegerFormatRuleInput(e,t,r,i){const a=r.formatString??"";return R.jsx("input",{className:Q("form-control","flex-grow-1",{"is-invalid":i}),"data-lpignore":!0,id:t,placeholder:wt.DEFAULT_FORMAT_STRING,type:"text",value:a,onChange:o=>{const s=wt.makeFormat("",o.target.value,wt.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",s)}})}renderDecimalFormatRuleInput(e,t,r,i){const a=r.formatString??"";return R.jsx("input",{className:Q("form-control","flex-grow-1",{"is-invalid":i}),"data-lpignore":!0,id:t,placeholder:Je.DEFAULT_FORMAT_STRING,type:"text",value:a,onChange:o=>{const s=Je.makeFormat("",o.target.value,Je.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",s)}})}render(){const{formatRulesChanged:e,formatSettings:t}=this.state,r=t.map((a,o)=>R.jsx(_r,{classNames:"fade",timeout:Qe.transitionMs,onEnter:this.handleFormatRuleEntered,children:this.renderFormatRule(o,a)},a.id)),i=R.jsx(W,{kind:"ghost",className:"mb-3",onClick:this.handleFormatRuleCreate,ref:this.addFormatRuleButtonRef,icon:Yi,children:"Add New Rule"});return R.jsxs("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:[R.jsx("div",{className:"app-settings-menu-description mb-3",children:"Customize the formatting of table columns by applying rules based on matching both a column name and column type."}),R.jsx(sS,{appear:e,enter:e,exit:e,children:r}),i]})}}const Xx=n=>({formatter:Sp(n),defaultDateTimeFormat:pp(n),defaultDecimalFormatOptions:Cp(n),defaultIntegerFormatOptions:bp(n),dh:pd(n),showTimeZone:Ep(n),showTSeparator:wp(n),truncateNumbersWithPound:yp(n),timeZone:bs(n),settings:Ut(n)}),Zx=Ht(Xx,{saveSettings:Sd})(Nc);class bn extends E.Component{static defaultProps={onDone:()=>{}};static FORMATTING_SECTION_KEY="SettingsMenu.formatting";static COLUMN_SPECIFIC_SECTION_KEY="SettingsMenu.columnFormatting";static APPLICATION_SECTION_KEY="ApplicationMenu.settings";static SHORTCUT_SECTION_KEY="SettingsMenu.shortcuts";static focusFirstInputInContainer(e){const t=e?.querySelector("input, select, textarea");t&&t.focus()}constructor(e){super(e),this.handleClose=this.handleClose.bind(this),this.handleScrollTo=this.handleScrollTo.bind(this),this.handleSectionToggle=this.handleSectionToggle.bind(this),this.handleExportSupportLogs=this.handleExportSupportLogs.bind(this),this.handleLogout=this.handleLogout.bind(this),this.menuContentRef=h.createRef(),this.broadcastChannel=new BroadcastChannel(IE),this.state={expandedSectionKey:bn.FORMATTING_SECTION_KEY}}componentDidMount(){bn.focusFirstInputInContainer(this.menuContentRef.current)}componentWillUnmount(){this.broadcastChannel.close()}menuContentRef;broadcastChannel;isSectionExpanded(e){const{expandedSectionKey:t}=this.state;return t===e}handleLogout(){this.broadcastChannel.postMessage(_E(ME))}handleScrollTo(e,t){this.menuContentRef.current?.scrollTo(e,t)}handleSectionToggle(e){this.setState(t=>({expandedSectionKey:t.expandedSectionKey===e?void 0:e}))}handleClose(){const{onDone:e}=this.props;e()}handleExportSupportLogs(){const{serverConfigValues:e}=this.props;Kx(void 0,Object.fromEntries(e))}render(){const e="0.41.5",t="https://github.com/deephaven/web-client-ui/",r="https://deephaven.io/core/docs/",{serverConfigValues:i,user:a}=this.props,o=i.get("barrage.version"),s=i.get("java.version"),l=i.get("deephaven.version"),d=(v,g)=>R.jsxs(R.Fragment,{children:[R.jsx("div",{children:v}),R.jsx("div",{children:g})]}),u=a.displayName??a.name,c=a.image!=null&&a.image!=="",m=u!=="";return R.jsxs("div",{className:"app-settings-menu",children:[R.jsxs("header",{className:"app-settings-menu-header",children:[R.jsxs("div",{className:"user-info",children:[R.jsxs("div",{className:"user-image",children:[!c&&R.jsx(re,{icon:hE,transform:"grow-8"}),c&&R.jsx("img",{src:a.image,alt:u})]}),R.jsxs("div",{className:"user-details",children:[m&&R.jsxs("div",{className:"user-name",children:[u,a.operateAs!=null&&a.name!==a.operateAs&&R.jsxs(R.Fragment,{children:[R.jsxs("span",{className:"font-weight-light font-italic",children:[" ","as"," "]}),R.jsxs("span",{className:"operating-as-user",children:[R.jsx(re,{icon:cE,className:"mr-1"}),a.operateAs]})]})]}),a.permissions.canLogout&&R.jsx("button",{type:"button",className:"btn btn-link",onClick:this.handleLogout,children:"logout"})]})]}),R.jsx(W,{kind:"ghost",className:"btn-close-settings-menu",onClick:this.handleClose,icon:R.jsx(re,{icon:vs,transform:"grow-4"}),tooltip:"Close"})]}),R.jsxs("div",{className:"app-settings-menu-content",ref:this.menuContentRef,children:[R.jsx("h5",{children:"Settings"}),R.jsx("hr",{className:"my-0"}),R.jsx(is,{sectionKey:bn.FORMATTING_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.FORMATTING_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:mE,transform:"grow-4",className:"mr-2"}),"Default Format & Time zone"]}),onToggle:this.handleSectionToggle,children:R.jsx(kx,{})}),R.jsx(is,{sectionKey:bn.COLUMN_SPECIFIC_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.COLUMN_SPECIFIC_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:vE,transform:"grow-4",className:"mr-2"}),"Format by Column Name & Type"]}),onToggle:this.handleSectionToggle,children:R.jsx(Zx,{scrollTo:this.handleScrollTo})}),R.jsx(is,{sectionKey:bn.SHORTCUT_SECTION_KEY,isExpanded:this.isSectionExpanded(bn.SHORTCUT_SECTION_KEY),title:R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:gE,transform:"grow-2"})," ","Keyboard Shortcuts"]}),onToggle:this.handleSectionToggle,children:R.jsx(Wx,{})}),R.jsxs("div",{className:"app-settings-footer",children:[R.jsxs("div",{className:"app-settings-footer-section",children:[R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Support"}),R.jsxs("div",{children:["GitHub: ",R.jsx("a",{href:t,className:"custom-link",target:"_blank",rel:"noopener noreferrer",children:t})]}),R.jsx(W,{kind:"tertiary",className:"mt-2 py-2",onClick:this.handleExportSupportLogs,children:"Export Logs"})]}),R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Documentation"}),R.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:r,className:"custom-link",children:r})]}),R.jsxs("div",{className:"app-settings-footer-item",children:[R.jsx("div",{className:"font-weight-bold",children:"Version"}),R.jsxs("span",{className:"d-inline-block text-muted",children:[l," ",R.jsx(re,{icon:fE}),R.jsxs(gt,{interactive:!0,children:[R.jsxs("div",{className:"detailed-server-config",children:[d("Engine Version",l),d("Web UI Version",e),d("Java Version",s),d("Barrage Version",o)]}),R.jsx(dd,{tooltip:"Copy version numbers",copy:`Engine Version: ${l}
39
39
  Web UI Version: ${e}
40
40
  Java Version: ${s}
41
41
  Barrage Version: ${o}`,children:"Copy Versions"})]})]})]}),R.jsx("div",{className:"app-settings-footer-item",children:R.jsx(xx,{})})]}),R.jsx("div",{className:"app-settings-footer-section",children:R.jsx("div",{className:"logo",children:R.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://deephaven.io",className:"d-inline-block custom-link p-1",children:R.jsx("img",{src:cb,alt:"Deephaven Data Labs",width:"230px"})})})})]})]})]})}}const Tf=10;function qa(n){const{forwardedProps:{menuItem:{action:e,title:t,disabled:r},iconElement:i,displayShortcut:a,isMouseSelected:o,isKeyboardSelected:s,closeMenu:l}}=n,d=E.useRef(),u=E.useRef(),c=E.useRef(null),[m,v]=E.useState(!1),g=E.useCallback(C=>{d.current!=null&&u.current!=null&&c.current&&(Math.abs(d.current-C.clientX)>=Tf||Math.abs(u.current-C.clientY)>=Tf)&&(v(!0),window.removeEventListener("mousemove",g),l(),e(C),c.current=null)},[e,l]);function f(C){d.current=C.clientX,u.current=C.clientY,c.current=C.target,window.addEventListener("mousemove",g)}function p(C){c.current===C.target&&(v(!0),l(),e(),window.removeEventListener("mousemove",g)),c.current=null}return E.useEffect(function(){return function(){return window.removeEventListener("mousemove",g)}},[g]),R.jsxs("button",{type:"button",className:Q("btn-context-menu",{disabled:r},{active:o&&!r},{"keyboard-active":s&&!r}),onMouseDown:f,onMouseUp:p,disabled:m,children:[R.jsx("span",{className:Q("icon"),children:i}),R.jsx("span",{className:"title",children:t}),R.jsx("span",{className:"shortcut",children:a})]})}function Fc(n){const{handleControlSelect:e,handleToolSelect:t,onClearFilter:r}=n,i=E.useMemo(()=>[{title:"Input Filter",icon:pE,menuElement:R.jsx(qa,{}),action:a=>{e(Vi.INPUT_FILTER,a)},order:10},{title:"Dropdown Filter",icon:Bf,menuElement:R.jsx(qa,{}),action:a=>{e(Vi.DROPDOWN_FILTER,a)},order:15},{title:"Markdown Widget",icon:CE,menuElement:R.jsx(qa,{}),action:a=>{e(Vi.MARKDOWN,a)},order:20},{title:"Filter Sets",icon:Bu,menuElement:R.jsx(qa,{}),action:a=>{e(Vi.FILTER_SET_MANAGER,a)},order:25},{disabled:!0,menuElement:R.jsx("div",{className:"context-menu-group-header",children:"Tools"}),order:30},{title:"Linker",icon:Hf,action:()=>{t(pr.LINKER)},order:40,shortcut:ii.LINKER},{disabled:!0,menuElement:R.jsx("div",{className:"context-menu-group-header",children:"Actions"}),order:50},{title:"Clear All Filters",icon:bE,action:()=>{r()},order:60,shortcut:Nr.TABLE.CLEAR_ALL_FILTERS}],[e,t,r]);return R.jsx(Jn,{popperClassName:"controls-menu-popper",actions:i})}Fc.propTypes={handleControlSelect:Y.func,handleToolSelect:Y.func,onClearFilter:Y.func};Fc.defaultProps={handleControlSelect:()=>{},handleToolSelect:()=>{},onClearFilter:()=>{}};qa.propTypes={forwardedProps:Y.shape({iconElement:Y.node,displayShortcut:Y.string,isMouseSelected:Y.bool.isRequired,isKeyboardSelected:Y.bool.isRequired,closeMenu:Y.func.isRequired,menuItem:Y.shape({action:Y.func,title:Y.string,disabled:Y.bool}).isRequired})};qa.defaultProps={forwardedProps:null};const Qx=Xi(hb,null),Jx={layoutStorage:Qx},eH=n=>n.layoutStorage,tH=n=>n.serverConfigValues;Object.entries(Jx).map(([n,e])=>Ss.register(n,e));const Of=10;function rH(n){const{onExportLayout:e,onImportLayout:t,onResetLayout:r,onSelect:i,widgets:a=[]}=n,[o,s]=E.useState(!1),[l,d]=E.useState(""),u=E.useRef(null),c=E.useRef(),m=E.useCallback((w,y)=>{w!=null&&i(w,y)},[i]),v=E.useCallback(w=>{d(w.target.value)},[]),g=E.useCallback(w=>{c.current!=null&&(Math.abs(c.current.x-w.clientX)>=Of||Math.abs(c.current.y-w.clientY)>=Of)&&(s(!0),window.removeEventListener("mousemove",g),m(c.current.widget,w),c.current=void 0)},[c,m]),f=E.useCallback((w,y)=>{c.current={x:w.clientX,y:w.clientY,widget:y},window.addEventListener("mousemove",g)},[g]),p=E.useCallback((w,y)=>{window.removeEventListener("mousemove",g),c.current?.widget===y&&(s(!0),m(y)),c.current=void 0},[g,c,m]),C=E.useMemo(()=>a.filter(w=>l?w.name?.toLowerCase().includes(l.toLowerCase()):!0),[l,a]).sort((w,y)=>w.name?.localeCompare(y.name??"")??0),b=E.useMemo(()=>C.map(w=>R.jsx("li",{children:R.jsxs(W,{kind:"ghost","data-testid":`panel-list-item-${w.name??""}-button`,onMouseDown:y=>{f(y,w)},onMouseUp:y=>{p(y,w)},onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&m(w)},disabled:o,onClick:()=>{},children:[R.jsx(Xf,{type:w.type})," ",w.name??""]})},w.name)),[C,o,f,p,m]),S=E.useMemo(()=>b.length===0?R.jsx("span",{children:"No bound variables found."}):null,[b]);return R.jsxs("div",{className:"widget-list-container d-flex flex-column",children:[R.jsx("div",{className:"widget-list-header",children:R.jsx(vo,{value:l,placeholder:"Find Table, Plot or Widget",onChange:v,ref:u})}),R.jsxs("ul",{className:"widget-list flex-grow-1",children:[S&&R.jsx("li",{className:"widget-list-message",children:S}),!S&&b]}),R.jsx("div",{children:R.jsx("hr",{})}),R.jsxs("div",{className:"widget-list-footer",children:[R.jsxs(W,{kind:"ghost",onClick:e,children:[R.jsxs("div",{className:"fa-md fa-layers",children:[R.jsx(re,{mask:$u,icon:im,transform:"right-5 down-5"}),R.jsx(re,{icon:im,transform:"right-8 down-6"})]}),"Export Layout"]}),R.jsxs(W,{kind:"ghost",onClick:t,children:[R.jsxs("div",{className:"fa-md fa-layers",children:[R.jsx(re,{mask:$u,icon:Vu,transform:"right-5 down-5"}),R.jsx(re,{icon:Vu,transform:"right-8 down-6"})]}),"Import Layout"]}),R.jsx(W,{kind:"ghost",icon:ca,onClick:r,tooltip:"Reset Layout"})]})]})}const nH=async(n,e,t,r)=>{let i,a,o,s;if(yl(t)?(i=t.settings,a=t.table,o=void 0,s=t.tableSettings):(i={},a="",o=t.figure,s={}),r!==void 0&&(r.tableSettings!=null&&(s=r.tableSettings),r.table!=null&&(a=r.table),r.figure!=null&&(o=r.figure),r.settings!=null&&(i={...i,...r.settings})),o!==void 0){const u={title:o,name:o,type:n.VariableType.FIGURE},c=await e.getObject(u);return Ll.makeModel(n,i,c)}const l={title:o,name:a,type:n.VariableType.TABLE},d=await e.getObject(l);return new we(n).applyTableSettings(d,s,bs(Gh.getState())),Ll.makeModelFromSettings(n,i,d)},iH=async(n,e,t,r=n.VariableType.TABLE)=>{const{table:i}=t,a={title:i,name:i,type:r},o=await e.getObject(a);return hc.makeModel(n,o)};function aH({onAutoFillClick:n=()=>{}}){return R.jsxs("div",{className:"empty-dashboard-container",children:[R.jsxs("div",{className:"hint-container",children:[R.jsx(re,{icon:$f})," ",R.jsx("br",{}),"Use the panel list to add objects from a query."]}),R.jsxs("div",{className:"empty-dashboard",children:[R.jsx("div",{className:"add-panels-hint",children:"Drag Panels Here"}),R.jsx(W,{kind:"tertiary",onClick:n,children:"Auto fill objects"})]})]})}function oH(n){return n.version===2}function sH(n){return Array.isArray(n)}const fl=ie.module("UserLayoutUtils"),lH={layoutConfig:[{type:"column",content:[{type:"row",height:40,content:[{type:"stack",content:[{type:"react-component",component:Ya.COMPONENT,title:Ya.TITLE,isClosable:!1},{type:"react-component",component:Zl.COMPONENT,title:Zl.TITLE,isClosable:!1}]},{type:"stack",width:25,content:[{type:"react-component",component:Yl.COMPONENT,title:Yl.TITLE,isClosable:!1},{type:"react-component",component:ql.COMPONENT,title:ql.TITLE,isClosable:!1}]}]},{type:"row",content:[{type:"stack",title:"Notebooks",content:[]}]}]}],links:[],filterSets:[],version:2},dH={layoutConfig:[],links:[],filterSets:[],version:2};function bb(n){if(oH(n))return n;if(sH(n))return{layoutConfig:n,links:[],filterSets:[],version:2};throw new Error(`Unexpected layout import format: ${n}`)}async function uH(n,e=!0){try{const t=await n.getLayouts();if(t.length>0)try{const r=await n.getLayout(t[0]);return bb(r)}catch(r){fl.error("Unable to load layout",t[0],":",r),fl.warn("No valid layouts found, falling back to default layout")}}catch(t){fl.error("Unable to fetch layout list",t),fl.warn("Falling back to default layout")}return e?lH:dH}function hH(n){const{filterSets:e,layoutConfig:t,links:r}=n;return{filterSets:e,layoutConfig:t,links:r,version:2}}const Pl={exportLayout:hH,getDefaultLayout:uH,normalizeLayout:bb},pl=ie.module("DownloadServiceWorkerUtils");class ms{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(r=>{r.update(),pl.info("Registering service worker on ",t,r)}).catch(r=>{pl.error("Failed to register service worker",r)})}):pl.info("Service worker is not supported."))}static async getServiceWorker(){if("serviceWorker"in navigator){const t=(await navigator.serviceWorker.getRegistrations()).find(r=>r.scope.endsWith(ms.DOWNLOAD_PATH));if(t&&t.active)return pl.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 bt=ie.module("AppMainContainer");class Xa extends E.Component{static handleWindowBeforeUnload(e){e.preventDefault(),e.returnValue=""}static hydrateConsole(e,t){return Qu.hydrate({...e,unzip:r=>_f.loadAsync(r).then(i=>Object.values(i.files))},t)}static handleRefresh(){bt.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=h.createRef(),this.state={contextActions:[{action:()=>{this.handleToolSelect(pr.LINKER)},shortcut:ii.LINKER,isGlobal:!0},{action:()=>{this.sendClearFilter()},shortcut:Nr.TABLE.CLEAR_ALL_FILTERS,isGlobal:!0},{action:()=>{bt.debug("Consume unhandled save shortcut")},shortcut:ii.SAVE,isGlobal:!0}],isAuthFailed:!1,isDisconnected:!1,isPanelsMenuShown:!1,isSettingsMenuShown:!1,widgets:[]}}componentDidMount(){this.initWidgets(),this.startListeningForDisconnect(),window.addEventListener("beforeunload",Xa.handleWindowBeforeUnload)}componentDidUpdate(e){const{dashboardData:t}=this.props;e.dashboardData!==t&&this.handleDataChange(t)}componentWillUnmount(){this.deinitWidgets(),this.stopListeningForDisconnect(),window.removeEventListener("beforeunload",Xa.handleWindowBeforeUnload)}goldenLayout;importElement;widgetListenerRemover;initWidgets(){const{connection:e}=this.props;if(e.subscribeToFieldUpdates==null){bt.warn("subscribeToFieldUpdates not supported, not initializing widgets");return}this.widgetListenerRemover=e.subscribeToFieldUpdates(t=>{bt.debug("Got updates",t),this.setState(({widgets:r})=>{const{updated:i,created:a,removed:o}=t,s=[...i,...o],l=r.filter(u=>!s.some(c=>c.name===u.name));return[...i,...a].forEach(u=>{u.name!=null&&u.name!==""&&l.push(u)}),{widgets:l}})})}deinitWidgets(){this.widgetListenerRemover?.()}openNotebookFromURL(){const{match:e}=this.props,{notebookPath:t}=e.params;if(t){const{session:r,sessionConfig:i}=this.props;if(r==null||i==null){bt.error("No session available to open notebook URL",t);return}const a={id:`/${t}`,itemName:`/${t}`},o=i.type,s={value:null,language:o};this.emitLayoutEvent(ze.SELECT_NOTEBOOK,r,o,s,a,!0)}}sendClearFilter(){this.emitLayoutEvent(rt.CLEAR_ALL_FILTERS)}emitLayoutEvent(e,...t){this.goldenLayout?.eventHub.emit(e,...t)}handleError(e){ye.isCanceled(e)||bt.error(e)}handleSettingsMenuHide(){this.setState({isSettingsMenuShown:!1})}handleSettingsMenuShow(){this.setState({isSettingsMenuShown:!0})}handleControlSelect(e,t){switch(bt.debug("handleControlSelect",e),e){case Vi.DROPDOWN_FILTER:this.emitLayoutEvent(rt.OPEN_DROPDOWN,{title:"DropdownFilter",type:e,createNewStack:!0,dragEvent:t});break;case Vi.INPUT_FILTER:this.emitLayoutEvent(rt.OPEN_INPUT,{title:"InputFilter",type:e,createNewStack:!0,dragEvent:t});break;case Vi.MARKDOWN:this.emitLayoutEvent(xC.OPEN,{title:"Markdown",type:e,dragEvent:t});break;case Vi.FILTER_SET_MANAGER:this.emitLayoutEvent(rt.OPEN_FILTER_SET_MANAGER,{title:"FilterSets",type:e,dragEvent:t});break;default:throw new Error(`Unrecognized control type ${e}`)}}handleToolSelect(e){bt.debug("handleToolSelect",e);const{activeTool:t,setActiveTool:r}=this.props;r(t===e?pr.DEFAULT:e)}handleClearFilter(){this.sendClearFilter()}handleDataChange(e){const{updateWorkspaceData:t}=this.props,{closed:r,filterSets:i,links:a}=e;t({closed:r,filterSets:i,links:a})}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}),bt.debug("handleWidgetSelect",e,t),this.openWidget(e,t)}handleWidgetsMenuClose(){this.setState({isPanelsMenuShown:!1})}handleAutoFillClick(){const{widgets:e}=this.state;bt.debug("handleAutoFillClick",e);const t=e.sort((r,i)=>r.title!=null&&i.title!=null?r.title.localeCompare(i.title):0);for(let r=0;r<t.length;r+=1)this.openWidget(t[r])}handleExportLayoutClick(){bt.info("handleExportLayoutClick"),this.setState({isPanelsMenuShown:!1});try{const{workspace:e}=this.props,{data:t}=e,r=Pl.exportLayout(t);bt.info("handleExportLayoutClick exportedConfig",r);const i=new Blob([JSON.stringify(r)],{type:"application/json"}),a=Tr.i18n.DateTimeFormat.format("yyyy-MM-dd-HHmmss",new Date),o=document.createElement("a");o.href=URL.createObjectURL(i),o.download=`deephaven-app-layout-${a}.json`,o.click()}catch(e){bt.error("Unable to export layout",e)}}handleImportLayoutClick(){bt.info("handleImportLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.importElement.current!=null&&(this.importElement.current.value="",this.importElement.current.click())}handleResetLayoutClick(){bt.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(){bt.info("Disconnected from server"),this.setState({isDisconnected:!0})}handleReconnect(){bt.info("Reconnected to server"),this.setState({isDisconnected:!1})}handleReconnectAuthFailed(){bt.warn("Reconnect authentication failed"),this.setState({isAuthFailed:!0})}async importLayoutFile(e){try{const{updateDashboardData:t,updateWorkspaceData:r}=this.props,i=await e.text(),a=JSON.parse(i),{filterSets:o,layoutConfig:s,links:l}=Pl.normalizeLayout(a);r({layoutConfig:s}),t(dn,{filterSets:o,links:l})}catch(t){bt.error("Unable to import layout",t)}}async resetLayout(){const{layoutStorage:e,session:t}=this.props,{filterSets:r,layoutConfig:i,links:a}=await Pl.getDefaultLayout(e,t!==void 0),{updateDashboardData:o,updateWorkspaceData:s}=this.props;s({layoutConfig:i}),o(dn,{filterSets:r,links:a})}handlePaste(e){if(e.target instanceof HTMLElement&&e.target.closest(".monaco-editor"))return;const{clipboardData:t}=e,r=t.getData("Text"),i=/“|”/g;i.test(r)&&(e.preventDefault(),e.stopPropagation(),document.execCommand("insertText",!1,r.replace(i,'"')))}handleLoadTablePlugin(e){const{plugins:t}=this.props,r=t.get(e);if(r!=null&&r.TablePlugin!=null)return r.TablePlugin;const i=`Unable to find table plugin ${e}.`;return bt.error(i),R.jsx("div",{className:"error-message",children:`${i}`})}startListeningForDisconnect(){const{connection:e}=this.props;e.addEventListener(Tr.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.addEventListener(Tr.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.addEventListener(Tr.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}stopListeningForDisconnect(){const{connection:e}=this.props;e.removeEventListener(Tr.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.removeEventListener(Tr.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.removeEventListener(Tr.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}hydrateDefault(e,t){const{connection:r}=this.props,{metadata:i}=e;if(i?.type!=null&&(i?.id!=null||i?.name!=null)){const a=i.id!=null?{type:i.type,id:i.id}:{type:i.type,name:i.name,title:i.name};return{fetch:()=>r.getObject(a),localDashboardId:t,...e}}return Qu.hydrate(e,t)}hydrateGrid(e,t){return this.hydrateTable(e,t,e.metadata.type??Tr.VariableType.TABLE)}hydratePandas(e,t){return this.hydrateTable(e,t,Tr.VariableType.PANDAS)}hydrateTable(e,t,r=Tr.VariableType.TABLE){const{connection:i}=this.props;return{...e,getDownloadWorker:ms.getServiceWorker,loadPlugin:this.handleLoadTablePlugin,localDashboardId:t,makeModel:()=>iH(Tr,i,e.metadata,r)}}hydrateChart(e,t){const{connection:r}=this.props;return{...e,localDashboardId:t,makeModel:()=>{const{metadata:i,panelState:a}=e;return nH(Tr,r,i,a)}}}openWidget(e,t){const{connection:r}=this.props;this.emitLayoutEvent(Ee.OPEN,{dragEvent:t,fetch:()=>r.getObject(e),widget:e})}getDashboardPlugins=fe(e=>[...e.entries()].filter(([,t])=>t.DashboardPlugin!=null).map(([t,{DashboardPlugin:r}])=>R.jsx(r,{},t)));render(){const{activeTool:e,plugins:t,user:r,workspace:i,serverConfigValues:a}=this.props,{data:o}=i,{layoutConfig:s}=o,{permissions:l}=r,{canUsePanels:d}=l,{contextActions:u,isAuthFailed:c,isDisconnected:m,isPanelsMenuShown:v,isSettingsMenuShown:g,widgets:f}=this.state,p=this.getDashboardPlugins(t);return R.jsxs("div",{className:Q("app-main-tabs","w-100","h-100","d-flex","flex-column",e?`active-tool-${e.toLowerCase()}`:""),onPaste:this.handlePaste,tabIndex:-1,children:[R.jsx("nav",{className:"nav-container",children:R.jsxs("div",{className:"app-main-top-nav-menus",children:[R.jsx("img",{src:cb,alt:"Deephaven Data Labs",width:"115px",className:"ml-1"}),R.jsxs("div",{children:[R.jsxs(W,{kind:"ghost",className:"btn-panels-menu",icon:SE,onClick:()=>{},children:["Controls",R.jsx(Fc,{handleControlSelect:this.handleControlSelect,handleToolSelect:this.handleToolSelect,onClearFilter:this.handleClearFilter})]}),d&&R.jsxs(W,{kind:"ghost",className:"btn-panels-menu btn-show-panels","data-testid":"app-main-panels-button",onClick:this.handleWidgetMenuClick,icon:EE,children:["Panels",R.jsx(hd,{isShown:v,className:"panels-menu-popper",onExited:this.handleWidgetsMenuClose,options:{placement:"bottom"},closeOnBlur:!0,interactive:!0,children:R.jsx(rH,{widgets:f,onExportLayout:this.handleExportLayoutClick,onImportLayout:this.handleImportLayoutClick,onResetLayout:this.handleResetLayoutClick,onSelect:this.handleWidgetSelect})})]}),R.jsx(W,{kind:"ghost",className:Q("btn-settings-menu",{"text-warning":r.operateAs!=null&&r.operateAs!==r.name}),onClick:this.handleSettingsMenuShow,icon:R.jsxs("span",{className:"fa-layers",children:[R.jsx(re,{icon:gs,transform:"grow-3 right-1 down-1"}),m&&!c&&R.jsxs(R.Fragment,{children:[R.jsx(re,{icon:as,color:Qe.background,transform:"grow-2 right-8 down-8.5 rotate-45"}),R.jsx(re,{icon:am,color:Qe.danger,transform:"shrink-5 right-6 down-6"})]})]}),tooltip:m&&!c?"Server disconnected":"User Settings"})]})]})}),R.jsxs(iD,{emptyDashboard:R.jsx(aH,{onAutoFillClick:this.handleAutoFillClick}),id:dn,layoutConfig:s,onGoldenLayoutChange:this.handleGoldenLayoutChange,onLayoutConfigChange:this.handleLayoutConfigChange,onLayoutInitialized:this.openNotebookFromURL,hydrate:this.hydrateDefault,children:[R.jsx(xk,{hydrate:this.hydrateGrid,getDownloadWorker:ms.getServiceWorker,loadPlugin:this.handleLoadTablePlugin}),R.jsx(Nk,{hydrate:this.hydrateChart}),R.jsx(Fk,{}),R.jsx(Lk,{hydrateConsole:Xa.hydrateConsole,notebooksUrl:new URL("notebooks/",document.baseURI).href}),R.jsx(kk,{}),R.jsx(ix,{hydrate:this.hydratePandas}),R.jsx(nx,{}),R.jsx(ex,{}),p]}),R.jsx(_r,{in:g,timeout:Qe.transitionMidMs,classNames:"slide-left",mountOnEnter:!0,unmountOnExit:!0,children:R.jsx(bn,{serverConfigValues:a,onDone:this.handleSettingsMenuHide,user:r})}),R.jsx(oe,{actions:u}),R.jsx("input",{ref:this.importElement,type:"file",accept:".json",style:{display:"none"},onChange:this.handleImportLayoutFiles}),R.jsx(AE,{isOpen:m&&!c,debounceMs:1e3,children:R.jsx(LE,{icon:am,title:R.jsxs(R.Fragment,{children:[R.jsx(Dn,{})," Attempting to reconnect..."]}),subtitle:"Please check your network connection."})}),R.jsx(os,{confirmButtonText:"Refresh",onConfirm:Xa.handleRefresh,isOpen:c,headerText:"Authentication failed",bodyText:"Credentials are invalid. Please refresh your browser to try and reconnect."})]})}}const cH=n=>({activeTool:bd(n),dashboardData:br(n,dn),layoutStorage:eH(n),plugins:eT(n),connection:TL(n,dn),session:wa(n,dn)?.session,sessionConfig:wa(n,dn)?.config,user:vp(n),workspace:Cd(n),serverConfigValues:tH(n)}),mH=Ht(cH,{setActiveTool:Ed,updateDashboardData:Rn,updateWorkspaceData:Ap})(lS(Xa));function vH(){return R.jsxs("div",{className:"app",children:[R.jsx(mH,{}),R.jsx(Kf,{})]})}const gH=ie.module("LocalWorkspaceStorage");class Za{static STORAGE_KEY="deephaven.WorkspaceStorage";static async makeDefaultWorkspaceData(e,t){const{filterSets:r,links:i,layoutConfig:a}=await Pl.getDefaultLayout(e,t?.isConsoleAvailable);return{settings:{defaultDateTimeFormat:yt.DEFAULT_DATETIME_FORMAT_STRING,formatter:[],timeZone:yt.DEFAULT_TIME_ZONE_ID,showTimeZone:!1,showTSeparator:!0,disableMoveConfirmation:!1,defaultDecimalFormatOptions:{defaultFormatString:Je.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:wt.DEFAULT_FORMAT_STRING},truncateNumbersWithPound:!1,defaultNotebookSettings:{isMinimapEnabled:!1}},layoutConfig:a,closed:[{}],links:i,filterSets:r}}static async makeDefaultWorkspace(e,t){return{data:await Za.makeDefaultWorkspaceData(e,t)}}layoutStorage;constructor(e){this.layoutStorage=e}async load(e){try{return JSON.parse(localStorage.getItem(Za.STORAGE_KEY)??"")}catch{return gH.info("Unable to load workspace data, initializing to default data"),Za.makeDefaultWorkspace(this.layoutStorage,e)}}async save(e){return localStorage.setItem(Za.STORAGE_KEY,JSON.stringify(e)),e}}class fH{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 r=await(await this.storageService.loadFile(`${this.root}/${e}`)).text();return JSON.parse(r)}}const Vo=ie.module("GrpcFileStorageTable");class ed{static REFRESH_DEBOUNCE=50;storageService;baseRoot;root;currentSize=0;currentViewport;listeners=[];viewportUpdatePromise;currentViewportData;childTables=new Map;constructor(e,t="",r=t){this.storageService=e,this.baseRoot=t,this.root=r,r===t&&(this.doRefresh=et(this.doRefresh.bind(this),ed.REFRESH_DEBOUNCE))}removeBaseRoot(e){return Ce.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 r=e.split("/");let i=r.shift();if((i===void 0||i==="")&&(i=r.shift()),i===void 0||i==="")throw new Error(`Invalid path: ${e}`);const a=r.join("/");if(t){if(!this.childTables.has(i)){const o=new ed(this.storageService,this.baseRoot,`${this.root}/${i}`);this.childTables.set(i,o)}a&&this.childTables.get(i)?.setExpanded(a,t)}else this.childTables.has(i)&&(a?this.childTables.get(i)?.setExpanded(a,t):this.childTables.delete(i));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){Vo.debug2("doRefresh",this.root),e(this.fetchData())}refresh(){Vo.debug2("refresh",this.root),this.viewportUpdatePromise?.cancel();const e=new Promise(r=>{this.doRefresh(r)}),t=ye.makeCancelable(e.then(r=>{if(this.viewportUpdatePromise!==t)throw new ld;return this.currentViewportData=r,this.sendUpdate(),r}));t.catch(r=>{ye.isCanceled(r)||Vo.error("Error updating viewport",r)}),this.viewportUpdatePromise=t}refreshInternal(){try{this.refresh()}catch(e){ye.isCanceled(e)||Vo.error("Unable to refresh data",e)}}async fetchData(){const{currentViewport:e}=this;if(!e)throw new Error("No viewport set");let r=(await this.storageService.listItems(this.root)).map(i=>({type:i.type,filename:this.removeBaseRoot(i.filename),basename:i.basename,id:this.removeBaseRoot(i.filename),isExpanded:i.type==="directory"?this.childTables.has(i.basename):void 0})).sort((i,a)=>i.type!==a.type?i.type==="directory"?-1:1:i.basename.localeCompare(a.basename));for(let i=0;i<r.length;i+=1){const a=r[i],{basename:o,filename:s}=a;if(s===this.removeBaseRoot(`${this.root}/${o}`)&&a.type==="directory"){const l=this.childTables.get(o);if(l!=null){l.setViewport({top:0,bottom:e.bottom-i});const d=await l.getViewportData();r.splice(i+1,0,...d.items)}}}return this.currentSize=r.length,Vo.debug2(this.root,"items",r,e),r=r.slice(e.top,e.bottom),{items:r,offset:e.top}}sendUpdate(){const{listeners:e}=this,t=this.currentViewportData??{items:[],offset:0};for(let r=0;r<e.length;r+=1)e[r](t)}}const pH=ie.module("GrpcFileStorage");class Ic{static REFRESH_THROTTLE=150;storageService;tables=[];root;constructor(e,t=""){this.storageService=e,this.root=t}removeRoot(e){return Ce.removeRoot(this.root,e)}addRoot(e){return Ce.addRoot(this.root,e)}async createDirectory(e){return await this.storageService.createDirectory(this.addRoot(e)),this.refreshTables(),{type:"directory",id:e,filename:e,basename:Ce.getBaseName(e)}}async getTable(){const e=new ed(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 r=await(await this.storageService.loadFile(this.addRoot(e))).text();return{filename:e,basename:Ce.getBaseName(e),content:r}}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(Ce.getPath(e)),Ce.getBaseName(e));if(t.length===0)throw new Ec;if(t.length>1)throw pH.error("More than one matching file found, should never happen.",t),new Error("More than one matching file found");const r=t[0];return{filename:this.removeRoot(r.filename),basename:r.basename,id:this.removeRoot(r.filename),type:r.type}}refreshTables=zi(()=>{this.tables.forEach(e=>e.refresh())},Ic.REFRESH_THROTTLE)}const CH=ie.module("AppInit");function _c(n){const{workspace:e,setActiveTool:t,setApi:r,setCommandHistoryStorage:i,setDashboardData:a,setFileStorage:o,setLayoutStorage:s,setDashboardConnection:l,setDashboardSessionWrapper:d,setPlugins:u,setUser:c,setWorkspace:m,setWorkspaceStorage:v,setServerConfigValues:g}=n,f=ya(),p=kE(),C=xE(),b=HE(),S=E.useContext(UE),w=E.useContext($E),[y,T]=E.useState();E.useEffect(function(){u(b)},[b,u]),E.useEffect(function(){async function I(){try{const _=await BE(),M=await VE(f,C,_),V=p.getStorageService(),H=new fH(V,"/layouts"),z=new Ic(V,"/notebooks"),G=new Za(H),K=new Dx,[ee,te]=await Promise.all([p.getServerConfigValues(),G.load({isConsoleAvailable:M!==void 0})]),{data:A}=te,{settings:N}=A;N.defaultDecimalFormatOptions===void 0&&(N.defaultDecimalFormatOptions={defaultFormatString:Je.DEFAULT_FORMAT_STRING}),N.defaultIntegerFormatOptions===void 0&&(N.defaultIntegerFormatOptions={defaultFormatString:wt.DEFAULT_FORMAT_STRING}),N.truncateNumbersWithPound===void 0&&(N.truncateNumbersWithPound=!1);const{shortcutOverrides:k={}}=N,X=Jr.isMacPlatform?k.mac??{}:k.windows??{};Object.entries(X).forEach(([se,ke])=>{Ye.get(se)?.setKeyState(ke)});const j={filterSets:A.filterSets,links:A.links},J=new Map(ee),ae="",de={name:ae,operateAs:ae,groups:[],...S,permissions:{isACLEditor:!1,isSuperUser:!1,isQueryViewOnly:!1,isNonInteractive:!1,canUsePanels:!0,canCreateDashboard:!0,canCreateCodeStudio:!0,canCreateQueryMonitor:!0,canCopy:J.get("internal.webClient.appInit.canCopy")!=="false",canDownloadCsv:J.get("internal.webClient.appInit.canDownloadCsv")!=="false",canLogout:!0,...w}};r(f),t(pr.DEFAULT),g(J),i(K),a(dn,j),o(z),s(H),l(dn,C),M!==void 0&&d(dn,M),c(de),v(G),m(te)}catch(_){CH.error(_),T(_)}}I()},[f,p,C,t,r,i,a,o,s,l,d,c,m,v,g,S,w]);const P=e==null&&y==null,D=!P&&y==null,O=y!=null?`${y}`:null;return R.jsxs(R.Fragment,{children:[D&&R.jsx(vH,{}),R.jsx(rd,{isLoading:P&&O==null,isLoaded:D,errorMessage:O})]})}_c.propTypes={workspace:Y.shape({}),workspaceStorage:Y.shape({close:Y.func}),setActiveTool:Y.func.isRequired,setApi:Y.func.isRequired,setCommandHistoryStorage:Y.func.isRequired,setDashboardData:Y.func.isRequired,setFileStorage:Y.func.isRequired,setLayoutStorage:Y.func.isRequired,setDashboardConnection:Y.func.isRequired,setDashboardSessionWrapper:Y.func.isRequired,setPlugins:Y.func.isRequired,setUser:Y.func.isRequired,setWorkspace:Y.func.isRequired,setWorkspaceStorage:Y.func.isRequired};_c.defaultProps={workspace:null,workspaceStorage:null};const bH=n=>({workspace:Cd(n),workspaceStorage:Z0(n)}),Pf=Ht(bH,{setActiveTool:Ed,setApi:aT,setCommandHistoryStorage:sT,setDashboardData:nC,setFileStorage:lT,setLayoutStorage:Rx,setDashboardConnection:OL,setDashboardSessionWrapper:PL,setPlugins:uT,setUser:iT,setWorkspace:Mp,setWorkspaceStorage:oT,setServerConfigValues:hT})(_c),SH=document.location.pathname;function EH(){return R.jsx(dS,{basename:SH,children:R.jsxs(uS,{children:[R.jsx(Zc,{exact:!0,path:"/",component:Pf}),R.jsx(Zc,{path:"/notebooks/:notebookPath+",component:Pf}),R.jsx(hS,{from:"*",to:"/"})]})})}function NH(){return ms.registerOnLoaded(),gr.init({getWorker:()=>new vS}),window["__react-beautiful-dnd-disable-dev-warnings"]=!0,R.jsx(cS,{store:Gh,children:R.jsx(EH,{})})}export{NH as AppRoot,NH as default};
42
- //# sourceMappingURL=AppRoot-6ce43683.js.map
42
+ //# sourceMappingURL=AppRoot-1e1d5c64.js.map