@deephaven/dashboard 0.59.1-deferred-api.7 → 0.60.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":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,aAAa,EACb,yBAAyB,EACzB,aAAa,EAKd,MAAM,OAAO,CAAC;AAEf,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,4BAA4B,CAAC;AAIpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAS1B,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,yBAAyB,CAC3C,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,CAC3C,CAAC;IACF,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAEnC,wCAAwC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,EAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAA6B,EAC7B,oBAAuC,EACvC,oBAAuC,EACvC,mBAAsC,EACtC,iBAAoC,EACpC,OAAO,EACP,SAAS,EACT,YAAY,GACb,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CA+F9B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,aAAa,EACb,yBAAyB,EACzB,aAAa,EAKd,MAAM,OAAO,CAAC;AAEf,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,4BAA4B,CAAC;AAIpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAS1B,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,yBAAyB,CAC3C,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,CAC3C,CAAC;IACF,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAEnC,wCAAwC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,EAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAA6B,EAC7B,oBAAuC,EACvC,oBAAuC,EACvC,mBAAsC,EACtC,iBAAoC,EACpC,OAAO,EACP,SAAS,EACT,YAAY,GACb,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAuF9B;AAED,eAAe,SAAS,CAAC"}
package/dist/Dashboard.js CHANGED
@@ -6,6 +6,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
6
6
  import React, { useEffect, useMemo, useRef, useState } from 'react';
7
7
  import throttle from 'lodash.throttle';
8
8
  import GoldenLayout from '@deephaven/golden-layout';
9
+ import { useResizeObserver } from '@deephaven/react-hooks';
9
10
  import "./layout/GoldenLayout.css";
10
11
  import LayoutUtils from "./layout/LayoutUtils.js";
11
12
  import PanelPlaceholder from "./PanelPlaceholder.js";
@@ -69,12 +70,7 @@ export function Dashboard(_ref) {
69
70
  layout === null || layout === void 0 ? void 0 : layout.updateSize();
70
71
  }
71
72
  }, RESIZE_THROTTLE), [layout]);
