@deephaven/grid 0.22.3-beta.18 → 0.22.3-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/CellInputField.d.ts +5 -5
  2. package/dist/CellInputField.d.ts.map +1 -1
  3. package/dist/CellInputField.js +6 -23
  4. package/dist/CellInputField.js.map +1 -1
  5. package/dist/EditableGridModel.js +1 -0
  6. package/dist/EditableGridModel.js.map +1 -1
  7. package/dist/ExpandableGridModel.js +1 -0
  8. package/dist/ExpandableGridModel.js.map +1 -1
  9. package/dist/Grid.js +77 -315
  10. package/dist/Grid.js.map +1 -1
  11. package/dist/GridAxisRange.js.map +1 -1
  12. package/dist/GridColorUtils.js +1 -2
  13. package/dist/GridColorUtils.js.map +1 -1
  14. package/dist/GridMetricCalculator.js +83 -240
  15. package/dist/GridMetricCalculator.js.map +1 -1
  16. package/dist/GridModel.js +13 -31
  17. package/dist/GridModel.js.map +1 -1
  18. package/dist/GridMouseHandler.js +2 -15
  19. package/dist/GridMouseHandler.js.map +1 -1
  20. package/dist/GridRange.js +46 -160
  21. package/dist/GridRange.js.map +1 -1
  22. package/dist/GridRenderer.js +126 -407
  23. package/dist/GridRenderer.js.map +1 -1
  24. package/dist/GridTestUtils.js +0 -5
  25. package/dist/GridTestUtils.js.map +1 -1
  26. package/dist/GridTheme.js.map +1 -1
  27. package/dist/GridUtils.js +68 -217
  28. package/dist/GridUtils.js.map +1 -1
  29. package/dist/KeyHandler.js +2 -8
  30. package/dist/KeyHandler.js.map +1 -1
  31. package/dist/MockGridData.js.map +1 -1
  32. package/dist/MockGridModel.js +0 -42
  33. package/dist/MockGridModel.js.map +1 -1
  34. package/dist/MockTreeGridModel.js +6 -55
  35. package/dist/MockTreeGridModel.js.map +1 -1
  36. package/dist/StaticDataGridModel.js +0 -15
  37. package/dist/StaticDataGridModel.js.map +1 -1
  38. package/dist/ThemeContext.js.map +1 -1
  39. package/dist/ViewportDataGridModel.js +0 -14
  40. package/dist/ViewportDataGridModel.js.map +1 -1
  41. package/dist/errors/AssertionError.js +0 -3
  42. package/dist/errors/AssertionError.js.map +1 -1
  43. package/dist/errors/PasteError.js +0 -3
  44. package/dist/errors/PasteError.js.map +1 -1
  45. package/dist/errors/assertIsDefined.js.map +1 -1
  46. package/dist/errors/index.js.map +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/key-handlers/EditKeyHandler.js +0 -12
  49. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  50. package/dist/key-handlers/PasteKeyHandler.js +15 -33
  51. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  52. package/dist/key-handlers/SelectionKeyHandler.js +6 -53
  53. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  54. package/dist/key-handlers/TreeKeyHandler.js +0 -11
  55. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  56. package/dist/key-handlers/index.js.map +1 -1
  57. package/dist/memoizeClear.js +1 -4
  58. package/dist/memoizeClear.js.map +1 -1
  59. package/dist/mouse-handlers/EditMouseHandler.js +0 -5
  60. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  61. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +35 -123
  62. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  63. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -27
  64. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  65. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +0 -28
  66. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  67. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +0 -27
  68. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  69. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +0 -23
  70. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  71. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +0 -10
  72. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  73. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +0 -6
  74. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  75. package/dist/mouse-handlers/GridSelectionMouseHandler.js +8 -38
  76. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  77. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -54
  78. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  79. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +0 -28
  80. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  81. package/dist/mouse-handlers/index.js.map +1 -1
  82. package/package.json +4 -4
