@deephaven/embed-widget 0.80.1 → 0.81.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 (34) hide show
  1. package/build/assets/{App-a7fabfed.js → App-0b88cb92.js} +2 -2
  2. package/build/assets/{App-a7fabfed.js.map → App-0b88cb92.js.map} +1 -1
  3. package/build/assets/{Chart-c5645eba.js → Chart-ebc6d15e.js} +2 -2
  4. package/build/assets/{Chart-c5645eba.js.map → Chart-ebc6d15e.js.map} +1 -1
  5. package/build/assets/{DashboardConstants-443d54b5.js → DashboardConstants-23023426.js} +2 -2
  6. package/build/assets/{DashboardConstants-443d54b5.js.map → DashboardConstants-23023426.js.map} +1 -1
  7. package/build/assets/{IrisGrid-0253433e.js → IrisGrid-3e6902ca.js} +2 -2
  8. package/build/assets/{IrisGrid-0253433e.js.map → IrisGrid-3e6902ca.js.map} +1 -1
  9. package/build/assets/{IrisGridThemeProvider-e0411bab.js → IrisGridThemeProvider-f2257896.js} +2 -2
  10. package/build/assets/{IrisGridThemeProvider-e0411bab.js.map → IrisGridThemeProvider-f2257896.js.map} +1 -1
  11. package/build/assets/{MarkdownEditor-b49fe189.js → MarkdownEditor-93a30389.js} +2 -2
  12. package/build/assets/{MarkdownEditor-b49fe189.js.map → MarkdownEditor-93a30389.js.map} +1 -1
  13. package/build/assets/{MarkdownNotebook-1be91c34.js → MarkdownNotebook-21c0fdd8.js} +2 -2
  14. package/build/assets/{MarkdownNotebook-1be91c34.js.map → MarkdownNotebook-21c0fdd8.js.map} +1 -1
  15. package/build/assets/Plot-dcb8d374.js +2 -0
  16. package/build/assets/{Plot-caca304e.js.map → Plot-dcb8d374.js.map} +1 -1
  17. package/build/assets/{Plotly-edeb441c.js → Plotly-95a28c6f.js} +2 -2
  18. package/build/assets/{Plotly-edeb441c.js.map → Plotly-95a28c6f.js.map} +1 -1
  19. package/build/assets/index-10a3c25b.js +4 -0
  20. package/build/assets/index-10a3c25b.js.map +1 -0
  21. package/build/assets/{index-deb6051c.js → index-7d530b2c.js} +2 -2
  22. package/build/assets/{index-deb6051c.js.map → index-7d530b2c.js.map} +1 -1
  23. package/build/assets/{index-b5e8a95b.js → index-80cca098.js} +4 -4
  24. package/build/assets/{index-b5e8a95b.js.map → index-80cca098.js.map} +1 -1
  25. package/build/assets/plotly-02b3070a.js +7 -0
  26. package/build/assets/{plotly-ce3c7663.js.map → plotly-02b3070a.js.map} +1 -1
  27. package/build/assets/{useUser-88b9be49.js → useUser-b819646e.js} +2 -2
  28. package/build/assets/{useUser-88b9be49.js.map → useUser-b819646e.js.map} +1 -1
  29. package/build/index.html +2 -2
  30. package/package.json +17 -17
  31. package/build/assets/Plot-caca304e.js +0 -2
  32. package/build/assets/index-3348c099.js +0 -4
  33. package/build/assets/index-3348c099.js.map +0 -1
  34. package/build/assets/plotly-ce3c7663.js +0 -7
