@deephaven/grid 0.25.1-beta.0 → 0.25.1-beta.2

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.
@@ -22,9 +22,9 @@ function getColumnInfo(visibleIndex, depth, metrics, model) {
22
22
  var {
23
23
  modelColumns,
24
24
  movedColumns,
25
- visibleColumnXs,
25
+ allColumnXs,
26
26
  columnCount,
27
- visibleColumnWidths,
27
+ allColumnWidths,
28
28
  userColumnWidths,
29
29
  calculatedColumnWidths,
30
30
  floatingLeftWidth,
@@ -40,19 +40,19 @@ function getColumnInfo(visibleIndex, depth, metrics, model) {
40
40
  var right;
41
41
  var range;
42
42
  if (group != null) {
43
- var _visibleColumnXs$get, _visibleColumnXs$get2, _visibleColumnWidths$;
43
+ var _allColumnXs$get, _allColumnXs$get2, _allColumnWidths$get;
44
44
  var [startVisibleIndex, endVisibleIndex] = group.getVisibleRange(movedColumns);
45
- left = (_visibleColumnXs$get = visibleColumnXs.get(startVisibleIndex)) !== null && _visibleColumnXs$get !== void 0 ? _visibleColumnXs$get : floatingLeftWidth;
46
- right = ((_visibleColumnXs$get2 = visibleColumnXs.get(endVisibleIndex)) !== null && _visibleColumnXs$get2 !== void 0 ? _visibleColumnXs$get2 : maxX) + ((_visibleColumnWidths$ = visibleColumnWidths.get(endVisibleIndex)) !== null && _visibleColumnWidths$ !== void 0 ? _visibleColumnWidths$ : 0);
45
+ left = (_allColumnXs$get = allColumnXs.get(startVisibleIndex)) !== null && _allColumnXs$get !== void 0 ? _allColumnXs$get : floatingLeftWidth;
46
+ right = ((_allColumnXs$get2 = allColumnXs.get(endVisibleIndex)) !== null && _allColumnXs$get2 !== void 0 ? _allColumnXs$get2 : maxX) + ((_allColumnWidths$get = allColumnWidths.get(endVisibleIndex)) !== null && _allColumnWidths$get !== void 0 ? _allColumnWidths$get : 0);
47
47
  range = [startVisibleIndex, endVisibleIndex];
48
48
  } else {
49
- var _ref, _ref2, _visibleColumnWidths$2;
50
- var possibleLeft = visibleColumnXs.get(visibleIndex);
49
+ var _ref, _ref2, _allColumnWidths$get2;
50
+ var possibleLeft = allColumnXs.get(visibleIndex);
51
51
  if (possibleLeft == null) {
52
52
  return null;
53
53
  }
54
54
  left = possibleLeft;
55
- right = left + ((_ref = (_ref2 = (_visibleColumnWidths$2 = visibleColumnWidths.get(visibleIndex)) !== null && _visibleColumnWidths$2 !== void 0 ? _visibleColumnWidths$2 : userColumnWidths.get(modelIndex)) !== null && _ref2 !== void 0 ? _ref2 : calculatedColumnWidths.get(modelIndex)) !== null && _ref !== void 0 ? _ref : 0);
55
+ right = left + ((_ref = (_ref2 = (_allColumnWidths$get2 = allColumnWidths.get(visibleIndex)) !== null && _allColumnWidths$get2 !== void 0 ? _allColumnWidths$get2 : userColumnWidths.get(modelIndex)) !== null && _ref2 !== void 0 ? _ref2 : calculatedColumnWidths.get(modelIndex)) !== null && _ref !== void 0 ? _ref : 0);
56
56
  range = [visibleIndex, visibleIndex];
57
57
  }
58
58
  return {
@@ -96,7 +96,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
96
96
  userColumnWidths,
97
97
  calculatedColumnWidths,
98
98
  movedColumns,
99
- visibleColumnWidths
99
+ allColumnWidths
100
100
  } = metrics;
101
101
  var nextLeft = left;
102
102
  var nextOffset = leftOffset;
@@ -119,7 +119,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
119
119
  }
120
120
  } else {
121
121
  nextOffset += SCROLL_DELTA;
122
- var leftColumnWidth = visibleColumnWidths.get(left);
122
+ var leftColumnWidth = allColumnWidths.get(left);
123
123
  while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {
124
124
  var _userColumnWidths$get2;
125
125
  nextLeft += 1;
@@ -314,7 +314,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
314
314
  floatingLeftWidth,
315
315
  width,
316
316
  columnHeaderMaxDepth,
317
- visibleColumnXs
317
+ allColumnXs
318
318
  } = metrics;
319
319
  var isDraggingLeft = deltaX < 0;
320
320
  var draggingColumn = getColumnInfo(this.draggingColumn.range[0], draggingColumnDepth, metrics, model);
@@ -343,9 +343,9 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
343
343
  var parentVisibleRange = parentGroup.getVisibleRange(movedColumns);
344
344
  // Cannot move to this left position, pin to left of parent
345
345
  if (swapColumn.visibleIndex < parentVisibleRange[0]) {
346
- var _visibleColumnXs$get3;
346
+ var _allColumnXs$get3;
347
347
  var _newMovedColumns = this.moveColumn(draggingColumn, parentVisibleRange[0], movedColumns);
348
- this.draggingOffset = mouseX - ((_visibleColumnXs$get3 = visibleColumnXs.get(parentVisibleRange[0])) !== null && _visibleColumnXs$get3 !== void 0 ? _visibleColumnXs$get3 : 0);
348
+ this.draggingOffset = mouseX - ((_allColumnXs$get3 = allColumnXs.get(parentVisibleRange[0])) !== null && _allColumnXs$get3 !== void 0 ? _allColumnXs$get3 : 0);
349
349
  this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
350
350
  left: mouseX - this.draggingOffset
351
351
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GridColumnMoveMouseHandler.js","names":["clamp","GridUtils","GridMouseHandler","SLOPPY_CLICK_DISTANCE","SCROLL_INTERVAL","SCROLL_DELTA","getColumnInfo","visibleIndex","depth","metrics","model","modelColumns","movedColumns","visibleColumnXs","columnCount","visibleColumnWidths","userColumnWidths","calculatedColumnWidths","floatingLeftWidth","maxX","modelIndex","get","getModelIndex","group","getColumnHeaderGroup","isColumnGroup","left","right","range","startVisibleIndex","endVisibleIndex","getVisibleRange","possibleLeft","width","GridColumnMoveMouseHandler","setScrollInterval","grid","direction","scrollingInterval","scrollingDirection","window","setInterval","lastLeft","leftOffset","nextLeft","nextOffset","prevColumnWidth","undefined","leftColumnWidth","mouseX","mouseY","state","moveDraggingColumn","setState","clearScrollInterval","clearInterval","onLeave","onDown","gridPoint","props","x","column","columnHeaderDepth","Error","columnInfo","rowHeaderWidth","initialGridPoint","draggingColumn","cursor","isColumnMovable","draggingOffset","initialOffset","onDrag","event","y","Math","abs","initialColumnInfo","startColumn","endColumn","isDragging","movementX","deltaX","draggingColumnDepth","columnHeaderMaxDepth","isDraggingLeft","floatingDraggingLeft","floatingDraggingRight","swapColumn","getColumnAtX","parentGroup","getColumnHeaderParentGroup","parentVisibleRange","newMovedColumns","moveColumn","parentRight","toVisibleIndex","toColumnInfo","switchPoint","draggingParentGroup","maxDepthSwapGroup","maxSwapDepth","to","moveRange","moveItem","moveDistance","newDraggingRange","onUp"],"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport Grid from '../Grid';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport type {\n VisibleIndex,\n ModelIndex,\n GridMetrics,\n MoveOperation,\n Coordinate,\n} from '../GridMetrics';\nimport type { BoundedAxisRange } from '../GridAxisRange';\nimport type GridModel from '../GridModel';\nimport type { IColumnHeaderGroup } from '../ColumnHeaderGroup';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\nconst SCROLL_INTERVAL = 1000 / 60;\nconst SCROLL_DELTA = 10;\n\nexport interface DraggingColumn {\n range: BoundedAxisRange;\n depth: number;\n left: Coordinate;\n width: number;\n}\n\ninterface ColumnInfo {\n visibleIndex: VisibleIndex;\n modelIndex: ModelIndex;\n left: number;\n right: number;\n width: number;\n isColumnGroup: boolean;\n range: BoundedAxisRange;\n depth: number;\n}\n\n/**\n * Gets info about a visible column\n * @param visibleIndex The visible index to get info for\n * @param depth The header depth to get info for\n * @param metrics Grid metrics\n * @param model Grid model\n * @returns The column info at the depth.\n * If the column is not in a group at that depth, returns the info for the base column.\n * Returns null if the column is not visible.\n */\nfunction getColumnInfo(\n visibleIndex: VisibleIndex | null,\n depth: number | undefined,\n metrics: GridMetrics,\n model: GridModel\n): ColumnInfo | null {\n const {\n modelColumns,\n movedColumns,\n visibleColumnXs,\n columnCount,\n visibleColumnWidths,\n userColumnWidths,\n calculatedColumnWidths,\n floatingLeftWidth,\n maxX,\n } = metrics;\n\n if (\n depth == null ||\n visibleIndex == null ||\n visibleIndex > columnCount ||\n visibleIndex < 0\n ) {\n return null;\n }\n\n const modelIndex =\n modelColumns.get(visibleIndex) ??\n GridUtils.getModelIndex(visibleIndex, movedColumns);\n\n const group = model.getColumnHeaderGroup(modelIndex, depth);\n const isColumnGroup = group != null;\n\n let left: number;\n let right: number;\n let range: BoundedAxisRange;\n\n if (group != null) {\n const [startVisibleIndex, endVisibleIndex] = group.getVisibleRange(\n movedColumns\n );\n\n left = visibleColumnXs.get(startVisibleIndex) ?? floatingLeftWidth;\n right =\n (visibleColumnXs.get(endVisibleIndex) ?? maxX) +\n (visibleColumnWidths.get(endVisibleIndex) ?? 0);\n range = [startVisibleIndex, endVisibleIndex];\n } else {\n const possibleLeft = visibleColumnXs.get(visibleIndex);\n if (possibleLeft == null) {\n return null;\n }\n\n left = possibleLeft;\n right =\n left +\n (visibleColumnWidths.get(visibleIndex) ??\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex) ??\n 0);\n range = [visibleIndex, visibleIndex];\n }\n\n return {\n visibleIndex,\n modelIndex,\n left,\n right,\n width: right - left,\n isColumnGroup,\n range,\n depth,\n };\n}\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor: string | null = null;\n\n private draggingOffset?: number;\n\n private initialOffset?: number;\n\n private initialGridPoint?: GridPoint;\n\n private scrollingInterval?: number;\n\n private scrollingDirection?: 'left' | 'right';\n\n private draggingColumn: DraggingColumn | null = null;\n\n private setScrollInterval(grid: Grid, direction: 'left' | 'right'): void {\n if (\n this.scrollingInterval != null &&\n direction === this.scrollingDirection\n ) {\n return;\n }\n\n this.scrollingDirection = direction;\n this.scrollingInterval = window.setInterval(() => {\n const { metrics } = grid;\n if (!metrics) {\n return;\n }\n\n const {\n left,\n lastLeft,\n leftOffset,\n userColumnWidths,\n calculatedColumnWidths,\n movedColumns,\n visibleColumnWidths,\n } = metrics;\n\n let nextLeft = left;\n let nextOffset = leftOffset;\n if (direction === 'left') {\n nextOffset -= SCROLL_DELTA;\n while (nextOffset < 0) {\n nextLeft -= 1;\n const modelIndex = GridUtils.getModelIndex(left - 1, movedColumns);\n const prevColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n if (prevColumnWidth === undefined) {\n nextOffset = 0;\n } else {\n nextOffset += prevColumnWidth;\n }\n if (nextLeft < 0) {\n nextOffset = 0;\n nextLeft = 0;\n }\n }\n } else {\n nextOffset += SCROLL_DELTA;\n let leftColumnWidth = visibleColumnWidths.get(left);\n while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {\n nextLeft += 1;\n nextOffset -= leftColumnWidth;\n const modelIndex = GridUtils.getModelIndex(left + 1, movedColumns);\n leftColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n\n if (nextLeft > lastLeft) {\n nextOffset = 0;\n nextLeft = lastLeft;\n }\n }\n }\n\n const { mouseX, mouseY } = grid.state;\n\n if (metrics == null || mouseX == null || mouseY == null) {\n return;\n }\n\n this.moveDraggingColumn(\n mouseX,\n grid,\n direction === 'left' ? -SCROLL_DELTA : SCROLL_DELTA\n );\n grid.setState({ left: nextLeft, leftOffset: nextOffset });\n\n if (\n (direction === 'left' && nextLeft === 0 && leftOffset === 0) ||\n (direction === 'right' && nextLeft === lastLeft)\n ) {\n this.clearScrollInterval();\n }\n }, SCROLL_INTERVAL);\n }\n\n private clearScrollInterval(): void {\n this.scrollingDirection = undefined;\n window.clearInterval(this.scrollingInterval);\n this.scrollingInterval = undefined;\n }\n\n onLeave(): EventHandlerResult {\n this.clearScrollInterval();\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, column, columnHeaderDepth } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);\n\n if (column == null || columnInfo == null || columnHeaderDepth == null) {\n return false;\n }\n\n // Can't drag a base column from the empty group area\n if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {\n return false;\n }\n\n const { rowHeaderWidth } = metrics;\n\n this.initialGridPoint = gridPoint;\n this.draggingColumn = null;\n this.cursor = null;\n\n if (\n columnInfo.modelIndex != null &&\n columnHeaderDepth != null &&\n model.isColumnMovable(columnInfo.modelIndex, columnHeaderDepth)\n ) {\n this.draggingOffset = x - columnInfo.left - rowHeaderWidth;\n this.initialOffset = this.draggingOffset;\n }\n return false;\n }\n\n onDrag(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined\n ) {\n return false;\n }\n\n const { x: mouseX, y: mouseY } = gridPoint;\n const { columnHeaderDepth } = this.initialGridPoint;\n\n const { model } = grid.props;\n let { draggingColumn } = this;\n const { metrics } = grid;\n\n if (!metrics) throw new Error('Metrics not set');\n\n // before considering it a drag, the mouse must have moved a minimum distance\n // this prevents click actions from triggering a drag state\n if (\n !draggingColumn &&\n Math.abs(this.initialGridPoint.x - mouseX) < SLOPPY_CLICK_DISTANCE &&\n Math.abs(this.initialGridPoint.y - mouseY) < SLOPPY_CLICK_DISTANCE\n ) {\n return false;\n }\n\n // Get the initial dragging column info\n if (draggingColumn == null) {\n const initialColumnInfo = getColumnInfo(\n this.initialGridPoint.column,\n columnHeaderDepth,\n metrics,\n model\n );\n\n if (!initialColumnInfo || columnHeaderDepth == null) {\n return false;\n }\n\n if (!model.isColumnMovable(initialColumnInfo.modelIndex)) {\n return false;\n }\n\n // Disallow dragging from the blank space in column header groups\n if (columnHeaderDepth > 0 && !initialColumnInfo.isColumnGroup) {\n return false;\n }\n\n if (initialColumnInfo.range[0] == null) {\n return false;\n }\n\n draggingColumn = {\n range: initialColumnInfo.range,\n depth: columnHeaderDepth,\n left: initialColumnInfo.left,\n width: initialColumnInfo.width,\n };\n\n const startColumn = getColumnInfo(\n draggingColumn.range[0],\n 0,\n metrics,\n model\n );\n const endColumn = getColumnInfo(\n draggingColumn.range[1],\n 0,\n metrics,\n model\n );\n\n // Group goes off the table. Drag and drop could be wonky here\n // Column draws only use columns that are partially visible too\n // So this could cause rendering errors if we tried dragging it\n if (!startColumn || !endColumn) {\n return false;\n }\n\n this.draggingColumn = draggingColumn;\n grid.setState({ draggingColumn, isDragging: true });\n }\n\n /**\n * At this point, we have determined we are actually dragging a column\n */\n this.cursor = 'move';\n\n this.moveDraggingColumn(gridPoint.x, grid, event.movementX);\n\n return true;\n }\n\n /**\n * Moves a dragging column, if possible, the specified distance\n * @param mouseX The point the move was initiated from\n * @param grid The Grid component\n * @param deltaX The distance of the move\n */\n moveDraggingColumn(mouseX: number, grid: Grid, deltaX: number): void {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined ||\n this.draggingColumn == null ||\n deltaX === 0\n ) {\n return;\n }\n\n // Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again\n if (this.initialOffset !== this.draggingOffset) {\n // Pre move < Initial < Post move or vice-versa\n // User crossed back past the iniital offset point, so we can start moving again\n if (\n (this.draggingOffset < this.initialOffset &&\n this.initialOffset < this.draggingOffset + deltaX) ||\n (this.draggingOffset > this.initialOffset &&\n this.initialOffset > this.draggingOffset + deltaX)\n ) {\n this.draggingOffset = this.initialOffset;\n } else {\n // Column can't move since we aren't back at the initial offset yet\n this.draggingOffset += deltaX;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n grid.setState({ draggingColumn: this.draggingColumn });\n return;\n }\n\n const { depth: draggingColumnDepth } = this.draggingColumn;\n\n const { model } = grid.props;\n const { movedColumns } = grid.state;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const {\n floatingLeftWidth,\n width,\n columnHeaderMaxDepth,\n visibleColumnXs,\n } = metrics;\n\n const isDraggingLeft = deltaX < 0;\n\n const draggingColumn = getColumnInfo(\n this.draggingColumn.range[0],\n draggingColumnDepth,\n metrics,\n model\n );\n\n if (!draggingColumn) {\n return;\n }\n\n // The returned left/right are the original position, not dragged position\n // This is where the dragging column's floating position accounting for dragged distance\n const floatingDraggingLeft = mouseX - this.draggingOffset;\n const floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n const swapColumn = getColumnInfo(\n GridUtils.getColumnAtX(\n clamp(\n isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight,\n floatingLeftWidth,\n width\n ),\n metrics,\n true\n ),\n draggingColumnDepth,\n metrics,\n model\n );\n\n const parentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n if (!swapColumn) {\n return;\n }\n\n // Check if we should pin to the edge of the parent\n if (parentGroup !== undefined) {\n const parentVisibleRange = parentGroup.getVisibleRange(movedColumns);\n // Cannot move to this left position, pin to left of parent\n if (swapColumn.visibleIndex < parentVisibleRange[0]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[0],\n movedColumns\n );\n\n this.draggingOffset =\n mouseX - (visibleColumnXs.get(parentVisibleRange[0]) ?? 0);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n\n // Pin to the right of parent\n if (swapColumn.visibleIndex > parentVisibleRange[1]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n\n const { right: parentRight = 0 } =\n getColumnInfo(parentVisibleRange[1], 0, metrics, model) ?? {};\n\n this.draggingOffset = mouseX - (parentRight - draggingColumn.width);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n }\n\n // Hit an unmovable column, move to the first available position next to it\n if (!model.isColumnMovable(swapColumn.modelIndex)) {\n let toVisibleIndex = swapColumn.visibleIndex;\n if (isDraggingLeft) {\n toVisibleIndex += 1;\n while (\n toVisibleIndex < draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex += 1;\n }\n } else {\n toVisibleIndex -= 1;\n while (\n toVisibleIndex > draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex -= 1;\n }\n }\n\n if (toVisibleIndex !== draggingColumn.visibleIndex) {\n if (!isDraggingLeft) {\n // Offset for range if dragging right\n toVisibleIndex -= draggingColumn.range[1] - draggingColumn.range[0];\n }\n\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n toVisibleIndex,\n movedColumns\n );\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n const toColumnInfo = getColumnInfo(toVisibleIndex, 0, metrics, model);\n if (isDraggingLeft) {\n this.draggingOffset = mouseX - (toColumnInfo?.left ?? 0);\n } else {\n this.draggingOffset =\n mouseX - ((toColumnInfo?.right ?? 0) - draggingColumn.width);\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n return;\n }\n\n if (floatingDraggingLeft <= floatingLeftWidth) {\n this.setScrollInterval(grid, 'left');\n } else if (floatingDraggingRight > width) {\n this.setScrollInterval(grid, 'right');\n } else {\n this.clearScrollInterval();\n }\n\n // Can't swap a column with itself\n if (swapColumn.visibleIndex === draggingColumn.visibleIndex) {\n return;\n }\n\n // Can't swap a column to the left when dragging right or vice versa\n if (\n (isDraggingLeft &&\n draggingColumn.visibleIndex < swapColumn.visibleIndex) ||\n (!isDraggingLeft && draggingColumn.visibleIndex > swapColumn.visibleIndex)\n ) {\n return;\n }\n\n const switchPoint = swapColumn.left + swapColumn.width * 0.5;\n const draggingParentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n // Get the highest level group that is not the common base group\n // This group is what we need to drag past\n let maxDepthSwapGroup: IColumnHeaderGroup | undefined;\n let maxSwapDepth = (draggingParentGroup?.depth ?? columnHeaderMaxDepth) - 1;\n while (maxSwapDepth >= 0 && maxDepthSwapGroup === undefined) {\n maxDepthSwapGroup = model.getColumnHeaderGroup(\n swapColumn.modelIndex,\n maxSwapDepth\n );\n maxSwapDepth -= 1;\n }\n\n let newMovedColumns: MoveOperation[] | undefined;\n\n if (\n isDraggingLeft &&\n floatingDraggingLeft < switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[0])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[0],\n movedColumns\n );\n }\n\n if (\n !isDraggingLeft &&\n floatingDraggingRight > switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[1])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n }\n\n if (!newMovedColumns) {\n return;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n /**\n * Applies the column move and updates draggingColumn in the mouse handler\n * Does not check if the move is valid\n * @param draggingColumn The dragging column info\n * @param to The index to move the column or range to\n * @param movedColumns The array of column moves\n * @returns A new array of column moves\n */\n moveColumn(\n draggingColumn: ColumnInfo,\n to: number,\n movedColumns: MoveOperation[]\n ): MoveOperation[] {\n const newMovedColumns = draggingColumn.isColumnGroup\n ? GridUtils.moveRange(draggingColumn.range, to, movedColumns)\n : GridUtils.moveItem(draggingColumn.visibleIndex, to, movedColumns);\n\n const moveDistance = to - draggingColumn.range[0];\n const newDraggingRange: BoundedAxisRange = [\n draggingColumn.range[0] + moveDistance,\n draggingColumn.range[1] + moveDistance,\n ];\n\n if (this.draggingColumn) {\n this.draggingColumn = {\n ...this.draggingColumn,\n range: newDraggingRange,\n };\n }\n\n return newMovedColumns;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n this.cursor = null;\n\n this.clearScrollInterval();\n\n if (this.draggingOffset != null) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridColumnMoveMouseHandler.js","names":["clamp","GridUtils","GridMouseHandler","SLOPPY_CLICK_DISTANCE","SCROLL_INTERVAL","SCROLL_DELTA","getColumnInfo","visibleIndex","depth","metrics","model","modelColumns","movedColumns","allColumnXs","columnCount","allColumnWidths","userColumnWidths","calculatedColumnWidths","floatingLeftWidth","maxX","modelIndex","get","getModelIndex","group","getColumnHeaderGroup","isColumnGroup","left","right","range","startVisibleIndex","endVisibleIndex","getVisibleRange","possibleLeft","width","GridColumnMoveMouseHandler","setScrollInterval","grid","direction","scrollingInterval","scrollingDirection","window","setInterval","lastLeft","leftOffset","nextLeft","nextOffset","prevColumnWidth","undefined","leftColumnWidth","mouseX","mouseY","state","moveDraggingColumn","setState","clearScrollInterval","clearInterval","onLeave","onDown","gridPoint","props","x","column","columnHeaderDepth","Error","columnInfo","rowHeaderWidth","initialGridPoint","draggingColumn","cursor","isColumnMovable","draggingOffset","initialOffset","onDrag","event","y","Math","abs","initialColumnInfo","startColumn","endColumn","isDragging","movementX","deltaX","draggingColumnDepth","columnHeaderMaxDepth","isDraggingLeft","floatingDraggingLeft","floatingDraggingRight","swapColumn","getColumnAtX","parentGroup","getColumnHeaderParentGroup","parentVisibleRange","newMovedColumns","moveColumn","parentRight","toVisibleIndex","toColumnInfo","switchPoint","draggingParentGroup","maxDepthSwapGroup","maxSwapDepth","to","moveRange","moveItem","moveDistance","newDraggingRange","onUp"],"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport Grid from '../Grid';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport type {\n VisibleIndex,\n ModelIndex,\n GridMetrics,\n MoveOperation,\n Coordinate,\n} from '../GridMetrics';\nimport type { BoundedAxisRange } from '../GridAxisRange';\nimport type GridModel from '../GridModel';\nimport type { IColumnHeaderGroup } from '../ColumnHeaderGroup';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\nconst SCROLL_INTERVAL = 1000 / 60;\nconst SCROLL_DELTA = 10;\n\nexport interface DraggingColumn {\n range: BoundedAxisRange;\n depth: number;\n left: Coordinate;\n width: number;\n}\n\ninterface ColumnInfo {\n visibleIndex: VisibleIndex;\n modelIndex: ModelIndex;\n left: number;\n right: number;\n width: number;\n isColumnGroup: boolean;\n range: BoundedAxisRange;\n depth: number;\n}\n\n/**\n * Gets info about a visible column\n * @param visibleIndex The visible index to get info for\n * @param depth The header depth to get info for\n * @param metrics Grid metrics\n * @param model Grid model\n * @returns The column info at the depth.\n * If the column is not in a group at that depth, returns the info for the base column.\n * Returns null if the column is not visible.\n */\nfunction getColumnInfo(\n visibleIndex: VisibleIndex | null,\n depth: number | undefined,\n metrics: GridMetrics,\n model: GridModel\n): ColumnInfo | null {\n const {\n modelColumns,\n movedColumns,\n allColumnXs,\n columnCount,\n allColumnWidths,\n userColumnWidths,\n calculatedColumnWidths,\n floatingLeftWidth,\n maxX,\n } = metrics;\n\n if (\n depth == null ||\n visibleIndex == null ||\n visibleIndex > columnCount ||\n visibleIndex < 0\n ) {\n return null;\n }\n\n const modelIndex =\n modelColumns.get(visibleIndex) ??\n GridUtils.getModelIndex(visibleIndex, movedColumns);\n\n const group = model.getColumnHeaderGroup(modelIndex, depth);\n const isColumnGroup = group != null;\n\n let left: number;\n let right: number;\n let range: BoundedAxisRange;\n\n if (group != null) {\n const [startVisibleIndex, endVisibleIndex] = group.getVisibleRange(\n movedColumns\n );\n\n left = allColumnXs.get(startVisibleIndex) ?? floatingLeftWidth;\n right =\n (allColumnXs.get(endVisibleIndex) ?? maxX) +\n (allColumnWidths.get(endVisibleIndex) ?? 0);\n range = [startVisibleIndex, endVisibleIndex];\n } else {\n const possibleLeft = allColumnXs.get(visibleIndex);\n if (possibleLeft == null) {\n return null;\n }\n\n left = possibleLeft;\n right =\n left +\n (allColumnWidths.get(visibleIndex) ??\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex) ??\n 0);\n range = [visibleIndex, visibleIndex];\n }\n\n return {\n visibleIndex,\n modelIndex,\n left,\n right,\n width: right - left,\n isColumnGroup,\n range,\n depth,\n };\n}\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor: string | null = null;\n\n private draggingOffset?: number;\n\n private initialOffset?: number;\n\n private initialGridPoint?: GridPoint;\n\n private scrollingInterval?: number;\n\n private scrollingDirection?: 'left' | 'right';\n\n private draggingColumn: DraggingColumn | null = null;\n\n private setScrollInterval(grid: Grid, direction: 'left' | 'right'): void {\n if (\n this.scrollingInterval != null &&\n direction === this.scrollingDirection\n ) {\n return;\n }\n\n this.scrollingDirection = direction;\n this.scrollingInterval = window.setInterval(() => {\n const { metrics } = grid;\n if (!metrics) {\n return;\n }\n\n const {\n left,\n lastLeft,\n leftOffset,\n userColumnWidths,\n calculatedColumnWidths,\n movedColumns,\n allColumnWidths,\n } = metrics;\n\n let nextLeft = left;\n let nextOffset = leftOffset;\n if (direction === 'left') {\n nextOffset -= SCROLL_DELTA;\n while (nextOffset < 0) {\n nextLeft -= 1;\n const modelIndex = GridUtils.getModelIndex(left - 1, movedColumns);\n const prevColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n if (prevColumnWidth === undefined) {\n nextOffset = 0;\n } else {\n nextOffset += prevColumnWidth;\n }\n if (nextLeft < 0) {\n nextOffset = 0;\n nextLeft = 0;\n }\n }\n } else {\n nextOffset += SCROLL_DELTA;\n let leftColumnWidth = allColumnWidths.get(left);\n while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {\n nextLeft += 1;\n nextOffset -= leftColumnWidth;\n const modelIndex = GridUtils.getModelIndex(left + 1, movedColumns);\n leftColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n\n if (nextLeft > lastLeft) {\n nextOffset = 0;\n nextLeft = lastLeft;\n }\n }\n }\n\n const { mouseX, mouseY } = grid.state;\n\n if (metrics == null || mouseX == null || mouseY == null) {\n return;\n }\n\n this.moveDraggingColumn(\n mouseX,\n grid,\n direction === 'left' ? -SCROLL_DELTA : SCROLL_DELTA\n );\n grid.setState({ left: nextLeft, leftOffset: nextOffset });\n\n if (\n (direction === 'left' && nextLeft === 0 && leftOffset === 0) ||\n (direction === 'right' && nextLeft === lastLeft)\n ) {\n this.clearScrollInterval();\n }\n }, SCROLL_INTERVAL);\n }\n\n private clearScrollInterval(): void {\n this.scrollingDirection = undefined;\n window.clearInterval(this.scrollingInterval);\n this.scrollingInterval = undefined;\n }\n\n onLeave(): EventHandlerResult {\n this.clearScrollInterval();\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, column, columnHeaderDepth } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);\n\n if (column == null || columnInfo == null || columnHeaderDepth == null) {\n return false;\n }\n\n // Can't drag a base column from the empty group area\n if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {\n return false;\n }\n\n const { rowHeaderWidth } = metrics;\n\n this.initialGridPoint = gridPoint;\n this.draggingColumn = null;\n this.cursor = null;\n\n if (\n columnInfo.modelIndex != null &&\n columnHeaderDepth != null &&\n model.isColumnMovable(columnInfo.modelIndex, columnHeaderDepth)\n ) {\n this.draggingOffset = x - columnInfo.left - rowHeaderWidth;\n this.initialOffset = this.draggingOffset;\n }\n return false;\n }\n\n onDrag(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined\n ) {\n return false;\n }\n\n const { x: mouseX, y: mouseY } = gridPoint;\n const { columnHeaderDepth } = this.initialGridPoint;\n\n const { model } = grid.props;\n let { draggingColumn } = this;\n const { metrics } = grid;\n\n if (!metrics) throw new Error('Metrics not set');\n\n // before considering it a drag, the mouse must have moved a minimum distance\n // this prevents click actions from triggering a drag state\n if (\n !draggingColumn &&\n Math.abs(this.initialGridPoint.x - mouseX) < SLOPPY_CLICK_DISTANCE &&\n Math.abs(this.initialGridPoint.y - mouseY) < SLOPPY_CLICK_DISTANCE\n ) {\n return false;\n }\n\n // Get the initial dragging column info\n if (draggingColumn == null) {\n const initialColumnInfo = getColumnInfo(\n this.initialGridPoint.column,\n columnHeaderDepth,\n metrics,\n model\n );\n\n if (!initialColumnInfo || columnHeaderDepth == null) {\n return false;\n }\n\n if (!model.isColumnMovable(initialColumnInfo.modelIndex)) {\n return false;\n }\n\n // Disallow dragging from the blank space in column header groups\n if (columnHeaderDepth > 0 && !initialColumnInfo.isColumnGroup) {\n return false;\n }\n\n if (initialColumnInfo.range[0] == null) {\n return false;\n }\n\n draggingColumn = {\n range: initialColumnInfo.range,\n depth: columnHeaderDepth,\n left: initialColumnInfo.left,\n width: initialColumnInfo.width,\n };\n\n const startColumn = getColumnInfo(\n draggingColumn.range[0],\n 0,\n metrics,\n model\n );\n const endColumn = getColumnInfo(\n draggingColumn.range[1],\n 0,\n metrics,\n model\n );\n\n // Group goes off the table. Drag and drop could be wonky here\n // Column draws only use columns that are partially visible too\n // So this could cause rendering errors if we tried dragging it\n if (!startColumn || !endColumn) {\n return false;\n }\n\n this.draggingColumn = draggingColumn;\n grid.setState({ draggingColumn, isDragging: true });\n }\n\n /**\n * At this point, we have determined we are actually dragging a column\n */\n this.cursor = 'move';\n\n this.moveDraggingColumn(gridPoint.x, grid, event.movementX);\n\n return true;\n }\n\n /**\n * Moves a dragging column, if possible, the specified distance\n * @param mouseX The point the move was initiated from\n * @param grid The Grid component\n * @param deltaX The distance of the move\n */\n moveDraggingColumn(mouseX: number, grid: Grid, deltaX: number): void {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined ||\n this.draggingColumn == null ||\n deltaX === 0\n ) {\n return;\n }\n\n // Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again\n if (this.initialOffset !== this.draggingOffset) {\n // Pre move < Initial < Post move or vice-versa\n // User crossed back past the iniital offset point, so we can start moving again\n if (\n (this.draggingOffset < this.initialOffset &&\n this.initialOffset < this.draggingOffset + deltaX) ||\n (this.draggingOffset > this.initialOffset &&\n this.initialOffset > this.draggingOffset + deltaX)\n ) {\n this.draggingOffset = this.initialOffset;\n } else {\n // Column can't move since we aren't back at the initial offset yet\n this.draggingOffset += deltaX;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n grid.setState({ draggingColumn: this.draggingColumn });\n return;\n }\n\n const { depth: draggingColumnDepth } = this.draggingColumn;\n\n const { model } = grid.props;\n const { movedColumns } = grid.state;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const {\n floatingLeftWidth,\n width,\n columnHeaderMaxDepth,\n allColumnXs,\n } = metrics;\n\n const isDraggingLeft = deltaX < 0;\n\n const draggingColumn = getColumnInfo(\n this.draggingColumn.range[0],\n draggingColumnDepth,\n metrics,\n model\n );\n\n if (!draggingColumn) {\n return;\n }\n\n // The returned left/right are the original position, not dragged position\n // This is where the dragging column's floating position accounting for dragged distance\n const floatingDraggingLeft = mouseX - this.draggingOffset;\n const floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n const swapColumn = getColumnInfo(\n GridUtils.getColumnAtX(\n clamp(\n isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight,\n floatingLeftWidth,\n width\n ),\n metrics,\n true\n ),\n draggingColumnDepth,\n metrics,\n model\n );\n\n const parentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n if (!swapColumn) {\n return;\n }\n\n // Check if we should pin to the edge of the parent\n if (parentGroup !== undefined) {\n const parentVisibleRange = parentGroup.getVisibleRange(movedColumns);\n // Cannot move to this left position, pin to left of parent\n if (swapColumn.visibleIndex < parentVisibleRange[0]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[0],\n movedColumns\n );\n\n this.draggingOffset =\n mouseX - (allColumnXs.get(parentVisibleRange[0]) ?? 0);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n\n // Pin to the right of parent\n if (swapColumn.visibleIndex > parentVisibleRange[1]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n\n const { right: parentRight = 0 } =\n getColumnInfo(parentVisibleRange[1], 0, metrics, model) ?? {};\n\n this.draggingOffset = mouseX - (parentRight - draggingColumn.width);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n }\n\n // Hit an unmovable column, move to the first available position next to it\n if (!model.isColumnMovable(swapColumn.modelIndex)) {\n let toVisibleIndex = swapColumn.visibleIndex;\n if (isDraggingLeft) {\n toVisibleIndex += 1;\n while (\n toVisibleIndex < draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex += 1;\n }\n } else {\n toVisibleIndex -= 1;\n while (\n toVisibleIndex > draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex -= 1;\n }\n }\n\n if (toVisibleIndex !== draggingColumn.visibleIndex) {\n if (!isDraggingLeft) {\n // Offset for range if dragging right\n toVisibleIndex -= draggingColumn.range[1] - draggingColumn.range[0];\n }\n\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n toVisibleIndex,\n movedColumns\n );\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n const toColumnInfo = getColumnInfo(toVisibleIndex, 0, metrics, model);\n if (isDraggingLeft) {\n this.draggingOffset = mouseX - (toColumnInfo?.left ?? 0);\n } else {\n this.draggingOffset =\n mouseX - ((toColumnInfo?.right ?? 0) - draggingColumn.width);\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n return;\n }\n\n if (floatingDraggingLeft <= floatingLeftWidth) {\n this.setScrollInterval(grid, 'left');\n } else if (floatingDraggingRight > width) {\n this.setScrollInterval(grid, 'right');\n } else {\n this.clearScrollInterval();\n }\n\n // Can't swap a column with itself\n if (swapColumn.visibleIndex === draggingColumn.visibleIndex) {\n return;\n }\n\n // Can't swap a column to the left when dragging right or vice versa\n if (\n (isDraggingLeft &&\n draggingColumn.visibleIndex < swapColumn.visibleIndex) ||\n (!isDraggingLeft && draggingColumn.visibleIndex > swapColumn.visibleIndex)\n ) {\n return;\n }\n\n const switchPoint = swapColumn.left + swapColumn.width * 0.5;\n const draggingParentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n // Get the highest level group that is not the common base group\n // This group is what we need to drag past\n let maxDepthSwapGroup: IColumnHeaderGroup | undefined;\n let maxSwapDepth = (draggingParentGroup?.depth ?? columnHeaderMaxDepth) - 1;\n while (maxSwapDepth >= 0 && maxDepthSwapGroup === undefined) {\n maxDepthSwapGroup = model.getColumnHeaderGroup(\n swapColumn.modelIndex,\n maxSwapDepth\n );\n maxSwapDepth -= 1;\n }\n\n let newMovedColumns: MoveOperation[] | undefined;\n\n if (\n isDraggingLeft &&\n floatingDraggingLeft < switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[0])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[0],\n movedColumns\n );\n }\n\n if (\n !isDraggingLeft &&\n floatingDraggingRight > switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[1])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n }\n\n if (!newMovedColumns) {\n return;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n /**\n * Applies the column move and updates draggingColumn in the mouse handler\n * Does not check if the move is valid\n * @param draggingColumn The dragging column info\n * @param to The index to move the column or range to\n * @param movedColumns The array of column moves\n * @returns A new array of column moves\n */\n moveColumn(\n draggingColumn: ColumnInfo,\n to: number,\n movedColumns: MoveOperation[]\n ): MoveOperation[] {\n const newMovedColumns = draggingColumn.isColumnGroup\n ? GridUtils.moveRange(draggingColumn.range, to, movedColumns)\n : GridUtils.moveItem(draggingColumn.visibleIndex, to, movedColumns);\n\n const moveDistance = to - draggingColumn.range[0];\n const newDraggingRange: BoundedAxisRange = [\n draggingColumn.range[0] + moveDistance,\n draggingColumn.range[1] + moveDistance,\n ];\n\n if (this.draggingColumn) {\n this.draggingColumn = {\n ...this.draggingColumn,\n range: newDraggingRange,\n };\n }\n\n return newMovedColumns;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n this.cursor = null;\n\n this.clearScrollInterval();\n\n if (this.draggingOffset != null) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"mappings":"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"}
@@ -25,7 +25,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
25
25
  }