@@ -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","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,47 +1,29 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  /* eslint class-methods-use-this: "off" */
4
3
  import GridUtils from "../GridUtils.js";
5
4
  import GridSeparatorMouseHandler from "./GridSeparatorMouseHandler.js";
6
-
7
5
  class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
8
6
  constructor() {
9
7
  super(...arguments);
10
-
11
8
  _defineProperty(this, "hiddenCursor", 'e-resize');
12
-
13
9
  _defineProperty(this, "defaultCursor", 'col-resize');
14
-
15
10
  _defineProperty(this, "pointProperty", 'x');
16
-
17
11
  _defineProperty(this, "userSizesProperty", 'userColumnWidths');
18
-
19
12
  _defineProperty(this, "visibleOffsetProperty", 'visibleColumnXs');
20
-
21
13
  _defineProperty(this, "visibleSizesProperty", 'visibleColumnWidths');
22
-
23
14
  _defineProperty(this, "marginProperty", 'rowHeaderWidth');
24
-
25
15
  _defineProperty(this, "calculatedSizesProperty", 'calculatedColumnWidths');
26
-
27
16
  _defineProperty(this, "modelIndexesProperty", 'modelColumns');
28
-
29
17
  _defineProperty(this, "firstIndexProperty", 'firstColumn');
30
-
31
18
  _defineProperty(this, "treePaddingProperty", 'treePaddingX');
32
-
33
19
  _defineProperty(this, "getHiddenItems", GridUtils.getHiddenColumns);
34
-
35
20
  _defineProperty(this, "getNextShownItem", GridUtils.getNextShownColumn);
36
-
37
21
  _defineProperty(this, "getSeparator", GridColumnSeparatorMouseHandler.getColumnSeparator);
38
22
  }
39
-
40
23
  static getColumnSeparator(gridPoint, metrics, model, theme) {
41
24
  if (!theme.allowColumnResize) {
42
25
  return null;
43
26
  }
44
-
45
27
  var {
46
28
  x,
47
29
  y,
@@ -50,40 +32,33 @@ class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
50
32
  var {
51
33
  modelColumns
52
34
  } = metrics;
53
- var separatorIndex = GridUtils.getColumnSeparatorIndex(x, y, metrics, theme); // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns
35
+ var separatorIndex = GridUtils.getColumnSeparatorIndex(x, y, metrics, theme);
54
36
 
37
+ // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns
55
38
  if (separatorIndex == null || columnHeaderDepth == null || columnHeaderDepth > 0) {
56
39
  return null;
57
40
  }
58
-
59
41
  var columnIndex = modelColumns.get(separatorIndex);
60
-
61
42
  if (columnIndex != null) {
62
43
  return {
63
44
  index: separatorIndex,
64
45
  depth: 0
65
46
  };
66
47
  }
67
-
68
48
  return null;
69
49
  }
70
-
71
50
  setSize(metricCalculator, modelIndex, size) {
72
51
  metricCalculator.setColumnWidth(modelIndex, size);
73
52
  }
74
-
75
53
  resetSize(metricCalculator, modelIndex) {
76
54
  metricCalculator.resetColumnWidth(modelIndex);
77
55
  }
78
-
79
56
  updateSeparator(grid, separator) {
80
57
  grid.setState({
81
58
  draggingColumnSeparator: separator,
82
59
  isDragging: separator !== null
83
60
  });
84
61
  }
85
-
86
62
  }
87
-
88
63
  export default GridColumnSeparatorMouseHandler;
