@deephaven/app-utils 0.86.1 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"AppBootstrap.d.ts","sourceRoot":"","sources":["../../src/components/AppBootstrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AAMxD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAWhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEzC,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAmCjC;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AppBootstrap.d.ts","sourceRoot":"","sources":["../../src/components/AppBootstrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,OAAO,gDAAgD,CAAC;AAMxD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAWhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEzC,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAwCjC;AAED,eAAe,YAAY,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import React, { useCallback, useMemo, useState } from 'react';
2
+ import { Provider } from 'react-redux';
3
+ import { store } from '@deephaven/redux';
2
4
  import '@deephaven/components/scss/BaseStyleSheet.scss';
3
5
  import { ClientBootstrap } from '@deephaven/jsapi-bootstrap';
4
6
  import { RefreshTokenBootstrap, useBroadcastLoginListener } from '@deephaven/jsapi-components';
@@ -33,29 +35,32 @@ export function AppBootstrap(_ref) {
33
35
  setLogoutCount(value => value + 1);
34
36
  }, []);
35
37
  useBroadcastLoginListener(onLogin, onLogout);
36
- return /*#__PURE__*/_jsx(FontBootstrap, {
37
- fontClassNames: fontClassNames,
38
- children: /*#__PURE__*/_jsx(PluginsBootstrap, {
39
- getCorePlugins: getCorePlugins,
40
- pluginsUrl: pluginsUrl,
41
- children: /*#__PURE__*/_jsx(ThemeBootstrap, {
42
- children: /*#__PURE__*/_jsx(ClientBootstrap, {
43
- serverUrl: serverUrl,
44
- options: clientOptions,
45
- children: /*#__PURE__*/_jsx(RefreshTokenBootstrap, {
46
- children: /*#__PURE__*/_jsx(AuthBootstrap, {
47
- children: /*#__PURE__*/_jsx(ServerConfigBootstrap, {
48
- children: /*#__PURE__*/_jsx(UserBootstrap, {
49
- children: /*#__PURE__*/_jsx(ConnectionBootstrap, {
50
- children: /*#__PURE__*/_jsx(FontsLoaded, {
51
- children: children
38
+ return /*#__PURE__*/_jsx(Provider, {
39
+ store: store,
40
+ children: /*#__PURE__*/_jsx(FontBootstrap, {
41
+ fontClassNames: fontClassNames,
42
+ children: /*#__PURE__*/_jsx(PluginsBootstrap, {
43
+ getCorePlugins: getCorePlugins,
44
+ pluginsUrl: pluginsUrl,
45
+ children: /*#__PURE__*/_jsx(ThemeBootstrap, {
46
+ children: /*#__PURE__*/_jsx(ClientBootstrap, {
47
+ serverUrl: serverUrl,
48
+ options: clientOptions,
49
+ children: /*#__PURE__*/_jsx(RefreshTokenBootstrap, {
50
+ children: /*#__PURE__*/_jsx(AuthBootstrap, {
51
+ children: /*#__PURE__*/_jsx(ServerConfigBootstrap, {
52
+ children: /*#__PURE__*/_jsx(UserBootstrap, {
53
+ children: /*#__PURE__*/_jsx(ConnectionBootstrap, {
54
+ children: /*#__PURE__*/_jsx(FontsLoaded, {
55
+ children: children
56
+ })
52
57
  })
53
58
  })
54
59
  })
55
60
  })
56
61
  })
57
- })
58
- }, logoutCount)
62
+ }, logoutCount)
63
+ })
59
64
  })
60
65
  })
61
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AppBootstrap.js","names":["React","useCallback","useMemo","useState","ClientBootstrap","RefreshTokenBootstrap","useBroadcastLoginListener","FontBootstrap","PluginsBootstrap","AuthBootstrap","ConnectionBootstrap","getConnectOptions","FontsLoaded","UserBootstrap","ServerConfigBootstrap","ThemeBootstrap","jsx","_jsx","AppBootstrap","_ref","fontClassNames","pluginsUrl","getCorePlugins","serverUrl","children","clientOptions","logoutCount","setLogoutCount","onLogin","undefined","onLogout","value","options"],"sources":["../../src/components/AppBootstrap.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport '@deephaven/components/scss/BaseStyleSheet.scss';\nimport { ClientBootstrap } from '@deephaven/jsapi-bootstrap';\nimport {\n RefreshTokenBootstrap,\n useBroadcastLoginListener,\n} from '@deephaven/jsapi-components';\nimport { type Plugin } from '@deephaven/plugin';\nimport FontBootstrap from './FontBootstrap';\nimport PluginsBootstrap from './PluginsBootstrap';\nimport AuthBootstrap from './AuthBootstrap';\nimport ConnectionBootstrap from './ConnectionBootstrap';\nimport { getConnectOptions } from '../utils';\nimport FontsLoaded from './FontsLoaded';\nimport UserBootstrap from './UserBootstrap';\nimport ServerConfigBootstrap from './ServerConfigBootstrap';\nimport ThemeBootstrap from './ThemeBootstrap';\n\nexport type AppBootstrapProps = {\n /** URL of the server. */\n serverUrl: string;\n\n /** URL of the plugins to load. */\n pluginsUrl: string;\n\n /** The core plugins to load. */\n getCorePlugins?: () => Promise<Plugin[]>;\n\n /** Font class names to load. */\n fontClassNames?: string[];\n\n /**\n * The children to render wrapped when everything is loaded and authenticated.\n */\n children: React.ReactNode;\n};\n\n/**\n * AppBootstrap component. Handles loading the fonts, client, and authentication.\n * Will display the children when everything is loaded and authenticated.\n */\nexport function AppBootstrap({\n fontClassNames,\n pluginsUrl,\n getCorePlugins,\n serverUrl,\n children,\n}: AppBootstrapProps): JSX.Element {\n const clientOptions = useMemo(() => getConnectOptions(), []);\n\n // On logout, we reset the client and have user login again\n const [logoutCount, setLogoutCount] = useState(0);\n const onLogin = useCallback(() => undefined, []);\n const onLogout = useCallback(() => {\n setLogoutCount(value => value + 1);\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n return (\n <FontBootstrap fontClassNames={fontClassNames}>\n <PluginsBootstrap getCorePlugins={getCorePlugins} pluginsUrl={pluginsUrl}>\n <ThemeBootstrap>\n <ClientBootstrap\n serverUrl={serverUrl}\n options={clientOptions}\n key={logoutCount}\n >\n <RefreshTokenBootstrap>\n <AuthBootstrap>\n <ServerConfigBootstrap>\n <UserBootstrap>\n <ConnectionBootstrap>\n <FontsLoaded>{children}</FontsLoaded>\n </ConnectionBootstrap>\n </UserBootstrap>\n </ServerConfigBootstrap>\n </AuthBootstrap>\n </RefreshTokenBootstrap>\n </ClientBootstrap>\n </ThemeBootstrap>\n </PluginsBootstrap>\n </FontBootstrap>\n );\n}\n\nexport default AppBootstrap;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,OAAO,gDAAgD;AACvD,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SACEC,qBAAqB,EACrBC,yBAAyB,QACpB,6BAA6B;AAAC,OAE9BC,aAAa;AAAA,OACbC,gBAAgB;AAAA,OAChBC,aAAa;AAAA,OACbC,mBAAmB;AAAA,SACjBC,iBAAiB;AAAA,OACnBC,WAAW;AAAA,OACXC,aAAa;AAAA,OACbC,qBAAqB;AAAA,OACrBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAqBrB;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAAC,IAAA,EAMO;EAAA,IANN;IAC3BC,cAAc;IACdC,UAAU;IACVC,cAAc;IACdC,SAAS;IACTC;EACiB,CAAC,GAAAL,IAAA;EAClB,IAAMM,aAAa,GAAGvB,OAAO,CAAC,MAAMS,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC;;EAE5D;EACA,IAAM,CAACe,WAAW,EAAEC,cAAc,CAAC,GAAGxB,QAAQ,CAAC,CAAC,CAAC;EACjD,IAAMyB,OAAO,GAAG3B,WAAW,CAAC,MAAM4B,SAAS,EAAE,EAAE,CAAC;EAChD,IAAMC,QAAQ,GAAG7B,WAAW,CAAC,MAAM;IACjC0B,cAAc,CAACI,KAAK,IAAIA,KAAK,GAAG,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EACNzB,yBAAyB,CAACsB,OAAO,EAAEE,QAAQ,CAAC;EAC5C,oBACEb,IAAA,CAACV,aAAa;IAACa,cAAc,EAAEA,cAAe;IAAAI,QAAA,eAC5CP,IAAA,CAACT,gBAAgB;MAACc,cAAc,EAAEA,cAAe;MAACD,UAAU,EAAEA,UAAW;MAAAG,QAAA,eACvEP,IAAA,CAACF,cAAc;QAAAS,QAAA,eACbP,IAAA,CAACb,eAAe;UACdmB,SAAS,EAAEA,SAAU;UACrBS,OAAO,EAAEP,aAAc;UAAAD,QAAA,eAGvBP,IAAA,CAACZ,qBAAqB;YAAAmB,QAAA,eACpBP,IAAA,CAACR,aAAa;cAAAe,QAAA,eACZP,IAAA,CAACH,qBAAqB;gBAAAU,QAAA,eACpBP,IAAA,CAACJ,aAAa;kBAAAW,QAAA,eACZP,IAAA,CAACP,mBAAmB;oBAAAc,QAAA,eAClBP,IAAA,CAACL,WAAW;sBAAAY,QAAA,EAAEA;oBAAQ,CAAc;kBAAC,CAClB;gBAAC,CACT;cAAC,CACK;YAAC,CACX;UAAC,CACK;QAAC,GAZnBE,WAaU;MAAC,CACJ;IAAC,CACD;EAAC,CACN,CAAC;AAEpB;AAEA,eAAeR,YAAY"}
1
+ {"version":3,"file":"AppBootstrap.js","names":["React","useCallback","useMemo","useState","Provider","store","ClientBootstrap","RefreshTokenBootstrap","useBroadcastLoginListener","FontBootstrap","PluginsBootstrap","AuthBootstrap","ConnectionBootstrap","getConnectOptions","FontsLoaded","UserBootstrap","ServerConfigBootstrap","ThemeBootstrap","jsx","_jsx","AppBootstrap","_ref","fontClassNames","pluginsUrl","getCorePlugins","serverUrl","children","clientOptions","logoutCount","setLogoutCount","onLogin","undefined","onLogout","value","options"],"sources":["../../src/components/AppBootstrap.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { Provider } from 'react-redux';\nimport { store } from '@deephaven/redux';\nimport '@deephaven/components/scss/BaseStyleSheet.scss';\nimport { ClientBootstrap } from '@deephaven/jsapi-bootstrap';\nimport {\n RefreshTokenBootstrap,\n useBroadcastLoginListener,\n} from '@deephaven/jsapi-components';\nimport { type Plugin } from '@deephaven/plugin';\nimport FontBootstrap from './FontBootstrap';\nimport PluginsBootstrap from './PluginsBootstrap';\nimport AuthBootstrap from './AuthBootstrap';\nimport ConnectionBootstrap from './ConnectionBootstrap';\nimport { getConnectOptions } from '../utils';\nimport FontsLoaded from './FontsLoaded';\nimport UserBootstrap from './UserBootstrap';\nimport ServerConfigBootstrap from './ServerConfigBootstrap';\nimport ThemeBootstrap from './ThemeBootstrap';\n\nexport type AppBootstrapProps = {\n /** URL of the server. */\n serverUrl: string;\n\n /** URL of the plugins to load. */\n pluginsUrl: string;\n\n /** The core plugins to load. */\n getCorePlugins?: () => Promise<Plugin[]>;\n\n /** Font class names to load. */\n fontClassNames?: string[];\n\n /**\n * The children to render wrapped when everything is loaded and authenticated.\n */\n children: React.ReactNode;\n};\n\n/**\n * AppBootstrap component. Handles loading the fonts, client, and authentication.\n * Will display the children when everything is loaded and authenticated.\n */\nexport function AppBootstrap({\n fontClassNames,\n pluginsUrl,\n getCorePlugins,\n serverUrl,\n children,\n}: AppBootstrapProps): JSX.Element {\n const clientOptions = useMemo(() => getConnectOptions(), []);\n\n // On logout, we reset the client and have user login again\n const [logoutCount, setLogoutCount] = useState(0);\n const onLogin = useCallback(() => undefined, []);\n const onLogout = useCallback(() => {\n setLogoutCount(value => value + 1);\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n return (\n <Provider store={store}>\n <FontBootstrap fontClassNames={fontClassNames}>\n <PluginsBootstrap\n getCorePlugins={getCorePlugins}\n pluginsUrl={pluginsUrl}\n >\n <ThemeBootstrap>\n <ClientBootstrap\n serverUrl={serverUrl}\n options={clientOptions}\n key={logoutCount}\n >\n <RefreshTokenBootstrap>\n <AuthBootstrap>\n <ServerConfigBootstrap>\n <UserBootstrap>\n <ConnectionBootstrap>\n <FontsLoaded>{children}</FontsLoaded>\n </ConnectionBootstrap>\n </UserBootstrap>\n </ServerConfigBootstrap>\n </AuthBootstrap>\n </RefreshTokenBootstrap>\n </ClientBootstrap>\n </ThemeBootstrap>\n </PluginsBootstrap>\n </FontBootstrap>\n </Provider>\n );\n}\n\nexport default AppBootstrap;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,KAAK,QAAQ,kBAAkB;AACxC,OAAO,gDAAgD;AACvD,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SACEC,qBAAqB,EACrBC,yBAAyB,QACpB,6BAA6B;AAAC,OAE9BC,aAAa;AAAA,OACbC,gBAAgB;AAAA,OAChBC,aAAa;AAAA,OACbC,mBAAmB;AAAA,SACjBC,iBAAiB;AAAA,OACnBC,WAAW;AAAA,OACXC,aAAa;AAAA,OACbC,qBAAqB;AAAA,OACrBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAqBrB;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAAC,IAAA,EAMO;EAAA,IANN;IAC3BC,cAAc;IACdC,UAAU;IACVC,cAAc;IACdC,SAAS;IACTC;EACiB,CAAC,GAAAL,IAAA;EAClB,IAAMM,aAAa,GAAGzB,OAAO,CAAC,MAAMW,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC;;EAE5D;EACA,IAAM,CAACe,WAAW,EAAEC,cAAc,CAAC,GAAG1B,QAAQ,CAAC,CAAC,CAAC;EACjD,IAAM2B,OAAO,GAAG7B,WAAW,CAAC,MAAM8B,SAAS,EAAE,EAAE,CAAC;EAChD,IAAMC,QAAQ,GAAG/B,WAAW,CAAC,MAAM;IACjC4B,cAAc,CAACI,KAAK,IAAIA,KAAK,GAAG,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EACNzB,yBAAyB,CAACsB,OAAO,EAAEE,QAAQ,CAAC;EAC5C,oBACEb,IAAA,CAACf,QAAQ;IAACC,KAAK,EAAEA,KAAM;IAAAqB,QAAA,eACrBP,IAAA,CAACV,aAAa;MAACa,cAAc,EAAEA,cAAe;MAAAI,QAAA,eAC5CP,IAAA,CAACT,gBAAgB;QACfc,cAAc,EAAEA,cAAe;QAC/BD,UAAU,EAAEA,UAAW;QAAAG,QAAA,eAEvBP,IAAA,CAACF,cAAc;UAAAS,QAAA,eACbP,IAAA,CAACb,eAAe;YACdmB,SAAS,EAAEA,SAAU;YACrBS,OAAO,EAAEP,aAAc;YAAAD,QAAA,eAGvBP,IAAA,CAACZ,qBAAqB;cAAAmB,QAAA,eACpBP,IAAA,CAACR,aAAa;gBAAAe,QAAA,eACZP,IAAA,CAACH,qBAAqB;kBAAAU,QAAA,eACpBP,IAAA,CAACJ,aAAa;oBAAAW,QAAA,eACZP,IAAA,CAACP,mBAAmB;sBAAAc,QAAA,eAClBP,IAAA,CAACL,WAAW;wBAAAY,QAAA,EAAEA;sBAAQ,CAAc;oBAAC,CAClB;kBAAC,CACT;gBAAC,CACK;cAAC,CACX;YAAC,CACK;UAAC,GAZnBE,WAaU;QAAC,CACJ;MAAC,CACD;IAAC,CACN;EAAC,CACR,CAAC;AAEf;AAEA,eAAeR,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeBootstrap.d.ts","sourceRoot":"","sources":["../../src/components/ThemeBootstrap.tsx"],"names":[],"mappings":";AAOA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAqB7E;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ThemeBootstrap.d.ts","sourceRoot":"","sources":["../../src/components/ThemeBootstrap.tsx"],"names":[],"mappings":";AASA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAyB7E;AAED,eAAe,cAAc,CAAC"}
@@ -4,6 +4,8 @@ import { MonacoThemeProvider } from '@deephaven/console';
4
4
  import { ThemeProvider } from '@deephaven/components';
5
5
  import { IrisGridThemeProvider } from '@deephaven/iris-grid';
6
6
  import { getThemeDataFromPlugins, PluginsContext } from '@deephaven/plugin';
7
+ import { getSettings } from '@deephaven/redux';
8
+ import { useAppSelector } from '@deephaven/dashboard';
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
10
  export function ThemeBootstrap(_ref) {
9
11
  var {
@@ -14,11 +16,13 @@ export function ThemeBootstrap(_ref) {
14
16
  // directly to avoid the exception.
15
17
  var pluginModules = useContext(PluginsContext);
16
18
  var themes = useMemo(() => pluginModules == null ? null : getThemeDataFromPlugins(pluginModules), [pluginModules]);
19
+ var settings = useAppSelector(getSettings);
17
20
  return /*#__PURE__*/_jsx(ThemeProvider, {
18
21
  themes: themes,
19
22
  children: /*#__PURE__*/_jsx(ChartThemeProvider, {
20
23
  children: /*#__PURE__*/_jsx(MonacoThemeProvider, {
21
24
  children: /*#__PURE__*/_jsx(IrisGridThemeProvider, {
25
+ density: settings.gridDensity,
22
26
  children: children
23
27
  })
24
28
  })
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeBootstrap.js","names":["useContext","useMemo","ChartThemeProvider","MonacoThemeProvider","ThemeProvider","IrisGridThemeProvider","getThemeDataFromPlugins","PluginsContext","jsx","_jsx","ThemeBootstrap","_ref","children","pluginModules","themes"],"sources":["../../src/components/ThemeBootstrap.tsx"],"sourcesContent":["import { useContext, useMemo } from 'react';\nimport { ChartThemeProvider } from '@deephaven/chart';\nimport { MonacoThemeProvider } from '@deephaven/console';\nimport { ThemeProvider } from '@deephaven/components';\nimport { IrisGridThemeProvider } from '@deephaven/iris-grid';\nimport { getThemeDataFromPlugins, PluginsContext } from '@deephaven/plugin';\n\nexport interface ThemeBootstrapProps {\n children: React.ReactNode;\n}\n\nexport function ThemeBootstrap({ children }: ThemeBootstrapProps): JSX.Element {\n // The `usePlugins` hook throws if the context value is null. Since this is\n // the state while plugins load asynchronously, we are using `useContext`\n // directly to avoid the exception.\n const pluginModules = useContext(PluginsContext);\n\n const themes = useMemo(\n () =>\n pluginModules == null ? null : getThemeDataFromPlugins(pluginModules),\n [pluginModules]\n );\n\n return (\n <ThemeProvider themes={themes}>\n <ChartThemeProvider>\n <MonacoThemeProvider>\n <IrisGridThemeProvider>{children}</IrisGridThemeProvider>\n </MonacoThemeProvider>\n </ChartThemeProvider>\n </ThemeProvider>\n );\n}\n\nexport default ThemeBootstrap;\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,mBAAmB,QAAQ,oBAAoB;AACxD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,uBAAuB,EAAEC,cAAc,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM5E,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAAiD;EAAA,IAAhD;IAAEC;EAA8B,CAAC,GAAAD,IAAA;EAC9D;EACA;EACA;EACA,IAAME,aAAa,GAAGb,UAAU,CAACO,cAAc,CAAC;EAEhD,IAAMO,MAAM,GAAGb,OAAO,CACpB,MACEY,aAAa,IAAI,IAAI,GAAG,IAAI,GAAGP,uBAAuB,CAACO,aAAa,CAAC,EACvE,CAACA,aAAa,CAChB,CAAC;EAED,oBACEJ,IAAA,CAACL,aAAa;IAACU,MAAM,EAAEA,MAAO;IAAAF,QAAA,eAC5BH,IAAA,CAACP,kBAAkB;MAAAU,QAAA,eACjBH,IAAA,CAACN,mBAAmB;QAAAS,QAAA,eAClBH,IAAA,CAACJ,qBAAqB;UAAAO,QAAA,EAAEA;QAAQ,CAAwB;MAAC,CACtC;IAAC,CACJ;EAAC,CACR,CAAC;AAEpB;AAEA,eAAeF,cAAc"}
1
+ {"version":3,"file":"ThemeBootstrap.js","names":["useContext","useMemo","ChartThemeProvider","MonacoThemeProvider","ThemeProvider","IrisGridThemeProvider","getThemeDataFromPlugins","PluginsContext","getSettings","useAppSelector","jsx","_jsx","ThemeBootstrap","_ref","children","pluginModules","themes","settings","density","gridDensity"],"sources":["../../src/components/ThemeBootstrap.tsx"],"sourcesContent":["import { useContext, useMemo } from 'react';\nimport { ChartThemeProvider } from '@deephaven/chart';\nimport { MonacoThemeProvider } from '@deephaven/console';\nimport { ThemeProvider } from '@deephaven/components';\nimport { IrisGridThemeProvider } from '@deephaven/iris-grid';\nimport { getThemeDataFromPlugins, PluginsContext } from '@deephaven/plugin';\nimport { getSettings } from '@deephaven/redux';\nimport { useAppSelector } from '@deephaven/dashboard';\n\nexport interface ThemeBootstrapProps {\n children: React.ReactNode;\n}\n\nexport function ThemeBootstrap({ children }: ThemeBootstrapProps): JSX.Element {\n // The `usePlugins` hook throws if the context value is null. Since this is\n // the state while plugins load asynchronously, we are using `useContext`\n // directly to avoid the exception.\n const pluginModules = useContext(PluginsContext);\n\n const themes = useMemo(\n () =>\n pluginModules == null ? null : getThemeDataFromPlugins(pluginModules),\n [pluginModules]\n );\n\n const settings = useAppSelector(getSettings);\n\n return (\n <ThemeProvider themes={themes}>\n <ChartThemeProvider>\n <MonacoThemeProvider>\n <IrisGridThemeProvider density={settings.gridDensity}>\n {children}\n </IrisGridThemeProvider>\n </MonacoThemeProvider>\n </ChartThemeProvider>\n </ThemeProvider>\n );\n}\n\nexport default ThemeBootstrap;\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SAASC,mBAAmB,QAAQ,oBAAoB;AACxD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,uBAAuB,EAAEC,cAAc,QAAQ,mBAAmB;AAC3E,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,cAAc,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMtD,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAAiD;EAAA,IAAhD;IAAEC;EAA8B,CAAC,GAAAD,IAAA;EAC9D;EACA;EACA;EACA,IAAME,aAAa,GAAGf,UAAU,CAACO,cAAc,CAAC;EAEhD,IAAMS,MAAM,GAAGf,OAAO,CACpB,MACEc,aAAa,IAAI,IAAI,GAAG,IAAI,GAAGT,uBAAuB,CAACS,aAAa,CAAC,EACvE,CAACA,aAAa,CAChB,CAAC;EAED,IAAME,QAAQ,GAAGR,cAAc,CAACD,WAAW,CAAC;EAE5C,oBACEG,IAAA,CAACP,aAAa;IAACY,MAAM,EAAEA,MAAO;IAAAF,QAAA,eAC5BH,IAAA,CAACT,kBAAkB;MAAAY,QAAA,eACjBH,IAAA,CAACR,mBAAmB;QAAAW,QAAA,eAClBH,IAAA,CAACN,qBAAqB;UAACa,OAAO,EAAED,QAAQ,CAACE,WAAY;UAAAL,QAAA,EAClDA;QAAQ,CACY;MAAC,CACL;IAAC,CACJ;EAAC,CACR,CAAC;AAEpB;AAEA,eAAeF,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalWorkspaceStorage.d.ts","sourceRoot":"","sources":["../../src/storage/LocalWorkspaceStorage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C;;GAEG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,MAAM,CAAC,QAAQ,CAAC,WAAW,gCAAgC;IAE3D,MAAM,CAAC,sBAAsB,CAC3B,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,GACV,OAAO,GAAG,SAAS;IAUtB,MAAM,CAAC,4BAA4B,CACjC,kBAAkB,EAAE,kBAAkB,GACrC,iBAAiB;WA8FP,iBAAiB,CAC5B,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,yBAAyB,CAAC;WAoBxB,oBAAoB,CAC/B,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IASjC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAKlC,IAAI,CACR,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAiB3B,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAO7E;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"LocalWorkspaceStorage.d.ts","sourceRoot":"","sources":["../../src/storage/LocalWorkspaceStorage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C;;GAEG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,MAAM,CAAC,QAAQ,CAAC,WAAW,gCAAgC;IAE3D,MAAM,CAAC,sBAAsB,CAC3B,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,GACV,OAAO,GAAG,SAAS;IAUtB,MAAM,CAAC,4BAA4B,CACjC,kBAAkB,EAAE,kBAAkB,GACrC,iBAAiB;WAiGP,iBAAiB,CAC5B,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,yBAAyB,CAAC;WAoBxB,oBAAoB,CAC/B,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IASjC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAKlC,IAAI,CACR,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,qBAAqB,CAAC;IAiB3B,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAO7E;AAED,eAAe,qBAAqB,CAAC"}
@@ -43,7 +43,8 @@ export class LocalWorkspaceStorage {
43
43
  isMinimapEnabled: false
44
44
  },
45
45
  webgl: true,
46
- webglEditable: true
46
+ webglEditable: true,
47
+ gridDensity: 'regular'
47
48
  };
48
49
  var serverSettings = {
49
50
  defaultDateTimeFormat: serverConfigValues === null || serverConfigValues === void 0 ? void 0 : serverConfigValues.get('dateTimeFormat'),
@@ -1 +1 @@
1
- {"version":3,"file":"LocalWorkspaceStorage.js","names":["Log","DateTimeColumnFormatter","DecimalColumnFormatter","IntegerColumnFormatter","UserLayoutUtils","log","module","LocalWorkspaceStorage","getBooleanServerConfig","serverConfigValues","key","_serverConfigValues$g","_serverConfigValues$g2","get","toLowerCase","undefined","makeDefaultWorkspaceSettings","settings","defaultDateTimeFormat","DEFAULT_DATETIME_FORMAT_STRING","formatter","timeZone","DEFAULT_TIME_ZONE_ID","showTimeZone","showTSeparator","disableMoveConfirmation","defaultDecimalFormatOptions","defaultFormatString","DEFAULT_FORMAT_STRING","defaultIntegerFormatOptions","truncateNumbersWithPound","showEmptyStrings","showNullStrings","defaultNotebookSettings","isMinimapEnabled","webgl","webglEditable","serverSettings","keys","Object","i","length","makeWorkspaceData","layoutStorage","options","_asyncToGenerator","filterSets","links","layoutConfig","pluginDataMap","getDefaultLayout","isConsoleAvailable","closed","makeDefaultWorkspace","data","constructor","_defineProperty","load","_this","_localStorage$getItem","workspace","JSON","parse","localStorage","getItem","STORAGE_KEY","e","info","save","setItem","stringify"],"sources":["../../src/storage/LocalWorkspaceStorage.ts"],"sourcesContent":["import Log from '@deephaven/log';\nimport {\n WorkspaceStorage,\n WorkspaceStorageLoadOptions,\n CustomizableWorkspaceData,\n CustomizableWorkspace,\n WorkspaceSettings,\n ServerConfigValues,\n} from '@deephaven/redux';\nimport {\n DateTimeColumnFormatter,\n DecimalColumnFormatter,\n IntegerColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport UserLayoutUtils from './UserLayoutUtils';\nimport LayoutStorage from './LayoutStorage';\n\nconst log = Log.module('LocalWorkspaceStorage');\n\n/**\n * Implementation of WorkspaceStorage that just stores the workspace data in localStorage\n */\nexport class LocalWorkspaceStorage implements WorkspaceStorage {\n static readonly STORAGE_KEY = 'deephaven.WorkspaceStorage';\n\n static getBooleanServerConfig(\n serverConfigValues: Map<string, string> | undefined,\n key: string\n ): boolean | undefined {\n if (serverConfigValues?.get(key)?.toLowerCase() === 'true') {\n return true;\n }\n if (serverConfigValues?.get(key)?.toLowerCase() === 'false') {\n return false;\n }\n return undefined;\n }\n\n static makeDefaultWorkspaceSettings(\n serverConfigValues: ServerConfigValues\n ): WorkspaceSettings {\n const settings = {\n defaultDateTimeFormat:\n DateTimeColumnFormatter.DEFAULT_DATETIME_FORMAT_STRING,\n formatter: [],\n timeZone: DateTimeColumnFormatter.DEFAULT_TIME_ZONE_ID,\n showTimeZone: false,\n showTSeparator: true,\n disableMoveConfirmation: false,\n defaultDecimalFormatOptions: {\n defaultFormatString: DecimalColumnFormatter.DEFAULT_FORMAT_STRING,\n },\n defaultIntegerFormatOptions: {\n defaultFormatString: IntegerColumnFormatter.DEFAULT_FORMAT_STRING,\n },\n truncateNumbersWithPound: false,\n showEmptyStrings: true,\n showNullStrings: true,\n defaultNotebookSettings: {\n isMinimapEnabled: false,\n },\n webgl: true,\n webglEditable: true,\n };\n const serverSettings = {\n defaultDateTimeFormat: serverConfigValues?.get('dateTimeFormat'),\n formatter: [],\n timeZone: serverConfigValues?.get('timeZone'),\n showTimeZone: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showTimeZone'\n ),\n showTSeparator: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showTSeparator'\n ),\n disableMoveConfirmation: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'disableMoveConfirmation'\n ),\n defaultDecimalFormatOptions:\n serverConfigValues?.get('decimalFormat') !== undefined\n ? {\n defaultFormatString: serverConfigValues?.get('decimalFormat'),\n }\n : undefined,\n defaultIntegerFormatOptions:\n serverConfigValues?.get('integerFormat') !== undefined\n ? {\n defaultFormatString: serverConfigValues?.get('integerFormat'),\n }\n : undefined,\n truncateNumbersWithPound: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'truncateNumbersWithPound'\n ),\n showEmptyStrings: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showEmptyStrings'\n ),\n showNullStrings: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showNullStrings'\n ),\n defaultNotebookSettings:\n serverConfigValues?.get('isMinimapEnabled') !== undefined\n ? {\n isMinimapEnabled: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'isMinimapEnabled'\n ) as boolean,\n }\n : undefined,\n webgl: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'web.webgl'\n ),\n webglEditable: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'web.webgl.editable'\n ),\n };\n\n const keys = Object.keys(serverSettings) as Array<keyof typeof settings>;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (serverSettings[key] !== undefined) {\n // @ts-expect-error override default for defined server settings\n settings[key] = serverSettings[key];\n }\n }\n return settings;\n }\n\n static async makeWorkspaceData(\n layoutStorage: LayoutStorage,\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspaceData> {\n const {\n filterSets,\n links,\n layoutConfig,\n pluginDataMap = {},\n } = await UserLayoutUtils.getDefaultLayout(\n layoutStorage,\n options?.isConsoleAvailable\n );\n return {\n settings: {},\n layoutConfig,\n closed: [{}],\n links,\n filterSets,\n pluginDataMap,\n };\n }\n\n static async makeDefaultWorkspace(\n layoutStorage: LayoutStorage,\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspace> {\n return {\n data: await LocalWorkspaceStorage.makeWorkspaceData(\n layoutStorage,\n options\n ),\n };\n }\n\n private layoutStorage: LayoutStorage;\n\n constructor(layoutStorage: LayoutStorage) {\n this.layoutStorage = layoutStorage;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async load(\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspace> {\n try {\n const workspace = JSON.parse(\n localStorage.getItem(LocalWorkspaceStorage.STORAGE_KEY) ?? ''\n );\n return workspace;\n } catch (e) {\n log.info('Unable to load workspace data, initializing to default data');\n\n return LocalWorkspaceStorage.makeDefaultWorkspace(\n this.layoutStorage,\n options\n );\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n async save(workspace: CustomizableWorkspace): Promise<CustomizableWorkspace> {\n localStorage.setItem(\n LocalWorkspaceStorage.STORAGE_KEY,\n JSON.stringify(workspace)\n );\n return workspace;\n }\n}\n\nexport default LocalWorkspaceStorage;\n"],"mappings":"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"}
1
+ {"version":3,"file":"LocalWorkspaceStorage.js","names":["Log","DateTimeColumnFormatter","DecimalColumnFormatter","IntegerColumnFormatter","UserLayoutUtils","log","module","LocalWorkspaceStorage","getBooleanServerConfig","serverConfigValues","key","_serverConfigValues$g","_serverConfigValues$g2","get","toLowerCase","undefined","makeDefaultWorkspaceSettings","settings","defaultDateTimeFormat","DEFAULT_DATETIME_FORMAT_STRING","formatter","timeZone","DEFAULT_TIME_ZONE_ID","showTimeZone","showTSeparator","disableMoveConfirmation","defaultDecimalFormatOptions","defaultFormatString","DEFAULT_FORMAT_STRING","defaultIntegerFormatOptions","truncateNumbersWithPound","showEmptyStrings","showNullStrings","defaultNotebookSettings","isMinimapEnabled","webgl","webglEditable","gridDensity","serverSettings","keys","Object","i","length","makeWorkspaceData","layoutStorage","options","_asyncToGenerator","filterSets","links","layoutConfig","pluginDataMap","getDefaultLayout","isConsoleAvailable","closed","makeDefaultWorkspace","data","constructor","_defineProperty","load","_this","_localStorage$getItem","workspace","JSON","parse","localStorage","getItem","STORAGE_KEY","e","info","save","setItem","stringify"],"sources":["../../src/storage/LocalWorkspaceStorage.ts"],"sourcesContent":["import Log from '@deephaven/log';\nimport {\n WorkspaceStorage,\n WorkspaceStorageLoadOptions,\n CustomizableWorkspaceData,\n CustomizableWorkspace,\n WorkspaceSettings,\n ServerConfigValues,\n} from '@deephaven/redux';\nimport {\n DateTimeColumnFormatter,\n DecimalColumnFormatter,\n IntegerColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport UserLayoutUtils from './UserLayoutUtils';\nimport LayoutStorage from './LayoutStorage';\n\nconst log = Log.module('LocalWorkspaceStorage');\n\n/**\n * Implementation of WorkspaceStorage that just stores the workspace data in localStorage\n */\nexport class LocalWorkspaceStorage implements WorkspaceStorage {\n static readonly STORAGE_KEY = 'deephaven.WorkspaceStorage';\n\n static getBooleanServerConfig(\n serverConfigValues: Map<string, string> | undefined,\n key: string\n ): boolean | undefined {\n if (serverConfigValues?.get(key)?.toLowerCase() === 'true') {\n return true;\n }\n if (serverConfigValues?.get(key)?.toLowerCase() === 'false') {\n return false;\n }\n return undefined;\n }\n\n static makeDefaultWorkspaceSettings(\n serverConfigValues: ServerConfigValues\n ): WorkspaceSettings {\n const settings = {\n defaultDateTimeFormat:\n DateTimeColumnFormatter.DEFAULT_DATETIME_FORMAT_STRING,\n formatter: [],\n timeZone: DateTimeColumnFormatter.DEFAULT_TIME_ZONE_ID,\n showTimeZone: false,\n showTSeparator: true,\n disableMoveConfirmation: false,\n defaultDecimalFormatOptions: {\n defaultFormatString: DecimalColumnFormatter.DEFAULT_FORMAT_STRING,\n },\n defaultIntegerFormatOptions: {\n defaultFormatString: IntegerColumnFormatter.DEFAULT_FORMAT_STRING,\n },\n truncateNumbersWithPound: false,\n showEmptyStrings: true,\n showNullStrings: true,\n defaultNotebookSettings: {\n isMinimapEnabled: false,\n },\n webgl: true,\n webglEditable: true,\n gridDensity: 'regular' as const,\n };\n const serverSettings = {\n defaultDateTimeFormat: serverConfigValues?.get('dateTimeFormat'),\n formatter: [],\n timeZone: serverConfigValues?.get('timeZone'),\n showTimeZone: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showTimeZone'\n ),\n showTSeparator: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showTSeparator'\n ),\n disableMoveConfirmation: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'disableMoveConfirmation'\n ),\n defaultDecimalFormatOptions:\n serverConfigValues?.get('decimalFormat') !== undefined\n ? {\n defaultFormatString: serverConfigValues?.get('decimalFormat'),\n }\n : undefined,\n defaultIntegerFormatOptions:\n serverConfigValues?.get('integerFormat') !== undefined\n ? {\n defaultFormatString: serverConfigValues?.get('integerFormat'),\n }\n : undefined,\n truncateNumbersWithPound: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'truncateNumbersWithPound'\n ),\n showEmptyStrings: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showEmptyStrings'\n ),\n showNullStrings: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'showNullStrings'\n ),\n defaultNotebookSettings:\n serverConfigValues?.get('isMinimapEnabled') !== undefined\n ? {\n isMinimapEnabled: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'isMinimapEnabled'\n ) as boolean,\n }\n : undefined,\n webgl: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'web.webgl'\n ),\n webglEditable: LocalWorkspaceStorage.getBooleanServerConfig(\n serverConfigValues,\n 'web.webgl.editable'\n ),\n };\n\n const keys = Object.keys(serverSettings) as Array<\n keyof typeof serverSettings\n >;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (serverSettings[key] !== undefined) {\n // @ts-expect-error override default for defined server settings\n settings[key] = serverSettings[key];\n }\n }\n return settings;\n }\n\n static async makeWorkspaceData(\n layoutStorage: LayoutStorage,\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspaceData> {\n const {\n filterSets,\n links,\n layoutConfig,\n pluginDataMap = {},\n } = await UserLayoutUtils.getDefaultLayout(\n layoutStorage,\n options?.isConsoleAvailable\n );\n return {\n settings: {},\n layoutConfig,\n closed: [{}],\n links,\n filterSets,\n pluginDataMap,\n };\n }\n\n static async makeDefaultWorkspace(\n layoutStorage: LayoutStorage,\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspace> {\n return {\n data: await LocalWorkspaceStorage.makeWorkspaceData(\n layoutStorage,\n options\n ),\n };\n }\n\n private layoutStorage: LayoutStorage;\n\n constructor(layoutStorage: LayoutStorage) {\n this.layoutStorage = layoutStorage;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async load(\n options?: WorkspaceStorageLoadOptions\n ): Promise<CustomizableWorkspace> {\n try {\n const workspace = JSON.parse(\n localStorage.getItem(LocalWorkspaceStorage.STORAGE_KEY) ?? ''\n );\n return workspace;\n } catch (e) {\n log.info('Unable to load workspace data, initializing to default data');\n\n return LocalWorkspaceStorage.makeDefaultWorkspace(\n this.layoutStorage,\n options\n );\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n async save(workspace: CustomizableWorkspace): Promise<CustomizableWorkspace> {\n localStorage.setItem(\n LocalWorkspaceStorage.STORAGE_KEY,\n JSON.stringify(workspace)\n );\n return workspace;\n }\n}\n\nexport default LocalWorkspaceStorage;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/app-utils",
3
- "version": "0.86.1",
3
+ "version": "0.87.0",
4
4
  "description": "Deephaven App Utils",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -29,26 +29,26 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@adobe/react-spectrum": "3.35.1",
32
- "@deephaven/auth-plugins": "^0.86.0",
33
- "@deephaven/chart": "^0.86.0",
34
- "@deephaven/components": "^0.86.0",
35
- "@deephaven/console": "^0.86.0",
36
- "@deephaven/dashboard": "^0.86.0",
37
- "@deephaven/dashboard-core-plugins": "^0.86.1",
38
- "@deephaven/file-explorer": "^0.86.0",
39
- "@deephaven/golden-layout": "^0.86.0",
40
- "@deephaven/icons": "^0.86.0",
41
- "@deephaven/iris-grid": "^0.86.0",
42
- "@deephaven/jsapi-bootstrap": "^0.86.0",
43
- "@deephaven/jsapi-components": "^0.86.0",
32
+ "@deephaven/auth-plugins": "^0.87.0",
33
+ "@deephaven/chart": "^0.87.0",
34
+ "@deephaven/components": "^0.87.0",
35
+ "@deephaven/console": "^0.87.0",
36
+ "@deephaven/dashboard": "^0.87.0",
37
+ "@deephaven/dashboard-core-plugins": "^0.87.0",
38
+ "@deephaven/file-explorer": "^0.87.0",
39
+ "@deephaven/golden-layout": "^0.87.0",
40
+ "@deephaven/icons": "^0.87.0",
41
+ "@deephaven/iris-grid": "^0.87.0",
42
+ "@deephaven/jsapi-bootstrap": "^0.87.0",
43
+ "@deephaven/jsapi-components": "^0.87.0",
44
44
  "@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
45
- "@deephaven/jsapi-utils": "^0.86.0",
46
- "@deephaven/log": "^0.86.0",
47
- "@deephaven/plugin": "^0.86.0",
48
- "@deephaven/react-hooks": "^0.86.0",
49
- "@deephaven/redux": "^0.86.0",
50
- "@deephaven/storage": "^0.86.0",
51
- "@deephaven/utils": "^0.86.0",
45
+ "@deephaven/jsapi-utils": "^0.87.0",
46
+ "@deephaven/log": "^0.87.0",
47
+ "@deephaven/plugin": "^0.87.0",
48
+ "@deephaven/react-hooks": "^0.87.0",
49
+ "@deephaven/redux": "^0.87.0",
50
+ "@deephaven/storage": "^0.87.0",
51
+ "@deephaven/utils": "^0.87.0",
52
52
  "@fontsource/fira-mono": "5.0.13",
53
53
  "@fontsource/fira-sans": "5.0.20",
54
54
  "@paciolan/remote-component": "2.13.0",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "8b20692b03b419ba4670829476d87189dcc0da85"
75
+ "gitHead": "b741f4ec9819f1b3cf81ed4eb9a32d6487993f14"
76
76
  }