@deephaven/code-studio 0.49.2-theme-plugins.29 → 0.49.2-theme-plugins.31

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 (23) hide show
  1. package/build/assets/AppRoot-b52c8cb1.js +6 -0
  2. package/build/assets/AppRoot-b52c8cb1.js.map +1 -0
  3. package/build/assets/{ControlType-08063cec.js → ControlType-12cdacaa.js} +11 -11
  4. package/build/assets/{ControlType-08063cec.js.map → ControlType-12cdacaa.js.map} +1 -1
  5. package/build/assets/{index-c3984f63.js → index-15caef48.js} +2 -2
  6. package/build/assets/{index-c3984f63.js.map → index-15caef48.js.map} +1 -1
  7. package/build/assets/{index-00aa0fe7.css → index-3995e2cc.css} +1 -1
  8. package/build/assets/index-71ce236d.js +2 -0
  9. package/build/assets/{index-3af85a43.js.map → index-71ce236d.js.map} +1 -1
  10. package/build/assets/{index-ad025c56.js → index-cf9a7865.js} +2 -2
  11. package/build/assets/{index-ad025c56.js.map → index-cf9a7865.js.map} +1 -1
  12. package/build/assets/{useConnection-1c0d3afd.js → useConnection-c8520674.js} +4 -4
  13. package/build/assets/{useConnection-1c0d3afd.js.map → useConnection-c8520674.js.map} +1 -1
  14. package/build/assets/useLoadTablePlugin-1460e09d.js +2 -0
  15. package/build/assets/{useLoadTablePlugin-7af882f4.js.map → useLoadTablePlugin-1460e09d.js.map} +1 -1
  16. package/build/assets/{useUser-45fd85fb.js → useUser-28e26b4e.js} +2 -2
  17. package/build/assets/{useUser-45fd85fb.js.map → useUser-28e26b4e.js.map} +1 -1
  18. package/build/index.html +2 -2
  19. package/package.json +31 -31
  20. package/build/assets/AppRoot-29c1585f.js +0 -6
  21. package/build/assets/AppRoot-29c1585f.js.map +0 -1
  22. package/build/assets/index-3af85a43.js +0 -2
  23. package/build/assets/useLoadTablePlugin-7af882f4.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{r as n}from"./vendor-c6a8042a.js";import{A as o,aK as i,aL as s}from"./useConnection-c8520674.js";import{L as t}from"./index-cf9a7865.js";var g=t.module("@deephaven/app-utils/useTablePlugin");function c(){var a=o(),u=n.useCallback(e=>{var r=a.get(e);if(r!=null){if(i(r))return r.component;if(s(r))return r.TablePlugin}var l="Unable to find table plugin ".concat(e,".");throw g.error(l),new Error(l)},[a]);return u}export{c as u};