89
64
  //# sourceMappingURL=GridColumnSeparatorMouseHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridColumnSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparator","gridPoint","metrics","model","theme","allowColumnResize","x","y","columnHeaderDepth","modelColumns","separatorIndex","getColumnSeparatorIndex","columnIndex","get","index","depth","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","grid","separator","setState","draggingColumnSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport type { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowColumnResize) {\n return null;\n }\n\n const { x, y, columnHeaderDepth } = gridPoint;\n\n const { modelColumns } = metrics;\n\n const separatorIndex = GridUtils.getColumnSeparatorIndex(\n x,\n y,\n metrics,\n theme\n );\n\n // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns\n if (\n separatorIndex == null ||\n columnHeaderDepth == null ||\n columnHeaderDepth > 0\n ) {\n return null;\n }\n\n const columnIndex = modelColumns.get(separatorIndex);\n if (columnIndex != null) {\n return { index: separatorIndex, depth: 0 };\n }\n\n return null;\n }\n\n hiddenCursor = 'e-resize';\n\n defaultCursor = 'col-resize';\n\n pointProperty = 'x' as const;\n\n userSizesProperty = 'userColumnWidths' as const;\n\n visibleOffsetProperty = 'visibleColumnXs' as const;\n\n visibleSizesProperty = 'visibleColumnWidths' as const;\n\n marginProperty = 'rowHeaderWidth' as const;\n\n calculatedSizesProperty = 'calculatedColumnWidths' as const;\n\n modelIndexesProperty = 'modelColumns' as const;\n\n firstIndexProperty = 'firstColumn' as const;\n\n treePaddingProperty = 'treePaddingX' as const;\n\n getHiddenItems = GridUtils.getHiddenColumns;\n\n getNextShownItem = GridUtils.getNextShownColumn;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setColumnWidth(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetColumnWidth(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingColumnSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridColumnSeparatorMouseHandler.getColumnSeparator;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"mappings":";;AAAA;OAMOA,S;OACAC,yB;;AAIP,MAAMC,+BAAN,SAA8CD,yBAA9C,CAAwE;EAAA;IAAA;;IAAA,sCAuCvD,UAvCuD;;IAAA,uCAyCtD,YAzCsD;;IAAA,uCA2CtD,GA3CsD;;IAAA,2CA6ClD,kBA7CkD;;IAAA,+CA+C9C,iBA/C8C;;IAAA,8CAiD/C,qBAjD+C;;IAAA,wCAmDrD,gBAnDqD;;IAAA,iDAqD5C,wBArD4C;;IAAA,8CAuD/C,cAvD+C;;IAAA,4CAyDjD,aAzDiD;;IAAA,6CA2DhD,cA3DgD;;IAAA,wCA6DrDD,SAAS,CAACG,gBA7D2C;;IAAA,0CA+DnDH,SAAS,CAACI,kBA/DyC;;IAAA,sCAuFvDF,+BAA+B,CAACG,kBAvFuB;EAAA;;EAC7C,OAAlBA,kBAAkB,CACvBC,SADuB,EAEvBC,OAFuB,EAGvBC,KAHuB,EAIvBC,KAJuB,EAKD;IACtB,IAAI,CAACA,KAAK,CAACC,iBAAX,EAA8B;MAC5B,OAAO,IAAP;IACD;;IAED,IAAM;MAAEC,CAAF;MAAKC,CAAL;MAAQC;IAAR,IAA8BP,SAApC;IAEA,IAAM;MAAEQ;IAAF,IAAmBP,OAAzB;IAEA,IAAMQ,cAAc,GAAGf,SAAS,CAACgB,uBAAV,CACrBL,CADqB,EAErBC,CAFqB,EAGrBL,OAHqB,EAIrBE,KAJqB,CAAvB,CATsB,CAgBtB;;IACA,IACEM,cAAc,IAAI,IAAlB,IACAF,iBAAiB,IAAI,IADrB,IAEAA,iBAAiB,GAAG,CAHtB,EAIE;MACA,OAAO,IAAP;IACD;;IAED,IAAMI,WAAW,GAAGH,YAAY,CAACI,GAAb,CAAiBH,cAAjB,CAApB;;IACA,IAAIE,WAAW,IAAI,IAAnB,EAAyB;MACvB,OAAO;QAAEE,KAAK,EAAEJ,cAAT;QAAyBK,KAAK,EAAE;MAAhC,CAAP;IACD;;IAED,OAAO,IAAP;EACD;;EA4BDC,OAAO,CACLC,gBADK,EAELC,UAFK,EAGLC,IAHK,EAIC;IACNF,gBAAgB,CAACG,cAAjB,CAAgCF,UAAhC,EAA4CC,IAA5C;EACD;;EAEDE,SAAS,CACPJ,gBADO,EAEPC,UAFO,EAGD;IACND,gBAAgB,CAACK,gBAAjB,CAAkCJ,UAAlC;EACD;;EAEDK,eAAe,CAACC,IAAD,EAAaC,SAAb,EAAoD;IACjED,IAAI,CAACE,QAAL,CAAc;MACZC,uBAAuB,EAAEF,SADb;MAEZG,UAAU,EAAEH,SAAS,KAAK;IAFd,CAAd;EAID;;AArFqE;;AA0FxE,eAAe5B,+BAAf"}
