@deephaven/iris-grid 0.85.9 → 0.85.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/IrisGrid.d.ts +10 -3
  2. package/dist/IrisGrid.d.ts.map +1 -1
  3. package/dist/IrisGrid.js +36 -7
  4. package/dist/IrisGrid.js.map +1 -1
  5. package/dist/IrisGridCellRendererUtils.d.ts.map +1 -1
  6. package/dist/IrisGridCellRendererUtils.js +13 -4
  7. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  8. package/dist/IrisGridIcons.d.ts +1 -2
  9. package/dist/IrisGridIcons.d.ts.map +1 -1
  10. package/dist/IrisGridIcons.js +7 -8
  11. package/dist/IrisGridIcons.js.map +1 -1
  12. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  13. package/dist/IrisGridProxyModel.js +2 -1
  14. package/dist/IrisGridProxyModel.js.map +1 -1
  15. package/dist/IrisGridRenderer.d.ts +2 -2
  16. package/dist/IrisGridRenderer.d.ts.map +1 -1
  17. package/dist/IrisGridRenderer.js +26 -18
  18. package/dist/IrisGridRenderer.js.map +1 -1
  19. package/dist/IrisGridTextCellRenderer.d.ts +3 -2
  20. package/dist/IrisGridTextCellRenderer.d.ts.map +1 -1
  21. package/dist/IrisGridTextCellRenderer.js +3 -3
  22. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  23. package/dist/IrisGridTheme.d.ts +9 -2
  24. package/dist/IrisGridTheme.d.ts.map +1 -1
  25. package/dist/IrisGridTheme.js +23 -4
  26. package/dist/IrisGridTheme.js.map +1 -1
  27. package/dist/IrisGridThemeProvider.d.ts +6 -2
  28. package/dist/IrisGridThemeProvider.d.ts.map +1 -1
  29. package/dist/IrisGridThemeProvider.js +15 -4
  30. package/dist/IrisGridThemeProvider.js.map +1 -1
  31. package/dist/LazyIrisGrid.d.ts +2 -1
  32. package/dist/LazyIrisGrid.d.ts.map +1 -1
  33. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +1 -1
  34. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  35. package/package.json +6 -6
@@ -7,17 +7,28 @@ import { createDefaultIrisGridTheme } from "./IrisGridTheme.js";
7
7
  * can createDefaultIrisGridTheme once, and not per grid.