2
+ //# sourceMappingURL=useLoadTablePlugin-1460e09d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadTablePlugin-7af882f4.js","sources":["../../../app-utils/dist/components/useLoadTablePlugin.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { isTablePlugin, isLegacyTablePlugin } from '@deephaven/plugin';\nimport Log from '@deephaven/log';\nimport usePlugins from \"./usePlugins.js\";\nvar log = Log.module('@deephaven/app-utils/useTablePlugin');\n\n/**\n * Creates a table plugin loader function.\n * @returns A function to load a Table plugin element by name\n */\nexport function useLoadTablePlugin() {\n var plugins = usePlugins();\n var plugin = useCallback(name => {\n // First check if we have any plugin modules loaded that match the TablePlugin.\n var pluginModule = plugins.get(name);\n if (pluginModule != null) {\n if (isTablePlugin(pluginModule)) {\n return pluginModule.component;\n }\n if (isLegacyTablePlugin(pluginModule)) {\n return pluginModule.TablePlugin;\n }\n }\n var errorMessage = \"Unable to find table plugin \".concat(name, \".\");\n log.error(errorMessage);\n throw new Error(errorMessage);\n }, [plugins]);\n return plugin;\n}\nexport default useLoadTablePlugin;\n//# sourceMappingURL=useLoadTablePlugin.js.map"],"names":["log","Log","useLoadTablePlugin","plugins","usePlugins","plugin","useCallback","name","pluginModule","isTablePlugin","isLegacyTablePlugin","errorMessage"],"mappings":"iJAIA,IAAIA,EAAMC,EAAI,OAAO,qCAAqC,EAMnD,SAASC,GAAqB,CACnC,IAAIC,EAAUC,IACVC,EAASC,EAAW,YAACC,GAAQ,CAE/B,IAAIC,EAAeL,EAAQ,IAAII,CAAI,EACnC,GAAIC,GAAgB,KAAM,CACxB,GAAIC,EAAcD,CAAY,EAC5B,OAAOA,EAAa,UAEtB,GAAIE,EAAoBF,CAAY,EAClC,OAAOA,EAAa,YAGxB,IAAIG,EAAe,+BAA+B,OAAOJ,EAAM,GAAG,EAClE,MAAAP,EAAI,MAAMW,CAAY,EAChB,IAAI,MAAMA,CAAY,CAChC,EAAK,CAACR,CAAO,CAAC,EACZ,OAAOE,CACT"}
1
+ {"version":3,"file":"useLoadTablePlugin-1460e09d.js","sources":["../../../app-utils/dist/components/useLoadTablePlugin.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { isTablePlugin, isLegacyTablePlugin } from '@deephaven/plugin';\nimport Log from '@deephaven/log';\nimport usePlugins from \"./usePlugins.js\";\nvar log = Log.module('@deephaven/app-utils/useTablePlugin');\n\n/**\n * Creates a table plugin loader function.\n * @returns A function to load a Table plugin element by name\n */\nexport function useLoadTablePlugin() {\n var plugins = usePlugins();\n var plugin = useCallback(name => {\n // First check if we have any plugin modules loaded that match the TablePlugin.\n var pluginModule = plugins.get(name);\n if (pluginModule != null) {\n if (isTablePlugin(pluginModule)) {\n return pluginModule.component;\n }\n if (isLegacyTablePlugin(pluginModule)) {\n return pluginModule.TablePlugin;\n }\n }\n var errorMessage = \"Unable to find table plugin \".concat(name, \".\");\n log.error(errorMessage);\n throw new Error(errorMessage);\n }, [plugins]);\n return plugin;\n}\nexport default useLoadTablePlugin;\n//# sourceMappingURL=useLoadTablePlugin.js.map"],"names":["log","Log","useLoadTablePlugin","plugins","usePlugins","plugin","useCallback","name","pluginModule","isTablePlugin","isLegacyTablePlugin","errorMessage"],"mappings":"iJAIA,IAAIA,EAAMC,EAAI,OAAO,qCAAqC,EAMnD,SAASC,GAAqB,CACnC,IAAIC,EAAUC,IACVC,EAASC,EAAW,YAACC,GAAQ,CAE/B,IAAIC,EAAeL,EAAQ,IAAII,CAAI,EACnC,GAAIC,GAAgB,KAAM,CACxB,GAAIC,EAAcD,CAAY,EAC5B,OAAOA,EAAa,UAEtB,GAAIE,EAAoBF,CAAY,EAClC,OAAOA,EAAa,YAGxB,IAAIG,EAAe,+BAA+B,OAAOJ,EAAM,GAAG,EAClE,MAAAP,EAAI,MAAMW,CAAY,EAChB,IAAI,MAAMA,CAAY,CAChC,EAAK,CAACR,CAAO,CAAC,EACZ,OAAOE,CACT"}
@@ -1,2 +1,2 @@
1
- import{r as l,C as c}from"./vendor-c6a8042a.js";import{G as m}from"./index-ad025c56.js";import{x as h,V as y,ab as p,Z as w}from"./useConnection-1c0d3afd.js";function g(i,u,a,n,s,r,t){try{var e=i[r](t),o=e.value}catch(f){a(f);return}e.done?u(o):Promise.resolve(o).then(n,s)}function E(i){return function(){var u=this,a=arguments;return new Promise(function(n,s){var r=i.apply(u,a);function t(o){g(r,n,s,t,e,"next",o)}function e(o){g(r,n,s,t,e,"throw",o)}t(void 0)})}}var C=l.createContext(null);function _(i){var{children:u}=i,a=h(),[n,s]=l.useState(),[r,t]=l.useState();l.useEffect(function(){var f=!1;function d(){return v.apply(this,arguments)}function v(){return v=E(function*(){try{var x=yield a.getServerConfigValues();f||s(new Map(x))}catch(S){f||t(S)}}),v.apply(this,arguments)}return d(),()=>{f=!0}},[a]);var e=n==null;return e||r!=null?c.jsx(m,{isLoading:e&&r==null,errorMessage:y(r)}):c.jsx(C.Provider,{value:n,children:u})}function b(){return p(C,"No server config available in useServerConfig. Was code wrapped in ServerConfigBootstrap or ServerConfigContext.Provider?")}function B(){return p(w,"No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?")}export{_ as S,B as a,b as u};
2
- //# sourceMappingURL=useUser-45fd85fb.js.map
1
+ import{r as l,C as c}from"./vendor-c6a8042a.js";import{G as m}from"./index-cf9a7865.js";import{y as h,W as y,ac as p,_ as w}from"./useConnection-c8520674.js";function g(i,u,a,n,s,r,t){try{var e=i[r](t),o=e.value}catch(f){a(f);return}e.done?u(o):Promise.resolve(o).then(n,s)}function E(i){return function(){var u=this,a=arguments;return new Promise(function(n,s){var r=i.apply(u,a);function t(o){g(r,n,s,t,e,"next",o)}function e(o){g(r,n,s,t,e,"throw",o)}t(void 0)})}}var C=l.createContext(null);function V(i){var{children:u}=i,a=h(),[n,s]=l.useState(),[r,t]=l.useState();l.useEffect(function(){var f=!1;function d(){return v.apply(this,arguments)}function v(){return v=E(function*(){try{var S=yield a.getServerConfigValues();f||s(new Map(S))}catch(x){f||t(x)}}),v.apply(this,arguments)}return d(),()=>{f=!0}},[a]);var e=n==null;return e||r!=null?c.jsx(m,{isLoading:e&&r==null,errorMessage:y(r)}):c.jsx(C.Provider,{value:n,children:u})}function B(){return p(C,"No server config available in useServerConfig. Was code wrapped in ServerConfigBootstrap or ServerConfigContext.Provider?")}function G(){return p(w,"No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?")}export{V as S,G as a,B as u};
2
+ //# sourceMappingURL=useUser-28e26b4e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUser-45fd85fb.js","sources":["../../../app-utils/dist/components/ServerConfigBootstrap.js","../../../app-utils/dist/components/useServerConfig.js","../../../app-utils/dist/components/useUser.js"],"sourcesContent":["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); }); }; }\nimport React, { createContext, useEffect, useState } from 'react';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var ServerConfigContext = /*#__PURE__*/createContext(null);\n/**\n * ServerConfigBootstrap component. Handles loading the server config.\n */\nexport function ServerConfigBootstrap(_ref) {\n var {\n children\n } = _ref;\n var client = useClient();\n var [serverConfig, setServerConfig] = useState();\n var [error, setError] = useState();\n useEffect(function initServerConfigValues() {\n var isCanceled = false;\n function loadServerConfigValues() {\n return _loadServerConfigValues.apply(this, arguments);\n }\n function _loadServerConfigValues() {\n _loadServerConfigValues = _asyncToGenerator(function* () {\n try {\n var newServerConfigValues = yield client.getServerConfigValues();\n if (!isCanceled) {\n setServerConfig(new Map(newServerConfigValues));\n }\n } catch (e) {\n if (!isCanceled) {\n setError(e);\n }\n }\n });\n return _loadServerConfigValues.apply(this, arguments);\n }\n loadServerConfigValues();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var isLoading = serverConfig == null;\n if (isLoading || error != null) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoading: isLoading && error == null,\n errorMessage: getErrorMessage(error)\n });\n }\n return /*#__PURE__*/_jsx(ServerConfigContext.Provider, {\n value: serverConfig,\n children: children\n });\n}\nexport default ServerConfigBootstrap;\n//# sourceMappingURL=ServerConfigBootstrap.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { ServerConfigContext } from \"./ServerConfigBootstrap.js\";\nexport function useServerConfig() {\n return useContextOrThrow(ServerConfigContext, 'No server config available in useServerConfig. Was code wrapped in ServerConfigBootstrap or ServerConfigContext.Provider?');\n}\nexport default useServerConfig;\n//# sourceMappingURL=useServerConfig.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":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","ServerConfigContext","createContext","ServerConfigBootstrap","_ref","children","client","useClient","serverConfig","setServerConfig","useState","setError","useEffect","isCanceled","loadServerConfigValues","_loadServerConfigValues","newServerConfigValues","e","isLoading","_jsx","LoadingOverlay","getErrorMessage","useServerConfig","useContextOrThrow","useUser","UserContext"],"mappings":"8JAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,EAAK,CAAE,GAAI,CAAE,IAAIC,EAAOP,EAAIK,CAAG,EAAEC,CAAG,EAAOE,EAAQD,EAAK,YAAgBE,EAAP,CAAgBP,EAAOO,CAAK,EAAG,MAAS,CAAKF,EAAK,KAAQN,EAAQO,CAAK,EAAY,QAAQ,QAAQA,CAAK,EAAE,KAAKL,EAAOC,CAAM,CAAM,CACzQ,SAASM,EAAkBC,EAAI,CAAE,OAAO,UAAY,CAAE,IAAIC,EAAO,KAAMC,EAAO,UAAW,OAAO,IAAI,QAAQ,SAAUZ,EAASC,EAAQ,CAAE,IAAIF,EAAMW,EAAG,MAAMC,EAAMC,CAAI,EAAG,SAASV,EAAMK,EAAO,CAAET,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,CAAK,CAAI,CAAC,SAASJ,EAAOU,EAAK,CAAEf,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASU,CAAG,EAAKX,EAAM,MAAS,EAAI,CAAI,CAAG,CAM9X,IAAIY,EAAmCC,EAAAA,cAAc,IAAI,EAIzD,SAASC,EAAsBC,EAAM,CAC1C,GAAI,CACF,SAAAC,CACD,EAAGD,EACAE,EAASC,IACT,CAACC,EAAcC,CAAe,EAAIC,EAAQ,SAAA,EAC1C,CAACf,EAAOgB,CAAQ,EAAID,EAAQ,SAAA,EAChCE,EAAS,UAAC,UAAkC,CAC1C,IAAIC,EAAa,GACjB,SAASC,GAAyB,CAChC,OAAOC,EAAwB,MAAM,KAAM,SAAS,CACrD,CACD,SAASA,GAA0B,CACjC,OAAAA,EAA0BnB,EAAkB,WAAa,CACvD,GAAI,CACF,IAAIoB,EAAwB,MAAMV,EAAO,wBACpCO,GACHJ,EAAgB,IAAI,IAAIO,CAAqB,CAAC,CAEjD,OAAQC,EAAP,CACKJ,GACHF,EAASM,CAAC,CAEb,CACT,CAAO,EACMF,EAAwB,MAAM,KAAM,SAAS,CACrD,CACD,OAAAD,IACO,IAAM,CACXD,EAAa,EACnB,CACA,EAAK,CAACP,CAAM,CAAC,EACX,IAAIY,EAAYV,GAAgB,KAChC,OAAIU,GAAavB,GAAS,KACJwB,EAAAA,IAAKC,EAAgB,CACvC,UAAWF,GAAavB,GAAS,KACjC,aAAc0B,EAAgB1B,CAAK,CACzC,CAAK,EAEiBwB,EAAI,IAAClB,EAAoB,SAAU,CACrD,MAAOO,EACP,SAAUH,CACd,CAAG,CACH,CCpDO,SAASiB,GAAkB,CAChC,OAAOC,EAAkBtB,EAAqB,2HAA2H,CAC3K,CCFO,SAASuB,GAAU,CACxB,OAAOD,EAAkBE,EAAa,0FAA0F,CAClI"}
1
+ {"version":3,"file":"useUser-28e26b4e.js","sources":["../../../app-utils/dist/components/ServerConfigBootstrap.js","../../../app-utils/dist/components/useServerConfig.js","../../../app-utils/dist/components/useUser.js"],"sourcesContent":["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); }); }; }\nimport React, { createContext, useEffect, useState } from 'react';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var ServerConfigContext = /*#__PURE__*/createContext(null);\n/**\n * ServerConfigBootstrap component. Handles loading the server config.\n */\nexport function ServerConfigBootstrap(_ref) {\n var {\n children\n } = _ref;\n var client = useClient();\n var [serverConfig, setServerConfig] = useState();\n var [error, setError] = useState();\n useEffect(function initServerConfigValues() {\n var isCanceled = false;\n function loadServerConfigValues() {\n return _loadServerConfigValues.apply(this, arguments);\n }\n function _loadServerConfigValues() {\n _loadServerConfigValues = _asyncToGenerator(function* () {\n try {\n var newServerConfigValues = yield client.getServerConfigValues();\n if (!isCanceled) {\n setServerConfig(new Map(newServerConfigValues));\n }\n } catch (e) {\n if (!isCanceled) {\n setError(e);\n }\n }\n });\n return _loadServerConfigValues.apply(this, arguments);\n }\n loadServerConfigValues();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var isLoading = serverConfig == null;\n if (isLoading || error != null) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoading: isLoading && error == null,\n errorMessage: getErrorMessage(error)\n });\n }\n return /*#__PURE__*/_jsx(ServerConfigContext.Provider, {\n value: serverConfig,\n children: children\n });\n}\nexport default ServerConfigBootstrap;\n//# sourceMappingURL=ServerConfigBootstrap.js.map","import { useContextOrThrow } from '@deephaven/react-hooks';\nimport { ServerConfigContext } from \"./ServerConfigBootstrap.js\";\nexport function useServerConfig() {\n return useContextOrThrow(ServerConfigContext, 'No server config available in useServerConfig. Was code wrapped in ServerConfigBootstrap or ServerConfigContext.Provider?');\n}\nexport default useServerConfig;\n//# sourceMappingURL=useServerConfig.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":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","ServerConfigContext","createContext","ServerConfigBootstrap","_ref","children","client","useClient","serverConfig","setServerConfig","useState","setError","useEffect","isCanceled","loadServerConfigValues","_loadServerConfigValues","newServerConfigValues","e","isLoading","_jsx","LoadingOverlay","getErrorMessage","useServerConfig","useContextOrThrow","useUser","UserContext"],"mappings":"8JAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,EAAK,CAAE,GAAI,CAAE,IAAIC,EAAOP,EAAIK,CAAG,EAAEC,CAAG,EAAOE,EAAQD,EAAK,YAAgBE,EAAP,CAAgBP,EAAOO,CAAK,EAAG,MAAS,CAAKF,EAAK,KAAQN,EAAQO,CAAK,EAAY,QAAQ,QAAQA,CAAK,EAAE,KAAKL,EAAOC,CAAM,CAAM,CACzQ,SAASM,EAAkBC,EAAI,CAAE,OAAO,UAAY,CAAE,IAAIC,EAAO,KAAMC,EAAO,UAAW,OAAO,IAAI,QAAQ,SAAUZ,EAASC,EAAQ,CAAE,IAAIF,EAAMW,EAAG,MAAMC,EAAMC,CAAI,EAAG,SAASV,EAAMK,EAAO,CAAET,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,CAAK,CAAI,CAAC,SAASJ,EAAOU,EAAK,CAAEf,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASU,CAAG,EAAKX,EAAM,MAAS,EAAI,CAAI,CAAG,CAM9X,IAAIY,EAAmCC,EAAAA,cAAc,IAAI,EAIzD,SAASC,EAAsBC,EAAM,CAC1C,GAAI,CACF,SAAAC,CACD,EAAGD,EACAE,EAASC,IACT,CAACC,EAAcC,CAAe,EAAIC,EAAQ,SAAA,EAC1C,CAACf,EAAOgB,CAAQ,EAAID,EAAQ,SAAA,EAChCE,EAAS,UAAC,UAAkC,CAC1C,IAAIC,EAAa,GACjB,SAASC,GAAyB,CAChC,OAAOC,EAAwB,MAAM,KAAM,SAAS,CACrD,CACD,SAASA,GAA0B,CACjC,OAAAA,EAA0BnB,EAAkB,WAAa,CACvD,GAAI,CACF,IAAIoB,EAAwB,MAAMV,EAAO,wBACpCO,GACHJ,EAAgB,IAAI,IAAIO,CAAqB,CAAC,CAEjD,OAAQC,EAAP,CACKJ,GACHF,EAASM,CAAC,CAEb,CACT,CAAO,EACMF,EAAwB,MAAM,KAAM,SAAS,CACrD,CACD,OAAAD,IACO,IAAM,CACXD,EAAa,EACnB,CACA,EAAK,CAACP,CAAM,CAAC,EACX,IAAIY,EAAYV,GAAgB,KAChC,OAAIU,GAAavB,GAAS,KACJwB,EAAAA,IAAKC,EAAgB,CACvC,UAAWF,GAAavB,GAAS,KACjC,aAAc0B,EAAgB1B,CAAK,CACzC,CAAK,EAEiBwB,EAAI,IAAClB,EAAoB,SAAU,CACrD,MAAOO,EACP,SAAUH,CACd,CAAG,CACH,CCpDO,SAASiB,GAAkB,CAChC,OAAOC,EAAkBtB,EAAqB,2HAA2H,CAC3K,CCFO,SAASuB,GAAU,CACxB,OAAOD,EAAkBE,EAAa,0FAA0F,CAClI"}
package/build/index.html CHANGED
@@ -16,13 +16,13 @@
16
16
  <link rel="manifest" href="./manifest.json" />
17
17
  <link rel="icon" href="./favicon-cc-app.svg" />
18
18
  <title>Deephaven</title>
19
- <script type="module" crossorigin src="./assets/index-ad025c56.js"></script>
19
+ <script type="module" crossorigin src="./assets/index-cf9a7865.js"></script>
20
20
  <link rel="modulepreload" crossorigin href="./assets/monaco-3857fcdf.js">
21
21
  <link rel="modulepreload" crossorigin href="./assets/helpers-042e6b4d.js">
22
22
  <link rel="modulepreload" crossorigin href="./assets/vendor-c6a8042a.js">
23
23
  <link rel="stylesheet" href="./assets/monaco-f18fde03.css">
24
24
  <link rel="stylesheet" href="./assets/vendor-fac43f8b.css">
25
- <link rel="stylesheet" href="./assets/index-00aa0fe7.css">
25
+ <link rel="stylesheet" href="./assets/index-3995e2cc.css">
26
26
  </head>
27
27
  <body>
28
28
  <noscript> You need to enable JavaScript to run this app. </noscript>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/code-studio",
3
- "version": "0.49.2-theme-plugins.29+dec7d960",
3
+ "version": "0.49.2-theme-plugins.31+7b092b4c",
4
4
  "description": "Deephaven Code Studio",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -11,31 +11,31 @@
11
11
  "directory": "packages/code-studio"
12
12
  },
13
13
  "dependencies": {
14
- "@deephaven/app-utils": "^0.49.2-theme-plugins.29+dec7d960",
15
- "@deephaven/auth-plugins": "^0.49.2-theme-plugins.29+dec7d960",
16
- "@deephaven/chart": "^0.49.2-theme-plugins.29+dec7d960",
17
- "@deephaven/components": "^0.49.2-theme-plugins.29+dec7d960",
18
- "@deephaven/console": "^0.49.2-theme-plugins.29+dec7d960",
19
- "@deephaven/dashboard": "^0.49.2-theme-plugins.29+dec7d960",
20
- "@deephaven/dashboard-core-plugins": "^0.49.2-theme-plugins.29+dec7d960",
21
- "@deephaven/file-explorer": "^0.49.2-theme-plugins.29+dec7d960",
22
- "@deephaven/filters": "^0.49.2-theme-plugins.29+dec7d960",
23
- "@deephaven/golden-layout": "^0.49.2-theme-plugins.29+dec7d960",
24
- "@deephaven/grid": "^0.49.2-theme-plugins.29+dec7d960",
25
- "@deephaven/icons": "^0.49.2-theme-plugins.29+dec7d960",
26
- "@deephaven/iris-grid": "^0.49.2-theme-plugins.29+dec7d960",
27
- "@deephaven/jsapi-bootstrap": "^0.49.2-theme-plugins.29+dec7d960",
28
- "@deephaven/jsapi-components": "^0.49.2-theme-plugins.29+dec7d960",
29
- "@deephaven/jsapi-shim": "^0.49.2-theme-plugins.29+dec7d960",
30
- "@deephaven/jsapi-types": "^0.49.2-theme-plugins.29+dec7d960",
31
- "@deephaven/jsapi-utils": "^0.49.2-theme-plugins.29+dec7d960",
32
- "@deephaven/log": "^0.49.2-theme-plugins.29+dec7d960",
33
- "@deephaven/plugin": "^0.49.2-theme-plugins.29+dec7d960",
34
- "@deephaven/pouch-storage": "^0.49.2-theme-plugins.29+dec7d960",
35
- "@deephaven/react-hooks": "^0.49.2-theme-plugins.29+dec7d960",
36
- "@deephaven/redux": "^0.49.2-theme-plugins.29+dec7d960",
37
- "@deephaven/storage": "^0.49.2-theme-plugins.29+dec7d960",
38
- "@deephaven/utils": "^0.49.2-theme-plugins.29+dec7d960",
14
+ "@deephaven/app-utils": "^0.49.2-theme-plugins.31+7b092b4c",
15
+ "@deephaven/auth-plugins": "^0.49.2-theme-plugins.31+7b092b4c",
16
+ "@deephaven/chart": "^0.49.2-theme-plugins.31+7b092b4c",
17
+ "@deephaven/components": "^0.49.2-theme-plugins.31+7b092b4c",
18
+ "@deephaven/console": "^0.49.2-theme-plugins.31+7b092b4c",
19
+ "@deephaven/dashboard": "^0.49.2-theme-plugins.31+7b092b4c",
20
+ "@deephaven/dashboard-core-plugins": "^0.49.2-theme-plugins.31+7b092b4c",
21
+ "@deephaven/file-explorer": "^0.49.2-theme-plugins.31+7b092b4c",
22
+ "@deephaven/filters": "^0.49.2-theme-plugins.31+7b092b4c",
23
+ "@deephaven/golden-layout": "^0.49.2-theme-plugins.31+7b092b4c",
24
+ "@deephaven/grid": "^0.49.2-theme-plugins.31+7b092b4c",
25
+ "@deephaven/icons": "^0.49.2-theme-plugins.31+7b092b4c",
26
+ "@deephaven/iris-grid": "^0.49.2-theme-plugins.31+7b092b4c",
27
+ "@deephaven/jsapi-bootstrap": "^0.49.2-theme-plugins.31+7b092b4c",
28
+ "@deephaven/jsapi-components": "^0.49.2-theme-plugins.31+7b092b4c",
29
+ "@deephaven/jsapi-shim": "^0.49.2-theme-plugins.31+7b092b4c",
30
+ "@deephaven/jsapi-types": "^0.49.2-theme-plugins.31+7b092b4c",
31
+ "@deephaven/jsapi-utils": "^0.49.2-theme-plugins.31+7b092b4c",
32
+ "@deephaven/log": "^0.49.2-theme-plugins.31+7b092b4c",
33
+ "@deephaven/plugin": "^0.49.2-theme-plugins.31+7b092b4c",
34
+ "@deephaven/pouch-storage": "^0.49.2-theme-plugins.31+7b092b4c",
35
+ "@deephaven/react-hooks": "^0.49.2-theme-plugins.31+7b092b4c",
36
+ "@deephaven/redux": "^0.49.2-theme-plugins.31+7b092b4c",
37
+ "@deephaven/storage": "^0.49.2-theme-plugins.31+7b092b4c",
38
+ "@deephaven/utils": "^0.49.2-theme-plugins.31+7b092b4c",
39
39
  "@fortawesome/fontawesome-svg-core": "^6.2.1",
40
40
  "@fortawesome/react-fontawesome": "^0.2.0",
41
41
  "classnames": "^2.3.1",
@@ -72,14 +72,14 @@
72
72
  "update-licenses": "npm-license > licenses.txt"
73
73
  },
74
74
  "devDependencies": {
75
- "@deephaven/eslint-config": "^0.49.2-theme-plugins.29+dec7d960",
76
- "@deephaven/mocks": "^0.49.2-theme-plugins.29+dec7d960",
77
- "@deephaven/prettier-config": "^0.49.2-theme-plugins.29+dec7d960",
78
- "@deephaven/stylelint-config": "^0.49.2-theme-plugins.29+dec7d960",
75
+ "@deephaven/eslint-config": "^0.49.2-theme-plugins.31+7b092b4c",
76
+ "@deephaven/mocks": "^0.49.2-theme-plugins.31+7b092b4c",
77
+ "@deephaven/prettier-config": "^0.49.2-theme-plugins.31+7b092b4c",
78
+ "@deephaven/stylelint-config": "^0.49.2-theme-plugins.31+7b092b4c",
79
79
  "autoprefixer": "^10.4.8"
80
80
  },
81
81
  "publishConfig": {
82
82
  "access": "public"
83
83
  },
84
- "gitHead": "dec7d960df0ebffe5b4da380c0aa68f692df0514"
84
+ "gitHead": "7b092b4c9b037c6ff8eb97c96be9cbb413abfed4"
85
85
  }