1
+ {"version":3,"file":"GridColumnSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparator","gridPoint","metrics","model","theme","allowColumnResize","x","y","columnHeaderDepth","modelColumns","separatorIndex","getColumnSeparatorIndex","columnIndex","get","index","depth","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","grid","separator","setState","draggingColumnSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport type { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowColumnResize) {\n return null;\n }\n\n const { x, y, columnHeaderDepth } = gridPoint;\n\n const { modelColumns } = metrics;\n\n const separatorIndex = GridUtils.getColumnSeparatorIndex(\n x,\n y,\n metrics,\n theme\n );\n\n // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns\n if (\n separatorIndex == null ||\n columnHeaderDepth == null ||\n columnHeaderDepth > 0\n ) {\n return null;\n }\n\n const columnIndex = modelColumns.get(separatorIndex);\n if (columnIndex != null) {\n return { index: separatorIndex, depth: 0 };\n }\n\n return null;\n }\n\n hiddenCursor = 'e-resize';\n\n defaultCursor = 'col-resize';\n\n pointProperty = 'x' as const;\n\n userSizesProperty = 'userColumnWidths' as const;\n\n visibleOffsetProperty = 'visibleColumnXs' as const;\n\n visibleSizesProperty = 'visibleColumnWidths' as const;\n\n marginProperty = 'rowHeaderWidth' as const;\n\n calculatedSizesProperty = 'calculatedColumnWidths' as const;\n\n modelIndexesProperty = 'modelColumns' as const;\n\n firstIndexProperty = 'firstColumn' as const;\n\n treePaddingProperty = 'treePaddingX' as const;\n\n getHiddenItems = GridUtils.getHiddenColumns;\n\n getNextShownItem = GridUtils.getNextShownColumn;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setColumnWidth(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetColumnWidth(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingColumnSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridColumnSeparatorMouseHandler.getColumnSeparator;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"mappings":";AAAA;AAAA,OAMOA,SAAS;AAAA,OACTC,yBAAyB;AAIhC,MAAMC,+BAA+B,SAASD,yBAAyB,CAAC;EAAA;IAAA;IAAA,sCAuCvD,UAAU;IAAA,uCAET,YAAY;IAAA,uCAEZ,GAAG;IAAA,2CAEC,kBAAkB;IAAA,+CAEd,iBAAiB;IAAA,8CAElB,qBAAqB;IAAA,wCAE3B,gBAAgB;IAAA,iDAEP,wBAAwB;IAAA,8CAE3B,cAAc;IAAA,4CAEhB,aAAa;IAAA,6CAEZ,cAAc;IAAA,wCAEnBD,SAAS,CAACG,gBAAgB;IAAA,0CAExBH,SAAS,CAACI,kBAAkB;IAAA,sCAwBhCF,+BAA+B,CAACG,kBAAkB;EAAA;EAtFjE,OAAOA,kBAAkB,CACvBC,SAAoB,EACpBC,OAAoB,EACpBC,KAAgB,EAChBC,KAAgB,EACM;IACtB,IAAI,CAACA,KAAK,CAACC,iBAAiB,EAAE;MAC5B,OAAO,IAAI;IACb;IAEA,IAAM;MAAEC,CAAC;MAAEC,CAAC;MAAEC;IAAkB,CAAC,GAAGP,SAAS;IAE7C,IAAM;MAAEQ;IAAa,CAAC,GAAGP,OAAO;IAEhC,IAAMQ,cAAc,GAAGf,SAAS,CAACgB,uBAAuB,CACtDL,CAAC,EACDC,CAAC,EACDL,OAAO,EACPE,KAAK,CACN;;IAED;IACA,IACEM,cAAc,IAAI,IAAI,IACtBF,iBAAiB,IAAI,IAAI,IACzBA,iBAAiB,GAAG,CAAC,EACrB;MACA,OAAO,IAAI;IACb;IAEA,IAAMI,WAAW,GAAGH,YAAY,CAACI,GAAG,CAACH,cAAc,CAAC;IACpD,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO;QAAEE,KAAK,EAAEJ,cAAc;QAAEK,KAAK,EAAE;MAAE,CAAC;IAC5C;IAEA,OAAO,IAAI;EACb;EA4BAC,OAAO,CACLC,gBAAsC,EACtCC,UAAsB,EACtBC,IAAY,EACN;IACNF,gBAAgB,CAACG,cAAc,CAACF,UAAU,EAAEC,IAAI,CAAC;EACnD;EAEAE,SAAS,CACPJ,gBAAsC,EACtCC,UAAsB,EAChB;IACND,gBAAgB,CAACK,gBAAgB,CAACJ,UAAU,CAAC;EAC/C;EAEAK,eAAe,CAACC,IAAU,EAAEC,SAA+B,EAAQ;IACjED,IAAI,CAACE,QAAQ,CAAC;MACZC,uBAAuB,EAAEF,SAAS;MAClCG,UAAU,EAAEH,SAAS,KAAK;IAC5B,CAAC,CAAC;EACJ;AAGF;AAEA,eAAe5B,+BAA+B"}
@@ -1,18 +1,13 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import clamp from 'lodash.clamp';
4
3
  import GridMouseHandler from "../GridMouseHandler.js";
5
-
6
4
  /* eslint class-methods-use-this: "off" */
7
5
  class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
8
6
  constructor() {
9
7
  super(...arguments);
10
-
11
8
  _defineProperty(this, "dragOffset", void 0);
12
-
13
9
  _defineProperty(this, "cursor", 'default');
14
10
  }
15
-
16
11
  static getLeftWithOffsetFromRawLeft(grid, rawLeft) {
17
12
  var theme = grid.getTheme();
18
13
  var {
@@ -20,33 +15,27 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
20
15
  metricCalculator
21
16
  } = grid;
22
17
  if (!metrics) throw new Error('metrics not set');
23
-
24
18
  if (theme.scrollSnapToColumn) {
25
19
  var _left = Math.round(rawLeft);
26
-
27
20
  var _leftOffset = 0;
28
21
  return {
29
22
  left: _left,
30
23
  leftOffset: _leftOffset
31
24
  };
32
25
  }
33
-
34
26
  var left = Math.floor(rawLeft);
35
27
  var leftOffsetPercent = rawLeft - left;
36
28
  var columnWidth = metrics.visibleColumnWidths.get(left);
37
-
38
29
  if (columnWidth == null) {
39
30
  var metricState = grid.getMetricState();
40
31
  columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);
41
32
  }
42
-
43
33
  var leftOffset = columnWidth * leftOffsetPercent;
44
34
  return {
45
35
  left,
46
36
  leftOffset
47
37
  };
48
38
  }
