@deephaven/dashboard-core-plugins 1.10.3 → 1.12.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":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAwB3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAsJzD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA4B3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAsJzD;AAED,eAAe,gBAAgB,CAAC"}
@@ -7,12 +7,11 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
7
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
8
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
9
  import { useCallback, useMemo, useRef, useState } from 'react';
10
- import { usePersistentState } from '@deephaven/plugin';
11
10
  import { IrisGrid, IrisGridCacheUtils, IrisGridUtils, isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
12
11
  import { useSelector } from 'react-redux';
13
12
  import { getSettings } from '@deephaven/redux';
14
13
  import { LoadingOverlay } from '@deephaven/components';
15
- import { useLayoutManager, useListener } from '@deephaven/dashboard';
14
+ import { useLayoutManager, useListener, usePersistentState } from '@deephaven/dashboard';
16
15
  import { assertNotNull, getErrorMessage } from '@deephaven/utils';
17
16
  import { useApi } from '@deephaven/jsapi-bootstrap';
18
17
  import { useIrisGridModel } from "./useIrisGridModel.js";
@@ -1 +1 @@
1
- {"version":3,"file":"GridWidgetPlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","IrisGrid","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","useSelector","getSettings","LoadingOverlay","useLayoutManager","useListener","assertNotNull","getErrorMessage","useApi","useIrisGridModel","useDashboardColumnFilters","InputFilterEvent","useGridLinker","useTablePlugin","jsx","_jsx","GridWidgetPlugin","_ref","_model$columns","fetch","settings","eventHub","fetchResult","model","status","undefined","dh","irisGridUtils","state","setState","version","type","initialState","hydratedState","current","_objectSpread","hydrateIrisGridState","hydrateGridState","dehydrateIrisGridState","makeMemoizedCombinedGridStateDehydrator","handleIrisGridChange","irisGridState","gridState","newState","inputFilters","columns","table","irisGridRef","_useGridLinker","alwaysFetchColumns","linkerAlwaysFetchColumns","linkerProps","_objectWithoutProperties","_excluded","handleClearAllFilters","clearAllFilters","CLEAR_ALL_FILTERS","selection","setSelection","Plugin","customFilters","filterFetchColumns","onContextMenu","selectedRanges","columnSet","Set","isLoading","errorMessage","error","ref","onStateChange","onSelectionChanged","children"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport {\n type WidgetComponentProps,\n usePersistentState,\n} from '@deephaven/plugin';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n IrisGrid,\n IrisGridCacheUtils,\n type IrisGridState,\n type IrisGridType,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n} from '@deephaven/iris-grid';\nimport { useSelector } from 'react-redux';\nimport { getSettings, type RootState } from '@deephaven/redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useLayoutManager, useListener } from '@deephaven/dashboard';\nimport { assertNotNull, getErrorMessage } from '@deephaven/utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type GridRange, type GridState } from '@deephaven/grid';\nimport { useIrisGridModel } from './useIrisGridModel';\nimport useDashboardColumnFilters from './useDashboardColumnFilters';\nimport { InputFilterEvent } from './events';\nimport useGridLinker from './useGridLinker';\nimport { useTablePlugin } from './useTablePlugin';\n\nexport function GridWidgetPlugin({\n fetch,\n}: WidgetComponentProps<DhType.Table>): JSX.Element | null {\n const settings = useSelector(getSettings<RootState>);\n const { eventHub } = useLayoutManager();\n\n const fetchResult = useIrisGridModel(fetch);\n const model =\n fetchResult.status === 'success' ? fetchResult.model : undefined;\n\n const dh = useApi();\n const irisGridUtils = useMemo(() => new IrisGridUtils(dh), [dh]);\n\n const [state, setState] = usePersistentState<\n (DehydratedIrisGridState & DehydratedGridState) | undefined\n >(undefined, {\n version: 1,\n type: 'GridWidgetPlugin',\n });\n const initialState = useRef(state);\n const hydratedState = useMemo(() => {\n if (\n fetchResult.status !== 'success' ||\n initialState.current === undefined\n ) {\n return;\n }\n return {\n ...irisGridUtils.hydrateIrisGridState(\n fetchResult.model,\n initialState.current\n ),\n ...IrisGridUtils.hydrateGridState(\n fetchResult.model,\n initialState.current\n ),\n };\n }, [fetchResult, irisGridUtils]);\n\n const dehydrateIrisGridState = useMemo(\n () => IrisGridCacheUtils.makeMemoizedCombinedGridStateDehydrator(),\n []\n );\n\n const handleIrisGridChange = useCallback(\n (irisGridState: IrisGridState, gridState: GridState) => {\n if (\n fetchResult.status !== 'success' ||\n irisGridState == null ||\n gridState == null\n ) {\n return;\n }\n\n const newState = dehydrateIrisGridState(\n fetchResult.model,\n irisGridState,\n gridState\n );\n\n setState(newState);\n },\n [fetchResult, setState, dehydrateIrisGridState]\n );\n\n const inputFilters = useDashboardColumnFilters(\n model?.columns ?? null,\n model != null && isIrisGridTableModelTemplate(model)\n ? model.table\n : undefined\n );\n\n const irisGridRef = useRef<IrisGridType | null>(null);\n\n const { alwaysFetchColumns: linkerAlwaysFetchColumns, ...linkerProps } =\n useGridLinker(\n fetchResult.status === 'success' ? fetchResult.model : null,\n irisGridRef.current\n );\n\n const handleClearAllFilters = useCallback(() => {\n if (irisGridRef.current == null) {\n return;\n }\n irisGridRef.current.clearAllFilters();\n }, []);\n\n useListener(\n eventHub,\n InputFilterEvent.CLEAR_ALL_FILTERS,\n handleClearAllFilters\n );\n\n const [selection, setSelection] = useState<readonly GridRange[]>([]);\n\n const {\n Plugin,\n customFilters,\n alwaysFetchColumns: filterFetchColumns,\n onContextMenu,\n } = useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges: selection,\n });\n\n const alwaysFetchColumns = useMemo(() => {\n const columnSet = new Set([\n ...linkerAlwaysFetchColumns,\n ...filterFetchColumns,\n ]);\n return [...columnSet];\n }, [linkerAlwaysFetchColumns, filterFetchColumns]);\n\n if (fetchResult.status === 'loading') {\n return (\n <LoadingOverlay isLoading data-testid=\"grid-widget-plugin-loading\" />\n );\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n data-testid=\"grid-widget-plugin-loading-error\"\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n assertNotNull(model, 'Model should be defined when fetch is successful');\n\n return (\n <IrisGrid\n ref={irisGridRef}\n model={model}\n settings={settings}\n onStateChange={handleIrisGridChange}\n onSelectionChanged={setSelection}\n onContextMenu={onContextMenu}\n inputFilters={inputFilters}\n customFilters={customFilters}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...linkerProps}\n alwaysFetchColumns={alwaysFetchColumns}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...hydratedState}\n >\n {Plugin}\n </IrisGrid>\n );\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":";;;;;;;;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAEEC,kBAAkB,QACb,mBAAmB;AAE1B,SAGEC,QAAQ,EACRC,kBAAkB,EAGlBC,aAAa,EACbC,4BAA4B,QACvB,sBAAsB;AAC7B,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,WAAW,QAAwB,kBAAkB;AAC9D,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,sBAAsB;AACpE,SAASC,aAAa,EAAEC,eAAe,QAAQ,kBAAkB;AACjE,SAASC,MAAM,QAAQ,4BAA4B;AAAC,SAE3CC,gBAAgB;AAAA,OAClBC,yBAAyB;AAAA,SACvBC,gBAAgB;AAAA,OAClBC,aAAa;AAAA,SACXC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEvB,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAE2B;EAAA,IAAAC,cAAA;EAAA,IAF1B;IAC/BC;EACkC,CAAC,GAAAF,IAAA;EACnC,IAAMG,QAAQ,GAAGnB,WAAW,CAACC,WAAsB,CAAC;EACpD,IAAM;IAAEmB;EAAS,CAAC,GAAGjB,gBAAgB,CAAC,CAAC;EAEvC,IAAMkB,WAAW,GAAGb,gBAAgB,CAACU,KAAK,CAAC;EAC3C,IAAMI,KAAK,GACTD,WAAW,CAACE,MAAM,KAAK,SAAS,GAAGF,WAAW,CAACC,KAAK,GAAGE,SAAS;EAElE,IAAMC,EAAE,GAAGlB,MAAM,CAAC,CAAC;EACnB,IAAMmB,aAAa,GAAGlC,OAAO,CAAC,MAAM,IAAIM,aAAa,CAAC2B,EAAE,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EAEhE,IAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGjC,kBAAkB,CAE1C6B,SAAS,EAAE;IACXK,OAAO,EAAE,CAAC;IACVC,IAAI,EAAE;EACR,CAAC,CAAC;EACF,IAAMC,YAAY,GAAGtC,MAAM,CAACkC,KAAK,CAAC;EAClC,IAAMK,aAAa,GAAGxC,OAAO,CAAC,MAAM;IAClC,IACE6B,WAAW,CAACE,MAAM,KAAK,SAAS,IAChCQ,YAAY,CAACE,OAAO,KAAKT,SAAS,EAClC;MACA;IACF;IACA,OAAAU,aAAA,CAAAA,aAAA,KACKR,aAAa,CAACS,oBAAoB,CACnCd,WAAW,CAACC,KAAK,EACjBS,YAAY,CAACE,OACf,CAAC,GACEnC,aAAa,CAACsC,gBAAgB,CAC/Bf,WAAW,CAACC,KAAK,EACjBS,YAAY,CAACE,OACf,CAAC;EAEL,CAAC,EAAE,CAACZ,WAAW,EAAEK,aAAa,CAAC,CAAC;EAEhC,IAAMW,sBAAsB,GAAG7C,OAAO,CACpC,MAAMK,kBAAkB,CAACyC,uCAAuC,CAAC,CAAC,EAClE,EACF,CAAC;EAED,IAAMC,oBAAoB,GAAGhD,WAAW,CACtC,CAACiD,aAA4B,EAAEC,SAAoB,KAAK;IACtD,IACEpB,WAAW,CAACE,MAAM,KAAK,SAAS,IAChCiB,aAAa,IAAI,IAAI,IACrBC,SAAS,IAAI,IAAI,EACjB;MACA;IACF;IAEA,IAAMC,QAAQ,GAAGL,sBAAsB,CACrChB,WAAW,CAACC,KAAK,EACjBkB,aAAa,EACbC,SACF,CAAC;IAEDb,QAAQ,CAACc,QAAQ,CAAC;EACpB,CAAC,EACD,CAACrB,WAAW,EAAEO,QAAQ,EAAES,sBAAsB,CAChD,CAAC;EAED,IAAMM,YAAY,GAAGlC,yBAAyB,EAAAQ,cAAA,GAC5CK,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEsB,OAAO,cAAA3B,cAAA,cAAAA,cAAA,GAAI,IAAI,EACtBK,KAAK,IAAI,IAAI,IAAIvB,4BAA4B,CAACuB,KAAK,CAAC,GAChDA,KAAK,CAACuB,KAAK,GACXrB,SACN,CAAC;EAED,IAAMsB,WAAW,GAAGrD,MAAM,CAAsB,IAAI,CAAC;EAErD,IAAAsD,cAAA,GACEpC,aAAa,CACXU,WAAW,CAACE,MAAM,KAAK,SAAS,GAAGF,WAAW,CAACC,KAAK,GAAG,IAAI,EAC3DwB,WAAW,CAACb,OACd,CAAC;IAJG;MAAEe,kBAAkB,EAAEC;IAAyC,CAAC,GAAAF,cAAA;IAAbG,WAAW,GAAAC,wBAAA,CAAAJ,cAAA,EAAAK,SAAA;EAMpE,IAAMC,qBAAqB,GAAG9D,WAAW,CAAC,MAAM;IAC9C,IAAIuD,WAAW,CAACb,OAAO,IAAI,IAAI,EAAE;MAC/B;IACF;IACAa,WAAW,CAACb,OAAO,CAACqB,eAAe,CAAC,CAAC;EACvC,CAAC,EAAE,EAAE,CAAC;EAENlD,WAAW,CACTgB,QAAQ,EACRV,gBAAgB,CAAC6C,iBAAiB,EAClCF,qBACF,CAAC;EAED,IAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAG/D,QAAQ,CAAuB,EAAE,CAAC;EAEpE,IAAM;IACJgE,MAAM;IACNC,aAAa;IACbX,kBAAkB,EAAEY,kBAAkB;IACtCC;EACF,CAAC,GAAGjD,cAAc,CAAC;IACjBU,KAAK;IACLwB,WAAW;IACXpB,aAAa;IACboC,cAAc,EAAEN;EAClB,CAAC,CAAC;EAEF,IAAMR,kBAAkB,GAAGxD,OAAO,CAAC,MAAM;IACvC,IAAMuE,SAAS,GAAG,IAAIC,GAAG,CAAC,CACxB,GAAGf,wBAAwB,EAC3B,GAAGW,kBAAkB,CACtB,CAAC;IACF,OAAO,CAAC,GAAGG,SAAS,CAAC;EACvB,CAAC,EAAE,CAACd,wBAAwB,EAAEW,kBAAkB,CAAC,CAAC;EAElD,IAAIvC,WAAW,CAACE,MAAM,KAAK,SAAS,EAAE;IACpC,oBACET,IAAA,CAACZ,cAAc;MAAC+D,SAAS;MAAC,eAAY;IAA4B,CAAE,CAAC;EAEzE;EAEA,IAAI5C,WAAW,CAACE,MAAM,KAAK,OAAO,EAAE;IAClC,oBACET,IAAA,CAACZ,cAAc;MACb,eAAY,kCAAkC;MAC9CgE,YAAY,EAAE5D,eAAe,CAACe,WAAW,CAAC8C,KAAK,CAAE;MACjDF,SAAS,EAAE;IAAM,CAClB,CAAC;EAEN;EAEA5D,aAAa,CAACiB,KAAK,EAAE,kDAAkD,CAAC;EAExE,oBACER,IAAA,CAAClB,QAAQ,EAAAsC,aAAA,CAAAA,aAAA,CAAAA,aAAA;IACPkC,GAAG,EAAEtB,WAAY;IACjBxB,KAAK,EAAEA,KAAM;IACbH,QAAQ,EAAEA,QAAS;IACnBkD,aAAa,EAAE9B,oBAAqB;IACpC+B,kBAAkB,EAAEb,YAAa;IACjCI,aAAa,EAAEA,aAAc;IAC7BlB,YAAY,EAAEA,YAAa;IAC3BgB,aAAa,EAAEA;IACf;EAAA,GACIT,WAAW;IACfF,kBAAkB,EAAEA;IACpB;EAAA,GACIhB,aAAa;IAAAuC,QAAA,EAEhBb;EAAM,EACC,CAAC;AAEf;AAEA,eAAe3C,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"GridWidgetPlugin.js","names":["useCallback","useMemo","useRef","useState","IrisGrid","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","useSelector","getSettings","LoadingOverlay","useLayoutManager","useListener","usePersistentState","assertNotNull","getErrorMessage","useApi","useIrisGridModel","useDashboardColumnFilters","InputFilterEvent","useGridLinker","useTablePlugin","jsx","_jsx","GridWidgetPlugin","_ref","_model$columns","fetch","settings","eventHub","fetchResult","model","status","undefined","dh","irisGridUtils","state","setState","version","type","initialState","hydratedState","current","_objectSpread","hydrateIrisGridState","hydrateGridState","dehydrateIrisGridState","makeMemoizedCombinedGridStateDehydrator","handleIrisGridChange","irisGridState","gridState","newState","inputFilters","columns","table","irisGridRef","_useGridLinker","alwaysFetchColumns","linkerAlwaysFetchColumns","linkerProps","_objectWithoutProperties","_excluded","handleClearAllFilters","clearAllFilters","CLEAR_ALL_FILTERS","selection","setSelection","Plugin","customFilters","filterFetchColumns","onContextMenu","selectedRanges","columnSet","Set","isLoading","errorMessage","error","ref","onStateChange","onSelectionChanged","children"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n IrisGrid,\n IrisGridCacheUtils,\n type IrisGridState,\n type IrisGridType,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n} from '@deephaven/iris-grid';\nimport { useSelector } from 'react-redux';\nimport { getSettings, type RootState } from '@deephaven/redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport {\n useLayoutManager,\n useListener,\n usePersistentState,\n} from '@deephaven/dashboard';\nimport { assertNotNull, getErrorMessage } from '@deephaven/utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type GridRange, type GridState } from '@deephaven/grid';\nimport { useIrisGridModel } from './useIrisGridModel';\nimport useDashboardColumnFilters from './useDashboardColumnFilters';\nimport { InputFilterEvent } from './events';\nimport useGridLinker from './useGridLinker';\nimport { useTablePlugin } from './useTablePlugin';\n\nexport function GridWidgetPlugin({\n fetch,\n}: WidgetComponentProps<DhType.Table>): JSX.Element | null {\n const settings = useSelector(getSettings<RootState>);\n const { eventHub } = useLayoutManager();\n\n const fetchResult = useIrisGridModel(fetch);\n const model =\n fetchResult.status === 'success' ? fetchResult.model : undefined;\n\n const dh = useApi();\n const irisGridUtils = useMemo(() => new IrisGridUtils(dh), [dh]);\n\n const [state, setState] = usePersistentState<\n (DehydratedIrisGridState & DehydratedGridState) | undefined\n >(undefined, {\n version: 1,\n type: 'GridWidgetPlugin',\n });\n const initialState = useRef(state);\n const hydratedState = useMemo(() => {\n if (\n fetchResult.status !== 'success' ||\n initialState.current === undefined\n ) {\n return;\n }\n return {\n ...irisGridUtils.hydrateIrisGridState(\n fetchResult.model,\n initialState.current\n ),\n ...IrisGridUtils.hydrateGridState(\n fetchResult.model,\n initialState.current\n ),\n };\n }, [fetchResult, irisGridUtils]);\n\n const dehydrateIrisGridState = useMemo(\n () => IrisGridCacheUtils.makeMemoizedCombinedGridStateDehydrator(),\n []\n );\n\n const handleIrisGridChange = useCallback(\n (irisGridState: IrisGridState, gridState: GridState) => {\n if (\n fetchResult.status !== 'success' ||\n irisGridState == null ||\n gridState == null\n ) {\n return;\n }\n\n const newState = dehydrateIrisGridState(\n fetchResult.model,\n irisGridState,\n gridState\n );\n\n setState(newState);\n },\n [fetchResult, setState, dehydrateIrisGridState]\n );\n\n const inputFilters = useDashboardColumnFilters(\n model?.columns ?? null,\n model != null && isIrisGridTableModelTemplate(model)\n ? model.table\n : undefined\n );\n\n const irisGridRef = useRef<IrisGridType | null>(null);\n\n const { alwaysFetchColumns: linkerAlwaysFetchColumns, ...linkerProps } =\n useGridLinker(\n fetchResult.status === 'success' ? fetchResult.model : null,\n irisGridRef.current\n );\n\n const handleClearAllFilters = useCallback(() => {\n if (irisGridRef.current == null) {\n return;\n }\n irisGridRef.current.clearAllFilters();\n }, []);\n\n useListener(\n eventHub,\n InputFilterEvent.CLEAR_ALL_FILTERS,\n handleClearAllFilters\n );\n\n const [selection, setSelection] = useState<readonly GridRange[]>([]);\n\n const {\n Plugin,\n customFilters,\n alwaysFetchColumns: filterFetchColumns,\n onContextMenu,\n } = useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges: selection,\n });\n\n const alwaysFetchColumns = useMemo(() => {\n const columnSet = new Set([\n ...linkerAlwaysFetchColumns,\n ...filterFetchColumns,\n ]);\n return [...columnSet];\n }, [linkerAlwaysFetchColumns, filterFetchColumns]);\n\n if (fetchResult.status === 'loading') {\n return (\n <LoadingOverlay isLoading data-testid=\"grid-widget-plugin-loading\" />\n );\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n data-testid=\"grid-widget-plugin-loading-error\"\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n assertNotNull(model, 'Model should be defined when fetch is successful');\n\n return (\n <IrisGrid\n ref={irisGridRef}\n model={model}\n settings={settings}\n onStateChange={handleIrisGridChange}\n onSelectionChanged={setSelection}\n onContextMenu={onContextMenu}\n inputFilters={inputFilters}\n customFilters={customFilters}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...linkerProps}\n alwaysFetchColumns={alwaysFetchColumns}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...hydratedState}\n >\n {Plugin}\n </IrisGrid>\n );\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useTablePlugin.d.ts","sourceRoot":"","sources":["../src/useTablePlugin.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACzD;;OAEG;IACH,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,cAAc,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,GACf,EAAE,mBAAmB,GAAG;IACvB,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC5B,GAAG,IAAI,CACN,aAAa,EACb,eAAe,GAAG,oBAAoB,GAAG,eAAe,CACzD,CAuDA;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useTablePlugin.d.ts","sourceRoot":"","sources":["../src/useTablePlugin.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACzD;;OAEG;IACH,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,cAAc,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,GACf,EAAE,mBAAmB,GAAG;IACvB,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC5B,GAAG,IAAI,CACN,aAAa,EACb,eAAe,GAAG,oBAAoB,GAAG,eAAe,CACzD,CAuDA;AAED,eAAe,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useMemo, useRef, useState } from 'react';
2
- import { usePersistentState } from '@deephaven/plugin';
2
+ import { usePersistentState } from '@deephaven/dashboard';
3
3
  import { isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
4
4
  import { TablePluginWrapper } from "./TablePluginWrapper.js";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"useTablePlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","isIrisGridTableModelTemplate","TablePluginWrapper","jsx","_jsx","useTablePlugin","_ref","model","irisGridRef","irisGridUtils","selectedRanges","pluginFilters","setPluginFilters","customFilters","getFiltersFromInputFilters","table","columns","formatter","timeZone","alwaysFetchColumns","setAlwaysFetchColumns","pluginRef","pluginState","setPluginState","undefined","version","type","Plugin","pluginName","ref","name","filter","fetchColumns","onStateChange","onContextMenu","data","_pluginRef$current$ge","_pluginRef$current","_pluginRef$current$ge2","current","getMenu","call"],"sources":["../src/useTablePlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { usePersistentState, type TablePluginElement } from '@deephaven/plugin';\nimport {\n type InputFilter,\n type IrisGridModel,\n type IrisGridProps,\n type IrisGridUtils,\n isIrisGridTableModelTemplate,\n type IrisGridType,\n type IrisGridContextMenuData,\n} from '@deephaven/iris-grid';\nimport { type GridRange } from '@deephaven/grid';\nimport { TablePluginWrapper } from './TablePluginWrapper';\n\ninterface UseTablePluginProps {\n /**\n * The IrisGrid model for this plugin.\n * Currently only IrisGridTableModelTemplate types are supported.\n * Other IrisGrid model types will be ignored for now.\n */\n model: IrisGridModel | undefined;\n /**\n * A reference to the IrisGrid component instance.\n */\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n /**\n * A IrisGridUtils instance.\n */\n irisGridUtils: IrisGridUtils | undefined;\n /**\n * The currently selected ranges in the grid.\n */\n selectedRanges: readonly GridRange[] | undefined;\n}\n\n/**\n * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.\n * The returned props should be passed to the IrisGrid component or merged with other sources\n * of the same props.\n * @param props The properties for the table plugin. The props object itself does not need to be memoized,\n * but the values inside it should be stable to avoid unnecessary re-renders.\n * @returns Object containing `Plugin` key which is the Plugin component.\n * The remaining object keys are IrisGrid props associated with the plugin.\n */\nexport function useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges,\n}: UseTablePluginProps): {\n Plugin: JSX.Element | null;\n} & Pick<\n IrisGridProps,\n 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'\n> {\n const [pluginFilters, setPluginFilters] = useState<InputFilter[]>([]);\n const customFilters = useMemo(\n () =>\n model != null &&\n irisGridUtils != null &&\n isIrisGridTableModelTemplate(model)\n ? irisGridUtils.getFiltersFromInputFilters(\n model.table.columns,\n pluginFilters,\n model.formatter.timeZone\n )\n : [],\n [model, irisGridUtils, pluginFilters]\n );\n const [alwaysFetchColumns, setAlwaysFetchColumns] = useState<string[]>([]);\n const pluginRef = useRef<TablePluginElement | null>(null);\n const [pluginState, setPluginState] = usePersistentState<unknown>(undefined, {\n version: 1,\n // pluginName will be undefined on first call when re-hydrating,\n // so use a constant type to avoid re-hydration issues with the persistent state type\n type: 'GridWidgetTablePluginState',\n });\n\n const Plugin = useMemo(\n () =>\n model != null &&\n isIrisGridTableModelTemplate(model) &&\n model.table.pluginName != null ? (\n <TablePluginWrapper\n ref={pluginRef}\n name={model.table.pluginName}\n model={model}\n filter={setPluginFilters}\n fetchColumns={setAlwaysFetchColumns}\n selectedRanges={selectedRanges}\n irisGridRef={irisGridRef}\n pluginState={pluginState}\n onStateChange={setPluginState}\n />\n ) : null,\n [model, selectedRanges, irisGridRef, pluginState, setPluginState]\n );\n\n const onContextMenu = useCallback(\n (data: IrisGridContextMenuData) => pluginRef.current?.getMenu?.(data) ?? [],\n []\n );\n\n return {\n Plugin,\n customFilters,\n alwaysFetchColumns,\n onContextMenu,\n };\n}\n\nexport default useTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,kBAAkB,QAAiC,mBAAmB;AAC/E,SAKEC,4BAA4B,QAGvB,sBAAsB;AAAC,SAErBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAU5B;EAAA,IAV6B;IAC7BC,KAAK;IACLC,WAAW;IACXC,aAAa;IACbC;EACmB,CAAC,GAAAJ,IAAA;EAMpB,IAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAgB,EAAE,CAAC;EACrE,IAAMc,aAAa,GAAGhB,OAAO,CAC3B,MACEU,KAAK,IAAI,IAAI,IACbE,aAAa,IAAI,IAAI,IACrBR,4BAA4B,CAACM,KAAK,CAAC,GAC/BE,aAAa,CAACK,0BAA0B,CACtCP,KAAK,CAACQ,KAAK,CAACC,OAAO,EACnBL,aAAa,EACbJ,KAAK,CAACU,SAAS,CAACC,QAClB,CAAC,GACD,EAAE,EACR,CAACX,KAAK,EAAEE,aAAa,EAAEE,aAAa,CACtC,CAAC;EACD,IAAM,CAACQ,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGrB,QAAQ,CAAW,EAAE,CAAC;EAC1E,IAAMsB,SAAS,GAAGvB,MAAM,CAA4B,IAAI,CAAC;EACzD,IAAM,CAACwB,WAAW,EAAEC,cAAc,CAAC,GAAGvB,kBAAkB,CAAUwB,SAAS,EAAE;IAC3EC,OAAO,EAAE,CAAC;IACV;IACA;IACAC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMC,MAAM,GAAG9B,OAAO,CACpB,MACEU,KAAK,IAAI,IAAI,IACbN,4BAA4B,CAACM,KAAK,CAAC,IACnCA,KAAK,CAACQ,KAAK,CAACa,UAAU,IAAI,IAAI,gBAC5BxB,IAAA,CAACF,kBAAkB;IACjB2B,GAAG,EAAER,SAAU;IACfS,IAAI,EAAEvB,KAAK,CAACQ,KAAK,CAACa,UAAW;IAC7BrB,KAAK,EAAEA,KAAM;IACbwB,MAAM,EAAEnB,gBAAiB;IACzBoB,YAAY,EAAEZ,qBAAsB;IACpCV,cAAc,EAAEA,cAAe;IAC/BF,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAEA,WAAY;IACzBW,aAAa,EAAEV;EAAe,CAC/B,CAAC,GACA,IAAI,EACV,CAAChB,KAAK,EAAEG,cAAc,EAAEF,WAAW,EAAEc,WAAW,EAAEC,cAAc,CAClE,CAAC;EAED,IAAMW,aAAa,GAAGtC,WAAW,CAC9BuC,IAA6B;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,kBAAA,GAAKhB,SAAS,CAACkB,OAAO,cAAAF,kBAAA,gBAAAC,sBAAA,GAAjBD,kBAAA,CAAmBG,OAAO,cAAAF,sBAAA,uBAA1BA,sBAAA,CAAAG,IAAA,CAAAJ,kBAAA,EAA6BF,IAAI,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC3E,EACF,CAAC;EAED,OAAO;IACLT,MAAM;IACNd,aAAa;IACbM,kBAAkB;IAClBe;EACF,CAAC;AACH;AAEA,eAAe7B,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"useTablePlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","isIrisGridTableModelTemplate","TablePluginWrapper","jsx","_jsx","useTablePlugin","_ref","model","irisGridRef","irisGridUtils","selectedRanges","pluginFilters","setPluginFilters","customFilters","getFiltersFromInputFilters","table","columns","formatter","timeZone","alwaysFetchColumns","setAlwaysFetchColumns","pluginRef","pluginState","setPluginState","undefined","version","type","Plugin","pluginName","ref","name","filter","fetchColumns","onStateChange","onContextMenu","data","_pluginRef$current$ge","_pluginRef$current","_pluginRef$current$ge2","current","getMenu","call"],"sources":["../src/useTablePlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { usePersistentState } from '@deephaven/dashboard';\nimport { type TablePluginElement } from '@deephaven/plugin';\nimport {\n type InputFilter,\n type IrisGridModel,\n type IrisGridProps,\n type IrisGridUtils,\n isIrisGridTableModelTemplate,\n type IrisGridType,\n type IrisGridContextMenuData,\n} from '@deephaven/iris-grid';\nimport { type GridRange } from '@deephaven/grid';\nimport { TablePluginWrapper } from './TablePluginWrapper';\n\ninterface UseTablePluginProps {\n /**\n * The IrisGrid model for this plugin.\n * Currently only IrisGridTableModelTemplate types are supported.\n * Other IrisGrid model types will be ignored for now.\n */\n model: IrisGridModel | undefined;\n /**\n * A reference to the IrisGrid component instance.\n */\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n /**\n * A IrisGridUtils instance.\n */\n irisGridUtils: IrisGridUtils | undefined;\n /**\n * The currently selected ranges in the grid.\n */\n selectedRanges: readonly GridRange[] | undefined;\n}\n\n/**\n * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.\n * The returned props should be passed to the IrisGrid component or merged with other sources\n * of the same props.\n * @param props The properties for the table plugin. The props object itself does not need to be memoized,\n * but the values inside it should be stable to avoid unnecessary re-renders.\n * @returns Object containing `Plugin` key which is the Plugin component.\n * The remaining object keys are IrisGrid props associated with the plugin.\n */\nexport function useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges,\n}: UseTablePluginProps): {\n Plugin: JSX.Element | null;\n} & Pick<\n IrisGridProps,\n 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'\n> {\n const [pluginFilters, setPluginFilters] = useState<InputFilter[]>([]);\n const customFilters = useMemo(\n () =>\n model != null &&\n irisGridUtils != null &&\n isIrisGridTableModelTemplate(model)\n ? irisGridUtils.getFiltersFromInputFilters(\n model.table.columns,\n pluginFilters,\n model.formatter.timeZone\n )\n : [],\n [model, irisGridUtils, pluginFilters]\n );\n const [alwaysFetchColumns, setAlwaysFetchColumns] = useState<string[]>([]);\n const pluginRef = useRef<TablePluginElement | null>(null);\n const [pluginState, setPluginState] = usePersistentState<unknown>(undefined, {\n version: 1,\n // pluginName will be undefined on first call when re-hydrating,\n // so use a constant type to avoid re-hydration issues with the persistent state type\n type: 'GridWidgetTablePluginState',\n });\n\n const Plugin = useMemo(\n () =>\n model != null &&\n isIrisGridTableModelTemplate(model) &&\n model.table.pluginName != null ? (\n <TablePluginWrapper\n ref={pluginRef}\n name={model.table.pluginName}\n model={model}\n filter={setPluginFilters}\n fetchColumns={setAlwaysFetchColumns}\n selectedRanges={selectedRanges}\n irisGridRef={irisGridRef}\n pluginState={pluginState}\n onStateChange={setPluginState}\n />\n ) : null,\n [model, selectedRanges, irisGridRef, pluginState, setPluginState]\n );\n\n const onContextMenu = useCallback(\n (data: IrisGridContextMenuData) => pluginRef.current?.getMenu?.(data) ?? [],\n []\n );\n\n return {\n Plugin,\n customFilters,\n alwaysFetchColumns,\n onContextMenu,\n };\n}\n\nexport default useTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD,SAKEC,4BAA4B,QAGvB,sBAAsB;AAAC,SAErBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAU5B;EAAA,IAV6B;IAC7BC,KAAK;IACLC,WAAW;IACXC,aAAa;IACbC;EACmB,CAAC,GAAAJ,IAAA;EAMpB,IAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAgB,EAAE,CAAC;EACrE,IAAMc,aAAa,GAAGhB,OAAO,CAC3B,MACEU,KAAK,IAAI,IAAI,IACbE,aAAa,IAAI,IAAI,IACrBR,4BAA4B,CAACM,KAAK,CAAC,GAC/BE,aAAa,CAACK,0BAA0B,CACtCP,KAAK,CAACQ,KAAK,CAACC,OAAO,EACnBL,aAAa,EACbJ,KAAK,CAACU,SAAS,CAACC,QAClB,CAAC,GACD,EAAE,EACR,CAACX,KAAK,EAAEE,aAAa,EAAEE,aAAa,CACtC,CAAC;EACD,IAAM,CAACQ,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGrB,QAAQ,CAAW,EAAE,CAAC;EAC1E,IAAMsB,SAAS,GAAGvB,MAAM,CAA4B,IAAI,CAAC;EACzD,IAAM,CAACwB,WAAW,EAAEC,cAAc,CAAC,GAAGvB,kBAAkB,CAAUwB,SAAS,EAAE;IAC3EC,OAAO,EAAE,CAAC;IACV;IACA;IACAC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMC,MAAM,GAAG9B,OAAO,CACpB,MACEU,KAAK,IAAI,IAAI,IACbN,4BAA4B,CAACM,KAAK,CAAC,IACnCA,KAAK,CAACQ,KAAK,CAACa,UAAU,IAAI,IAAI,gBAC5BxB,IAAA,CAACF,kBAAkB;IACjB2B,GAAG,EAAER,SAAU;IACfS,IAAI,EAAEvB,KAAK,CAACQ,KAAK,CAACa,UAAW;IAC7BrB,KAAK,EAAEA,KAAM;IACbwB,MAAM,EAAEnB,gBAAiB;IACzBoB,YAAY,EAAEZ,qBAAsB;IACpCV,cAAc,EAAEA,cAAe;IAC/BF,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAEA,WAAY;IACzBW,aAAa,EAAEV;EAAe,CAC/B,CAAC,GACA,IAAI,EACV,CAAChB,KAAK,EAAEG,cAAc,EAAEF,WAAW,EAAEc,WAAW,EAAEC,cAAc,CAClE,CAAC;EAED,IAAMW,aAAa,GAAGtC,WAAW,CAC9BuC,IAA6B;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,kBAAA,GAAKhB,SAAS,CAACkB,OAAO,cAAAF,kBAAA,gBAAAC,sBAAA,GAAjBD,kBAAA,CAAmBG,OAAO,cAAAF,sBAAA,uBAA1BA,sBAAA,CAAAG,IAAA,CAAAJ,kBAAA,EAA6BF,IAAI,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC3E,EACF,CAAC;EAED,OAAO;IACLT,MAAM;IACNd,aAAa;IACbM,kBAAkB;IAClBe;EACF,CAAC;AACH;AAEA,eAAe7B,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "1.10.3",
3
+ "version": "1.12.0",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,24 +22,24 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^1.10.3",
26
- "@deephaven/components": "^1.10.0",
27
- "@deephaven/console": "^1.10.3",
28
- "@deephaven/dashboard": "^1.10.3",
29
- "@deephaven/file-explorer": "^1.10.0",
25
+ "@deephaven/chart": "^1.12.0",
26
+ "@deephaven/components": "^1.12.0",
27
+ "@deephaven/console": "^1.12.0",
28
+ "@deephaven/dashboard": "^1.12.0",
29
+ "@deephaven/file-explorer": "^1.12.0",
30
30
  "@deephaven/filters": "^1.1.0",
31
- "@deephaven/golden-layout": "^1.10.2",
32
- "@deephaven/grid": "^1.10.0",
31
+ "@deephaven/golden-layout": "^1.12.0",
32
+ "@deephaven/grid": "^1.12.0",
33
33
  "@deephaven/icons": "^1.2.0",
34
- "@deephaven/iris-grid": "^1.10.3",
35
- "@deephaven/jsapi-bootstrap": "^1.10.0",
36
- "@deephaven/jsapi-components": "^1.10.1",
34
+ "@deephaven/iris-grid": "^1.12.0",
35
+ "@deephaven/jsapi-bootstrap": "^1.12.0",
36
+ "@deephaven/jsapi-components": "^1.12.0",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.40.4",
38
38
  "@deephaven/jsapi-utils": "^1.10.1",
39
39
  "@deephaven/log": "^1.8.0",
40
- "@deephaven/plugin": "^1.10.3",
40
+ "@deephaven/plugin": "^1.12.0",
41
41
  "@deephaven/react-hooks": "^1.10.0",
42
- "@deephaven/redux": "^1.10.3",
42
+ "@deephaven/redux": "^1.11.0",
43
43
  "@deephaven/storage": "^1.8.0",
44
44
  "@deephaven/utils": "^1.10.0",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "4fea2c660ec352359de46f26d3d24bcd6cfc4144"
82
+ "gitHead": "f6807a8587d3b6dd0948ba3a632cd6af5cee919d"
83
83
  }