26
26
  var left = Math.floor(rawLeft);
27
27
  var leftOffsetPercent = rawLeft - left;
28
- var columnWidth = metrics.visibleColumnWidths.get(left);
28
+ var columnWidth = metrics.allColumnWidths.get(left);
29
29
  if (columnWidth == null) {
30
30
  var metricState = grid.getMetricState();
31
31
  columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);
@@ -1 +1 @@
1
- {"version":3,"file":"GridHorizontalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridHorizontalScrollBarMouseHandler","getLeftWithOffsetFromRawLeft","grid","rawLeft","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToColumn","left","Math","round","leftOffset","floor","leftOffsetPercent","columnWidth","visibleColumnWidths","get","metricState","getMetricState","getVisibleColumnWidth","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barLeft","barWidth","height","hasHorizontalBar","getLeftWithOffset","handleWidth","lastLeft","columnCount","scrollableContentWidth","scrollableViewportWidth","mouseBarX","scrollPercent","dragOffset","onDown","scrollX","setState","isDraggingHorizontalScrollBar","newLeft","newLeftOffset","setViewState","isDragging","onDrag","onMove","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridHorizontalScrollBarMouseHandler extends GridMouseHandler {\n static getLeftWithOffsetFromRawLeft(\n grid: Grid,\n rawLeft: number\n ): { left: VisibleIndex; leftOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToColumn) {\n const left = Math.round(rawLeft);\n const leftOffset = 0;\n\n return { left, leftOffset };\n }\n const left = Math.floor(rawLeft);\n const leftOffsetPercent = rawLeft - left;\n let columnWidth = metrics.visibleColumnWidths.get(left);\n if (columnWidth == null) {\n const metricState = grid.getMetricState();\n columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);\n }\n const leftOffset = columnWidth * leftOffsetPercent;\n\n return { left, leftOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barLeft, barWidth, height, hasHorizontalBar } = metrics;\n\n return (\n hasHorizontalBar &&\n scrollBarSize > 0 &&\n y >= height - scrollBarHoverSize &&\n y < height &&\n x > barLeft &&\n x < barLeft + barWidth\n );\n }\n\n getLeftWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { left: number; leftOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x } = gridPoint;\n const {\n barWidth,\n handleWidth,\n lastLeft,\n barLeft,\n columnCount,\n scrollableContentWidth,\n scrollableViewportWidth,\n } = metrics;\n\n const mouseBarX = x - barLeft;\n const scrollPercent = clamp(\n (mouseBarX - (this.dragOffset ?? 0)) / (barWidth - handleWidth),\n 0,\n 1\n );\n\n if (columnCount === 1) {\n return {\n left: 0,\n leftOffset:\n scrollPercent * (scrollableContentWidth - scrollableViewportWidth),\n };\n }\n\n const rawLeft = scrollPercent * lastLeft;\n return GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x } = gridPoint;\n const { handleWidth, barLeft, scrollX } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarX = x - barLeft;\n if (mouseBarX >= scrollX && mouseBarX <= scrollX + handleWidth) {\n // Grabbed the horizontal handle\n this.dragOffset = mouseBarX - scrollX;\n grid.setState({ isDraggingHorizontalScrollBar: true });\n } else {\n this.dragOffset = 0;\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = this.getLeftWithOffset(gridPoint, grid);\n\n grid.setViewState({\n left: newLeft,\n leftOffset: newLeftOffset,\n isDraggingHorizontalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = this.getLeftWithOffset(gridPoint, grid);\n\n grid.setViewState({\n left: newLeft,\n leftOffset: newLeftOffset,\n isDraggingHorizontalScrollBar: true,\n isDragging: true,\n });\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({\n isDraggingHorizontalScrollBar: false,\n isDragging: false,\n });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridHorizontalScrollBarMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridHorizontalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridHorizontalScrollBarMouseHandler","getLeftWithOffsetFromRawLeft","grid","rawLeft","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToColumn","left","Math","round","leftOffset","floor","leftOffsetPercent","columnWidth","allColumnWidths","get","metricState","getMetricState","getVisibleColumnWidth","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barLeft","barWidth","height","hasHorizontalBar","getLeftWithOffset","handleWidth","lastLeft","columnCount","scrollableContentWidth","scrollableViewportWidth","mouseBarX","scrollPercent","dragOffset","onDown","scrollX","setState","isDraggingHorizontalScrollBar","newLeft","newLeftOffset","setViewState","isDragging","onDrag","onMove","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridHorizontalScrollBarMouseHandler extends GridMouseHandler {\n static getLeftWithOffsetFromRawLeft(\n grid: Grid,\n rawLeft: number\n ): { left: VisibleIndex; leftOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToColumn) {\n const left = Math.round(rawLeft);\n const leftOffset = 0;\n\n return { left, leftOffset };\n }\n const left = Math.floor(rawLeft);\n const leftOffsetPercent = rawLeft - left;\n let columnWidth = metrics.allColumnWidths.get(left);\n if (columnWidth == null) {\n const metricState = grid.getMetricState();\n columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);\n }\n const leftOffset = columnWidth * leftOffsetPercent;\n\n return { left, leftOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barLeft, barWidth, height, hasHorizontalBar } = metrics;\n\n return (\n hasHorizontalBar &&\n scrollBarSize > 0 &&\n y >= height - scrollBarHoverSize &&\n y < height &&\n x > barLeft &&\n x < barLeft + barWidth\n );\n }\n\n getLeftWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { left: number; leftOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x } = gridPoint;\n const {\n barWidth,\n handleWidth,\n lastLeft,\n barLeft,\n columnCount,\n scrollableContentWidth,\n scrollableViewportWidth,\n } = metrics;\n\n const mouseBarX = x - barLeft;\n const scrollPercent = clamp(\n (mouseBarX - (this.dragOffset ?? 0)) / (barWidth - handleWidth),\n 0,\n 1\n );\n\n if (columnCount === 1) {\n return {\n left: 0,\n leftOffset:\n scrollPercent * (scrollableContentWidth - scrollableViewportWidth),\n };\n }\n\n const rawLeft = scrollPercent * lastLeft;\n return GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x } = gridPoint;\n const { handleWidth, barLeft, scrollX } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarX = x - barLeft;\n if (mouseBarX >= scrollX && mouseBarX <= scrollX + handleWidth) {\n // Grabbed the horizontal handle\n this.dragOffset = mouseBarX - scrollX;\n grid.setState({ isDraggingHorizontalScrollBar: true });\n } else {\n this.dragOffset = 0;\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = this.getLeftWithOffset(gridPoint, grid);\n\n grid.setViewState({\n left: newLeft,\n leftOffset: newLeftOffset,\n isDraggingHorizontalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = this.getLeftWithOffset(gridPoint, grid);\n\n grid.setViewState({\n left: newLeft,\n leftOffset: newLeftOffset,\n isDraggingHorizontalScrollBar: true,\n isDragging: true,\n });\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({\n isDraggingHorizontalScrollBar: false,\n isDragging: false,\n });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridHorizontalScrollBarMouseHandler;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,SAAU;IAEhB,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAgB5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA4F5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAa3D;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"GridRowMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,SAAU;IAEhB,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAgB5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA2F5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAa3D;AAED,eAAe,uBAAuB,CAAC"}
@@ -24,10 +24,10 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
24
24
  var {
25
25
  columnHeaderHeight,
26
26
  rowHeaderWidth,
27
- visibleRowYs
27
+ allRowYs
28
28
  } = metrics;
29
29
  if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {
30
- var rowY = getOrThrow(visibleRowYs, row);
30
+ var rowY = getOrThrow(allRowYs, row);
31
31
  this.draggingOffset = y - rowY - columnHeaderHeight;
32
32
  grid.setState({
33
33
  draggingRowOffset: this.draggingOffset
@@ -79,19 +79,19 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
79
79
  bottomVisible,
80
80
  rowCount,
81
81
  columnHeaderHeight,
82
- visibleRowHeights,
83
- visibleRowYs,
82
+ allRowHeights,
83
+ allRowYs,
84
84
  height
85
85
  } = metrics;
86
86
  var minY = columnHeaderHeight;
87
87
  if (top < draggingRow) {
88
88
  var topRow = draggingRow - 1;
89
- minY = getOrThrow(visibleRowYs, topRow) + getOrThrow(visibleRowHeights, topRow) * 0.5 + columnHeaderHeight;
89
+ minY = getOrThrow(allRowYs, topRow) + getOrThrow(allRowHeights, topRow) * 0.5 + columnHeaderHeight;
90
90
  }
91
91
  var maxY = height;
92
92
  if (draggingRow < bottom) {
93
93
  var bottomRow = draggingRow + 1;
94
- maxY = getOrThrow(visibleRowYs, bottomRow) + getOrThrow(visibleRowHeights, bottomRow) * 0.5 + columnHeaderHeight;
94
+ maxY = getOrThrow(allRowYs, bottomRow) + getOrThrow(allRowHeights, bottomRow) * 0.5 + columnHeaderHeight;
95
95
  }
96
96
  var {
97
97
  movedRows
@@ -107,8 +107,8 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
107
107
  movedRows,
108
108
  draggingRow
109
109
  });
110
- var minMoveY = columnHeaderHeight + getOrThrow(visibleRowHeights, top) * 0.5;
111
- var maxMoveY = columnHeaderHeight + getOrThrow(visibleRowYs, bottomVisible) + getOrThrow(visibleRowHeights, bottomVisible) * 0.5;
110
+ var minMoveY = columnHeaderHeight + getOrThrow(allRowHeights, top) * 0.5;
111
+ var maxMoveY = columnHeaderHeight + getOrThrow(allRowYs, bottomVisible) + getOrThrow(allRowHeights, bottomVisible) * 0.5;
112
112
  if (mouseY < minMoveY && top > 0) {
113
113
  grid.setState({
114
114
  top: top - 1
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowMoveMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","row","metrics","Error","columnHeaderHeight","rowHeaderWidth","visibleRowYs","isRowMovable","rowY","draggingOffset","setState","draggingRowOffset","onDrag","draggingRow","state","mouseX","mouseY","getGridPointFromXY","isDragging","top","lastTop","bottom","bottomVisible","rowCount","visibleRowHeights","height","minY","topRow","maxY","bottomRow","movedRows","moveItem","minMoveY","maxMoveY","onUp","undefined"],"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"sourcesContent":["import { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\nclass GridRowMoveMouseHandler extends GridMouseHandler {\n cursor = 'move';\n\n private draggingOffset?: number;\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, y, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { columnHeaderHeight, rowHeaderWidth, visibleRowYs } = metrics;\n\n if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {\n const rowY = getOrThrow(visibleRowYs, row);\n this.draggingOffset = y - rowY - columnHeaderHeight;\n grid.setState({ draggingRowOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset == null) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingRow } = grid.state;\n const { mouseX, mouseY } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n if (draggingRow == null) {\n const { row } = grid.getGridPointFromXY(mouseX, mouseY);\n if (row != null && !model.isRowMovable(row)) {\n return false;\n }\n\n draggingRow = row;\n\n grid.setState({ draggingRow, isDragging: true });\n\n if (draggingRow == null) {\n return false;\n }\n }\n\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n top,\n lastTop,\n bottom,\n bottomVisible,\n rowCount,\n columnHeaderHeight,\n visibleRowHeights,\n visibleRowYs,\n height,\n } = metrics;\n let minY = columnHeaderHeight;\n if (top < draggingRow) {\n const topRow = draggingRow - 1;\n minY =\n getOrThrow(visibleRowYs, topRow) +\n getOrThrow(visibleRowHeights, topRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let maxY = height;\n if (draggingRow < bottom) {\n const bottomRow = draggingRow + 1;\n maxY =\n getOrThrow(visibleRowYs, bottomRow) +\n getOrThrow(visibleRowHeights, bottomRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let { movedRows } = grid.state;\n if (\n mouseY < minY &&\n draggingRow > 0 &&\n model.isRowMovable(draggingRow - 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow - 1, movedRows);\n draggingRow -= 1;\n } else if (\n maxY < mouseY &&\n draggingRow < rowCount - 1 &&\n model.isRowMovable(draggingRow + 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow + 1, movedRows);\n draggingRow += 1;\n }\n grid.setState({ movedRows, draggingRow });\n\n const minMoveY =\n columnHeaderHeight + getOrThrow(visibleRowHeights, top) * 0.5;\n const maxMoveY =\n columnHeaderHeight +\n getOrThrow(visibleRowYs, bottomVisible) +\n getOrThrow(visibleRowHeights, bottomVisible) * 0.5;\n if (mouseY < minMoveY && top > 0) {\n grid.setState({ top: top - 1 });\n } else if (mouseY > maxMoveY && top < lastTop) {\n grid.setState({ top: top + 1 });\n }\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset !== undefined) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingRowOffset: null,\n draggingRow: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridRowMoveMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridRowMoveMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","row","metrics","Error","columnHeaderHeight","rowHeaderWidth","allRowYs","isRowMovable","rowY","draggingOffset","setState","draggingRowOffset","onDrag","draggingRow","state","mouseX","mouseY","getGridPointFromXY","isDragging","top","lastTop","bottom","bottomVisible","rowCount","allRowHeights","height","minY","topRow","maxY","bottomRow","movedRows","moveItem","minMoveY","maxMoveY","onUp","undefined"],"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"sourcesContent":["import { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\nclass GridRowMoveMouseHandler extends GridMouseHandler {\n cursor = 'move';\n\n private draggingOffset?: number;\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, y, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { columnHeaderHeight, rowHeaderWidth, allRowYs } = metrics;\n\n if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {\n const rowY = getOrThrow(allRowYs, row);\n this.draggingOffset = y - rowY - columnHeaderHeight;\n grid.setState({ draggingRowOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset == null) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingRow } = grid.state;\n const { mouseX, mouseY } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n if (draggingRow == null) {\n const { row } = grid.getGridPointFromXY(mouseX, mouseY);\n if (row != null && !model.isRowMovable(row)) {\n return false;\n }\n\n draggingRow = row;\n\n grid.setState({ draggingRow, isDragging: true });\n\n if (draggingRow == null) {\n return false;\n }\n }\n\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n top,\n lastTop,\n bottom,\n bottomVisible,\n rowCount,\n columnHeaderHeight,\n allRowHeights,\n allRowYs,\n height,\n } = metrics;\n let minY = columnHeaderHeight;\n if (top < draggingRow) {\n const topRow = draggingRow - 1;\n minY =\n getOrThrow(allRowYs, topRow) +\n getOrThrow(allRowHeights, topRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let maxY = height;\n if (draggingRow < bottom) {\n const bottomRow = draggingRow + 1;\n maxY =\n getOrThrow(allRowYs, bottomRow) +\n getOrThrow(allRowHeights, bottomRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let { movedRows } = grid.state;\n if (\n mouseY < minY &&\n draggingRow > 0 &&\n model.isRowMovable(draggingRow - 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow - 1, movedRows);\n draggingRow -= 1;\n } else if (\n maxY < mouseY &&\n draggingRow < rowCount - 1 &&\n model.isRowMovable(draggingRow + 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow + 1, movedRows);\n draggingRow += 1;\n }\n grid.setState({ movedRows, draggingRow });\n\n const minMoveY = columnHeaderHeight + getOrThrow(allRowHeights, top) * 0.5;\n const maxMoveY =\n columnHeaderHeight +\n getOrThrow(allRowYs, bottomVisible) +\n getOrThrow(allRowHeights, bottomVisible) * 0.5;\n if (mouseY < minMoveY && top > 0) {\n grid.setState({ top: top - 1 });\n } else if (mouseY > maxMoveY && top < lastTop) {\n grid.setState({ top: top + 1 });\n }\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset !== undefined) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingRowOffset: null,\n draggingRow: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridRowMoveMouseHandler;\n"],"mappings":"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"}
@@ -20,17 +20,17 @@ class GridRowTreeMouseHandler extends GridMouseHandler {
20
20
  gridX,
21
21
  gridY,
22
22
  firstColumn,
23
- visibleColumnXs,
24
- visibleColumnWidths,
25
- visibleRowHeights,
26
- visibleRowYs,
23
+ allColumnXs,
24
+ allColumnWidths,
25
+ allRowHeights,
26
+ allRowYs,
27
27
  visibleRowTreeBoxes
28
28
  } = metrics;
29
29
  if (column === firstColumn && row != null && visibleRowTreeBoxes.get(row) != null && x > gridX && y > gridY) {
30
- var columnX = getOrThrow(visibleColumnXs, column);
31
- var width = getOrThrow(visibleColumnWidths, column);
32
- var rowY = getOrThrow(visibleRowYs, row);
33
- var height = getOrThrow(visibleRowHeights, row);
30
+ var columnX = getOrThrow(allColumnXs, column);
31
+ var width = getOrThrow(allColumnWidths, column);
32
+ var rowY = getOrThrow(allRowYs, row);
33
+ var height = getOrThrow(allRowHeights, row);
34
34
  if (x >= gridX + columnX && x <= gridX + columnX + width && y >= gridY + rowY && y <= gridY + rowY + height) {
35
35
  return true;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowTreeMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","Error","gridX","gridY","firstColumn","visibleColumnXs","visibleColumnWidths","visibleRowHeights","visibleRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","toggleRowExpanded"],"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n gridX,\n gridY,\n firstColumn,\n visibleColumnXs,\n visibleColumnWidths,\n visibleRowHeights,\n visibleRowYs,\n visibleRowTreeBoxes,\n } = metrics;\n\n if (\n column === firstColumn &&\n row != null &&\n visibleRowTreeBoxes.get(row) != null &&\n x > gridX &&\n y > gridY\n ) {\n const columnX = getOrThrow(visibleColumnXs, column);\n const width = getOrThrow(visibleColumnWidths, column);\n const rowY = getOrThrow(visibleRowYs, row);\n const height = getOrThrow(visibleRowHeights, row);\n if (\n x >= gridX + columnX &&\n x <= gridX + columnX + width &&\n y >= gridY + rowY &&\n y <= gridY + rowY + height\n ) {\n return true;\n }\n }\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n if (row !== null) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"mappings":"AAAA;AAAA,SAGSA,UAAU;AAAA,OACZC,gBAAgB;AAGvB;AACA;AACA;AACA,MAAMC,uBAAuB,SAASD,gBAAgB,CAAC;EACrD,OAAOE,WAAW,CAACC,SAAoB,EAAEC,IAAU,EAAW;IAC5D,IAAM;MAAEC,MAAM;MAAEC,GAAG;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGL,SAAS;IACvC,IAAM;MAAEM;IAAQ,CAAC,GAAGL,IAAI;IACxB,IAAI,CAACK,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAM;MACJC,KAAK;MACLC,KAAK;MACLC,WAAW;MACXC,eAAe;MACfC,mBAAmB;MACnBC,iBAAiB;MACjBC,YAAY;MACZC;IACF,CAAC,GAAGT,OAAO;IAEX,IACEJ,MAAM,KAAKQ,WAAW,IACtBP,GAAG,IAAI,IAAI,IACXY,mBAAmB,CAACC,GAAG,CAACb,GAAG,CAAC,IAAI,IAAI,IACpCC,CAAC,GAAGI,KAAK,IACTH,CAAC,GAAGI,KAAK,EACT;MACA,IAAMQ,OAAO,GAAGrB,UAAU,CAACe,eAAe,EAAET,MAAM,CAAC;MACnD,IAAMgB,KAAK,GAAGtB,UAAU,CAACgB,mBAAmB,EAAEV,MAAM,CAAC;MACrD,IAAMiB,IAAI,GAAGvB,UAAU,CAACkB,YAAY,EAAEX,GAAG,CAAC;MAC1C,IAAMiB,MAAM,GAAGxB,UAAU,CAACiB,iBAAiB,EAAEV,GAAG,CAAC;MACjD,IACEC,CAAC,IAAII,KAAK,GAAGS,OAAO,IACpBb,CAAC,IAAII,KAAK,GAAGS,OAAO,GAAGC,KAAK,IAC5Bb,CAAC,IAAII,KAAK,GAAGU,IAAI,IACjBd,CAAC,IAAII,KAAK,GAAGU,IAAI,GAAGC,MAAM,EAC1B;QACA,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEAC,MAAM,CAACrB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,OAAOH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC;EAC7D;EAEAqB,OAAO,CAACtB,SAAoB,EAAEC,IAAU,EAAsB;IAC5D,IAAIH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC,EAAE;MACxD,IAAM;QAAEE;MAAI,CAAC,GAAGH,SAAS;MACzB,IAAIG,GAAG,KAAK,IAAI,EAAE;QAChBF,IAAI,CAACsB,iBAAiB,CAACpB,GAAG,CAAC;QAC3B,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeL,uBAAuB"}
1
+ {"version":3,"file":"GridRowTreeMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","Error","gridX","gridY","firstColumn","allColumnXs","allColumnWidths","allRowHeights","allRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","toggleRowExpanded"],"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n gridX,\n gridY,\n firstColumn,\n allColumnXs,\n allColumnWidths,\n allRowHeights,\n allRowYs,\n visibleRowTreeBoxes,\n } = metrics;\n\n if (\n column === firstColumn &&\n row != null &&\n visibleRowTreeBoxes.get(row) != null &&\n x > gridX &&\n y > gridY\n ) {\n const columnX = getOrThrow(allColumnXs, column);\n const width = getOrThrow(allColumnWidths, column);\n const rowY = getOrThrow(allRowYs, row);\n const height = getOrThrow(allRowHeights, row);\n if (\n x >= gridX + columnX &&\n x <= gridX + columnX + width &&\n y >= gridY + rowY &&\n y <= gridY + rowY + height\n ) {\n return true;\n }\n }\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n if (row !== null) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"mappings":"AAAA;AAAA,SAGSA,UAAU;AAAA,OACZC,gBAAgB;AAGvB;AACA;AACA;AACA,MAAMC,uBAAuB,SAASD,gBAAgB,CAAC;EACrD,OAAOE,WAAW,CAACC,SAAoB,EAAEC,IAAU,EAAW;IAC5D,IAAM;MAAEC,MAAM;MAAEC,GAAG;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGL,SAAS;IACvC,IAAM;MAAEM;IAAQ,CAAC,GAAGL,IAAI;IACxB,IAAI,CAACK,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAM;MACJC,KAAK;MACLC,KAAK;MACLC,WAAW;MACXC,WAAW;MACXC,eAAe;MACfC,aAAa;MACbC,QAAQ;MACRC;IACF,CAAC,GAAGT,OAAO;IAEX,IACEJ,MAAM,KAAKQ,WAAW,IACtBP,GAAG,IAAI,IAAI,IACXY,mBAAmB,CAACC,GAAG,CAACb,GAAG,CAAC,IAAI,IAAI,IACpCC,CAAC,GAAGI,KAAK,IACTH,CAAC,GAAGI,KAAK,EACT;MACA,IAAMQ,OAAO,GAAGrB,UAAU,CAACe,WAAW,EAAET,MAAM,CAAC;MAC/C,IAAMgB,KAAK,GAAGtB,UAAU,CAACgB,eAAe,EAAEV,MAAM,CAAC;MACjD,IAAMiB,IAAI,GAAGvB,UAAU,CAACkB,QAAQ,EAAEX,GAAG,CAAC;MACtC,IAAMiB,MAAM,GAAGxB,UAAU,CAACiB,aAAa,EAAEV,GAAG,CAAC;MAC7C,IACEC,CAAC,IAAII,KAAK,GAAGS,OAAO,IACpBb,CAAC,IAAII,KAAK,GAAGS,OAAO,GAAGC,KAAK,IAC5Bb,CAAC,IAAII,KAAK,GAAGU,IAAI,IACjBd,CAAC,IAAII,KAAK,GAAGU,IAAI,GAAGC,MAAM,EAC1B;QACA,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEAC,MAAM,CAACrB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,OAAOH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC;EAC7D;EAEAqB,OAAO,CAACtB,SAAoB,EAAEC,IAAU,EAAsB;IAC5D,IAAIH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC,EAAE;MACxD,IAAM;QAAEE;MAAI,CAAC,GAAGH,SAAS;MACzB,IAAIG,GAAG,KAAK,IAAI,EAAE;QAChBF,IAAI,CAACsB,iBAAiB,CAACpB,GAAG,CAAC;QAC3B,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeL,uBAAuB"}
@@ -25,7 +25,7 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
25
25
  }
26
26
  var top = Math.floor(rawTop);
27
27
  var topOffsetPercent = rawTop - top;
28
- var rowHeight = metrics.visibleRowHeights.get(top);
28
+ var rowHeight = metrics.allRowHeights.get(top);
29
29
  if (rowHeight == null) {
30
30
  var metricState = grid.getMetricState();
31
31
  rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);
@@ -1 +1 @@
1
- {"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","visibleRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.visibleRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","allRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.allRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/grid",
3
- "version": "0.25.1-beta.0+e8da34e",
3
+ "version": "0.25.1-beta.2+0175de8",
4
4
  "description": "Deephaven React grid component",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -25,13 +25,13 @@
25
25
  "react": "^17.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@deephaven/tsconfig": "^0.25.1-beta.0+e8da34e"
28
+ "@deephaven/tsconfig": "^0.25.1-beta.2+0175de8"
29
29
  },
30
30
  "files": [
31
31
  "dist"
32
32
  ],
33
33
  "dependencies": {
34
- "@deephaven/utils": "^0.25.1-beta.0+e8da34e",
34
+ "@deephaven/utils": "^0.25.1-beta.2+0175de8",
35
35
  "classnames": "^2.3.1",
36
36
  "color-convert": "^2.0.1",
37
37
  "event-target-shim": "^6.0.2",
@@ -43,5 +43,5 @@
43
43
  "publishConfig": {
44
44
  "access": "public"
45
45
  },
46
- "gitHead": "e8da34e9b99e4af6c485c4f714ae1dcd02a97e95"
46
+ "gitHead": "0175de8a68e951ec341e5ae5fc4d5978543b9460"
47
47
  }