49
-
50
39
  isInScrollBar(gridPoint, grid) {
51
40
  var theme = grid.getTheme();
52
41
  var {
@@ -69,10 +58,8 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
69
58
  } = metrics;
70
59
  return hasHorizontalBar && scrollBarSize > 0 && y >= height - scrollBarHoverSize && y < height && x > barLeft && x < barLeft + barWidth;
71
60
  }
72
-
73
61
  getLeftWithOffset(gridPoint, grid) {
74
62
  var _this$dragOffset;
75
-
76
63
  var {
77
64
  metrics
78
65
  } = grid;
@@ -91,18 +78,15 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
91
78
  } = metrics;
92
79
  var mouseBarX = x - barLeft;
93
80
  var scrollPercent = clamp((mouseBarX - ((_this$dragOffset = this.dragOffset) !== null && _this$dragOffset !== void 0 ? _this$dragOffset : 0)) / (barWidth - handleWidth), 0, 1);
94
-
95
81
  if (columnCount === 1) {
96
82
  return {
97
83
  left: 0,
98
84
  leftOffset: scrollPercent * (scrollableContentWidth - scrollableViewportWidth)
99
85
  };
100
86
  }
101
-
102
87
  var rawLeft = scrollPercent * lastLeft;
103
88
  return GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(grid, rawLeft);
