@deephaven/grid 0.107.1-beta.0 → 0.107.1-beta.5

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,8 +1,17 @@
1
1
  import { type EventHandlerResult } from '../EventHandlerResult';
2
2
  import type Grid from '../Grid';
3
3
  import GridMouseHandler, { type GridMouseEvent } from '../GridMouseHandler';
4
+ import GridRange, { type GridRangeIndex } from '../GridRange';
4
5
  import { type GridPoint } from '../GridUtils';
5
6
  declare class GridSelectionMouseHandler extends GridMouseHandler {
7
+ /**
8
+ * Returns the latest grid selection based on the current grid selection and where the user clicked
9
+ * This code is dependent on the behavior of onContextMenu
10
+ * @param originalSelection The selection from the current grid state which may be stale
11
+ * @param columnIndex The column index where the user clicked
12
+ * @param rowIndex The row index where the user clicked
13
+ */
14
+ static getLatestSelection(originalSelection: readonly GridRange[], columnIndex: GridRangeIndex, rowIndex: GridRangeIndex): readonly GridRange[];
6
15
  private startPoint?;
7
16
  private hasExtendedFloating;
8
17
  private timer?;
@@ -1 +1 @@
1
- {"version":3,"file":"GridSelectionMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,gBAAgB,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzD,cAAM,yBAA0B,SAAQ,gBAAgB;IACtD,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,mBAAmB,CAAS;IAGpC,OAAO,CAAC,KAAK,CAAC,CAAgC;IAE9C,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAkDrB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAsI5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAW1D,aAAa,CACX,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAarB,aAAa,CACX,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAoBrB,aAAa,CACX,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAuBP,UAAU,CACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAcP,SAAS,IAAI,IAAI;CAMlB;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"GridSelectionMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,gBAAgB,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,SAAS,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzD,cAAM,yBAA0B,SAAQ,gBAAgB;IACtD;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,iBAAiB,EAAE,SAAS,SAAS,EAAE,EACvC,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,cAAc,GACvB,SAAS,SAAS,EAAE;IAcvB,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,mBAAmB,CAAS;IAGpC,OAAO,CAAC,KAAK,CAAC,CAAgC;IAE9C,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAkDrB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAsI5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAW1D,aAAa,CACX,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAarB,aAAa,CACX,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAoBrB,aAAa,CACX,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAuBP,UAAU,CACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAcP,SAAS,IAAI,IAAI;CAMlB;AAED,eAAe,yBAAyB,CAAC"}
@@ -12,7 +12,24 @@ class GridSelectionMouseHandler extends GridMouseHandler {
12
12
  _defineProperty(this, "hasExtendedFloating", false);
13
13
  _defineProperty(this, "timer", void 0);
14
14
  _defineProperty(this, "lastTriggerTime", void 0);
15
- } // Timer used when holding a drag past the end of the grid
15
+ }
16
+ /**
17
+ * Returns the latest grid selection based on the current grid selection and where the user clicked
18
+ * This code is dependent on the behavior of onContextMenu
19
+ * @param originalSelection The selection from the current grid state which may be stale
20
+ * @param columnIndex The column index where the user clicked
21
+ * @param rowIndex The row index where the user clicked
22
+ */
23
+ static getLatestSelection(originalSelection, columnIndex, rowIndex) {
24
+ var clickedInOriginalSelection = GridRange.containsCell(originalSelection, columnIndex, rowIndex);
25
+
26
+ // If the user clicked in a valid cell outside of the original selection,
27
+ // the selection will be changed to just that cell.
28
+ return clickedInOriginalSelection || columnIndex == null || rowIndex == null ? originalSelection : [GridRange.makeCell(columnIndex, rowIndex)];
29
+ }
30
+
31
+ // Timer used when holding a drag past the end of the grid
32
+
16
33
  onDown(gridPoint, grid, event) {
17
34
  var {
18
35
  x,
@@ -196,7 +213,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
196
213
  var isInRange = GridRange.containsCell(selectedRanges, gridPoint.column, gridPoint.row);
197
214
 
198
215
  // only change the selected range if the selected cell is not in the selected range
199
- if (!isInRange && gridPoint.row !== null) {
216
+ if (!isInRange && gridPoint.row !== null && gridPoint.column !== null) {
200
217
  this.startPoint = undefined;
201
218
  this.stopTimer();
202
219
  grid.clearSelectedRanges();
@@ -1 +1 @@
1
- {"version":3,"file":"GridSelectionMouseHandler.js","names":["GridMouseHandler","GridRange","GridUtils","DEFAULT_INTERVAL_MS","GridSelectionMouseHandler","constructor","arguments","_defineProperty","onDown","gridPoint","grid","event","x","y","column","row","metrics","Error","gridX","gridY","maxX","maxY","gridMouseX","gridMouseY","isModifierKey","isModifierKeyDown","isShiftKey","shiftKey","trimSelectedRanges","clearSelectedRanges","theme","getTheme","autoSelectRow","autoSelectColumn","focus","moveCursorToPosition","startPoint","hasExtendedFloating","onDrag","undefined","stopTimer","startRow","startColumn","left","lastLeft","top","lastTop","columnWidth","rowHeight","dragBounds","getScrollDragBounds","deltaX","deltaY","x1","x2","y1","y2","startTimer","Math","ceil","floor","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","columnCount","rowCount","bottom","right","topVisible","bottomVisible","leftVisible","rightVisible","isFloatingRow","isFloatingColumn","onUp","commitSelection","onDoubleClick","onContextMenu","selectedRanges","getSelectedRanges","isInRange","containsCell","moveSelection","selectionEndRow","selectionEndColumn","state","minX","minY","min","max","lastTriggerTime","Date","now","timeout","timer","setTimeout","clearTimeout"],"sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"sourcesContent":["import { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridMouseHandler, { type GridMouseEvent } from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport GridUtils, { type GridPoint } from '../GridUtils';\n\nconst DEFAULT_INTERVAL_MS = 100;\n\nclass GridSelectionMouseHandler extends GridMouseHandler {\n private startPoint?: GridPoint;\n\n private hasExtendedFloating = false;\n\n // Timer used when holding a drag past the end of the grid\n private timer?: ReturnType<typeof setTimeout>;\n\n private lastTriggerTime?: number;\n\n onDown(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const { x, y, column, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { gridX, gridY, maxX, maxY } = metrics;\n const gridMouseX = x - gridX;\n const gridMouseY = y - gridY;\n if (\n gridMouseX < 0 ||\n gridMouseY < 0 ||\n (column == null && gridMouseX > maxX) ||\n (row == null && gridMouseY > maxY)\n ) {\n return false;\n }\n\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n const isShiftKey = event.shiftKey;\n if (!isModifierKey) {\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n }\n\n const theme = grid.getTheme();\n const { autoSelectRow, autoSelectColumn } = theme;\n // If they click a column/row header, don't want to select the whole table if auto select column/row is on\n if (\n (column !== null || !autoSelectColumn) &&\n (row !== null || !autoSelectRow)\n ) {\n grid.focus();\n grid.moveCursorToPosition(\n column,\n row,\n isShiftKey,\n false,\n isShiftKey && isModifierKey\n );\n }\n\n this.startPoint = gridPoint;\n this.hasExtendedFloating = false;\n\n return true;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint === undefined) {\n return false;\n }\n\n this.stopTimer();\n\n const { row: startRow, column: startColumn } = this.startPoint;\n const { x, y } = gridPoint;\n let { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { left, lastLeft, top, lastTop, columnWidth, rowHeight } = metrics;\n const dragBounds = GridUtils.getScrollDragBounds(\n metrics,\n startRow,\n startColumn\n );\n\n // If we're dragging outside of the grid entirely, then we should start scrolling\n let deltaX = 0;\n let deltaY = 0;\n if (left < lastLeft) {\n if (x < dragBounds.x1) {\n deltaX = x - dragBounds.x1;\n } else if (x > dragBounds.x2) {\n deltaX = x - dragBounds.x2;\n }\n }\n if (top < lastTop) {\n if (y < dragBounds.y1) {\n deltaY = y - dragBounds.y1;\n } else if (y > dragBounds.y2) {\n deltaY = y - dragBounds.y2;\n }\n }\n\n if (deltaX !== 0 || deltaY !== 0) {\n // Have it go faster depending on how far out they've dragged\n this.startTimer(\n grid,\n gridPoint,\n deltaX > 0\n ? Math.ceil(deltaX / columnWidth)\n : Math.floor(deltaX / columnWidth),\n deltaY > 0\n ? Math.ceil(deltaY / rowHeight)\n : Math.floor(deltaY / rowHeight)\n );\n } else if (row != null && column != null) {\n const {\n floatingTopRowCount,\n floatingBottomRowCount,\n floatingLeftColumnCount,\n floatingRightColumnCount,\n columnCount,\n rowCount,\n bottom,\n right,\n topVisible,\n bottomVisible,\n leftVisible,\n rightVisible,\n } = metrics;\n // When selection crosses from a floating area to a non floating area, we need to scroll instead of jumping to the floating area\n // So when that happens, just adjust the point to be past the new boundary\n if (!this.hasExtendedFloating) {\n if (\n startRow !== null &&\n startRow < floatingTopRowCount &&\n row >= floatingTopRowCount\n ) {\n // Extending from floating top into the view\n row = floatingTopRowCount;\n this.hasExtendedFloating = true;\n } else if (\n startRow !== null &&\n startRow >= rowCount - floatingBottomRowCount &&\n row < rowCount - floatingBottomRowCount\n ) {\n // Extending from floating bottom into the view\n row = rowCount - floatingBottomRowCount - 1;\n this.hasExtendedFloating = true;\n }\n\n if (\n startColumn !== null &&\n startColumn < floatingLeftColumnCount &&\n column >= floatingLeftColumnCount\n ) {\n // Extending from floating left into the view\n column = floatingLeftColumnCount;\n this.hasExtendedFloating = true;\n } else if (\n startColumn !== null &&\n startColumn >= columnCount - floatingRightColumnCount &&\n column < columnCount - floatingRightColumnCount\n ) {\n // Extending from floating right into the view\n column = columnCount - floatingRightColumnCount - 1;\n this.hasExtendedFloating = true;\n }\n }\n\n // When a selection is dragging from within the main area to over a floating area, scroll.\n if (\n startRow !== null &&\n !GridUtils.isFloatingRow(startRow, metrics) &&\n GridUtils.isFloatingRow(row, metrics)\n ) {\n // Need to scroll\n if (startRow > row && row < top) {\n row = topVisible - 1;\n } else if (startRow < row && row > bottom) {\n row = bottomVisible + 1;\n }\n }\n if (\n startColumn !== null &&\n !GridUtils.isFloatingColumn(startColumn, metrics) &&\n GridUtils.isFloatingColumn(column, metrics)\n ) {\n if (startColumn > column && column < left) {\n column = leftVisible - 1;\n } else if (startColumn < column && column > right) {\n column = rightVisible + 1;\n }\n }\n grid.moveCursorToPosition(column, row, true, true);\n }\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint !== undefined) {\n this.startPoint = undefined;\n this.stopTimer();\n grid.commitSelection();\n }\n\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n onDoubleClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const { column, row } = gridPoint;\n if (row == null || column == null) {\n return false;\n }\n\n grid.clearSelectedRanges();\n grid.moveCursorToPosition(column, row);\n grid.commitSelection();\n\n return true;\n }\n\n onContextMenu(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n // check if the selected is already in the selected range\n const selectedRanges = grid.getSelectedRanges();\n const isInRange = GridRange.containsCell(\n selectedRanges,\n gridPoint.column,\n gridPoint.row\n );\n\n // only change the selected range if the selected cell is not in the selected range\n if (!isInRange && gridPoint.row !== null) {\n this.startPoint = undefined;\n this.stopTimer();\n grid.clearSelectedRanges();\n grid.moveCursorToPosition(gridPoint.column, gridPoint.row);\n }\n\n return false;\n }\n\n moveSelection(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n const { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { selectionEndRow, selectionEndColumn } = grid.state;\n if (selectionEndRow == null || selectionEndColumn == null) {\n throw new Error('selection not set');\n }\n\n const { rowCount, columnCount } = metrics;\n const minX = deltaX < 0 && column != null ? column : 0;\n const maxX = deltaX > 0 && column != null ? column : columnCount - 1;\n const minY = deltaY < 0 && row != null ? row : 0;\n const maxY = deltaY > 0 && row != null ? row : rowCount - 1;\n grid.moveCursorToPosition(\n Math.min(Math.max(minX, selectionEndColumn + deltaX), maxX),\n Math.min(Math.max(minY, selectionEndRow + deltaY), maxY),\n true\n );\n this.lastTriggerTime = Date.now();\n }\n\n startTimer(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n this.stopTimer();\n\n const timeout =\n this.lastTriggerTime != null\n ? DEFAULT_INTERVAL_MS -\n Math.min(DEFAULT_INTERVAL_MS, Date.now() - this.lastTriggerTime)\n : 0;\n this.timer = setTimeout(() => {\n this.moveSelection(grid, gridPoint, deltaX, deltaY);\n this.startTimer(grid, gridPoint, deltaX, deltaY);\n }, timeout);\n }\n\n stopTimer(): void {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n}\n\nexport default GridSelectionMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridSelectionMouseHandler.js","names":["GridMouseHandler","GridRange","GridUtils","DEFAULT_INTERVAL_MS","GridSelectionMouseHandler","constructor","arguments","_defineProperty","getLatestSelection","originalSelection","columnIndex","rowIndex","clickedInOriginalSelection","containsCell","makeCell","onDown","gridPoint","grid","event","x","y","column","row","metrics","Error","gridX","gridY","maxX","maxY","gridMouseX","gridMouseY","isModifierKey","isModifierKeyDown","isShiftKey","shiftKey","trimSelectedRanges","clearSelectedRanges","theme","getTheme","autoSelectRow","autoSelectColumn","focus","moveCursorToPosition","startPoint","hasExtendedFloating","onDrag","undefined","stopTimer","startRow","startColumn","left","lastLeft","top","lastTop","columnWidth","rowHeight","dragBounds","getScrollDragBounds","deltaX","deltaY","x1","x2","y1","y2","startTimer","Math","ceil","floor","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","columnCount","rowCount","bottom","right","topVisible","bottomVisible","leftVisible","rightVisible","isFloatingRow","isFloatingColumn","onUp","commitSelection","onDoubleClick","onContextMenu","selectedRanges","getSelectedRanges","isInRange","moveSelection","selectionEndRow","selectionEndColumn","state","minX","minY","min","max","lastTriggerTime","Date","now","timeout","timer","setTimeout","clearTimeout"],"sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"sourcesContent":["import { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridMouseHandler, { type GridMouseEvent } from '../GridMouseHandler';\nimport GridRange, { type GridRangeIndex } from '../GridRange';\nimport GridUtils, { type GridPoint } from '../GridUtils';\n\nconst DEFAULT_INTERVAL_MS = 100;\n\nclass GridSelectionMouseHandler extends GridMouseHandler {\n /**\n * Returns the latest grid selection based on the current grid selection and where the user clicked\n * This code is dependent on the behavior of onContextMenu\n * @param originalSelection The selection from the current grid state which may be stale\n * @param columnIndex The column index where the user clicked\n * @param rowIndex The row index where the user clicked\n */\n static getLatestSelection(\n originalSelection: readonly GridRange[],\n columnIndex: GridRangeIndex,\n rowIndex: GridRangeIndex\n ): readonly GridRange[] {\n const clickedInOriginalSelection = GridRange.containsCell(\n originalSelection,\n columnIndex,\n rowIndex\n );\n\n // If the user clicked in a valid cell outside of the original selection,\n // the selection will be changed to just that cell.\n return clickedInOriginalSelection || columnIndex == null || rowIndex == null\n ? originalSelection\n : [GridRange.makeCell(columnIndex, rowIndex)];\n }\n\n private startPoint?: GridPoint;\n\n private hasExtendedFloating = false;\n\n // Timer used when holding a drag past the end of the grid\n private timer?: ReturnType<typeof setTimeout>;\n\n private lastTriggerTime?: number;\n\n onDown(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const { x, y, column, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { gridX, gridY, maxX, maxY } = metrics;\n const gridMouseX = x - gridX;\n const gridMouseY = y - gridY;\n if (\n gridMouseX < 0 ||\n gridMouseY < 0 ||\n (column == null && gridMouseX > maxX) ||\n (row == null && gridMouseY > maxY)\n ) {\n return false;\n }\n\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n const isShiftKey = event.shiftKey;\n if (!isModifierKey) {\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n }\n\n const theme = grid.getTheme();\n const { autoSelectRow, autoSelectColumn } = theme;\n // If they click a column/row header, don't want to select the whole table if auto select column/row is on\n if (\n (column !== null || !autoSelectColumn) &&\n (row !== null || !autoSelectRow)\n ) {\n grid.focus();\n grid.moveCursorToPosition(\n column,\n row,\n isShiftKey,\n false,\n isShiftKey && isModifierKey\n );\n }\n\n this.startPoint = gridPoint;\n this.hasExtendedFloating = false;\n\n return true;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint === undefined) {\n return false;\n }\n\n this.stopTimer();\n\n const { row: startRow, column: startColumn } = this.startPoint;\n const { x, y } = gridPoint;\n let { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { left, lastLeft, top, lastTop, columnWidth, rowHeight } = metrics;\n const dragBounds = GridUtils.getScrollDragBounds(\n metrics,\n startRow,\n startColumn\n );\n\n // If we're dragging outside of the grid entirely, then we should start scrolling\n let deltaX = 0;\n let deltaY = 0;\n if (left < lastLeft) {\n if (x < dragBounds.x1) {\n deltaX = x - dragBounds.x1;\n } else if (x > dragBounds.x2) {\n deltaX = x - dragBounds.x2;\n }\n }\n if (top < lastTop) {\n if (y < dragBounds.y1) {\n deltaY = y - dragBounds.y1;\n } else if (y > dragBounds.y2) {\n deltaY = y - dragBounds.y2;\n }\n }\n\n if (deltaX !== 0 || deltaY !== 0) {\n // Have it go faster depending on how far out they've dragged\n this.startTimer(\n grid,\n gridPoint,\n deltaX > 0\n ? Math.ceil(deltaX / columnWidth)\n : Math.floor(deltaX / columnWidth),\n deltaY > 0\n ? Math.ceil(deltaY / rowHeight)\n : Math.floor(deltaY / rowHeight)\n );\n } else if (row != null && column != null) {\n const {\n floatingTopRowCount,\n floatingBottomRowCount,\n floatingLeftColumnCount,\n floatingRightColumnCount,\n columnCount,\n rowCount,\n bottom,\n right,\n topVisible,\n bottomVisible,\n leftVisible,\n rightVisible,\n } = metrics;\n // When selection crosses from a floating area to a non floating area, we need to scroll instead of jumping to the floating area\n // So when that happens, just adjust the point to be past the new boundary\n if (!this.hasExtendedFloating) {\n if (\n startRow !== null &&\n startRow < floatingTopRowCount &&\n row >= floatingTopRowCount\n ) {\n // Extending from floating top into the view\n row = floatingTopRowCount;\n this.hasExtendedFloating = true;\n } else if (\n startRow !== null &&\n startRow >= rowCount - floatingBottomRowCount &&\n row < rowCount - floatingBottomRowCount\n ) {\n // Extending from floating bottom into the view\n row = rowCount - floatingBottomRowCount - 1;\n this.hasExtendedFloating = true;\n }\n\n if (\n startColumn !== null &&\n startColumn < floatingLeftColumnCount &&\n column >= floatingLeftColumnCount\n ) {\n // Extending from floating left into the view\n column = floatingLeftColumnCount;\n this.hasExtendedFloating = true;\n } else if (\n startColumn !== null &&\n startColumn >= columnCount - floatingRightColumnCount &&\n column < columnCount - floatingRightColumnCount\n ) {\n // Extending from floating right into the view\n column = columnCount - floatingRightColumnCount - 1;\n this.hasExtendedFloating = true;\n }\n }\n\n // When a selection is dragging from within the main area to over a floating area, scroll.\n if (\n startRow !== null &&\n !GridUtils.isFloatingRow(startRow, metrics) &&\n GridUtils.isFloatingRow(row, metrics)\n ) {\n // Need to scroll\n if (startRow > row && row < top) {\n row = topVisible - 1;\n } else if (startRow < row && row > bottom) {\n row = bottomVisible + 1;\n }\n }\n if (\n startColumn !== null &&\n !GridUtils.isFloatingColumn(startColumn, metrics) &&\n GridUtils.isFloatingColumn(column, metrics)\n ) {\n if (startColumn > column && column < left) {\n column = leftVisible - 1;\n } else if (startColumn < column && column > right) {\n column = rightVisible + 1;\n }\n }\n grid.moveCursorToPosition(column, row, true, true);\n }\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint !== undefined) {\n this.startPoint = undefined;\n this.stopTimer();\n grid.commitSelection();\n }\n\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n onDoubleClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const { column, row } = gridPoint;\n if (row == null || column == null) {\n return false;\n }\n\n grid.clearSelectedRanges();\n grid.moveCursorToPosition(column, row);\n grid.commitSelection();\n\n return true;\n }\n\n onContextMenu(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n // check if the selected is already in the selected range\n const selectedRanges = grid.getSelectedRanges();\n const isInRange = GridRange.containsCell(\n selectedRanges,\n gridPoint.column,\n gridPoint.row\n );\n\n // only change the selected range if the selected cell is not in the selected range\n if (!isInRange && gridPoint.row !== null && gridPoint.column !== null) {\n this.startPoint = undefined;\n this.stopTimer();\n grid.clearSelectedRanges();\n grid.moveCursorToPosition(gridPoint.column, gridPoint.row);\n }\n\n return false;\n }\n\n moveSelection(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n const { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { selectionEndRow, selectionEndColumn } = grid.state;\n if (selectionEndRow == null || selectionEndColumn == null) {\n throw new Error('selection not set');\n }\n\n const { rowCount, columnCount } = metrics;\n const minX = deltaX < 0 && column != null ? column : 0;\n const maxX = deltaX > 0 && column != null ? column : columnCount - 1;\n const minY = deltaY < 0 && row != null ? row : 0;\n const maxY = deltaY > 0 && row != null ? row : rowCount - 1;\n grid.moveCursorToPosition(\n Math.min(Math.max(minX, selectionEndColumn + deltaX), maxX),\n Math.min(Math.max(minY, selectionEndRow + deltaY), maxY),\n true\n );\n this.lastTriggerTime = Date.now();\n }\n\n startTimer(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n this.stopTimer();\n\n const timeout =\n this.lastTriggerTime != null\n ? DEFAULT_INTERVAL_MS -\n Math.min(DEFAULT_INTERVAL_MS, Date.now() - this.lastTriggerTime)\n : 0;\n this.timer = setTimeout(() => {\n this.moveSelection(grid, gridPoint, deltaX, deltaY);\n this.startTimer(grid, gridPoint, deltaX, deltaY);\n }, timeout);\n }\n\n stopTimer(): void {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n}\n\nexport default GridSelectionMouseHandler;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/grid",
3
- "version": "0.107.1-beta.0+ee340667",
3
+ "version": "0.107.1-beta.5+23cefe3d",
4
4
  "description": "Deephaven React grid component",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,7 @@
31
31
  "*.css"
32
32
  ],
33
33
  "dependencies": {
34
- "@deephaven/utils": "^0.107.1-beta.0+ee340667",
34
+ "@deephaven/utils": "^0.107.1-beta.5+23cefe3d",
35
35
  "classnames": "^2.3.1",
36
36
  "color-convert": "^2.0.1",
37
37
  "event-target-shim": "^6.0.2",
@@ -44,5 +44,5 @@
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
- "gitHead": "ee340667f8352736141cef35acaf0023a7d78eda"
47
+ "gitHead": "23cefe3d2e238154e0bacaa52fd94422e8ecae14"
48
48
  }