72
- useEffect(function initResizeEventListner() {
73
- window.addEventListener('resize', handleResize);
74
- return () => {
75
- window.removeEventListener('resize', handleResize);
76
- };
77
- }, [handleResize]);
73
+ useResizeObserver(layoutElement.current, handleResize);
78
74
  return /*#__PURE__*/_jsxs("div", {
79
75
  className: "dashboard-container w-100 h-100",
80
76
  children: [/*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.js","names":["React","useEffect","useMemo","useRef","useState","throttle","GoldenLayout","LayoutUtils","PanelPlaceholder","DashboardLayout","LayoutManagerContext","jsx","_jsx","jsxs","_jsxs","RESIZE_THROTTLE","DEFAULT_CALLBACK","undefined","EMPTY_OBJECT","Object","freeze","Dashboard","_ref","id","children","emptyDashboard","layoutConfig","layoutSettings","onLayoutConfigChange","onGoldenLayoutChange","onLayoutInitialized","fallbackComponent","hydrate","dehydrate","panelWrapper","layoutElement","isInitialized","setIsInitialized","layout","setLayout","initDashboard","current","config","_objectSpread","makeDefaultLayout","settings","assign","content","newLayout","onInit","off","on","setFallbackComponent","init","destroy","handleResize","isInitialised","updateSize","initResizeEventListner","window","addEventListener","removeEventListener","className","ref","Provider","value","onLayoutChange"],"sources":["../src/Dashboard.tsx"],"sourcesContent":["import React, {\n ComponentType,\n ForwardRefExoticComponent,\n RefAttributes,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport throttle from 'lodash.throttle';\nimport GoldenLayout from '@deephaven/golden-layout';\nimport type { ItemConfigType } from '@deephaven/golden-layout';\nimport './layout/GoldenLayout.scss';\nimport LayoutUtils from './layout/LayoutUtils';\nimport PanelPlaceholder from './PanelPlaceholder';\nimport DashboardLayout from './DashboardLayout';\nimport {\n PanelDehydrateFunction,\n PanelHydrateFunction,\n PanelProps,\n} from './DashboardPlugin';\nimport './Dashboard.scss';\nimport { LayoutManagerContext } from './layout';\n\nconst RESIZE_THROTTLE = 100;\n\nconst DEFAULT_CALLBACK = (): void => undefined;\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nexport type DashboardProps = {\n id?: string;\n children?: React.ReactNode | React.ReactNode[];\n emptyDashboard?: React.ReactNode;\n layoutConfig?: ItemConfigType[];\n layoutSettings?: Record<string, unknown>;\n onLayoutConfigChange?: () => void;\n onGoldenLayoutChange?: (goldenLayout: GoldenLayout) => void;\n onLayoutInitialized?: () => void;\n fallbackComponent?: ForwardRefExoticComponent<\n PanelProps & RefAttributes<HTMLDivElement>\n >;\n hydrate?: PanelHydrateFunction;\n dehydrate?: PanelDehydrateFunction;\n\n /** Component to wrap each panel with */\n panelWrapper?: ComponentType;\n};\n\nexport function Dashboard({\n id = 'default',\n children,\n emptyDashboard,\n layoutConfig,\n layoutSettings = EMPTY_OBJECT,\n onLayoutConfigChange = DEFAULT_CALLBACK,\n onGoldenLayoutChange = DEFAULT_CALLBACK,\n onLayoutInitialized = DEFAULT_CALLBACK,\n fallbackComponent = PanelPlaceholder,\n hydrate,\n dehydrate,\n panelWrapper,\n}: DashboardProps): JSX.Element {\n const layoutElement = useRef<HTMLDivElement>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [layout, setLayout] = useState<GoldenLayout>();\n\n useEffect(\n function initDashboard() {\n if (!layoutElement.current) {\n setLayout(undefined);\n return;\n }\n const config = {\n ...LayoutUtils.makeDefaultLayout(),\n };\n if (config.settings === undefined) {\n config.settings = {};\n }\n Object.assign(config.settings, layoutSettings);\n\n // Load our content later after plugins have registered\n config.content = [];\n\n const newLayout = new GoldenLayout(config, layoutElement.current);\n\n const onInit = (): void => {\n newLayout.off('initialised', onInit);\n setIsInitialized(true);\n };\n newLayout.on('initialised', onInit);\n\n if (fallbackComponent != null) {\n newLayout.setFallbackComponent(fallbackComponent);\n }\n\n newLayout.init();\n\n setLayout(newLayout);\n\n onGoldenLayoutChange(newLayout);\n\n return () => {\n newLayout.destroy();\n };\n },\n [\n layoutSettings,\n fallbackComponent,\n onGoldenLayoutChange,\n setIsInitialized,\n setLayout,\n ]\n );\n\n const handleResize = useMemo(\n () =>\n throttle(() => {\n if (layout != null && layout.isInitialised) {\n layout?.updateSize();\n }\n }, RESIZE_THROTTLE),\n [layout]\n );\n\n useEffect(\n function initResizeEventListner() {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [handleResize]\n );\n\n return (\n <div className=\"dashboard-container w-100 h-100\">\n <div className=\"w-100 h-100\" ref={layoutElement} />\n {isInitialized && layout && (\n <LayoutManagerContext.Provider value={layout}>\n <DashboardLayout\n emptyDashboard={emptyDashboard}\n id={id}\n layout={layout}\n layoutConfig={layoutConfig}\n onLayoutChange={onLayoutConfigChange}\n onLayoutInitialized={onLayoutInitialized}\n hydrate={hydrate}\n dehydrate={dehydrate}\n panelWrapper={panelWrapper}\n >\n {children}\n </DashboardLayout>\n </LayoutManagerContext.Provider>\n )}\n </div>\n );\n}\n\nexport default Dashboard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dashboard.js","names":["React","useEffect","useMemo","useRef","useState","throttle","GoldenLayout","useResizeObserver","LayoutUtils","PanelPlaceholder","DashboardLayout","LayoutManagerContext","jsx","_jsx","jsxs","_jsxs","RESIZE_THROTTLE","DEFAULT_CALLBACK","undefined","EMPTY_OBJECT","Object","freeze","Dashboard","_ref","id","children","emptyDashboard","layoutConfig","layoutSettings","onLayoutConfigChange","onGoldenLayoutChange","onLayoutInitialized","fallbackComponent","hydrate","dehydrate","panelWrapper","layoutElement","isInitialized","setIsInitialized","layout","setLayout","initDashboard","current","config","_objectSpread","makeDefaultLayout","settings","assign","content","newLayout","onInit","off","on","setFallbackComponent","init","destroy","handleResize","isInitialised","updateSize","className","ref","Provider","value","onLayoutChange"],"sources":["../src/Dashboard.tsx"],"sourcesContent":["import React, {\n ComponentType,\n ForwardRefExoticComponent,\n RefAttributes,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport throttle from 'lodash.throttle';\nimport GoldenLayout from '@deephaven/golden-layout';\nimport type { ItemConfigType } from '@deephaven/golden-layout';\nimport { useResizeObserver } from '@deephaven/react-hooks';\nimport './layout/GoldenLayout.scss';\nimport LayoutUtils from './layout/LayoutUtils';\nimport PanelPlaceholder from './PanelPlaceholder';\nimport DashboardLayout from './DashboardLayout';\nimport {\n PanelDehydrateFunction,\n PanelHydrateFunction,\n PanelProps,\n} from './DashboardPlugin';\nimport './Dashboard.scss';\nimport { LayoutManagerContext } from './layout';\n\nconst RESIZE_THROTTLE = 100;\n\nconst DEFAULT_CALLBACK = (): void => undefined;\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nexport type DashboardProps = {\n id?: string;\n children?: React.ReactNode | React.ReactNode[];\n emptyDashboard?: React.ReactNode;\n layoutConfig?: ItemConfigType[];\n layoutSettings?: Record<string, unknown>;\n onLayoutConfigChange?: () => void;\n onGoldenLayoutChange?: (goldenLayout: GoldenLayout) => void;\n onLayoutInitialized?: () => void;\n fallbackComponent?: ForwardRefExoticComponent<\n PanelProps & RefAttributes<HTMLDivElement>\n >;\n hydrate?: PanelHydrateFunction;\n dehydrate?: PanelDehydrateFunction;\n\n /** Component to wrap each panel with */\n panelWrapper?: ComponentType;\n};\n\nexport function Dashboard({\n id = 'default',\n children,\n emptyDashboard,\n layoutConfig,\n layoutSettings = EMPTY_OBJECT,\n onLayoutConfigChange = DEFAULT_CALLBACK,\n onGoldenLayoutChange = DEFAULT_CALLBACK,\n onLayoutInitialized = DEFAULT_CALLBACK,\n fallbackComponent = PanelPlaceholder,\n hydrate,\n dehydrate,\n panelWrapper,\n}: DashboardProps): JSX.Element {\n const layoutElement = useRef<HTMLDivElement>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [layout, setLayout] = useState<GoldenLayout>();\n\n useEffect(\n function initDashboard() {\n if (!layoutElement.current) {\n setLayout(undefined);\n return;\n }\n const config = {\n ...LayoutUtils.makeDefaultLayout(),\n };\n if (config.settings === undefined) {\n config.settings = {};\n }\n Object.assign(config.settings, layoutSettings);\n\n // Load our content later after plugins have registered\n config.content = [];\n\n const newLayout = new GoldenLayout(config, layoutElement.current);\n\n const onInit = (): void => {\n newLayout.off('initialised', onInit);\n setIsInitialized(true);\n };\n newLayout.on('initialised', onInit);\n\n if (fallbackComponent != null) {\n newLayout.setFallbackComponent(fallbackComponent);\n }\n\n newLayout.init();\n\n setLayout(newLayout);\n\n onGoldenLayoutChange(newLayout);\n\n return () => {\n newLayout.destroy();\n };\n },\n [\n layoutSettings,\n fallbackComponent,\n onGoldenLayoutChange,\n setIsInitialized,\n setLayout,\n ]\n );\n\n const handleResize = useMemo(\n () =>\n throttle(() => {\n if (layout != null && layout.isInitialised) {\n layout?.updateSize();\n }\n }, RESIZE_THROTTLE),\n [layout]\n );\n\n useResizeObserver(layoutElement.current, handleResize);\n\n return (\n <div className=\"dashboard-container w-100 h-100\">\n <div className=\"w-100 h-100\" ref={layoutElement} />\n {isInitialized && layout && (\n <LayoutManagerContext.Provider value={layout}>\n <DashboardLayout\n emptyDashboard={emptyDashboard}\n id={id}\n layout={layout}\n layoutConfig={layoutConfig}\n onLayoutChange={onLayoutConfigChange}\n onLayoutInitialized={onLayoutInitialized}\n hydrate={hydrate}\n dehydrate={dehydrate}\n panelWrapper={panelWrapper}\n >\n {children}\n </DashboardLayout>\n </LayoutManagerContext.Provider>\n )}\n </div>\n );\n}\n\nexport default Dashboard;\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { EventHub } from '@deephaven/golden-layout';
2
+ export declare const CREATE_DASHBOARD = "CREATE_DASHBOARD";
3
+ export interface CreateDashboardPayload {
4
+ pluginId: string;
5
+ title: string;
6
+ data: unknown;
7
+ }
8
+ export declare function listenForCreateDashboard(eventHub: EventHub, handler: (p: CreateDashboardPayload) => void): void;
9
+ export declare function emitCreateDashboard(eventHub: EventHub, payload: CreateDashboardPayload): void;
10
+ //# sourceMappingURL=DashboardEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardEvents.d.ts","sourceRoot":"","sources":["../src/DashboardEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,IAAI,GAC3C,IAAI,CAEN;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CAEN"}
@@ -0,0 +1,8 @@
1
+ export var CREATE_DASHBOARD = 'CREATE_DASHBOARD';
2
+ export function listenForCreateDashboard(eventHub, handler) {
3
+ eventHub.on(CREATE_DASHBOARD, handler);
4
+ }
5
+ export function emitCreateDashboard(eventHub, payload) {
6
+ eventHub.emit(CREATE_DASHBOARD, payload);
7
+ }
8
+ //# sourceMappingURL=DashboardEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardEvents.js","names":["CREATE_DASHBOARD","listenForCreateDashboard","eventHub","handler","on","emitCreateDashboard","payload","emit"],"sources":["../src/DashboardEvents.ts"],"sourcesContent":["import type { EventHub } from '@deephaven/golden-layout';\n\nexport const CREATE_DASHBOARD = 'CREATE_DASHBOARD';\n\nexport interface CreateDashboardPayload {\n pluginId: string;\n title: string;\n data: unknown;\n}\n\nexport function listenForCreateDashboard(\n eventHub: EventHub,\n handler: (p: CreateDashboardPayload) => void\n): void {\n eventHub.on(CREATE_DASHBOARD, handler);\n}\n\nexport function emitCreateDashboard(\n eventHub: EventHub,\n payload: CreateDashboardPayload\n): void {\n eventHub.emit(CREATE_DASHBOARD, payload);\n}\n"],"mappings":"AAEA,OAAO,IAAMA,gBAAgB,GAAG,kBAAkB;AAQlD,OAAO,SAASC,wBAAwBA,CACtCC,QAAkB,EAClBC,OAA4C,EACtC;EACND,QAAQ,CAACE,EAAE,CAACJ,gBAAgB,EAAEG,OAAO,CAAC;AACxC;AAEA,OAAO,SAASE,mBAAmBA,CACjCH,QAAkB,EAClBI,OAA+B,EACzB;EACNJ,QAAQ,CAACK,IAAI,CAACP,gBAAgB,EAAEM,OAAO,CAAC;AAC1C"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { DashboardProps } from './Dashboard';
3
+ export interface LazyDashboardProps extends DashboardProps {
4
+ id: string;
5
+ isActive: boolean;
6
+ plugins: JSX.Element[];
7
+ }
8
+ export declare function LazyDashboard({ id, isActive, plugins, ...rest }: LazyDashboardProps): JSX.Element;
9
+ export default LazyDashboard;
10
+ //# sourceMappingURL=LazyDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyDashboard.d.ts","sourceRoot":"","sources":["../src/LazyDashboard.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,QAAQ,EACR,OAAO,EACP,GAAG,IAAI,EACR,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqClC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,56 @@
1
+ var _excluded = ["id", "isActive", "plugins"];
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ import React, { useCallback, useState } from 'react';
10
+ import { useDispatch } from 'react-redux';
11
+ import { LoadingOverlay } from '@deephaven/components';
12
+ import { updateWorkspaceData } from '@deephaven/redux';
13
+ import { Dashboard } from "./Dashboard.js";
14
+ import { updateDashboardData } from "./redux/index.js";
15
+ import { DEFAULT_DASHBOARD_ID } from "./DashboardConstants.js";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ export function LazyDashboard(_ref) {
18
+ var {
19
+ id,
20
+ isActive,
21
+ plugins
22
+ } = _ref,
23
+ rest = _objectWithoutProperties(_ref, _excluded);
24
+ var [isLoaded, setIsLoaded] = useState(isActive);
25
+ var dispatch = useDispatch();
26
+ var handleLayoutConfigChange = useCallback(config => {
27
+ // TODO: #1746 Call updateDashboardData for every dashboard
28
+ // This currently allows the default dashboard to keep its layout since
29
+ // other dashboards are not persistent yet and we read workspaceData
30
+ // for the default dashboard layout
31
+ if (id === DEFAULT_DASHBOARD_ID) {
32
+ dispatch(updateWorkspaceData({
33
+ layoutConfig: config
34
+ }));
35
+ } else {
36
+ dispatch(updateDashboardData(id, {
37
+ layoutConfig: config
38
+ }));
39
+ }
40
+ }, [id, dispatch]);
41
+ if (!isLoaded && isActive) {
42
+ setIsLoaded(true);
43
+ }
44
+ if (!isLoaded) {
45
+ return /*#__PURE__*/_jsx(LoadingOverlay, {});
46
+ }
47
+ return /*#__PURE__*/_jsx(Dashboard, _objectSpread(_objectSpread({
48
+ id: id,
49
+ onLayoutConfigChange: handleLayoutConfigChange
50
+ // eslint-disable-next-line react/jsx-props-no-spreading
51
+ }, rest), {}, {
52
+ children: plugins
53
+ }));
54
+ }
55
+ export default LazyDashboard;
56
+ //# sourceMappingURL=LazyDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyDashboard.js","names":["React","useCallback","useState","useDispatch","LoadingOverlay","updateWorkspaceData","Dashboard","updateDashboardData","DEFAULT_DASHBOARD_ID","jsx","_jsx","LazyDashboard","_ref","id","isActive","plugins","rest","_objectWithoutProperties","_excluded","isLoaded","setIsLoaded","dispatch","handleLayoutConfigChange","config","layoutConfig","_objectSpread","onLayoutConfigChange","children"],"sources":["../src/LazyDashboard.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { updateWorkspaceData } from '@deephaven/redux';\nimport { Dashboard, DashboardProps } from './Dashboard';\nimport { updateDashboardData } from './redux';\nimport { DashboardLayoutConfig } from './DashboardLayout';\nimport { DEFAULT_DASHBOARD_ID } from './DashboardConstants';\n\nexport interface LazyDashboardProps extends DashboardProps {\n id: string;\n isActive: boolean;\n plugins: JSX.Element[];\n}\n\nexport function LazyDashboard({\n id,\n isActive,\n plugins,\n ...rest\n}: LazyDashboardProps): JSX.Element {\n const [isLoaded, setIsLoaded] = useState(isActive);\n const dispatch = useDispatch();\n\n const handleLayoutConfigChange = useCallback(\n (config?: DashboardLayoutConfig) => {\n // TODO: #1746 Call updateDashboardData for every dashboard\n // This currently allows the default dashboard to keep its layout since\n // other dashboards are not persistent yet and we read workspaceData\n // for the default dashboard layout\n if (id === DEFAULT_DASHBOARD_ID) {\n dispatch(updateWorkspaceData({ layoutConfig: config }));\n } else {\n dispatch(updateDashboardData(id, { layoutConfig: config }));\n }\n },\n [id, dispatch]\n );\n\n if (!isLoaded && isActive) {\n setIsLoaded(true);\n }\n\n if (!isLoaded) {\n return <LoadingOverlay />;\n }\n\n return (\n <Dashboard\n id={id}\n onLayoutConfigChange={handleLayoutConfigChange}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n >\n {plugins}\n </Dashboard>\n );\n}\n\nexport default LazyDashboard;\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,mBAAmB,QAAQ,kBAAkB;AAAC,SAC9CC,SAAS;AAAA,SACTC,mBAAmB;AAAA,SAEnBC,oBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQ7B,OAAO,SAASC,aAAaA,CAAAC,IAAA,EAKO;EAAA,IALN;MAC5BC,EAAE;MACFC,QAAQ;MACRC;IAEkB,CAAC,GAAAH,IAAA;IADhBI,IAAI,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAEP,IAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGlB,QAAQ,CAACY,QAAQ,CAAC;EAClD,IAAMO,QAAQ,GAAGlB,WAAW,CAAC,CAAC;EAE9B,IAAMmB,wBAAwB,GAAGrB,WAAW,CACzCsB,MAA8B,IAAK;IAClC;IACA;IACA;IACA;IACA,IAAIV,EAAE,KAAKL,oBAAoB,EAAE;MAC/Ba,QAAQ,CAAChB,mBAAmB,CAAC;QAAEmB,YAAY,EAAED;MAAO,CAAC,CAAC,CAAC;IACzD,CAAC,MAAM;MACLF,QAAQ,CAACd,mBAAmB,CAACM,EAAE,EAAE;QAAEW,YAAY,EAAED;MAAO,CAAC,CAAC,CAAC;IAC7D;EACF,CAAC,EACD,CAACV,EAAE,EAAEQ,QAAQ,CACf,CAAC;EAED,IAAI,CAACF,QAAQ,IAAIL,QAAQ,EAAE;IACzBM,WAAW,CAAC,IAAI,CAAC;EACnB;EAEA,IAAI,CAACD,QAAQ,EAAE;IACb,oBAAOT,IAAA,CAACN,cAAc,IAAE,CAAC;EAC3B;EAEA,oBACEM,IAAA,CAACJ,SAAS,EAAAmB,aAAA,CAAAA,aAAA;IACRZ,EAAE,EAAEA,EAAG;IACPa,oBAAoB,EAAEJ;IACtB;EAAA,GACIN,IAAI;IAAAW,QAAA,EAEPZ;EAAO,EACC,CAAC;AAEhB;AAEA,eAAeJ,aAAa"}
package/dist/index.d.ts CHANGED
@@ -2,10 +2,12 @@ import Dashboard from './Dashboard';
2
2
  export default Dashboard;
3
3
  export * from './Dashboard';
4
4
  export * from './DashboardConstants';
5
+ export * from './DashboardEvents';
5
6
  export * from './DashboardPlugin';
6
7
  export * from './DashboardLayout';
7
8
  export * from './DashboardUtils';
8
9
  export { default as DashboardUtils } from './DashboardUtils';
10
+ export * from './LazyDashboard';
9
11
  export * from './layout';
10
12
  export * from './redux';
11
13
  export * from './PanelManager';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,eAAe,SAAS,CAAC;AAEzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,eAAe,SAAS,CAAC;AAEzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -2,10 +2,12 @@ import Dashboard from "./Dashboard.js";
2
2
  export default Dashboard;
3
3
  export * from "./Dashboard.js";
4
4
  export * from "./DashboardConstants.js";
5
+ export * from "./DashboardEvents.js";
5
6
  export * from "./DashboardPlugin.js";
6
7
  export * from "./DashboardLayout.js";
7
8
  export * from "./DashboardUtils.js";
8
9
  export { default as DashboardUtils } from "./DashboardUtils.js";
10
+ export * from "./LazyDashboard.js";
9
11
  export * from "./layout/index.js";
10
12
  export * from "./redux/index.js";
11
13
  export * from "./PanelManager.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Dashboard","default","DashboardUtils","PanelEvent","PanelErrorBoundary","PanelManager"],"sources":["../src/index.ts"],"sourcesContent":["import Dashboard from './Dashboard';\n\nexport default Dashboard;\n\nexport * from './Dashboard';\nexport * from './DashboardConstants';\nexport * from './DashboardPlugin';\nexport * from './DashboardLayout';\nexport * from './DashboardUtils';\nexport { default as DashboardUtils } from './DashboardUtils';\nexport * from './layout';\nexport * from './redux';\nexport * from './PanelManager';\nexport * from './PanelEvent';\nexport { default as PanelEvent } from './PanelEvent';\nexport { default as PanelErrorBoundary } from './PanelErrorBoundary';\nexport { default as PanelManager } from './PanelManager';\n"],"mappings":"OAAOA,SAAS;AAEhB,eAAeA,SAAS;AAAC;AAAA;AAAA;AAAA;AAAA;AAAA,SAOhBC,OAAO,IAAIC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,SAKzBD,OAAO,IAAIE,UAAU;AAAA,SACrBF,OAAO,IAAIG,kBAAkB;AAAA,SAC7BH,OAAO,IAAII,YAAY"}
1
+ {"version":3,"file":"index.js","names":["Dashboard","default","DashboardUtils","PanelEvent","PanelErrorBoundary","PanelManager"],"sources":["../src/index.ts"],"sourcesContent":["import Dashboard from './Dashboard';\n\nexport default Dashboard;\n\nexport * from './Dashboard';\nexport * from './DashboardConstants';\nexport * from './DashboardEvents';\nexport * from './DashboardPlugin';\nexport * from './DashboardLayout';\nexport * from './DashboardUtils';\nexport { default as DashboardUtils } from './DashboardUtils';\nexport * from './LazyDashboard';\nexport * from './layout';\nexport * from './redux';\nexport * from './PanelManager';\nexport * from './PanelEvent';\nexport { default as PanelEvent } from './PanelEvent';\nexport { default as PanelErrorBoundary } from './PanelErrorBoundary';\nexport { default as PanelManager } from './PanelManager';\n"],"mappings":"OAAOA,SAAS;AAEhB,eAAeA,SAAS;AAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAQhBC,OAAO,IAAIC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAMzBD,OAAO,IAAIE,UAAU;AAAA,SACrBF,OAAO,IAAIG,kBAAkB;AAAA,SAC7BH,OAAO,IAAII,YAAY"}
@@ -1,4 +1,4 @@
1
- import { DashboardData, RootState } from '@deephaven/redux';
1
+ import { DashboardData, PluginData, RootState } from '@deephaven/redux';
2
2
  import type { Action } from 'redux';
3
3
  import type { ThunkAction } from 'redux-thunk';
4
4
  /**
@@ -19,4 +19,13 @@ export declare const setDashboardData: (id: string, data: DashboardData) => {
19
19
  * @returns
20
20
  */
21
21
  export declare const updateDashboardData: (id: string, data: DashboardData) => ThunkAction<unknown, RootState, undefined, Action<unknown>>;
22
+ /**
23
+ * Action to set the dashboard plugin data.
24
+ * Will replace any existing plugin data for the plugin in the dashboard with the data provided.
25
+ * @param id The id of the dashboard to set the data on
26
+ * @param pluginId The id of the plugin to set the data on
27
+ * @param data The data to replace the existing plugin data with
28
+ * @returns Thunk action to dispatch
29
+ */
30
+ export declare const setDashboardPluginData: (id: string, pluginId: string, data: PluginData) => ThunkAction<unknown, RootState, undefined, Action<unknown>>;
22
31
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/redux/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,OACvB,MAAM,QACJ,aAAa;UAEb,MAAM;QACR,MAAM;aACD,aAAa;CAKtB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,OAExB,MAAM,QACJ,aAAa,KAClB,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,OAAO,CAAC,CAO1D,CAAC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/redux/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,OACvB,MAAM,QACJ,aAAa;UAEb,MAAM;QACR,MAAM;aACD,aAAa;CAKtB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,OAExB,MAAM,QACJ,aAAa,KAClB,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,OAAO,CAAC,CAO1D,CAAC;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,OAE3B,MAAM,YACA,MAAM,QACV,UAAU,KACf,YAAY,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,OAAO,CAAC,CAU1D,CAAC"}
@@ -4,7 +4,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
4
4
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
5
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
6
  import { SET_DASHBOARD_DATA } from "./actionTypes.js";
7
- import { getDashboardData } from "./selectors.js";
7
+ import { getDashboardData, getPluginDataMapForDashboard } from "./selectors.js";
8
8
  /**
9
9
  * Action to replace the dashboard data for a dashboard
10
10
  * @param id The ID of the dashboard to set the data on
@@ -24,4 +24,18 @@ export var setDashboardData = (id, data) => ({
24
24
  * @returns
25
25
  */
26
26
  export var updateDashboardData = (id, data) => (dispatch, getState) => dispatch(setDashboardData(id, _objectSpread(_objectSpread({}, getDashboardData(getState(), id)), data)));
27
+
28
+ /**
29
+ * Action to set the dashboard plugin data.
30
+ * Will replace any existing plugin data for the plugin in the dashboard with the data provided.
31
+ * @param id The id of the dashboard to set the data on
32
+ * @param pluginId The id of the plugin to set the data on
33
+ * @param data The data to replace the existing plugin data with
34
+ * @returns Thunk action to dispatch
35
+ */
36
+ export var setDashboardPluginData = (id, pluginId, data) => (dispatch, getState) => dispatch(setDashboardData(id, _objectSpread(_objectSpread({}, getDashboardData(getState(), id)), {}, {
37
+ pluginDataMap: _objectSpread(_objectSpread({}, getPluginDataMapForDashboard(getState(), id)), {}, {
38
+ [pluginId]: data
39
+ })
40
+ })));
27
41
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["SET_DASHBOARD_DATA","getDashboardData","setDashboardData","id","data","type","payload","updateDashboardData","dispatch","getState","_objectSpread"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import { DashboardData, RootState } from '@deephaven/redux';\nimport type { Action } from 'redux';\nimport type { ThunkAction } from 'redux-thunk';\nimport { SET_DASHBOARD_DATA } from './actionTypes';\nimport { getDashboardData } from './selectors';\n\n/**\n * Action to replace the dashboard data for a dashboard\n * @param id The ID of the dashboard to set the data on\n * @param data Data for the dashboard\n * @returns The action to get dispatched\n */\nexport const setDashboardData = (\n id: string,\n data: DashboardData\n): {\n type: string;\n id: string;\n payload: DashboardData;\n} => ({\n type: SET_DASHBOARD_DATA,\n id,\n payload: data,\n});\n\n/**\n * Action to update the dashboard data. Will combine the update with any existing dashboard data.\n * @param id The id of the dashboard to update the data on\n * @param updateData The data to combine with the existing dashboard data\n * @returns\n */\nexport const updateDashboardData =\n (\n id: string,\n data: DashboardData\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) =>\n dispatch(\n setDashboardData(id, {\n ...getDashboardData(getState(), id),\n ...data,\n })\n );\n"],"mappings":";;;;;SAGSA,kBAAkB;AAAA,SAClBC,gBAAgB;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,gBAAgB,GAAGA,CAC9BC,EAAU,EACVC,IAAmB,MAKf;EACJC,IAAI,EAAEL,kBAAkB;EACxBG,EAAE;EACFG,OAAO,EAAEF;AACX,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMG,mBAAmB,GAC9BA,CACEJ,EAAU,EACVC,IAAmB,KAErB,CAACI,QAAQ,EAAEC,QAAQ,KACjBD,QAAQ,CACNN,gBAAgB,CAACC,EAAE,EAAAO,aAAA,CAAAA,aAAA,KACdT,gBAAgB,CAACQ,QAAQ,CAAC,CAAC,EAAEN,EAAE,CAAC,GAChCC,IAAI,CACR,CACH,CAAC"}
1
+ {"version":3,"file":"actions.js","names":["SET_DASHBOARD_DATA","getDashboardData","getPluginDataMapForDashboard","setDashboardData","id","data","type","payload","updateDashboardData","dispatch","getState","_objectSpread","setDashboardPluginData","pluginId","pluginDataMap"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import { DashboardData, PluginData, RootState } from '@deephaven/redux';\nimport type { Action } from 'redux';\nimport type { ThunkAction } from 'redux-thunk';\nimport { SET_DASHBOARD_DATA } from './actionTypes';\nimport { getDashboardData, getPluginDataMapForDashboard } from './selectors';\n\n/**\n * Action to replace the dashboard data for a dashboard\n * @param id The ID of the dashboard to set the data on\n * @param data Data for the dashboard\n * @returns The action to get dispatched\n */\nexport const setDashboardData = (\n id: string,\n data: DashboardData\n): {\n type: string;\n id: string;\n payload: DashboardData;\n} => ({\n type: SET_DASHBOARD_DATA,\n id,\n payload: data,\n});\n\n/**\n * Action to update the dashboard data. Will combine the update with any existing dashboard data.\n * @param id The id of the dashboard to update the data on\n * @param updateData The data to combine with the existing dashboard data\n * @returns\n */\nexport const updateDashboardData =\n (\n id: string,\n data: DashboardData\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) =>\n dispatch(\n setDashboardData(id, {\n ...getDashboardData(getState(), id),\n ...data,\n })\n );\n\n/**\n * Action to set the dashboard plugin data.\n * Will replace any existing plugin data for the plugin in the dashboard with the data provided.\n * @param id The id of the dashboard to set the data on\n * @param pluginId The id of the plugin to set the data on\n * @param data The data to replace the existing plugin data with\n * @returns Thunk action to dispatch\n */\nexport const setDashboardPluginData =\n (\n id: string,\n pluginId: string,\n data: PluginData\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) =>\n dispatch(\n setDashboardData(id, {\n ...getDashboardData(getState(), id),\n pluginDataMap: {\n ...getPluginDataMapForDashboard(getState(), id),\n [pluginId]: data,\n },\n })\n );\n"],"mappings":";;;;;SAGSA,kBAAkB;AAAA,SAClBC,gBAAgB,EAAEC,4BAA4B;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,gBAAgB,GAAGA,CAC9BC,EAAU,EACVC,IAAmB,MAKf;EACJC,IAAI,EAAEN,kBAAkB;EACxBI,EAAE;EACFG,OAAO,EAAEF;AACX,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMG,mBAAmB,GAC9BA,CACEJ,EAAU,EACVC,IAAmB,KAErB,CAACI,QAAQ,EAAEC,QAAQ,KACjBD,QAAQ,CACNN,gBAAgB,CAACC,EAAE,EAAAO,aAAA,CAAAA,aAAA,KACdV,gBAAgB,CAACS,QAAQ,CAAC,CAAC,EAAEN,EAAE,CAAC,GAChCC,IAAI,CACR,CACH,CAAC;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMO,sBAAsB,GACjCA,CACER,EAAU,EACVS,QAAgB,EAChBR,IAAgB,KAElB,CAACI,QAAQ,EAAEC,QAAQ,KACjBD,QAAQ,CACNN,gBAAgB,CAACC,EAAE,EAAAO,aAAA,CAAAA,aAAA,KACdV,gBAAgB,CAACS,QAAQ,CAAC,CAAC,EAAEN,EAAE,CAAC;EACnCU,aAAa,EAAAH,aAAA,CAAAA,aAAA,KACRT,4BAA4B,CAACQ,QAAQ,CAAC,CAAC,EAAEN,EAAE,CAAC;IAC/C,CAACS,QAAQ,GAAGR;EAAI;AACjB,EACF,CACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { PluginData } from '@deephaven/redux';
2
+ /**
3
+ * Custom hook that provides access to plugin data for a specific dashboard and plugin.
4
+ * @param dashboardId - The ID of the dashboard.
5
+ * @param pluginId - The ID of the plugin.
6
+ * @returns A tuple containing the plugin data and a function to update the plugin data.
7
+ */
8
+ export declare function useDashboardPluginData(dashboardId: string, pluginId: string): [PluginData, (data: PluginData) => void];
9
+ declare const _default: {
10
+ useDashboardPluginData: typeof useDashboardPluginData;
11
+ };
12
+ export default _default;
13
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/redux/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAIzD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,CAU1C;;;;AAED,wBAA0C"}
@@ -0,0 +1,20 @@
1
+ import { useCallback } from 'react';
2
+ import { useDispatch, useSelector } from 'react-redux';
3
+ import { getPluginDataForDashboard } from "./selectors.js";
4
+ import { setDashboardPluginData } from "./actions.js";
5
+ /**
6
+ * Custom hook that provides access to plugin data for a specific dashboard and plugin.
7
+ * @param dashboardId - The ID of the dashboard.
8
+ * @param pluginId - The ID of the plugin.
9
+ * @returns A tuple containing the plugin data and a function to update the plugin data.
10
+ */
11
+ export function useDashboardPluginData(dashboardId, pluginId) {
12
+ var dispatch = useDispatch();
13
+ var data = useSelector(store => getPluginDataForDashboard(store, dashboardId, pluginId));
14
+ var setData = useCallback(newData => dispatch(setDashboardPluginData(dashboardId, pluginId, newData)), [dashboardId, pluginId, dispatch]);
15
+ return [data, setData];
16
+ }
17
+ export default {
18
+ useDashboardPluginData
19
+ };
20
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","names":["useCallback","useDispatch","useSelector","getPluginDataForDashboard","setDashboardPluginData","useDashboardPluginData","dashboardId","pluginId","dispatch","data","store","setData","newData"],"sources":["../../src/redux/hooks.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PluginData, RootState } from '@deephaven/redux';\nimport { getPluginDataForDashboard } from './selectors';\nimport { setDashboardPluginData } from './actions';\n\n/**\n * Custom hook that provides access to plugin data for a specific dashboard and plugin.\n * @param dashboardId - The ID of the dashboard.\n * @param pluginId - The ID of the plugin.\n * @returns A tuple containing the plugin data and a function to update the plugin data.\n */\nexport function useDashboardPluginData(\n dashboardId: string,\n pluginId: string\n): [PluginData, (data: PluginData) => void] {\n const dispatch = useDispatch();\n const data = useSelector((store: RootState) =>\n getPluginDataForDashboard(store, dashboardId, pluginId)\n );\n const setData = useCallback(\n newData => dispatch(setDashboardPluginData(dashboardId, pluginId, newData)),\n [dashboardId, pluginId, dispatch]\n );\n return [data, setData];\n}\n\nexport default { useDashboardPluginData };\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AAAC,SAE9CC,yBAAyB;AAAA,SACzBC,sBAAsB;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,WAAmB,EACnBC,QAAgB,EAC0B;EAC1C,IAAMC,QAAQ,GAAGP,WAAW,CAAC,CAAC;EAC9B,IAAMQ,IAAI,GAAGP,WAAW,CAAEQ,KAAgB,IACxCP,yBAAyB,CAACO,KAAK,EAAEJ,WAAW,EAAEC,QAAQ,CACxD,CAAC;EACD,IAAMI,OAAO,GAAGX,WAAW,CACzBY,OAAO,IAAIJ,QAAQ,CAACJ,sBAAsB,CAACE,WAAW,EAAEC,QAAQ,EAAEK,OAAO,CAAC,CAAC,EAC3E,CAACN,WAAW,EAAEC,QAAQ,EAAEC,QAAQ,CAClC,CAAC;EACD,OAAO,CAACC,IAAI,EAAEE,OAAO,CAAC;AACxB;AAEA,eAAe;EAAEN;AAAuB,CAAC"}
@@ -2,5 +2,6 @@ import reducers from './reducers';
2
2
  export { reducers };
3
3
  export * from './actions';
4
4
  export * from './actionTypes';
5
+ export * from './hooks';
5
6
  export * from './selectors';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux/index.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAMlC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux/index.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAMlC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -7,5 +7,6 @@ Object.entries(reducers).map(_ref => {
7
7
  export { reducers };
8
8
  export * from "./actions.js";
9
9
  export * from "./actionTypes.js";
10
+ export * from "./hooks.js";
10
11
  export * from "./selectors.js";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","_ref","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport { reducers };\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,QAAQ;AAEfC,MAAM,CAACC,OAAO,CAACF,QAAQ,CAAC,CAACG,GAAG,CAACC,IAAA;EAAA,IAAC,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAAF,IAAA;EAAA,OAC3CL,eAAe,CAACQ,QAAQ,CAACF,IAAI,EAAEC,OAAO,CAAC;AAAA,CACzC,CAAC;AAED,SAASN,QAAQ;AAAG;AAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","_ref","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport { reducers };\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './hooks';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,QAAQ;AAEfC,MAAM,CAACC,OAAO,CAACF,QAAQ,CAAC,CAACG,GAAG,CAACC,IAAA;EAAA,IAAC,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAAF,IAAA;EAAA,OAC3CL,eAAe,CAACQ,QAAQ,CAACF,IAAI,EAAEC,OAAO,CAAC;AAAA,CACzC,CAAC;AAED,SAASN,QAAQ;AAAG;AAAA;AAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { DashboardData, RootState } from '@deephaven/redux';
1
+ import { DashboardData, PluginData, PluginDataMap, RootState } from '@deephaven/redux';
2
2
  import { ClosedPanels, OpenedPanelMap } from '../PanelManager';
3
3
  type Selector<R> = (state: RootState) => R;
4
4
  /**
@@ -25,5 +25,18 @@ export declare const getClosedPanelsForDashboard: (store: RootState, dashboardId
25
25
  * @returns The map of panel IDs to components of all currently open components
26
26
  */
27
27
  export declare const getOpenedPanelMapForDashboard: (store: RootState, dashboardId: string) => OpenedPanelMap;
28
+ /**
29
+ * @param store The redux store
30
+ * @param dashboardId The dashboard ID to get data for
31
+ * @returns The map of plugin IDs to data for all plugins on the dashboard
32
+ */
33
+ export declare const getPluginDataMapForDashboard: (store: RootState, dashboardId: string) => PluginDataMap;
34
+ /**
35
+ * @param store The redux store
36
+ * @param dashboardId The dashboard ID to get data for
37
+ * @param pluginId The plugin ID to get data for
38
+ * @returns The plugin data
39
+ */
40
+ export declare const getPluginDataForDashboard: (store: RootState, dashboardId: string, pluginId: string) => PluginData;
28
41
  export {};
29
42
  //# sourceMappingURL=selectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/redux/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ/D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CACzC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CACC,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UACpB,SAAS,eACH,MAAM,KAClB,aAAyE,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAC/B,SAAS,eACH,MAAM,iBAEyD,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,UACjC,SAAS,eACH,MAAM,mBAGW,CAAC"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/redux/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ/D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CACzC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CACC,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UACpB,SAAS,eACH,MAAM,KAClB,aAAyE,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAC/B,SAAS,eACH,MAAM,iBAEyD,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,UACjC,SAAS,eACH,MAAM,mBAGW,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,UAChC,SAAS,eACH,MAAM,KAClB,aACiE,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAC7B,SAAS,eACH,MAAM,YACT,MAAM,KACf,UAAwE,CAAC"}
@@ -37,4 +37,22 @@ export var getOpenedPanelMapForDashboard = (store, dashboardId) => {
37
37
  var _getDashboardData$ope;
38
38
  return (_getDashboardData$ope = getDashboardData(store, dashboardId).openedMap) !== null && _getDashboardData$ope !== void 0 ? _getDashboardData$ope : EMPTY_MAP;
39
39
  };
40
+
41
+ /**
42
+ * @param store The redux store
43
+ * @param dashboardId The dashboard ID to get data for
44
+ * @returns The map of plugin IDs to data for all plugins on the dashboard
45
+ */
46
+ export var getPluginDataMapForDashboard = (store, dashboardId) => {
47
+ var _getDashboardData$plu;
48
+ return (_getDashboardData$plu = getDashboardData(store, dashboardId).pluginDataMap) !== null && _getDashboardData$plu !== void 0 ? _getDashboardData$plu : EMPTY_OBJECT;
49
+ };
50
+
51
+ /**
52
+ * @param store The redux store
53
+ * @param dashboardId The dashboard ID to get data for
54
+ * @param pluginId The plugin ID to get data for
55
+ * @returns The plugin data
56
+ */
57
+ export var getPluginDataForDashboard = (store, dashboardId, pluginId) => getPluginDataMapForDashboard(store, dashboardId)[pluginId];
40
58
  //# sourceMappingURL=selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":["EMPTY_MAP","Map","EMPTY_OBJECT","Object","freeze","EMPTY_ARRAY","getAllDashboardsData","store","dashboardData","getDashboardData","dashboardId","_getAllDashboardsData","getClosedPanelsForDashboard","_getDashboardData$clo","closed","getOpenedPanelMapForDashboard","_getDashboardData$ope","openedMap"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import { DashboardData, RootState } from '@deephaven/redux';\nimport { ClosedPanels, OpenedPanelMap } from '../PanelManager';\n\nconst EMPTY_MAP = new Map();\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\ntype Selector<R> = (state: RootState) => R;\n\n/**\n * Retrieve the data for all dashboards\n * @param store The redux store\n * @returns Property mapping dashboard ID to data for that dashboard\n */\nexport const getAllDashboardsData: Selector<\n Record<string, DashboardData>\n> = store => store.dashboardData;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The data object for the dashboard with the specified ID\n */\nexport const getDashboardData = (\n store: RootState,\n dashboardId: string\n): DashboardData => getAllDashboardsData(store)[dashboardId] ?? EMPTY_OBJECT;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The ClosedPanel array of panels that were previously closed/dehydrated\n */\nexport const getClosedPanelsForDashboard = (\n store: RootState,\n dashboardId: string\n): ClosedPanels =>\n (getDashboardData(store, dashboardId).closed ?? EMPTY_ARRAY) as ClosedPanels;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The map of panel IDs to components of all currently open components\n */\nexport const getOpenedPanelMapForDashboard = (\n store: RootState,\n dashboardId: string\n): OpenedPanelMap =>\n (getDashboardData(store, dashboardId).openedMap ??\n EMPTY_MAP) as OpenedPanelMap;\n"],"mappings":"AAGA,IAAMA,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE3B,IAAMC,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEtC,IAAMC,WAAW,GAAGF,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;AAIrC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAME,oBAEZ,GAAGC,KAAK,IAAIA,KAAK,CAACC,aAAa;;AAEhC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,gBAAgB,GAAGA,CAC9BF,KAAgB,EAChBG,WAAmB;EAAA,IAAAC,qBAAA;EAAA,QAAAA,qBAAA,GACDL,oBAAoB,CAACC,KAAK,CAAC,CAACG,WAAW,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAIT,YAAY;AAAA;;AAE5E;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMU,2BAA2B,GAAGA,CACzCL,KAAgB,EAChBG,WAAmB;EAAA,IAAAG,qBAAA;EAAA,QAAAA,qBAAA,GAElBJ,gBAAgB,CAACF,KAAK,EAAEG,WAAW,CAAC,CAACI,MAAM,cAAAD,qBAAA,cAAAA,qBAAA,GAAIR,WAAW;AAAA,CAAiB;;AAE9E;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMU,6BAA6B,GAAGA,CAC3CR,KAAgB,EAChBG,WAAmB;EAAA,IAAAM,qBAAA;EAAA,QAAAA,qBAAA,GAElBP,gBAAgB,CAACF,KAAK,EAAEG,WAAW,CAAC,CAACO,SAAS,cAAAD,qBAAA,cAAAA,qBAAA,GAC7ChB,SAAS;AAAA,CAAmB"}
1
+ {"version":3,"file":"selectors.js","names":["EMPTY_MAP","Map","EMPTY_OBJECT","Object","freeze","EMPTY_ARRAY","getAllDashboardsData","store","dashboardData","getDashboardData","dashboardId","_getAllDashboardsData","getClosedPanelsForDashboard","_getDashboardData$clo","closed","getOpenedPanelMapForDashboard","_getDashboardData$ope","openedMap","getPluginDataMapForDashboard","_getDashboardData$plu","pluginDataMap","getPluginDataForDashboard","pluginId"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import {\n DashboardData,\n PluginData,\n PluginDataMap,\n RootState,\n} from '@deephaven/redux';\nimport { ClosedPanels, OpenedPanelMap } from '../PanelManager';\n\nconst EMPTY_MAP = new Map();\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\ntype Selector<R> = (state: RootState) => R;\n\n/**\n * Retrieve the data for all dashboards\n * @param store The redux store\n * @returns Property mapping dashboard ID to data for that dashboard\n */\nexport const getAllDashboardsData: Selector<\n Record<string, DashboardData>\n> = store => store.dashboardData;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The data object for the dashboard with the specified ID\n */\nexport const getDashboardData = (\n store: RootState,\n dashboardId: string\n): DashboardData => getAllDashboardsData(store)[dashboardId] ?? EMPTY_OBJECT;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The ClosedPanel array of panels that were previously closed/dehydrated\n */\nexport const getClosedPanelsForDashboard = (\n store: RootState,\n dashboardId: string\n): ClosedPanels =>\n (getDashboardData(store, dashboardId).closed ?? EMPTY_ARRAY) as ClosedPanels;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The map of panel IDs to components of all currently open components\n */\nexport const getOpenedPanelMapForDashboard = (\n store: RootState,\n dashboardId: string\n): OpenedPanelMap =>\n (getDashboardData(store, dashboardId).openedMap ??\n EMPTY_MAP) as OpenedPanelMap;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The map of plugin IDs to data for all plugins on the dashboard\n */\nexport const getPluginDataMapForDashboard = (\n store: RootState,\n dashboardId: string\n): PluginDataMap =>\n getDashboardData(store, dashboardId).pluginDataMap ?? EMPTY_OBJECT;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @param pluginId The plugin ID to get data for\n * @returns The plugin data\n */\nexport const getPluginDataForDashboard = (\n store: RootState,\n dashboardId: string,\n pluginId: string\n): PluginData => getPluginDataMapForDashboard(store, dashboardId)[pluginId];\n"],"mappings":"AAQA,IAAMA,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE3B,IAAMC,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEtC,IAAMC,WAAW,GAAGF,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;AAIrC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAME,oBAEZ,GAAGC,KAAK,IAAIA,KAAK,CAACC,aAAa;;AAEhC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,gBAAgB,GAAGA,CAC9BF,KAAgB,EAChBG,WAAmB;EAAA,IAAAC,qBAAA;EAAA,QAAAA,qBAAA,GACDL,oBAAoB,CAACC,KAAK,CAAC,CAACG,WAAW,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAIT,YAAY;AAAA;;AAE5E;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMU,2BAA2B,GAAGA,CACzCL,KAAgB,EAChBG,WAAmB;EAAA,IAAAG,qBAAA;EAAA,QAAAA,qBAAA,GAElBJ,gBAAgB,CAACF,KAAK,EAAEG,WAAW,CAAC,CAACI,MAAM,cAAAD,qBAAA,cAAAA,qBAAA,GAAIR,WAAW;AAAA,CAAiB;;AAE9E;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMU,6BAA6B,GAAGA,CAC3CR,KAAgB,EAChBG,WAAmB;EAAA,IAAAM,qBAAA;EAAA,QAAAA,qBAAA,GAElBP,gBAAgB,CAACF,KAAK,EAAEG,WAAW,CAAC,CAACO,SAAS,cAAAD,qBAAA,cAAAA,qBAAA,GAC7ChB,SAAS;AAAA,CAAmB;;AAEhC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMkB,4BAA4B,GAAGA,CAC1CX,KAAgB,EAChBG,WAAmB;EAAA,IAAAS,qBAAA;EAAA,QAAAA,qBAAA,GAEnBV,gBAAgB,CAACF,KAAK,EAAEG,WAAW,CAAC,CAACU,aAAa,cAAAD,qBAAA,cAAAA,qBAAA,GAAIjB,YAAY;AAAA;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMmB,yBAAyB,GAAGA,CACvCd,KAAgB,EAChBG,WAAmB,EACnBY,QAAgB,KACDJ,4BAA4B,CAACX,KAAK,EAAEG,WAAW,CAAC,CAACY,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard",
3
- "version": "0.59.1-deferred-api.7+e8f88b2d",
3
+ "version": "0.60.0",
4
4
  "description": "Deephaven Dashboard",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,12 +22,12 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/components": "^0.59.1-deferred-api.7+e8f88b2d",
26
- "@deephaven/golden-layout": "^0.59.1-deferred-api.7+e8f88b2d",
27
- "@deephaven/log": "^0.59.1-deferred-api.7+e8f88b2d",
28
- "@deephaven/react-hooks": "^0.59.1-deferred-api.7+e8f88b2d",
29
- "@deephaven/redux": "^0.59.1-deferred-api.7+e8f88b2d",
30
- "@deephaven/utils": "^0.59.1-deferred-api.7+e8f88b2d",
25
+ "@deephaven/components": "^0.60.0",
26
+ "@deephaven/golden-layout": "^0.60.0",
27
+ "@deephaven/log": "^0.60.0",
28
+ "@deephaven/react-hooks": "^0.60.0",
29
+ "@deephaven/redux": "^0.60.0",
30
+ "@deephaven/utils": "^0.60.0",
31
31
  "deep-equal": "^2.0.5",
32
32
  "lodash.ismatch": "^4.1.1",
33
33
  "lodash.throttle": "^4.1.1",
@@ -41,7 +41,7 @@
41
41
  "react-redux": "^7.2.4"
42
42
  },
43
43
  "devDependencies": {
44
- "@deephaven/mocks": "^0.59.1-deferred-api.7+e8f88b2d",
44
+ "@deephaven/mocks": "^0.60.0",
45
45
  "@types/lodash.ismatch": "^4.4.0"
46
46
  },
47
47
  "files": [
@@ -50,5 +50,5 @@
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
- "gitHead": "e8f88b2d5481e747aebdedf3c11563d1cca3a7e9"
53
+ "gitHead": "f0ae05534532a30472bb426cfa82f9d41b1bca75"
54
54
  }