@@ -1,2 +1,2 @@
1
- import{r as f,M as S,I as c,K as D,aZ as G,N as V}from"./vendor-1568bc3d.js";import{L as k,q as Y,a as E}from"./index-deb6051c.js";import{C as O,n as T,h as q,T as X,o as Z,y as J,A as _,L as Q,a9 as ee,N as te,R as ne,aa as re,D as ie,ab as ae,a8 as oe,m as se,l as ue,S as le,u as H}from"./DashboardConstants-443d54b5.js";function ce(n,e){f.useEffect(()=>{if(n!=null){var t=new window.ResizeObserver(e);return t.observe(n),()=>{n!=null&&t.unobserve(n)}}},[n,e])}function R(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function de(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?R(Object(t),!0).forEach(function(r){y(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function y(n,e,t){return e=he(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function he(n){var e=fe(n,"string");return typeof e=="symbol"?e:String(e)}function fe(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var K=k.module("ContextMenu");class x extends f.PureComponent{static handleContextMenu(e){e.metaKey||(e.stopPropagation(),e.preventDefault())}constructor(e){super(e),y(this,"container",void 0),y(this,"oldFocus",void 0),y(this,"activeSubMenuRef",void 0),y(this,"subMenuTimer",void 0),y(this,"rAF",void 0),y(this,"initialPosition",void 0),this.handleBlur=this.handleBlur.bind(this),this.handleCloseSubMenu=this.handleCloseSubMenu.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleMenuItemClick=this.handleMenuItemClick.bind(this),this.handleMenuItemContextMenu=this.handleMenuItemContextMenu.bind(this),this.handleMenuItemMouseMove=this.handleMenuItemMouseMove.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleWindowResize=this.handleWindowResize.bind(this),this.container=S.createRef(),this.oldFocus=document.activeElement,this.activeSubMenuRef=S.createRef(),this.subMenuTimer=0,this.rAF=0,this.initialPosition={top:e.top,left:e.left},this.state={menuItems:[],pendingItems:[],activeSubMenu:null,hasOverflow:!1,subMenuTop:null,subMenuLeft:null,subMenuParentWidth:0,subMenuParentHeight:0,keyboardIndex:-1,mouseIndex:-1}}componentDidMount(){this.initMenu(),this.verifyPosition(),window.addEventListener("resize",this.handleWindowResize),this.rAF=window.requestAnimationFrame(()=>{var e;(e=this.container.current)===null||e===void 0||e.focus();var{onMenuOpened:t}=this.props;t(this)})}componentDidUpdate(e,t){var{actions:r}=this.props,{activeSubMenu:i}=this.state;if(i!==t.activeSubMenu)if(i==null){var a;(a=this.container.current)===null||a===void 0||a.focus()}else this.setActiveSubMenuPosition();if(e.actions!==r&&(this.initMenu(),this.container.current==null||!this.container.current.contains(document.activeElement))){var o;(o=this.container.current)===null||o===void 0||o.focus()}this.verifyPosition()}componentWillUnmount(){this.cancelPromises(),window.removeEventListener("resize",this.handleWindowResize),cancelAnimationFrame(this.rAF)}getKeyboardIndex(){var{options:e}=this.props;if(e.separateKeyboardMouse!==void 0&&e.separateKeyboardMouse){var{keyboardIndex:t}=this.state;return t}return this.getMouseIndex()}setKeyboardIndex(e){var{options:t}=this.props;t.separateKeyboardMouse!==void 0&&t.separateKeyboardMouse?this.setState({keyboardIndex:e}):this.setMouseIndex(e)}getMouseIndex(){var{mouseIndex:e}=this.state;return e}setMouseIndex(e){this.setState({mouseIndex:e})}initMenu(){this.cancelPromises(),cancelAnimationFrame(this.rAF);var{options:e}=this.props,t=e.initialKeyboardIndex;t===void 0&&(t=-1);for(var{actions:r}=this.props,i=O.getMenuItems(r),a=[],o=i.length-1;o>=0;o-=1){var s=i[o];s instanceof Promise?this.initMenuPromise(s):a.push(s)}this.setState({mouseIndex:-1,keyboardIndex:t,activeSubMenu:null,menuItems:O.sortActions(a)})}initMenuPromise(e){var t=T.makeCancelable(e);this.setState(r=>({pendingItems:r.pendingItems.concat(t)})),t.then(r=>{this.setState(i=>{var a=i.pendingItems.indexOf(t);if(a>=0){var o=i.pendingItems.slice();return o.splice(a,1),{menuItems:O.sortActions(i.menuItems.concat(r)),pendingItems:o}}return null})},r=>{T.isCanceled(r)||(this.setState(i=>{var a=i.pendingItems.indexOf(t);if(a>=0){var o=i.pendingItems.slice();return o.splice(a,1),{pendingItems:o}}return null}),K.error(r))})}cancelPromises(){var{pendingItems:e}=this.state;e.map(t=>t.cancel())}setActiveSubMenuPosition(){if(this.activeSubMenuRef.current!==null){var e=this.activeSubMenuRef.current.getBoundingClientRect();this.setState({subMenuTop:e.top,subMenuLeft:e.right,subMenuParentHeight:e.height,subMenuParentWidth:e.width})}}verifyPosition(){var e,t,r,i,{options:a,updatePosition:o,subMenuParentWidth:s,subMenuParentHeight:l,top:u,left:v}=this.props;if(!(!this.container.current||a.doNotVerifyPosition!=null&&a.doNotVerifyPosition)){var{top:h,left:m}=this.initialPosition,{width:p,height:d}=(e=(t=this.container.current)===null||t===void 0?void 0:t.getBoundingClientRect())!==null&&e!==void 0?e:{width:0,height:0},M=((r=(i=this.container.current)===null||i===void 0?void 0:i.scrollHeight)!==null&&r!==void 0?r:0)>window.innerHeight;d===0||p===0||(h+d>window.innerHeight&&(h-d-l>0?h-=d-l:h=window.innerHeight-d),m+p>window.innerWidth&&(m=m-p-s),(v!==m||u!==h)&&(this.setState({hasOverflow:M}),o(h,m)))}}handleWindowResize(){this.container.current&&this.closeMenu(!0)}handleBlur(e){if(!this.container.current){K.warn("Container is null!");return}if(!this.container.current.contains(e.relatedTarget)){for(var t=e.relatedTarget,r=!1;t&&!r;)r=t.hasAttribute("data-dh-context-menu"),t=t.parentElement;r||this.closeMenu(!0)}}isEscapeKey(e){var{left:t}=this.props;return e==="Escape"||t<0&&e==="ArrowRight"||e==="ArrowLeft"}handleKeyDown(e){var{menuItems:t}=this.state,r=this.getKeyboardIndex(),i=r,a=!1;if(e.key==="Enter"||e.key===" "){r>=0&&r<t.length&&this.handleMenuItemClick(t[r],e);return}if(e.key==="ArrowRight"?r>=0&&r<=t.length?a=!0:i=0:this.isEscapeKey(e.key)?i=null:e.key==="ArrowUp"||e.shiftKey&&e.key==="Tab"?i=O.getNextMenuItem(i,-1,t):(e.key==="ArrowDown"||e.key==="Tab")&&(i=O.getNextMenuItem(i,1,t)),a){this.openSubMenu(r),e.preventDefault(),e.stopPropagation();return}r!==i&&(i!==null?this.setKeyboardIndex(i):(this.closeMenu(),this.oldFocus instanceof HTMLElement&&this.oldFocus.focus()),e.preventDefault(),e.stopPropagation())}openSubMenu(e){var{menuItems:t,activeSubMenu:r}=this.state,i=t[e].actions?e:null;r!==i&&this.setState({activeSubMenu:i,subMenuTop:null,subMenuLeft:null})}closeMenu(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,{closeMenu:t,onMenuClosed:r}=this.props;cancelAnimationFrame(this.rAF),this.rAF=window.requestAnimationFrame(()=>{t(e),r(this)})}closeSubMenu(){this.setState({activeSubMenu:null})}handleCloseSubMenu(e){e?this.closeMenu(!0):this.closeSubMenu()}handleMenuItemClick(e,t){t.preventDefault(),t.stopPropagation();var{menuItems:r}=this.state;e!=null&&(e.disabled===void 0||!e.disabled)&&(e.actions!=null?this.openSubMenu(r.indexOf(e)):e.action!=null&&(e.action(t.nativeEvent),this.closeMenu(!0)))}handleMenuItemContextMenu(e,t){t.metaKey||this.handleMenuItemClick(e,t)}handleMenuItemMouseMove(e){var{menuItems:t}=this.state,r=t.indexOf(e);this.setMouseIndex(r),r>=0&&r<t.length&&(e.disabled===void 0||!e.disabled)&&this.openSubMenu(r)}handleMouseLeave(){this.setMouseIndex(-1)}render(){for(var e=[],{top:t,left:r}=this.props,{activeSubMenu:i,hasOverflow:a,keyboardIndex:o,menuItems:s,mouseIndex:l,pendingItems:u,subMenuTop:v,subMenuLeft:h,subMenuParentWidth:m,subMenuParentHeight:p}=this.state,d=0;d<s.length;d+=1){var M=s[d];d>0&&M.group!==s[d-1].group&&e.push(c.jsx("hr",{},"".concat(d,".separator")));var b=c.jsx(q,{ref:i===d?this.activeSubMenuRef:null,isKeyboardSelected:o===d,isMouseSelected:l===d,menuItem:M,closeMenu:this.handleCloseSubMenu,onMenuItemClick:this.handleMenuItemClick,onMenuItemMouseMove:this.handleMenuItemMouseMove,onMenuItemContextMenu:this.handleMenuItemContextMenu},d);e.push(b)}var w=null;u.length>0&&(w=c.jsx("div",{className:"loading",children:c.jsx(Y,{className:"loading-spinner-vertical-align"})}));var{menuStyle:j,"data-testid":A}=this.props,P=i!==null&&v!==null&&h!==null;return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:D({"has-overflow":a},"context-menu-container"),style:de({top:t,left:r},j),ref:this.container,"data-dh-context-menu":!0,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseLeave:this.handleMouseLeave,onContextMenu:x.handleContextMenu,role:"menuitem",tabIndex:0,"data-testid":A,children:[e,w]}),P&&i!==null&&v!==null&&h!==null&&c.jsx(x,{actions:s[i].actions||[],closeMenu:this.handleCloseSubMenu,top:v,left:h,updatePosition:(g,C)=>{this.setState({subMenuTop:g,subMenuLeft:C})},subMenuParentWidth:m,subMenuParentHeight:p},"sub-".concat(i))]})}}y(x,"defaultProps",{subMenuParentWidth:0,subMenuParentHeight:0,closeMenu(){},onMenuOpened(){},onMenuClosed(){},options:{},menuStyle:{},"data-testid":void 0});const ve=x;function F(n,e,t){return e=pe(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function pe(n){var e=me(n,"string");return typeof e=="symbol"?e:String(e)}function me(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class be extends f.Component{constructor(e){super(e),F(this,"container",void 0),F(this,"openMenu",void 0),this.handleMenuClose=this.handleMenuClose.bind(this),this.handleContextMenu=this.handleContextMenu.bind(this),this.container=S.createRef(),this.openMenu=S.createRef(),this.state={actions:null,left:0,top:0}}componentDidMount(){var e;(e=this.container.current)!==null&&e!==void 0&&e.parentElement&&this.container.current.parentElement.addEventListener("contextmenu",this.handleContextMenu)}componentWillUnmount(){var e;(e=this.container.current)!==null&&e!==void 0&&e.parentElement&&this.container.current.parentElement.removeEventListener("contextmenu",this.handleContextMenu)}handleContextMenu(e){if(this.container.current){var t=this.container.current.getBoundingClientRect(),r=e.clientY-t.top,i=e.clientX-t.left,{actions:a}=this.state;if(a!=null&&e.target===this.container.current){e.preventDefault(),this.setState({actions:null},()=>{var s=document.elementFromPoint(i,r),l=new MouseEvent("contextmenu",{clientX:e.clientX,clientY:e.clientY,bubbles:!0,cancelable:!0});s==null||s.dispatchEvent(l)});return}if(O.isContextActionEvent(e)&&!(e.metaKey||e.ctrlKey)){var o=O.getMenuItems(e.contextActions);o.length!==0&&(e.preventDefault(),this.setState({actions:o,top:r,left:i}))}}}handleMenuClose(e){e===this.openMenu.current&&this.setState({actions:null})}render(){var e=null,{"data-testid":t}=this.props,{actions:r,top:i,left:a}=this.state;return r&&(e=c.jsx(ve,{ref:this.openMenu,actions:r,onMenuClosed:this.handleMenuClose,top:i,left:a,updatePosition:(o,s)=>{this.setState({top:o,left:s})},"data-testid":t})),c.jsx("div",{className:D("context-menu-root",{active:r}),ref:this.container,children:e})}}const He=be;var ge=k.module("ErrorBoundary");class Ge extends f.Component{static getDerivedStateFromError(e){return{error:e}}constructor(e){super(e),this.state={error:void 0}}componentDidCatch(e,t){var{onError:r}=this.props;ge.error("Error caught by ErrorBoundary",e,t),r==null||r(e,t)}render(){var{children:e,className:t,fallback:r}=this.props,{error:i}=this.state;return i!=null?r??c.jsx("div",{className:t,children:c.jsx(E,{errorMessage:"".concat(i),isLoading:!1,isLoaded:!1})}):e}}var ye=1e4;function Ve(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ye;return new Promise((r,i)=>{var a,o=setTimeout(()=>{var l;(l=a)===null||l===void 0||l(),i(new X("Timeout looking for variable ".concat(e)))},t);function s(l){var u,v=l.created.find(h=>h.title===e);clearTimeout(o),(u=a)===null||u===void 0||u(),v!=null?r(v):i(new Error("Variable ".concat(e," not found")))}a=n.subscribeToFieldUpdates(s)})}function Me(n){var e=[...n.entries()].filter(t=>{var[,r]=t;return J(r)||_(r)});return e.map(t=>{var[r,i]=t;if(_(i)){var{DashboardPlugin:a}=i;return c.jsx(a,{},r)}var{component:o}=i;return c.jsx(o,{},r)})}function Ye(){var n=Z(),e=f.useMemo(()=>Me(n),[n]);return e}var qe=f.createContext({}),Xe=f.createContext({}),Pe=f.createContext(null);function $(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Oe(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?$(Object(t),!0).forEach(function(r){we(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):$(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function we(n,e,t){return e=xe(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function xe(n){var e=Ce(n,"string");return typeof e=="symbol"?e:String(e)}function Ce(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Se=100,I=()=>{},je=Object.freeze({});function Ie(n){var{id:e="default",children:t,emptyDashboard:r,layoutConfig:i,layoutSettings:a=je,onLayoutConfigChange:o=I,onGoldenLayoutChange:s=I,onLayoutInitialized:l=I,fallbackComponent:u=re,hydrate:v,dehydrate:h,panelWrapper:m}=n,p=f.useRef(null),[d,M]=f.useState(!1),[b,w]=f.useState();f.useEffect(function(){if(!p.current){w(void 0);return}var P=Oe({},Q.makeDefaultLayout());P.settings===void 0&&(P.settings={}),Object.assign(P.settings,a),P.content=[];var g=new ee(P,p.current),C=()=>{g.off("initialised",C),M(!0)};return g.on("initialised",C),u!=null&&g.setFallbackComponent(u),g.init(),w(g),s(g),()=>{g.destroy()}},[a,u,s,M,w]);var j=f.useMemo(()=>G(()=>{b!=null&&b.isInitialised&&(b==null||b.updateSize())},Se),[b]);return ce(p.current,j),c.jsxs("div",{className:"dashboard-container w-100 h-100",children:[c.jsx("div",{className:"w-100 h-100",ref:p}),d&&b&&c.jsx(te.Provider,{value:b,children:c.jsx(ne,{emptyDashboard:r,id:e,layout:b,layoutConfig:i,onLayoutChange:o,onLayoutInitialized:l,hydrate:v,dehydrate:h,panelWrapper:m,children:t})})]})}var L="CREATE_DASHBOARD";function De(n,e){try{n.off(L,e)}catch{}}function Ze(n,e){return n.on(L,e),()=>De(n,e)}function Je(n,e){n.emit(L,e)}var Ee=["id","isActive","plugins"];function N(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function U(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?N(Object(t),!0).forEach(function(r){Le(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):N(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Le(n,e,t){return e=Ae(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ae(n){var e=Te(n,"string");return typeof e=="symbol"?e:String(e)}function Te(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function _e(n,e){if(n==null)return{};var t=Re(n,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(i=0;i<a.length;i++)r=a[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Re(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,a;for(a=0;a<r.length;a++)i=r[a],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}function Ke(n){var{id:e,isActive:t,plugins:r}=n,i=_e(n,Ee),[a,o]=f.useState(t),s=V(),l=f.useCallback(u=>{s(e===ie?ae({layoutConfig:u}):oe(e,{layoutConfig:u}))},[e,s]);return!a&&t&&o(!0),a?c.jsx(Ie,U(U({id:e,onLayoutConfigChange:l},i),{},{children:r})):c.jsx(E,{})}var Fe=f.createContext(null);function W(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(u){t(u);return}s.done?e(l):Promise.resolve(l).then(r,i)}function $e(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){W(a,r,i,o,s,"next",l)}function s(l){W(a,r,i,o,s,"throw",l)}o(void 0)})}}function z(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function B(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?z(Object(t),!0).forEach(function(r){Ne(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Ne(n,e,t){return e=Ue(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ue(n){var e=We(n,"string");return typeof e=="symbol"?e:String(e)}function We(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Qe(n){var{dashboards:e,activeDashboard:t,onLayoutInitialized:r,onGoldenLayoutChange:i,plugins:a,emptyDashboard:o=c.jsx(E,{})}=n,s=se(),l=f.useCallback((u,v)=>{var{metadata:h}=u;try{if(h!=null){var m=ue(h);return B(B({fetch:function(){var p=$e(function*(){return s(m)});function d(){return p.apply(this,arguments)}return d}()},u),{},{localDashboardId:v})}}catch{}return le.hydrate(u,v)},[s]);return c.jsx("div",{className:"tab-content",children:e.map(u=>c.jsx("div",{className:D("tab-pane",{active:u.id===t}),children:c.jsx(Ke,{id:u.id,isActive:u.id===t,emptyDashboard:o,layoutConfig:u.layoutConfig,layoutSettings:u.layoutSettings,onLayoutInitialized:r,onGoldenLayoutChange:i,hydrate:l,plugins:a},u.key)},u.id))})}function et(){return H(Fe,"No IdeConnection available in useConnection. Was code wrapped in ConnectionContext.Provider?")}function tt(){return H(Pe,"No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?")}export{Qe as A,He as C,Ie as D,Ge as E,ye as F,Ke as L,Xe as U,tt as a,Ye as b,ce as c,Pe as d,qe as e,Ve as f,Me as g,L as h,Je as i,Fe as j,Ze as l,De as s,et as u};
2
- //# sourceMappingURL=useUser-88b9be49.js.map
1
+ import{r as f,M as S,I as c,K as D,aZ as G,N as V}from"./vendor-1568bc3d.js";import{L as k,q as Y,a as E}from"./index-7d530b2c.js";import{C as O,n as T,h as q,T as X,o as Z,y as J,A as _,L as Q,a9 as ee,N as te,R as ne,aa as re,D as ie,ab as ae,a8 as oe,m as se,l as ue,S as le,u as H}from"./DashboardConstants-23023426.js";function ce(n,e){f.useEffect(()=>{if(n!=null){var t=new window.ResizeObserver(e);return t.observe(n),()=>{n!=null&&t.unobserve(n)}}},[n,e])}function R(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function de(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?R(Object(t),!0).forEach(function(r){y(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function y(n,e,t){return e=he(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function he(n){var e=fe(n,"string");return typeof e=="symbol"?e:String(e)}function fe(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var K=k.module("ContextMenu");class x extends f.PureComponent{static handleContextMenu(e){e.metaKey||(e.stopPropagation(),e.preventDefault())}constructor(e){super(e),y(this,"container",void 0),y(this,"oldFocus",void 0),y(this,"activeSubMenuRef",void 0),y(this,"subMenuTimer",void 0),y(this,"rAF",void 0),y(this,"initialPosition",void 0),this.handleBlur=this.handleBlur.bind(this),this.handleCloseSubMenu=this.handleCloseSubMenu.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleMenuItemClick=this.handleMenuItemClick.bind(this),this.handleMenuItemContextMenu=this.handleMenuItemContextMenu.bind(this),this.handleMenuItemMouseMove=this.handleMenuItemMouseMove.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleWindowResize=this.handleWindowResize.bind(this),this.container=S.createRef(),this.oldFocus=document.activeElement,this.activeSubMenuRef=S.createRef(),this.subMenuTimer=0,this.rAF=0,this.initialPosition={top:e.top,left:e.left},this.state={menuItems:[],pendingItems:[],activeSubMenu:null,hasOverflow:!1,subMenuTop:null,subMenuLeft:null,subMenuParentWidth:0,subMenuParentHeight:0,keyboardIndex:-1,mouseIndex:-1}}componentDidMount(){this.initMenu(),this.verifyPosition(),window.addEventListener("resize",this.handleWindowResize),this.rAF=window.requestAnimationFrame(()=>{var e;(e=this.container.current)===null||e===void 0||e.focus();var{onMenuOpened:t}=this.props;t(this)})}componentDidUpdate(e,t){var{actions:r}=this.props,{activeSubMenu:i}=this.state;if(i!==t.activeSubMenu)if(i==null){var a;(a=this.container.current)===null||a===void 0||a.focus()}else this.setActiveSubMenuPosition();if(e.actions!==r&&(this.initMenu(),this.container.current==null||!this.container.current.contains(document.activeElement))){var o;(o=this.container.current)===null||o===void 0||o.focus()}this.verifyPosition()}componentWillUnmount(){this.cancelPromises(),window.removeEventListener("resize",this.handleWindowResize),cancelAnimationFrame(this.rAF)}getKeyboardIndex(){var{options:e}=this.props;if(e.separateKeyboardMouse!==void 0&&e.separateKeyboardMouse){var{keyboardIndex:t}=this.state;return t}return this.getMouseIndex()}setKeyboardIndex(e){var{options:t}=this.props;t.separateKeyboardMouse!==void 0&&t.separateKeyboardMouse?this.setState({keyboardIndex:e}):this.setMouseIndex(e)}getMouseIndex(){var{mouseIndex:e}=this.state;return e}setMouseIndex(e){this.setState({mouseIndex:e})}initMenu(){this.cancelPromises(),cancelAnimationFrame(this.rAF);var{options:e}=this.props,t=e.initialKeyboardIndex;t===void 0&&(t=-1);for(var{actions:r}=this.props,i=O.getMenuItems(r),a=[],o=i.length-1;o>=0;o-=1){var s=i[o];s instanceof Promise?this.initMenuPromise(s):a.push(s)}this.setState({mouseIndex:-1,keyboardIndex:t,activeSubMenu:null,menuItems:O.sortActions(a)})}initMenuPromise(e){var t=T.makeCancelable(e);this.setState(r=>({pendingItems:r.pendingItems.concat(t)})),t.then(r=>{this.setState(i=>{var a=i.pendingItems.indexOf(t);if(a>=0){var o=i.pendingItems.slice();return o.splice(a,1),{menuItems:O.sortActions(i.menuItems.concat(r)),pendingItems:o}}return null})},r=>{T.isCanceled(r)||(this.setState(i=>{var a=i.pendingItems.indexOf(t);if(a>=0){var o=i.pendingItems.slice();return o.splice(a,1),{pendingItems:o}}return null}),K.error(r))})}cancelPromises(){var{pendingItems:e}=this.state;e.map(t=>t.cancel())}setActiveSubMenuPosition(){if(this.activeSubMenuRef.current!==null){var e=this.activeSubMenuRef.current.getBoundingClientRect();this.setState({subMenuTop:e.top,subMenuLeft:e.right,subMenuParentHeight:e.height,subMenuParentWidth:e.width})}}verifyPosition(){var e,t,r,i,{options:a,updatePosition:o,subMenuParentWidth:s,subMenuParentHeight:l,top:u,left:v}=this.props;if(!(!this.container.current||a.doNotVerifyPosition!=null&&a.doNotVerifyPosition)){var{top:h,left:m}=this.initialPosition,{width:p,height:d}=(e=(t=this.container.current)===null||t===void 0?void 0:t.getBoundingClientRect())!==null&&e!==void 0?e:{width:0,height:0},M=((r=(i=this.container.current)===null||i===void 0?void 0:i.scrollHeight)!==null&&r!==void 0?r:0)>window.innerHeight;d===0||p===0||(h+d>window.innerHeight&&(h-d-l>0?h-=d-l:h=window.innerHeight-d),m+p>window.innerWidth&&(m=m-p-s),(v!==m||u!==h)&&(this.setState({hasOverflow:M}),o(h,m)))}}handleWindowResize(){this.container.current&&this.closeMenu(!0)}handleBlur(e){if(!this.container.current){K.warn("Container is null!");return}if(!this.container.current.contains(e.relatedTarget)){for(var t=e.relatedTarget,r=!1;t&&!r;)r=t.hasAttribute("data-dh-context-menu"),t=t.parentElement;r||this.closeMenu(!0)}}isEscapeKey(e){var{left:t}=this.props;return e==="Escape"||t<0&&e==="ArrowRight"||e==="ArrowLeft"}handleKeyDown(e){var{menuItems:t}=this.state,r=this.getKeyboardIndex(),i=r,a=!1;if(e.key==="Enter"||e.key===" "){r>=0&&r<t.length&&this.handleMenuItemClick(t[r],e);return}if(e.key==="ArrowRight"?r>=0&&r<=t.length?a=!0:i=0:this.isEscapeKey(e.key)?i=null:e.key==="ArrowUp"||e.shiftKey&&e.key==="Tab"?i=O.getNextMenuItem(i,-1,t):(e.key==="ArrowDown"||e.key==="Tab")&&(i=O.getNextMenuItem(i,1,t)),a){this.openSubMenu(r),e.preventDefault(),e.stopPropagation();return}r!==i&&(i!==null?this.setKeyboardIndex(i):(this.closeMenu(),this.oldFocus instanceof HTMLElement&&this.oldFocus.focus()),e.preventDefault(),e.stopPropagation())}openSubMenu(e){var{menuItems:t,activeSubMenu:r}=this.state,i=t[e].actions?e:null;r!==i&&this.setState({activeSubMenu:i,subMenuTop:null,subMenuLeft:null})}closeMenu(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,{closeMenu:t,onMenuClosed:r}=this.props;cancelAnimationFrame(this.rAF),this.rAF=window.requestAnimationFrame(()=>{t(e),r(this)})}closeSubMenu(){this.setState({activeSubMenu:null})}handleCloseSubMenu(e){e?this.closeMenu(!0):this.closeSubMenu()}handleMenuItemClick(e,t){t.preventDefault(),t.stopPropagation();var{menuItems:r}=this.state;e!=null&&(e.disabled===void 0||!e.disabled)&&(e.actions!=null?this.openSubMenu(r.indexOf(e)):e.action!=null&&(e.action(t.nativeEvent),this.closeMenu(!0)))}handleMenuItemContextMenu(e,t){t.metaKey||this.handleMenuItemClick(e,t)}handleMenuItemMouseMove(e){var{menuItems:t}=this.state,r=t.indexOf(e);this.setMouseIndex(r),r>=0&&r<t.length&&(e.disabled===void 0||!e.disabled)&&this.openSubMenu(r)}handleMouseLeave(){this.setMouseIndex(-1)}render(){for(var e=[],{top:t,left:r}=this.props,{activeSubMenu:i,hasOverflow:a,keyboardIndex:o,menuItems:s,mouseIndex:l,pendingItems:u,subMenuTop:v,subMenuLeft:h,subMenuParentWidth:m,subMenuParentHeight:p}=this.state,d=0;d<s.length;d+=1){var M=s[d];d>0&&M.group!==s[d-1].group&&e.push(c.jsx("hr",{},"".concat(d,".separator")));var b=c.jsx(q,{ref:i===d?this.activeSubMenuRef:null,isKeyboardSelected:o===d,isMouseSelected:l===d,menuItem:M,closeMenu:this.handleCloseSubMenu,onMenuItemClick:this.handleMenuItemClick,onMenuItemMouseMove:this.handleMenuItemMouseMove,onMenuItemContextMenu:this.handleMenuItemContextMenu},d);e.push(b)}var w=null;u.length>0&&(w=c.jsx("div",{className:"loading",children:c.jsx(Y,{className:"loading-spinner-vertical-align"})}));var{menuStyle:j,"data-testid":A}=this.props,P=i!==null&&v!==null&&h!==null;return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:D({"has-overflow":a},"context-menu-container"),style:de({top:t,left:r},j),ref:this.container,"data-dh-context-menu":!0,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseLeave:this.handleMouseLeave,onContextMenu:x.handleContextMenu,role:"menuitem",tabIndex:0,"data-testid":A,children:[e,w]}),P&&i!==null&&v!==null&&h!==null&&c.jsx(x,{actions:s[i].actions||[],closeMenu:this.handleCloseSubMenu,top:v,left:h,updatePosition:(g,C)=>{this.setState({subMenuTop:g,subMenuLeft:C})},subMenuParentWidth:m,subMenuParentHeight:p},"sub-".concat(i))]})}}y(x,"defaultProps",{subMenuParentWidth:0,subMenuParentHeight:0,closeMenu(){},onMenuOpened(){},onMenuClosed(){},options:{},menuStyle:{},"data-testid":void 0});const ve=x;function F(n,e,t){return e=pe(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function pe(n){var e=me(n,"string");return typeof e=="symbol"?e:String(e)}function me(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class be extends f.Component{constructor(e){super(e),F(this,"container",void 0),F(this,"openMenu",void 0),this.handleMenuClose=this.handleMenuClose.bind(this),this.handleContextMenu=this.handleContextMenu.bind(this),this.container=S.createRef(),this.openMenu=S.createRef(),this.state={actions:null,left:0,top:0}}componentDidMount(){var e;(e=this.container.current)!==null&&e!==void 0&&e.parentElement&&this.container.current.parentElement.addEventListener("contextmenu",this.handleContextMenu)}componentWillUnmount(){var e;(e=this.container.current)!==null&&e!==void 0&&e.parentElement&&this.container.current.parentElement.removeEventListener("contextmenu",this.handleContextMenu)}handleContextMenu(e){if(this.container.current){var t=this.container.current.getBoundingClientRect(),r=e.clientY-t.top,i=e.clientX-t.left,{actions:a}=this.state;if(a!=null&&e.target===this.container.current){e.preventDefault(),this.setState({actions:null},()=>{var s=document.elementFromPoint(i,r),l=new MouseEvent("contextmenu",{clientX:e.clientX,clientY:e.clientY,bubbles:!0,cancelable:!0});s==null||s.dispatchEvent(l)});return}if(O.isContextActionEvent(e)&&!(e.metaKey||e.ctrlKey)){var o=O.getMenuItems(e.contextActions);o.length!==0&&(e.preventDefault(),this.setState({actions:o,top:r,left:i}))}}}handleMenuClose(e){e===this.openMenu.current&&this.setState({actions:null})}render(){var e=null,{"data-testid":t}=this.props,{actions:r,top:i,left:a}=this.state;return r&&(e=c.jsx(ve,{ref:this.openMenu,actions:r,onMenuClosed:this.handleMenuClose,top:i,left:a,updatePosition:(o,s)=>{this.setState({top:o,left:s})},"data-testid":t})),c.jsx("div",{className:D("context-menu-root",{active:r}),ref:this.container,children:e})}}const He=be;var ge=k.module("ErrorBoundary");class Ge extends f.Component{static getDerivedStateFromError(e){return{error:e}}constructor(e){super(e),this.state={error:void 0}}componentDidCatch(e,t){var{onError:r}=this.props;ge.error("Error caught by ErrorBoundary",e,t),r==null||r(e,t)}render(){var{children:e,className:t,fallback:r}=this.props,{error:i}=this.state;return i!=null?r??c.jsx("div",{className:t,children:c.jsx(E,{errorMessage:"".concat(i),isLoading:!1,isLoaded:!1})}):e}}var ye=1e4;function Ve(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ye;return new Promise((r,i)=>{var a,o=setTimeout(()=>{var l;(l=a)===null||l===void 0||l(),i(new X("Timeout looking for variable ".concat(e)))},t);function s(l){var u,v=l.created.find(h=>h.title===e);clearTimeout(o),(u=a)===null||u===void 0||u(),v!=null?r(v):i(new Error("Variable ".concat(e," not found")))}a=n.subscribeToFieldUpdates(s)})}function Me(n){var e=[...n.entries()].filter(t=>{var[,r]=t;return J(r)||_(r)});return e.map(t=>{var[r,i]=t;if(_(i)){var{DashboardPlugin:a}=i;return c.jsx(a,{},r)}var{component:o}=i;return c.jsx(o,{},r)})}function Ye(){var n=Z(),e=f.useMemo(()=>Me(n),[n]);return e}var qe=f.createContext({}),Xe=f.createContext({}),Pe=f.createContext(null);function $(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Oe(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?$(Object(t),!0).forEach(function(r){we(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):$(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function we(n,e,t){return e=xe(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function xe(n){var e=Ce(n,"string");return typeof e=="symbol"?e:String(e)}function Ce(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var Se=100,I=()=>{},je=Object.freeze({});function Ie(n){var{id:e="default",children:t,emptyDashboard:r,layoutConfig:i,layoutSettings:a=je,onLayoutConfigChange:o=I,onGoldenLayoutChange:s=I,onLayoutInitialized:l=I,fallbackComponent:u=re,hydrate:v,dehydrate:h,panelWrapper:m}=n,p=f.useRef(null),[d,M]=f.useState(!1),[b,w]=f.useState();f.useEffect(function(){if(!p.current){w(void 0);return}var P=Oe({},Q.makeDefaultLayout());P.settings===void 0&&(P.settings={}),Object.assign(P.settings,a),P.content=[];var g=new ee(P,p.current),C=()=>{g.off("initialised",C),M(!0)};return g.on("initialised",C),u!=null&&g.setFallbackComponent(u),g.init(),w(g),s(g),()=>{g.destroy()}},[a,u,s,M,w]);var j=f.useMemo(()=>G(()=>{b!=null&&b.isInitialised&&(b==null||b.updateSize())},Se),[b]);return ce(p.current,j),c.jsxs("div",{className:"dashboard-container w-100 h-100",children:[c.jsx("div",{className:"w-100 h-100",ref:p}),d&&b&&c.jsx(te.Provider,{value:b,children:c.jsx(ne,{emptyDashboard:r,id:e,layout:b,layoutConfig:i,onLayoutChange:o,onLayoutInitialized:l,hydrate:v,dehydrate:h,panelWrapper:m,children:t})})]})}var L="CREATE_DASHBOARD";function De(n,e){try{n.off(L,e)}catch{}}function Ze(n,e){return n.on(L,e),()=>De(n,e)}function Je(n,e){n.emit(L,e)}var Ee=["id","isActive","plugins"];function N(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function U(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?N(Object(t),!0).forEach(function(r){Le(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):N(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Le(n,e,t){return e=Ae(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ae(n){var e=Te(n,"string");return typeof e=="symbol"?e:String(e)}function Te(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function _e(n,e){if(n==null)return{};var t=Re(n,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(i=0;i<a.length;i++)r=a[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Re(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,a;for(a=0;a<r.length;a++)i=r[a],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}function Ke(n){var{id:e,isActive:t,plugins:r}=n,i=_e(n,Ee),[a,o]=f.useState(t),s=V(),l=f.useCallback(u=>{s(e===ie?ae({layoutConfig:u}):oe(e,{layoutConfig:u}))},[e,s]);return!a&&t&&o(!0),a?c.jsx(Ie,U(U({id:e,onLayoutConfigChange:l},i),{},{children:r})):c.jsx(E,{})}var Fe=f.createContext(null);function W(n,e,t,r,i,a,o){try{var s=n[a](o),l=s.value}catch(u){t(u);return}s.done?e(l):Promise.resolve(l).then(r,i)}function $e(n){return function(){var e=this,t=arguments;return new Promise(function(r,i){var a=n.apply(e,t);function o(l){W(a,r,i,o,s,"next",l)}function s(l){W(a,r,i,o,s,"throw",l)}o(void 0)})}}function z(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function B(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?z(Object(t),!0).forEach(function(r){Ne(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Ne(n,e,t){return e=Ue(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ue(n){var e=We(n,"string");return typeof e=="symbol"?e:String(e)}function We(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Qe(n){var{dashboards:e,activeDashboard:t,onLayoutInitialized:r,onGoldenLayoutChange:i,plugins:a,emptyDashboard:o=c.jsx(E,{})}=n,s=se(),l=f.useCallback((u,v)=>{var{metadata:h}=u;try{if(h!=null){var m=ue(h);return B(B({fetch:function(){var p=$e(function*(){return s(m)});function d(){return p.apply(this,arguments)}return d}()},u),{},{localDashboardId:v})}}catch{}return le.hydrate(u,v)},[s]);return c.jsx("div",{className:"tab-content",children:e.map(u=>c.jsx("div",{className:D("tab-pane",{active:u.id===t}),children:c.jsx(Ke,{id:u.id,isActive:u.id===t,emptyDashboard:o,layoutConfig:u.layoutConfig,layoutSettings:u.layoutSettings,onLayoutInitialized:r,onGoldenLayoutChange:i,hydrate:l,plugins:a},u.key)},u.id))})}function et(){return H(Fe,"No IdeConnection available in useConnection. Was code wrapped in ConnectionContext.Provider?")}function tt(){return H(Pe,"No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?")}export{Qe as A,He as C,Ie as D,Ge as E,ye as F,Ke as L,Xe as U,tt as a,Ye as b,ce as c,Pe as d,qe as e,Ve as f,Me as g,L as h,Je as i,Fe as j,Ze as l,De as s,et as u};
2
+ //# sourceMappingURL=useUser-b819646e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUser-88b9be49.js","sources":["../../../react-hooks/dist/useResizeObserver.js","../../../components/dist/context-actions/ContextMenu.js","../../../components/dist/context-actions/ContextMenuRoot.js","../../../components/dist/ErrorBoundary.js","../../../jsapi-utils/dist/ConnectionUtils.js","../../../plugin/dist/useDashboardPlugins.js","../../../auth-plugins/dist/UserContexts.js","../../../dashboard/dist/Dashboard.js","../../../dashboard/dist/DashboardEvents.js","../../../dashboard/dist/LazyDashboard.js","../../../app-utils/dist/components/ConnectionContext.js","../../../app-utils/dist/components/AppDashboards.js","../../../app-utils/dist/components/useConnection.js","../../../app-utils/dist/components/useUser.js"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * Listen for resize events on an element using ResizeObserver\n * @param element Element to listen for resizing on\n * @param onResize Callback triggered when the element resizes\n */\nexport function useResizeObserver(element, onResize) {\n useEffect(() => {\n if (element == null) {\n return;\n }\n var resizeObserverInstance = new window.ResizeObserver(onResize);\n resizeObserverInstance.observe(element);\n return () => {\n if (element != null) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }, [element, onResize]);\n}\nexport default useResizeObserver;\n//# sourceMappingURL=useResizeObserver.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport ContextMenuItem from \"./ContextMenuItem.js\";\nimport LoadingSpinner from \"../LoadingSpinner.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('ContextMenu');\n/** Do not use this class directly. Use ContextMenuRoot and ContextActions instead. */\nclass ContextMenu extends PureComponent {\n static handleContextMenu(e) {\n if (e.metaKey) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n }\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"oldFocus\", void 0);\n _defineProperty(this, \"activeSubMenuRef\", void 0);\n _defineProperty(this, \"subMenuTimer\", void 0);\n _defineProperty(this, \"rAF\", void 0);\n _defineProperty(this, \"initialPosition\", void 0);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleCloseSubMenu = this.handleCloseSubMenu.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemContextMenu = this.handleMenuItemContextMenu.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.oldFocus = document.activeElement;\n this.activeSubMenuRef = /*#__PURE__*/React.createRef();\n this.subMenuTimer = 0;\n this.rAF = 0;\n this.initialPosition = {\n top: props.top,\n left: props.left\n };\n this.state = {\n menuItems: [],\n pendingItems: [],\n activeSubMenu: null,\n hasOverflow: false,\n subMenuTop: null,\n subMenuLeft: null,\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n keyboardIndex: -1,\n mouseIndex: -1\n };\n }\n componentDidMount() {\n this.initMenu();\n this.verifyPosition();\n window.addEventListener('resize', this.handleWindowResize);\n\n // rAF is needed to wait for a submenus popper to be created before\n // attempting to set focus, however on a quick mount/unmount when\n // mousing past an item, the submenu could be unmounted before the\n // async rAF finishes, so it is cancelled in willUnmount()\n this.rAF = window.requestAnimationFrame(() => {\n var _this$container$curre;\n (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 ? void 0 : _this$container$curre.focus();\n var {\n onMenuOpened\n } = this.props;\n onMenuOpened(this);\n });\n }\n componentDidUpdate(prevProps, prevState) {\n var {\n actions\n } = this.props;\n var {\n activeSubMenu\n } = this.state;\n if (activeSubMenu !== prevState.activeSubMenu) {\n if (activeSubMenu == null) {\n var _this$container$curre2;\n // close sub menu, refocus parent menu\n (_this$container$curre2 = this.container.current) === null || _this$container$curre2 === void 0 ? void 0 : _this$container$curre2.focus();\n } else {\n // open sub menu, set its initial position\n this.setActiveSubMenuPosition();\n }\n }\n if (prevProps.actions !== actions) {\n this.initMenu();\n if (this.container.current == null || !this.container.current.contains(document.activeElement)) {\n var _this$container$curre3;\n (_this$container$curre3 = this.container.current) === null || _this$container$curre3 === void 0 ? void 0 : _this$container$curre3.focus();\n }\n }\n this.verifyPosition();\n }\n componentWillUnmount() {\n this.cancelPromises();\n window.removeEventListener('resize', this.handleWindowResize);\n cancelAnimationFrame(this.rAF);\n }\n getKeyboardIndex() {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n var {\n keyboardIndex\n } = this.state;\n return keyboardIndex;\n }\n return this.getMouseIndex();\n }\n setKeyboardIndex(index) {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n this.setState({\n keyboardIndex: index\n });\n } else {\n this.setMouseIndex(index);\n }\n }\n getMouseIndex() {\n var {\n mouseIndex\n } = this.state;\n return mouseIndex;\n }\n setMouseIndex(index) {\n this.setState({\n mouseIndex: index\n });\n }\n initMenu() {\n // cancel any pending close and promises\n this.cancelPromises();\n cancelAnimationFrame(this.rAF);\n var {\n options\n } = this.props;\n var keyboardIndex = options.initialKeyboardIndex;\n if (keyboardIndex === undefined) {\n keyboardIndex = -1;\n }\n var {\n actions\n } = this.props;\n var menuItems = ContextActionUtils.getMenuItems(actions);\n var nonPromiseItems = [];\n for (var i = menuItems.length - 1; i >= 0; i -= 1) {\n var menuItem = menuItems[i];\n if (menuItem instanceof Promise) {\n this.initMenuPromise(menuItem);\n } else {\n nonPromiseItems.push(menuItem);\n }\n }\n this.setState({\n mouseIndex: -1,\n keyboardIndex,\n activeSubMenu: null,\n menuItems: ContextActionUtils.sortActions(nonPromiseItems)\n });\n }\n initMenuPromise(promise) {\n // make all promises cancellable\n var cancellablePromise = PromiseUtils.makeCancelable(promise);\n this.setState(state => ({\n pendingItems: state.pendingItems.concat(cancellablePromise)\n }));\n cancellablePromise.then(resolvedMenuItems => {\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n menuItems: ContextActionUtils.sortActions(state.menuItems.concat(resolvedMenuItems)),\n pendingItems\n };\n }\n // This item is stale, don't update the menu\n return null;\n });\n }, error => {\n if (PromiseUtils.isCanceled(error)) {\n return; // Canceled promise is ignored\n }\n\n // remove failed item from pending list\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n pendingItems\n };\n }\n return null;\n });\n\n // Log the error\n log.error(error);\n });\n }\n cancelPromises() {\n var {\n pendingItems\n } = this.state;\n pendingItems.map(item => item.cancel());\n }\n\n /**\n * Sets the unverfied start position of a submenu. Submenu then self-verfies\n * its own position and potentially reports back a new position.\n */\n setActiveSubMenuPosition() {\n if (this.activeSubMenuRef.current === null) return;\n var parentRect = this.activeSubMenuRef.current.getBoundingClientRect();\n\n // intentionally rect.right, we want the sub menu to start at the right edge of the current menu\n this.setState({\n subMenuTop: parentRect.top,\n subMenuLeft: parentRect.right,\n subMenuParentHeight: parentRect.height,\n subMenuParentWidth: parentRect.width\n });\n }\n\n /**\n * Verifies the position of this menu in relation to the parent to make sure it's on screen.\n * Will update the top left state (updatePosition) if necessary (causing a re-render)\n * By default it tries to top-align with parent, at the right side of the parent.\n * Because we aren't a native context menu and can't escape window bounds, we also do\n * somethings to better fit on screen, such as the \"nudge\" offset position, and further\n * allow overflow scrolling for large menus in a small window.\n */\n verifyPosition() {\n var _this$container$curre4, _this$container$curre5, _this$container$curre6, _this$container$curre7;\n var {\n options,\n updatePosition,\n subMenuParentWidth,\n subMenuParentHeight,\n top: oldTop,\n left: oldLeft\n } = this.props;\n if (!this.container.current || options.doNotVerifyPosition != null && options.doNotVerifyPosition) {\n return;\n }\n\n // initial position is used rather than current position,\n // as the number of menu items can change (actions can bubble)\n // and menu should always be positioned relative to spawn point\n var {\n top,\n left\n } = this.initialPosition;\n var {\n width,\n height\n } = (_this$container$curre4 = (_this$container$curre5 = this.container.current) === null || _this$container$curre5 === void 0 ? void 0 : _this$container$curre5.getBoundingClientRect()) !== null && _this$container$curre4 !== void 0 ? _this$container$curre4 : {\n width: 0,\n height: 0\n };\n var hasOverflow = ((_this$container$curre6 = (_this$container$curre7 = this.container.current) === null || _this$container$curre7 === void 0 ? void 0 : _this$container$curre7.scrollHeight) !== null && _this$container$curre6 !== void 0 ? _this$container$curre6 : 0) > window.innerHeight;\n if (height === 0 || width === 0) {\n // We don't have a height or width yet, don't bother doing anything\n return;\n }\n\n // does it fit below?\n if (top + height > window.innerHeight) {\n // can it be flipped to above? include offset if submenu (defaults to 0 if not submenu)\n if (top - height - subMenuParentHeight > 0) {\n // flip like a native menu would\n top -= height - subMenuParentHeight;\n } else {\n // still doesnt fit? okay, position at bottom edge\n top = window.innerHeight - height;\n }\n }\n if (left + width > window.innerWidth) {\n // less picky about left right positioning, just keep it going off to right\n left = left - width - subMenuParentWidth;\n }\n if (oldLeft !== left || oldTop !== top) {\n // parent owns positioning as single source of truth, ask to update props\n this.setState({\n hasOverflow\n });\n updatePosition(top, left);\n }\n }\n\n // since window resize doesn't trigger blur, listen and close the menu\n handleWindowResize() {\n if (!this.container.current) {\n return;\n }\n this.closeMenu(true);\n }\n handleBlur(e) {\n if (!this.container.current) {\n log.warn('Container is null!');\n return;\n }\n if (!this.container.current.contains(e.relatedTarget)) {\n var element = e.relatedTarget;\n var isContextMenuChild = false;\n while (element && !isContextMenuChild) {\n isContextMenuChild = element.hasAttribute('data-dh-context-menu');\n element = element.parentElement;\n }\n if (!isContextMenuChild) {\n // close all submenus on blur\n this.closeMenu(true);\n }\n }\n }\n\n /** Returns whether the specified key should remove the menu. Depends on the side the parent is on. */\n isEscapeKey(key) {\n var {\n left\n } = this.props;\n return key === 'Escape' || left < 0 && key === 'ArrowRight' || key === 'ArrowLeft';\n }\n handleKeyDown(e) {\n var {\n menuItems\n } = this.state;\n var oldFocus = this.getKeyboardIndex();\n var newFocus = oldFocus;\n var openSubMenu = false;\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n if (e.key === 'ArrowRight') {\n if (oldFocus >= 0 && oldFocus <= menuItems.length) {\n openSubMenu = true;\n } else {\n newFocus = 0;\n }\n } else if (this.isEscapeKey(e.key)) {\n newFocus = null;\n } else if (e.key === 'ArrowUp' || e.shiftKey && e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, -1, menuItems);\n } else if (e.key === 'ArrowDown' || e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, 1, menuItems);\n }\n if (openSubMenu) {\n this.openSubMenu(oldFocus);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n openSubMenu(index) {\n var {\n menuItems,\n activeSubMenu\n } = this.state;\n var newSubMenu = menuItems[index].actions ? index : null;\n if (activeSubMenu === newSubMenu) return;\n this.setState({\n activeSubMenu: newSubMenu,\n subMenuTop: null,\n subMenuLeft: null\n });\n }\n closeMenu() {\n var closeAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var {\n closeMenu,\n onMenuClosed\n } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n closeSubMenu() {\n this.setState({\n activeSubMenu: null\n });\n }\n handleCloseSubMenu(closeAllMenus) {\n if (closeAllMenus) {\n this.closeMenu(true);\n } else {\n this.closeSubMenu();\n }\n }\n handleMenuItemClick(menuItem, e) {\n e.preventDefault();\n e.stopPropagation();\n var {\n menuItems\n } = this.state;\n if (menuItem != null && (menuItem.disabled === undefined || !menuItem.disabled)) {\n if (menuItem.actions != null) {\n this.openSubMenu(menuItems.indexOf(menuItem));\n } else if (menuItem.action != null) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n }\n handleMenuItemContextMenu(menuItem, e) {\n if (e.metaKey) {\n return;\n }\n this.handleMenuItemClick(menuItem, e);\n }\n handleMenuItemMouseMove(menuItem) {\n var {\n menuItems\n } = this.state;\n var focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n if (focusIndex >= 0 && focusIndex < menuItems.length && (menuItem.disabled === undefined || !menuItem.disabled)) {\n this.openSubMenu(focusIndex);\n }\n }\n handleMouseLeave() {\n this.setMouseIndex(-1);\n }\n render() {\n var menuItemElements = [];\n var {\n top,\n left\n } = this.props;\n var {\n activeSubMenu,\n hasOverflow,\n keyboardIndex,\n menuItems,\n mouseIndex,\n pendingItems,\n subMenuTop,\n subMenuLeft,\n subMenuParentWidth,\n subMenuParentHeight\n } = this.state;\n for (var i = 0; i < menuItems.length; i += 1) {\n var menuItem = menuItems[i];\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push( /*#__PURE__*/_jsx(\"hr\", {}, \"\".concat(i, \".separator\")));\n }\n var menuItemElement = /*#__PURE__*/_jsx(ContextMenuItem, {\n ref: activeSubMenu === i ? this.activeSubMenuRef : null,\n isKeyboardSelected: keyboardIndex === i,\n isMouseSelected: mouseIndex === i,\n menuItem: menuItem,\n closeMenu: this.handleCloseSubMenu,\n onMenuItemClick: this.handleMenuItemClick,\n onMenuItemMouseMove: this.handleMenuItemMouseMove,\n onMenuItemContextMenu: this.handleMenuItemContextMenu\n }, i);\n menuItemElements.push(menuItemElement);\n }\n var pendingElement = null;\n if (pendingItems.length > 0) {\n pendingElement = /*#__PURE__*/_jsx(\"div\", {\n className: \"loading\",\n children: /*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"loading-spinner-vertical-align\"\n })\n });\n }\n var {\n menuStyle,\n 'data-testid': dataTestId\n } = this.props;\n\n // don't show submenu until it has an position initialized\n var showSubmenu = activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: classNames({\n 'has-overflow': hasOverflow\n }, 'context-menu-container'),\n style: _objectSpread({\n top,\n left\n }, menuStyle),\n ref: this.container,\n \"data-dh-context-menu\": true,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseLeave: this.handleMouseLeave,\n onContextMenu: ContextMenu.handleContextMenu,\n role: \"menuitem\",\n tabIndex: 0,\n \"data-testid\": dataTestId,\n children: [menuItemElements, pendingElement]\n }), showSubmenu && activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null && /*#__PURE__*/_jsx(ContextMenu, {\n actions: menuItems[activeSubMenu].actions || [],\n closeMenu: this.handleCloseSubMenu,\n top: subMenuTop,\n left: subMenuLeft,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n subMenuTop: verifiedTop,\n subMenuLeft: verifiedLeft\n });\n },\n subMenuParentWidth: subMenuParentWidth,\n subMenuParentHeight: subMenuParentHeight\n }, \"sub-\".concat(activeSubMenu))]\n });\n }\n}\n_defineProperty(ContextMenu, \"defaultProps\", {\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n closeMenu() {\n // no-op\n },\n onMenuOpened() {\n // no-op\n },\n onMenuClosed() {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined\n});\nexport default ContextMenu;\n//# sourceMappingURL=ContextMenu.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport ContextMenu from \"./ContextMenu.js\";\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Put at your root container, any contextmenu events that are unhandled in the root container will be handled by this\n */\nclass ContextMenuRoot extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"openMenu\", void 0);\n this.handleMenuClose = this.handleMenuClose.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.openMenu = /*#__PURE__*/React.createRef();\n this.state = {\n actions: null,\n left: 0,\n top: 0\n };\n }\n componentDidMount() {\n var _this$container$curre;\n if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {\n this.container.current.parentElement.addEventListener('contextmenu', this.handleContextMenu);\n }\n }\n componentWillUnmount() {\n var _this$container$curre2;\n if ((_this$container$curre2 = this.container.current) !== null && _this$container$curre2 !== void 0 && _this$container$curre2.parentElement) {\n this.container.current.parentElement.removeEventListener('contextmenu', this.handleContextMenu);\n }\n }\n handleContextMenu(e) {\n if (!this.container.current) {\n return;\n }\n var parentRect = this.container.current.getBoundingClientRect();\n var top = e.clientY - parentRect.top;\n var left = e.clientX - parentRect.left;\n var {\n actions\n } = this.state;\n\n // Context menu is open and user clicked on the context-root blocking layer\n // Mac and Linux appear to trigger contextmenu events on mousedown vs. mouseup on Windows\n // Mouseup on Windows triggers blur before contextmenu which effectively does what this path does\n if (actions != null && e.target === this.container.current) {\n // re-emit right clicks that hit the context-root blocking layer\n // while we already have a custom context menu open\n e.preventDefault();\n\n // Set actions to null removes the menu\n // That allows a new menu to be opened on a different element so initial position is set properly\n // Otherwise the instance of this menu may be reused\n // A new contextmenu event is triggered on the element at the location the user clicked on the blocking layer\n this.setState({\n actions: null\n }, () => {\n var element = document.elementFromPoint(left, top); // x y\n\n var mouseEvent = new MouseEvent('contextmenu', {\n clientX: e.clientX,\n clientY: e.clientY,\n bubbles: true,\n cancelable: true\n });\n element === null || element === void 0 ? void 0 : element.dispatchEvent(mouseEvent);\n });\n return;\n }\n if (!ContextActionUtils.isContextActionEvent(e)) {\n // Open native menu if no custom context actions\n return;\n }\n if (e.metaKey || e.ctrlKey) {\n // debug escape hatch to native menu\n return;\n }\n var contextActions = ContextActionUtils.getMenuItems(e.contextActions);\n if (contextActions.length === 0) {\n // No actions after filtering. Use native menu\n return;\n }\n\n // new clicks, set actions\n e.preventDefault();\n this.setState({\n actions: contextActions,\n top,\n left\n });\n }\n handleMenuClose(menu) {\n if (menu === this.openMenu.current) {\n this.setState({\n actions: null\n });\n }\n }\n render() {\n var menu = null;\n var {\n 'data-testid': dataTestId\n } = this.props;\n var {\n actions,\n top,\n left\n } = this.state;\n if (actions) {\n menu = /*#__PURE__*/_jsx(ContextMenu, {\n ref: this.openMenu,\n actions: actions,\n onMenuClosed: this.handleMenuClose,\n top: top,\n left: left,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n top: verifiedTop,\n left: verifiedLeft\n });\n },\n \"data-testid\": dataTestId\n });\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('context-menu-root', {\n active: actions\n }),\n ref: this.container,\n children: menu\n });\n }\n}\nexport default ContextMenuRoot;\n//# sourceMappingURL=ContextMenuRoot.js.map","import Log from '@deephaven/log';\nimport React, { Component } from 'react';\nimport LoadingOverlay from \"./LoadingOverlay.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('ErrorBoundary');\n/**\n * Error boundary for catching render errors in React. Displays an error message if an error is caught by default, or you can specify a fallback component to render.\n * https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary\n */\nexport class ErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n componentDidCatch(error, errorInfo) {\n var {\n onError\n } = this.props;\n log.error('Error caught by ErrorBoundary', error, errorInfo);\n onError === null || onError === void 0 ? void 0 : onError(error, errorInfo);\n }\n render() {\n var {\n children,\n className,\n fallback\n } = this.props;\n var {\n error\n } = this.state;\n if (error != null) {\n if (fallback != null) {\n return fallback;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: className,\n children: /*#__PURE__*/_jsx(LoadingOverlay, {\n errorMessage: \"\".concat(error),\n isLoading: false,\n isLoaded: false\n })\n });\n }\n return children;\n }\n}\nexport default ErrorBoundary;\n//# sourceMappingURL=ErrorBoundary.js.map","import { TimeoutError } from '@deephaven/utils';\n\n/** Default timeout for fetching a variable definition */\nexport var FETCH_TIMEOUT = 10000;\n\n/**\n * Fetch the definition for a variable given a connection. Subscribes to field updates and triggers when the variable is found.\n * @param connection Connection to get the variable from\n * @param name Name of the definition to fetch\n * @param timeout Timeout for the fetch\n * @returns Promise the resolves to the variable definition if found, or rejects if there's an error or the timeout has exceeded\n */\nexport function fetchVariableDefinition(connection, name) {\n var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : FETCH_TIMEOUT;\n return new Promise((resolve, reject) => {\n var removeListener;\n var timeoutId = setTimeout(() => {\n var _removeListener;\n (_removeListener = removeListener) === null || _removeListener === void 0 ? void 0 : _removeListener();\n reject(new TimeoutError(\"Timeout looking for variable \".concat(name)));\n }, timeout);\n\n /**\n * Checks if the variable we're looking for is in the changes, and resolves the promise if it does\n * @param changes Variables changes that have occurred\n */\n function handleFieldUpdates(changes) {\n var _removeListener2;\n var definition = changes.created.find(def => def.title === name);\n clearTimeout(timeoutId);\n (_removeListener2 = removeListener) === null || _removeListener2 === void 0 ? void 0 : _removeListener2();\n if (definition != null) {\n resolve(definition);\n } else {\n reject(new Error(\"Variable \".concat(name, \" not found\")));\n }\n }\n removeListener = connection.subscribeToFieldUpdates(handleFieldUpdates);\n });\n}\n//# sourceMappingURL=ConnectionUtils.js.map","import { useMemo } from 'react';\nimport { isDashboardPlugin, isLegacyDashboardPlugin } from \"./PluginTypes.js\";\nimport { usePlugins } from \"./usePlugins.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getDashboardPlugins(plugins) {\n var dbPlugins = [...plugins.entries()].filter(_ref => {\n var [, plugin] = _ref;\n return isDashboardPlugin(plugin) || isLegacyDashboardPlugin(plugin);\n });\n return dbPlugins.map(_ref2 => {\n var [pluginName, plugin] = _ref2;\n if (isLegacyDashboardPlugin(plugin)) {\n var {\n DashboardPlugin: _DPlugin\n } = plugin;\n return /*#__PURE__*/_jsx(_DPlugin, {}, pluginName);\n }\n var {\n component: DPlugin\n } = plugin;\n return /*#__PURE__*/_jsx(DPlugin, {}, pluginName);\n });\n}\n\n/**\n * Get all DashboardPlugin elements from the plugins context\n * @returns Array of DashboardPlugin elements\n */\nexport function useDashboardPlugins() {\n var plugins = usePlugins();\n var dashboardPlugins = useMemo(() => getDashboardPlugins(plugins), [plugins]);\n return dashboardPlugins;\n}\nexport default useDashboardPlugins;\n//# sourceMappingURL=useDashboardPlugins.js.map","import { createContext } from 'react';\nexport var UserOverrideContext = /*#__PURE__*/createContext({});\nexport var UserPermissionsOverrideContext = /*#__PURE__*/createContext({});\nexport var UserContext = /*#__PURE__*/createContext(null);\n//# sourceMappingURL=UserContexts.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport throttle from 'lodash.throttle';\nimport GoldenLayout from '@deephaven/golden-layout';\nimport { useResizeObserver } from '@deephaven/react-hooks';\nimport \"./layout/GoldenLayout.css\";\nimport LayoutUtils from \"./layout/LayoutUtils.js\";\nimport PanelPlaceholder from \"./PanelPlaceholder.js\";\nimport DashboardLayout from \"./DashboardLayout.js\";\nimport \"./Dashboard.css\";\nimport { LayoutManagerContext } from \"./layout/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar RESIZE_THROTTLE = 100;\nvar DEFAULT_CALLBACK = () => undefined;\nvar EMPTY_OBJECT = Object.freeze({});\nexport function Dashboard(_ref) {\n var {\n id = 'default',\n children,\n emptyDashboard,\n layoutConfig,\n layoutSettings = EMPTY_OBJECT,\n onLayoutConfigChange = DEFAULT_CALLBACK,\n onGoldenLayoutChange = DEFAULT_CALLBACK,\n onLayoutInitialized = DEFAULT_CALLBACK,\n fallbackComponent = PanelPlaceholder,\n hydrate,\n dehydrate,\n panelWrapper\n } = _ref;\n var layoutElement = useRef(null);\n var [isInitialized, setIsInitialized] = useState(false);\n var [layout, setLayout] = useState();\n useEffect(function initDashboard() {\n if (!layoutElement.current) {\n setLayout(undefined);\n return;\n }\n var config = _objectSpread({}, LayoutUtils.makeDefaultLayout());\n if (config.settings === undefined) {\n config.settings = {};\n }\n Object.assign(config.settings, layoutSettings);\n\n // Load our content later after plugins have registered\n config.content = [];\n var newLayout = new GoldenLayout(config, layoutElement.current);\n var onInit = () => {\n newLayout.off('initialised', onInit);\n setIsInitialized(true);\n };\n newLayout.on('initialised', onInit);\n if (fallbackComponent != null) {\n newLayout.setFallbackComponent(fallbackComponent);\n }\n newLayout.init();\n setLayout(newLayout);\n onGoldenLayoutChange(newLayout);\n return () => {\n newLayout.destroy();\n };\n }, [layoutSettings, fallbackComponent, onGoldenLayoutChange, setIsInitialized, setLayout]);\n var handleResize = useMemo(() => throttle(() => {\n if (layout != null && layout.isInitialised) {\n layout === null || layout === void 0 ? void 0 : layout.updateSize();\n }\n }, RESIZE_THROTTLE), [layout]);\n useResizeObserver(layoutElement.current, handleResize);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"dashboard-container w-100 h-100\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"w-100 h-100\",\n ref: layoutElement\n }), isInitialized && layout && /*#__PURE__*/_jsx(LayoutManagerContext.Provider, {\n value: layout,\n children: /*#__PURE__*/_jsx(DashboardLayout, {\n emptyDashboard: emptyDashboard,\n id: id,\n layout: layout,\n layoutConfig: layoutConfig,\n onLayoutChange: onLayoutConfigChange,\n onLayoutInitialized: onLayoutInitialized,\n hydrate: hydrate,\n dehydrate: dehydrate,\n panelWrapper: panelWrapper,\n children: children\n })\n })]\n });\n}\nexport default Dashboard;\n//# sourceMappingURL=Dashboard.js.map","export var CREATE_DASHBOARD = 'CREATE_DASHBOARD';\nexport function stopListenForCreateDashboard(eventHub, handler) {\n try {\n eventHub.off(CREATE_DASHBOARD, handler);\n } catch (_unused) {\n // golden-layout throws if the handler is not found. Instead catch it and no-op\n }\n}\nexport function listenForCreateDashboard(eventHub, handler) {\n eventHub.on(CREATE_DASHBOARD, handler);\n return () => stopListenForCreateDashboard(eventHub, handler);\n}\nexport function emitCreateDashboard(eventHub, payload) {\n eventHub.emit(CREATE_DASHBOARD, payload);\n}\n//# sourceMappingURL=DashboardEvents.js.map","var _excluded = [\"id\", \"isActive\", \"plugins\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { updateWorkspaceData } from '@deephaven/redux';\nimport { Dashboard } from \"./Dashboard.js\";\nimport { updateDashboardData } from \"./redux/index.js\";\nimport { DEFAULT_DASHBOARD_ID } from \"./DashboardConstants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function LazyDashboard(_ref) {\n var {\n id,\n isActive,\n plugins\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var [isLoaded, setIsLoaded] = useState(isActive);\n var dispatch = useDispatch();\n var handleLayoutConfigChange = useCallback(config => {\n // TODO: #1746 Call updateDashboardData for every dashboard\n // This currently allows the default dashboard to keep its layout since\n // other dashboards are not persistent yet and we read workspaceData\n // for the default dashboard layout\n if (id === DEFAULT_DASHBOARD_ID) {\n dispatch(updateWorkspaceData({\n layoutConfig: config\n }));\n } else {\n dispatch(updateDashboardData(id, {\n layoutConfig: config\n }));\n }\n }, [id, dispatch]);\n if (!isLoaded && isActive) {\n setIsLoaded(true);\n }\n if (!isLoaded) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {});\n }\n return /*#__PURE__*/_jsx(Dashboard, _objectSpread(_objectSpread({\n id: id,\n onLayoutConfigChange: handleLayoutConfigChange\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, rest), {}, {\n children: plugins\n }));\n}\nexport default LazyDashboard;\n//# sourceMappingURL=LazyDashboard.js.map","import { createContext } from 'react';\nexport var ConnectionContext = /*#__PURE__*/createContext(null);\nexport default ConnectionContext;\n//# sourceMappingURL=ConnectionContext.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { useCallback } from 'react';\nimport classNames from 'classnames';\nimport { DashboardUtils, LazyDashboard } from '@deephaven/dashboard';\nimport { sanitizeVariableDescriptor, useObjectFetcher } from '@deephaven/jsapi-bootstrap';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function AppDashboards(_ref) {\n var {\n dashboards,\n activeDashboard,\n onLayoutInitialized,\n onGoldenLayoutChange,\n plugins,\n emptyDashboard = /*#__PURE__*/_jsx(LoadingOverlay, {})\n } = _ref;\n var fetchObject = useObjectFetcher();\n var hydratePanel = useCallback((hydrateProps, id) => {\n var {\n metadata\n } = hydrateProps;\n try {\n if (metadata != null) {\n var widget = sanitizeVariableDescriptor(metadata);\n return _objectSpread(_objectSpread({\n fetch: function () {\n var _fetch = _asyncToGenerator(function* () {\n return fetchObject(widget);\n });\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n return fetch;\n }()\n }, hydrateProps), {}, {\n localDashboardId: id\n });\n }\n } catch (e) {\n // Ignore being unable to get the variable descriptor, do the default dashboard hydration\n }\n return DashboardUtils.hydrate(hydrateProps, id);\n }, [fetchObject]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"tab-content\",\n children: dashboards.map(d => /*#__PURE__*/_jsx(\"div\", {\n className: classNames('tab-pane', {\n active: d.id === activeDashboard\n }),\n children: /*#__PURE__*/_jsx(LazyDashboard, {\n id: d.id,\n isActive: d.id === activeDashboard,\n emptyDashboard: emptyDashboard,\n layoutConfig: d.layoutConfig,\n layoutSettings: d.layoutSettings,\n onLayoutInitialized: onLayoutInitialized,\n onGoldenLayoutChange: onGoldenLayoutChange,\n hydrate: hydratePanel,\n plugins: plugins\n }, d.key)\n }, d.id))\n });\n}\nexport default AppDashboards;\n//# sourceMappingURL=AppDashboards.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { ConnectionContext } from \"./ConnectionContext.js\";\n/**\n * Retrieve the connection for the current context.\n *\n * @returns Connection for the current context\n */\nexport function useConnection() {\n return useContextOrThrow(ConnectionContext, 'No IdeConnection available in useConnection. Was code wrapped in ConnectionContext.Provider?');\n}\nexport default useConnection;\n//# sourceMappingURL=useConnection.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { UserContext } from '@deephaven/auth-plugins';\nexport function useUser() {\n return useContextOrThrow(UserContext, 'No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?');\n}\nexport default useUser;\n//# sourceMappingURL=useUser.js.map"],"names":["useResizeObserver","element","onResize","useEffect","resizeObserverInstance","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_toPropertyKey","arg","_toPrimitive","input","hint","prim","res","log","Log","ContextMenu","PureComponent","props","React","_this$container$curre","onMenuOpened","prevProps","prevState","actions","activeSubMenu","_this$container$curre2","_this$container$curre3","options","keyboardIndex","index","mouseIndex","menuItems","ContextActionUtils","nonPromiseItems","menuItem","promise","cancellablePromise","PromiseUtils","state","resolvedMenuItems","pendingItems","error","item","parentRect","_this$container$curre4","_this$container$curre5","_this$container$curre6","_this$container$curre7","updatePosition","subMenuParentWidth","subMenuParentHeight","oldTop","oldLeft","top","left","width","height","hasOverflow","isContextMenuChild","oldFocus","newFocus","openSubMenu","newSubMenu","closeAll","closeMenu","onMenuClosed","closeAllMenus","e","focusIndex","menuItemElements","subMenuTop","subMenuLeft","_jsx","menuItemElement","ContextMenuItem","pendingElement","LoadingSpinner","menuStyle","dataTestId","showSubmenu","_jsxs","_Fragment","classNames","verifiedTop","verifiedLeft","ContextMenu$1","ContextMenuRoot","Component","mouseEvent","contextActions","menu","ContextMenuRoot$1","ErrorBoundary","errorInfo","onError","children","className","fallback","LoadingOverlay","FETCH_TIMEOUT","fetchVariableDefinition","connection","name","timeout","resolve","reject","removeListener","timeoutId","_removeListener","TimeoutError","handleFieldUpdates","changes","_removeListener2","definition","def","getDashboardPlugins","plugins","dbPlugins","_ref","plugin","isDashboardPlugin","isLegacyDashboardPlugin","_ref2","pluginName","_DPlugin","DPlugin","useDashboardPlugins","usePlugins","dashboardPlugins","useMemo","UserOverrideContext","createContext","UserPermissionsOverrideContext","UserContext","RESIZE_THROTTLE","DEFAULT_CALLBACK","EMPTY_OBJECT","Dashboard","id","emptyDashboard","layoutConfig","layoutSettings","onLayoutConfigChange","onGoldenLayoutChange","onLayoutInitialized","fallbackComponent","PanelPlaceholder","hydrate","dehydrate","panelWrapper","layoutElement","useRef","isInitialized","setIsInitialized","useState","layout","setLayout","config","LayoutUtils","newLayout","GoldenLayout","onInit","handleResize","throttle","LayoutManagerContext","DashboardLayout","CREATE_DASHBOARD","stopListenForCreateDashboard","eventHub","handler","listenForCreateDashboard","emitCreateDashboard","payload","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","LazyDashboard","isActive","rest","isLoaded","setIsLoaded","dispatch","useDispatch","handleLayoutConfigChange","useCallback","DEFAULT_DASHBOARD_ID","updateWorkspaceData","updateDashboardData","ConnectionContext","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","fn","self","args","err","AppDashboards","dashboards","activeDashboard","fetchObject","useObjectFetcher","hydratePanel","hydrateProps","metadata","widget","sanitizeVariableDescriptor","_fetch","fetch","DashboardUtils","d","useConnection","useContextOrThrow","useUser"],"mappings":"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"}
1
+ {"version":3,"file":"useUser-b819646e.js","sources":["../../../react-hooks/dist/useResizeObserver.js","../../../components/dist/context-actions/ContextMenu.js","../../../components/dist/context-actions/ContextMenuRoot.js","../../../components/dist/ErrorBoundary.js","../../../jsapi-utils/dist/ConnectionUtils.js","../../../plugin/dist/useDashboardPlugins.js","../../../auth-plugins/dist/UserContexts.js","../../../dashboard/dist/Dashboard.js","../../../dashboard/dist/DashboardEvents.js","../../../dashboard/dist/LazyDashboard.js","../../../app-utils/dist/components/ConnectionContext.js","../../../app-utils/dist/components/AppDashboards.js","../../../app-utils/dist/components/useConnection.js","../../../app-utils/dist/components/useUser.js"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * Listen for resize events on an element using ResizeObserver\n * @param element Element to listen for resizing on\n * @param onResize Callback triggered when the element resizes\n */\nexport function useResizeObserver(element, onResize) {\n useEffect(() => {\n if (element == null) {\n return;\n }\n var resizeObserverInstance = new window.ResizeObserver(onResize);\n resizeObserverInstance.observe(element);\n return () => {\n if (element != null) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }, [element, onResize]);\n}\nexport default useResizeObserver;\n//# sourceMappingURL=useResizeObserver.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport ContextMenuItem from \"./ContextMenuItem.js\";\nimport LoadingSpinner from \"../LoadingSpinner.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('ContextMenu');\n/** Do not use this class directly. Use ContextMenuRoot and ContextActions instead. */\nclass ContextMenu extends PureComponent {\n static handleContextMenu(e) {\n if (e.metaKey) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n }\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"oldFocus\", void 0);\n _defineProperty(this, \"activeSubMenuRef\", void 0);\n _defineProperty(this, \"subMenuTimer\", void 0);\n _defineProperty(this, \"rAF\", void 0);\n _defineProperty(this, \"initialPosition\", void 0);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleCloseSubMenu = this.handleCloseSubMenu.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemContextMenu = this.handleMenuItemContextMenu.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.oldFocus = document.activeElement;\n this.activeSubMenuRef = /*#__PURE__*/React.createRef();\n this.subMenuTimer = 0;\n this.rAF = 0;\n this.initialPosition = {\n top: props.top,\n left: props.left\n };\n this.state = {\n menuItems: [],\n pendingItems: [],\n activeSubMenu: null,\n hasOverflow: false,\n subMenuTop: null,\n subMenuLeft: null,\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n keyboardIndex: -1,\n mouseIndex: -1\n };\n }\n componentDidMount() {\n this.initMenu();\n this.verifyPosition();\n window.addEventListener('resize', this.handleWindowResize);\n\n // rAF is needed to wait for a submenus popper to be created before\n // attempting to set focus, however on a quick mount/unmount when\n // mousing past an item, the submenu could be unmounted before the\n // async rAF finishes, so it is cancelled in willUnmount()\n this.rAF = window.requestAnimationFrame(() => {\n var _this$container$curre;\n (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 ? void 0 : _this$container$curre.focus();\n var {\n onMenuOpened\n } = this.props;\n onMenuOpened(this);\n });\n }\n componentDidUpdate(prevProps, prevState) {\n var {\n actions\n } = this.props;\n var {\n activeSubMenu\n } = this.state;\n if (activeSubMenu !== prevState.activeSubMenu) {\n if (activeSubMenu == null) {\n var _this$container$curre2;\n // close sub menu, refocus parent menu\n (_this$container$curre2 = this.container.current) === null || _this$container$curre2 === void 0 ? void 0 : _this$container$curre2.focus();\n } else {\n // open sub menu, set its initial position\n this.setActiveSubMenuPosition();\n }\n }\n if (prevProps.actions !== actions) {\n this.initMenu();\n if (this.container.current == null || !this.container.current.contains(document.activeElement)) {\n var _this$container$curre3;\n (_this$container$curre3 = this.container.current) === null || _this$container$curre3 === void 0 ? void 0 : _this$container$curre3.focus();\n }\n }\n this.verifyPosition();\n }\n componentWillUnmount() {\n this.cancelPromises();\n window.removeEventListener('resize', this.handleWindowResize);\n cancelAnimationFrame(this.rAF);\n }\n getKeyboardIndex() {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n var {\n keyboardIndex\n } = this.state;\n return keyboardIndex;\n }\n return this.getMouseIndex();\n }\n setKeyboardIndex(index) {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n this.setState({\n keyboardIndex: index\n });\n } else {\n this.setMouseIndex(index);\n }\n }\n getMouseIndex() {\n var {\n mouseIndex\n } = this.state;\n return mouseIndex;\n }\n setMouseIndex(index) {\n this.setState({\n mouseIndex: index\n });\n }\n initMenu() {\n // cancel any pending close and promises\n this.cancelPromises();\n cancelAnimationFrame(this.rAF);\n var {\n options\n } = this.props;\n var keyboardIndex = options.initialKeyboardIndex;\n if (keyboardIndex === undefined) {\n keyboardIndex = -1;\n }\n var {\n actions\n } = this.props;\n var menuItems = ContextActionUtils.getMenuItems(actions);\n var nonPromiseItems = [];\n for (var i = menuItems.length - 1; i >= 0; i -= 1) {\n var menuItem = menuItems[i];\n if (menuItem instanceof Promise) {\n this.initMenuPromise(menuItem);\n } else {\n nonPromiseItems.push(menuItem);\n }\n }\n this.setState({\n mouseIndex: -1,\n keyboardIndex,\n activeSubMenu: null,\n menuItems: ContextActionUtils.sortActions(nonPromiseItems)\n });\n }\n initMenuPromise(promise) {\n // make all promises cancellable\n var cancellablePromise = PromiseUtils.makeCancelable(promise);\n this.setState(state => ({\n pendingItems: state.pendingItems.concat(cancellablePromise)\n }));\n cancellablePromise.then(resolvedMenuItems => {\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n menuItems: ContextActionUtils.sortActions(state.menuItems.concat(resolvedMenuItems)),\n pendingItems\n };\n }\n // This item is stale, don't update the menu\n return null;\n });\n }, error => {\n if (PromiseUtils.isCanceled(error)) {\n return; // Canceled promise is ignored\n }\n\n // remove failed item from pending list\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n pendingItems\n };\n }\n return null;\n });\n\n // Log the error\n log.error(error);\n });\n }\n cancelPromises() {\n var {\n pendingItems\n } = this.state;\n pendingItems.map(item => item.cancel());\n }\n\n /**\n * Sets the unverfied start position of a submenu. Submenu then self-verfies\n * its own position and potentially reports back a new position.\n */\n setActiveSubMenuPosition() {\n if (this.activeSubMenuRef.current === null) return;\n var parentRect = this.activeSubMenuRef.current.getBoundingClientRect();\n\n // intentionally rect.right, we want the sub menu to start at the right edge of the current menu\n this.setState({\n subMenuTop: parentRect.top,\n subMenuLeft: parentRect.right,\n subMenuParentHeight: parentRect.height,\n subMenuParentWidth: parentRect.width\n });\n }\n\n /**\n * Verifies the position of this menu in relation to the parent to make sure it's on screen.\n * Will update the top left state (updatePosition) if necessary (causing a re-render)\n * By default it tries to top-align with parent, at the right side of the parent.\n * Because we aren't a native context menu and can't escape window bounds, we also do\n * somethings to better fit on screen, such as the \"nudge\" offset position, and further\n * allow overflow scrolling for large menus in a small window.\n */\n verifyPosition() {\n var _this$container$curre4, _this$container$curre5, _this$container$curre6, _this$container$curre7;\n var {\n options,\n updatePosition,\n subMenuParentWidth,\n subMenuParentHeight,\n top: oldTop,\n left: oldLeft\n } = this.props;\n if (!this.container.current || options.doNotVerifyPosition != null && options.doNotVerifyPosition) {\n return;\n }\n\n // initial position is used rather than current position,\n // as the number of menu items can change (actions can bubble)\n // and menu should always be positioned relative to spawn point\n var {\n top,\n left\n } = this.initialPosition;\n var {\n width,\n height\n } = (_this$container$curre4 = (_this$container$curre5 = this.container.current) === null || _this$container$curre5 === void 0 ? void 0 : _this$container$curre5.getBoundingClientRect()) !== null && _this$container$curre4 !== void 0 ? _this$container$curre4 : {\n width: 0,\n height: 0\n };\n var hasOverflow = ((_this$container$curre6 = (_this$container$curre7 = this.container.current) === null || _this$container$curre7 === void 0 ? void 0 : _this$container$curre7.scrollHeight) !== null && _this$container$curre6 !== void 0 ? _this$container$curre6 : 0) > window.innerHeight;\n if (height === 0 || width === 0) {\n // We don't have a height or width yet, don't bother doing anything\n return;\n }\n\n // does it fit below?\n if (top + height > window.innerHeight) {\n // can it be flipped to above? include offset if submenu (defaults to 0 if not submenu)\n if (top - height - subMenuParentHeight > 0) {\n // flip like a native menu would\n top -= height - subMenuParentHeight;\n } else {\n // still doesnt fit? okay, position at bottom edge\n top = window.innerHeight - height;\n }\n }\n if (left + width > window.innerWidth) {\n // less picky about left right positioning, just keep it going off to right\n left = left - width - subMenuParentWidth;\n }\n if (oldLeft !== left || oldTop !== top) {\n // parent owns positioning as single source of truth, ask to update props\n this.setState({\n hasOverflow\n });\n updatePosition(top, left);\n }\n }\n\n // since window resize doesn't trigger blur, listen and close the menu\n handleWindowResize() {\n if (!this.container.current) {\n return;\n }\n this.closeMenu(true);\n }\n handleBlur(e) {\n if (!this.container.current) {\n log.warn('Container is null!');\n return;\n }\n if (!this.container.current.contains(e.relatedTarget)) {\n var element = e.relatedTarget;\n var isContextMenuChild = false;\n while (element && !isContextMenuChild) {\n isContextMenuChild = element.hasAttribute('data-dh-context-menu');\n element = element.parentElement;\n }\n if (!isContextMenuChild) {\n // close all submenus on blur\n this.closeMenu(true);\n }\n }\n }\n\n /** Returns whether the specified key should remove the menu. Depends on the side the parent is on. */\n isEscapeKey(key) {\n var {\n left\n } = this.props;\n return key === 'Escape' || left < 0 && key === 'ArrowRight' || key === 'ArrowLeft';\n }\n handleKeyDown(e) {\n var {\n menuItems\n } = this.state;\n var oldFocus = this.getKeyboardIndex();\n var newFocus = oldFocus;\n var openSubMenu = false;\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n if (e.key === 'ArrowRight') {\n if (oldFocus >= 0 && oldFocus <= menuItems.length) {\n openSubMenu = true;\n } else {\n newFocus = 0;\n }\n } else if (this.isEscapeKey(e.key)) {\n newFocus = null;\n } else if (e.key === 'ArrowUp' || e.shiftKey && e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, -1, menuItems);\n } else if (e.key === 'ArrowDown' || e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, 1, menuItems);\n }\n if (openSubMenu) {\n this.openSubMenu(oldFocus);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n openSubMenu(index) {\n var {\n menuItems,\n activeSubMenu\n } = this.state;\n var newSubMenu = menuItems[index].actions ? index : null;\n if (activeSubMenu === newSubMenu) return;\n this.setState({\n activeSubMenu: newSubMenu,\n subMenuTop: null,\n subMenuLeft: null\n });\n }\n closeMenu() {\n var closeAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var {\n closeMenu,\n onMenuClosed\n } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n closeSubMenu() {\n this.setState({\n activeSubMenu: null\n });\n }\n handleCloseSubMenu(closeAllMenus) {\n if (closeAllMenus) {\n this.closeMenu(true);\n } else {\n this.closeSubMenu();\n }\n }\n handleMenuItemClick(menuItem, e) {\n e.preventDefault();\n e.stopPropagation();\n var {\n menuItems\n } = this.state;\n if (menuItem != null && (menuItem.disabled === undefined || !menuItem.disabled)) {\n if (menuItem.actions != null) {\n this.openSubMenu(menuItems.indexOf(menuItem));\n } else if (menuItem.action != null) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n }\n handleMenuItemContextMenu(menuItem, e) {\n if (e.metaKey) {\n return;\n }\n this.handleMenuItemClick(menuItem, e);\n }\n handleMenuItemMouseMove(menuItem) {\n var {\n menuItems\n } = this.state;\n var focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n if (focusIndex >= 0 && focusIndex < menuItems.length && (menuItem.disabled === undefined || !menuItem.disabled)) {\n this.openSubMenu(focusIndex);\n }\n }\n handleMouseLeave() {\n this.setMouseIndex(-1);\n }\n render() {\n var menuItemElements = [];\n var {\n top,\n left\n } = this.props;\n var {\n activeSubMenu,\n hasOverflow,\n keyboardIndex,\n menuItems,\n mouseIndex,\n pendingItems,\n subMenuTop,\n subMenuLeft,\n subMenuParentWidth,\n subMenuParentHeight\n } = this.state;\n for (var i = 0; i < menuItems.length; i += 1) {\n var menuItem = menuItems[i];\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push( /*#__PURE__*/_jsx(\"hr\", {}, \"\".concat(i, \".separator\")));\n }\n var menuItemElement = /*#__PURE__*/_jsx(ContextMenuItem, {\n ref: activeSubMenu === i ? this.activeSubMenuRef : null,\n isKeyboardSelected: keyboardIndex === i,\n isMouseSelected: mouseIndex === i,\n menuItem: menuItem,\n closeMenu: this.handleCloseSubMenu,\n onMenuItemClick: this.handleMenuItemClick,\n onMenuItemMouseMove: this.handleMenuItemMouseMove,\n onMenuItemContextMenu: this.handleMenuItemContextMenu\n }, i);\n menuItemElements.push(menuItemElement);\n }\n var pendingElement = null;\n if (pendingItems.length > 0) {\n pendingElement = /*#__PURE__*/_jsx(\"div\", {\n className: \"loading\",\n children: /*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"loading-spinner-vertical-align\"\n })\n });\n }\n var {\n menuStyle,\n 'data-testid': dataTestId\n } = this.props;\n\n // don't show submenu until it has an position initialized\n var showSubmenu = activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: classNames({\n 'has-overflow': hasOverflow\n }, 'context-menu-container'),\n style: _objectSpread({\n top,\n left\n }, menuStyle),\n ref: this.container,\n \"data-dh-context-menu\": true,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseLeave: this.handleMouseLeave,\n onContextMenu: ContextMenu.handleContextMenu,\n role: \"menuitem\",\n tabIndex: 0,\n \"data-testid\": dataTestId,\n children: [menuItemElements, pendingElement]\n }), showSubmenu && activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null && /*#__PURE__*/_jsx(ContextMenu, {\n actions: menuItems[activeSubMenu].actions || [],\n closeMenu: this.handleCloseSubMenu,\n top: subMenuTop,\n left: subMenuLeft,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n subMenuTop: verifiedTop,\n subMenuLeft: verifiedLeft\n });\n },\n subMenuParentWidth: subMenuParentWidth,\n subMenuParentHeight: subMenuParentHeight\n }, \"sub-\".concat(activeSubMenu))]\n });\n }\n}\n_defineProperty(ContextMenu, \"defaultProps\", {\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n closeMenu() {\n // no-op\n },\n onMenuOpened() {\n // no-op\n },\n onMenuClosed() {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined\n});\nexport default ContextMenu;\n//# sourceMappingURL=ContextMenu.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport ContextMenu from \"./ContextMenu.js\";\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Put at your root container, any contextmenu events that are unhandled in the root container will be handled by this\n */\nclass ContextMenuRoot extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"openMenu\", void 0);\n this.handleMenuClose = this.handleMenuClose.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.openMenu = /*#__PURE__*/React.createRef();\n this.state = {\n actions: null,\n left: 0,\n top: 0\n };\n }\n componentDidMount() {\n var _this$container$curre;\n if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {\n this.container.current.parentElement.addEventListener('contextmenu', this.handleContextMenu);\n }\n }\n componentWillUnmount() {\n var _this$container$curre2;\n if ((_this$container$curre2 = this.container.current) !== null && _this$container$curre2 !== void 0 && _this$container$curre2.parentElement) {\n this.container.current.parentElement.removeEventListener('contextmenu', this.handleContextMenu);\n }\n }\n handleContextMenu(e) {\n if (!this.container.current) {\n return;\n }\n var parentRect = this.container.current.getBoundingClientRect();\n var top = e.clientY - parentRect.top;\n var left = e.clientX - parentRect.left;\n var {\n actions\n } = this.state;\n\n // Context menu is open and user clicked on the context-root blocking layer\n // Mac and Linux appear to trigger contextmenu events on mousedown vs. mouseup on Windows\n // Mouseup on Windows triggers blur before contextmenu which effectively does what this path does\n if (actions != null && e.target === this.container.current) {\n // re-emit right clicks that hit the context-root blocking layer\n // while we already have a custom context menu open\n e.preventDefault();\n\n // Set actions to null removes the menu\n // That allows a new menu to be opened on a different element so initial position is set properly\n // Otherwise the instance of this menu may be reused\n // A new contextmenu event is triggered on the element at the location the user clicked on the blocking layer\n this.setState({\n actions: null\n }, () => {\n var element = document.elementFromPoint(left, top); // x y\n\n var mouseEvent = new MouseEvent('contextmenu', {\n clientX: e.clientX,\n clientY: e.clientY,\n bubbles: true,\n cancelable: true\n });\n element === null || element === void 0 ? void 0 : element.dispatchEvent(mouseEvent);\n });\n return;\n }\n if (!ContextActionUtils.isContextActionEvent(e)) {\n // Open native menu if no custom context actions\n return;\n }\n if (e.metaKey || e.ctrlKey) {\n // debug escape hatch to native menu\n return;\n }\n var contextActions = ContextActionUtils.getMenuItems(e.contextActions);\n if (contextActions.length === 0) {\n // No actions after filtering. Use native menu\n return;\n }\n\n // new clicks, set actions\n e.preventDefault();\n this.setState({\n actions: contextActions,\n top,\n left\n });\n }\n handleMenuClose(menu) {\n if (menu === this.openMenu.current) {\n this.setState({\n actions: null\n });\n }\n }\n render() {\n var menu = null;\n var {\n 'data-testid': dataTestId\n } = this.props;\n var {\n actions,\n top,\n left\n } = this.state;\n if (actions) {\n menu = /*#__PURE__*/_jsx(ContextMenu, {\n ref: this.openMenu,\n actions: actions,\n onMenuClosed: this.handleMenuClose,\n top: top,\n left: left,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n top: verifiedTop,\n left: verifiedLeft\n });\n },\n \"data-testid\": dataTestId\n });\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('context-menu-root', {\n active: actions\n }),\n ref: this.container,\n children: menu\n });\n }\n}\nexport default ContextMenuRoot;\n//# sourceMappingURL=ContextMenuRoot.js.map","import Log from '@deephaven/log';\nimport React, { Component } from 'react';\nimport LoadingOverlay from \"./LoadingOverlay.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('ErrorBoundary');\n/**\n * Error boundary for catching render errors in React. Displays an error message if an error is caught by default, or you can specify a fallback component to render.\n * https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary\n */\nexport class ErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n componentDidCatch(error, errorInfo) {\n var {\n onError\n } = this.props;\n log.error('Error caught by ErrorBoundary', error, errorInfo);\n onError === null || onError === void 0 ? void 0 : onError(error, errorInfo);\n }\n render() {\n var {\n children,\n className,\n fallback\n } = this.props;\n var {\n error\n } = this.state;\n if (error != null) {\n if (fallback != null) {\n return fallback;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: className,\n children: /*#__PURE__*/_jsx(LoadingOverlay, {\n errorMessage: \"\".concat(error),\n isLoading: false,\n isLoaded: false\n })\n });\n }\n return children;\n }\n}\nexport default ErrorBoundary;\n//# sourceMappingURL=ErrorBoundary.js.map","import { TimeoutError } from '@deephaven/utils';\n\n/** Default timeout for fetching a variable definition */\nexport var FETCH_TIMEOUT = 10000;\n\n/**\n * Fetch the definition for a variable given a connection. Subscribes to field updates and triggers when the variable is found.\n * @param connection Connection to get the variable from\n * @param name Name of the definition to fetch\n * @param timeout Timeout for the fetch\n * @returns Promise the resolves to the variable definition if found, or rejects if there's an error or the timeout has exceeded\n */\nexport function fetchVariableDefinition(connection, name) {\n var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : FETCH_TIMEOUT;\n return new Promise((resolve, reject) => {\n var removeListener;\n var timeoutId = setTimeout(() => {\n var _removeListener;\n (_removeListener = removeListener) === null || _removeListener === void 0 ? void 0 : _removeListener();\n reject(new TimeoutError(\"Timeout looking for variable \".concat(name)));\n }, timeout);\n\n /**\n * Checks if the variable we're looking for is in the changes, and resolves the promise if it does\n * @param changes Variables changes that have occurred\n */\n function handleFieldUpdates(changes) {\n var _removeListener2;\n var definition = changes.created.find(def => def.title === name);\n clearTimeout(timeoutId);\n (_removeListener2 = removeListener) === null || _removeListener2 === void 0 ? void 0 : _removeListener2();\n if (definition != null) {\n resolve(definition);\n } else {\n reject(new Error(\"Variable \".concat(name, \" not found\")));\n }\n }\n removeListener = connection.subscribeToFieldUpdates(handleFieldUpdates);\n });\n}\n//# sourceMappingURL=ConnectionUtils.js.map","import { useMemo } from 'react';\nimport { isDashboardPlugin, isLegacyDashboardPlugin } from \"./PluginTypes.js\";\nimport { usePlugins } from \"./usePlugins.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getDashboardPlugins(plugins) {\n var dbPlugins = [...plugins.entries()].filter(_ref => {\n var [, plugin] = _ref;\n return isDashboardPlugin(plugin) || isLegacyDashboardPlugin(plugin);\n });\n return dbPlugins.map(_ref2 => {\n var [pluginName, plugin] = _ref2;\n if (isLegacyDashboardPlugin(plugin)) {\n var {\n DashboardPlugin: _DPlugin\n } = plugin;\n return /*#__PURE__*/_jsx(_DPlugin, {}, pluginName);\n }\n var {\n component: DPlugin\n } = plugin;\n return /*#__PURE__*/_jsx(DPlugin, {}, pluginName);\n });\n}\n\n/**\n * Get all DashboardPlugin elements from the plugins context\n * @returns Array of DashboardPlugin elements\n */\nexport function useDashboardPlugins() {\n var plugins = usePlugins();\n var dashboardPlugins = useMemo(() => getDashboardPlugins(plugins), [plugins]);\n return dashboardPlugins;\n}\nexport default useDashboardPlugins;\n//# sourceMappingURL=useDashboardPlugins.js.map","import { createContext } from 'react';\nexport var UserOverrideContext = /*#__PURE__*/createContext({});\nexport var UserPermissionsOverrideContext = /*#__PURE__*/createContext({});\nexport var UserContext = /*#__PURE__*/createContext(null);\n//# sourceMappingURL=UserContexts.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport throttle from 'lodash.throttle';\nimport GoldenLayout from '@deephaven/golden-layout';\nimport { useResizeObserver } from '@deephaven/react-hooks';\nimport \"./layout/GoldenLayout.css\";\nimport LayoutUtils from \"./layout/LayoutUtils.js\";\nimport PanelPlaceholder from \"./PanelPlaceholder.js\";\nimport DashboardLayout from \"./DashboardLayout.js\";\nimport \"./Dashboard.css\";\nimport { LayoutManagerContext } from \"./layout/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar RESIZE_THROTTLE = 100;\nvar DEFAULT_CALLBACK = () => undefined;\nvar EMPTY_OBJECT = Object.freeze({});\nexport function Dashboard(_ref) {\n var {\n id = 'default',\n children,\n emptyDashboard,\n layoutConfig,\n layoutSettings = EMPTY_OBJECT,\n onLayoutConfigChange = DEFAULT_CALLBACK,\n onGoldenLayoutChange = DEFAULT_CALLBACK,\n onLayoutInitialized = DEFAULT_CALLBACK,\n fallbackComponent = PanelPlaceholder,\n hydrate,\n dehydrate,\n panelWrapper\n } = _ref;\n var layoutElement = useRef(null);\n var [isInitialized, setIsInitialized] = useState(false);\n var [layout, setLayout] = useState();\n useEffect(function initDashboard() {\n if (!layoutElement.current) {\n setLayout(undefined);\n return;\n }\n var config = _objectSpread({}, LayoutUtils.makeDefaultLayout());\n if (config.settings === undefined) {\n config.settings = {};\n }\n Object.assign(config.settings, layoutSettings);\n\n // Load our content later after plugins have registered\n config.content = [];\n var newLayout = new GoldenLayout(config, layoutElement.current);\n var onInit = () => {\n newLayout.off('initialised', onInit);\n setIsInitialized(true);\n };\n newLayout.on('initialised', onInit);\n if (fallbackComponent != null) {\n newLayout.setFallbackComponent(fallbackComponent);\n }\n newLayout.init();\n setLayout(newLayout);\n onGoldenLayoutChange(newLayout);\n return () => {\n newLayout.destroy();\n };\n }, [layoutSettings, fallbackComponent, onGoldenLayoutChange, setIsInitialized, setLayout]);\n var handleResize = useMemo(() => throttle(() => {\n if (layout != null && layout.isInitialised) {\n layout === null || layout === void 0 ? void 0 : layout.updateSize();\n }\n }, RESIZE_THROTTLE), [layout]);\n useResizeObserver(layoutElement.current, handleResize);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"dashboard-container w-100 h-100\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"w-100 h-100\",\n ref: layoutElement\n }), isInitialized && layout && /*#__PURE__*/_jsx(LayoutManagerContext.Provider, {\n value: layout,\n children: /*#__PURE__*/_jsx(DashboardLayout, {\n emptyDashboard: emptyDashboard,\n id: id,\n layout: layout,\n layoutConfig: layoutConfig,\n onLayoutChange: onLayoutConfigChange,\n onLayoutInitialized: onLayoutInitialized,\n hydrate: hydrate,\n dehydrate: dehydrate,\n panelWrapper: panelWrapper,\n children: children\n })\n })]\n });\n}\nexport default Dashboard;\n//# sourceMappingURL=Dashboard.js.map","export var CREATE_DASHBOARD = 'CREATE_DASHBOARD';\nexport function stopListenForCreateDashboard(eventHub, handler) {\n try {\n eventHub.off(CREATE_DASHBOARD, handler);\n } catch (_unused) {\n // golden-layout throws if the handler is not found. Instead catch it and no-op\n }\n}\nexport function listenForCreateDashboard(eventHub, handler) {\n eventHub.on(CREATE_DASHBOARD, handler);\n return () => stopListenForCreateDashboard(eventHub, handler);\n}\nexport function emitCreateDashboard(eventHub, payload) {\n eventHub.emit(CREATE_DASHBOARD, payload);\n}\n//# sourceMappingURL=DashboardEvents.js.map","var _excluded = [\"id\", \"isActive\", \"plugins\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { updateWorkspaceData } from '@deephaven/redux';\nimport { Dashboard } from \"./Dashboard.js\";\nimport { updateDashboardData } from \"./redux/index.js\";\nimport { DEFAULT_DASHBOARD_ID } from \"./DashboardConstants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function LazyDashboard(_ref) {\n var {\n id,\n isActive,\n plugins\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var [isLoaded, setIsLoaded] = useState(isActive);\n var dispatch = useDispatch();\n var handleLayoutConfigChange = useCallback(config => {\n // TODO: #1746 Call updateDashboardData for every dashboard\n // This currently allows the default dashboard to keep its layout since\n // other dashboards are not persistent yet and we read workspaceData\n // for the default dashboard layout\n if (id === DEFAULT_DASHBOARD_ID) {\n dispatch(updateWorkspaceData({\n layoutConfig: config\n }));\n } else {\n dispatch(updateDashboardData(id, {\n layoutConfig: config\n }));\n }\n }, [id, dispatch]);\n if (!isLoaded && isActive) {\n setIsLoaded(true);\n }\n if (!isLoaded) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {});\n }\n return /*#__PURE__*/_jsx(Dashboard, _objectSpread(_objectSpread({\n id: id,\n onLayoutConfigChange: handleLayoutConfigChange\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, rest), {}, {\n children: plugins\n }));\n}\nexport default LazyDashboard;\n//# sourceMappingURL=LazyDashboard.js.map","import { createContext } from 'react';\nexport var ConnectionContext = /*#__PURE__*/createContext(null);\nexport default ConnectionContext;\n//# sourceMappingURL=ConnectionContext.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { useCallback } from 'react';\nimport classNames from 'classnames';\nimport { DashboardUtils, LazyDashboard } from '@deephaven/dashboard';\nimport { sanitizeVariableDescriptor, useObjectFetcher } from '@deephaven/jsapi-bootstrap';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function AppDashboards(_ref) {\n var {\n dashboards,\n activeDashboard,\n onLayoutInitialized,\n onGoldenLayoutChange,\n plugins,\n emptyDashboard = /*#__PURE__*/_jsx(LoadingOverlay, {})\n } = _ref;\n var fetchObject = useObjectFetcher();\n var hydratePanel = useCallback((hydrateProps, id) => {\n var {\n metadata\n } = hydrateProps;\n try {\n if (metadata != null) {\n var widget = sanitizeVariableDescriptor(metadata);\n return _objectSpread(_objectSpread({\n fetch: function () {\n var _fetch = _asyncToGenerator(function* () {\n return fetchObject(widget);\n });\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n return fetch;\n }()\n }, hydrateProps), {}, {\n localDashboardId: id\n });\n }\n } catch (e) {\n // Ignore being unable to get the variable descriptor, do the default dashboard hydration\n }\n return DashboardUtils.hydrate(hydrateProps, id);\n }, [fetchObject]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"tab-content\",\n children: dashboards.map(d => /*#__PURE__*/_jsx(\"div\", {\n className: classNames('tab-pane', {\n active: d.id === activeDashboard\n }),\n children: /*#__PURE__*/_jsx(LazyDashboard, {\n id: d.id,\n isActive: d.id === activeDashboard,\n emptyDashboard: emptyDashboard,\n layoutConfig: d.layoutConfig,\n layoutSettings: d.layoutSettings,\n onLayoutInitialized: onLayoutInitialized,\n onGoldenLayoutChange: onGoldenLayoutChange,\n hydrate: hydratePanel,\n plugins: plugins\n }, d.key)\n }, d.id))\n });\n}\nexport default AppDashboards;\n//# sourceMappingURL=AppDashboards.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { ConnectionContext } from \"./ConnectionContext.js\";\n/**\n * Retrieve the connection for the current context.\n *\n * @returns Connection for the current context\n */\nexport function useConnection() {\n return useContextOrThrow(ConnectionContext, 'No IdeConnection available in useConnection. Was code wrapped in ConnectionContext.Provider?');\n}\nexport default useConnection;\n//# sourceMappingURL=useConnection.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { UserContext } from '@deephaven/auth-plugins';\nexport function useUser() {\n return useContextOrThrow(UserContext, 'No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?');\n}\nexport default useUser;\n//# sourceMappingURL=useUser.js.map"],"names":["useResizeObserver","element","onResize","useEffect","resizeObserverInstance","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_toPropertyKey","arg","_toPrimitive","input","hint","prim","res","log","Log","ContextMenu","PureComponent","props","React","_this$container$curre","onMenuOpened","prevProps","prevState","actions","activeSubMenu","_this$container$curre2","_this$container$curre3","options","keyboardIndex","index","mouseIndex","menuItems","ContextActionUtils","nonPromiseItems","menuItem","promise","cancellablePromise","PromiseUtils","state","resolvedMenuItems","pendingItems","error","item","parentRect","_this$container$curre4","_this$container$curre5","_this$container$curre6","_this$container$curre7","updatePosition","subMenuParentWidth","subMenuParentHeight","oldTop","oldLeft","top","left","width","height","hasOverflow","isContextMenuChild","oldFocus","newFocus","openSubMenu","newSubMenu","closeAll","closeMenu","onMenuClosed","closeAllMenus","e","focusIndex","menuItemElements","subMenuTop","subMenuLeft","_jsx","menuItemElement","ContextMenuItem","pendingElement","LoadingSpinner","menuStyle","dataTestId","showSubmenu","_jsxs","_Fragment","classNames","verifiedTop","verifiedLeft","ContextMenu$1","ContextMenuRoot","Component","mouseEvent","contextActions","menu","ContextMenuRoot$1","ErrorBoundary","errorInfo","onError","children","className","fallback","LoadingOverlay","FETCH_TIMEOUT","fetchVariableDefinition","connection","name","timeout","resolve","reject","removeListener","timeoutId","_removeListener","TimeoutError","handleFieldUpdates","changes","_removeListener2","definition","def","getDashboardPlugins","plugins","dbPlugins","_ref","plugin","isDashboardPlugin","isLegacyDashboardPlugin","_ref2","pluginName","_DPlugin","DPlugin","useDashboardPlugins","usePlugins","dashboardPlugins","useMemo","UserOverrideContext","createContext","UserPermissionsOverrideContext","UserContext","RESIZE_THROTTLE","DEFAULT_CALLBACK","EMPTY_OBJECT","Dashboard","id","emptyDashboard","layoutConfig","layoutSettings","onLayoutConfigChange","onGoldenLayoutChange","onLayoutInitialized","fallbackComponent","PanelPlaceholder","hydrate","dehydrate","panelWrapper","layoutElement","useRef","isInitialized","setIsInitialized","useState","layout","setLayout","config","LayoutUtils","newLayout","GoldenLayout","onInit","handleResize","throttle","LayoutManagerContext","DashboardLayout","CREATE_DASHBOARD","stopListenForCreateDashboard","eventHub","handler","listenForCreateDashboard","emitCreateDashboard","payload","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","LazyDashboard","isActive","rest","isLoaded","setIsLoaded","dispatch","useDispatch","handleLayoutConfigChange","useCallback","DEFAULT_DASHBOARD_ID","updateWorkspaceData","updateDashboardData","ConnectionContext","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","fn","self","args","err","AppDashboards","dashboards","activeDashboard","fetchObject","useObjectFetcher","hydratePanel","hydrateProps","metadata","widget","sanitizeVariableDescriptor","_fetch","fetch","DashboardUtils","d","useConnection","useContextOrThrow","useUser"],"mappings":"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"}
package/build/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <base href="./" />
5
- <meta name="ui-version" content="v0.80.1" />
5
+ <meta name="ui-version" content="v0.81.0" />
6
6
  <meta charset="utf-8" />
7
7
  <meta
8
8
  name="viewport"
@@ -12,7 +12,7 @@
12
12
  <link rel="manifest" href="./manifest.json" />
13
13
  <link rel="icon" href="./favicon-cc-app.svg" />
14
14
  <title>Deephaven Embedded Widget</title>
15
- <script type="module" crossorigin src="./assets/index-deb6051c.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-7d530b2c.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/helpers-de833af9.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-1568bc3d.js">
18
18
  <link rel="stylesheet" href="./assets/vendor-f824f69f.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/embed-widget",
3
- "version": "0.80.1",
3
+ "version": "0.81.0",
4
4
  "description": "Deephaven Embedded Widget",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -16,18 +16,18 @@
16
16
  "build"
17
17
  ],
18
18
  "dependencies": {
19
- "@deephaven/app-utils": "^0.80.1",
20
- "@deephaven/components": "^0.80.1",
21
- "@deephaven/dashboard": "^0.80.1",
22
- "@deephaven/dashboard-core-plugins": "^0.80.1",
23
- "@deephaven/jsapi-bootstrap": "^0.80.1",
24
- "@deephaven/jsapi-components": "^0.80.1",
19
+ "@deephaven/app-utils": "^0.81.0",
20
+ "@deephaven/components": "^0.81.0",
21
+ "@deephaven/dashboard": "^0.81.0",
22
+ "@deephaven/dashboard-core-plugins": "^0.81.0",
23
+ "@deephaven/jsapi-bootstrap": "^0.81.0",
24
+ "@deephaven/jsapi-components": "^0.81.0",
25
25
  "@deephaven/jsapi-types": "1.0.0-dev0.34.0",
26
- "@deephaven/jsapi-utils": "^0.80.0",
27
- "@deephaven/log": "^0.80.0",
28
- "@deephaven/plugin": "^0.80.1",
29
- "@deephaven/redux": "^0.80.1",
30
- "@deephaven/utils": "^0.80.0",
26
+ "@deephaven/jsapi-utils": "^0.81.0",
27
+ "@deephaven/log": "^0.81.0",
28
+ "@deephaven/plugin": "^0.81.0",
29
+ "@deephaven/redux": "^0.81.0",
30
+ "@deephaven/utils": "^0.81.0",
31
31
  "@fontsource/fira-mono": "5.0.13",
32
32
  "@fontsource/fira-sans": "5.0.20",
33
33
  "nanoid": "5.0.7",
@@ -42,13 +42,13 @@
42
42
  "preview": "vite preview"
43
43
  },
44
44
  "devDependencies": {
45
- "@deephaven/eslint-config": "^0.80.0",
46
- "@deephaven/mocks": "^0.80.0",
47
- "@deephaven/prettier-config": "^0.80.0",
48
- "@deephaven/stylelint-config": "^0.80.0"
45
+ "@deephaven/eslint-config": "^0.81.0",
46
+ "@deephaven/mocks": "^0.81.0",
47
+ "@deephaven/prettier-config": "^0.81.0",
48
+ "@deephaven/stylelint-config": "^0.81.0"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
- "gitHead": "496a0d0f21357b7562a4ac60aae1b0d2dbe468c9"
53
+ "gitHead": "879ab48480d0f7a845fdec6fa7cad8910381cc95"
54
54
  }
@@ -1,2 +0,0 @@
1
- import{c as o}from"./Plotly-edeb441c.js";import{P as t}from"./plotly-ce3c7663.js";import"./helpers-de833af9.js";import"./vendor-1568bc3d.js";const a=o(t);export{a as default};
2
- //# sourceMappingURL=Plot-caca304e.js.map