@deephaven/code-studio 1.22.2-alpha-pivot-builder.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/build/assets/{AppRoot-BzNjugdN.js → AppRoot-DbQCWZTt.js} +7 -7
  2. package/build/assets/{AppRoot-BzNjugdN.js.map → AppRoot-DbQCWZTt.js.map} +1 -1
  3. package/build/assets/{Chart-B0hsuf2K.js → Chart-DcAu2C8r.js} +2 -2
  4. package/build/assets/{Chart-B0hsuf2K.js.map → Chart-DcAu2C8r.js.map} +1 -1
  5. package/build/assets/{ControlType-RF9tnBjv.js → ControlType-Befg12ds.js} +19 -19
  6. package/build/assets/ControlType-Befg12ds.js.map +1 -0
  7. package/build/assets/{FormatterUtils-De1ep0Fi.js → FormatterUtils-MUBvtVZH.js} +2 -2
  8. package/build/assets/{FormatterUtils-De1ep0Fi.js.map → FormatterUtils-MUBvtVZH.js.map} +1 -1
  9. package/build/assets/{Grid-CdZ2x-DW.js → Grid-NISpLPEC.js} +2 -2
  10. package/build/assets/{Grid-CdZ2x-DW.js.map → Grid-NISpLPEC.js.map} +1 -1
  11. package/build/assets/{GridTokenMouseHandler-CF6sl-8Q.js → GridTokenMouseHandler-DYoFGIB4.js} +2 -2
  12. package/build/assets/{GridTokenMouseHandler-CF6sl-8Q.js.map → GridTokenMouseHandler-DYoFGIB4.js.map} +1 -1
  13. package/build/assets/{IrisGrid-txjFvl3W.css → IrisGrid-4aw2vW5N.css} +1 -1
  14. package/build/assets/IrisGrid-DNjLcT3l.js +15 -0
  15. package/build/assets/IrisGrid-DNjLcT3l.js.map +1 -0
  16. package/build/assets/{IrisGridModel-CqhJH6G0.js → IrisGridModel-DR8-Pxhc.js} +5 -5
  17. package/build/assets/IrisGridModel-DR8-Pxhc.js.map +1 -0
  18. package/build/assets/{IrisGridShortcuts-BHO8C2sg.js → IrisGridShortcuts-CvKofD7x.js} +2 -2
  19. package/build/assets/{IrisGridShortcuts-BHO8C2sg.js.map → IrisGridShortcuts-CvKofD7x.js.map} +1 -1
  20. package/build/assets/{IrisGridThemeProvider-xjgxYUOh.js → IrisGridThemeProvider-5LSst4dQ.js} +2 -2
  21. package/build/assets/IrisGridThemeProvider-5LSst4dQ.js.map +1 -0
  22. package/build/assets/{IrisGridThemeProvider-CBOV8q-p.css → IrisGridThemeProvider-BheYBAWy.css} +1 -1
  23. package/build/assets/{LocalWorkspaceStorage-Bbc6kAsZ.js → LocalWorkspaceStorage-BnIfiumx.js} +6 -6
  24. package/build/assets/LocalWorkspaceStorage-BnIfiumx.js.map +1 -0
  25. package/build/assets/{MarkdownEditor-BvFoKxjZ.js → MarkdownEditor-CE0PRr71.js} +2 -2
  26. package/build/assets/{MarkdownEditor-BvFoKxjZ.js.map → MarkdownEditor-CE0PRr71.js.map} +1 -1
  27. package/build/assets/{MarkdownNotebook-fgs2RrxF.js → MarkdownNotebook-_mAIkamc.js} +2 -2
  28. package/build/assets/{MarkdownNotebook-fgs2RrxF.js.map → MarkdownNotebook-_mAIkamc.js.map} +1 -1
  29. package/build/assets/{MissingPartitionError-EswE0n38.js → MissingPartitionError-COQPMoCk.js} +2 -2
  30. package/build/assets/{MissingPartitionError-EswE0n38.js.map → MissingPartitionError-COQPMoCk.js.map} +1 -1
  31. package/build/assets/{MockChartModel-BoOskcVW.js → MockChartModel-B1CLYsnL.js} +2 -2
  32. package/build/assets/{MockChartModel-BoOskcVW.js.map → MockChartModel-B1CLYsnL.js.map} +1 -1
  33. package/build/assets/{StyleGuideRoot-BzThAiXJ.js → StyleGuideRoot-dA2xCRM4.js} +7 -7
  34. package/build/assets/StyleGuideRoot-dA2xCRM4.js.map +1 -0
  35. package/build/assets/{index-D_FMOtd2.js → index-CNYwQhEi.js} +3 -3
  36. package/build/assets/{index-D_FMOtd2.js.map → index-CNYwQhEi.js.map} +1 -1
  37. package/build/assets/{index-D-j3HMMZ.js → index-CeeM9lsZ.js} +18 -18
  38. package/build/assets/index-CeeM9lsZ.js.map +1 -0
  39. package/build/assets/index-CjKdwP8V.js +25 -0
  40. package/build/assets/index-CjKdwP8V.js.map +1 -0
  41. package/build/index.html +2 -2
  42. package/package.json +31 -31
  43. package/build/assets/ControlType-RF9tnBjv.js.map +0 -1
  44. package/build/assets/IrisGrid-Cn6l58Ry.js +0 -15
  45. package/build/assets/IrisGrid-Cn6l58Ry.js.map +0 -1
  46. package/build/assets/IrisGridModel-CqhJH6G0.js.map +0 -1
  47. package/build/assets/IrisGridThemeProvider-xjgxYUOh.js.map +0 -1
  48. package/build/assets/LocalWorkspaceStorage-Bbc6kAsZ.js.map +0 -1
  49. package/build/assets/StyleGuideRoot-BzThAiXJ.js.map +0 -1
  50. package/build/assets/index-B1JEXjop.js +0 -25
  51. package/build/assets/index-B1JEXjop.js.map +0 -1
  52. package/build/assets/index-D-j3HMMZ.js.map +0 -1
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./StyleGuideRoot-BzThAiXJ.js","./vendor-CLIsHur_.js","./helpers-BosuxZz1.js","./vendor-V6ynCsSj.css","./index-D_FMOtd2.js","./monaco-DaE0jI-i.js","./monaco-CgHo24-M.css","./index-CwMW8ik0.css","./IrisGridModel-CqhJH6G0.js","./ControlType-RF9tnBjv.js","./ControlType-DDy7c-ZY.css","./IrisGridModel-CSTdZTzd.css","./MockChartModel-BoOskcVW.js","./GridTokenMouseHandler-CF6sl-8Q.js","./IrisGridShortcuts-BHO8C2sg.js","./useMergeRef-BO8MVMb8.js","./IrisGridShortcuts-CJtrNKDP.css","./GridTokenMouseHandler-DTMTgCrk.css","./MockChartModel-XTjAvjXO.css","./Grid-CdZ2x-DW.js","./Grid-DPUNpG8i.css","./LocalWorkspaceStorage-Bbc6kAsZ.js","./LocalWorkspaceStorage-Czsna8UP.css","./StyleGuideRoot-BXf6u3u6.css"])))=>i.map(i=>d[i]);
2
- var kt=Object.defineProperty;var Lt=(a,s,e)=>s in a?kt(a,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[s]=e;var v=(a,s,e)=>Lt(a,typeof s!="symbol"?s+"":s,e);import{X as it,Y as Pt,Z as At,r as m,I as n,_ as pe,a0 as lt,U as X,a1 as je,K as R,M as E,a2 as _t,a3 as ge,a4 as ce,a5 as Oe,a6 as ke,a7 as be,a8 as Mt,a9 as Ut,aa as Kt,ab as $t,H as Gt,ac as Wt,ad as Bt,ae as Vt,af as Ht,ag as Yt,ah as Zt,ai as ve,aj as zt}from"./vendor-CLIsHur_.js";import{_ as qt,W as Xt,a as Jt}from"./monaco-DaE0jI-i.js";import{O as de,P as Y,T as L,I as A,D as _,a as W,b as Qt,u as ct,F as es,c as F,d as ts,e as ae,g as ss,f as dt,h as ns,i as as,j as os,k as rs,l as ut,m as ht,n as mt,o as pt,p as gt,q as is,S as ue,B as j,C as B,r as P,s as Le,t as ls,K as cs,v as Me,w as ds,x as us,y as hs,z as he,A as ms,E as ps,H as Pe,G as Q,J as gs,L as fs,M as bs,R as Ue,N as oe,Q as ye,U as Z,V as vs,W as K,X as me,Y as ys,Z as Ss,_ as xs,$ as Cs,a0 as Ts,a1 as ws,a2 as ft,a3 as bt,a4 as vt,a5 as js,a6 as Ke,a7 as Ds,a8 as Es,a9 as Ns,aa as D,ab as Fs,ac as Rs,ad as Is,ae as Os,af as ks,ag as Ls,ah as re,ai as Ps,aj as As,ak as _s,al as Ms,am as Us,an as Ks,ao as $s,ap as Gs,aq as Ws,ar as Bs,as as Vs,at as Hs,au as Ys,av as Zs,aw as zs,ax as qs,ay as Xs,az as Js,aA as Qs,aB as en,aC as tn,aD as sn,aE as nn,aF as an,aG as on,aH as rn,aI as ln,aJ as cn,aK as dn}from"./ControlType-RF9tnBjv.js";import{L as $,v as z,a as un,M as hn,b as mn,c as pn,d as gn,e as ne,f as fn,g as bn,h as vn,m as yn,s as Sn,l as xn,i as Cn,j as Tn,k as wn,n as jn,o as Dn,p as En,q as Nn,r as Fn,t as Rn,u as In,w as On,x as kn,y as Ln,z as Pn,A as An,B as _n,C as Mn,D as $e,E as Ge,F as We,G as Un,H as Kn,I as $n,J as Gn,K as Wn,N as yt}from"./index-D_FMOtd2.js";import{C as Bn,T as Vn,R as Hn,B as Yn,a as Zn,e as zn,L as St,N as V,c as qn,U as Se,g as Xn,b as Jn,A as Qn,u as ea,d as ta,f as sa,h as na,i as aa,l as oa,G as ra,j as ia,k as Be}from"./LocalWorkspaceStorage-Bbc6kAsZ.js";import{P as la,I as xt,S as ca,D as da}from"./IrisGridShortcuts-BHO8C2sg.js";import"./helpers-BosuxZz1.js";import"./useMergeRef-BO8MVMb8.js";class Ve{static makeSortConfig(s,e){return{column:s,direction:e}}static makeFilterConfig(s){var e=[],t=[];return s.forEach((o,r)=>{e.push(o),r>0&&t.push(de.and)}),{filterItems:e,filterOperators:t}}static combineFilterConfigs(s,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:de.and;return{filterItems:[...s.filterItems,...e.filterItems],filterOperators:[...s.filterOperators,t,...e.filterOperators]}}static makeFilterItem(s,e,t){return{columnName:s,type:e,value:t}}}function ua(a,s,e){if(a.length>s){var t=a.length-e;return{toKeep:a.slice(t),toPrune:a.slice(0,t)}}return{toKeep:a,toPrune:[]}}function ha(a,s){return fa(a)||ga(a,s)||pa(a,s)||ma()}function ma(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pa(a,s){if(a){if(typeof a=="string")return He(a,s);var e={}.toString.call(a).slice(8,-1);return e==="Object"&&a.constructor&&(e=a.constructor.name),e==="Map"||e==="Set"?Array.from(a):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?He(a,s):void 0}}function He(a,s){(s==null||s>a.length)&&(s=a.length);for(var e=0,t=Array(s);e<s;e++)t[e]=a[e];return t}function ga(a,s){var e=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(e!=null){var t,o,r,i,l=[],c=!0,d=!1;try{if(r=(e=e.call(a)).next,s!==0)for(;!(c=(t=r.call(e)).done)&&(l.push(t.value),l.length!==s);c=!0);}catch(h){d=!0,o=h}finally{try{if(!c&&e.return!=null&&(i=e.return(),Object(i)!==i))return}finally{if(d)throw o}}return l}}function fa(a){if(Array.isArray(a))return a}function Ye(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function Ze(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?Ye(Object(e),!0).forEach(function(t){I(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):Ye(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function ze(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function M(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){ze(r,t,o,i,l,"next",c)}function l(c){ze(r,t,o,i,l,"throw",c)}i(void 0)})}}function I(a,s,e){return(s=ba(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function ba(a){var s=va(a,"string");return typeof s=="symbol"?s:s+""}function va(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var xe=$.module("PouchStorageTable"),ya="Deephaven.";it.plugin(Pt);function Sa(a,s){switch(a){case L.in:case L.contains:return{$regex:new RegExp("".concat(s)).toString()};case L.inIgnoreCase:return{$regex:new RegExp("".concat(s),"i").toString()};case L.eq:return{$eq:s};case L.notEq:return{$ne:s};case L.greaterThan:return{$gt:s};case L.greaterThanOrEqualTo:return{$gte:s};case L.lessThan:return{$lt:s};case L.lessThanOrEqualTo:return{$lte:s};case L.startsWith:return{$regex:new RegExp("^".concat(s,".*")).toString()};default:throw new Error("Unsupported type: ".concat(a))}}function xa(a){for(var s=a.filterItems,e=a.filterOperators,t=null,o=0;o<s.length;o+=1){var r=s[o],i=r.columnName,l=r.type,c=r.value,d={[i]:Sa(l,c)};if(o===0)t=d;else if(t!==null&&o-1<e.length){var h=e[o-1];if(h===de.and)t={$and:[t,d]};else if(h===de.or)t={$or:[t,d]};else throw new Error("Unexpected filter operator ".concat(h,", ").concat(d))}}if(t==null)throw new Error("Invalid filter config ".concat(a));return t}function Ce(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return{$and:[...a.map(s=>xa(s)),{name:{$gt:null}},{id:{$gt:null}}]}}function Ca(a){var s,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return[{id:e?"desc":"asc"},...(s=a==null?void 0:a.map(t=>({[t.column]:t.direction})))!==null&&s!==void 0?s:[]]}class Ta{constructor(s,e){I(this,"db",void 0),I(this,"changes",void 0),I(this,"listeners",[]),I(this,"itemListeners",new Map),I(this,"currentSize",0),I(this,"currentViewport",void 0),I(this,"currentReverse",!1),I(this,"currentFilter",null),I(this,"currentSort",null),I(this,"infoUpdatePromise",void 0),I(this,"viewportUpdatePromise",void 0),I(this,"currentViewportData",void 0),this.db=new it("".concat(ya).concat(s),e),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(s){return this.listeners=[...this.listeners,s],()=>{this.listeners=this.listeners.filter(e=>e!==s)}}onItemUpdate(s,e){return this.itemListeners.has(s)||this.itemListeners.set(s,[]),this.itemListeners.set(s,[...this.itemListeners.get(s),e]),this.refreshItem(s),()=>{this.itemListeners.set(s,this.itemListeners.get(s).filter(t=>t!==e))}}close(){this.listeners=[]}get size(){return this.currentSize}get viewport(){return this.currentViewport}setReversed(s){this.currentReverse=s,this.currentViewportData=void 0,this.refreshData()}setViewport(s){this.currentViewport=s,this.refreshInfo(),this.refreshData()}setSorts(s){this.currentSort=s,this.currentViewportData=void 0,this.refreshData()}setFilters(s){this.currentFilter=s,this.currentViewportData=void 0,this.refreshInfo(),this.refreshData()}get data(){return this.currentViewportData}getViewportData(){var s=this;return M(function*(){var e;return s.viewportUpdatePromise||s.refreshData(),(e=s.viewportUpdatePromise)!==null&&e!==void 0?e:Promise.resolve({items:[],offset:0})})()}put(s){var e=this;return M(function*(){var t=Ze(Ze({},s),{},{_id:s.id});return yield e.db.put(t),t})()}sendUpdate(){for(var s,e=this.listeners,t=(s=this.currentViewportData)!==null&&s!==void 0?s:{items:[],offset:0},o=0;o<e.length;o+=1)e[o](t)}sendItemUpdate(s){var e=this.itemListeners.get(s.id);if(e!==void 0)for(var t=0;t<e.length;t+=1)e[t](s)}dbUpdate(s){xe.debug("Update received",s),this.refreshInfo(),s.doc!==void 0&&this.sendItemUpdate(s.doc),this.refreshData()}fetchInfo(s){var e=this;return M(function*(){return e.db.find({selector:s,fields:[]})})()}refreshInfo(){var s=this;return M(function*(){try{var e,t;(e=s.infoUpdatePromise)===null||e===void 0||e.cancel(),s.infoUpdatePromise=Y.makeCancelable(s.fetchInfo(Ce((t=s.currentFilter)!==null&&t!==void 0?t:[])));var o=yield s.infoUpdatePromise;s.currentSize=o.docs.length,s.sendUpdate()}catch(r){if(!Y.isCanceled(r))throw xe.error("Unable to refreshInfo",r),r}})()}fetchViewportData(s,e,t){var o=this;return M(function*(){return o.db.find({selector:e,skip:s.top,limit:s.bottom-s.top+1,sort:t,fields:["id","name"]}).then(r=>({items:r.docs,offset:s.top}))})()}refreshData(){var s=this;return M(function*(){if(s.currentViewport)try{var e,t,o=Ce((e=s.currentFilter)!==null&&e!==void 0?e:[]),r=Ca(s.currentSort,s.currentReverse);(t=s.viewportUpdatePromise)===null||t===void 0||t.cancel(),s.viewportUpdatePromise=Y.makeCancelable(s.fetchViewportData(s.currentViewport,o,r));var i=yield s.viewportUpdatePromise;return s.currentViewportData=i,s.sendUpdate(),i}catch(l){if(!Y.isCanceled(l))throw xe.error("Unable to refreshData",l),l}})()}refreshItem(s){var e=this;return M(function*(){var t=yield e.db.find({selector:{id:s},limit:1}),o=t.docs[0];return o!==void 0&&e.sendItemUpdate(o),o})()}getSnapshot(s){var e=this;return M(function*(){var t=new Map,o=[{id:e.currentReverse?"desc":"asc"}];return yield Promise.all(s.map(function(){var r=M(function*(i){var l,c=ha(i,2),d=c[0],h=c[1],u=h-d+1;return e.db.find({selector:Ce((l=e.currentFilter)!==null&&l!==void 0?l:[]),skip:d,limit:u,sort:o,fields:["id","name"]}).then(p=>{for(var C=0;C<u;C+=1){var S=d+C;t.set(S,p.docs[C])}})});return function(i){return r.apply(this,arguments)}}())),t})()}}function qe(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function ie(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?qe(Object(e),!0).forEach(function(t){Ct(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):qe(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function Xe(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function J(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){Xe(r,t,o,i,l,"next",c)}function l(c){Xe(r,t,o,i,l,"throw",c)}i(void 0)})}}function Ct(a,s,e){return(s=wa(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function wa(a){var s=ja(a,"string");return typeof s=="symbol"?s:s+""}function ja(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var Da=2500,Ea=2e3,O=$.module("PouchCommandHistoryTable");class Je extends Ta{constructor(s,e){var t;super("CommandHistoryStorage.".concat(s),{auto_compaction:!0,revs_limit:1}),Ct(this,"searchText",void 0),this.cache=e,this.cache.tableRegistry.has(this.cacheKey)||this.cache.tableRegistry.set(this.cacheKey,new Set),O.debug("Adding table to registry",this.cacheKey),(t=this.cache.tableRegistry.get(this.cacheKey))===null||t===void 0||t.add(this)}get cacheKey(){return this.db.name}setSearch(s){O.debug("Setting search filters",s),this.searchText=s.trim().toLowerCase(),this.setFilters(s?[Ve.makeFilterConfig([Ve.makeFilterItem("name",L.contains,s)])]:[])}dbUpdate(s){O.debug("Clearing cache and refreshing data",s),this.cache.response.delete(this.cacheKey),super.dbUpdate(s)}fetchData(s){var e=this;return J(function*(){return Y.withTimeout(0,J(function*(){e.cache.response.has(e.cacheKey)?O.debug("Fetching from cache",e.searchText,e.viewport):(O.debug("Fetching from PouchDB",e.searchText,e.viewport),e.cache.response.set(e.cacheKey,e.db.allDocs({include_docs:!0}).then(o=>{var r=o.rows.map(d=>d.doc).filter(d=>{var h=d.name;return h});O.debug("Fetched ".concat(r.length," command history items"));var i=ua(r,Da,Ea),l=i.toKeep,c=i.toPrune;return c.length&&e.pruneItems(c),{docs:l}})));var t=e.cache.response.get(e.cacheKey);return e.searchText==null||e.searchText===""?t:ie(ie({},t),{},{docs:(yield t).docs.filter(o=>{var r=o.name;return r.toLowerCase().includes(e.searchText)})})}))})()}fetchInfo(s){var e=this;return J(function*(){return e.fetchData(s)})()}fetchViewportData(s,e,t){var o=this;return J(function*(){var r=yield o.fetchData(e);O.debug("Fetching viewport data",s.top,s.bottom+1,t,r);var i=typeof t[0]=="object"&&t[0].id==="desc",l=i?r.docs.slice(0).reverse():r.docs,c=l.slice(s.top,s.bottom+1);return{items:c,offset:s.top}})()}pruneItems(s){var e=this;return J(function*(){if(e.cache.isPruning.get(e.cacheKey)===!0){O.debug("Pruning already in progress. Skipping.");return}try{O.debug("Pruning ".concat(s.length," command history items"));var t=e.cache.pauseChangeListeners(e.cacheKey);e.cache.isPruning.set(e.cacheKey,!0),yield e.db.bulkDocs(s.map(o=>ie(ie({},o),{},{_deleted:!0}))),e.cache.isPruning.set(e.cacheKey,!1),t(),O.debug("Finished pruning command history items")}catch(o){O.error("An error occurred while pruning db",o)}})()}close(){var s,e,t;O.debug("Closing table",this,(s=this.cache.tableRegistry.get(this.cacheKey))===null||s===void 0?void 0:s.size),(e=this.cache.tableRegistry.get(this.cacheKey))===null||e===void 0||e.delete(this),(t=this.changes)===null||t===void 0||t.cancel(),super.close()}}function Te(a,s,e){return(s=Na(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function Na(a){var s=Fa(a,"string");return typeof s=="symbol"?s:s+""}function Fa(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var Qe=$.module("PouchCommandHistoryCache");class Ra{constructor(){Te(this,"isPruning",void 0),Te(this,"response",void 0),Te(this,"tableRegistry",void 0),this.isPruning=new Map,this.response=new Map,this.tableRegistry=new Map}pauseChangeListeners(s){var e,t=[];return(e=this.tableRegistry.get(s))===null||e===void 0||e.forEach(o=>{o.changes&&(Qe.debug("Pausing event listeners on '".concat(s,"' table"),o),o.changes.cancel(),t.push(o))}),()=>{t.forEach(o=>{var r,i;(r=(i=this.tableRegistry.get(s))===null||i===void 0?void 0:i.has(o))!==null&&r!==void 0&&r&&(Qe.debug("Resuming event listeners on '".concat(s,"' table"),o),o.listenForChanges())})}}}function et(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function tt(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?et(Object(e),!0).forEach(function(t){De(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):et(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function st(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function we(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){st(r,t,o,i,l,"next",c)}function l(c){st(r,t,o,i,l,"throw",c)}i(void 0)})}}function De(a,s,e){return(s=Ia(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function Ia(a){var s=Oa(a,"string");return typeof s=="symbol"?s:s+""}function Oa(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var nt=$.module("PouchCommandHistoryStorage");class ka{constructor(){De(this,"cache",new Ra),De(this,"updateTableMap",new Map)}getUpdateTable(s){return this.updateTableMap.has(s)||this.updateTableMap.set(s,new Je(s,this.cache)),this.updateTableMap.get(s)}getTable(s){var e=this;return we(function*(){return new Je(s,e.cache)})()}addItem(s,e,t,o){var r=this;return we(function*(){return r.updateItem(s,{id:"".concat(new Date().getTime()),name:t,data:o})})()}updateItem(s,e){var t=this;return we(function*(){var o=t.getUpdateTable(s),r=yield o.refreshItem(e.id),i=tt(tt({},r??{}),e);return nt.debug("Updating item",i),yield o.put(i),nt.debug("Update saved"),e})()}listenItem(s,e,t){var o=this.getUpdateTable(s);return o.onItemUpdate(e,t)}}const Tt="SET_LAYOUT_STORAGE",La=a=>({type:Tt,payload:a});var Pa=globalThis.dh;const Aa=$.module("SettingsUtils");function _a(a){return a.formatString!=null}function wt(a){const s=At.parse(window.navigator.userAgent),e=`${s.browser.name??""} ${Number(parseFloat(s.browser.version??""))||""}`,t=`${s.os.name??""} ${s.os.version??""}`,o=a.get("python.version")??"";return{"Engine Version":a.get("deephaven.version")??"Unknown","Web UI Version":"1.22.1",...o!==""?{"Python Version":o}:{},"Java Version":a.get("java.version")??"Unknown","Groovy Version":a.get("groovy.version")??"Unknown","Barrage Version":a.get("barrage.version")??"Unknown","Browser Name":e.trim()||"Unknown","User Agent OS":t.trim()||"Unknown"}}function Ee(a){return Array.from(a.entries()).filter(s=>s[1].version!==void 0).reduce((s,[e,t])=>({...s,[e]:t.version}),{})}function Ne(a){const s=a==null?void 0:a.querySelector("input, select, textarea");s&&s.focus()}function jt(a,s){return a.defaultFormatString===s.defaultFormatString}function Ma(a,s){return jt(a,s)}function Ua(a,s){return jt(a,s)}function Dt(a){return a!==""&&Qt.isValidColumnName(a)}function q(a,s,e){if(!s||e.formatString==null||!_a(e))return!1;switch(s){case"datetime":return W.isValid(a,e);case"decimal":return _.isValid(a,e);case"int":return A.isValid(a,e);default:return Aa.warn("Trying to validate format of unknown type"),!0}}function Ka(a){const{id:s,isNewRule:e,...t}=a;return t}function $a(a,s){return Dt(s.columnName)&&q(a,s.columnType,s.format)}function Et(a){const{timestamp:s,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i}=a,l=ct(),c=m.useMemo(()=>new es(l,[],{timeZone:e,showTimeZone:t,showTSeparator:o}),[l,t,o,e]),d=r?W.getGlobalFormats(t,o):W.getFormats(t,o);return i!=null&&!d.includes(i)&&d.unshift(i),n.jsx(n.Fragment,{children:d.map(h=>{const u=W.makeFormat("",h,W.TYPE_GLOBAL);return n.jsx("option",{value:h,"data-testid":"time-format",children:c.getFormattedString(s,F.dataType.DATETIME,"",u)},h)})})}function Ga(){return n.jsx(n.Fragment,{children:ts.TIME_ZONES.map(a=>{const{label:s,value:e}=a;return n.jsx("option",{value:e,children:s},e)})})}const G=$.module("FormattingSectionContent"),te=class te extends m.PureComponent{constructor(e){super(e);v(this,"debouncedCommitChanges");v(this,"pendingUpdates");v(this,"containerRef");v(this,"getCachedDateTimeFormatOptions",je((e,t,o,r=!1,i)=>{const{timestampAtMenuOpen:l}=this.state;return n.jsx(Et,{timestamp:l,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i})},{max:100}));this.debouncedCommitChanges=lt(this.commitChanges.bind(this),te.inputDebounceTime),this.queueUpdate=this.queueUpdate.bind(this),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),this.handleShowEmptyStringsChange=this.handleShowEmptyStringsChange.bind(this),this.handleShowNullStringsChange=this.handleShowNullStringsChange.bind(this),this.handleShowExtraGroupColumnChange=this.handleShowExtraGroupColumnChange.bind(this);const{defaultDateTimeFormat:t,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,showTimeZone:i,showTSeparator:l,timeZone:c,truncateNumbersWithPound:d,showEmptyStrings:h,showNullStrings:u,showExtraGroupColumn:p}=e;this.containerRef=X.createRef(),this.pendingUpdates=[],this.state={showTimeZone:i,showTSeparator:l,timeZone:c,defaultDateTimeFormat:t,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,truncateNumbersWithPound:d,showEmptyStrings:h,showNullStrings:u,showExtraGroupColumn:p,timestampAtMenuOpen:new Date}}componentDidMount(){Ne(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}queueUpdate(e){this.pendingUpdates.push(e),this.debouncedCommitChanges()}handleDefaultDateTimeFormatChange(e){G.debug("handleDefaultDateTimeFormatChange",e);const t={defaultDateTimeFormat:e};this.setState(t),this.queueUpdate(t)}handleDefaultDecimalFormatChange(e){G.debug("handleDefaultDecimalFormatChange",e.target.value);const t={defaultDecimalFormatOptions:{defaultFormatString:e.target.value}};this.setState(t),q(dh,F.dataType.DECIMAL,_.makeCustomFormat(e.target.value))&&this.queueUpdate(t)}handleDefaultIntegerFormatChange(e){G.debug("handleDefaultIntegerFormatChange",e.target.value);const t={defaultIntegerFormatOptions:{defaultFormatString:e.target.value}};this.setState(t),q(dh,F.dataType.INT,A.makeCustomFormat(e.target.value))&&this.queueUpdate(t)}handleShowTimeZoneChange(){const{showTimeZone:e}=this.state,t={showTimeZone:!e};this.setState(t),this.queueUpdate(t)}handleShowTSeparatorChange(){const{showTSeparator:e}=this.state,t={showTSeparator:!e};this.setState(t),this.queueUpdate(t)}handleTimeZoneChange(e){const t={timeZone:e};this.setState(t),this.queueUpdate(t)}handleResetDateTimeFormat(){const{defaults:e}=this.props,{defaultDateTimeFormat:t,showTimeZone:o,showTSeparator:r}=e;G.debug("handleResetDateTimeFormat"),this.setState({defaultDateTimeFormat:t,showTimeZone:o,showTSeparator:r}),this.queueUpdate({defaultDateTimeFormat:void 0,showTimeZone:void 0,showTSeparator:void 0})}handleResetTimeZone(){const{defaults:e}=this.props,{timeZone:t}=e;G.debug("handleResetTimeZone"),this.setState({timeZone:t}),this.queueUpdate({timeZone:void 0})}handleResetDecimalFormat(){const{defaults:e}=this.props,{defaultDecimalFormatOptions:t}=e;G.debug("handleResetDecimalFormat"),this.setState({defaultDecimalFormatOptions:t}),this.queueUpdate({defaultDecimalFormatOptions:void 0})}handleResetIntegerFormat(){const{defaults:e}=this.props,{defaultIntegerFormatOptions:t}=e;G.debug("handleResetIntegerFormat"),this.setState({defaultIntegerFormatOptions:t}),this.queueUpdate({defaultIntegerFormatOptions:void 0})}handleTruncateNumbersWithPoundChange(){const{truncateNumbersWithPound:e}=this.state,t={truncateNumbersWithPound:e!==!0};this.setState(t),this.queueUpdate(t)}handleShowEmptyStringsChange(){const{showEmptyStrings:e}=this.state,t={showEmptyStrings:!e};this.setState(t),this.queueUpdate(t)}handleShowNullStringsChange(){const{showNullStrings:e}=this.state,t={showNullStrings:!e};this.setState(t),this.queueUpdate(t)}handleShowExtraGroupColumnChange(){const{showExtraGroupColumn:e}=this.state,t={showExtraGroupColumn:!e};this.setState(t),this.queueUpdate(t)}commitChanges(){const{updateSettings:e}=this.props,t=this.pendingUpdates.reduce((o,r)=>({...o,...r}),{});this.pendingUpdates=[],e(t)}render(){const{defaults:e,dh:t}=this.props,{defaultDateTimeFormat:o,defaultDecimalFormatOptions:r,defaultIntegerFormatOptions:i,timeZone:l,showTimeZone:c,showTSeparator:d,truncateNumbersWithPound:h,showEmptyStrings:u,showNullStrings:p,showExtraGroupColumn:C}=this.state,{defaultFormatString:S=_.DEFAULT_FORMAT_STRING}=r??{},{defaultFormatString:f=A.DEFAULT_FORMAT_STRING}=i??{},g=l===e.timeZone,k=d===e.showTSeparator&&c===e.showTimeZone&&o===e.defaultDateTimeFormat,T=Ma(r,e.defaultDecimalFormatOptions),w=Ua(i,e.defaultIntegerFormatOptions);return n.jsx("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:n.jsxs("div",{className:"container-fluid p-0",children:[n.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."}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"select-reset-timezone",children:"Time zone"}),n.jsx("div",{className:"col pr-0",children:n.jsx(ue,{className:"custom-select",value:l,onChange:this.handleTimeZoneChange,id:"select-reset-timezone",children:n.jsx(Ga,{})})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetTimeZone,tooltip:"Reset Time Zone",className:R("btn-reset","btn-reset-time-zone",{hidden:g})})})]}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"select-default-time-format",children:"DateTime"}),n.jsx("div",{className:"col pr-0",children:n.jsx(ue,{className:"custom-select",value:o,onChange:this.handleDefaultDateTimeFormatChange,id:"select-default-time-format",children:this.getCachedDateTimeFormatOptions(l,c,d,!0,o)})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetDateTimeFormat,tooltip:"Reset DateTime Options",className:R("btn-reset","btn-reset-date-time",{hidden:k})})})]}),n.jsx("div",{className:"form-row",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:c??null,onChange:this.handleShowTimeZoneChange,children:"Show time zone in dates"})})}),n.jsx("div",{className:"form-row mb-3",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:d??null,onChange:this.handleShowTSeparatorChange,children:"Show 'T' separator"})})}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-decimal-format-input",children:"Decimal"}),n.jsx("div",{className:"col pr-0",children:n.jsx("input",{className:R("form-control","flex-grow-1","default-decimal-format-input",{"is-invalid":!q(t,F.dataType.DECIMAL,_.makeCustomFormat(S))}),"data-lpignore":!0,placeholder:_.DEFAULT_FORMAT_STRING,type:"text",id:"default-decimal-format-input",value:S,onChange:this.handleDefaultDecimalFormatChange})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetDecimalFormat,tooltip:"Reset Decimal Formatting",className:R("btn-reset","btn-reset-decimal",{hidden:T}),"data-testid":"btn-reset-decimal"})})]}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"Integer"}),n.jsx("div",{className:"col pr-0",children:n.jsx("input",{className:R("form-control","flex-grow-1","default-integer-format-input",{"is-invalid":!q(t,F.dataType.INT,A.makeCustomFormat(f))}),"data-lpignore":!0,placeholder:A.DEFAULT_FORMAT_STRING,type:"text",id:"default-integer-format-input",value:f,onChange:this.handleDefaultIntegerFormatChange})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetIntegerFormat,tooltip:"Reset Integer Formatting",className:R("btn-reset","btn-reset-integer",{hidden:w}),"data-testid":"btn-reset-integer"})})]}),n.jsx("div",{className:"form-row mb-2",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:h??null,onChange:this.handleTruncateNumbersWithPoundChange,children:"Show truncated numbers as ###"})})}),n.jsxs("div",{className:"form-row mb-3",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"String"}),n.jsxs("div",{className:"col pr-0 pt-2",children:[n.jsxs(B,{checked:u??null,onChange:this.handleShowEmptyStringsChange,children:["Show empty strings as"," ",n.jsx("span",{className:"font-italic text-muted",children:"empty"})]}),n.jsxs(B,{checked:p??null,onChange:this.handleShowNullStringsChange,children:["Show null strings as"," ",n.jsx("span",{className:"font-italic text-muted",children:"null"})]})]})]}),n.jsxs("div",{className:"form-row mb-3",id:"show_extra_group_column_div",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-show-extra-group-column",children:"Rollup"}),n.jsx("div",{className:"col pr-0 pt-2",id:"default-show-extra-group-column",children:n.jsx(B,{checked:C,onChange:this.handleShowExtraGroupColumnChange,children:'Show extra "group" column'})})]})]})})}};v(te,"defaultProps",{scrollTo:()=>{}}),v(te,"inputDebounceTime",250);let Fe=te;const Wa=a=>({defaultDateTimeFormat:is(a),defaultDecimalFormatOptions:gt(a),defaultIntegerFormatOptions:pt(a),dh:mt(a),showTimeZone:ht(a),showTSeparator:ut(a),truncateNumbersWithPound:rs(a),showEmptyStrings:os(a),showNullStrings:as(a),showExtraGroupColumn:ns(a),timeZone:dt(a),defaults:ss(a)}),Ba=pe(Wa,{updateSettings:ae})(Fe);function Va(){const[a,s]=m.useState(!1),e=()=>{s(!a)};return n.jsxs(n.Fragment,{children:[n.jsx(j,{kind:"ghost",onClick:e,icon:un,children:"Legal Notices"}),n.jsxs(hn,{isOpen:a,toggle:e,children:[n.jsx(mn,{toggle:e,children:"Legal Notice"}),n.jsxs(pn,{children:[n.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."}),n.jsxs("p",{children:["© 2016-",new Date().getFullYear()," Deephaven Data Labs LLC. Patent Pending."]})]})]})]})}function H(a){const{children:s,isExpanded:e,sectionKey:t,title:o,onToggle:r}=a;return n.jsxs(n.Fragment,{children:[n.jsx("div",{children:n.jsxs(j,{kind:"ghost",className:"btn-collapse-trigger",onClick:()=>r(t),children:[n.jsx("div",{className:"d-flex align-items-center flex-grow-1",children:o}),n.jsx("div",{className:"flex-shrink-0",children:n.jsx(E,{transform:e?"flip-v":"",icon:gn})})]})}),n.jsx(Bn,{in:e,autoFocusOnShow:!0,children:s})]})}function Ha({shortcut:a,displayText:s,categoryName:e,onChange:t}){const[o,r]=m.useState(s),[i,l]=m.useState(a.getKeyState()),[c,d]=m.useState(!1),[h,u]=m.useState("");m.useEffect(function(){r(s),l(a.getKeyState())},[s,a]),m.useEffect(function(){r(P.getDisplayText(i)),a.matchesKeyState(i)&&d(!1)},[i,a]),m.useEffect(function(){if(c){if(!P.isValidKeyState(i)){P.isAllowedKey(i.keyValue)?u("Must contain a modifier key"):u("Must contain an allowed action key");return}const b=Le.getConflictingShortcuts(i).filter(y=>y.id.startsWith(e)&&y!==a).map(y=>y.name);if(b.length){u(`Conflicts with ${b.join(", ")}`);return}u("")}else u("")},[c,i,e,a]);function p(w){if(w.stopPropagation(),w.preventDefault(),a.isEditable&&!w.repeat){const b=P.getKeyStateFromEvent(w),y=P.createKeyState([cs.BACKSPACE]);P.doKeyStatesMatch(b,y)?l(P.NULL_KEY_STATE):l(b)}}function C(w){w.stopPropagation(),w.preventDefault(),a.matchesKeyState(i)||d(!0)}function S(){Me.disableAllActions()}function f(){Me.enableAllActions()}function g(){a.setKeyState(i),d(!1),t(a)}function k(){const w=a.getKeyState();l(w),d(!1)}function T(){d(!0),l(a.getDefaultKeyState())}return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"shortcut-item-container",children:[n.jsxs("label",{className:"shortcut-item-name",children:[a.name,a.tooltip!==void 0&&n.jsx(ls,{children:a.tooltip})]}),n.jsxs("div",{className:"shortcut-item-input-container",children:[n.jsx("input",{className:R("form-control",{"is-invalid":h}),onKeyDown:p,onKeyUp:C,onFocus:S,onBlur:f,disabled:!a.isEditable,value:o,readOnly:!0}),!P.doKeyStatesMatch(i,a.getDefaultKeyState())&&!h&&n.jsx(j,{className:"reset-to-default-button",kind:"ghost",icon:n.jsx(E,{icon:z,transform:{rotate:90,flipX:!0}}),tooltip:"Reset to default",onClick:T})]})]}),c&&n.jsxs("div",{className:R("shortcut-item-message-container",{"is-invalid":h}),children:[n.jsx("div",{className:"shortcut-item-message",children:h}),n.jsxs("div",{className:"shortcut-item-message-buttons",children:[P.isValidKeyState(i)&&n.jsx(j,{kind:"ghost",onClick:g,children:"Confirm"}),n.jsx(j,{kind:"ghost",onClick:k,children:"Undo"})]})]})]})}function Ya({shortcutOverrides:a={},updateSettings:s}){const e=m.useCallback(i=>{const l=P.isMacPlatform,c={mac:{...a.mac},windows:{...a.windows}},d=l?c.mac:c.windows;i.forEach(h=>{h.isDefault()?delete d[h.id]:d[h.id]=h.getKeyState()}),s({shortcutOverrides:c})},[s,a]);let t=Array.from(Le.shortcutsByCategory.entries()).map(([i,l])=>({name:i,shortcuts:l}));const o=t.findIndex(i=>i.name.toUpperCase()==="GLOBAL"),r=t.splice(o,1);return t=t.concat(r),n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Customize shortcuts below. To prevent unexpected results, avoid conflicting shortcuts with the browser or IDE editor."}),t.map(i=>n.jsx(Za,{name:i.name,shortcuts:i.shortcuts,saveShortcutOverrides:e},i.name))]})}function Za({name:a,shortcuts:s,saveShortcutOverrides:e}){function t(c){return c.split("_").map(d=>`${d[0].toUpperCase()}${d.slice(1).toLowerCase()}`).join(" ")}const[o,r]=m.useState(s);function i(c){const d=o.filter(u=>u!==c&&!u.isNull()&&u.matchesKeyState(c.getKeyState()));d.forEach(u=>u.setToNull());const h=[c,...d];e(h),r(u=>[...u])}const l=m.useMemo(()=>o.map(c=>c.getDisplayText()),[o]);return n.jsxs("div",{className:"mt-3",children:[n.jsx("div",{className:"font-weight-bold",children:t(a)}),o.map((c,d)=>n.jsx(Ha,{shortcut:c,displayText:l[d],categoryName:a,onChange:i},c.id))]})}const za=a=>({shortcutOverrides:ds(a)}),qa={updateSettings:ae},Xa=pe(za,qa)(Ya),Ja=[{value:F.dataType.DATETIME,label:"DateTime"},{value:F.dataType.DECIMAL,label:"Decimal"},{value:F.dataType.INT,label:"Integer"}];function Qa(){const a=Ja.map(s=>n.jsx("option",{value:s.value,children:s.label},`key-columnType-${s.value}`));return n.jsxs(n.Fragment,{children:[n.jsx("option",{disabled:!0,value:"",children:"Select Type"},"key-columnType-placeholder"),a]})}const se=class se extends m.PureComponent{constructor(e){super(e);v(this,"debouncedCommitChanges");v(this,"containerRef");v(this,"addFormatRuleButtonRef");v(this,"lastFormatRuleIndex");v(this,"getCachedColumnTypeOptions",je(()=>n.jsx(Qa,{}),{max:100}));v(this,"getCachedDateTimeFormatOptions",je((e,t,o,r=!1,i)=>{const{timestampAtMenuOpen:l}=this.state;return n.jsx(Et,{timestamp:l,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i})},{max:100}));this.debouncedCommitChanges=lt(this.commitChanges.bind(this),se.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,showTimeZone:o,showTSeparator:r,timeZone:i}=e,l=t.map((c,d)=>({...c,id:d}));this.containerRef=X.createRef(),this.addFormatRuleButtonRef=X.createRef(),this.lastFormatRuleIndex=l.length,this.state={formatSettings:l,formatRulesChanged:!1,showTimeZone:o,showTSeparator:r,timeZone:i,timestampAtMenuOpen:new Date}}componentDidMount(){Ne(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}isDuplicateRule(e){const{formatSettings:t}=this.state;return t.some(o=>o.id!==e.id&&o.columnName===e.columnName&&o.columnType===e.columnType)??!1}getAutoIncrementFormatRuleIndex(){const{lastFormatRuleIndex:e}=this;return this.lastFormatRuleIndex+=1,e}handleFormatRuleChange(e,t,o){this.setState(r=>{const{formatSettings:i}=r;ne(i);const l=[...i];let c={};t==="columnType"&&(c={format:this.makeDefaultFormatterItemByType(o)});const d={...l[e],...c,[t]:o};return l[e]=d,{formatSettings:l}},()=>{this.debouncedCommitChanges()})}handleFormatRuleCreate(){this.setState(e=>{const{formatSettings:t}=e,o={columnType:F.dataType.DATETIME,columnName:"",format:{},id:this.getAutoIncrementFormatRuleIndex(),isNewRule:!0};return{formatSettings:[...t,o],formatRulesChanged:!0}})}handleFormatRuleDelete(e){this.setState(t=>{const{formatSettings:o}=t;return{formatSettings:o.filter((i,l)=>l!==e),formatRulesChanged:!0}},()=>{this.debouncedCommitChanges()})}handleFormatRuleEntered(e){this.scrollToFormatBlockBottom(),Ne(e)}commitChanges(){const{formatSettings:e}=this.state,{dh:t}=this.props,o=e.filter(l=>$a(t,l)).map(Ka)??[],{updateSettings:r}=this.props;r({formatter:o})}scrollToFormatBlockBottom(){var t,o;const{scrollTo:e}=this.props;e(0,(((t=this.addFormatRuleButtonRef.current)==null?void 0:t.offsetHeight)??0)+(((o=this.addFormatRuleButtonRef.current)==null?void 0:o.offsetTop)??0))}getRuleError(e){const{dh:t}=this.props,o={hasColumnNameError:!1,hasFormatError:!1,message:""},r=[];return e.isNewRule!==void 0&&e.isNewRule||(this.isDuplicateRule(e)&&(o.hasColumnNameError=!0,r.push("Duplicate column name/type combo.")),Dt(e.columnName)||(o.hasColumnNameError=!0,r.push("Column names must start with a letter or underscore and contain only alphanumeric characters or underscores.")),e.format.formatString!=null&&e.format.formatString.length===0?(o.hasFormatError=!0,r.push("Empty formatting rule.")):q(t,e.columnType,e.format)||(o.hasFormatError=!0,r.push("Invalid formatting rule.")),o.message=r.join(`
4
- `)),o}makeDefaultFormatterItemByType(e){switch(F.getNormalizedType(e)){case F.dataType.INT:{const{defaultIntegerFormatOptions:t}=this.props,{defaultFormatString:o}=t;return A.makeFormat("",o??A.DEFAULT_FORMAT_STRING,A.TYPE_GLOBAL,void 0)}case F.dataType.DECIMAL:{const{defaultDecimalFormatOptions:t}=this.props,{defaultFormatString:o}=t;return _.makeFormat("",o??_.DEFAULT_FORMAT_STRING,_.TYPE_GLOBAL,void 0)}default:return""}}renderFormatRule(e,t){const o=`input-${e}-columnName`,r=`input-${e}-columnType`,i=`input-${e}-format`,l=this.getCachedColumnTypeOptions(),c=p=>this.handleFormatRuleChange(e,"columnName",p.target.value),d=()=>this.handleFormatRuleChange(e,"isNewRule",!1),h=p=>this.handleFormatRuleChange(e,"columnType",p),u=this.getRuleError(t);return n.jsxs("fieldset",{className:"container-fluid format-rule-container",children:[n.jsxs("div",{className:"form-row",children:[n.jsxs("div",{className:"form-group col-7 mb-2",children:[n.jsx("label",{htmlFor:o,children:"Column Name"}),n.jsx("input",{id:o,className:R("form-control",{"is-invalid":u.hasColumnNameError}),"data-lpignore":!0,type:"text",value:t.columnName,onChange:c,onBlur:d})]}),n.jsxs("div",{className:"form-group col mb-2",children:[n.jsx(j,{kind:"ghost",className:"btn-delete-format-rule float-right",tabIndex:-1,onClick:()=>this.handleFormatRuleDelete(e),icon:fn,tooltip:"Delete","aria-label":"Delete Format Rule"}),n.jsx("label",{htmlFor:r,children:"Column Type"}),n.jsx(ue,{id:r,className:"custom-select",value:t.columnType,onChange:h,children:l})]})]}),n.jsx("div",{className:"form-row",children:n.jsxs("div",{className:"form-group col-12 d-flex mb-2",children:[n.jsx("label",{className:"flex-shrink-0 col-form-label mr-3",htmlFor:i,children:"Formatting Rule"}),this.renderFormatRuleInput(e,t.columnType,i,t.format,u.hasFormatError)]})}),n.jsx("div",{className:"form-row",children:n.jsx("div",{className:"form-group col-12 d-flex mb-2",children:u.message&&n.jsx("p",{className:"text-danger",children:u.message})})})]},e)}renderFormatRuleInput(e,t,o,r,i){switch(F.getNormalizedType(t)){case F.dataType.DATETIME:return this.renderDateTimeFormatRuleInput(e,o,r,i);case F.dataType.DECIMAL:return this.renderDecimalFormatRuleInput(e,o,r,i);case F.dataType.INT:return this.renderIntegerFormatRuleInput(e,o,r,i);default:throw new Error(`Unrecognized column type: ${t}`)}}renderDateTimeFormatRuleInput(e,t,o,r){const{showTimeZone:i,showTSeparator:l,timeZone:c}=this.state,d=o.formatString??"";return n.jsxs(ue,{className:R("custom-select",{"is-invalid":r}),value:d,id:t,onChange:h=>{const u=W.makeFormat("",h,W.TYPE_GLOBAL);this.handleFormatRuleChange(e,"format",u)},children:[n.jsx("option",{value:"",disabled:!0,children:"Select format"},"default"),this.getCachedDateTimeFormatOptions(c,i,l)]})}renderIntegerFormatRuleInput(e,t,o,r){const{defaultIntegerFormatOptions:i}=this.props;ne(i);const{defaultFormatString:l}=i,c=o.formatString??"";return n.jsx("input",{className:R("form-control","flex-grow-1",{"is-invalid":r}),"data-lpignore":!0,id:t,placeholder:l??A.DEFAULT_FORMAT_STRING,type:"text",value:c,onChange:d=>{const h=A.makeFormat("",d.target.value,A.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",h)}})}renderDecimalFormatRuleInput(e,t,o,r){const{defaultDecimalFormatOptions:i}=this.props,{defaultFormatString:l}=i,c=o.formatString??"";return n.jsx("input",{className:R("form-control","flex-grow-1",{"is-invalid":r}),"data-lpignore":!0,id:t,placeholder:l??_.DEFAULT_FORMAT_STRING,type:"text",value:c,onChange:d=>{const h=_.makeFormat("",d.target.value,_.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",h)}})}render(){const{formatRulesChanged:e,formatSettings:t}=this.state,o=t.map((i,l)=>n.jsx(hs,{onEnter:this.handleFormatRuleEntered,children:this.renderFormatRule(l,i)},i.id)),r=n.jsx(j,{kind:"ghost",className:"mb-3",onClick:this.handleFormatRuleCreate,ref:this.addFormatRuleButtonRef,icon:bn,children:"Add New Rule"});return n.jsxs("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:[n.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."}),n.jsx(_t,{appear:e,enter:e,exit:e,children:o}),r]})}};v(se,"defaultProps",{scrollTo:()=>{}}),v(se,"inputDebounceTime",250);let Re=se;const eo=a=>({formatter:us(a),defaultDecimalFormatOptions:gt(a),defaultIntegerFormatOptions:pt(a),dh:mt(a),showTimeZone:ht(a),showTSeparator:ut(a),timeZone:dt(a)}),to=pe(eo,{updateSettings:ae})(Re);function so(){const a=ge(),s=he(ms),e=he(ps),t=m.useCallback(r=>{a(ae({webgl:r}))},[a]),o=e?n.jsx(Q,{children:"WebGL in most cases has significant performance improvements, particularly when plotting large datasets. However, in some environments (such as remote desktop environments), WebGL may not use hardware acceleration and have degraded performance. If you are experiencing issues with WebGL, you can disable it here."}):n.jsx(Q,{children:"WebGL is disabled by your system administrator. Contact your system administrator to enable."});return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Advanced settings here. Be careful!"}),n.jsxs("div",{className:"form-row mb-3 pl-1",children:[n.jsx(ce,{isSelected:s,isDisabled:!e,onChange:t,marginEnd:"size-0",children:"Enable WebGL"}),n.jsxs(Oe,{variant:"info",marginTop:"size-50",children:[n.jsx(Pe,{children:"Enable WebGL"}),n.jsx(ke,{children:n.jsx(Q,{children:o})})]})]})]})}function no(){const a=gs(),s=he(fs),e=ge(),t=m.useCallback(r=>{if(r!=="regular"&&r!=="compact"&&r!=="spacious")throw new Error(`Invalid grid density value: ${r}`);e(ae({gridDensity:r}))},[e]),o=s.gridDensity;return ne(a,"ThemeContext value is null"),n.jsxs(n.Fragment,{children:[n.jsx(Vn,{}),n.jsxs(la,{label:"Default table density",selectedKey:o,onChange:t,children:[n.jsx(be,{children:"Regular"},"regular"),n.jsx(be,{children:"Compact"},"compact"),n.jsx(be,{children:"Spacious"},"spacious")]})]})}function ao(){const a=he(bs),s=ge(),{isMinimapEnabled:e,formatOnSave:t,python:{linter:o={}}={}}=a,{isEnabled:r,config:i=Ue}=o,l=m.useCallback(g=>s(oe({isMinimapEnabled:g})),[s]),c=m.useCallback(g=>s(oe({formatOnSave:g})),[s]),d=m.useCallback(g=>{s(oe({python:{linter:{...o,isEnabled:g}}})),ye.isRuffEnabled=g,ye.setRuffSettings(i)},[s,o,i]),h=m.useCallback(g=>{s(oe({python:{linter:{...o,config:JSON.stringify(g)===JSON.stringify(Ue)?void 0:g}}})),ye.setRuffSettings(g)},[s,o]),u=JSON.stringify(i,null,2),[p,C]=m.useState(!1),S=m.useCallback(()=>{C(!1)},[]),f=m.useCallback(g=>{h(g),S()},[h,S]);return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Customize the notebook editor."}),n.jsx("div",{className:"form-row pl-1",children:n.jsx(ce,{isSelected:e,onChange:l,children:"Enable Minimap"})}),n.jsxs("div",{className:"form-row align-items-center pl-1",children:[n.jsx(ce,{isSelected:t,onChange:c,margin:0,children:"Format on Save"}),n.jsxs(Oe,{variant:"info",children:[n.jsx(Pe,{children:"Format on Save"}),n.jsx(ke,{children:n.jsx(Q,{children:"The Ruff settings control formatting options. Notebooks can be formatted manually using the right-click context menu."})})]})]}),n.jsx("div",{className:"form-row pl-1",children:n.jsx(ce,{isSelected:r,onChange:d,marginEnd:0,children:"Enable Ruff Python Linter"})}),n.jsx("div",{className:"form-row pl-1",children:n.jsxs(Mt,{onPress:()=>C(!0),children:[n.jsx(Ut,{children:n.jsx(E,{icon:vn})}),n.jsx(Q,{children:"Customize Ruff Settings"})]})}),p&&n.jsx(Hn,{text:u,isOpen:p,onClose:S,onSave:f})]})}const x=class x extends m.Component{constructor(e){super(e);v(this,"menuContentRef");v(this,"broadcastChannel");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=X.createRef(),this.broadcastChannel=new BroadcastChannel(Yn),this.state={expandedSectionKey:x.FORMATTING_SECTION_KEY}}static focusFirstInputInContainer(e){const t=e==null?void 0:e.querySelector("input, select, textarea");t&&t.focus()}componentDidMount(){x.focusFirstInputInContainer(this.menuContentRef.current)}componentWillUnmount(){this.broadcastChannel.close()}isSectionExpanded(e){const{expandedSectionKey:t}=this.state;return t===e}handleLogout(){this.broadcastChannel.postMessage(yn(Zn))}handleScrollTo(e,t){var o;(o=this.menuContentRef.current)==null||o.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,pluginData:t}=this.props,o=Ee(t);zn(xn,{uiVersion:"1.22.1",userAgent:navigator.userAgent,...Object.fromEntries(e),pluginInfo:o},Sn.getState())}render(){const e="https://github.com/deephaven/web-client-ui/",t="https://deephaven.io/core/docs/",{serverConfigValues:o,pluginData:r,user:i}=this.props,l=wt(o),c=Ee(r),d=o.get("deephaven.version"),h=Z.COPY_VERSION_INFO.getDisplayText(),u=(f,g)=>n.jsxs(m.Fragment,{children:[n.jsx("div",{children:f}),n.jsx("div",{children:g})]},f),p=i.displayName??i.name,C=i.image!=null&&i.image!=="",S=p!=="";return n.jsxs("div",{className:"app-settings-menu",children:[n.jsxs("header",{className:"app-settings-menu-header",children:[n.jsxs("div",{className:"user-info",children:[n.jsxs("div",{className:"user-image",children:[!C&&n.jsx(E,{icon:Cn,transform:"grow-8"}),C&&n.jsx("img",{src:i.image,alt:p})]}),n.jsxs("div",{className:"user-details",children:[S&&n.jsxs("div",{className:"user-name",children:[p,i.operateAs!=null&&i.name!==i.operateAs&&n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"font-weight-light font-italic",children:[" ","as"," "]}),n.jsxs("span",{className:"operating-as-user",children:[n.jsx(E,{icon:Tn,className:"mr-1"}),i.operateAs]})]})]}),i.permissions.canLogout&&n.jsx("button",{type:"button",className:"btn btn-link",onClick:this.handleLogout,children:"logout"})]})]}),n.jsx(j,{kind:"ghost",className:"btn-close-settings-menu",onClick:this.handleClose,icon:n.jsx(E,{icon:wn,transform:"grow-4"}),tooltip:"Close"})]}),n.jsxs("div",{className:"app-settings-menu-content",ref:this.menuContentRef,children:[n.jsx("h5",{children:"Settings"}),n.jsx("hr",{className:"my-0"}),n.jsx(H,{sectionKey:x.FORMATTING_SECTION_KEY,isExpanded:this.isSectionExpanded(x.FORMATTING_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:jn,transform:"grow-4",className:"mr-2"}),"Default Format & Time zone"]}),onToggle:this.handleSectionToggle,children:n.jsx(Ba,{})}),n.jsx(H,{sectionKey:x.COLUMN_SPECIFIC_SECTION_KEY,isExpanded:this.isSectionExpanded(x.COLUMN_SPECIFIC_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Dn,transform:"grow-4",className:"mr-2"}),"Format by Column Name & Type"]}),onToggle:this.handleSectionToggle,children:n.jsx(to,{scrollTo:this.handleScrollTo})}),n.jsx(H,{sectionKey:x.THEME_SECTION_KEY,isExpanded:this.isSectionExpanded(x.THEME_SECTION_KEY),onToggle:this.handleSectionToggle,title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:En,transform:"grow-4",className:"mr-2"}),"Theme"]}),children:n.jsx(no,{})}),n.jsx(H,{sectionKey:x.EDITOR_SECTION_KEY,isExpanded:this.isSectionExpanded(x.EDITOR_SECTION_KEY),onToggle:this.handleSectionToggle,title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Nn,transform:"grow-4",className:"mr-2"}),"Editor"]}),children:n.jsx(ao,{})}),n.jsx(H,{sectionKey:x.SHORTCUT_SECTION_KEY,isExpanded:this.isSectionExpanded(x.SHORTCUT_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Fn,transform:"grow-4",className:"mr-2"}),"Keyboard Shortcuts"]}),onToggle:this.handleSectionToggle,children:n.jsx(Xa,{})}),n.jsx(H,{sectionKey:x.ADVANCED_SECTION_KEY,isExpanded:this.isSectionExpanded(x.ADVANCED_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Rn,transform:"grow-4",className:"mr-2"}),"Advanced"]}),onToggle:this.handleSectionToggle,children:n.jsx(so,{})}),n.jsxs("div",{className:"app-settings-footer",children:[n.jsxs("div",{className:"app-settings-footer-section",children:[n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Support"}),n.jsxs("div",{children:["GitHub: ",n.jsx("a",{href:e,className:"custom-link",target:"_blank",rel:"noopener noreferrer",children:e})]}),n.jsx(j,{kind:"tertiary",className:"mt-2 py-2",onClick:this.handleExportSupportLogs,children:"Export Logs"})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Documentation"}),n.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:t,className:"custom-link",children:t})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Version"}),n.jsxs("span",{className:"d-inline-block text-muted",children:[d,n.jsxs(Oe,{variant:"info",children:[n.jsx(Pe,{children:"Version Info"}),n.jsxs(ke,{children:[n.jsx("div",{className:"detailed-server-config",children:Object.entries(l).map(([f,g])=>u(f,g))}),n.jsxs(vs,{copy:Object.entries({...l,...c}).map(([f,g])=>`${f}: ${g}`).join(`
5
- `),children:["Copy Versions"," ",n.jsxs("small",{className:"text-muted",children:["(",h,")"]})]})]})]})]})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Plugins"}),n.jsx("div",{className:"container",children:Array.from(r.entries()).filter(f=>f[1].version!==void 0).map(([f,g])=>n.jsxs("div",{className:"row justify-content-start align-items-center",children:[n.jsx("div",{className:"col pl-0",children:n.jsx("span",{className:"my-0 text-truncate",children:f})}),n.jsx("div",{className:"col-auto",children:n.jsx("span",{children:g==null?void 0:g.version})})]},f))})]}),n.jsx("div",{className:"app-settings-footer-item",children:n.jsx(Va,{})})]}),n.jsx("div",{className:"app-settings-footer-section",children:n.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://deephaven.io",style:{display:"block",width:"61.8%"},children:n.jsx(St,{})})})]})]})]})}};v(x,"defaultProps",{onDone:()=>{}}),v(x,"FORMATTING_SECTION_KEY","SettingsMenu.formatting"),v(x,"COLUMN_SPECIFIC_SECTION_KEY","SettingsMenu.columnFormatting"),v(x,"APPLICATION_SECTION_KEY","ApplicationMenu.settings"),v(x,"SHORTCUT_SECTION_KEY","SettingsMenu.shortcuts"),v(x,"THEME_SECTION_KEY","SettingsMenu.theme"),v(x,"ADVANCED_SECTION_KEY","SettingsMenu.advanced"),v(x,"EDITOR_SECTION_KEY","SettingsMenu.editor");let Ie=x;const at=10;function le(a){const{forwardedProps:s}=a;ne(s,"DragSourceMenuItem forwardedProps");const{menuItem:{action:e,title:t,disabled:o},iconElement:r,displayShortcut:i,isMouseSelected:l,isKeyboardSelected:c,closeMenu:d}=s,h=m.useRef(),u=m.useRef(),p=m.useRef(null),[C,S]=m.useState(!1),f=m.useCallback(T=>{h.current!=null&&u.current!=null&&p.current&&(Math.abs(h.current-T.clientX)>=at||Math.abs(u.current-T.clientY)>=at)&&(S(!0),window.removeEventListener("mousemove",f),d(),e(T),p.current=null)},[e,d]);function g(T){h.current=T.clientX,u.current=T.clientY,p.current=T.target,window.addEventListener("mousemove",f)}function k(T){p.current===T.target&&(S(!0),d(),e(),window.removeEventListener("mousemove",f)),p.current=null}return m.useEffect(function(){return function(){return window.removeEventListener("mousemove",f)}},[f]),n.jsxs("button",{type:"button",className:R("btn-context-menu",{disabled:o},{active:l&&!o},{"keyboard-active":c&&!o}),onMouseDown:g,onMouseUp:k,disabled:C,children:[n.jsx("span",{className:R("icon"),children:r}),n.jsx("span",{className:"title",children:t}),n.jsx("span",{className:"shortcut",children:i})]})}function oo(a){const{handleControlSelect:s,handleToolSelect:e,onClearFilter:t}=a,o=m.useMemo(()=>[{title:"Input Filter",icon:In,menuElement:n.jsx(le,{}),action:r=>{s(K.INPUT_FILTER,r)},order:10},{title:"Dropdown Filter",icon:On,menuElement:n.jsx(le,{}),action:r=>{s(K.DROPDOWN_FILTER,r)},order:15},{title:"Markdown Widget",icon:kn,menuElement:n.jsx(le,{}),action:r=>{s(K.MARKDOWN,r)},order:20},{title:"Filter Sets",icon:Ln,menuElement:n.jsx(le,{}),action:r=>{s(K.FILTER_SET_MANAGER,r)},order:25},{disabled:!0,menuElement:n.jsx("div",{className:"context-menu-group-header",children:"Tools"}),order:30},{title:"Linker",icon:Pn,action:()=>{e(me.LINKER)},order:40,shortcut:Z.LINKER},{disabled:!0,menuElement:n.jsx("div",{className:"context-menu-group-header",children:"Actions"}),order:50},{title:"Clear All Filters",icon:An,action:()=>{t()},order:60,shortcut:xt.TABLE.CLEAR_ALL_FILTERS}],[s,e,t]);return n.jsx(ys,{popperClassName:"controls-menu-popper",actions:o})}const ro=_n(Tt,null),io={layoutStorage:ro},lo=a=>a.layoutStorage,co=a=>a.serverConfigValues;Object.entries(io).map(([a,s])=>Mn.register(a,s));const ot=10;function uo(a){const{onExportLayout:s,onImportLayout:e,onResetLayout:t,onSelect:o,widgets:r=[]}=a,[i,l]=m.useState(!1),[c,d]=m.useState(""),h=m.useRef(null),u=m.useRef(),p=m.useCallback((b,y)=>{b!=null&&o(b,y)},[o]),C=m.useCallback(b=>{d(b.target.value)},[]),S=m.useCallback(b=>{u.current!=null&&(Math.abs(u.current.x-b.clientX)>=ot||Math.abs(u.current.y-b.clientY)>=ot)&&(l(!0),window.removeEventListener("mousemove",S),p(u.current.widget,b),u.current=void 0)},[u,p]),f=m.useCallback((b,y)=>{u.current={x:b.clientX,y:b.clientY,widget:y},window.addEventListener("mousemove",S)},[S]),g=m.useCallback((b,y)=>{var U;window.removeEventListener("mousemove",S),((U=u.current)==null?void 0:U.widget)===y&&(l(!0),p(y)),u.current=void 0},[S,u,p]),k=m.useMemo(()=>r.filter(b=>{var y;return c?(y=b.name)==null?void 0:y.toLowerCase().includes(c.toLowerCase()):!0}),[c,r]).sort((b,y)=>{var U;return((U=b.name)==null?void 0:U.localeCompare(y.name??""))??0}),T=m.useMemo(()=>k.map(b=>n.jsx("li",{children:n.jsxs(j,{kind:"ghost","data-testid":`panel-list-item-${b.name??""}-button`,onMouseDown:y=>{f(y,b)},onMouseUp:y=>{g(y,b)},onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&p(b)},disabled:i,onClick:()=>{},children:[n.jsx(Ss,{type:b.type})," ",b.name??""]})},b.name)),[k,i,f,g,p]),w=m.useMemo(()=>T.length===0?n.jsx("span",{children:"No bound variables found."}):null,[T]);return n.jsxs("div",{className:"widget-list-container d-flex flex-column",children:[n.jsx("div",{className:"widget-list-header",children:n.jsx(xs,{value:c,placeholder:"Find Table, Plot or Widget",onChange:C,ref:h})}),n.jsxs("ul",{className:"widget-list flex-grow-1",children:[w&&n.jsx("li",{className:"widget-list-message",children:w}),!w&&T]}),n.jsx("div",{children:n.jsx("hr",{})}),n.jsxs("div",{className:"widget-list-footer",children:[n.jsxs(j,{kind:"ghost",onClick:s,children:[n.jsxs("div",{className:"fa-md fa-layers mr-1",children:[n.jsx(E,{mask:Ge,icon:$e,transform:"right-5 down-5"}),n.jsx(E,{icon:$e,transform:"right-8 down-6"})]}),"Export Layout"]}),n.jsxs(j,{kind:"ghost",onClick:e,children:[n.jsxs("div",{className:"fa-md fa-layers mr-1",children:[n.jsx(E,{mask:Ge,icon:We,transform:"right-5 down-5"}),n.jsx(E,{icon:We,transform:"right-8 down-6"})]}),"Import Layout"]}),n.jsx(j,{kind:"ghost",icon:z,onClick:t,tooltip:"Reset Layout"})]})]})}function ho({onAutoFillClick:a=()=>{}}){return n.jsxs("div",{className:"empty-dashboard-container",children:[n.jsxs("div",{className:"hint-container",children:[n.jsx(E,{icon:Un})," ",n.jsx("br",{}),"Use the panel list to add objects from a query."]}),n.jsxs("div",{className:"empty-dashboard",children:[n.jsx("div",{className:"add-panels-hint",children:"Drag Panels Here"}),n.jsx(j,{kind:"tertiary",onClick:a,children:"Auto fill objects"})]})]})}const N=$.module("AppMainContainer");class ee extends m.Component{constructor(e){super(e);v(this,"dashboardLayouts");v(this,"createDashboardListenerRemovers");v(this,"closeDashboardListenerRemovers");v(this,"importElement");v(this,"widgetListenerRemover");v(this,"getDashboardPlugins",Bt(e=>Xn(e)));Os(this),this.importElement=X.createRef();const{allDashboardData:t,serverConfigValues:o,plugins:r}=this.props;this.dashboardLayouts=new Map,this.createDashboardListenerRemovers=new Map,this.closeDashboardListenerRemovers=new Map,this.state={contextActions:[qn({uiVersion:"1.22.1",userAgent:navigator.userAgent,...Object.fromEntries(o),pluginInfo:Ee(r)},!1),{action:()=>{const i=wt(o),l=Object.entries(i).map(([c,d])=>`${c}: ${d}`).join(`
6
- `);ks(l)},shortcut:Z.COPY_VERSION_INFO,isGlobal:!0},{action:()=>{this.handleToolSelect(me.LINKER)},shortcut:Z.LINKER,isGlobal:!0},{action:()=>{this.sendClearFilter()},shortcut:xt.TABLE.CLEAR_ALL_FILTERS,isGlobal:!0},{action:()=>{this.sendCycleStackForward()},shortcut:V.CYCLE_TO_NEXT_STACK,isGlobal:!0},{action:()=>{this.sendCycleStackBackward()},shortcut:V.CYCLE_TO_PREVIOUS_STACK,isGlobal:!0},{action:()=>{this.sendCycleTabForward()},shortcut:V.CYCLE_TO_NEXT_TAB,isGlobal:!0},{action:()=>{this.sendCycleTabBackward()},shortcut:V.CYCLE_TO_PREVIOUS_TAB,isGlobal:!0},{action:()=>{this.handleCycleDashboardForward()},shortcut:V.CYCLE_TO_NEXT_DASHBOARD,isGlobal:!0},{action:()=>{this.handleCycleDashboardBackward()},shortcut:V.CYCLE_TO_PREVIOUS_DASHBOARD,isGlobal:!0},{action:()=>{this.sendReopenLast()},shortcut:Z.REOPEN_CLOSED_PANEL,isGlobal:!0},{action:()=>{N.debug("Consume unhandled save shortcut")},shortcut:Z.SAVE,isGlobal:!0}],isPanelsMenuShown:!1,isResetLayoutPromptShown:!1,isSettingsMenuShown:!1,unsavedNotebookCount:0,widgets:[],tabs:Object.entries(t).map(([i,l])=>({key:i,title:l.title??"Untitled",isClosable:i!==D,icon:i===D?Kn:void 0})),activeTabKey:D,layoutIteration:0}}static handleWindowBeforeUnload(e){e.preventDefault(),e.returnValue=""}static hydrateConsole(e,t){return Is.hydrate({...e,unzip:o=>$t.loadAsync(o).then(r=>Object.values(r.files))},t)}static handleRefresh(){N.info("Refreshing application"),window.location.reload()}componentDidMount(){this.initWidgets(),this.initDashboardData(),window.addEventListener("beforeunload",ee.handleWindowBeforeUnload)}componentDidUpdate(e,t){const{dashboardData:o}=this.props;e.dashboardData!==o&&this.handleDataChange(o)}componentWillUnmount(){this.deinitWidgets(),this.createDashboardListenerRemovers.forEach(e=>e()),this.closeDashboardListenerRemovers.forEach(e=>e()),window.removeEventListener("beforeunload",ee.handleWindowBeforeUnload)}initWidgets(){const{connection:e}=this.props;if(e!=null){if(e.subscribeToFieldUpdates==null){N.warn("subscribeToFieldUpdates not supported, not initializing widgets");return}this.widgetListenerRemover=e.subscribeToFieldUpdates(t=>{N.debug("Got updates",t),this.setState(({widgets:o})=>{const{updated:r,created:i,removed:l}=t,c=[...r,...l],d=o.filter(u=>!c.some(p=>p.name===u.name));return[...r,...i].forEach(u=>{u.name!=null&&u.name!==""&&d.push(u)}),{widgets:d}})})}}deinitWidgets(){var e;(e=this.widgetListenerRemover)==null||e.call(this)}initDashboardData(){const{setDashboardPluginData:e,updateDashboardData:t,workspace:o}=this.props,{data:r}=o,{filterSets:i,links:l,pluginDataMap:c}=r;if(t(D,{filterSets:i,links:l}),c!=null){const d=Object.keys(c);for(let h=0;h<d.length;h+=1){const u=d[h],p=c[u];N.debug("initDashboardData plugin data",u,p),e(D,u,p)}}}openNotebookFromURL(){const{match:e}=this.props,{notebookPath:t}=e.params;if(t){const{session:o,sessionConfig:r}=this.props;if(o==null||r==null){N.error("No session available to open notebook URL",t);return}const i={id:`/${t}`,itemName:`/${t}`},l=r.type,c={value:null,language:l};this.emitLayoutEvent(Ls.SELECT_NOTEBOOK,o,l,c,i,!0)}}sendClearFilter(){this.emitLayoutEvent(re.CLEAR_ALL_FILTERS)}sendCycleStackForward(){Ps(this.getActiveEventHub())}sendCycleStackBackward(){As(this.getActiveEventHub())}sendCycleTabForward(){_s(this.getActiveEventHub())}sendCycleTabBackward(){Ms(this.getActiveEventHub())}sendReopenLast(){this.emitLayoutEvent(Us.REOPEN_LAST)}cycleDashboard(e){const{tabs:t,activeTabKey:o}=this.state;if(t.length<=1)return;const r=t.findIndex(c=>c.key===o);if(r===-1)return;const i=e===0?(r+1)%t.length:(r-1+t.length)%t.length,l=t[i];this.handleTabSelect(l.key)}handleCycleDashboardForward(){this.cycleDashboard(0)}handleCycleDashboardBackward(){this.cycleDashboard(1)}getActiveEventHub(){const{activeTabKey:e}=this.state,t=this.dashboardLayouts.get(e);return ne(t,"No active layout found"),t.eventHub}emitLayoutEvent(e,...t){this.getActiveEventHub().emit(e,...t)}handleCancelResetLayoutPrompt(){this.setState({isResetLayoutPromptShown:!1})}handleConfirmResetLayoutPrompt(){this.setState({isResetLayoutPromptShown:!1}),this.resetLayout()}handleError(e){Y.isCanceled(e)||N.error(e)}handleSettingsMenuHide(){this.setState({isSettingsMenuShown:!1})}handleSettingsMenuShow(){this.setState({isSettingsMenuShown:!0})}handleControlSelect(e,t){switch(N.debug("handleControlSelect",e),e){case K.DROPDOWN_FILTER:this.emitLayoutEvent(re.OPEN_DROPDOWN,{title:"DropdownFilter",type:e,createNewStack:!0,dragEvent:t});break;case K.INPUT_FILTER:this.emitLayoutEvent(re.OPEN_INPUT,{title:"InputFilter",type:e,createNewStack:!0,dragEvent:t});break;case K.MARKDOWN:this.emitLayoutEvent(Ks.OPEN,{title:"Markdown",type:e,dragEvent:t});break;case K.FILTER_SET_MANAGER:this.emitLayoutEvent(re.OPEN_FILTER_SET_MANAGER,{title:"FilterSets",type:e,dragEvent:t});break;default:throw new Error(`Unrecognized control type ${e}`)}}handleToolSelect(e){N.debug("handleToolSelect",e);const{activeTool:t,setActiveTool:o}=this.props;o(t===e?me.DEFAULT:e)}handleClearFilter(){this.sendClearFilter()}handleDataChange(e){const{updateWorkspaceData:t}=this.props,{closed:o,filterSets:r,links:i,pluginDataMap:l}=e;t({closed:o,filterSets:r,links:i,pluginDataMap:l})}handleGoldenLayoutChange(e){var r,i;const{activeTabKey:t}=this.state,o=this.dashboardLayouts.get(t);o!==e&&(this.dashboardLayouts.set(t,e),o!=null&&((r=this.createDashboardListenerRemovers.get(t))==null||r(),(i=this.closeDashboardListenerRemovers.get(t))==null||i()),this.createDashboardListenerRemovers.set(t,$s(e.eventHub,this.handleCreateDashboard)),this.closeDashboardListenerRemovers.set(t,Gs(e.eventHub,this.handleCloseDashboard)))}handleCreateDashboard({pluginId:e,title:t,data:o}){const r=Gt(),{setDashboardPluginData:i}=this.props;i(r,e,o),this.setState(({tabs:l})=>{const c=l.findIndex(({title:d})=>d===t);return c!==-1?{tabs:l.map((d,h)=>h===c?{key:r,title:t}:d),activeTabKey:r}:{tabs:[...l,{key:r,title:t}],activeTabKey:r}})}handleCloseDashboard(e){const{tabs:t}=this.state,o=t.find(r=>r.title===e);o!=null&&this.handleTabClose(o.key)}handleWidgetMenuClick(){this.setState(({isPanelsMenuShown:e})=>({isPanelsMenuShown:!e}))}handleWidgetSelect(e,t){this.setState({isPanelsMenuShown:!1}),N.debug("handleWidgetSelect",e,t),this.openWidget(e,t)}handleWidgetsMenuClose(){this.setState({isPanelsMenuShown:!1})}handleAutoFillClick(){const{widgets:e}=this.state;N.debug("handleAutoFillClick",e);const t=e.sort((o,r)=>o.title!=null&&r.title!=null?o.title.localeCompare(r.title):0);for(let o=0;o<t.length;o+=1)this.openWidget(t[o])}handleExportLayoutClick(){N.debug("handleExportLayoutClick"),this.setState({isPanelsMenuShown:!1});try{const{workspace:e}=this.props,{data:t}=e,o=Se.exportLayout(t);N.debug("handleExportLayoutClick exportedConfig",o);const r=new Blob([JSON.stringify(o)],{type:"application/json"}),i=Pa.i18n.DateTimeFormat.format("yyyy-MM-dd-HHmmss",new Date),l=document.createElement("a");l.href=URL.createObjectURL(r),l.download=`deephaven-app-layout-${i}.json`,l.click()}catch(e){N.error("Unable to export layout",e)}}handleImportLayoutClick(){N.debug("handleImportLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.importElement.current!=null&&(this.importElement.current.value="",this.importElement.current.click())}handleResetLayoutClick(){N.debug("handleResetLayoutClick"),this.setState({isPanelsMenuShown:!1,isResetLayoutPromptShown:!0,unsavedNotebookCount:Ws.unsavedNotebookCount()})}handleImportLayoutFiles(e){var t;e.stopPropagation(),e.preventDefault(),e.target.files!=null&&this.importLayoutFile((t=e.target.files)==null?void 0:t[0])}async importLayoutFile(e){try{const{updateDashboardData:t,updateWorkspaceData:o}=this.props,r=await e.text(),i=JSON.parse(r),{filterSets:l,layoutConfig:c,links:d,pluginDataMap:h}=Se.normalizeLayout(i);Wt.flushSync(()=>{o({layoutConfig:c}),t(D,{filterSets:l,links:d,pluginDataMap:h})}),this.setState(({layoutIteration:u})=>({layoutIteration:u+1}))}catch(t){N.error("Unable to import layout",t)}}async resetLayout(){const{layoutStorage:e,session:t}=this.props,{filterSets:o,layoutConfig:r,links:i}=await Se.getDefaultLayout(e,t!==void 0),{updateDashboardData:l,updateWorkspaceData:c}=this.props;c({layoutConfig:r}),l(D,{filterSets:o,links:i})}handlePaste(e){if(e.target instanceof HTMLElement&&e.target.closest(".monaco-editor"))return;const{clipboardData:t}=e,o=t.getData("Text"),r=/“|”/g;r.test(o)&&(e.preventDefault(),e.stopPropagation(),document.execCommand("insertText",!1,o.replace(r,'"')))}openWidget(e,t){const{connection:o}=this.props;Bs(this.getActiveEventHub(),{widget:Vs(e),dragEvent:t,fetch:async()=>o==null?void 0:o.getObject(e)})}handleHomeClick(){this.handleTabSelect(D)}handleTabSelect(e){this.setState({activeTabKey:e})}handleTabReorder(e,t){this.setState(({tabs:o})=>{const r=[...o],[i]=r.splice(e,1);return r.splice(t,0,i),{tabs:r}})}handleTabClose(e){this.setState(({tabs:t,activeTabKey:o})=>{const r=t.filter(l=>l.key!==e);let i=o;if(o===e&&r.length>0){const l=t.findIndex(c=>c.key===e);i=l<t.length-1?t[l+1].key:t[l-1].key}return r.length===0&&(i=D),{tabs:r,activeTabKey:i}})}getDashboards(){const{layoutIteration:e,tabs:t}=this.state,{allDashboardData:o,workspace:r}=this.props,{data:i}=r,{layoutConfig:l}=i;return[{id:D,layoutConfig:l,key:`${D}-${e}`},...t.filter(c=>c.key!==D).map(c=>{var d;return{id:c.key,layoutConfig:((d=o[c.key])==null?void 0:d.layoutConfig)??Hs,key:`${c.key}-${e}`}})]}render(){const{activeTool:e,plugins:t,user:o,serverConfigValues:r}=this.props,{permissions:i}=o,{canUsePanels:l}=i,{contextActions:c,isPanelsMenuShown:d,isResetLayoutPromptShown:h,isSettingsMenuShown:u,unsavedNotebookCount:p,widgets:C,tabs:S,activeTabKey:f}=this.state,g=this.getDashboardPlugins(t);return n.jsxs("div",{className:R("app-main-tabs","w-100","h-100","d-flex","flex-column",e?`active-tool-${e.toLowerCase()}`:""),onPaste:this.handlePaste,tabIndex:-1,children:[n.jsxs("div",{className:"app-main-top-nav-menus",children:[n.jsx(St,{className:"ml-1",style:{maxHeight:"20px"}}),S.length>1&&n.jsx("div",{style:{flexShrink:0,flexGrow:1,flexBasis:0,minWidth:0},children:n.jsx(Jn,{tabs:S,activeKey:f,onSelect:this.handleTabSelect,onReorder:this.handleTabReorder,onClose:this.handleTabClose})}),n.jsxs("div",{className:"app-main-right-menu-buttons",children:[n.jsxs(j,{kind:"ghost",className:"btn-panels-menu",icon:$n,onClick:()=>{},children:["Controls",n.jsx(oo,{handleControlSelect:this.handleControlSelect,handleToolSelect:this.handleToolSelect,onClearFilter:this.handleClearFilter})]}),l&&n.jsxs(j,{kind:"ghost",className:"btn-panels-menu btn-show-panels","data-testid":"app-main-panels-button",onClick:this.handleWidgetMenuClick,icon:Gn,children:["Panels",n.jsx(Ys,{isShown:d,className:"panels-menu-popper",onExited:this.handleWidgetsMenuClose,options:{placement:"bottom"},closeOnBlur:!0,interactive:!0,children:n.jsx(uo,{widgets:C,onExportLayout:this.handleExportLayoutClick,onImportLayout:this.handleImportLayoutClick,onResetLayout:this.handleResetLayoutClick,onSelect:this.handleWidgetSelect})})]}),n.jsx(j,{kind:"ghost",className:R("btn-settings-menu",{"text-warning":o.operateAs!=null&&o.operateAs!==o.name}),onClick:this.handleSettingsMenuShow,icon:n.jsx("span",{className:"fa-layers",children:n.jsx(E,{icon:Wn,transform:"grow-3"})}),tooltip:"User Settings"})]})]}),n.jsx(Qn,{dashboards:this.getDashboards(),activeDashboard:f,onGoldenLayoutChange:this.handleGoldenLayoutChange,emptyDashboard:f===D?n.jsx(ho,{onAutoFillClick:this.handleAutoFillClick}):n.jsx(yt,{"data-testid":"app-main-container-loading"}),plugins:[n.jsx(Zs,{hydrateConsole:ee.hydrateConsole,notebooksUrl:new URL("notebooks/",document.baseURI).href},"ConsolePlugin"),...g]}),n.jsx(ca,{in:u,mountOnEnter:!0,unmountOnExit:!0,children:n.jsx(Ie,{serverConfigValues:r,pluginData:t,onDone:this.handleSettingsMenuHide,user:o})}),n.jsx(zs,{actions:c}),n.jsx("input",{ref:this.importElement,type:"file",accept:".json",style:{display:"none"},onChange:this.handleImportLayoutFiles,"data-testid":"input-import-layout"}),n.jsx(qs,{confirmButtonText:"Reset",onConfirm:this.handleConfirmResetLayoutPrompt,onCancel:this.handleCancelResetLayoutPrompt,isConfirmDanger:!0,isOpen:h,headerText:p===0?"Reset Layout":"Reset layout and discard unsaved changes",bodyText:p===0?"Do you want to reset your layout? Your existing layout will be lost.":"Do you want to reset your layout? Any unsaved notebooks will be lost."})]})}}const mo=a=>{var s,e;return{activeTool:Rs(a),allDashboardData:Fs(a),dashboardData:Ns(a,D),layoutStorage:lo(a),plugins:Es(a),connection:Ds(a,D),session:(s=Ke(a,D))==null?void 0:s.session,sessionConfig:(e=Ke(a,D))==null?void 0:e.config,user:js(a),workspace:vt(a),serverConfigValues:co(a)}},po=pe(mo,{setActiveTool:bt,setDashboardData:ft,setDashboardPluginData:ws,updateDashboardData:Ts,updateWorkspaceData:Cs})(Kt(ee));function go(){return n.jsxs("div",{className:"app","data-testid":"app-loaded",children:[n.jsx(po,{}),n.jsx(Vt,{})]})}const fo=$.module("AppInit");function rt(){const a=ct(),s=ea(),e=ta(),t=Xs(),o=sa(),r=na(),i=Ht(vt),l=ge(),[c,d]=m.useState();m.useEffect(function(){l(Js(t))},[t,l]),m.useEffect(function(){async function S(){try{const f=await aa(),g=await oa(a,e,f),k=s.getStorageService(),T=new ra(k,"/layouts"),w=new ia(a,k,"/notebooks"),b=new Be(T),y=new ka,U=await b.load({isConsoleAvailable:g!==void 0}),{data:fe}=U,{settings:Nt}=fe,{shortcutOverrides:Ae={}}=Nt,Ft=P.isMacPlatform?Ae.mac??{}:Ae.windows??{};Object.entries(Ft).forEach(([It,Ot])=>{var _e;(_e=Le.get(It))==null||_e.setKeyState(Ot)});const Rt={title:"Code Studio",filterSets:fe.filterSets,links:fe.links};l(Qs(a)),l(bt(me.DEFAULT)),l(en(o)),l(tn(y)),l(ft(D,Rt)),l(sn(w)),l(La(T)),l(nn(D,e)),g!==void 0&&l(an(D,g)),l(on(r)),l(rn(b)),l(ln(U)),l(cn(Be.makeDefaultWorkspaceSettings(o)))}catch(f){fo.error(f),d(f)}}S()},[a,s,e,o,l,r]);const h=i==null&&c==null,u=!h&&c==null,p=c!=null?`${c}`:null;return n.jsxs(n.Fragment,{children:[u&&n.jsx(go,{}),n.jsx(yt,{"data-testid":"app-init-loading",isLoading:h&&p==null,isLoaded:u,errorMessage:p})]})}const bo=X.lazy(()=>qt(()=>import("./StyleGuideRoot-BzThAiXJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)),vo=new URL(document.baseURI).pathname.replace(/\/$/,"");function yo(){return n.jsx(Yt,{basename:vo,children:n.jsxs(Zt,{children:[n.jsx(ve,{exact:!0,path:"/",component:rt}),n.jsx(ve,{path:"/notebooks/:notebookPath+",component:rt}),n.jsx(ve,{path:"/styleguide",component:bo}),n.jsx(zt,{from:"*",to:"/"})]})})}function Ro(){return m.useEffect(function(){da.register(new URL("./download/serviceWorker.js",window.location.href)),dn.init({getWorker:(s,e)=>e==="json"?new Xt:new Jt}),window["__@hello-pangea/dnd-disable-dev-warnings"]=!0},[]),n.jsx(yo,{})}export{Ro as AppRoot,Ro as default};
7
- //# sourceMappingURL=AppRoot-BzNjugdN.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./StyleGuideRoot-dA2xCRM4.js","./vendor-CLIsHur_.js","./helpers-BosuxZz1.js","./vendor-V6ynCsSj.css","./index-CNYwQhEi.js","./monaco-DaE0jI-i.js","./monaco-CgHo24-M.css","./index-CwMW8ik0.css","./IrisGridModel-DR8-Pxhc.js","./ControlType-Befg12ds.js","./ControlType-DDy7c-ZY.css","./IrisGridModel-CSTdZTzd.css","./MockChartModel-B1CLYsnL.js","./GridTokenMouseHandler-DYoFGIB4.js","./IrisGridShortcuts-CvKofD7x.js","./useMergeRef-BO8MVMb8.js","./IrisGridShortcuts-CJtrNKDP.css","./GridTokenMouseHandler-DTMTgCrk.css","./MockChartModel-XTjAvjXO.css","./Grid-NISpLPEC.js","./Grid-DPUNpG8i.css","./LocalWorkspaceStorage-BnIfiumx.js","./LocalWorkspaceStorage-Czsna8UP.css","./StyleGuideRoot-BXf6u3u6.css"])))=>i.map(i=>d[i]);
2
+ var kt=Object.defineProperty;var Lt=(a,s,e)=>s in a?kt(a,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[s]=e;var v=(a,s,e)=>Lt(a,typeof s!="symbol"?s+"":s,e);import{X as it,Y as Pt,Z as At,r as m,I as n,_ as pe,a0 as lt,U as X,a1 as je,K as R,M as E,a2 as _t,a3 as ge,a4 as ce,a5 as Oe,a6 as ke,a7 as be,a8 as Mt,a9 as Ut,aa as Kt,ab as $t,H as Gt,ac as Wt,ad as Bt,ae as Vt,af as Ht,ag as Yt,ah as Zt,ai as ve,aj as zt}from"./vendor-CLIsHur_.js";import{_ as qt,W as Xt,a as Jt}from"./monaco-DaE0jI-i.js";import{O as de,P as Y,T as L,I as A,D as _,a as W,b as Qt,u as ct,F as es,c as F,d as ts,e as ae,g as ss,f as dt,h as ns,i as as,j as os,k as rs,l as ut,m as ht,n as mt,o as pt,p as gt,q as is,S as ue,B as j,C as B,r as P,s as Le,t as ls,K as cs,v as Me,w as ds,x as us,y as hs,z as he,A as ms,E as ps,H as Pe,G as Q,J as gs,L as fs,M as bs,R as Ue,N as oe,Q as ye,U as Z,V as vs,W as K,X as me,Y as ys,Z as Ss,_ as xs,$ as Cs,a0 as Ts,a1 as ws,a2 as ft,a3 as bt,a4 as vt,a5 as js,a6 as Ke,a7 as Ds,a8 as Es,a9 as Ns,aa as D,ab as Fs,ac as Rs,ad as Is,ae as Os,af as ks,ag as Ls,ah as re,ai as Ps,aj as As,ak as _s,al as Ms,am as Us,an as Ks,ao as $s,ap as Gs,aq as Ws,ar as Bs,as as Vs,at as Hs,au as Ys,av as Zs,aw as zs,ax as qs,ay as Xs,az as Js,aA as Qs,aB as en,aC as tn,aD as sn,aE as nn,aF as an,aG as on,aH as rn,aI as ln,aJ as cn,aK as dn}from"./ControlType-Befg12ds.js";import{L as $,v as z,a as un,M as hn,b as mn,c as pn,d as gn,e as ne,f as fn,g as bn,h as vn,m as yn,s as Sn,l as xn,i as Cn,j as Tn,k as wn,n as jn,o as Dn,p as En,q as Nn,r as Fn,t as Rn,u as In,w as On,x as kn,y as Ln,z as Pn,A as An,B as _n,C as Mn,D as $e,E as Ge,F as We,G as Un,H as Kn,I as $n,J as Gn,K as Wn,N as yt}from"./index-CNYwQhEi.js";import{C as Bn,T as Vn,R as Hn,B as Yn,a as Zn,e as zn,L as St,N as V,c as qn,U as Se,g as Xn,b as Jn,A as Qn,u as ea,d as ta,f as sa,h as na,i as aa,l as oa,G as ra,j as ia,k as Be}from"./LocalWorkspaceStorage-BnIfiumx.js";import{P as la,I as xt,S as ca,D as da}from"./IrisGridShortcuts-CvKofD7x.js";import"./helpers-BosuxZz1.js";import"./useMergeRef-BO8MVMb8.js";class Ve{static makeSortConfig(s,e){return{column:s,direction:e}}static makeFilterConfig(s){var e=[],t=[];return s.forEach((o,r)=>{e.push(o),r>0&&t.push(de.and)}),{filterItems:e,filterOperators:t}}static combineFilterConfigs(s,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:de.and;return{filterItems:[...s.filterItems,...e.filterItems],filterOperators:[...s.filterOperators,t,...e.filterOperators]}}static makeFilterItem(s,e,t){return{columnName:s,type:e,value:t}}}function ua(a,s,e){if(a.length>s){var t=a.length-e;return{toKeep:a.slice(t),toPrune:a.slice(0,t)}}return{toKeep:a,toPrune:[]}}function ha(a,s){return fa(a)||ga(a,s)||pa(a,s)||ma()}function ma(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pa(a,s){if(a){if(typeof a=="string")return He(a,s);var e={}.toString.call(a).slice(8,-1);return e==="Object"&&a.constructor&&(e=a.constructor.name),e==="Map"||e==="Set"?Array.from(a):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?He(a,s):void 0}}function He(a,s){(s==null||s>a.length)&&(s=a.length);for(var e=0,t=Array(s);e<s;e++)t[e]=a[e];return t}function ga(a,s){var e=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(e!=null){var t,o,r,i,l=[],c=!0,d=!1;try{if(r=(e=e.call(a)).next,s!==0)for(;!(c=(t=r.call(e)).done)&&(l.push(t.value),l.length!==s);c=!0);}catch(h){d=!0,o=h}finally{try{if(!c&&e.return!=null&&(i=e.return(),Object(i)!==i))return}finally{if(d)throw o}}return l}}function fa(a){if(Array.isArray(a))return a}function Ye(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function Ze(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?Ye(Object(e),!0).forEach(function(t){I(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):Ye(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function ze(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function M(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){ze(r,t,o,i,l,"next",c)}function l(c){ze(r,t,o,i,l,"throw",c)}i(void 0)})}}function I(a,s,e){return(s=ba(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function ba(a){var s=va(a,"string");return typeof s=="symbol"?s:s+""}function va(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var xe=$.module("PouchStorageTable"),ya="Deephaven.";it.plugin(Pt);function Sa(a,s){switch(a){case L.in:case L.contains:return{$regex:new RegExp("".concat(s)).toString()};case L.inIgnoreCase:return{$regex:new RegExp("".concat(s),"i").toString()};case L.eq:return{$eq:s};case L.notEq:return{$ne:s};case L.greaterThan:return{$gt:s};case L.greaterThanOrEqualTo:return{$gte:s};case L.lessThan:return{$lt:s};case L.lessThanOrEqualTo:return{$lte:s};case L.startsWith:return{$regex:new RegExp("^".concat(s,".*")).toString()};default:throw new Error("Unsupported type: ".concat(a))}}function xa(a){for(var s=a.filterItems,e=a.filterOperators,t=null,o=0;o<s.length;o+=1){var r=s[o],i=r.columnName,l=r.type,c=r.value,d={[i]:Sa(l,c)};if(o===0)t=d;else if(t!==null&&o-1<e.length){var h=e[o-1];if(h===de.and)t={$and:[t,d]};else if(h===de.or)t={$or:[t,d]};else throw new Error("Unexpected filter operator ".concat(h,", ").concat(d))}}if(t==null)throw new Error("Invalid filter config ".concat(a));return t}function Ce(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return{$and:[...a.map(s=>xa(s)),{name:{$gt:null}},{id:{$gt:null}}]}}function Ca(a){var s,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return[{id:e?"desc":"asc"},...(s=a==null?void 0:a.map(t=>({[t.column]:t.direction})))!==null&&s!==void 0?s:[]]}class Ta{constructor(s,e){I(this,"db",void 0),I(this,"changes",void 0),I(this,"listeners",[]),I(this,"itemListeners",new Map),I(this,"currentSize",0),I(this,"currentViewport",void 0),I(this,"currentReverse",!1),I(this,"currentFilter",null),I(this,"currentSort",null),I(this,"infoUpdatePromise",void 0),I(this,"viewportUpdatePromise",void 0),I(this,"currentViewportData",void 0),this.db=new it("".concat(ya).concat(s),e),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(s){return this.listeners=[...this.listeners,s],()=>{this.listeners=this.listeners.filter(e=>e!==s)}}onItemUpdate(s,e){return this.itemListeners.has(s)||this.itemListeners.set(s,[]),this.itemListeners.set(s,[...this.itemListeners.get(s),e]),this.refreshItem(s),()=>{this.itemListeners.set(s,this.itemListeners.get(s).filter(t=>t!==e))}}close(){this.listeners=[]}get size(){return this.currentSize}get viewport(){return this.currentViewport}setReversed(s){this.currentReverse=s,this.currentViewportData=void 0,this.refreshData()}setViewport(s){this.currentViewport=s,this.refreshInfo(),this.refreshData()}setSorts(s){this.currentSort=s,this.currentViewportData=void 0,this.refreshData()}setFilters(s){this.currentFilter=s,this.currentViewportData=void 0,this.refreshInfo(),this.refreshData()}get data(){return this.currentViewportData}getViewportData(){var s=this;return M(function*(){var e;return s.viewportUpdatePromise||s.refreshData(),(e=s.viewportUpdatePromise)!==null&&e!==void 0?e:Promise.resolve({items:[],offset:0})})()}put(s){var e=this;return M(function*(){var t=Ze(Ze({},s),{},{_id:s.id});return yield e.db.put(t),t})()}sendUpdate(){for(var s,e=this.listeners,t=(s=this.currentViewportData)!==null&&s!==void 0?s:{items:[],offset:0},o=0;o<e.length;o+=1)e[o](t)}sendItemUpdate(s){var e=this.itemListeners.get(s.id);if(e!==void 0)for(var t=0;t<e.length;t+=1)e[t](s)}dbUpdate(s){xe.debug("Update received",s),this.refreshInfo(),s.doc!==void 0&&this.sendItemUpdate(s.doc),this.refreshData()}fetchInfo(s){var e=this;return M(function*(){return e.db.find({selector:s,fields:[]})})()}refreshInfo(){var s=this;return M(function*(){try{var e,t;(e=s.infoUpdatePromise)===null||e===void 0||e.cancel(),s.infoUpdatePromise=Y.makeCancelable(s.fetchInfo(Ce((t=s.currentFilter)!==null&&t!==void 0?t:[])));var o=yield s.infoUpdatePromise;s.currentSize=o.docs.length,s.sendUpdate()}catch(r){if(!Y.isCanceled(r))throw xe.error("Unable to refreshInfo",r),r}})()}fetchViewportData(s,e,t){var o=this;return M(function*(){return o.db.find({selector:e,skip:s.top,limit:s.bottom-s.top+1,sort:t,fields:["id","name"]}).then(r=>({items:r.docs,offset:s.top}))})()}refreshData(){var s=this;return M(function*(){if(s.currentViewport)try{var e,t,o=Ce((e=s.currentFilter)!==null&&e!==void 0?e:[]),r=Ca(s.currentSort,s.currentReverse);(t=s.viewportUpdatePromise)===null||t===void 0||t.cancel(),s.viewportUpdatePromise=Y.makeCancelable(s.fetchViewportData(s.currentViewport,o,r));var i=yield s.viewportUpdatePromise;return s.currentViewportData=i,s.sendUpdate(),i}catch(l){if(!Y.isCanceled(l))throw xe.error("Unable to refreshData",l),l}})()}refreshItem(s){var e=this;return M(function*(){var t=yield e.db.find({selector:{id:s},limit:1}),o=t.docs[0];return o!==void 0&&e.sendItemUpdate(o),o})()}getSnapshot(s){var e=this;return M(function*(){var t=new Map,o=[{id:e.currentReverse?"desc":"asc"}];return yield Promise.all(s.map(function(){var r=M(function*(i){var l,c=ha(i,2),d=c[0],h=c[1],u=h-d+1;return e.db.find({selector:Ce((l=e.currentFilter)!==null&&l!==void 0?l:[]),skip:d,limit:u,sort:o,fields:["id","name"]}).then(p=>{for(var C=0;C<u;C+=1){var S=d+C;t.set(S,p.docs[C])}})});return function(i){return r.apply(this,arguments)}}())),t})()}}function qe(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function ie(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?qe(Object(e),!0).forEach(function(t){Ct(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):qe(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function Xe(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function J(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){Xe(r,t,o,i,l,"next",c)}function l(c){Xe(r,t,o,i,l,"throw",c)}i(void 0)})}}function Ct(a,s,e){return(s=wa(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function wa(a){var s=ja(a,"string");return typeof s=="symbol"?s:s+""}function ja(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var Da=2500,Ea=2e3,O=$.module("PouchCommandHistoryTable");class Je extends Ta{constructor(s,e){var t;super("CommandHistoryStorage.".concat(s),{auto_compaction:!0,revs_limit:1}),Ct(this,"searchText",void 0),this.cache=e,this.cache.tableRegistry.has(this.cacheKey)||this.cache.tableRegistry.set(this.cacheKey,new Set),O.debug("Adding table to registry",this.cacheKey),(t=this.cache.tableRegistry.get(this.cacheKey))===null||t===void 0||t.add(this)}get cacheKey(){return this.db.name}setSearch(s){O.debug("Setting search filters",s),this.searchText=s.trim().toLowerCase(),this.setFilters(s?[Ve.makeFilterConfig([Ve.makeFilterItem("name",L.contains,s)])]:[])}dbUpdate(s){O.debug("Clearing cache and refreshing data",s),this.cache.response.delete(this.cacheKey),super.dbUpdate(s)}fetchData(s){var e=this;return J(function*(){return Y.withTimeout(0,J(function*(){e.cache.response.has(e.cacheKey)?O.debug("Fetching from cache",e.searchText,e.viewport):(O.debug("Fetching from PouchDB",e.searchText,e.viewport),e.cache.response.set(e.cacheKey,e.db.allDocs({include_docs:!0}).then(o=>{var r=o.rows.map(d=>d.doc).filter(d=>{var h=d.name;return h});O.debug("Fetched ".concat(r.length," command history items"));var i=ua(r,Da,Ea),l=i.toKeep,c=i.toPrune;return c.length&&e.pruneItems(c),{docs:l}})));var t=e.cache.response.get(e.cacheKey);return e.searchText==null||e.searchText===""?t:ie(ie({},t),{},{docs:(yield t).docs.filter(o=>{var r=o.name;return r.toLowerCase().includes(e.searchText)})})}))})()}fetchInfo(s){var e=this;return J(function*(){return e.fetchData(s)})()}fetchViewportData(s,e,t){var o=this;return J(function*(){var r=yield o.fetchData(e);O.debug("Fetching viewport data",s.top,s.bottom+1,t,r);var i=typeof t[0]=="object"&&t[0].id==="desc",l=i?r.docs.slice(0).reverse():r.docs,c=l.slice(s.top,s.bottom+1);return{items:c,offset:s.top}})()}pruneItems(s){var e=this;return J(function*(){if(e.cache.isPruning.get(e.cacheKey)===!0){O.debug("Pruning already in progress. Skipping.");return}try{O.debug("Pruning ".concat(s.length," command history items"));var t=e.cache.pauseChangeListeners(e.cacheKey);e.cache.isPruning.set(e.cacheKey,!0),yield e.db.bulkDocs(s.map(o=>ie(ie({},o),{},{_deleted:!0}))),e.cache.isPruning.set(e.cacheKey,!1),t(),O.debug("Finished pruning command history items")}catch(o){O.error("An error occurred while pruning db",o)}})()}close(){var s,e,t;O.debug("Closing table",this,(s=this.cache.tableRegistry.get(this.cacheKey))===null||s===void 0?void 0:s.size),(e=this.cache.tableRegistry.get(this.cacheKey))===null||e===void 0||e.delete(this),(t=this.changes)===null||t===void 0||t.cancel(),super.close()}}function Te(a,s,e){return(s=Na(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function Na(a){var s=Fa(a,"string");return typeof s=="symbol"?s:s+""}function Fa(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var Qe=$.module("PouchCommandHistoryCache");class Ra{constructor(){Te(this,"isPruning",void 0),Te(this,"response",void 0),Te(this,"tableRegistry",void 0),this.isPruning=new Map,this.response=new Map,this.tableRegistry=new Map}pauseChangeListeners(s){var e,t=[];return(e=this.tableRegistry.get(s))===null||e===void 0||e.forEach(o=>{o.changes&&(Qe.debug("Pausing event listeners on '".concat(s,"' table"),o),o.changes.cancel(),t.push(o))}),()=>{t.forEach(o=>{var r,i;(r=(i=this.tableRegistry.get(s))===null||i===void 0?void 0:i.has(o))!==null&&r!==void 0&&r&&(Qe.debug("Resuming event listeners on '".concat(s,"' table"),o),o.listenForChanges())})}}}function et(a,s){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);s&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),e.push.apply(e,t)}return e}function tt(a){for(var s=1;s<arguments.length;s++){var e=arguments[s]!=null?arguments[s]:{};s%2?et(Object(e),!0).forEach(function(t){De(a,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(e)):et(Object(e)).forEach(function(t){Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(e,t))})}return a}function st(a,s,e,t,o,r,i){try{var l=a[r](i),c=l.value}catch(d){return void e(d)}l.done?s(c):Promise.resolve(c).then(t,o)}function we(a){return function(){var s=this,e=arguments;return new Promise(function(t,o){var r=a.apply(s,e);function i(c){st(r,t,o,i,l,"next",c)}function l(c){st(r,t,o,i,l,"throw",c)}i(void 0)})}}function De(a,s,e){return(s=Ia(s))in a?Object.defineProperty(a,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[s]=e,a}function Ia(a){var s=Oa(a,"string");return typeof s=="symbol"?s:s+""}function Oa(a,s){if(typeof a!="object"||!a)return a;var e=a[Symbol.toPrimitive];if(e!==void 0){var t=e.call(a,s);if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}var nt=$.module("PouchCommandHistoryStorage");class ka{constructor(){De(this,"cache",new Ra),De(this,"updateTableMap",new Map)}getUpdateTable(s){return this.updateTableMap.has(s)||this.updateTableMap.set(s,new Je(s,this.cache)),this.updateTableMap.get(s)}getTable(s){var e=this;return we(function*(){return new Je(s,e.cache)})()}addItem(s,e,t,o){var r=this;return we(function*(){return r.updateItem(s,{id:"".concat(new Date().getTime()),name:t,data:o})})()}updateItem(s,e){var t=this;return we(function*(){var o=t.getUpdateTable(s),r=yield o.refreshItem(e.id),i=tt(tt({},r??{}),e);return nt.debug("Updating item",i),yield o.put(i),nt.debug("Update saved"),e})()}listenItem(s,e,t){var o=this.getUpdateTable(s);return o.onItemUpdate(e,t)}}const Tt="SET_LAYOUT_STORAGE",La=a=>({type:Tt,payload:a});var Pa=globalThis.dh;const Aa=$.module("SettingsUtils");function _a(a){return a.formatString!=null}function wt(a){const s=At.parse(window.navigator.userAgent),e=`${s.browser.name??""} ${Number(parseFloat(s.browser.version??""))||""}`,t=`${s.os.name??""} ${s.os.version??""}`,o=a.get("python.version")??"";return{"Engine Version":a.get("deephaven.version")??"Unknown","Web UI Version":"1.23.0",...o!==""?{"Python Version":o}:{},"Java Version":a.get("java.version")??"Unknown","Groovy Version":a.get("groovy.version")??"Unknown","Barrage Version":a.get("barrage.version")??"Unknown","Browser Name":e.trim()||"Unknown","User Agent OS":t.trim()||"Unknown"}}function Ee(a){return Array.from(a.entries()).filter(s=>s[1].version!==void 0).reduce((s,[e,t])=>({...s,[e]:t.version}),{})}function Ne(a){const s=a==null?void 0:a.querySelector("input, select, textarea");s&&s.focus()}function jt(a,s){return a.defaultFormatString===s.defaultFormatString}function Ma(a,s){return jt(a,s)}function Ua(a,s){return jt(a,s)}function Dt(a){return a!==""&&Qt.isValidColumnName(a)}function q(a,s,e){if(!s||e.formatString==null||!_a(e))return!1;switch(s){case"datetime":return W.isValid(a,e);case"decimal":return _.isValid(a,e);case"int":return A.isValid(a,e);default:return Aa.warn("Trying to validate format of unknown type"),!0}}function Ka(a){const{id:s,isNewRule:e,...t}=a;return t}function $a(a,s){return Dt(s.columnName)&&q(a,s.columnType,s.format)}function Et(a){const{timestamp:s,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i}=a,l=ct(),c=m.useMemo(()=>new es(l,[],{timeZone:e,showTimeZone:t,showTSeparator:o}),[l,t,o,e]),d=r?W.getGlobalFormats(t,o):W.getFormats(t,o);return i!=null&&!d.includes(i)&&d.unshift(i),n.jsx(n.Fragment,{children:d.map(h=>{const u=W.makeFormat("",h,W.TYPE_GLOBAL);return n.jsx("option",{value:h,"data-testid":"time-format",children:c.getFormattedString(s,F.dataType.DATETIME,"",u)},h)})})}function Ga(){return n.jsx(n.Fragment,{children:ts.TIME_ZONES.map(a=>{const{label:s,value:e}=a;return n.jsx("option",{value:e,children:s},e)})})}const G=$.module("FormattingSectionContent"),te=class te extends m.PureComponent{constructor(e){super(e);v(this,"debouncedCommitChanges");v(this,"pendingUpdates");v(this,"containerRef");v(this,"getCachedDateTimeFormatOptions",je((e,t,o,r=!1,i)=>{const{timestampAtMenuOpen:l}=this.state;return n.jsx(Et,{timestamp:l,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i})},{max:100}));this.debouncedCommitChanges=lt(this.commitChanges.bind(this),te.inputDebounceTime),this.queueUpdate=this.queueUpdate.bind(this),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),this.handleShowEmptyStringsChange=this.handleShowEmptyStringsChange.bind(this),this.handleShowNullStringsChange=this.handleShowNullStringsChange.bind(this),this.handleShowExtraGroupColumnChange=this.handleShowExtraGroupColumnChange.bind(this);const{defaultDateTimeFormat:t,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,showTimeZone:i,showTSeparator:l,timeZone:c,truncateNumbersWithPound:d,showEmptyStrings:h,showNullStrings:u,showExtraGroupColumn:p}=e;this.containerRef=X.createRef(),this.pendingUpdates=[],this.state={showTimeZone:i,showTSeparator:l,timeZone:c,defaultDateTimeFormat:t,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,truncateNumbersWithPound:d,showEmptyStrings:h,showNullStrings:u,showExtraGroupColumn:p,timestampAtMenuOpen:new Date}}componentDidMount(){Ne(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}queueUpdate(e){this.pendingUpdates.push(e),this.debouncedCommitChanges()}handleDefaultDateTimeFormatChange(e){G.debug("handleDefaultDateTimeFormatChange",e);const t={defaultDateTimeFormat:e};this.setState(t),this.queueUpdate(t)}handleDefaultDecimalFormatChange(e){G.debug("handleDefaultDecimalFormatChange",e.target.value);const t={defaultDecimalFormatOptions:{defaultFormatString:e.target.value}};this.setState(t),q(dh,F.dataType.DECIMAL,_.makeCustomFormat(e.target.value))&&this.queueUpdate(t)}handleDefaultIntegerFormatChange(e){G.debug("handleDefaultIntegerFormatChange",e.target.value);const t={defaultIntegerFormatOptions:{defaultFormatString:e.target.value}};this.setState(t),q(dh,F.dataType.INT,A.makeCustomFormat(e.target.value))&&this.queueUpdate(t)}handleShowTimeZoneChange(){const{showTimeZone:e}=this.state,t={showTimeZone:!e};this.setState(t),this.queueUpdate(t)}handleShowTSeparatorChange(){const{showTSeparator:e}=this.state,t={showTSeparator:!e};this.setState(t),this.queueUpdate(t)}handleTimeZoneChange(e){const t={timeZone:e};this.setState(t),this.queueUpdate(t)}handleResetDateTimeFormat(){const{defaults:e}=this.props,{defaultDateTimeFormat:t,showTimeZone:o,showTSeparator:r}=e;G.debug("handleResetDateTimeFormat"),this.setState({defaultDateTimeFormat:t,showTimeZone:o,showTSeparator:r}),this.queueUpdate({defaultDateTimeFormat:void 0,showTimeZone:void 0,showTSeparator:void 0})}handleResetTimeZone(){const{defaults:e}=this.props,{timeZone:t}=e;G.debug("handleResetTimeZone"),this.setState({timeZone:t}),this.queueUpdate({timeZone:void 0})}handleResetDecimalFormat(){const{defaults:e}=this.props,{defaultDecimalFormatOptions:t}=e;G.debug("handleResetDecimalFormat"),this.setState({defaultDecimalFormatOptions:t}),this.queueUpdate({defaultDecimalFormatOptions:void 0})}handleResetIntegerFormat(){const{defaults:e}=this.props,{defaultIntegerFormatOptions:t}=e;G.debug("handleResetIntegerFormat"),this.setState({defaultIntegerFormatOptions:t}),this.queueUpdate({defaultIntegerFormatOptions:void 0})}handleTruncateNumbersWithPoundChange(){const{truncateNumbersWithPound:e}=this.state,t={truncateNumbersWithPound:e!==!0};this.setState(t),this.queueUpdate(t)}handleShowEmptyStringsChange(){const{showEmptyStrings:e}=this.state,t={showEmptyStrings:!e};this.setState(t),this.queueUpdate(t)}handleShowNullStringsChange(){const{showNullStrings:e}=this.state,t={showNullStrings:!e};this.setState(t),this.queueUpdate(t)}handleShowExtraGroupColumnChange(){const{showExtraGroupColumn:e}=this.state,t={showExtraGroupColumn:!e};this.setState(t),this.queueUpdate(t)}commitChanges(){const{updateSettings:e}=this.props,t=this.pendingUpdates.reduce((o,r)=>({...o,...r}),{});this.pendingUpdates=[],e(t)}render(){const{defaults:e,dh:t}=this.props,{defaultDateTimeFormat:o,defaultDecimalFormatOptions:r,defaultIntegerFormatOptions:i,timeZone:l,showTimeZone:c,showTSeparator:d,truncateNumbersWithPound:h,showEmptyStrings:u,showNullStrings:p,showExtraGroupColumn:C}=this.state,{defaultFormatString:S=_.DEFAULT_FORMAT_STRING}=r??{},{defaultFormatString:f=A.DEFAULT_FORMAT_STRING}=i??{},g=l===e.timeZone,k=d===e.showTSeparator&&c===e.showTimeZone&&o===e.defaultDateTimeFormat,T=Ma(r,e.defaultDecimalFormatOptions),w=Ua(i,e.defaultIntegerFormatOptions);return n.jsx("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:n.jsxs("div",{className:"container-fluid p-0",children:[n.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."}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"select-reset-timezone",children:"Time zone"}),n.jsx("div",{className:"col pr-0",children:n.jsx(ue,{className:"custom-select",value:l,onChange:this.handleTimeZoneChange,id:"select-reset-timezone",children:n.jsx(Ga,{})})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetTimeZone,tooltip:"Reset Time Zone",className:R("btn-reset","btn-reset-time-zone",{hidden:g})})})]}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"select-default-time-format",children:"DateTime"}),n.jsx("div",{className:"col pr-0",children:n.jsx(ue,{className:"custom-select",value:o,onChange:this.handleDefaultDateTimeFormatChange,id:"select-default-time-format",children:this.getCachedDateTimeFormatOptions(l,c,d,!0,o)})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetDateTimeFormat,tooltip:"Reset DateTime Options",className:R("btn-reset","btn-reset-date-time",{hidden:k})})})]}),n.jsx("div",{className:"form-row",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:c??null,onChange:this.handleShowTimeZoneChange,children:"Show time zone in dates"})})}),n.jsx("div",{className:"form-row mb-3",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:d??null,onChange:this.handleShowTSeparatorChange,children:"Show 'T' separator"})})}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-decimal-format-input",children:"Decimal"}),n.jsx("div",{className:"col pr-0",children:n.jsx("input",{className:R("form-control","flex-grow-1","default-decimal-format-input",{"is-invalid":!q(t,F.dataType.DECIMAL,_.makeCustomFormat(S))}),"data-lpignore":!0,placeholder:_.DEFAULT_FORMAT_STRING,type:"text",id:"default-decimal-format-input",value:S,onChange:this.handleDefaultDecimalFormatChange})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetDecimalFormat,tooltip:"Reset Decimal Formatting",className:R("btn-reset","btn-reset-decimal",{hidden:T}),"data-testid":"btn-reset-decimal"})})]}),n.jsxs("div",{className:"form-row mb-2",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"Integer"}),n.jsx("div",{className:"col pr-0",children:n.jsx("input",{className:R("form-control","flex-grow-1","default-integer-format-input",{"is-invalid":!q(t,F.dataType.INT,A.makeCustomFormat(f))}),"data-lpignore":!0,placeholder:A.DEFAULT_FORMAT_STRING,type:"text",id:"default-integer-format-input",value:f,onChange:this.handleDefaultIntegerFormatChange})}),n.jsx("div",{className:"col-1 btn-col",children:n.jsx(j,{kind:"ghost",icon:z,onClick:this.handleResetIntegerFormat,tooltip:"Reset Integer Formatting",className:R("btn-reset","btn-reset-integer",{hidden:w}),"data-testid":"btn-reset-integer"})})]}),n.jsx("div",{className:"form-row mb-2",children:n.jsx("div",{className:"offset-3 col-9",children:n.jsx(B,{checked:h??null,onChange:this.handleTruncateNumbersWithPoundChange,children:"Show truncated numbers as ###"})})}),n.jsxs("div",{className:"form-row mb-3",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"String"}),n.jsxs("div",{className:"col pr-0 pt-2",children:[n.jsxs(B,{checked:u??null,onChange:this.handleShowEmptyStringsChange,children:["Show empty strings as"," ",n.jsx("span",{className:"font-italic text-muted",children:"empty"})]}),n.jsxs(B,{checked:p??null,onChange:this.handleShowNullStringsChange,children:["Show null strings as"," ",n.jsx("span",{className:"font-italic text-muted",children:"null"})]})]})]}),n.jsxs("div",{className:"form-row mb-3",id:"show_extra_group_column_div",children:[n.jsx("label",{className:"col-form-label col-3",htmlFor:"default-show-extra-group-column",children:"Rollup"}),n.jsx("div",{className:"col pr-0 pt-2",id:"default-show-extra-group-column",children:n.jsx(B,{checked:C,onChange:this.handleShowExtraGroupColumnChange,children:'Show extra "group" column'})})]})]})})}};v(te,"defaultProps",{scrollTo:()=>{}}),v(te,"inputDebounceTime",250);let Fe=te;const Wa=a=>({defaultDateTimeFormat:is(a),defaultDecimalFormatOptions:gt(a),defaultIntegerFormatOptions:pt(a),dh:mt(a),showTimeZone:ht(a),showTSeparator:ut(a),truncateNumbersWithPound:rs(a),showEmptyStrings:os(a),showNullStrings:as(a),showExtraGroupColumn:ns(a),timeZone:dt(a),defaults:ss(a)}),Ba=pe(Wa,{updateSettings:ae})(Fe);function Va(){const[a,s]=m.useState(!1),e=()=>{s(!a)};return n.jsxs(n.Fragment,{children:[n.jsx(j,{kind:"ghost",onClick:e,icon:un,children:"Legal Notices"}),n.jsxs(hn,{isOpen:a,toggle:e,children:[n.jsx(mn,{toggle:e,children:"Legal Notice"}),n.jsxs(pn,{children:[n.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."}),n.jsxs("p",{children:["© 2016-",new Date().getFullYear()," Deephaven Data Labs LLC. Patent Pending."]})]})]})]})}function H(a){const{children:s,isExpanded:e,sectionKey:t,title:o,onToggle:r}=a;return n.jsxs(n.Fragment,{children:[n.jsx("div",{children:n.jsxs(j,{kind:"ghost",className:"btn-collapse-trigger",onClick:()=>r(t),children:[n.jsx("div",{className:"d-flex align-items-center flex-grow-1",children:o}),n.jsx("div",{className:"flex-shrink-0",children:n.jsx(E,{transform:e?"flip-v":"",icon:gn})})]})}),n.jsx(Bn,{in:e,autoFocusOnShow:!0,children:s})]})}function Ha({shortcut:a,displayText:s,categoryName:e,onChange:t}){const[o,r]=m.useState(s),[i,l]=m.useState(a.getKeyState()),[c,d]=m.useState(!1),[h,u]=m.useState("");m.useEffect(function(){r(s),l(a.getKeyState())},[s,a]),m.useEffect(function(){r(P.getDisplayText(i)),a.matchesKeyState(i)&&d(!1)},[i,a]),m.useEffect(function(){if(c){if(!P.isValidKeyState(i)){P.isAllowedKey(i.keyValue)?u("Must contain a modifier key"):u("Must contain an allowed action key");return}const b=Le.getConflictingShortcuts(i).filter(y=>y.id.startsWith(e)&&y!==a).map(y=>y.name);if(b.length){u(`Conflicts with ${b.join(", ")}`);return}u("")}else u("")},[c,i,e,a]);function p(w){if(w.stopPropagation(),w.preventDefault(),a.isEditable&&!w.repeat){const b=P.getKeyStateFromEvent(w),y=P.createKeyState([cs.BACKSPACE]);P.doKeyStatesMatch(b,y)?l(P.NULL_KEY_STATE):l(b)}}function C(w){w.stopPropagation(),w.preventDefault(),a.matchesKeyState(i)||d(!0)}function S(){Me.disableAllActions()}function f(){Me.enableAllActions()}function g(){a.setKeyState(i),d(!1),t(a)}function k(){const w=a.getKeyState();l(w),d(!1)}function T(){d(!0),l(a.getDefaultKeyState())}return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"shortcut-item-container",children:[n.jsxs("label",{className:"shortcut-item-name",children:[a.name,a.tooltip!==void 0&&n.jsx(ls,{children:a.tooltip})]}),n.jsxs("div",{className:"shortcut-item-input-container",children:[n.jsx("input",{className:R("form-control",{"is-invalid":h}),onKeyDown:p,onKeyUp:C,onFocus:S,onBlur:f,disabled:!a.isEditable,value:o,readOnly:!0}),!P.doKeyStatesMatch(i,a.getDefaultKeyState())&&!h&&n.jsx(j,{className:"reset-to-default-button",kind:"ghost",icon:n.jsx(E,{icon:z,transform:{rotate:90,flipX:!0}}),tooltip:"Reset to default",onClick:T})]})]}),c&&n.jsxs("div",{className:R("shortcut-item-message-container",{"is-invalid":h}),children:[n.jsx("div",{className:"shortcut-item-message",children:h}),n.jsxs("div",{className:"shortcut-item-message-buttons",children:[P.isValidKeyState(i)&&n.jsx(j,{kind:"ghost",onClick:g,children:"Confirm"}),n.jsx(j,{kind:"ghost",onClick:k,children:"Undo"})]})]})]})}function Ya({shortcutOverrides:a={},updateSettings:s}){const e=m.useCallback(i=>{const l=P.isMacPlatform,c={mac:{...a.mac},windows:{...a.windows}},d=l?c.mac:c.windows;i.forEach(h=>{h.isDefault()?delete d[h.id]:d[h.id]=h.getKeyState()}),s({shortcutOverrides:c})},[s,a]);let t=Array.from(Le.shortcutsByCategory.entries()).map(([i,l])=>({name:i,shortcuts:l}));const o=t.findIndex(i=>i.name.toUpperCase()==="GLOBAL"),r=t.splice(o,1);return t=t.concat(r),n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Customize shortcuts below. To prevent unexpected results, avoid conflicting shortcuts with the browser or IDE editor."}),t.map(i=>n.jsx(Za,{name:i.name,shortcuts:i.shortcuts,saveShortcutOverrides:e},i.name))]})}function Za({name:a,shortcuts:s,saveShortcutOverrides:e}){function t(c){return c.split("_").map(d=>`${d[0].toUpperCase()}${d.slice(1).toLowerCase()}`).join(" ")}const[o,r]=m.useState(s);function i(c){const d=o.filter(u=>u!==c&&!u.isNull()&&u.matchesKeyState(c.getKeyState()));d.forEach(u=>u.setToNull());const h=[c,...d];e(h),r(u=>[...u])}const l=m.useMemo(()=>o.map(c=>c.getDisplayText()),[o]);return n.jsxs("div",{className:"mt-3",children:[n.jsx("div",{className:"font-weight-bold",children:t(a)}),o.map((c,d)=>n.jsx(Ha,{shortcut:c,displayText:l[d],categoryName:a,onChange:i},c.id))]})}const za=a=>({shortcutOverrides:ds(a)}),qa={updateSettings:ae},Xa=pe(za,qa)(Ya),Ja=[{value:F.dataType.DATETIME,label:"DateTime"},{value:F.dataType.DECIMAL,label:"Decimal"},{value:F.dataType.INT,label:"Integer"}];function Qa(){const a=Ja.map(s=>n.jsx("option",{value:s.value,children:s.label},`key-columnType-${s.value}`));return n.jsxs(n.Fragment,{children:[n.jsx("option",{disabled:!0,value:"",children:"Select Type"},"key-columnType-placeholder"),a]})}const se=class se extends m.PureComponent{constructor(e){super(e);v(this,"debouncedCommitChanges");v(this,"containerRef");v(this,"addFormatRuleButtonRef");v(this,"lastFormatRuleIndex");v(this,"getCachedColumnTypeOptions",je(()=>n.jsx(Qa,{}),{max:100}));v(this,"getCachedDateTimeFormatOptions",je((e,t,o,r=!1,i)=>{const{timestampAtMenuOpen:l}=this.state;return n.jsx(Et,{timestamp:l,timeZone:e,showTimeZone:t,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i})},{max:100}));this.debouncedCommitChanges=lt(this.commitChanges.bind(this),se.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,showTimeZone:o,showTSeparator:r,timeZone:i}=e,l=t.map((c,d)=>({...c,id:d}));this.containerRef=X.createRef(),this.addFormatRuleButtonRef=X.createRef(),this.lastFormatRuleIndex=l.length,this.state={formatSettings:l,formatRulesChanged:!1,showTimeZone:o,showTSeparator:r,timeZone:i,timestampAtMenuOpen:new Date}}componentDidMount(){Ne(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}isDuplicateRule(e){const{formatSettings:t}=this.state;return t.some(o=>o.id!==e.id&&o.columnName===e.columnName&&o.columnType===e.columnType)??!1}getAutoIncrementFormatRuleIndex(){const{lastFormatRuleIndex:e}=this;return this.lastFormatRuleIndex+=1,e}handleFormatRuleChange(e,t,o){this.setState(r=>{const{formatSettings:i}=r;ne(i);const l=[...i];let c={};t==="columnType"&&(c={format:this.makeDefaultFormatterItemByType(o)});const d={...l[e],...c,[t]:o};return l[e]=d,{formatSettings:l}},()=>{this.debouncedCommitChanges()})}handleFormatRuleCreate(){this.setState(e=>{const{formatSettings:t}=e,o={columnType:F.dataType.DATETIME,columnName:"",format:{},id:this.getAutoIncrementFormatRuleIndex(),isNewRule:!0};return{formatSettings:[...t,o],formatRulesChanged:!0}})}handleFormatRuleDelete(e){this.setState(t=>{const{formatSettings:o}=t;return{formatSettings:o.filter((i,l)=>l!==e),formatRulesChanged:!0}},()=>{this.debouncedCommitChanges()})}handleFormatRuleEntered(e){this.scrollToFormatBlockBottom(),Ne(e)}commitChanges(){const{formatSettings:e}=this.state,{dh:t}=this.props,o=e.filter(l=>$a(t,l)).map(Ka)??[],{updateSettings:r}=this.props;r({formatter:o})}scrollToFormatBlockBottom(){var t,o;const{scrollTo:e}=this.props;e(0,(((t=this.addFormatRuleButtonRef.current)==null?void 0:t.offsetHeight)??0)+(((o=this.addFormatRuleButtonRef.current)==null?void 0:o.offsetTop)??0))}getRuleError(e){const{dh:t}=this.props,o={hasColumnNameError:!1,hasFormatError:!1,message:""},r=[];return e.isNewRule!==void 0&&e.isNewRule||(this.isDuplicateRule(e)&&(o.hasColumnNameError=!0,r.push("Duplicate column name/type combo.")),Dt(e.columnName)||(o.hasColumnNameError=!0,r.push("Column names must start with a letter or underscore and contain only alphanumeric characters or underscores.")),e.format.formatString!=null&&e.format.formatString.length===0?(o.hasFormatError=!0,r.push("Empty formatting rule.")):q(t,e.columnType,e.format)||(o.hasFormatError=!0,r.push("Invalid formatting rule.")),o.message=r.join(`
4
+ `)),o}makeDefaultFormatterItemByType(e){switch(F.getNormalizedType(e)){case F.dataType.INT:{const{defaultIntegerFormatOptions:t}=this.props,{defaultFormatString:o}=t;return A.makeFormat("",o??A.DEFAULT_FORMAT_STRING,A.TYPE_GLOBAL,void 0)}case F.dataType.DECIMAL:{const{defaultDecimalFormatOptions:t}=this.props,{defaultFormatString:o}=t;return _.makeFormat("",o??_.DEFAULT_FORMAT_STRING,_.TYPE_GLOBAL,void 0)}default:return""}}renderFormatRule(e,t){const o=`input-${e}-columnName`,r=`input-${e}-columnType`,i=`input-${e}-format`,l=this.getCachedColumnTypeOptions(),c=p=>this.handleFormatRuleChange(e,"columnName",p.target.value),d=()=>this.handleFormatRuleChange(e,"isNewRule",!1),h=p=>this.handleFormatRuleChange(e,"columnType",p),u=this.getRuleError(t);return n.jsxs("fieldset",{className:"container-fluid format-rule-container",children:[n.jsxs("div",{className:"form-row",children:[n.jsxs("div",{className:"form-group col-7 mb-2",children:[n.jsx("label",{htmlFor:o,children:"Column Name"}),n.jsx("input",{id:o,className:R("form-control",{"is-invalid":u.hasColumnNameError}),"data-lpignore":!0,type:"text",value:t.columnName,onChange:c,onBlur:d})]}),n.jsxs("div",{className:"form-group col mb-2",children:[n.jsx(j,{kind:"ghost",className:"btn-delete-format-rule float-right",tabIndex:-1,onClick:()=>this.handleFormatRuleDelete(e),icon:fn,tooltip:"Delete","aria-label":"Delete Format Rule"}),n.jsx("label",{htmlFor:r,children:"Column Type"}),n.jsx(ue,{id:r,className:"custom-select",value:t.columnType,onChange:h,children:l})]})]}),n.jsx("div",{className:"form-row",children:n.jsxs("div",{className:"form-group col-12 d-flex mb-2",children:[n.jsx("label",{className:"flex-shrink-0 col-form-label mr-3",htmlFor:i,children:"Formatting Rule"}),this.renderFormatRuleInput(e,t.columnType,i,t.format,u.hasFormatError)]})}),n.jsx("div",{className:"form-row",children:n.jsx("div",{className:"form-group col-12 d-flex mb-2",children:u.message&&n.jsx("p",{className:"text-danger",children:u.message})})})]},e)}renderFormatRuleInput(e,t,o,r,i){switch(F.getNormalizedType(t)){case F.dataType.DATETIME:return this.renderDateTimeFormatRuleInput(e,o,r,i);case F.dataType.DECIMAL:return this.renderDecimalFormatRuleInput(e,o,r,i);case F.dataType.INT:return this.renderIntegerFormatRuleInput(e,o,r,i);default:throw new Error(`Unrecognized column type: ${t}`)}}renderDateTimeFormatRuleInput(e,t,o,r){const{showTimeZone:i,showTSeparator:l,timeZone:c}=this.state,d=o.formatString??"";return n.jsxs(ue,{className:R("custom-select",{"is-invalid":r}),value:d,id:t,onChange:h=>{const u=W.makeFormat("",h,W.TYPE_GLOBAL);this.handleFormatRuleChange(e,"format",u)},children:[n.jsx("option",{value:"",disabled:!0,children:"Select format"},"default"),this.getCachedDateTimeFormatOptions(c,i,l)]})}renderIntegerFormatRuleInput(e,t,o,r){const{defaultIntegerFormatOptions:i}=this.props;ne(i);const{defaultFormatString:l}=i,c=o.formatString??"";return n.jsx("input",{className:R("form-control","flex-grow-1",{"is-invalid":r}),"data-lpignore":!0,id:t,placeholder:l??A.DEFAULT_FORMAT_STRING,type:"text",value:c,onChange:d=>{const h=A.makeFormat("",d.target.value,A.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",h)}})}renderDecimalFormatRuleInput(e,t,o,r){const{defaultDecimalFormatOptions:i}=this.props,{defaultFormatString:l}=i,c=o.formatString??"";return n.jsx("input",{className:R("form-control","flex-grow-1",{"is-invalid":r}),"data-lpignore":!0,id:t,placeholder:l??_.DEFAULT_FORMAT_STRING,type:"text",value:c,onChange:d=>{const h=_.makeFormat("",d.target.value,_.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",h)}})}render(){const{formatRulesChanged:e,formatSettings:t}=this.state,o=t.map((i,l)=>n.jsx(hs,{onEnter:this.handleFormatRuleEntered,children:this.renderFormatRule(l,i)},i.id)),r=n.jsx(j,{kind:"ghost",className:"mb-3",onClick:this.handleFormatRuleCreate,ref:this.addFormatRuleButtonRef,icon:bn,children:"Add New Rule"});return n.jsxs("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:[n.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."}),n.jsx(_t,{appear:e,enter:e,exit:e,children:o}),r]})}};v(se,"defaultProps",{scrollTo:()=>{}}),v(se,"inputDebounceTime",250);let Re=se;const eo=a=>({formatter:us(a),defaultDecimalFormatOptions:gt(a),defaultIntegerFormatOptions:pt(a),dh:mt(a),showTimeZone:ht(a),showTSeparator:ut(a),timeZone:dt(a)}),to=pe(eo,{updateSettings:ae})(Re);function so(){const a=ge(),s=he(ms),e=he(ps),t=m.useCallback(r=>{a(ae({webgl:r}))},[a]),o=e?n.jsx(Q,{children:"WebGL in most cases has significant performance improvements, particularly when plotting large datasets. However, in some environments (such as remote desktop environments), WebGL may not use hardware acceleration and have degraded performance. If you are experiencing issues with WebGL, you can disable it here."}):n.jsx(Q,{children:"WebGL is disabled by your system administrator. Contact your system administrator to enable."});return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Advanced settings here. Be careful!"}),n.jsxs("div",{className:"form-row mb-3 pl-1",children:[n.jsx(ce,{isSelected:s,isDisabled:!e,onChange:t,marginEnd:"size-0",children:"Enable WebGL"}),n.jsxs(Oe,{variant:"info",marginTop:"size-50",children:[n.jsx(Pe,{children:"Enable WebGL"}),n.jsx(ke,{children:n.jsx(Q,{children:o})})]})]})]})}function no(){const a=gs(),s=he(fs),e=ge(),t=m.useCallback(r=>{if(r!=="regular"&&r!=="compact"&&r!=="spacious")throw new Error(`Invalid grid density value: ${r}`);e(ae({gridDensity:r}))},[e]),o=s.gridDensity;return ne(a,"ThemeContext value is null"),n.jsxs(n.Fragment,{children:[n.jsx(Vn,{}),n.jsxs(la,{label:"Default table density",selectedKey:o,onChange:t,children:[n.jsx(be,{children:"Regular"},"regular"),n.jsx(be,{children:"Compact"},"compact"),n.jsx(be,{children:"Spacious"},"spacious")]})]})}function ao(){const a=he(bs),s=ge(),{isMinimapEnabled:e,formatOnSave:t,python:{linter:o={}}={}}=a,{isEnabled:r,config:i=Ue}=o,l=m.useCallback(g=>s(oe({isMinimapEnabled:g})),[s]),c=m.useCallback(g=>s(oe({formatOnSave:g})),[s]),d=m.useCallback(g=>{s(oe({python:{linter:{...o,isEnabled:g}}})),ye.isRuffEnabled=g,ye.setRuffSettings(i)},[s,o,i]),h=m.useCallback(g=>{s(oe({python:{linter:{...o,config:JSON.stringify(g)===JSON.stringify(Ue)?void 0:g}}})),ye.setRuffSettings(g)},[s,o]),u=JSON.stringify(i,null,2),[p,C]=m.useState(!1),S=m.useCallback(()=>{C(!1)},[]),f=m.useCallback(g=>{h(g),S()},[h,S]);return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"app-settings-menu-description",children:"Customize the notebook editor."}),n.jsx("div",{className:"form-row pl-1",children:n.jsx(ce,{isSelected:e,onChange:l,children:"Enable Minimap"})}),n.jsxs("div",{className:"form-row align-items-center pl-1",children:[n.jsx(ce,{isSelected:t,onChange:c,margin:0,children:"Format on Save"}),n.jsxs(Oe,{variant:"info",children:[n.jsx(Pe,{children:"Format on Save"}),n.jsx(ke,{children:n.jsx(Q,{children:"The Ruff settings control formatting options. Notebooks can be formatted manually using the right-click context menu."})})]})]}),n.jsx("div",{className:"form-row pl-1",children:n.jsx(ce,{isSelected:r,onChange:d,marginEnd:0,children:"Enable Ruff Python Linter"})}),n.jsx("div",{className:"form-row pl-1",children:n.jsxs(Mt,{onPress:()=>C(!0),children:[n.jsx(Ut,{children:n.jsx(E,{icon:vn})}),n.jsx(Q,{children:"Customize Ruff Settings"})]})}),p&&n.jsx(Hn,{text:u,isOpen:p,onClose:S,onSave:f})]})}const x=class x extends m.Component{constructor(e){super(e);v(this,"menuContentRef");v(this,"broadcastChannel");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=X.createRef(),this.broadcastChannel=new BroadcastChannel(Yn),this.state={expandedSectionKey:x.FORMATTING_SECTION_KEY}}static focusFirstInputInContainer(e){const t=e==null?void 0:e.querySelector("input, select, textarea");t&&t.focus()}componentDidMount(){x.focusFirstInputInContainer(this.menuContentRef.current)}componentWillUnmount(){this.broadcastChannel.close()}isSectionExpanded(e){const{expandedSectionKey:t}=this.state;return t===e}handleLogout(){this.broadcastChannel.postMessage(yn(Zn))}handleScrollTo(e,t){var o;(o=this.menuContentRef.current)==null||o.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,pluginData:t}=this.props,o=Ee(t);zn(xn,{uiVersion:"1.23.0",userAgent:navigator.userAgent,...Object.fromEntries(e),pluginInfo:o},Sn.getState())}render(){const e="https://github.com/deephaven/web-client-ui/",t="https://deephaven.io/core/docs/",{serverConfigValues:o,pluginData:r,user:i}=this.props,l=wt(o),c=Ee(r),d=o.get("deephaven.version"),h=Z.COPY_VERSION_INFO.getDisplayText(),u=(f,g)=>n.jsxs(m.Fragment,{children:[n.jsx("div",{children:f}),n.jsx("div",{children:g})]},f),p=i.displayName??i.name,C=i.image!=null&&i.image!=="",S=p!=="";return n.jsxs("div",{className:"app-settings-menu",children:[n.jsxs("header",{className:"app-settings-menu-header",children:[n.jsxs("div",{className:"user-info",children:[n.jsxs("div",{className:"user-image",children:[!C&&n.jsx(E,{icon:Cn,transform:"grow-8"}),C&&n.jsx("img",{src:i.image,alt:p})]}),n.jsxs("div",{className:"user-details",children:[S&&n.jsxs("div",{className:"user-name",children:[p,i.operateAs!=null&&i.name!==i.operateAs&&n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"font-weight-light font-italic",children:[" ","as"," "]}),n.jsxs("span",{className:"operating-as-user",children:[n.jsx(E,{icon:Tn,className:"mr-1"}),i.operateAs]})]})]}),i.permissions.canLogout&&n.jsx("button",{type:"button",className:"btn btn-link",onClick:this.handleLogout,children:"logout"})]})]}),n.jsx(j,{kind:"ghost",className:"btn-close-settings-menu",onClick:this.handleClose,icon:n.jsx(E,{icon:wn,transform:"grow-4"}),tooltip:"Close"})]}),n.jsxs("div",{className:"app-settings-menu-content",ref:this.menuContentRef,children:[n.jsx("h5",{children:"Settings"}),n.jsx("hr",{className:"my-0"}),n.jsx(H,{sectionKey:x.FORMATTING_SECTION_KEY,isExpanded:this.isSectionExpanded(x.FORMATTING_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:jn,transform:"grow-4",className:"mr-2"}),"Default Format & Time zone"]}),onToggle:this.handleSectionToggle,children:n.jsx(Ba,{})}),n.jsx(H,{sectionKey:x.COLUMN_SPECIFIC_SECTION_KEY,isExpanded:this.isSectionExpanded(x.COLUMN_SPECIFIC_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Dn,transform:"grow-4",className:"mr-2"}),"Format by Column Name & Type"]}),onToggle:this.handleSectionToggle,children:n.jsx(to,{scrollTo:this.handleScrollTo})}),n.jsx(H,{sectionKey:x.THEME_SECTION_KEY,isExpanded:this.isSectionExpanded(x.THEME_SECTION_KEY),onToggle:this.handleSectionToggle,title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:En,transform:"grow-4",className:"mr-2"}),"Theme"]}),children:n.jsx(no,{})}),n.jsx(H,{sectionKey:x.EDITOR_SECTION_KEY,isExpanded:this.isSectionExpanded(x.EDITOR_SECTION_KEY),onToggle:this.handleSectionToggle,title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Nn,transform:"grow-4",className:"mr-2"}),"Editor"]}),children:n.jsx(ao,{})}),n.jsx(H,{sectionKey:x.SHORTCUT_SECTION_KEY,isExpanded:this.isSectionExpanded(x.SHORTCUT_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Fn,transform:"grow-4",className:"mr-2"}),"Keyboard Shortcuts"]}),onToggle:this.handleSectionToggle,children:n.jsx(Xa,{})}),n.jsx(H,{sectionKey:x.ADVANCED_SECTION_KEY,isExpanded:this.isSectionExpanded(x.ADVANCED_SECTION_KEY),title:n.jsxs(n.Fragment,{children:[n.jsx(E,{icon:Rn,transform:"grow-4",className:"mr-2"}),"Advanced"]}),onToggle:this.handleSectionToggle,children:n.jsx(so,{})}),n.jsxs("div",{className:"app-settings-footer",children:[n.jsxs("div",{className:"app-settings-footer-section",children:[n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Support"}),n.jsxs("div",{children:["GitHub: ",n.jsx("a",{href:e,className:"custom-link",target:"_blank",rel:"noopener noreferrer",children:e})]}),n.jsx(j,{kind:"tertiary",className:"mt-2 py-2",onClick:this.handleExportSupportLogs,children:"Export Logs"})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Documentation"}),n.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:t,className:"custom-link",children:t})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Version"}),n.jsxs("span",{className:"d-inline-block text-muted",children:[d,n.jsxs(Oe,{variant:"info",children:[n.jsx(Pe,{children:"Version Info"}),n.jsxs(ke,{children:[n.jsx("div",{className:"detailed-server-config",children:Object.entries(l).map(([f,g])=>u(f,g))}),n.jsxs(vs,{copy:Object.entries({...l,...c}).map(([f,g])=>`${f}: ${g}`).join(`
5
+ `),children:["Copy Versions"," ",n.jsxs("small",{className:"text-muted",children:["(",h,")"]})]})]})]})]})]}),n.jsxs("div",{className:"app-settings-footer-item",children:[n.jsx("div",{className:"font-weight-bold",children:"Plugins"}),n.jsx("div",{className:"container",children:Array.from(r.entries()).filter(f=>f[1].version!==void 0).map(([f,g])=>n.jsxs("div",{className:"row justify-content-start align-items-center",children:[n.jsx("div",{className:"col pl-0",children:n.jsx("span",{className:"my-0 text-truncate",children:f})}),n.jsx("div",{className:"col-auto",children:n.jsx("span",{children:g==null?void 0:g.version})})]},f))})]}),n.jsx("div",{className:"app-settings-footer-item",children:n.jsx(Va,{})})]}),n.jsx("div",{className:"app-settings-footer-section",children:n.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://deephaven.io",style:{display:"block",width:"61.8%"},children:n.jsx(St,{})})})]})]})]})}};v(x,"defaultProps",{onDone:()=>{}}),v(x,"FORMATTING_SECTION_KEY","SettingsMenu.formatting"),v(x,"COLUMN_SPECIFIC_SECTION_KEY","SettingsMenu.columnFormatting"),v(x,"APPLICATION_SECTION_KEY","ApplicationMenu.settings"),v(x,"SHORTCUT_SECTION_KEY","SettingsMenu.shortcuts"),v(x,"THEME_SECTION_KEY","SettingsMenu.theme"),v(x,"ADVANCED_SECTION_KEY","SettingsMenu.advanced"),v(x,"EDITOR_SECTION_KEY","SettingsMenu.editor");let Ie=x;const at=10;function le(a){const{forwardedProps:s}=a;ne(s,"DragSourceMenuItem forwardedProps");const{menuItem:{action:e,title:t,disabled:o},iconElement:r,displayShortcut:i,isMouseSelected:l,isKeyboardSelected:c,closeMenu:d}=s,h=m.useRef(),u=m.useRef(),p=m.useRef(null),[C,S]=m.useState(!1),f=m.useCallback(T=>{h.current!=null&&u.current!=null&&p.current&&(Math.abs(h.current-T.clientX)>=at||Math.abs(u.current-T.clientY)>=at)&&(S(!0),window.removeEventListener("mousemove",f),d(),e(T),p.current=null)},[e,d]);function g(T){h.current=T.clientX,u.current=T.clientY,p.current=T.target,window.addEventListener("mousemove",f)}function k(T){p.current===T.target&&(S(!0),d(),e(),window.removeEventListener("mousemove",f)),p.current=null}return m.useEffect(function(){return function(){return window.removeEventListener("mousemove",f)}},[f]),n.jsxs("button",{type:"button",className:R("btn-context-menu",{disabled:o},{active:l&&!o},{"keyboard-active":c&&!o}),onMouseDown:g,onMouseUp:k,disabled:C,children:[n.jsx("span",{className:R("icon"),children:r}),n.jsx("span",{className:"title",children:t}),n.jsx("span",{className:"shortcut",children:i})]})}function oo(a){const{handleControlSelect:s,handleToolSelect:e,onClearFilter:t}=a,o=m.useMemo(()=>[{title:"Input Filter",icon:In,menuElement:n.jsx(le,{}),action:r=>{s(K.INPUT_FILTER,r)},order:10},{title:"Dropdown Filter",icon:On,menuElement:n.jsx(le,{}),action:r=>{s(K.DROPDOWN_FILTER,r)},order:15},{title:"Markdown Widget",icon:kn,menuElement:n.jsx(le,{}),action:r=>{s(K.MARKDOWN,r)},order:20},{title:"Filter Sets",icon:Ln,menuElement:n.jsx(le,{}),action:r=>{s(K.FILTER_SET_MANAGER,r)},order:25},{disabled:!0,menuElement:n.jsx("div",{className:"context-menu-group-header",children:"Tools"}),order:30},{title:"Linker",icon:Pn,action:()=>{e(me.LINKER)},order:40,shortcut:Z.LINKER},{disabled:!0,menuElement:n.jsx("div",{className:"context-menu-group-header",children:"Actions"}),order:50},{title:"Clear All Filters",icon:An,action:()=>{t()},order:60,shortcut:xt.TABLE.CLEAR_ALL_FILTERS}],[s,e,t]);return n.jsx(ys,{popperClassName:"controls-menu-popper",actions:o})}const ro=_n(Tt,null),io={layoutStorage:ro},lo=a=>a.layoutStorage,co=a=>a.serverConfigValues;Object.entries(io).map(([a,s])=>Mn.register(a,s));const ot=10;function uo(a){const{onExportLayout:s,onImportLayout:e,onResetLayout:t,onSelect:o,widgets:r=[]}=a,[i,l]=m.useState(!1),[c,d]=m.useState(""),h=m.useRef(null),u=m.useRef(),p=m.useCallback((b,y)=>{b!=null&&o(b,y)},[o]),C=m.useCallback(b=>{d(b.target.value)},[]),S=m.useCallback(b=>{u.current!=null&&(Math.abs(u.current.x-b.clientX)>=ot||Math.abs(u.current.y-b.clientY)>=ot)&&(l(!0),window.removeEventListener("mousemove",S),p(u.current.widget,b),u.current=void 0)},[u,p]),f=m.useCallback((b,y)=>{u.current={x:b.clientX,y:b.clientY,widget:y},window.addEventListener("mousemove",S)},[S]),g=m.useCallback((b,y)=>{var U;window.removeEventListener("mousemove",S),((U=u.current)==null?void 0:U.widget)===y&&(l(!0),p(y)),u.current=void 0},[S,u,p]),k=m.useMemo(()=>r.filter(b=>{var y;return c?(y=b.name)==null?void 0:y.toLowerCase().includes(c.toLowerCase()):!0}),[c,r]).sort((b,y)=>{var U;return((U=b.name)==null?void 0:U.localeCompare(y.name??""))??0}),T=m.useMemo(()=>k.map(b=>n.jsx("li",{children:n.jsxs(j,{kind:"ghost","data-testid":`panel-list-item-${b.name??""}-button`,onMouseDown:y=>{f(y,b)},onMouseUp:y=>{g(y,b)},onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&p(b)},disabled:i,onClick:()=>{},children:[n.jsx(Ss,{type:b.type})," ",b.name??""]})},b.name)),[k,i,f,g,p]),w=m.useMemo(()=>T.length===0?n.jsx("span",{children:"No bound variables found."}):null,[T]);return n.jsxs("div",{className:"widget-list-container d-flex flex-column",children:[n.jsx("div",{className:"widget-list-header",children:n.jsx(xs,{value:c,placeholder:"Find Table, Plot or Widget",onChange:C,ref:h})}),n.jsxs("ul",{className:"widget-list flex-grow-1",children:[w&&n.jsx("li",{className:"widget-list-message",children:w}),!w&&T]}),n.jsx("div",{children:n.jsx("hr",{})}),n.jsxs("div",{className:"widget-list-footer",children:[n.jsxs(j,{kind:"ghost",onClick:s,children:[n.jsxs("div",{className:"fa-md fa-layers mr-1",children:[n.jsx(E,{mask:Ge,icon:$e,transform:"right-5 down-5"}),n.jsx(E,{icon:$e,transform:"right-8 down-6"})]}),"Export Layout"]}),n.jsxs(j,{kind:"ghost",onClick:e,children:[n.jsxs("div",{className:"fa-md fa-layers mr-1",children:[n.jsx(E,{mask:Ge,icon:We,transform:"right-5 down-5"}),n.jsx(E,{icon:We,transform:"right-8 down-6"})]}),"Import Layout"]}),n.jsx(j,{kind:"ghost",icon:z,onClick:t,tooltip:"Reset Layout"})]})]})}function ho({onAutoFillClick:a=()=>{}}){return n.jsxs("div",{className:"empty-dashboard-container",children:[n.jsxs("div",{className:"hint-container",children:[n.jsx(E,{icon:Un})," ",n.jsx("br",{}),"Use the panel list to add objects from a query."]}),n.jsxs("div",{className:"empty-dashboard",children:[n.jsx("div",{className:"add-panels-hint",children:"Drag Panels Here"}),n.jsx(j,{kind:"tertiary",onClick:a,children:"Auto fill objects"})]})]})}const N=$.module("AppMainContainer");class ee extends m.Component{constructor(e){super(e);v(this,"dashboardLayouts");v(this,"createDashboardListenerRemovers");v(this,"closeDashboardListenerRemovers");v(this,"importElement");v(this,"widgetListenerRemover");v(this,"getDashboardPlugins",Bt(e=>Xn(e)));Os(this),this.importElement=X.createRef();const{allDashboardData:t,serverConfigValues:o,plugins:r}=this.props;this.dashboardLayouts=new Map,this.createDashboardListenerRemovers=new Map,this.closeDashboardListenerRemovers=new Map,this.state={contextActions:[qn({uiVersion:"1.23.0",userAgent:navigator.userAgent,...Object.fromEntries(o),pluginInfo:Ee(r)},!1),{action:()=>{const i=wt(o),l=Object.entries(i).map(([c,d])=>`${c}: ${d}`).join(`
6
+ `);ks(l)},shortcut:Z.COPY_VERSION_INFO,isGlobal:!0},{action:()=>{this.handleToolSelect(me.LINKER)},shortcut:Z.LINKER,isGlobal:!0},{action:()=>{this.sendClearFilter()},shortcut:xt.TABLE.CLEAR_ALL_FILTERS,isGlobal:!0},{action:()=>{this.sendCycleStackForward()},shortcut:V.CYCLE_TO_NEXT_STACK,isGlobal:!0},{action:()=>{this.sendCycleStackBackward()},shortcut:V.CYCLE_TO_PREVIOUS_STACK,isGlobal:!0},{action:()=>{this.sendCycleTabForward()},shortcut:V.CYCLE_TO_NEXT_TAB,isGlobal:!0},{action:()=>{this.sendCycleTabBackward()},shortcut:V.CYCLE_TO_PREVIOUS_TAB,isGlobal:!0},{action:()=>{this.handleCycleDashboardForward()},shortcut:V.CYCLE_TO_NEXT_DASHBOARD,isGlobal:!0},{action:()=>{this.handleCycleDashboardBackward()},shortcut:V.CYCLE_TO_PREVIOUS_DASHBOARD,isGlobal:!0},{action:()=>{this.sendReopenLast()},shortcut:Z.REOPEN_CLOSED_PANEL,isGlobal:!0},{action:()=>{N.debug("Consume unhandled save shortcut")},shortcut:Z.SAVE,isGlobal:!0}],isPanelsMenuShown:!1,isResetLayoutPromptShown:!1,isSettingsMenuShown:!1,unsavedNotebookCount:0,widgets:[],tabs:Object.entries(t).map(([i,l])=>({key:i,title:l.title??"Untitled",isClosable:i!==D,icon:i===D?Kn:void 0})),activeTabKey:D,layoutIteration:0}}static handleWindowBeforeUnload(e){e.preventDefault(),e.returnValue=""}static hydrateConsole(e,t){return Is.hydrate({...e,unzip:o=>$t.loadAsync(o).then(r=>Object.values(r.files))},t)}static handleRefresh(){N.info("Refreshing application"),window.location.reload()}componentDidMount(){this.initWidgets(),this.initDashboardData(),window.addEventListener("beforeunload",ee.handleWindowBeforeUnload)}componentDidUpdate(e,t){const{dashboardData:o}=this.props;e.dashboardData!==o&&this.handleDataChange(o)}componentWillUnmount(){this.deinitWidgets(),this.createDashboardListenerRemovers.forEach(e=>e()),this.closeDashboardListenerRemovers.forEach(e=>e()),window.removeEventListener("beforeunload",ee.handleWindowBeforeUnload)}initWidgets(){const{connection:e}=this.props;if(e!=null){if(e.subscribeToFieldUpdates==null){N.warn("subscribeToFieldUpdates not supported, not initializing widgets");return}this.widgetListenerRemover=e.subscribeToFieldUpdates(t=>{N.debug("Got updates",t),this.setState(({widgets:o})=>{const{updated:r,created:i,removed:l}=t,c=[...r,...l],d=o.filter(u=>!c.some(p=>p.name===u.name));return[...r,...i].forEach(u=>{u.name!=null&&u.name!==""&&d.push(u)}),{widgets:d}})})}}deinitWidgets(){var e;(e=this.widgetListenerRemover)==null||e.call(this)}initDashboardData(){const{setDashboardPluginData:e,updateDashboardData:t,workspace:o}=this.props,{data:r}=o,{filterSets:i,links:l,pluginDataMap:c}=r;if(t(D,{filterSets:i,links:l}),c!=null){const d=Object.keys(c);for(let h=0;h<d.length;h+=1){const u=d[h],p=c[u];N.debug("initDashboardData plugin data",u,p),e(D,u,p)}}}openNotebookFromURL(){const{match:e}=this.props,{notebookPath:t}=e.params;if(t){const{session:o,sessionConfig:r}=this.props;if(o==null||r==null){N.error("No session available to open notebook URL",t);return}const i={id:`/${t}`,itemName:`/${t}`},l=r.type,c={value:null,language:l};this.emitLayoutEvent(Ls.SELECT_NOTEBOOK,o,l,c,i,!0)}}sendClearFilter(){this.emitLayoutEvent(re.CLEAR_ALL_FILTERS)}sendCycleStackForward(){Ps(this.getActiveEventHub())}sendCycleStackBackward(){As(this.getActiveEventHub())}sendCycleTabForward(){_s(this.getActiveEventHub())}sendCycleTabBackward(){Ms(this.getActiveEventHub())}sendReopenLast(){this.emitLayoutEvent(Us.REOPEN_LAST)}cycleDashboard(e){const{tabs:t,activeTabKey:o}=this.state;if(t.length<=1)return;const r=t.findIndex(c=>c.key===o);if(r===-1)return;const i=e===0?(r+1)%t.length:(r-1+t.length)%t.length,l=t[i];this.handleTabSelect(l.key)}handleCycleDashboardForward(){this.cycleDashboard(0)}handleCycleDashboardBackward(){this.cycleDashboard(1)}getActiveEventHub(){const{activeTabKey:e}=this.state,t=this.dashboardLayouts.get(e);return ne(t,"No active layout found"),t.eventHub}emitLayoutEvent(e,...t){this.getActiveEventHub().emit(e,...t)}handleCancelResetLayoutPrompt(){this.setState({isResetLayoutPromptShown:!1})}handleConfirmResetLayoutPrompt(){this.setState({isResetLayoutPromptShown:!1}),this.resetLayout()}handleError(e){Y.isCanceled(e)||N.error(e)}handleSettingsMenuHide(){this.setState({isSettingsMenuShown:!1})}handleSettingsMenuShow(){this.setState({isSettingsMenuShown:!0})}handleControlSelect(e,t){switch(N.debug("handleControlSelect",e),e){case K.DROPDOWN_FILTER:this.emitLayoutEvent(re.OPEN_DROPDOWN,{title:"DropdownFilter",type:e,createNewStack:!0,dragEvent:t});break;case K.INPUT_FILTER:this.emitLayoutEvent(re.OPEN_INPUT,{title:"InputFilter",type:e,createNewStack:!0,dragEvent:t});break;case K.MARKDOWN:this.emitLayoutEvent(Ks.OPEN,{title:"Markdown",type:e,dragEvent:t});break;case K.FILTER_SET_MANAGER:this.emitLayoutEvent(re.OPEN_FILTER_SET_MANAGER,{title:"FilterSets",type:e,dragEvent:t});break;default:throw new Error(`Unrecognized control type ${e}`)}}handleToolSelect(e){N.debug("handleToolSelect",e);const{activeTool:t,setActiveTool:o}=this.props;o(t===e?me.DEFAULT:e)}handleClearFilter(){this.sendClearFilter()}handleDataChange(e){const{updateWorkspaceData:t}=this.props,{closed:o,filterSets:r,links:i,pluginDataMap:l}=e;t({closed:o,filterSets:r,links:i,pluginDataMap:l})}handleGoldenLayoutChange(e){var r,i;const{activeTabKey:t}=this.state,o=this.dashboardLayouts.get(t);o!==e&&(this.dashboardLayouts.set(t,e),o!=null&&((r=this.createDashboardListenerRemovers.get(t))==null||r(),(i=this.closeDashboardListenerRemovers.get(t))==null||i()),this.createDashboardListenerRemovers.set(t,$s(e.eventHub,this.handleCreateDashboard)),this.closeDashboardListenerRemovers.set(t,Gs(e.eventHub,this.handleCloseDashboard)))}handleCreateDashboard({pluginId:e,title:t,data:o}){const r=Gt(),{setDashboardPluginData:i}=this.props;i(r,e,o),this.setState(({tabs:l})=>{const c=l.findIndex(({title:d})=>d===t);return c!==-1?{tabs:l.map((d,h)=>h===c?{key:r,title:t}:d),activeTabKey:r}:{tabs:[...l,{key:r,title:t}],activeTabKey:r}})}handleCloseDashboard(e){const{tabs:t}=this.state,o=t.find(r=>r.title===e);o!=null&&this.handleTabClose(o.key)}handleWidgetMenuClick(){this.setState(({isPanelsMenuShown:e})=>({isPanelsMenuShown:!e}))}handleWidgetSelect(e,t){this.setState({isPanelsMenuShown:!1}),N.debug("handleWidgetSelect",e,t),this.openWidget(e,t)}handleWidgetsMenuClose(){this.setState({isPanelsMenuShown:!1})}handleAutoFillClick(){const{widgets:e}=this.state;N.debug("handleAutoFillClick",e);const t=e.sort((o,r)=>o.title!=null&&r.title!=null?o.title.localeCompare(r.title):0);for(let o=0;o<t.length;o+=1)this.openWidget(t[o])}handleExportLayoutClick(){N.debug("handleExportLayoutClick"),this.setState({isPanelsMenuShown:!1});try{const{workspace:e}=this.props,{data:t}=e,o=Se.exportLayout(t);N.debug("handleExportLayoutClick exportedConfig",o);const r=new Blob([JSON.stringify(o)],{type:"application/json"}),i=Pa.i18n.DateTimeFormat.format("yyyy-MM-dd-HHmmss",new Date),l=document.createElement("a");l.href=URL.createObjectURL(r),l.download=`deephaven-app-layout-${i}.json`,l.click()}catch(e){N.error("Unable to export layout",e)}}handleImportLayoutClick(){N.debug("handleImportLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.importElement.current!=null&&(this.importElement.current.value="",this.importElement.current.click())}handleResetLayoutClick(){N.debug("handleResetLayoutClick"),this.setState({isPanelsMenuShown:!1,isResetLayoutPromptShown:!0,unsavedNotebookCount:Ws.unsavedNotebookCount()})}handleImportLayoutFiles(e){var t;e.stopPropagation(),e.preventDefault(),e.target.files!=null&&this.importLayoutFile((t=e.target.files)==null?void 0:t[0])}async importLayoutFile(e){try{const{updateDashboardData:t,updateWorkspaceData:o}=this.props,r=await e.text(),i=JSON.parse(r),{filterSets:l,layoutConfig:c,links:d,pluginDataMap:h}=Se.normalizeLayout(i);Wt.flushSync(()=>{o({layoutConfig:c}),t(D,{filterSets:l,links:d,pluginDataMap:h})}),this.setState(({layoutIteration:u})=>({layoutIteration:u+1}))}catch(t){N.error("Unable to import layout",t)}}async resetLayout(){const{layoutStorage:e,session:t}=this.props,{filterSets:o,layoutConfig:r,links:i}=await Se.getDefaultLayout(e,t!==void 0),{updateDashboardData:l,updateWorkspaceData:c}=this.props;c({layoutConfig:r}),l(D,{filterSets:o,links:i})}handlePaste(e){if(e.target instanceof HTMLElement&&e.target.closest(".monaco-editor"))return;const{clipboardData:t}=e,o=t.getData("Text"),r=/“|”/g;r.test(o)&&(e.preventDefault(),e.stopPropagation(),document.execCommand("insertText",!1,o.replace(r,'"')))}openWidget(e,t){const{connection:o}=this.props;Bs(this.getActiveEventHub(),{widget:Vs(e),dragEvent:t,fetch:async()=>o==null?void 0:o.getObject(e)})}handleHomeClick(){this.handleTabSelect(D)}handleTabSelect(e){this.setState({activeTabKey:e})}handleTabReorder(e,t){this.setState(({tabs:o})=>{const r=[...o],[i]=r.splice(e,1);return r.splice(t,0,i),{tabs:r}})}handleTabClose(e){this.setState(({tabs:t,activeTabKey:o})=>{const r=t.filter(l=>l.key!==e);let i=o;if(o===e&&r.length>0){const l=t.findIndex(c=>c.key===e);i=l<t.length-1?t[l+1].key:t[l-1].key}return r.length===0&&(i=D),{tabs:r,activeTabKey:i}})}getDashboards(){const{layoutIteration:e,tabs:t}=this.state,{allDashboardData:o,workspace:r}=this.props,{data:i}=r,{layoutConfig:l}=i;return[{id:D,layoutConfig:l,key:`${D}-${e}`},...t.filter(c=>c.key!==D).map(c=>{var d;return{id:c.key,layoutConfig:((d=o[c.key])==null?void 0:d.layoutConfig)??Hs,key:`${c.key}-${e}`}})]}render(){const{activeTool:e,plugins:t,user:o,serverConfigValues:r}=this.props,{permissions:i}=o,{canUsePanels:l}=i,{contextActions:c,isPanelsMenuShown:d,isResetLayoutPromptShown:h,isSettingsMenuShown:u,unsavedNotebookCount:p,widgets:C,tabs:S,activeTabKey:f}=this.state,g=this.getDashboardPlugins(t);return n.jsxs("div",{className:R("app-main-tabs","w-100","h-100","d-flex","flex-column",e?`active-tool-${e.toLowerCase()}`:""),onPaste:this.handlePaste,tabIndex:-1,children:[n.jsxs("div",{className:"app-main-top-nav-menus",children:[n.jsx(St,{className:"ml-1",style:{maxHeight:"20px"}}),S.length>1&&n.jsx("div",{style:{flexShrink:0,flexGrow:1,flexBasis:0,minWidth:0},children:n.jsx(Jn,{tabs:S,activeKey:f,onSelect:this.handleTabSelect,onReorder:this.handleTabReorder,onClose:this.handleTabClose})}),n.jsxs("div",{className:"app-main-right-menu-buttons",children:[n.jsxs(j,{kind:"ghost",className:"btn-panels-menu",icon:$n,onClick:()=>{},children:["Controls",n.jsx(oo,{handleControlSelect:this.handleControlSelect,handleToolSelect:this.handleToolSelect,onClearFilter:this.handleClearFilter})]}),l&&n.jsxs(j,{kind:"ghost",className:"btn-panels-menu btn-show-panels","data-testid":"app-main-panels-button",onClick:this.handleWidgetMenuClick,icon:Gn,children:["Panels",n.jsx(Ys,{isShown:d,className:"panels-menu-popper",onExited:this.handleWidgetsMenuClose,options:{placement:"bottom"},closeOnBlur:!0,interactive:!0,children:n.jsx(uo,{widgets:C,onExportLayout:this.handleExportLayoutClick,onImportLayout:this.handleImportLayoutClick,onResetLayout:this.handleResetLayoutClick,onSelect:this.handleWidgetSelect})})]}),n.jsx(j,{kind:"ghost",className:R("btn-settings-menu",{"text-warning":o.operateAs!=null&&o.operateAs!==o.name}),onClick:this.handleSettingsMenuShow,icon:n.jsx("span",{className:"fa-layers",children:n.jsx(E,{icon:Wn,transform:"grow-3"})}),tooltip:"User Settings"})]})]}),n.jsx(Qn,{dashboards:this.getDashboards(),activeDashboard:f,onGoldenLayoutChange:this.handleGoldenLayoutChange,emptyDashboard:f===D?n.jsx(ho,{onAutoFillClick:this.handleAutoFillClick}):n.jsx(yt,{"data-testid":"app-main-container-loading"}),plugins:[n.jsx(Zs,{hydrateConsole:ee.hydrateConsole,notebooksUrl:new URL("notebooks/",document.baseURI).href},"ConsolePlugin"),...g]}),n.jsx(ca,{in:u,mountOnEnter:!0,unmountOnExit:!0,children:n.jsx(Ie,{serverConfigValues:r,pluginData:t,onDone:this.handleSettingsMenuHide,user:o})}),n.jsx(zs,{actions:c}),n.jsx("input",{ref:this.importElement,type:"file",accept:".json",style:{display:"none"},onChange:this.handleImportLayoutFiles,"data-testid":"input-import-layout"}),n.jsx(qs,{confirmButtonText:"Reset",onConfirm:this.handleConfirmResetLayoutPrompt,onCancel:this.handleCancelResetLayoutPrompt,isConfirmDanger:!0,isOpen:h,headerText:p===0?"Reset Layout":"Reset layout and discard unsaved changes",bodyText:p===0?"Do you want to reset your layout? Your existing layout will be lost.":"Do you want to reset your layout? Any unsaved notebooks will be lost."})]})}}const mo=a=>{var s,e;return{activeTool:Rs(a),allDashboardData:Fs(a),dashboardData:Ns(a,D),layoutStorage:lo(a),plugins:Es(a),connection:Ds(a,D),session:(s=Ke(a,D))==null?void 0:s.session,sessionConfig:(e=Ke(a,D))==null?void 0:e.config,user:js(a),workspace:vt(a),serverConfigValues:co(a)}},po=pe(mo,{setActiveTool:bt,setDashboardData:ft,setDashboardPluginData:ws,updateDashboardData:Ts,updateWorkspaceData:Cs})(Kt(ee));function go(){return n.jsxs("div",{className:"app","data-testid":"app-loaded",children:[n.jsx(po,{}),n.jsx(Vt,{})]})}const fo=$.module("AppInit");function rt(){const a=ct(),s=ea(),e=ta(),t=Xs(),o=sa(),r=na(),i=Ht(vt),l=ge(),[c,d]=m.useState();m.useEffect(function(){l(Js(t))},[t,l]),m.useEffect(function(){async function S(){try{const f=await aa(),g=await oa(a,e,f),k=s.getStorageService(),T=new ra(k,"/layouts"),w=new ia(a,k,"/notebooks"),b=new Be(T),y=new ka,U=await b.load({isConsoleAvailable:g!==void 0}),{data:fe}=U,{settings:Nt}=fe,{shortcutOverrides:Ae={}}=Nt,Ft=P.isMacPlatform?Ae.mac??{}:Ae.windows??{};Object.entries(Ft).forEach(([It,Ot])=>{var _e;(_e=Le.get(It))==null||_e.setKeyState(Ot)});const Rt={title:"Code Studio",filterSets:fe.filterSets,links:fe.links};l(Qs(a)),l(bt(me.DEFAULT)),l(en(o)),l(tn(y)),l(ft(D,Rt)),l(sn(w)),l(La(T)),l(nn(D,e)),g!==void 0&&l(an(D,g)),l(on(r)),l(rn(b)),l(ln(U)),l(cn(Be.makeDefaultWorkspaceSettings(o)))}catch(f){fo.error(f),d(f)}}S()},[a,s,e,o,l,r]);const h=i==null&&c==null,u=!h&&c==null,p=c!=null?`${c}`:null;return n.jsxs(n.Fragment,{children:[u&&n.jsx(go,{}),n.jsx(yt,{"data-testid":"app-init-loading",isLoading:h&&p==null,isLoaded:u,errorMessage:p})]})}const bo=X.lazy(()=>qt(()=>import("./StyleGuideRoot-dA2xCRM4.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)),vo=new URL(document.baseURI).pathname.replace(/\/$/,"");function yo(){return n.jsx(Yt,{basename:vo,children:n.jsxs(Zt,{children:[n.jsx(ve,{exact:!0,path:"/",component:rt}),n.jsx(ve,{path:"/notebooks/:notebookPath+",component:rt}),n.jsx(ve,{path:"/styleguide",component:bo}),n.jsx(zt,{from:"*",to:"/"})]})})}function Ro(){return m.useEffect(function(){da.register(new URL("./download/serviceWorker.js",window.location.href)),dn.init({getWorker:(s,e)=>e==="json"?new Xt:new Jt}),window["__@hello-pangea/dnd-disable-dev-warnings"]=!0},[]),n.jsx(yo,{})}export{Ro as AppRoot,Ro as default};
7
+ //# sourceMappingURL=AppRoot-DbQCWZTt.js.map