@@ -1,6 +0,0 @@
1
- import{r as m,I as bt,C as a,P as vt,J as en,K as De,H as te,L as Ce,F as E,M as ne,N as b,G as x,O as yt,D as St,T as tn,Q as nn,S as sn,U as an,V as on,W as Ke,X as rn,Y as ln}from"./vendor-c6a8042a.js";import{W as cn}from"./monaco-3857fcdf.js";import{L as dn,a as hn,D as un,P as mn,b as pn,s as xe,g as Ct,c as Tt,d as wt,e as Ft,f as Dt,h as xt,i as Et,j as Rt,k as Nt,l as Ee,m as fn,n as jt,C as V,T as de,I as Ot,r as gn,o as bn,O as vn,p as Ve,q as Ge,t as Be,F as Ze,u as It,v as yn,w as Sn,x as Cn,y as Tn,z as wn,A as Fn,B as He,E as Dn,G as Lt,H as ze,N as xn,J as oe,M as En,K as U,Q as Rn,R as Nn,S as H,U as jn,V as On,W as In,X as Ln,Y as Pn,Z as kn,_ as An,$ as Mn,a0 as _n,a1 as Un,a2 as $n,a3 as Wn,a4 as Kn,a5 as Vn,a6 as Gn}from"./ControlType-08063cec.js";import{L as k,v as z,a as Bn,M as Zn,b as Hn,c as zn,d as Yn,l as qn,e as Jn,f as Xn,T as le,g as Qn,h as es,i as ts,j as ns,k as ss,m as as,n as os,o as rs,p as is,q as ls,r as cs,s as ds,t as hs,u as us,w as Ye,x as qe,y as Je,z as ms,A as ps,B as fs,C as gs,D as bs,E as Xe,F as vs,G as ys}from"./index-ad025c56.js";import{O as he,P as W,T as A,I as O,D as I,a as L,u as Pt,F as Ss,b as R,c as Cs,B as T,C as fe,d as Ts,S as M,e as Re,f as kt,K as ws,g as Qe,h as Fs,m as Ds,i as xs,j as Es,G as Te,k as Rs,l as Ns,n as js,o as Os,p as Is,q as Ls,r as Ps,s as ks,t as et,v as As,w as Ms,x as _s,y as Us,z as $s,A as Ws,E as Ks}from"./useConnection-1c0d3afd.js";import{u as Vs,a as Gs}from"./useUser-45fd85fb.js";import"./helpers-042e6b4d.js";import"./plotly-e8f43474.js";function tt(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),t.push.apply(t,n)}return t}function Bs(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?tt(Object(t),!0).forEach(function(n){Zs(s,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):tt(Object(t)).forEach(function(n){Object.defineProperty(s,n,Object.getOwnPropertyDescriptor(t,n))})}return s}function Zs(s,e,t){return e=Hs(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function Hs(s){var e=zs(s,"string");return typeof e=="symbol"?e:String(e)}function zs(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var n=t.call(s,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var Ys=100,ge=()=>{},qs=Object.freeze({});function Js(s){var{id:e="default",children:t,emptyDashboard:n,layoutConfig:o,layoutSettings:r=qs,onLayoutConfigChange:i=ge,onGoldenLayoutChange:l=ge,onLayoutInitialized:c=ge,fallbackComponent:d=mn,hydrate:u,dehydrate:h,panelWrapper:f}=s,v=m.useRef(null),[y,D]=m.useState(!1),[w,S]=m.useState();m.useEffect(function(){if(!v.current){S(void 0);return}var p=Bs({},dn.makeDefaultLayout());p.settings===void 0&&(p.settings={}),Object.assign(p.settings,r),p.content=[];var g=new hn(p,v.current),se=()=>{g.off("initialised",se),D(!0)};return g.on("initialised",se),d!=null&&g.setFallbackComponent(d),g.init(),S(g),l(g),()=>{g.destroy()}},[r,d,l,D,S]);var N=m.useMemo(()=>bt(()=>{w!=null&&w.isInitialised&&w?.updateSize()},Ys),[w]);return m.useEffect(function(){return window.addEventListener("resize",N),()=>{window.removeEventListener("resize",N)}},[N]),a.jsxs("div",{className:"dashboard-container w-100 h-100",children:[a.jsx("div",{className:"w-100 h-100",ref:v}),y&&w&&a.jsx(un,{emptyDashboard:n,id:e,layout:w,layoutConfig:o,onLayoutChange:i,onLayoutInitialized:c,hydrate:u,dehydrate:h,panelWrapper:f,children:t})]})}class nt{static makeSortConfig(e,t){return{column:e,direction:t}}static makeFilterConfig(e){var t=[],n=[];return e.forEach((o,r)=>{t.push(o),r>0&&n.push(he.and)}),{filterItems:t,filterOperators:n}}static combineFilterConfigs(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:he.and;return{filterItems:[...e.filterItems,...t.filterItems],filterOperators:[...e.filterOperators,n,...t.filterOperators]}}static makeFilterItem(e,t,n){return{columnName:e,type:t,value:n}}}function Xs(s,e,t){if(s.length>e){var n=s.length-t;return{toKeep:s.slice(n),toPrune:s.slice(0,n)}}return{toKeep:s,toPrune:[]}}function st(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),t.push.apply(t,n)}return t}function at(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?st(Object(t),!0).forEach(function(n){j(s,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):st(Object(t)).forEach(function(n){Object.defineProperty(s,n,Object.getOwnPropertyDescriptor(t,n))})}return s}function ot(s,e,t,n,o,r,i){try{var l=s[r](i),c=l.value}catch(d){t(d);return}l.done?e(c):Promise.resolve(c).then(n,o)}function $(s){return function(){var e=this,t=arguments;return new Promise(function(n,o){var r=s.apply(e,t);function i(c){ot(r,n,o,i,l,"next",c)}function l(c){ot(r,n,o,i,l,"throw",c)}i(void 0)})}}function j(s,e,t){return e=Qs(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function Qs(s){var e=ea(s,"string");return typeof e=="symbol"?e:String(e)}function ea(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var n=t.call(s,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var be=k.module("PouchStorageTable"),ta="Deephaven.";vt.plugin(en);function na(s,e){switch(s){case A.in:case A.contains:return{$regex:new RegExp("".concat(e))};case A.inIgnoreCase:return{$regex:new RegExp("".concat(e),"i")};case A.eq:return{$eq:e};case A.notEq:return{$neq:e};case A.greaterThan:return{$gt:e};case A.greaterThanOrEqualTo:return{$gte:e};case A.lessThan:return{$lt:e};case A.lessThanOrEqualTo:return{$lte:e};case A.startsWith:return{$regex:new RegExp("^(?".concat(e,").*"))};default:throw new Error("Unsupported type: ".concat(s))}}function sa(s){for(var{filterItems:e,filterOperators:t}=s,n=null,o=0;o<e.length;o+=1){var r=e[o],{columnName:i,type:l,value:c}=r,d={[i]:na(l,c)};if(o===0)n=d;else if(n!==null&&o-1<t.length){var u=t[o-1];if(u===he.and)n={$and:[n,d]};else if(u===he.or)n={$or:[n,d]};else throw new Error("Unexpected filter operator ".concat(u,", ").concat(d))}}if(n==null)throw new Error("Invalid filter config ".concat(s));return n}function ve(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return{$and:[...s.map(e=>sa(e)),{name:{$gt:null}},{id:{$gt:null}}]}}function aa(s){var e,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return[{id:t?"desc":"asc"},...(e=s?.map(n=>({[n.column]:n.direction})))!==null&&e!==void 0?e:[]]}class oa{constructor(e,t){j(this,"db",void 0),j(this,"changes",void 0),j(this,"listeners",[]),j(this,"itemListeners",new Map),j(this,"currentSize",0),j(this,"currentViewport",void 0),j(this,"currentReverse",!1),j(this,"currentFilter",null),j(this,"currentSort",null),j(this,"infoUpdatePromise",void 0),j(this,"viewportUpdatePromise",void 0),j(this,"currentViewportData",void 0),this.db=new vt("".concat(ta).concat(e),t),this.db._remote=!1,this.listenForChanges(),this.db.createIndex({index:{fields:["id","name"]}}),this.refreshInfo()}listenForChanges(){this.changes=this.db.changes({live:!0,since:"now",include_docs:!0}).on("change",this.dbUpdate.bind(this))}onUpdate(e){return this.listeners=[...this.listeners,e],()=>{this.listeners=this.listeners.filter(t=>t!==e)}}onItemUpdate(e,t){return this.itemListeners.has(e)||this.itemListeners.set(e,[]),this.itemListeners.set(e,[...this.itemListeners.get(e),t]),this.refreshItem(e),()=>{this.itemListeners.set(e,this.itemListeners.get(e).filter(n=>n!==t))}}close(){this.listeners=[]}get size(){return this.currentSize}get viewport(){return this.currentViewport}setReversed(e){this.currentReverse=e,this.currentViewportData=void 0,this.refreshData()}setViewport(e){this.currentViewport=e,this.refreshInfo(),this.refreshData()}setSorts(e){this.currentSort=e,this.currentViewportData=void 0,this.refreshData()}setFilters(e){this.currentFilter=e,this.currentViewportData=void 0,this.refreshInfo(),this.refreshData()}get data(){return this.currentViewportData}getViewportData(){var e=this;return $(function*(){var t;return e.viewportUpdatePromise||e.refreshData(),(t=e.viewportUpdatePromise)!==null&&t!==void 0?t:Promise.resolve({items:[],offset:0})})()}put(e){var t=this;return $(function*(){var n=at(at({},e),{},{_id:e.id});return yield t.db.put(n),n})()}sendUpdate(){for(var e,{listeners:t}=this,n=(e=this.currentViewportData)!==null&&e!==void 0?e:{items:[],offset:0},o=0;o<t.length;o+=1)t[o](n)}sendItemUpdate(e){var t=this.itemListeners.get(e.id);if(t!==void 0)for(var n=0;n<t.length;n+=1)t[n](e)}dbUpdate(e){be.debug("Update received",e),this.refreshInfo(),e.doc!==void 0&&this.sendItemUpdate(e.doc),this.refreshData()}fetchInfo(e){var t=this;return $(function*(){return t.db.find({selector:e,fields:[]})})()}refreshInfo(){var e=this;return $(function*(){try{var t,n;(t=e.infoUpdatePromise)===null||t===void 0||t.cancel(),e.infoUpdatePromise=W.makeCancelable(e.fetchInfo(ve((n=e.currentFilter)!==null&&n!==void 0?n:[])));var o=yield e.infoUpdatePromise;e.currentSize=o.docs.length,e.sendUpdate()}catch(r){if(!W.isCanceled(r))throw be.error("Unable to refreshInfo",r),r}})()}fetchViewportData(e,t,n){var o=this;return $(function*(){return o.db.find({selector:t,skip:e.top,limit:e.bottom-e.top+1,sort:n,fields:["id","name"]}).then(r=>({items:r.docs,offset:e.top}))})()}refreshData(){var e=this;return $(function*(){if(e.currentViewport)try{var t,n,o=ve((t=e.currentFilter)!==null&&t!==void 0?t:[]),r=aa(e.currentSort,e.currentReverse);(n=e.viewportUpdatePromise)===null||n===void 0||n.cancel(),e.viewportUpdatePromise=W.makeCancelable(e.fetchViewportData(e.currentViewport,o,r));var i=yield e.viewportUpdatePromise;return e.currentViewportData=i,e.sendUpdate(),i}catch(l){if(!W.isCanceled(l))throw be.error("Unable to refreshData",l),l}})()}refreshItem(e){var t=this;return $(function*(){var n=yield t.db.find({selector:{id:e},limit:1}),o=n.docs[0];return o!==void 0&&t.sendItemUpdate(o),o})()}getSnapshot(e){var t=this;return $(function*(){var n=new Map,o=[{id:t.currentReverse?"desc":"asc"}];return yield Promise.all(e.map(function(){var r=$(function*(i){var l,[c,d]=i,u=d-c+1;return t.db.find({selector:ve((l=t.currentFilter)!==null&&l!==void 0?l:[]),skip:c,limit:u,sort:o,fields:["id","name"]}).then(h=>{for(var f=0;f<u;f+=1){var v=c+f;n.set(v,h.docs[f])}})});return function(i){return r.apply(this,arguments)}}())),n})()}}const ra=oa;function rt(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),t.push.apply(t,n)}return t}function re(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?rt(Object(t),!0).forEach(function(n){At(s,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):rt(Object(t)).forEach(function(n){Object.defineProperty(s,n,Object.getOwnPropertyDescriptor(t,n))})}return s}function it(s,e,t,n,o,r,i){try{var l=s[r](i),c=l.value}catch(d){t(d);return}l.done?e(c):Promise.resolve(c).then(n,o)}function X(s){return function(){var e=this,t=arguments;return new Promise(function(n,o){var r=s.apply(e,t);function i(c){it(r,n,o,i,l,"next",c)}function l(c){it(r,n,o,i,l,"throw",c)}i(void 0)})}}function At(s,e,t){return e=ia(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function ia(s){var e=la(s,"string");return typeof e=="symbol"?e:String(e)}function la(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var n=t.call(s,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var ca=2500,da=2e3,P=k.module("PouchCommandHistoryTable");class ha extends ra{constructor(e,t){var n;super("CommandHistoryStorage.".concat(e),{auto_compaction:!0,revs_limit:1}),At(this,"searchText",void 0),this.cache=t,this.cache.tableRegistry.has(this.cacheKey)||this.cache.tableRegistry.set(this.cacheKey,new Set),P.debug("Adding table to registry",this.cacheKey),(n=this.cache.tableRegistry.get(this.cacheKey))===null||n===void 0||n.add(this)}get cacheKey(){return this.db.name}setSearch(e){P.debug("Setting search filters",e),this.searchText=e.trim().toLowerCase(),this.setFilters(e?[nt.makeFilterConfig([nt.makeFilterItem("name",A.contains,e)])]:[])}dbUpdate(e){P.debug("Clearing cache and refreshing data",e),this.cache.response.delete(this.cacheKey),super.dbUpdate(e)}fetchData(e){var t=this;return X(function*(){return W.withTimeout(0,X(function*(){t.cache.response.has(t.cacheKey)?P.debug("Fetching from cache",t.searchText,t.viewport):(P.debug("Fetching from PouchDB",t.searchText,t.viewport),t.cache.response.set(t.cacheKey,t.db.allDocs({include_docs:!0}).then(o=>{var r=o.rows.map(c=>c.doc).filter(c=>{var{name:d}=c;return d});P.debug("Fetched ".concat(r.length," command history items"));var{toKeep:i,toPrune:l}=Xs(r,ca,da);return l.length&&t.pruneItems(l),{docs:i}})));var n=t.cache.response.get(t.cacheKey);return t.searchText==null||t.searchText===""?n:re(re({},n),{},{docs:(yield n).docs.filter(o=>{var{name:r}=o;return r.toLowerCase().includes(t.searchText)})})}))})()}fetchInfo(e){var t=this;return X(function*(){return t.fetchData(e)})()}fetchViewportData(e,t,n){var o=this;return X(function*(){var r=yield o.fetchData(t);P.debug("Fetching viewport data",e.top,e.bottom+1,n,r);var i=typeof n[0]=="object"&&n[0].id==="desc",l=i?r.docs.slice(0).reverse():r.docs,c=l.slice(e.top,e.bottom+1);return{items:c,offset:e.top}})()}pruneItems(e){var t=this;return X(function*(){if(t.cache.isPruning.get(t.cacheKey)===!0){P.debug("Pruning already in progress. Skipping.");return}try{P.debug("Pruning ".concat(e.length," command history items"));var n=t.cache.pauseChangeListeners(t.cacheKey);t.cache.isPruning.set(t.cacheKey,!0),yield t.db.bulkDocs(e.map(o=>re(re({},o),{},{_deleted:!0}))),t.cache.isPruning.set(t.cacheKey,!1),n(),P.debug("Finished pruning command history items")}catch(o){P.error("An error occurred while pruning db",o)}})()}close(){var e,t,n;P.debug("Closing table",this,(e=this.cache.tableRegistry.get(this.cacheKey))===null||e===void 0?void 0:e.size),(t=this.cache.tableRegistry.get(this.cacheKey))===null||t===void 0||t.delete(this),(n=this.changes)===null||n===void 0||n.cancel(),super.close()}}const lt=ha;function ye(s,e,t){return e=ua(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function ua(s){var e=ma(s,"string");return typeof e=="symbol"?e:String(e)}function ma(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var n=t.call(s,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var ct=k.module("PouchCommandHistoryCache");class pa{constructor(){ye(this,"isPruning",void 0),ye(this,"response",void 0),ye(this,"tableRegistry",void 0),this.isPruning=new Map,this.response=new Map,this.tableRegistry=new Map}pauseChangeListeners(e){var t,n=[];return(t=this.tableRegistry.get(e))===null||t===void 0||t.forEach(o=>{o.changes&&(ct.debug("Pausing event listeners on '".concat(e,"' table"),o),o.changes.cancel(),n.push(o))}),()=>{n.forEach(o=>{var r,i;(r=(i=this.tableRegistry.get(e))===null||i===void 0?void 0:i.has(o))!==null&&r!==void 0&&r&&(ct.debug("Resuming event listeners on '".concat(e,"' table"),o),o.listenForChanges())})}}}const fa=pa;function dt(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(s);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(s,o).enumerable})),t.push.apply(t,n)}return t}function ht(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?dt(Object(t),!0).forEach(function(n){we(s,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):dt(Object(t)).forEach(function(n){Object.defineProperty(s,n,Object.getOwnPropertyDescriptor(t,n))})}return s}function ut(s,e,t,n,o,r,i){try{var l=s[r](i),c=l.value}catch(d){t(d);return}l.done?e(c):Promise.resolve(c).then(n,o)}function Se(s){return function(){var e=this,t=arguments;return new Promise(function(n,o){var r=s.apply(e,t);function i(c){ut(r,n,o,i,l,"next",c)}function l(c){ut(r,n,o,i,l,"throw",c)}i(void 0)})}}function we(s,e,t){return e=ga(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function ga(s){var e=ba(s,"string");return typeof e=="symbol"?e:String(e)}function ba(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var n=t.call(s,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var mt=k.module("PouchCommandHistoryStorage");class va{constructor(){we(this,"cache",new fa),we(this,"updateTableMap",new Map)}getUpdateTable(e){return this.updateTableMap.has(e)||this.updateTableMap.set(e,new lt(e,this.cache)),this.updateTableMap.get(e)}getTable(e){var t=this;return Se(function*(){return new lt(e,t.cache)})()}addItem(e,t,n,o){var r=this;return Se(function*(){return r.updateItem(e,{id:"".concat(new Date().getTime()),name:n,data:o})})()}updateItem(e,t){var n=this;return Se(function*(){var o=n.getUpdateTable(e),r=yield o.refreshItem(t.id),i=ht(ht({},r??{}),t);return mt.debug("Updating item",i),yield o.put(i),mt.debug("Update saved"),t})()}listenItem(e,t,n){var o=this.getUpdateTable(e);return o.onItemUpdate(t,n)}}const Mt="SET_LAYOUT_STORAGE",ya=s=>({type:Mt,payload:s});var{dh:Sa}=globalThis;const K=Sa,_t=""+new URL("community-wordmark-app-d2c5c1eb.svg",import.meta.url).href;const Ca=k.module("SettingsUtils");function Ta(s){return s.formatString!=null}function Fe(s){const e=s?.querySelector("input, select, textarea");e&&e.focus()}function Ut(s,e){return s.defaultFormatString===e.defaultFormatString}function wa(s,e){return Ut(s,e)}function Fa(s,e){return Ut(s,e)}function $t(s){return s!==""&&pn.isValidColumnName(s)}function G(s,e,t){if(!e||t.formatString==null||!Ta(t))return!1;switch(e){case"datetime":return L.isValid(s,t);case"decimal":return I.isValid(s,t);case"int":return O.isValid(s,t);default:return Ca.warn("Trying to validate format of unknown type"),!0}}function Wt(s){const{id:e,isNewRule:t,...n}=s;return n}function Kt(s,e){return $t(e.columnName)&&G(s,e.columnType,e.format)}function Vt(s){const{timestamp:e,timeZone:t,showTimeZone:n,showTSeparator:o,isGlobalOptions:r,legacyGlobalFormat:i}=s,l=Pt(),c=m.useMemo(()=>new Ss(l,[],{timeZone:t,showTimeZone:n,showTSeparator:o}),[l,n,o,t]),d=r?L.getGlobalFormats(n,o):L.getFormats(n,o);return i!=null&&!d.includes(i)&&d.unshift(i),a.jsx(a.Fragment,{children:d.map(u=>{const h=L.makeFormat("",u,L.TYPE_GLOBAL);return a.jsx("option",{value:u,"data-testid":"time-format",children:c.getFormattedString(e,R.dataType.DATETIME,"",h)},u)})})}function Da(){return a.jsx(a.Fragment,{children:Cs.TIME_ZONES.map(s=>{const{label:e,value:t}=s;return a.jsx("option",{value:t,children:e},t)})})}const Z=k.module("FormattingSectionContent");class Ne extends m.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:L.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:I.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:O.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:L.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=De(this.commitChanges.bind(this),Ne.inputDebounceTime),this.handleDefaultDateTimeFormatChange=this.handleDefaultDateTimeFormatChange.bind(this),this.handleDefaultDecimalFormatChange=this.handleDefaultDecimalFormatChange.bind(this),this.handleDefaultIntegerFormatChange=this.handleDefaultIntegerFormatChange.bind(this),this.handleShowTimeZoneChange=this.handleShowTimeZoneChange.bind(this),this.handleShowTSeparatorChange=this.handleShowTSeparatorChange.bind(this),this.handleTimeZoneChange=this.handleTimeZoneChange.bind(this),this.handleResetDateTimeFormat=this.handleResetDateTimeFormat.bind(this),this.handleResetDecimalFormat=this.handleResetDecimalFormat.bind(this),this.handleResetIntegerFormat=this.handleResetIntegerFormat.bind(this),this.handleResetTimeZone=this.handleResetTimeZone.bind(this),this.handleTruncateNumbersWithPoundChange=this.handleTruncateNumbersWithPoundChange.bind(this);const{formatter:t,defaultDateTimeFormat:n,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,showTimeZone:i,showTSeparator:l,timeZone:c,truncateNumbersWithPound:d}=e,u=t.map((h,f)=>({...h,id:f}));this.containerRef=te.createRef(),this.state={formatSettings:u,showTimeZone:i,showTSeparator:l,timeZone:c,defaultDateTimeFormat:n,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Fe(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;getCachedDateTimeFormatOptions=Ce((e,t,n,o=!1,r)=>{const{timestampAtMenuOpen:i}=this.state;return a.jsx(Vt,{timestamp:i,timeZone:e,showTimeZone:t,showTSeparator:n,isGlobalOptions:o,legacyGlobalFormat:r})});handleDefaultDateTimeFormatChange(e){Z.debug("handleDefaultDateTimeFormatChange",e.target.value),this.setState({defaultDateTimeFormat:e.target.value},()=>{this.debouncedCommitChanges()})}handleDefaultDecimalFormatChange(e){Z.debug("handleDefaultDecimalFormatChange",e.target.value),this.setState({defaultDecimalFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleDefaultIntegerFormatChange(e){Z.debug("handleDefaultIntegerFormatChange",e.target.value),this.setState({defaultIntegerFormatOptions:{defaultFormatString:e.target.value}},()=>{this.debouncedCommitChanges()})}handleShowTimeZoneChange(){this.setState(e=>({showTimeZone:!e.showTimeZone}),()=>{this.debouncedCommitChanges()})}handleShowTSeparatorChange(){this.setState(e=>({showTSeparator:!e.showTSeparator}),()=>{this.debouncedCommitChanges()})}handleTimeZoneChange(e){this.setState({timeZone:e.target.value},()=>{this.debouncedCommitChanges()})}handleResetDateTimeFormat(){const{defaults:e}=this.props,{defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o}=e;Z.debug("handleResetDateTimeFormat"),this.setState({defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o},()=>{this.debouncedCommitChanges()})}handleResetTimeZone(){const{defaults:e}=this.props,{timeZone:t}=e;Z.debug("handleResetTimeZone"),this.setState({timeZone:t},()=>{this.debouncedCommitChanges()})}handleResetDecimalFormat(){const{defaults:e}=this.props,{defaultDecimalFormatOptions:t}=e;Z.debug("handleResetDecimalFormat"),this.setState({defaultDecimalFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleResetIntegerFormat(){const{defaults:e}=this.props,{defaultIntegerFormatOptions:t}=e;Z.debug("handleResetIntegerFormat"),this.setState({defaultIntegerFormatOptions:t},()=>{this.debouncedCommitChanges()})}handleTruncateNumbersWithPoundChange(){this.setState(e=>({truncateNumbersWithPound:!e.truncateNumbersWithPound}),()=>{this.debouncedCommitChanges()})}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o,timeZone:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:l,truncateNumbersWithPound:c}=this.state,{dh:d}=this.props,u=e.filter(y=>Kt(d,y)).map(Wt)??[],{settings:h,saveSettings:f}=this.props,v={...h,formatter:u,defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o,timeZone:r,truncateNumbersWithPound:c};G(d,R.dataType.DECIMAL,I.makeCustomFormat(i.defaultFormatString))&&(v.defaultDecimalFormatOptions=i),G(d,R.dataType.INT,O.makeCustomFormat(l.defaultFormatString))&&(v.defaultIntegerFormatOptions=l),f(v)}render(){const{defaults:e,dh:t}=this.props,{defaultDateTimeFormat:n,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,timeZone:i,showTimeZone:l,showTSeparator:c,truncateNumbersWithPound:d}=this.state,{defaultFormatString:u=I.DEFAULT_FORMAT_STRING}=o??{},{defaultFormatString:h=O.DEFAULT_FORMAT_STRING}=r??{},f=i===e.timeZone,v=c===e.showTSeparator&&l===e.showTimeZone&&n===e.defaultDateTimeFormat,y=wa(o,e.defaultDecimalFormatOptions),D=Fa(r,e.defaultIntegerFormatOptions);return a.jsx("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:a.jsxs("div",{className:"container-fluid p-0",children:[a.jsx("div",{className:"app-settings-menu-description mb-3",children:"Choose the default formatting rule to apply to all table columns based on their type."}),a.jsxs("div",{className:"form-row mb-2",children:[a.jsx("label",{className:"col-form-label col-3",htmlFor:"select-reset-timezone",children:"Time zone"}),a.jsx("div",{className:"col pr-0",children:a.jsx("select",{className:"custom-select",value:i,onChange:this.handleTimeZoneChange,id:"select-reset-timezone",children:a.jsx(Da,{})})}),a.jsx("div",{className:"col-1 btn-col",children:a.jsx(T,{kind:"ghost",icon:z,onClick:this.handleResetTimeZone,tooltip:"Reset Time Zone",className:E("btn-reset","btn-reset-time-zone",{hidden:f})})})]}),a.jsxs("div",{className:"form-row mb-2",children:[a.jsx("label",{className:"col-form-label col-3",htmlFor:"select-default-time-format",children:"DateTime"}),a.jsx("div",{className:"col pr-0",children:a.jsx("select",{className:"custom-select",value:n,onChange:this.handleDefaultDateTimeFormatChange,id:"select-default-time-format",children:this.getCachedDateTimeFormatOptions(i,l,c,!0,n)})}),a.jsx("div",{className:"col-1 btn-col",children:a.jsx(T,{kind:"ghost",icon:z,onClick:this.handleResetDateTimeFormat,tooltip:"Reset DateTime Options",className:E("btn-reset","btn-reset-date-time",{hidden:v})})})]}),a.jsx("div",{className:"form-row",children:a.jsx("div",{className:"offset-3 col-9",children:a.jsx(fe,{checked:l??null,onChange:this.handleShowTimeZoneChange,children:"Show time zone in dates"})})}),a.jsx("div",{className:"form-row mb-3",children:a.jsx("div",{className:"offset-3 col-9",children:a.jsx(fe,{checked:c??null,onChange:this.handleShowTSeparatorChange,children:"Show 'T' separator"})})}),a.jsxs("div",{className:"form-row mb-2",children:[a.jsx("label",{className:"col-form-label col-3",htmlFor:"default-decimal-format-input",children:"Decimal"}),a.jsx("div",{className:"col pr-0",children:a.jsx("input",{className:E("form-control","flex-grow-1","default-decimal-format-input",{"is-invalid":!G(t,R.dataType.DECIMAL,I.makeCustomFormat(u))}),"data-lpignore":!0,placeholder:I.DEFAULT_FORMAT_STRING,type:"text",id:"default-decimal-format-input",value:u,onChange:this.handleDefaultDecimalFormatChange})}),a.jsx("div",{className:"col-1 btn-col",children:a.jsx(T,{kind:"ghost",icon:z,onClick:this.handleResetDecimalFormat,tooltip:"Reset Decimal Formatting",className:E("btn-reset","btn-reset-decimal",{hidden:y}),"data-testid":"btn-reset-decimal"})})]}),a.jsxs("div",{className:"form-row mb-2",children:[a.jsx("label",{className:"col-form-label col-3",htmlFor:"default-integer-format-input",children:"Integer"}),a.jsx("div",{className:"col pr-0",children:a.jsx("input",{className:E("form-control","flex-grow-1","default-integer-format-input",{"is-invalid":!G(t,R.dataType.INT,O.makeCustomFormat(h))}),"data-lpignore":!0,placeholder:O.DEFAULT_FORMAT_STRING,type:"text",id:"default-integer-format-input",value:h,onChange:this.handleDefaultIntegerFormatChange})}),a.jsx("div",{className:"col-1 btn-col",children:a.jsx(T,{kind:"ghost",icon:z,onClick:this.handleResetIntegerFormat,tooltip:"Reset Integer Formatting",className:E("btn-reset","btn-reset-integer",{hidden:D}),"data-testid":"btn-reset-integer"})})]}),a.jsx("div",{className:"form-row mb-3",children:a.jsx("div",{className:"offset-3 col-9",children:a.jsx(fe,{checked:d??null,onChange:this.handleTruncateNumbersWithPoundChange,children:"Truncate numbers with #"})})})]})})}}const xa=s=>({formatter:Ct(s),defaultDateTimeFormat:Tt(s),defaultDecimalFormatOptions:wt(s),defaultIntegerFormatOptions:Ft(s),dh:Dt(s),showTimeZone:xt(s),showTSeparator:Et(s),truncateNumbersWithPound:Rt(s),timeZone:Nt(s),settings:Ee(s)}),Ea=ne(xa,{saveSettings:xe})(Ne);function Ra(){const[s,e]=m.useState(!1),t=()=>{e(!s)};return a.jsxs(a.Fragment,{children:[a.jsx(T,{kind:"ghost",onClick:t,icon:Bn,children:"Legal Notices"}),a.jsxs(Zn,{isOpen:s,toggle:t,className:"theme-bg-light",children:[a.jsx(Hn,{toggle:t,children:"Legal Notice"}),a.jsxs(zn,{children:[a.jsx("p",{children:"Deephaven software is protected by U.S. Patent Nos. 9,612,959; 9,613,018; 9,613,109; 9,619,210; 9,633,060; 9,639,570; 9,672,238; 9,679,006; 9,690,821; 9,710,511; 9,760,591; 9,805,084; 9,836,494; 9,836,495; 9,886,469; 9,898,496; 9,934,266; 10,002,153; 10,002,154; 10,002,155; 10,003,673; 10,019,138; 10,069,943; 10,176,211; 10,198,465; 10,198,466; 10,198,469; 10,212,257; 10,241,960; 10,241,965; 10,242,040; 10,242,041; 10,346,394; 10,353,893; 10,452,649; 10,496,639; 10,540,351; 10,552,412; 10,565,194; 10,565,206; 10,572,474; 10,621,168; 10,642,829; 10,657,184; 10,678,787; 10,691,686; 10,783,191; 10,866,943; 10,909,183; 10,915,526; 10,922,311; 10,929,394; 11,023,462; 11,126,662; 11,151,133; 11,238,036; 11,249,994; 11,263,211; 11,449,557; 11,514,037; 11,556,528; and 11,574,018. Other patents pending."}),a.jsxs("p",{children:["© 2016-",new Date().getFullYear()," Deephaven Data Labs LLC. Patent Pending."]})]})]})]})}function ee(s){const{children:e,isExpanded:t,sectionKey:n,title:o,onToggle:r}=s;return a.jsxs(a.Fragment,{children:[a.jsx("div",{children:a.jsxs(T,{kind:"ghost",className:"btn-collapse-trigger",onClick:()=>r(n),children:[a.jsx("div",{className:"flex-grow-1",children:o}),a.jsx("div",{className:"flex-shrink-0",children:a.jsx(x,{transform:t?"flip-v":"",icon:Yn})})]})}),a.jsx(Ts,{in:t,autoFocusOnShow:!0,children:e})]})}ee.propTypes={children:b.node,isExpanded:b.bool.isRequired,sectionKey:b.string.isRequired,title:b.node.isRequired,onToggle:b.func};ee.defaultProps={children:null,onToggle:()=>{}};function Na({shortcut:s,displayText:e,categoryName:t,onChange:n}){const[o,r]=m.useState(e),[i,l]=m.useState(s.getKeyState()),[c,d]=m.useState(!1),[u,h]=m.useState("");m.useEffect(function(){r(e),l(s.getKeyState())},[e,s]),m.useEffect(function(){r(M.getDisplayText(i)),s.matchesKeyState(i)&&d(!1)},[i,s]),m.useEffect(function(){if(c){if(!M.isValidKeyState(i)){M.isAllowedKey(i.keyValue)?h("Must contain a modifier key"):h("Must contain an allowed action key");return}const p=Re.getConflictingShortcuts(i).filter(g=>g.id.startsWith(t)&&g!==s).map(g=>g.name);if(p.length){h(`Conflicts with ${p.join(", ")}`);return}h("")}else h("")},[c,i,t,s]);function f(C){if(C.stopPropagation(),C.preventDefault(),s.isEditable&&!C.repeat){const p=M.getKeyStateFromEvent(C),g=M.createKeyState([ws.BACKSPACE]);M.doKeyStatesMatch(p,g)?l(M.NULL_KEY_STATE):l(p)}}function v(C){C.stopPropagation(),C.preventDefault(),s.matchesKeyState(i)||d(!0)}function y(){Qe.disableAllActions()}function D(){Qe.enableAllActions()}function w(){s.setKeyState(i),d(!1),n(s)}function S(){const C=s.getKeyState();l(C),d(!1)}function N(){d(!0),l(s.getDefaultKeyState())}return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"shortcut-item-container",children:[a.jsxs("label",{className:"shortcut-item-name",children:[s.name,s.tooltip!==void 0&&a.jsx(kt,{children:s.tooltip})]}),a.jsxs("div",{className:"shortcut-item-input-container",children:[a.jsx("input",{className:E("form-control",{"is-invalid":u}),onKeyDown:f,onKeyUp:v,onFocus:y,onBlur:D,disabled:!s.isEditable,value:o,readOnly:!0}),!M.doKeyStatesMatch(i,s.getDefaultKeyState())&&!u&&a.jsx(T,{className:"reset-to-default-button",kind:"ghost",icon:a.jsx(x,{icon:z,transform:{rotate:90,flipX:!0}}),tooltip:"Reset to default",onClick:N})]})]}),c&&a.jsxs("div",{className:E("shortcut-item-message-container",{"is-invalid":u}),children:[a.jsx("div",{className:"shortcut-item-message",children:u}),a.jsxs("div",{className:"shortcut-item-message-buttons",children:[M.isValidKeyState(i)&&a.jsx(T,{kind:"ghost",onClick:w,children:"Confirm"}),a.jsx(T,{kind:"ghost",onClick:S,children:"Undo"})]})]})]})}function ja({shortcutOverrides:s={},settings:e,saveSettings:t}){const n=m.useCallback(l=>{const c=M.isMacPlatform,d={mac:{...s.mac},windows:{...s.windows}},u=c?d.mac:d.windows;l.forEach(h=>{h.isDefault()?delete u[h.id]:u[h.id]=h.getKeyState()}),t({...e,shortcutOverrides:d})},[e,t,s]);let o=Array.from(Re.shortcutsByCategory.entries()).map(([l,c])=>({name:l,shortcuts:c}));const r=o.findIndex(l=>l.name.toUpperCase()==="GLOBAL"),i=o.splice(r,1);return o=o.concat(i),a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"app-settings-menu-description",children:"Customize shortcuts below. To prevent unexpected results, avoid conflicting shortcuts with the browser or IDE editor."}),o.map(l=>a.jsx(Oa,{name:l.name,shortcuts:l.shortcuts,saveShortcutOverrides:n},l.name))]})}function Oa({name:s,shortcuts:e,saveShortcutOverrides:t}){function n(c){return c.split("_").map(d=>`${d[0].toUpperCase()}${d.slice(1).toLowerCase()}`).join(" ")}const[o,r]=m.useState(e);function i(c){const d=o.filter(h=>h!==c&&!h.isNull()&&h.matchesKeyState(c.getKeyState()));d.forEach(h=>h.setToNull());const u=[c,...d];t(u),r(h=>[...h])}const l=m.useMemo(()=>o.map(c=>c.getDisplayText()),[o]);return a.jsxs("div",{className:"mt-3",children:[a.jsx("div",{className:"font-weight-bold",children:n(s)}),o.map((c,d)=>a.jsx(Na,{shortcut:c,displayText:l[d],categoryName:s,onChange:i},c.id))]})}const Ia=s=>({settings:Ee(s),shortcutOverrides:fn(s)}),La={saveSettings:xe},Pa=ne(Ia,La)(ja),ka="yyyy-MM-dd-HHmmss";function Gt(s,e="root",t=new Map([[s,""]])){const n={};return Object.entries(s).forEach(([o,r])=>{try{JSON.stringify(r),n[o]=r}catch{const l=r;if(typeof r=="bigint")n[o]=r.toString();else if(t.has(l))n[o]=`Circular ref to ${t.get(l)}`;else{const c=`${e}.${o}`;t.set(l,c),n[o]=Gt(r,c,t)}}}),n}function Aa(){const s=jt.getState();return JSON.stringify(Gt(s),null,2)}function Ma(s){const e={uiVersion:"0.49.1",userAgent:navigator.userAgent,...s};return JSON.stringify(e,null,2)}async function _a(s=`${K.i18n.DateTimeFormat.format(ka,new Date)}_support_logs`,e){const t=new yt,n=t.folder(s);n.file("console.txt",qn.getFormattedHistory()),n.file("redux.json",Aa()),n.file("metadata.json",Ma(e));const o=await t.generateAsync({type:"blob"}),r=document.createElement("a");r.href=URL.createObjectURL(o),r.download=`${s}.zip`,r.click()}const Ua=[{value:R.dataType.DATETIME,label:"DateTime"},{value:R.dataType.DECIMAL,label:"Decimal"},{value:R.dataType.INT,label:"Integer"}];function $a(){const s=Ua.map(e=>a.jsx("option",{value:e.value,children:e.label},`key-columnType-${e.value}`));return a.jsxs(a.Fragment,{children:[a.jsx("option",{disabled:!0,value:"",children:"Select Type"},"key-columnType-placeholder"),s]})}class je extends m.PureComponent{static defaultProps={scrollTo:()=>{},defaults:{defaultDateTimeFormat:L.DEFAULT_DATETIME_FORMAT_STRING,defaultDecimalFormatOptions:{defaultFormatString:I.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:O.DEFAULT_FORMAT_STRING},showTimeZone:!1,showTSeparator:!0,timeZone:L.DEFAULT_TIME_ZONE_ID}};static inputDebounceTime=250;constructor(e){super(e),this.debouncedCommitChanges=De(this.commitChanges.bind(this),je.inputDebounceTime),this.handleFormatRuleEntered=this.handleFormatRuleEntered.bind(this),this.handleFormatRuleChange=this.handleFormatRuleChange.bind(this),this.handleFormatRuleCreate=this.handleFormatRuleCreate.bind(this),this.handleFormatRuleDelete=this.handleFormatRuleDelete.bind(this);const{formatter:t,defaultDateTimeFormat:n,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,showTimeZone:i,showTSeparator:l,timeZone:c,truncateNumbersWithPound:d}=e,u=t.map((h,f)=>({...h,id:f}));this.containerRef=te.createRef(),this.addFormatRuleButtonRef=te.createRef(),this.lastFormatRuleIndex=u.length,this.state={formatSettings:u,formatRulesChanged:!1,showTimeZone:i,showTSeparator:l,timeZone:c,defaultDateTimeFormat:n,defaultDecimalFormatOptions:o,defaultIntegerFormatOptions:r,truncateNumbersWithPound:d,timestampAtMenuOpen:new Date}}componentDidMount(){Fe(this.containerRef.current)}componentWillUnmount(){this.debouncedCommitChanges.flush()}debouncedCommitChanges;containerRef;addFormatRuleButtonRef;lastFormatRuleIndex;isDuplicateRule(e){const{formatSettings:t}=this.state;return t.some(n=>n.id!==e.id&&n.columnName===e.columnName&&n.columnType===e.columnType)??!1}getAutoIncrementFormatRuleIndex(){const{lastFormatRuleIndex:e}=this;return this.lastFormatRuleIndex+=1,e}getCachedColumnTypeOptions=Ce(()=>a.jsx($a,{}));getCachedDateTimeFormatOptions=Ce((e,t,n,o=!1,r)=>{const{timestampAtMenuOpen:i}=this.state;return a.jsx(Vt,{timestamp:i,timeZone:e,showTimeZone:t,showTSeparator:n,isGlobalOptions:o,legacyGlobalFormat:r})});handleFormatRuleChange(e,t,n){this.setState(o=>{const{formatSettings:r}=o;Jn(r);const i=[...r];let l={};t==="columnType"&&(l={format:""});const c={...i[e],...l,[t]:n};return i[e]=c,{formatSettings:i}},()=>{this.debouncedCommitChanges()})}handleFormatRuleCreate(){this.setState(e=>{const{formatSettings:t}=e,n={columnType:R.dataType.DATETIME,columnName:"",format:{},id:this.getAutoIncrementFormatRuleIndex(),isNewRule:!0};return{formatSettings:[...t,n],formatRulesChanged:!0}})}handleFormatRuleDelete(e){this.setState(t=>{const{formatSettings:n}=t;return{formatSettings:n.filter((r,i)=>i!==e),formatRulesChanged:!0}},()=>{this.debouncedCommitChanges()})}handleFormatRuleEntered(e){this.scrollToFormatBlockBottom(),Fe(e)}commitChanges(){const{formatSettings:e,defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o,timeZone:r,defaultDecimalFormatOptions:i,defaultIntegerFormatOptions:l,truncateNumbersWithPound:c}=this.state,{dh:d}=this.props,u=e.filter(y=>Kt(d,y)).map(Wt)??[],{settings:h,saveSettings:f}=this.props,v={...h,formatter:u,defaultDateTimeFormat:t,showTimeZone:n,showTSeparator:o,timeZone:r,truncateNumbersWithPound:c};G(d,R.dataType.DECIMAL,I.makeCustomFormat(i.defaultFormatString))&&(v.defaultDecimalFormatOptions=i),G(d,R.dataType.INT,O.makeCustomFormat(l.defaultFormatString))&&(v.defaultIntegerFormatOptions=l),f(v)}scrollToFormatBlockBottom(){const{scrollTo:e}=this.props;e(0,(this.addFormatRuleButtonRef.current?.offsetHeight??0)+(this.addFormatRuleButtonRef.current?.offsetTop??0))}getRuleError(e){const{dh:t}=this.props,n={hasColumnNameError:!1,hasFormatError:!1,message:""},o=[];return e.isNewRule!==void 0&&e.isNewRule||(this.isDuplicateRule(e)&&(n.hasColumnNameError=!0,o.push("Duplicate column name/type combo.")),$t(e.columnName)||(n.hasColumnNameError=!0,o.push("Column names must start with a letter or underscore and contain only alphanumeric characters or underscores.")),e.format.formatString!==void 0&&e.format.formatString.length===0?(n.hasFormatError=!0,o.push("Empty formatting rule.")):G(t,e.columnType,e.format)||(n.hasFormatError=!0,o.push("Invalid formatting rule.")),n.message=o.join(`
2
- `)),n}renderFormatRule(e,t){const n=`input-${e}-columnName`,o=`input-${e}-columnType`,r=`input-${e}-format`,i=this.getCachedColumnTypeOptions(),l=h=>this.handleFormatRuleChange(e,"columnName",h.target.value),c=()=>this.handleFormatRuleChange(e,"isNewRule",!1),d=h=>this.handleFormatRuleChange(e,"columnType",h.target.value),u=this.getRuleError(t);return a.jsxs("fieldset",{className:"container-fluid format-rule-container",children:[a.jsxs("div",{className:"form-row",children:[a.jsxs("div",{className:"form-group col-7 mb-2",children:[a.jsx("label",{htmlFor:n,children:"Column Name"}),a.jsx("input",{id:n,className:E("form-control",{"is-invalid":u.hasColumnNameError}),"data-lpignore":!0,type:"text",value:t.columnName,onChange:l,onBlur:c})]}),a.jsxs("div",{className:"form-group col mb-2",children:[a.jsx(T,{kind:"ghost",className:"btn-delete-format-rule float-right",tabIndex:-1,onClick:()=>this.handleFormatRuleDelete(e),icon:Xn,tooltip:"Delete","aria-label":"Delete Format Rule"}),a.jsx("label",{htmlFor:o,children:"Column Type"}),a.jsx("select",{id:o,className:"custom-select",value:t.columnType,onChange:d,children:i})]})]}),a.jsx("div",{className:"form-row",children:a.jsxs("div",{className:"form-group col-12 d-flex mb-2",children:[a.jsx("label",{className:"flex-shrink-0 col-form-label mr-3",htmlFor:r,children:"Formatting Rule"}),this.renderFormatRuleInput(e,t.columnType,r,t.format,u.hasFormatError)]})}),a.jsx("div",{className:"form-row",children:a.jsx("div",{className:"form-group col-12 d-flex mb-2",children:u.message&&a.jsx("p",{className:"text-danger",children:u.message})})})]},e)}renderFormatRuleInput(e,t,n,o,r){switch(R.getNormalizedType(t)){case R.dataType.DATETIME:return this.renderDateTimeFormatRuleInput(e,n,o,r);case R.dataType.DECIMAL:return this.renderDecimalFormatRuleInput(e,n,o,r);case R.dataType.INT:return this.renderIntegerFormatRuleInput(e,n,o,r);default:throw new Error(`Unrecognized column type: ${t}`)}}renderDateTimeFormatRuleInput(e,t,n,o){const{showTimeZone:r,showTSeparator:i,timeZone:l}=this.state,c=n.formatString??"";return a.jsxs("select",{className:E("custom-select",{"is-invalid":o}),value:c,id:t,onChange:d=>{const u=L.makeFormat("",d.target.value,L.TYPE_GLOBAL);this.handleFormatRuleChange(e,"format",u)},children:[a.jsx("option",{value:"",disabled:!0,children:"Select format"},"default"),this.getCachedDateTimeFormatOptions(l,r,i)]})}renderIntegerFormatRuleInput(e,t,n,o){const r=n.formatString??"";return a.jsx("input",{className:E("form-control","flex-grow-1",{"is-invalid":o}),"data-lpignore":!0,id:t,placeholder:O.DEFAULT_FORMAT_STRING,type:"text",value:r,onChange:i=>{const l=O.makeFormat("",i.target.value,O.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",l)}})}renderDecimalFormatRuleInput(e,t,n,o){const r=n.formatString??"";return a.jsx("input",{className:E("form-control","flex-grow-1",{"is-invalid":o}),"data-lpignore":!0,id:t,placeholder:I.DEFAULT_FORMAT_STRING,type:"text",value:r,onChange:i=>{const l=I.makeFormat("",i.target.value,I.TYPE_GLOBAL,void 0);this.handleFormatRuleChange(e,"format",l)}})}render(){const{formatRulesChanged:e,formatSettings:t}=this.state,n=t.map((r,i)=>a.jsx(St,{classNames:"fade",timeout:le.transitionMs,onEnter:this.handleFormatRuleEntered,children:this.renderFormatRule(i,r)},r.id)),o=a.jsx(T,{kind:"ghost",className:"mb-3",onClick:this.handleFormatRuleCreate,ref:this.addFormatRuleButtonRef,icon:Qn,children:"Add New Rule"});return a.jsxs("div",{className:"app-settings-formatting-section",ref:this.containerRef,children:[a.jsx("div",{className:"app-settings-menu-description mb-3",children:"Customize the formatting of table columns by applying rules based on matching both a column name and column type."}),a.jsx(tn,{appear:e,enter:e,exit:e,children:n}),o]})}}const Wa=s=>({formatter:Ct(s),defaultDateTimeFormat:Tt(s),defaultDecimalFormatOptions:wt(s),defaultIntegerFormatOptions:Ft(s),dh:Dt(s),showTimeZone:xt(s),showTSeparator:Et(s),truncateNumbersWithPound:Rt(s),timeZone:Nt(s),settings:Ee(s)}),Ka=ne(Wa,{saveSettings:xe})(je);class _ extends m.Component{static defaultProps={onDone:()=>{}};static FORMATTING_SECTION_KEY="SettingsMenu.formatting";static COLUMN_SPECIFIC_SECTION_KEY="SettingsMenu.columnFormatting";static APPLICATION_SECTION_KEY="ApplicationMenu.settings";static SHORTCUT_SECTION_KEY="SettingsMenu.shortcuts";static focusFirstInputInContainer(e){const t=e?.querySelector("input, select, textarea");t&&t.focus()}constructor(e){super(e),this.handleClose=this.handleClose.bind(this),this.handleScrollTo=this.handleScrollTo.bind(this),this.handleSectionToggle=this.handleSectionToggle.bind(this),this.handleExportSupportLogs=this.handleExportSupportLogs.bind(this),this.handleLogout=this.handleLogout.bind(this),this.menuContentRef=te.createRef(),this.broadcastChannel=new BroadcastChannel(Fs),this.state={expandedSectionKey:_.FORMATTING_SECTION_KEY}}componentDidMount(){_.focusFirstInputInContainer(this.menuContentRef.current)}componentWillUnmount(){this.broadcastChannel.close()}menuContentRef;broadcastChannel;isSectionExpanded(e){const{expandedSectionKey:t}=this.state;return t===e}handleLogout(){this.broadcastChannel.postMessage(Ds(xs))}handleScrollTo(e,t){this.menuContentRef.current?.scrollTo(e,t)}handleSectionToggle(e){this.setState(t=>({expandedSectionKey:t.expandedSectionKey===e?void 0:e}))}handleClose(){const{onDone:e}=this.props;e()}handleExportSupportLogs(){const{serverConfigValues:e}=this.props;_a(void 0,Object.fromEntries(e))}render(){const e="0.49.1",t="https://github.com/deephaven/web-client-ui/",n="https://deephaven.io/core/docs/",{serverConfigValues:o,user:r}=this.props,i=o.get("barrage.version"),l=o.get("java.version"),c=o.get("deephaven.version"),d=(v,y)=>a.jsxs(a.Fragment,{children:[a.jsx("div",{children:v}),a.jsx("div",{children:y})]}),u=r.displayName??r.name,h=r.image!=null&&r.image!=="",f=u!=="";return a.jsxs("div",{className:"app-settings-menu",children:[a.jsxs("header",{className:"app-settings-menu-header",children:[a.jsxs("div",{className:"user-info",children:[a.jsxs("div",{className:"user-image",children:[!h&&a.jsx(x,{icon:es,transform:"grow-8"}),h&&a.jsx("img",{src:r.image,alt:u})]}),a.jsxs("div",{className:"user-details",children:[f&&a.jsxs("div",{className:"user-name",children:[u,r.operateAs!=null&&r.name!==r.operateAs&&a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"font-weight-light font-italic",children:[" ","as"," "]}),a.jsxs("span",{className:"operating-as-user",children:[a.jsx(x,{icon:ts,className:"mr-1"}),r.operateAs]})]})]}),r.permissions.canLogout&&a.jsx("button",{type:"button",className:"btn btn-link",onClick:this.handleLogout,children:"logout"})]})]}),a.jsx(T,{kind:"ghost",className:"btn-close-settings-menu",onClick:this.handleClose,icon:a.jsx(x,{icon:ns,transform:"grow-4"}),tooltip:"Close"})]}),a.jsxs("div",{className:"app-settings-menu-content",ref:this.menuContentRef,children:[a.jsx("h5",{children:"Settings"}),a.jsx("hr",{className:"my-0"}),a.jsx(ee,{sectionKey:_.FORMATTING_SECTION_KEY,isExpanded:this.isSectionExpanded(_.FORMATTING_SECTION_KEY),title:a.jsxs(a.Fragment,{children:[a.jsx(x,{icon:ss,transform:"grow-4",className:"mr-2"}),"Default Format & Time zone"]}),onToggle:this.handleSectionToggle,children:a.jsx(Ea,{})}),a.jsx(ee,{sectionKey:_.COLUMN_SPECIFIC_SECTION_KEY,isExpanded:this.isSectionExpanded(_.COLUMN_SPECIFIC_SECTION_KEY),title:a.jsxs(a.Fragment,{children:[a.jsx(x,{icon:as,transform:"grow-4",className:"mr-2"}),"Format by Column Name & Type"]}),onToggle:this.handleSectionToggle,children:a.jsx(Ka,{scrollTo:this.handleScrollTo})}),a.jsx(ee,{sectionKey:_.SHORTCUT_SECTION_KEY,isExpanded:this.isSectionExpanded(_.SHORTCUT_SECTION_KEY),title:a.jsxs(a.Fragment,{children:[a.jsx(x,{icon:os,transform:"grow-2"})," ","Keyboard Shortcuts"]}),onToggle:this.handleSectionToggle,children:a.jsx(Pa,{})}),a.jsxs("div",{className:"app-settings-footer",children:[a.jsxs("div",{className:"app-settings-footer-section",children:[a.jsxs("div",{className:"app-settings-footer-item",children:[a.jsx("div",{className:"font-weight-bold",children:"Support"}),a.jsxs("div",{children:["GitHub: ",a.jsx("a",{href:t,className:"custom-link",target:"_blank",rel:"noopener noreferrer",children:t})]}),a.jsx(T,{kind:"tertiary",className:"mt-2 py-2",onClick:this.handleExportSupportLogs,children:"Export Logs"})]}),a.jsxs("div",{className:"app-settings-footer-item",children:[a.jsx("div",{className:"font-weight-bold",children:"Documentation"}),a.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:n,className:"custom-link",children:n})]}),a.jsxs("div",{className:"app-settings-footer-item",children:[a.jsx("div",{className:"font-weight-bold",children:"Version"}),a.jsxs("span",{className:"d-inline-block text-muted",children:[c," ",a.jsx(x,{icon:rs}),a.jsxs(kt,{interactive:!0,children:[a.jsxs("div",{className:"detailed-server-config",children:[d("Engine Version",c),d("Web UI Version",e),d("Java Version",l),d("Barrage Version",i)]}),a.jsx(Es,{tooltip:"Copy version numbers",copy:`Engine Version: ${c}
3
- Web UI Version: ${e}
4
- Java Version: ${l}
5
- Barrage Version: ${i}`,children:"Copy Versions"})]})]})]}),a.jsx("div",{className:"app-settings-footer-item",children:a.jsx(Ra,{})})]}),a.jsx("div",{className:"app-settings-footer-section",children:a.jsx("div",{className:"logo",children:a.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://deephaven.io",className:"d-inline-block custom-link p-1",children:a.jsx("img",{src:_t,alt:"Deephaven Data Labs",width:"230px"})})})})]})]})]})}}const pt=10;function Y(s){const{forwardedProps:{menuItem:{action:e,title:t,disabled:n},iconElement:o,displayShortcut:r,isMouseSelected:i,isKeyboardSelected:l,closeMenu:c}}=s,d=m.useRef(),u=m.useRef(),h=m.useRef(null),[f,v]=m.useState(!1),y=m.useCallback(S=>{d.current!=null&&u.current!=null&&h.current&&(Math.abs(d.current-S.clientX)>=pt||Math.abs(u.current-S.clientY)>=pt)&&(v(!0),window.removeEventListener("mousemove",y),c(),e(S),h.current=null)},[e,c]);function D(S){d.current=S.clientX,u.current=S.clientY,h.current=S.target,window.addEventListener("mousemove",y)}function w(S){h.current===S.target&&(v(!0),c(),e(),window.removeEventListener("mousemove",y)),h.current=null}return m.useEffect(function(){return function(){return window.removeEventListener("mousemove",y)}},[y]),a.jsxs("button",{type:"button",className:E("btn-context-menu",{disabled:n},{active:i&&!n},{"keyboard-active":l&&!n}),onMouseDown:D,onMouseUp:w,disabled:f,children:[a.jsx("span",{className:E("icon"),children:o}),a.jsx("span",{className:"title",children:t}),a.jsx("span",{className:"shortcut",children:r})]})}function Oe(s){const{handleControlSelect:e,handleToolSelect:t,onClearFilter:n}=s,o=m.useMemo(()=>[{title:"Input Filter",icon:is,menuElement:a.jsx(Y,{}),action:r=>{e(V.INPUT_FILTER,r)},order:10},{title:"Dropdown Filter",icon:ls,menuElement:a.jsx(Y,{}),action:r=>{e(V.DROPDOWN_FILTER,r)},order:15},{title:"Markdown Widget",icon:cs,menuElement:a.jsx(Y,{}),action:r=>{e(V.MARKDOWN,r)},order:20},{title:"Filter Sets",icon:ds,menuElement:a.jsx(Y,{}),action:r=>{e(V.FILTER_SET_MANAGER,r)},order:25},{disabled:!0,menuElement:a.jsx("div",{className:"context-menu-group-header",children:"Tools"}),order:30},{title:"Linker",icon:hs,action:()=>{t(de.LINKER)},order:40,shortcut:Te.LINKER},{disabled:!0,menuElement:a.jsx("div",{className:"context-menu-group-header",children:"Actions"}),order:50},{title:"Clear All Filters",icon:us,action:()=>{n()},order:60,shortcut:Ot.TABLE.CLEAR_ALL_FILTERS}],[e,t,n]);return a.jsx(Rs,{popperClassName:"controls-menu-popper",actions:o})}Oe.propTypes={handleControlSelect:b.func,handleToolSelect:b.func,onClearFilter:b.func};Oe.defaultProps={handleControlSelect:()=>{},handleToolSelect:()=>{},onClearFilter:()=>{}};Y.propTypes={forwardedProps:b.shape({iconElement:b.node,displayShortcut:b.string,isMouseSelected:b.bool.isRequired,isKeyboardSelected:b.bool.isRequired,closeMenu:b.func.isRequired,menuItem:b.shape({action:b.func,title:b.string,disabled:b.bool}).isRequired})};Y.defaultProps={forwardedProps:null};const Va=gn(Mt,null),Ga={layoutStorage:Va},Ba=s=>s.layoutStorage,Za=s=>s.serverConfigValues;Object.entries(Ga).map(([s,e])=>bn.register(s,e));const ft=10;function Ha(s){const{onExportLayout:e,onImportLayout:t,onResetLayout:n,onSelect:o,widgets:r=[]}=s,[i,l]=m.useState(!1),[c,d]=m.useState(""),u=m.useRef(null),h=m.useRef(),f=m.useCallback((p,g)=>{p!=null&&o(p,g)},[o]),v=m.useCallback(p=>{d(p.target.value)},[]),y=m.useCallback(p=>{h.current!=null&&(Math.abs(h.current.x-p.clientX)>=ft||Math.abs(h.current.y-p.clientY)>=ft)&&(l(!0),window.removeEventListener("mousemove",y),f(h.current.widget,p),h.current=void 0)},[h,f]),D=m.useCallback((p,g)=>{h.current={x:p.clientX,y:p.clientY,widget:g},window.addEventListener("mousemove",y)},[y]),w=m.useCallback((p,g)=>{window.removeEventListener("mousemove",y),h.current?.widget===g&&(l(!0),f(g)),h.current=void 0},[y,h,f]),S=m.useMemo(()=>r.filter(p=>c?p.name?.toLowerCase().includes(c.toLowerCase()):!0),[c,r]).sort((p,g)=>p.name?.localeCompare(g.name??"")??0),N=m.useMemo(()=>S.map(p=>a.jsx("li",{children:a.jsxs(T,{kind:"ghost","data-testid":`panel-list-item-${p.name??""}-button`,onMouseDown:g=>{D(g,p)},onMouseUp:g=>{w(g,p)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&f(p)},disabled:i,onClick:()=>{},children:[a.jsx(vn,{type:p.type})," ",p.name??""]})},p.name)),[S,i,D,w,f]),C=m.useMemo(()=>N.length===0?a.jsx("span",{children:"No bound variables found."}):null,[N]);return a.jsxs("div",{className:"widget-list-container d-flex flex-column",children:[a.jsx("div",{className:"widget-list-header",children:a.jsx(Ns,{value:c,placeholder:"Find Table, Plot or Widget",onChange:v,ref:u})}),a.jsxs("ul",{className:"widget-list flex-grow-1",children:[C&&a.jsx("li",{className:"widget-list-message",children:C}),!C&&N]}),a.jsx("div",{children:a.jsx("hr",{})}),a.jsxs("div",{className:"widget-list-footer",children:[a.jsxs(T,{kind:"ghost",onClick:e,children:[a.jsxs("div",{className:"fa-md fa-layers",children:[a.jsx(x,{mask:Ye,icon:qe,transform:"right-5 down-5"}),a.jsx(x,{icon:qe,transform:"right-8 down-6"})]}),"Export Layout"]}),a.jsxs(T,{kind:"ghost",onClick:t,children:[a.jsxs("div",{className:"fa-md fa-layers",children:[a.jsx(x,{mask:Ye,icon:Je,transform:"right-5 down-5"}),a.jsx(x,{icon:Je,transform:"right-8 down-6"})]}),"Import Layout"]}),a.jsx(T,{kind:"ghost",icon:z,onClick:n,tooltip:"Reset Layout"})]})]})}function za({onAutoFillClick:s=()=>{}}){return a.jsxs("div",{className:"empty-dashboard-container",children:[a.jsxs("div",{className:"hint-container",children:[a.jsx(x,{icon:ms})," ",a.jsx("br",{}),"Use the panel list to add objects from a query."]}),a.jsxs("div",{className:"empty-dashboard",children:[a.jsx("div",{className:"add-panels-hint",children:"Drag Panels Here"}),a.jsx(T,{kind:"tertiary",onClick:s,children:"Auto fill objects"})]})]})}function Ya(s){return s.version===2}function qa(s){return Array.isArray(s)}const ie=k.module("UserLayoutUtils"),Ja={layoutConfig:[{type:"column",content:[{type:"row",height:40,content:[{type:"stack",content:[{type:"react-component",component:Ve.COMPONENT,title:Ve.TITLE,isClosable:!1},{type:"react-component",component:Ge.COMPONENT,title:Ge.TITLE,isClosable:!1}]},{type:"stack",width:25,content:[{type:"react-component",component:Be.COMPONENT,title:Be.TITLE,isClosable:!1},{type:"react-component",component:Ze.COMPONENT,title:Ze.TITLE,isClosable:!1}]}]},{type:"row",content:[{type:"stack",title:"Notebooks",content:[]}]}]}],links:[],filterSets:[],version:2},Xa={layoutConfig:[],links:[],filterSets:[],version:2};function Bt(s){if(Ya(s))return s;if(qa(s))return{layoutConfig:s,links:[],filterSets:[],version:2};throw new Error(`Unexpected layout import format: ${s}`)}async function Qa(s,e=!0){try{const t=await s.getLayouts();if(t.length>0)try{const n=await s.getLayout(t[0]);return Bt(n)}catch(n){ie.error("Unable to load layout",t[0],":",n),ie.warn("No valid layouts found, falling back to default layout")}}catch(t){ie.error("Unable to fetch layout list",t),ie.warn("Falling back to default layout")}return e?Ja:Xa}function eo(s){const{filterSets:e,layoutConfig:t,links:n}=s;return{filterSets:e,layoutConfig:t,links:n,version:2}}const ce={exportLayout:eo,getDefaultLayout:Qa,normalizeLayout:Bt},F=k.module("AppMainContainer");class q extends m.Component{static handleWindowBeforeUnload(e){e.preventDefault(),e.returnValue=""}static hydrateConsole(e,t){return ze.hydrate({...e,unzip:n=>yt.loadAsync(n).then(o=>Object.values(o.files))},t)}static handleRefresh(){F.info("Refreshing application"),window.location.reload()}constructor(e){super(e),this.handleSettingsMenuHide=this.handleSettingsMenuHide.bind(this),this.handleSettingsMenuShow=this.handleSettingsMenuShow.bind(this),this.handleError=this.handleError.bind(this),this.handleControlSelect=this.handleControlSelect.bind(this),this.handleToolSelect=this.handleToolSelect.bind(this),this.handleClearFilter=this.handleClearFilter.bind(this),this.handleDataChange=this.handleDataChange.bind(this),this.handleAutoFillClick=this.handleAutoFillClick.bind(this),this.handleGoldenLayoutChange=this.handleGoldenLayoutChange.bind(this),this.handleLayoutConfigChange=this.handleLayoutConfigChange.bind(this),this.handleExportLayoutClick=this.handleExportLayoutClick.bind(this),this.handleImportLayoutClick=this.handleImportLayoutClick.bind(this),this.handleImportLayoutFiles=this.handleImportLayoutFiles.bind(this),this.handleResetLayoutClick=this.handleResetLayoutClick.bind(this),this.handleWidgetMenuClick=this.handleWidgetMenuClick.bind(this),this.handleWidgetsMenuClose=this.handleWidgetsMenuClose.bind(this),this.handleWidgetSelect=this.handleWidgetSelect.bind(this),this.handlePaste=this.handlePaste.bind(this),this.hydrateDefault=this.hydrateDefault.bind(this),this.openNotebookFromURL=this.openNotebookFromURL.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.handleReconnect=this.handleReconnect.bind(this),this.handleReconnectAuthFailed=this.handleReconnectAuthFailed.bind(this),this.importElement=te.createRef(),this.state={contextActions:[{action:()=>{this.handleToolSelect(de.LINKER)},shortcut:Te.LINKER,isGlobal:!0},{action:()=>{this.sendClearFilter()},shortcut:Ot.TABLE.CLEAR_ALL_FILTERS,isGlobal:!0},{action:()=>{F.debug("Consume unhandled save shortcut")},shortcut:Te.SAVE,isGlobal:!0}],isAuthFailed:!1,isDisconnected:!1,isPanelsMenuShown:!1,isSettingsMenuShown:!1,widgets:[]}}componentDidMount(){this.initWidgets(),this.startListeningForDisconnect(),window.addEventListener("beforeunload",q.handleWindowBeforeUnload)}componentDidUpdate(e){const{dashboardData:t}=this.props;e.dashboardData!==t&&this.handleDataChange(t)}componentWillUnmount(){this.deinitWidgets(),this.stopListeningForDisconnect(),window.removeEventListener("beforeunload",q.handleWindowBeforeUnload)}goldenLayout;importElement;widgetListenerRemover;initWidgets(){const{connection:e}=this.props;if(e.subscribeToFieldUpdates==null){F.warn("subscribeToFieldUpdates not supported, not initializing widgets");return}this.widgetListenerRemover=e.subscribeToFieldUpdates(t=>{F.debug("Got updates",t),this.setState(({widgets:n})=>{const{updated:o,created:r,removed:i}=t,l=[...o,...i],c=n.filter(u=>!l.some(h=>h.name===u.name));return[...o,...r].forEach(u=>{u.name!=null&&u.name!==""&&c.push(u)}),{widgets:c}})})}deinitWidgets(){this.widgetListenerRemover?.()}openNotebookFromURL(){const{match:e}=this.props,{notebookPath:t}=e.params;if(t){const{session:n,sessionConfig:o}=this.props;if(n==null||o==null){F.error("No session available to open notebook URL",t);return}const r={id:`/${t}`,itemName:`/${t}`},i=o.type,l={value:null,language:i};this.emitLayoutEvent(xn.SELECT_NOTEBOOK,n,i,l,r,!0)}}sendClearFilter(){this.emitLayoutEvent(oe.CLEAR_ALL_FILTERS)}emitLayoutEvent(e,...t){this.goldenLayout?.eventHub.emit(e,...t)}handleError(e){W.isCanceled(e)||F.error(e)}handleSettingsMenuHide(){this.setState({isSettingsMenuShown:!1})}handleSettingsMenuShow(){this.setState({isSettingsMenuShown:!0})}handleControlSelect(e,t){switch(F.debug("handleControlSelect",e),e){case V.DROPDOWN_FILTER:this.emitLayoutEvent(oe.OPEN_DROPDOWN,{title:"DropdownFilter",type:e,createNewStack:!0,dragEvent:t});break;case V.INPUT_FILTER:this.emitLayoutEvent(oe.OPEN_INPUT,{title:"InputFilter",type:e,createNewStack:!0,dragEvent:t});break;case V.MARKDOWN:this.emitLayoutEvent(En.OPEN,{title:"Markdown",type:e,dragEvent:t});break;case V.FILTER_SET_MANAGER:this.emitLayoutEvent(oe.OPEN_FILTER_SET_MANAGER,{title:"FilterSets",type:e,dragEvent:t});break;default:throw new Error(`Unrecognized control type ${e}`)}}handleToolSelect(e){F.debug("handleToolSelect",e);const{activeTool:t,setActiveTool:n}=this.props;n(t===e?de.DEFAULT:e)}handleClearFilter(){this.sendClearFilter()}handleDataChange(e){const{updateWorkspaceData:t}=this.props,{closed:n,filterSets:o,links:r}=e;t({closed:n,filterSets:o,links:r})}handleGoldenLayoutChange(e){this.goldenLayout=e}handleLayoutConfigChange(e){const{updateWorkspaceData:t}=this.props;t({layoutConfig:e})}handleWidgetMenuClick(){this.setState(({isPanelsMenuShown:e})=>({isPanelsMenuShown:!e}))}handleWidgetSelect(e,t){this.setState({isPanelsMenuShown:!1}),F.debug("handleWidgetSelect",e,t),this.openWidget(e,t)}handleWidgetsMenuClose(){this.setState({isPanelsMenuShown:!1})}handleAutoFillClick(){const{widgets:e}=this.state;F.debug("handleAutoFillClick",e);const t=e.sort((n,o)=>n.title!=null&&o.title!=null?n.title.localeCompare(o.title):0);for(let n=0;n<t.length;n+=1)this.openWidget(t[n])}handleExportLayoutClick(){F.info("handleExportLayoutClick"),this.setState({isPanelsMenuShown:!1});try{const{workspace:e}=this.props,{data:t}=e,n=ce.exportLayout(t);F.info("handleExportLayoutClick exportedConfig",n);const o=new Blob([JSON.stringify(n)],{type:"application/json"}),r=K.i18n.DateTimeFormat.format("yyyy-MM-dd-HHmmss",new Date),i=document.createElement("a");i.href=URL.createObjectURL(o),i.download=`deephaven-app-layout-${r}.json`,i.click()}catch(e){F.error("Unable to export layout",e)}}handleImportLayoutClick(){F.info("handleImportLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.importElement.current!=null&&(this.importElement.current.value="",this.importElement.current.click())}handleResetLayoutClick(){F.info("handleResetLayoutClick"),this.setState({isPanelsMenuShown:!1}),this.resetLayout()}handleImportLayoutFiles(e){e.stopPropagation(),e.preventDefault(),e.target.files!=null&&this.importLayoutFile(e.target.files?.[0])}handleDisconnect(){F.info("Disconnected from server"),this.setState({isDisconnected:!0})}handleReconnect(){F.info("Reconnected to server"),this.setState({isDisconnected:!1})}handleReconnectAuthFailed(){F.warn("Reconnect authentication failed"),this.setState({isAuthFailed:!0})}async importLayoutFile(e){try{const{updateDashboardData:t,updateWorkspaceData:n}=this.props,o=await e.text(),r=JSON.parse(o),{filterSets:i,layoutConfig:l,links:c}=ce.normalizeLayout(r);n({layoutConfig:l}),t(U,{filterSets:i,links:c})}catch(t){F.error("Unable to import layout",t)}}async resetLayout(){const{layoutStorage:e,session:t}=this.props,{filterSets:n,layoutConfig:o,links:r}=await ce.getDefaultLayout(e,t!==void 0),{updateDashboardData:i,updateWorkspaceData:l}=this.props;l({layoutConfig:o}),i(U,{filterSets:n,links:r})}handlePaste(e){if(e.target instanceof HTMLElement&&e.target.closest(".monaco-editor"))return;const{clipboardData:t}=e,n=t.getData("Text"),o=/“|”/g;o.test(n)&&(e.preventDefault(),e.stopPropagation(),document.execCommand("insertText",!1,n.replace(o,'"')))}startListeningForDisconnect(){const{connection:e}=this.props;e.addEventListener(K.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.addEventListener(K.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.addEventListener(K.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}stopListeningForDisconnect(){const{connection:e}=this.props;e.removeEventListener(K.IdeConnection.EVENT_DISCONNECT,this.handleDisconnect),e.removeEventListener(K.IdeConnection.EVENT_RECONNECT,this.handleReconnect),e.removeEventListener(K.CoreClient.EVENT_RECONNECT_AUTH_FAILED,this.handleReconnectAuthFailed)}hydrateDefault(e,t){const{connection:n}=this.props,{metadata:o}=e;if(o?.type!=null&&(o?.id!=null||o?.name!=null)){const r=o.id!=null?{type:o.type,id:o.id}:{type:o.type,name:o.name,title:o.name};return{fetch:()=>n.getObject(r),...e,localDashboardId:t}}return ze.hydrate(e,t)}openWidget(e,t){const{connection:n}=this.props;this.emitLayoutEvent(Rn.OPEN,{dragEvent:t,fetch:()=>n.getObject(e),widget:e})}getDashboardPlugins=sn(e=>[...e.entries()].filter(([,n])=>ks(n)||et(n)).map(([n,o])=>{if(et(o)){const{DashboardPlugin:i}=o;return a.jsx(i,{},n)}const{component:r}=o;return a.jsx(r,{},n)}));render(){const{activeTool:e,plugins:t,user:n,workspace:o,serverConfigValues:r}=this.props,{data:i}=o,{layoutConfig:l}=i,{permissions:c}=n,{canUsePanels:d}=c,{contextActions:u,isAuthFailed:h,isDisconnected:f,isPanelsMenuShown:v,isSettingsMenuShown:y,widgets:D}=this.state,w=this.getDashboardPlugins(t);return a.jsxs("div",{className:E("app-main-tabs","w-100","h-100","d-flex","flex-column",e?`active-tool-${e.toLowerCase()}`:""),onPaste:this.handlePaste,tabIndex:-1,children:[a.jsx("nav",{className:"nav-container",children:a.jsxs("div",{className:"app-main-top-nav-menus",children:[a.jsx("img",{src:_t,alt:"Deephaven Data Labs",width:"115px",className:"ml-1"}),a.jsxs("div",{children:[a.jsxs(T,{kind:"ghost",className:"btn-panels-menu",icon:ps,onClick:()=>{},children:["Controls",a.jsx(Oe,{handleControlSelect:this.handleControlSelect,handleToolSelect:this.handleToolSelect,onClearFilter:this.handleClearFilter})]}),d&&a.jsxs(T,{kind:"ghost",className:"btn-panels-menu btn-show-panels","data-testid":"app-main-panels-button",onClick:this.handleWidgetMenuClick,icon:fs,children:["Panels",a.jsx(js,{isShown:v,className:"panels-menu-popper",onExited:this.handleWidgetsMenuClose,options:{placement:"bottom"},closeOnBlur:!0,interactive:!0,children:a.jsx(Ha,{widgets:D,onExportLayout:this.handleExportLayoutClick,onImportLayout:this.handleImportLayoutClick,onResetLayout:this.handleResetLayoutClick,onSelect:this.handleWidgetSelect})})]}),a.jsx(T,{kind:"ghost",className:E("btn-settings-menu",{"text-warning":n.operateAs!=null&&n.operateAs!==n.name}),onClick:this.handleSettingsMenuShow,icon:a.jsxs("span",{className:"fa-layers",children:[a.jsx(x,{icon:gs,transform:"grow-3 right-1 down-1"}),f&&!h&&a.jsxs(a.Fragment,{children:[a.jsx(x,{icon:bs,color:le.background,transform:"grow-2 right-8 down-8.5 rotate-45"}),a.jsx(x,{icon:Xe,color:le.danger,transform:"shrink-5 right-6 down-6"})]})]}),tooltip:f&&!h?"Server disconnected":"User Settings"})]})]})}),a.jsxs(Js,{emptyDashboard:a.jsx(za,{onAutoFillClick:this.handleAutoFillClick}),id:U,layoutConfig:l,onGoldenLayoutChange:this.handleGoldenLayoutChange,onLayoutConfigChange:this.handleLayoutConfigChange,onLayoutInitialized:this.openNotebookFromURL,hydrate:this.hydrateDefault,children:[a.jsx(Nn,{hydrateConsole:q.hydrateConsole,notebooksUrl:new URL("notebooks/",document.baseURI).href}),w]}),a.jsx(St,{in:y,timeout:le.transitionMidMs,classNames:"slide-left",mountOnEnter:!0,unmountOnExit:!0,children:a.jsx(_,{serverConfigValues:r,onDone:this.handleSettingsMenuHide,user:n})}),a.jsx(Os,{actions:u}),a.jsx("input",{ref:this.importElement,type:"file",accept:".json",style:{display:"none"},onChange:this.handleImportLayoutFiles}),a.jsx(Is,{isOpen:f&&!h,debounceMs:1e3,children:a.jsx(Ls,{icon:Xe,title:a.jsxs(a.Fragment,{children:[a.jsx(vs,{})," Attempting to reconnect..."]}),subtitle:"Please check your network connection."})}),a.jsx(Ps,{confirmButtonText:"Refresh",onConfirm:q.handleRefresh,isOpen:h,headerText:"Authentication failed",bodyText:"Credentials are invalid. Please refresh your browser to try and reconnect."})]})}}const to=s=>({activeTool:Cn(s),dashboardData:Tn(s,U),layoutStorage:Ba(s),plugins:wn(s),connection:Fn(s,U),session:He(s,U)?.session,sessionConfig:He(s,U)?.config,user:Dn(s),workspace:Lt(s),serverConfigValues:Za(s)}),no=ne(to,{setActiveTool:It,updateDashboardData:yn,updateWorkspaceData:Sn})(nn(q));function so(){return a.jsxs("div",{className:"app",children:[a.jsx(no,{}),a.jsx(As,{})]})}const ao=k.module("LocalWorkspaceStorage");class J{static STORAGE_KEY="deephaven.WorkspaceStorage";static async makeDefaultWorkspaceData(e,t){const{filterSets:n,links:o,layoutConfig:r}=await ce.getDefaultLayout(e,t?.isConsoleAvailable);return{settings:{defaultDateTimeFormat:L.DEFAULT_DATETIME_FORMAT_STRING,formatter:[],timeZone:L.DEFAULT_TIME_ZONE_ID,showTimeZone:!1,showTSeparator:!0,disableMoveConfirmation:!1,defaultDecimalFormatOptions:{defaultFormatString:I.DEFAULT_FORMAT_STRING},defaultIntegerFormatOptions:{defaultFormatString:O.DEFAULT_FORMAT_STRING},truncateNumbersWithPound:!1,defaultNotebookSettings:{isMinimapEnabled:!1}},layoutConfig:r,closed:[{}],links:o,filterSets:n}}static async makeDefaultWorkspace(e,t){return{data:await J.makeDefaultWorkspaceData(e,t)}}layoutStorage;constructor(e){this.layoutStorage=e}async load(e){try{return JSON.parse(localStorage.getItem(J.STORAGE_KEY)??"")}catch{return ao.info("Unable to load workspace data, initializing to default data"),J.makeDefaultWorkspace(this.layoutStorage,e)}}async save(e){return localStorage.setItem(J.STORAGE_KEY,JSON.stringify(e)),e}}class oo{storageService;root;constructor(e,t=""){this.storageService=e,this.root=t}async getLayouts(){return(await this.storageService.listItems(this.root,"*.json")).map(t=>t.basename)}async getLayout(e){const n=await(await this.storageService.loadFile(`${this.root}/${e}`)).text();return JSON.parse(n)}}const Q=k.module("GrpcFileStorageTable");class ue{static REFRESH_DEBOUNCE=50;storageService;baseRoot;root;currentSize=0;currentViewport;listeners=[];viewportUpdatePromise;currentViewportData;childTables=new Map;constructor(e,t="",n=t){this.storageService=e,this.baseRoot=t,this.root=n,n===t&&(this.doRefresh=De(this.doRefresh.bind(this),ue.REFRESH_DEBOUNCE))}removeBaseRoot(e){return H.removeRoot(this.baseRoot,e)}getViewportData(){return this.viewportUpdatePromise||this.refreshInternal(),this.viewportUpdatePromise??Promise.resolve({items:[],offset:0})}getSnapshot(e){throw new Error("Method not implemented.")}get size(){return this.currentSize}setExpanded(e,t){const n=e.split("/");let o=n.shift();if((o===void 0||o==="")&&(o=n.shift()),o===void 0||o==="")throw new Error(`Invalid path: ${e}`);const r=n.join("/");if(t){if(!this.childTables.has(o)){const i=new ue(this.storageService,this.baseRoot,`${this.root}/${o}`);this.childTables.set(o,i)}r&&this.childTables.get(o)?.setExpanded(r,t)}else this.childTables.has(o)&&(r?this.childTables.get(o)?.setExpanded(r,t):this.childTables.delete(o));this.currentViewport&&this.refreshInternal()}collapseAll(){this.childTables.clear(),this.currentViewport&&this.refreshInternal()}setSearch(e){throw new Error("Method not implemented.")}setViewport(e){this.currentViewport=e,this.refreshInternal()}setFilters(){throw new Error("Method not implemented.")}setSorts(){throw new Error("Method not implemented.")}setReversed(){throw new Error("Method not implemented.")}close(){this.listeners=[]}onUpdate(e){return this.listeners=[...this.listeners,e],()=>{this.listeners=this.listeners.filter(t=>t!==e)}}doRefresh(e){Q.debug2("doRefresh",this.root),e(this.fetchData())}refresh(){Q.debug2("refresh",this.root),this.viewportUpdatePromise?.cancel();const e=new Promise(n=>{this.doRefresh(n)}),t=W.makeCancelable(e.then(n=>{if(this.viewportUpdatePromise!==t)throw new Ms;return this.currentViewportData=n,this.sendUpdate(),n}));t.catch(n=>{W.isCanceled(n)||Q.error("Error updating viewport",n)}),this.viewportUpdatePromise=t}refreshInternal(){try{this.refresh()}catch(e){W.isCanceled(e)||Q.error("Unable to refresh data",e)}}async fetchData(){const{currentViewport:e}=this;if(!e)throw new Error("No viewport set");let n=(await this.storageService.listItems(this.root)).map(o=>({type:o.type,filename:this.removeBaseRoot(o.filename),basename:o.basename,id:this.removeBaseRoot(o.filename),isExpanded:o.type==="directory"?this.childTables.has(o.basename):void 0})).sort((o,r)=>o.type!==r.type?o.type==="directory"?-1:1:o.basename.localeCompare(r.basename));for(let o=0;o<n.length;o+=1){const r=n[o],{basename:i,filename:l}=r;if(l===this.removeBaseRoot(`${this.root}/${i}`)&&r.type==="directory"){const c=this.childTables.get(i);if(c!=null){c.setViewport({top:0,bottom:e.bottom-o});const d=await c.getViewportData();n.splice(o+1,0,...d.items)}}}return this.currentSize=n.length,Q.debug2(this.root,"items",n,e),n=n.slice(e.top,e.bottom),{items:n,offset:e.top}}sendUpdate(){const{listeners:e}=this,t=this.currentViewportData??{items:[],offset:0};for(let n=0;n<e.length;n+=1)e[n](t)}}const ro=k.module("GrpcFileStorage");class Ie{static REFRESH_THROTTLE=150;storageService;tables=[];root;constructor(e,t=""){this.storageService=e,this.root=t}removeRoot(e){return H.removeRoot(this.root,e)}addRoot(e){return H.addRoot(this.root,e)}async createDirectory(e){return await this.storageService.createDirectory(this.addRoot(e)),this.refreshTables(),{type:"directory",id:e,filename:e,basename:H.getBaseName(e)}}async getTable(){const e=new ue(this.storageService,this.root);return this.tables.push(e),e}async saveFile(e){const t=dh.storage.FileContents.text(e.content);return await this.storageService.saveFile(this.addRoot(e.filename),t,!0),this.refreshTables(),e}async loadFile(e){const n=await(await this.storageService.loadFile(this.addRoot(e))).text();return{filename:e,basename:H.getBaseName(e),content:n}}async copyFile(e,t){const n=await this.storageService.loadFile(this.addRoot(e));await this.storageService.saveFile(this.addRoot(t),n,!1),this.refreshTables()}async deleteFile(e){await this.storageService.deleteItem(this.addRoot(e)),this.refreshTables()}async moveFile(e,t){await this.storageService.moveItem(this.addRoot(e),this.addRoot(t)),this.refreshTables()}async info(e){const t=await this.storageService.listItems(this.addRoot(H.getPath(e)),H.getBaseName(e));if(t.length===0)throw new jn;if(t.length>1)throw ro.error("More than one matching file found, should never happen.",t),new Error("More than one matching file found");const n=t[0];return{filename:this.removeRoot(n.filename),basename:n.basename,id:this.removeRoot(n.filename),type:n.type}}refreshTables=bt(()=>{this.tables.forEach(e=>e.refresh())},Ie.REFRESH_THROTTLE)}const io=k.module("AppInit");function Le(s){const{workspace:e,setActiveTool:t,setApi:n,setCommandHistoryStorage:o,setDashboardData:r,setFileStorage:i,setLayoutStorage:l,setDashboardConnection:c,setDashboardSessionWrapper:d,setPlugins:u,setUser:h,setWorkspace:f,setWorkspaceStorage:v,setServerConfigValues:y}=s,D=Pt(),w=_s(),S=Us(),N=$s(),C=Vs(),p=Gs(),[g,se]=m.useState();m.useEffect(function(){u(N)},[N,u]),m.useEffect(function(){async function Ht(){try{const ae=await Ws(),me=await Ks(D,S,ae),Me=w.getStorageService(),_e=new oo(Me,"/layouts"),zt=new Ie(Me,"/notebooks"),Ue=new J(_e),Yt=new va,$e=await Ue.load({isConsoleAvailable:me!==void 0}),{data:pe}=$e,{settings:B}=pe;B.defaultDecimalFormatOptions===void 0&&(B.defaultDecimalFormatOptions={defaultFormatString:I.DEFAULT_FORMAT_STRING}),B.defaultIntegerFormatOptions===void 0&&(B.defaultIntegerFormatOptions={defaultFormatString:O.DEFAULT_FORMAT_STRING}),B.truncateNumbersWithPound===void 0&&(B.truncateNumbersWithPound=!1);const{shortcutOverrides:We={}}=B,qt=M.isMacPlatform?We.mac??{}:We.windows??{};Object.entries(qt).forEach(([Xt,Qt])=>{Re.get(Xt)?.setKeyState(Qt)});const Jt={filterSets:pe.filterSets,links:pe.links};n(D),t(de.DEFAULT),y(C),o(Yt),r(U,Jt),i(zt),l(_e),c(U,S),me!==void 0&&d(U,me),h(p),v(Ue),f($e)}catch(ae){io.error(ae),se(ae)}}Ht()},[D,w,S,C,t,n,o,r,i,l,c,d,h,f,v,y,p]);const Pe=e==null&&g==null,ke=!Pe&&g==null,Ae=g!=null?`${g}`:null;return a.jsxs(a.Fragment,{children:[ke&&a.jsx(so,{}),a.jsx(ys,{isLoading:Pe&&Ae==null,isLoaded:ke,errorMessage:Ae})]})}Le.propTypes={workspace:b.shape({}),workspaceStorage:b.shape({close:b.func}),setActiveTool:b.func.isRequired,setApi:b.func.isRequired,setCommandHistoryStorage:b.func.isRequired,setDashboardData:b.func.isRequired,setFileStorage:b.func.isRequired,setLayoutStorage:b.func.isRequired,setDashboardConnection:b.func.isRequired,setDashboardSessionWrapper:b.func.isRequired,setPlugins:b.func.isRequired,setUser:b.func.isRequired,setWorkspace:b.func.isRequired,setWorkspaceStorage:b.func.isRequired};Le.defaultProps={workspace:null,workspaceStorage:null};const lo=s=>({workspace:Lt(s),workspaceStorage:Kn(s)}),gt=ne(lo,{setActiveTool:It,setApi:On,setCommandHistoryStorage:In,setDashboardData:Ln,setFileStorage:Pn,setLayoutStorage:ya,setDashboardConnection:kn,setDashboardSessionWrapper:An,setPlugins:Mn,setUser:_n,setWorkspace:Un,setWorkspaceStorage:$n,setServerConfigValues:Wn})(Le),co=document.location.pathname;function ho(){return a.jsx(an,{basename:co,children:a.jsxs(on,{children:[a.jsx(Ke,{exact:!0,path:"/",component:gt}),a.jsx(Ke,{path:"/notebooks/:notebookPath+",component:gt}),a.jsx(rn,{from:"*",to:"/"})]})})}function Co(){return Vn.register(new URL("./download/serviceWorker.js",window.location.href)),Gn.init({getWorker:()=>new cn}),window["__react-beautiful-dnd-disable-dev-warnings"]=!0,a.jsx(ln,{store:jt,children:a.jsx(ho,{})})}export{Co as AppRoot,Co as default};
6
- //# sourceMappingURL=AppRoot-29c1585f.js.map