104
89
  }
105
-
106
90
  onDown(gridPoint, grid) {
107
91
  var {
108
92
  metrics
@@ -116,13 +100,10 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
116
100
  barLeft,
117
101
  scrollX
118
102
  } = metrics;
119
-
120
103
  if (!this.isInScrollBar(gridPoint, grid)) {
121
104
  return false;
122
105
  }
123
-
124
106
  var mouseBarX = x - barLeft;
125
-
126
107
  if (mouseBarX >= scrollX && mouseBarX <= scrollX + handleWidth) {
127
108
  // Grabbed the horizontal handle
128
109
  this.dragOffset = mouseBarX - scrollX;
@@ -142,10 +123,8 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
142
123
  isDragging: true
143
124
  });
144
125
  }
145
-
146
126
  return true;
147
127
  }
148
-
149
128
  onDrag(gridPoint, grid) {
150
129
  if (this.dragOffset != null) {
151
130
  var {
@@ -160,14 +139,11 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
160
139
  });
161
140
  return true;
162
141
  }
163
-
164
142
  return false;
165
143
  }
166
-
167
144
  onMove(gridPoint, grid) {
168
145
  return this.isInScrollBar(gridPoint, grid);
169
146
  }
170
-
171
147
  onUp(gridPoint, grid) {
172
148
  if (this.dragOffset !== undefined) {
173
149
  this.dragOffset = undefined;
@@ -176,15 +152,11 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
176
152
  isDragging: false
177
153
  });
178
154
  }
179
-
180
155
  return this.isInScrollBar(gridPoint, grid);
181
156
  }
182
-
183
157
  onClick(gridPoint, grid) {
184
158
  return this.isInScrollBar(gridPoint, grid);
185
159
  }
186
-
187
160
  }
188
-
189
161
  export default GridHorizontalScrollBarMouseHandler;
190
162
  //# sourceMappingURL=GridHorizontalScrollBarMouseHandler.js.map
@@ -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","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,18 +1,13 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import { getOrThrow } from "../GridMetricCalculator.js";
4
3
  import GridMouseHandler from "../GridMouseHandler.js";
5
4
  import GridUtils from "../GridUtils.js";
6
-
7
5
  class GridRowMoveMouseHandler extends GridMouseHandler {
8
6
  constructor() {
9
7
  super(...arguments);
10
-
11
8
  _defineProperty(this, "cursor", 'move');
12
-
13
9
  _defineProperty(this, "draggingOffset", void 0);
14
10
  }
15
-
16
11
  onDown(gridPoint, grid) {
17
12
  var {
18
13
  model
@@ -31,7 +26,6 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
31
26
  rowHeaderWidth,
32
27
  visibleRowYs
33
28
  } = metrics;
34
-
35
29
  if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {
36
30
  var rowY = getOrThrow(visibleRowYs, row);
37
31
  this.draggingOffset = y - rowY - columnHeaderHeight;
@@ -39,15 +33,12 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
39
33
  draggingRowOffset: this.draggingOffset
40
34
  });
41
35
  }
