@deephaven/dashboard 1.4.1-beta.0 → 1.5.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,6 +1,6 @@
1
1
  import React, { type ComponentType, type ForwardRefExoticComponent, type RefAttributes } from 'react';
2
2
  import GoldenLayout from '@deephaven/golden-layout';
3
- import type { ItemConfig } from '@deephaven/golden-layout';
3
+ import type { ItemConfig, Settings } from '@deephaven/golden-layout';
4
4
  import './layout/GoldenLayout.scss';
5
5
  import { type PanelDehydrateFunction, type PanelHydrateFunction, type PanelProps } from './DashboardPlugin';
6
6
  import './Dashboard.scss';
@@ -9,7 +9,7 @@ export type DashboardProps = {
9
9
  children?: React.ReactNode | React.ReactNode[];
10
10
  emptyDashboard?: React.ReactNode;
11
11
  layoutConfig?: ItemConfig[];
12
- layoutSettings?: Record<string, unknown>;
12
+ layoutSettings?: Partial<Settings>;
13
13
  onLayoutConfigChange?: () => void;
14
14
  onGoldenLayoutChange?: (goldenLayout: GoldenLayout) => void;
15
15
  onLayoutInitialized?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAKnB,MAAM,OAAO,CAAC;AAEf,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,4BAA4B,CAAC;AAIpC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAW1B,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,UAAU,EAAE,CAAC;IAC5B,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,CA2F9B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAKnB,MAAM,OAAO,CAAC;AAEf,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,4BAA4B,CAAC;AAIpC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAW1B,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,UAAU,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,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,CA2F9B;AAED,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.js","names":["React","useEffect","useMemo","useRef","useState","throttle","GoldenLayout","useResizeObserver","LayoutUtils","PanelPlaceholder","DashboardLayout","LayoutManagerContext","DashboardIdContext","FiberProvider","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 type ComponentType,\n type ForwardRefExoticComponent,\n type 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 { ItemConfig } 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 type PanelDehydrateFunction,\n type PanelHydrateFunction,\n type PanelProps,\n} from './DashboardPlugin';\nimport './Dashboard.scss';\nimport { LayoutManagerContext } from './layout';\nimport { DashboardIdContext } from './useDashboardId';\nimport { FiberProvider } from './useFiber';\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?: ItemConfig[];\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 <DashboardIdContext.Provider value={id}>\n <FiberProvider>\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 </FiberProvider>\n </DashboardIdContext.Provider>\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","DashboardIdContext","FiberProvider","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 type ComponentType,\n type ForwardRefExoticComponent,\n type 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 { ItemConfig, Settings } 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 type PanelDehydrateFunction,\n type PanelHydrateFunction,\n type PanelProps,\n} from './DashboardPlugin';\nimport './Dashboard.scss';\nimport { LayoutManagerContext } from './layout';\nimport { DashboardIdContext } from './useDashboardId';\nimport { FiberProvider } from './useFiber';\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?: ItemConfig[];\n layoutSettings?: Partial<Settings>;\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 <DashboardIdContext.Provider value={id}>\n <FiberProvider>\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 </FiberProvider>\n </DashboardIdContext.Provider>\n </LayoutManagerContext.Provider>\n )}\n </div>\n );\n}\n\nexport default Dashboard;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutManagerContext.d.ts","sourceRoot":"","sources":["../../src/layout/LayoutManagerContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CACf,CAAC;AAE3D,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"LayoutManagerContext.d.ts","sourceRoot":"","sources":["../../src/layout/LayoutManagerContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CACf,CAAC;AAG3D,eAAe,oBAAoB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
2
  export var LayoutManagerContext = /*#__PURE__*/React.createContext(undefined);
3
+ LayoutManagerContext.displayName = 'LayoutManagerContext';
3
4
  export default LayoutManagerContext;
4
5
  //# sourceMappingURL=LayoutManagerContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutManagerContext.js","names":["React","LayoutManagerContext","createContext","undefined"],"sources":["../../src/layout/LayoutManagerContext.ts"],"sourcesContent":["import React from 'react';\nimport type GoldenLayout from '@deephaven/golden-layout';\n\nexport const LayoutManagerContext: React.Context<GoldenLayout | undefined> =\n React.createContext<GoldenLayout | undefined>(undefined);\n\nexport default LayoutManagerContext;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAO,IAAMC,oBAA6D,gBACxED,KAAK,CAACE,aAAa,CAA2BC,SAAS,CAAC;AAE1D,eAAeF,oBAAoB"}
1
+ {"version":3,"file":"LayoutManagerContext.js","names":["React","LayoutManagerContext","createContext","undefined","displayName"],"sources":["../../src/layout/LayoutManagerContext.ts"],"sourcesContent":["import React from 'react';\nimport type GoldenLayout from '@deephaven/golden-layout';\n\nexport const LayoutManagerContext: React.Context<GoldenLayout | undefined> =\n React.createContext<GoldenLayout | undefined>(undefined);\nLayoutManagerContext.displayName = 'LayoutManagerContext';\n\nexport default LayoutManagerContext;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAO,IAAMC,oBAA6D,gBACxED,KAAK,CAACE,aAAa,CAA2BC,SAAS,CAAC;AAC1DF,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAEzD,eAAeH,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboardId.d.ts","sourceRoot":"","sources":["../src/useDashboardId.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,wCAAqC,CAAC;AAErE,wBAAgB,cAAc,IAAI,MAAM,CAQvC"}
1
+ {"version":3,"file":"useDashboardId.d.ts","sourceRoot":"","sources":["../src/useDashboardId.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,wCAAqC,CAAC;AAGrE,wBAAgB,cAAc,IAAI,MAAM,CAQvC"}
@@ -1,5 +1,6 @@
1
1
  import { createContext, useContext } from 'react';
2
2
  export var DashboardIdContext = /*#__PURE__*/createContext(null);
3
+ DashboardIdContext.displayName = 'DashboardIdContext';
3
4
  export function useDashboardId() {
4
5
  var dashboardId = useContext(DashboardIdContext);
5
6
  if (dashboardId == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboardId.js","names":["createContext","useContext","DashboardIdContext","useDashboardId","dashboardId","Error"],"sources":["../src/useDashboardId.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport const DashboardIdContext = createContext<string | null>(null);\n\nexport function useDashboardId(): string {\n const dashboardId = useContext(DashboardIdContext);\n if (dashboardId == null) {\n throw new Error(\n 'useDashboardId must be used within a DashboardIdContext provider'\n );\n }\n return dashboardId;\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAEjD,OAAO,IAAMC,kBAAkB,gBAAGF,aAAa,CAAgB,IAAI,CAAC;AAEpE,OAAO,SAASG,cAAcA,CAAA,EAAW;EACvC,IAAMC,WAAW,GAAGH,UAAU,CAACC,kBAAkB,CAAC;EAClD,IAAIE,WAAW,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIC,KAAK,CACb,kEACF,CAAC;EACH;EACA,OAAOD,WAAW;AACpB"}
1
+ {"version":3,"file":"useDashboardId.js","names":["createContext","useContext","DashboardIdContext","displayName","useDashboardId","dashboardId","Error"],"sources":["../src/useDashboardId.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport const DashboardIdContext = createContext<string | null>(null);\nDashboardIdContext.displayName = 'DashboardIdContext';\n\nexport function useDashboardId(): string {\n const dashboardId = useContext(DashboardIdContext);\n if (dashboardId == null) {\n throw new Error(\n 'useDashboardId must be used within a DashboardIdContext provider'\n );\n }\n return dashboardId;\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAEjD,OAAO,IAAMC,kBAAkB,gBAAGF,aAAa,CAAgB,IAAI,CAAC;AACpEE,kBAAkB,CAACC,WAAW,GAAG,oBAAoB;AAErD,OAAO,SAASC,cAAcA,CAAA,EAAW;EACvC,IAAMC,WAAW,GAAGJ,UAAU,CAACC,kBAAkB,CAAC;EAClD,IAAIG,WAAW,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIC,KAAK,CACb,kEACF,CAAC;EACH;EACA,OAAOD,WAAW;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFiber.d.ts","sourceRoot":"","sources":["../src/useFiber.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG;IAC/D,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AAyEF;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;IACA,OAAO,CAAC,eAAe,CAAS;IAEhC,MAAM,IAAI,GAAG,CAAC,OAAO;CAStB;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CA2BlD"}
1
+ {"version":3,"file":"useFiber.d.ts","sourceRoot":"","sources":["../src/useFiber.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG;IAC/D,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AA0EF;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;IACA,OAAO,CAAC,eAAe,CAAS;IAEhC,MAAM,IAAI,GAAG,CAAC,OAAO;CAStB;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CA2BlD"}
package/dist/useFiber.js CHANGED
@@ -74,6 +74,7 @@ var FiberContext = /* @__PURE__ */wrapContext(
74
74
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
75
75
  /* @__PURE__ */
76
76
  React.createContext(null));
77
+ FiberContext.displayName = 'FiberContext';
77
78
 
78
79
  /**
79
80
  * A react-internal {@link Fiber} provider. This component binds React children to the React Fiber tree. Call its-fine hooks within this.
@@ -1 +1 @@
1
- {"version":3,"file":"useFiber.js","names":["nanoid","React","jsx","_jsx","traverseFiber","fiber","ascending","selector","child","return","match","sibling","wrapContext","context","Object","defineProperties","_currentRenderer","get","set","_currentRenderer2","_","FiberContext","createContext","FiberProvider","Component","constructor","arguments","_defineProperty","render","children","props","Provider","value","_reactInternals","useFiber","root","useContext","Error","id","useState","actualFiber","useMemo","maybeFiber","alternate","filter","r","node","state","memoizedState","next"],"sources":["../src/useFiber.tsx"],"sourcesContent":["/**\n * Adapted from https://www.npmjs.com/package/its-fine to support React 17.\n * The main change is using `nanoid` instead of `useId` which doesn't exist in React 17.\n * Also tweaked a bit of the code to match our style and removed the parts we don't use.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { nanoid } from 'nanoid';\nimport * as React from 'react';\nimport type ReactReconciler from 'react-reconciler';\n\n/**\n * Represents a react-internal Fiber node.\n */\ntype Fiber<T = any> = Omit<ReactReconciler.Fiber, 'stateNode'> & {\n stateNode: T;\n};\n\n/**\n * Represents a {@link Fiber} node selector for traversal.\n */\ntype FiberSelector<T = any> = (\n /** The current {@link Fiber} node. */\n node: Fiber<T | null>\n) => boolean | void;\n\n/**\n * Traverses up or down a {@link Fiber}, return `true` to stop and select a node.\n */\nfunction traverseFiber<T = any>(\n /** Input {@link Fiber} to traverse. */\n fiber: Fiber | undefined,\n /** Whether to ascend and walk up the tree. Will walk down if `false`. */\n ascending: boolean,\n /** A {@link Fiber} node selector, returns the first match when `true` is passed. */\n selector: FiberSelector<T>\n): Fiber<T> | undefined {\n if (!fiber) {\n return;\n }\n if (selector(fiber) === true) {\n return fiber;\n }\n\n let child = ascending ? fiber.return : fiber.child;\n while (child) {\n const match = traverseFiber(child, ascending, selector);\n if (match) {\n return match;\n }\n\n child = ascending ? null : child.sibling;\n }\n}\n\n// In development, React will warn about using contexts between renderers.\n// Hide the warning because its-fine fixes this issue\n// https://github.com/facebook/react/pull/12779\nfunction wrapContext<T>(context: React.Context<T>): React.Context<T> {\n try {\n return Object.defineProperties(context, {\n _currentRenderer: {\n get() {\n return null;\n },\n set() {\n /* no-op */\n },\n },\n _currentRenderer2: {\n get() {\n return null;\n },\n set() {\n /* no-op */\n },\n },\n });\n } catch (_) {\n return context;\n }\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nconst FiberContext = /* @__PURE__ */ wrapContext(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n /* @__PURE__ */ React.createContext<Fiber>(null!)\n);\n\n/**\n * A react-internal {@link Fiber} provider. This component binds React children to the React Fiber tree. Call its-fine hooks within this.\n */\nexport class FiberProvider extends React.Component<{\n children?: React.ReactNode;\n}> {\n private _reactInternals!: Fiber;\n\n render(): JSX.Element {\n const { children } = this.props;\n return (\n // eslint-disable-next-line no-underscore-dangle\n <FiberContext.Provider value={this._reactInternals}>\n {children}\n </FiberContext.Provider>\n );\n }\n}\n\n/**\n * Returns the current react-internal {@link Fiber}. This is an implementation detail of [react-reconciler](https://github.com/facebook/react/tree/main/packages/react-reconciler).\n */\nexport function useFiber(): Fiber<null> | undefined {\n const root = React.useContext(FiberContext);\n if (root === null) {\n throw new Error('useFiber must be called within a <FiberProvider />!');\n }\n\n const [id] = React.useState(() => nanoid());\n const actualFiber = React.useMemo(() => {\n // eslint-disable-next-line no-restricted-syntax\n for (const maybeFiber of [root, root?.alternate].filter(r => r != null)) {\n const fiber = traverseFiber<null>(maybeFiber, false, node => {\n let state = node.memoizedState;\n while (state != null) {\n if (state.memoizedState === id) {\n return true;\n }\n state = state.next;\n }\n });\n\n if (fiber) {\n return fiber;\n }\n }\n }, [root, id]);\n\n return actualFiber;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useFiber.js","names":["nanoid","React","jsx","_jsx","traverseFiber","fiber","ascending","selector","child","return","match","sibling","wrapContext","context","Object","defineProperties","_currentRenderer","get","set","_currentRenderer2","_","FiberContext","createContext","displayName","FiberProvider","Component","constructor","arguments","_defineProperty","render","children","props","Provider","value","_reactInternals","useFiber","root","useContext","Error","id","useState","actualFiber","useMemo","maybeFiber","alternate","filter","r","node","state","memoizedState","next"],"sources":["../src/useFiber.tsx"],"sourcesContent":["/**\n * Adapted from https://www.npmjs.com/package/its-fine to support React 17.\n * The main change is using `nanoid` instead of `useId` which doesn't exist in React 17.\n * Also tweaked a bit of the code to match our style and removed the parts we don't use.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { nanoid } from 'nanoid';\nimport * as React from 'react';\nimport type ReactReconciler from 'react-reconciler';\n\n/**\n * Represents a react-internal Fiber node.\n */\ntype Fiber<T = any> = Omit<ReactReconciler.Fiber, 'stateNode'> & {\n stateNode: T;\n};\n\n/**\n * Represents a {@link Fiber} node selector for traversal.\n */\ntype FiberSelector<T = any> = (\n /** The current {@link Fiber} node. */\n node: Fiber<T | null>\n) => boolean | void;\n\n/**\n * Traverses up or down a {@link Fiber}, return `true` to stop and select a node.\n */\nfunction traverseFiber<T = any>(\n /** Input {@link Fiber} to traverse. */\n fiber: Fiber | undefined,\n /** Whether to ascend and walk up the tree. Will walk down if `false`. */\n ascending: boolean,\n /** A {@link Fiber} node selector, returns the first match when `true` is passed. */\n selector: FiberSelector<T>\n): Fiber<T> | undefined {\n if (!fiber) {\n return;\n }\n if (selector(fiber) === true) {\n return fiber;\n }\n\n let child = ascending ? fiber.return : fiber.child;\n while (child) {\n const match = traverseFiber(child, ascending, selector);\n if (match) {\n return match;\n }\n\n child = ascending ? null : child.sibling;\n }\n}\n\n// In development, React will warn about using contexts between renderers.\n// Hide the warning because its-fine fixes this issue\n// https://github.com/facebook/react/pull/12779\nfunction wrapContext<T>(context: React.Context<T>): React.Context<T> {\n try {\n return Object.defineProperties(context, {\n _currentRenderer: {\n get() {\n return null;\n },\n set() {\n /* no-op */\n },\n },\n _currentRenderer2: {\n get() {\n return null;\n },\n set() {\n /* no-op */\n },\n },\n });\n } catch (_) {\n return context;\n }\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nconst FiberContext = /* @__PURE__ */ wrapContext(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n /* @__PURE__ */ React.createContext<Fiber>(null!)\n);\nFiberContext.displayName = 'FiberContext';\n\n/**\n * A react-internal {@link Fiber} provider. This component binds React children to the React Fiber tree. Call its-fine hooks within this.\n */\nexport class FiberProvider extends React.Component<{\n children?: React.ReactNode;\n}> {\n private _reactInternals!: Fiber;\n\n render(): JSX.Element {\n const { children } = this.props;\n return (\n // eslint-disable-next-line no-underscore-dangle\n <FiberContext.Provider value={this._reactInternals}>\n {children}\n </FiberContext.Provider>\n );\n }\n}\n\n/**\n * Returns the current react-internal {@link Fiber}. This is an implementation detail of [react-reconciler](https://github.com/facebook/react/tree/main/packages/react-reconciler).\n */\nexport function useFiber(): Fiber<null> | undefined {\n const root = React.useContext(FiberContext);\n if (root === null) {\n throw new Error('useFiber must be called within a <FiberProvider />!');\n }\n\n const [id] = React.useState(() => nanoid());\n const actualFiber = React.useMemo(() => {\n // eslint-disable-next-line no-restricted-syntax\n for (const maybeFiber of [root, root?.alternate].filter(r => r != null)) {\n const fiber = traverseFiber<null>(maybeFiber, false, node => {\n let state = node.memoizedState;\n while (state != null) {\n if (state.memoizedState === id) {\n return true;\n }\n state = state.next;\n }\n });\n\n if (fiber) {\n return fiber;\n }\n }\n }, [root, id]);\n\n return actualFiber;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePanelId.d.ts","sourceRoot":"","sources":["../src/usePanelId.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,cAAc,wCAAqC,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C"}
1
+ {"version":3,"file":"usePanelId.d.ts","sourceRoot":"","sources":["../src/usePanelId.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,cAAc,wCAAqC,CAAC;AAGjE;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C"}
@@ -4,6 +4,7 @@ import { createContext, useContext } from 'react';
4
4
  * Context to provide the golden layout panel ID.
5
5
  */
6
6
  export var PanelIdContext = /*#__PURE__*/createContext(null);
7
+ PanelIdContext.displayName = 'PanelIdContext';
7
8
 
8
9
  /**
9
10
  * Gets the current panel ID from the nearest context.
@@ -1 +1 @@
1
- {"version":3,"file":"usePanelId.js","names":["createContext","useContext","PanelIdContext","usePanelId"],"sources":["../src/usePanelId.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context to provide the golden layout panel ID.\n */\nexport const PanelIdContext = createContext<string | null>(null);\n\n/**\n * Gets the current panel ID from the nearest context.\n * @returns The current panel ID from the context, or null if not set or there is no context.\n */\nexport function usePanelId(): string | null {\n return useContext(PanelIdContext);\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAEjD;AACA;AACA;AACA,OAAO,IAAMC,cAAc,gBAAGF,aAAa,CAAgB,IAAI,CAAC;;AAEhE;AACA;AACA;AACA;AACA,OAAO,SAASG,UAAUA,CAAA,EAAkB;EAC1C,OAAOF,UAAU,CAACC,cAAc,CAAC;AACnC"}
1
+ {"version":3,"file":"usePanelId.js","names":["createContext","useContext","PanelIdContext","displayName","usePanelId"],"sources":["../src/usePanelId.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context to provide the golden layout panel ID.\n */\nexport const PanelIdContext = createContext<string | null>(null);\nPanelIdContext.displayName = 'PanelIdContext';\n\n/**\n * Gets the current panel ID from the nearest context.\n * @returns The current panel ID from the context, or null if not set or there is no context.\n */\nexport function usePanelId(): string | null {\n return useContext(PanelIdContext);\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAEjD;AACA;AACA;AACA,OAAO,IAAMC,cAAc,gBAAGF,aAAa,CAAgB,IAAI,CAAC;AAChEE,cAAc,CAACC,WAAW,GAAG,gBAAgB;;AAE7C;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAA,EAAkB;EAC1C,OAAOH,UAAU,CAACC,cAAc,CAAC;AACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard",
3
- "version": "1.4.1-beta.0+a155da69",
3
+ "version": "1.5.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": "^1.4.1-beta.0+a155da69",
26
- "@deephaven/golden-layout": "^1.4.1-beta.0+a155da69",
27
- "@deephaven/log": "^1.4.1-beta.0+a155da69",
28
- "@deephaven/react-hooks": "^1.4.1-beta.0+a155da69",
29
- "@deephaven/redux": "^1.4.1-beta.0+a155da69",
30
- "@deephaven/utils": "^1.4.1-beta.0+a155da69",
25
+ "@deephaven/components": "^1.5.0",
26
+ "@deephaven/golden-layout": "^1.5.0",
27
+ "@deephaven/log": "^1.1.0",
28
+ "@deephaven/react-hooks": "^1.2.0",
29
+ "@deephaven/redux": "^1.5.0",
30
+ "@deephaven/utils": "^1.1.0",
31
31
  "classnames": "^2.3.1",
32
32
  "fast-deep-equal": "^3.1.3",
33
33
  "lodash.ismatch": "^4.1.1",
@@ -42,8 +42,8 @@
42
42
  "react-redux": "^7.2.4"
43
43
  },
44
44
  "devDependencies": {
45
- "@deephaven/mocks": "^1.4.1-beta.0+a155da69",
46
- "@deephaven/test-utils": "^1.4.1-beta.0+a155da69",
45
+ "@deephaven/mocks": "^1.1.0",
46
+ "@deephaven/test-utils": "^1.1.0",
47
47
  "@types/lodash.ismatch": "^4.4.0",
48
48
  "@types/react-reconciler": "^0.32.0"
49
49
  },
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "a155da691eed1c03f3c4d719737d7b34abf16822"
56
+ "gitHead": "901db5e88f6177210e90a2e60f500d50eda9926b"
57
57
  }