8
8
  */
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
- export var IrisGridThemeContext = /*#__PURE__*/createContext(null);
10
+ export var IrisGridThemeContext = /*#__PURE__*/createContext({
11
+ theme: null,
12
+ density: 'regular'
13
+ });
11
14
  export function IrisGridThemeProvider(_ref) {
12
15
  var {
13
- children
16
+ children,
17
+ density = 'regular'
14
18
  } = _ref;
15
19
  var {
16
20
  activeThemes
17
21
  } = useTheme();
18
- var gridTheme = useMemo(createDefaultIrisGridTheme, [activeThemes]);
22
+ var gridTheme = useMemo(() => createDefaultIrisGridTheme(),
23
+ // When the theme changes, we need to update the grid theme which reads CSS variables to JS
24
+ // eslint-disable-next-line react-hooks/exhaustive-deps
25
+ [activeThemes]);
26
+ var contextValue = useMemo(() => ({
27
+ theme: gridTheme,
28
+ density
29
+ }), [gridTheme, density]);
19
30
  return /*#__PURE__*/_jsx(IrisGridThemeContext.Provider, {
20
- value: gridTheme,
31
+ value: contextValue,
21
32
  children: children
22
33
  });
23
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","IrisGridThemeProvider","_ref","children","activeThemes","gridTheme","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, ReactNode, useMemo } from 'react';\nimport { createDefaultIrisGridTheme, IrisGridThemeType } from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext =\n createContext<IrisGridThemeContextValue | null>(null);\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n}\n\nexport function IrisGridThemeProvider({\n children,\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(createDefaultIrisGridTheme, [activeThemes]);\n\n return (\n <IrisGridThemeContext.Provider value={gridTheme}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAaC,OAAO,QAAQ,OAAO;AAAC,SACjDC,0BAA0B;AAEnC;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAC/BL,aAAa,CAAmC,IAAI,CAAC;AAMvD,OAAO,SAASM,qBAAqBA,CAAAC,IAAA,EAEO;EAAA,IAFN;IACpCC;EAC0B,CAAC,GAAAD,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGV,QAAQ,CAAC,CAAC;EAEnC,IAAMW,SAAS,GAAGT,OAAO,CAACC,0BAA0B,EAAE,CAACO,YAAY,CAAC,CAAC;EAErE,oBACEL,IAAA,CAACC,oBAAoB,CAACM,QAAQ;IAACC,KAAK,EAAEF,SAAU;IAAAF,QAAA,EAC7CA;EAAQ,CACoB,CAAC;AAEpC"}
1
+ {"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","IrisGridThemeProvider","_ref","children","activeThemes","gridTheme","contextValue","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, ReactNode, useMemo } from 'react';\nimport { createDefaultIrisGridTheme, IrisGridThemeType } from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext = createContext<{\n theme: IrisGridThemeContextValue | null;\n density: 'compact' | 'regular' | 'spacious';\n}>({ theme: null, density: 'regular' });\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n /* The density of the grid. Defaults to regular */\n density?: 'compact' | 'regular' | 'spacious';\n}\n\nexport function IrisGridThemeProvider({\n children,\n density = 'regular',\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(\n () => createDefaultIrisGridTheme(),\n // When the theme changes, we need to update the grid theme which reads CSS variables to JS\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeThemes]\n );\n\n const contextValue = useMemo(\n () => ({ theme: gridTheme, density }),\n [gridTheme, density]\n );\n\n return (\n <IrisGridThemeContext.Provider value={contextValue}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAaC,OAAO,QAAQ,OAAO;AAAC,SACjDC,0BAA0B;AAEnC;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAAGL,aAAa,CAG9C;EAAEM,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAU,CAAC,CAAC;AAQvC,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAHN;IACpCC,QAAQ;IACRH,OAAO,GAAG;EACgB,CAAC,GAAAE,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGZ,QAAQ,CAAC,CAAC;EAEnC,IAAMa,SAAS,GAAGX,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACS,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGZ,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEM,SAAS;IAAEL;EAAQ,CAAC,CAAC,EACrC,CAACK,SAAS,EAAEL,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACS,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type IrisGridType from './IrisGrid';
3
3
  import type { IrisGridProps } from './IrisGrid';
4
- declare const LazyIrisGrid: import("react").ForwardRefExoticComponent<Pick<IrisGridProps, "model" | "columnHeaderGroups" | "renderer"> & Partial<Pick<IrisGridProps, "name" | "children" | "settings" | "onError" | "onContextMenu" | "isStuckToBottom" | "theme" | "customColumns" | "pendingDataMap" | "movedColumns" | "userColumnWidths" | "movedRows" | "isStuckToRight" | "advancedFilters" | "advancedSettings" | "alwaysFetchColumns" | "isFilterBarShown" | "applyInputFiltersOnInit" | "conditionalFormats" | "customColumnFormatMap" | "inputFilters" | "customFilters" | "onCreateChart" | "onColumnSelected" | "onDataSelected" | "onStateChange" | "onAdvancedSettingsChange" | "partitions" | "partitionConfig" | "sorts" | "reverseType" | "quickFilters" | "selectDistinctColumns" | "userRowHeights" | "onSelectionChanged" | "rollupConfig" | "aggregationSettings" | "isSelectingColumn" | "isSelectingPartition" | "columnSelectionValidator" | "columnAllowedCursor" | "columnNotAllowedCursor" | "copyCursor" | "onlyFetchVisibleColumns" | "showSearchBar" | "searchValue" | "selectedSearchColumns" | "invertSearchColumns" | "getDownloadWorker" | "canCopy" | "canDownloadCsv" | "frozenColumns" | "canToggleSearch" | "keyHandlers" | "mouseHandlers">> & Partial<Pick<{
4
+ declare const LazyIrisGrid: import("react").ForwardRefExoticComponent<Pick<IrisGridProps, "model" | "columnHeaderGroups" | "renderer"> & Partial<Pick<IrisGridProps, "name" | "children" | "settings" | "onError" | "onContextMenu" | "isStuckToBottom" | "theme" | "customColumns" | "pendingDataMap" | "movedColumns" | "userColumnWidths" | "movedRows" | "isStuckToRight" | "advancedFilters" | "advancedSettings" | "alwaysFetchColumns" | "isFilterBarShown" | "applyInputFiltersOnInit" | "conditionalFormats" | "customColumnFormatMap" | "inputFilters" | "customFilters" | "onCreateChart" | "onColumnSelected" | "onDataSelected" | "onStateChange" | "onAdvancedSettingsChange" | "partitions" | "partitionConfig" | "sorts" | "reverseType" | "quickFilters" | "selectDistinctColumns" | "userRowHeights" | "onSelectionChanged" | "rollupConfig" | "aggregationSettings" | "isSelectingColumn" | "isSelectingPartition" | "columnSelectionValidator" | "columnAllowedCursor" | "columnNotAllowedCursor" | "copyCursor" | "onlyFetchVisibleColumns" | "showSearchBar" | "searchValue" | "selectedSearchColumns" | "invertSearchColumns" | "getDownloadWorker" | "canCopy" | "canDownloadCsv" | "frozenColumns" | "canToggleSearch" | "keyHandlers" | "mouseHandlers" | "density">> & Partial<Pick<{
5
5
  children: null;
6
6
  advancedFilters: ReadonlyMap<never, never>;
7
7
  advancedSettings: ReadonlyMap<never, never>;
@@ -72,6 +72,7 @@ declare const LazyIrisGrid: import("react").ForwardRefExoticComponent<Pick<IrisG
72
72
  canDownloadCsv: boolean;
73
73
  frozenColumns: null;
74
74
  theme: null;
75
+ density: undefined;
75
76
  canToggleSearch: boolean;
76
77
  mouseHandlers: readonly never[];
77
78
  keyHandlers: readonly never[];
@@ -1 +1 @@
1
- {"version":3,"file":"LazyIrisGrid.d.ts","sourceRoot":"","sources":["../src/LazyIrisGrid.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAcjB,CAAC;AAIF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"LazyIrisGrid.d.ts","sourceRoot":"","sources":["../src/LazyIrisGrid.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,YAAY,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAcjB,CAAC;AAIF,eAAe,YAAY,CAAC"}
@@ -57,7 +57,7 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
57
57
  var {
58
58
  canvasContext: context
59
59
  } = grid;
60
- var theme = grid.getTheme();
60
+ var theme = this.irisGrid.getTheme();
61
61
  var rendererState = {
62
62
  context,
63
63
  mouseX: x,
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridCellOverflowMouseHandler.js","names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","_defineProperty","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","_ref","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","_this$getButtonPositi","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"sourcesContent":["import {\n GridPoint,\n GridMouseHandler,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'fast-deep-equal';\nimport type IrisGrid from '../IrisGrid';\nimport { IrisGridRenderState } from '../IrisGridRenderer';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({ x, y, column, row }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n\n const { canvasContext: context } = grid;\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } =\n renderer.getCellOverflowButtonPosition(rendererState);\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid;\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n } as IrisGridRenderState;\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row) as string,\n });\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridCellOverflowMouseHandler.js","names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","_defineProperty","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","_ref","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","_this$getButtonPositi","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"sourcesContent":["import {\n GridPoint,\n GridMouseHandler,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'fast-deep-equal';\nimport type IrisGrid from '../IrisGrid';\nimport { IrisGridRenderState } from '../IrisGridRenderer';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({ x, y, column, row }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n\n const { canvasContext: context } = grid;\n const theme = this.irisGrid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } =\n renderer.getCellOverflowButtonPosition(rendererState);\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid;\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n } as IrisGridRenderState;\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row) as string,\n });\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.85.9",
3
+ "version": "0.85.10",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -31,12 +31,12 @@
31
31
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
32
32
  },
33
33
  "dependencies": {
34
- "@deephaven/components": "^0.85.9",
35
- "@deephaven/console": "^0.85.9",
34
+ "@deephaven/components": "^0.85.10",
35
+ "@deephaven/console": "^0.85.10",
36
36
  "@deephaven/filters": "^0.85.0",
37
- "@deephaven/grid": "^0.85.7",
37
+ "@deephaven/grid": "^0.85.10",
38
38
  "@deephaven/icons": "^0.85.0",
39
- "@deephaven/jsapi-components": "^0.85.9",
39
+ "@deephaven/jsapi-components": "^0.85.10",
40
40
  "@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
41
41
  "@deephaven/jsapi-utils": "^0.85.8",
42
42
  "@deephaven/log": "^0.85.0",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "15a393e622f499eec90f335c6318d09b29a688ef"
82
+ "gitHead": "cc67bce0a9f8b38c71e949823725fd2bee61f1b7"
83
83
  }