42
-
43
36
  return false;
44
37
  }
45
-
46
38
  onDrag(gridPoint, grid) {
47
39
  if (this.draggingOffset == null) {
48
40
  return false;
49
41
  }
50
-
51
42
  var {
52
43
  model
53
44
  } = grid.props;
@@ -58,31 +49,25 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
58
49
  mouseX,
59
50
  mouseY
60
51
  } = grid.state;
61
-
62
52
  if (mouseX == null || mouseY == null) {
63
53
  return false;
64
54
  }
65
-
66
55
  if (draggingRow == null) {
67
56
  var {
68
57
  row
69
58
  } = grid.getGridPointFromXY(mouseX, mouseY);
70
-
71
59
  if (row != null && !model.isRowMovable(row)) {
72
60
  return false;
73
61
  }
74
-
75
62
  draggingRow = row;
76
63
  grid.setState({
77
64
  draggingRow,
78
65
  isDragging: true
79
66
  });
80
-
81
67
  if (draggingRow == null) {
82
68
  return false;
83
69
  }
84
70
  }
85
-
86
71
  var {
87
72
  metrics
88
73
  } = grid;
@@ -99,23 +84,18 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
99
84
  height
100
85
  } = metrics;
101
86
  var minY = columnHeaderHeight;
102
-
103
87
  if (top < draggingRow) {
104
88
  var topRow = draggingRow - 1;
105
89
  minY = getOrThrow(visibleRowYs, topRow) + getOrThrow(visibleRowHeights, topRow) * 0.5 + columnHeaderHeight;
106
90
  }
107
-
108
91
  var maxY = height;
109
-
110
92
  if (draggingRow < bottom) {
111
93
  var bottomRow = draggingRow + 1;
112
94
  maxY = getOrThrow(visibleRowYs, bottomRow) + getOrThrow(visibleRowHeights, bottomRow) * 0.5 + columnHeaderHeight;
113
95
  }
114
-
115
96
  var {
116
97
  movedRows
117
98
  } = grid.state;
118
-
119
99
  if (mouseY < minY && draggingRow > 0 && model.isRowMovable(draggingRow - 1)) {
120
100
  movedRows = GridUtils.moveItem(draggingRow, draggingRow - 1, movedRows);
121
101
  draggingRow -= 1;
@@ -123,14 +103,12 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
123
103
  movedRows = GridUtils.moveItem(draggingRow, draggingRow + 1, movedRows);
124
104
  draggingRow += 1;
125
105
  }
126
-
127
106
  grid.setState({
128
107
  movedRows,
129
108
  draggingRow
130
109
  });
131
110
  var minMoveY = columnHeaderHeight + getOrThrow(visibleRowHeights, top) * 0.5;
132
111
  var maxMoveY = columnHeaderHeight + getOrThrow(visibleRowYs, bottomVisible) + getOrThrow(visibleRowHeights, bottomVisible) * 0.5;
133
-
134
112
  if (mouseY < minMoveY && top > 0) {
135
113
  grid.setState({
136
114
  top: top - 1
@@ -140,10 +118,8 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
140
118
  top: top + 1
141
119
  });
142
120
  }
143
-
144
121
  return true;
145
122
  }
146
-
147
123
  onUp(gridPoint, grid) {
148
124
  if (this.draggingOffset !== undefined) {
149
125
  this.draggingOffset = undefined;
@@ -154,11 +130,8 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
154
130
  });
155
131
  return true;
156
132
  }
157
-
158
133
  return false;
159
134
  }
160
-
161
135
  }
162
-
163
136
  export default GridRowMoveMouseHandler;
164
137
  //# sourceMappingURL=GridRowMoveMouseHandler.js.map