@deephaven/grid 0.7.3-beta.8 → 0.8.2-beta.1

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 (147) hide show
  1. package/dist/CellInputField.d.ts +4 -4
  2. package/dist/CellInputField.d.ts.map +1 -1
  3. package/dist/CellInputField.js +10 -11
  4. package/dist/CellInputField.js.map +1 -1
  5. package/dist/EditableGridModel.d.ts +70 -0
  6. package/dist/EditableGridModel.d.ts.map +1 -0
  7. package/dist/EditableGridModel.js +13 -0
  8. package/dist/EditableGridModel.js.map +1 -0
  9. package/dist/EventHandlerResult.d.ts +17 -0
  10. package/dist/EventHandlerResult.d.ts.map +1 -0
  11. package/dist/EventHandlerResult.js +2 -0
  12. package/dist/EventHandlerResult.js.map +1 -0
  13. package/dist/ExpandableGridModel.d.ts +34 -0
  14. package/dist/ExpandableGridModel.d.ts.map +1 -0
  15. package/dist/ExpandableGridModel.js +7 -0
  16. package/dist/ExpandableGridModel.js.map +1 -0
  17. package/dist/Grid.d.ts +283 -234
  18. package/dist/Grid.d.ts.map +1 -1
  19. package/dist/Grid.js +371 -165
  20. package/dist/Grid.js.map +1 -1
  21. package/dist/GridColorUtils.d.ts +22 -12
  22. package/dist/GridColorUtils.d.ts.map +1 -1
  23. package/dist/GridColorUtils.js +26 -21
  24. package/dist/GridColorUtils.js.map +1 -1
  25. package/dist/GridMetricCalculator.d.ts.map +1 -1
  26. package/dist/GridMetricCalculator.js +8 -41
  27. package/dist/GridMetricCalculator.js.map +1 -1
  28. package/dist/GridModel.d.ts +54 -60
  29. package/dist/GridModel.d.ts.map +1 -1
  30. package/dist/GridModel.js +54 -122
  31. package/dist/GridModel.js.map +1 -1
  32. package/dist/GridMouseHandler.d.ts +23 -24
  33. package/dist/GridMouseHandler.d.ts.map +1 -1
  34. package/dist/GridMouseHandler.js +6 -14
  35. package/dist/GridMouseHandler.js.map +1 -1
  36. package/dist/GridRange.d.ts +2 -2
  37. package/dist/GridRange.d.ts.map +1 -1
  38. package/dist/GridRange.js +1 -9
  39. package/dist/GridRange.js.map +1 -1
  40. package/dist/GridRenderer.d.ts +117 -69
  41. package/dist/GridRenderer.d.ts.map +1 -1
  42. package/dist/GridRenderer.js +183 -168
  43. package/dist/GridRenderer.js.map +1 -1
  44. package/dist/GridUtils.d.ts +4 -4
  45. package/dist/GridUtils.js +4 -4
  46. package/dist/GridUtils.js.map +1 -1
  47. package/dist/KeyHandler.d.ts +10 -7
  48. package/dist/KeyHandler.d.ts.map +1 -1
  49. package/dist/KeyHandler.js +6 -10
  50. package/dist/KeyHandler.js.map +1 -1
  51. package/dist/MockGridData.d.ts +1 -1
  52. package/dist/MockGridData.d.ts.map +1 -1
  53. package/dist/MockGridData.js.map +1 -1
  54. package/dist/MockGridModel.d.ts +39 -12
  55. package/dist/MockGridModel.d.ts.map +1 -1
  56. package/dist/MockGridModel.js +24 -10
  57. package/dist/MockGridModel.js.map +1 -1
  58. package/dist/MockTreeGridModel.d.ts +37 -22
  59. package/dist/MockTreeGridModel.d.ts.map +1 -1
  60. package/dist/MockTreeGridModel.js +32 -20
  61. package/dist/MockTreeGridModel.js.map +1 -1
  62. package/dist/errors/AssertionError.d.ts +5 -0
  63. package/dist/errors/AssertionError.d.ts.map +1 -0
  64. package/dist/errors/AssertionError.js +12 -0
  65. package/dist/errors/AssertionError.js.map +1 -0
  66. package/dist/errors/PasteError.d.ts +1 -1
  67. package/dist/errors/PasteError.d.ts.map +1 -1
  68. package/dist/errors/PasteError.js +1 -2
  69. package/dist/errors/PasteError.js.map +1 -1
  70. package/dist/errors/assertIsDefined.d.ts +3 -0
  71. package/dist/errors/assertIsDefined.d.ts.map +1 -0
  72. package/dist/errors/assertIsDefined.js +8 -0
  73. package/dist/errors/assertIsDefined.js.map +1 -0
  74. package/dist/errors/index.d.ts +2 -0
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/index.js +2 -1
  77. package/dist/errors/index.js.map +1 -1
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
  83. package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
  84. package/dist/key-handlers/EditKeyHandler.js +10 -9
  85. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  86. package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
  87. package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
  88. package/dist/key-handlers/PasteKeyHandler.js +3 -3
  89. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  90. package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
  91. package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
  92. package/dist/key-handlers/SelectionKeyHandler.js +16 -15
  93. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
  95. package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
  96. package/dist/key-handlers/TreeKeyHandler.js +14 -12
  97. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  98. package/dist/memoizeClear.d.ts +13 -3
  99. package/dist/memoizeClear.d.ts.map +1 -1
  100. package/dist/memoizeClear.js +7 -7
  101. package/dist/memoizeClear.js.map +1 -1
  102. package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
  103. package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
  104. package/dist/mouse-handlers/EditMouseHandler.js +3 -2
  105. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  106. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
  107. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
  108. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +11 -12
  109. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  110. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
  111. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
  112. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
  113. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  114. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
  115. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
  116. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +40 -38
  117. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  118. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
  119. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
  120. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +13 -12
  121. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  122. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
  123. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
  124. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
  125. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  126. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
  127. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  128. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
  129. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  130. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
  131. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
  132. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
  133. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  134. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
  135. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
  136. package/dist/mouse-handlers/GridSelectionMouseHandler.js +22 -20
  137. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  138. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
  139. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
  140. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +45 -86
  141. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  142. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
  143. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
  144. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +40 -38
  145. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +3 -3
@@ -2,6 +2,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
2
2
 
3
3
  import GridUtils from "../GridUtils.js";
4
4
  import GridMouseHandler from "../GridMouseHandler.js";
5
+ import { getOrThrow } from "../GridMetricCalculator.js";
5
6
  var SLOPPY_CLICK_DISTANCE = 5;
6
7
 
7
8
  class GridColumnMoveMouseHandler extends GridMouseHandler {
@@ -10,10 +11,6 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
10
11
 
11
12
  _defineProperty(this, "cursor", null);
12
13
 
13
- _defineProperty(this, "draggingOffset", null);
14
-
15
- _defineProperty(this, "startingGridPoint", null);
16
-
17
14
  _defineProperty(this, "sloppyClickThreshold", false);
18
15
  }
19
16
 
@@ -29,6 +26,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
29
26
  var {
30
27
  metrics
31
28
  } = grid;
29
+ if (!metrics) throw new Error('Metrics not set');
32
30
  var {
33
31
  columnHeaderHeight,
34
32
  rowHeaderWidth,
@@ -39,7 +37,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
39
37
  this.cursor = null;
40
38
 
41
39
  if (column != null && y <= columnHeaderHeight && model.isColumnMovable(column)) {
42
- var columnX = visibleColumnXs.get(column);
40
+ var columnX = getOrThrow(visibleColumnXs, column);
43
41
  this.draggingOffset = x - columnX - rowHeaderWidth;
44
42
  grid.setState({
45
43
  draggingColumnOffset: this.draggingOffset
@@ -50,7 +48,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
50
48
  }
51
49
 
52
50
  onDrag(gridPoint, grid) {
53
- if (this.draggingOffset == null) {
51
+ if (this.draggingOffset === undefined || this.startingGridPoint === undefined) {
54
52
  return false;
55
53
  }
56
54
 
@@ -102,6 +100,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
102
100
  var {
103
101
  metrics
104
102
  } = grid;
103
+ if (!metrics) throw new Error('Metrics not set');
105
104
  var {
106
105
  left,
107
106
  lastLeft,
@@ -117,14 +116,14 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
117
116
 
118
117
  if (left < draggingColumn) {
119
118
  var leftColumn = draggingColumn - 1;
120
- minX = visibleColumnXs.get(leftColumn) + visibleColumnWidths.get(leftColumn) * 0.5 + this.draggingOffset + rowHeaderWidth;
119
+ minX = getOrThrow(visibleColumnXs, leftColumn) + getOrThrow(visibleColumnWidths, leftColumn) * 0.5 + this.draggingOffset + rowHeaderWidth;
121
120
  }
122
121
 
123
122
  var maxX = width;
124
123
 
125
124
  if (draggingColumn < right) {
126
125
  var rightColumn = draggingColumn + 1;
127
- maxX = visibleColumnXs.get(rightColumn) + visibleColumnWidths.get(rightColumn) * 0.5 - visibleColumnWidths.get(draggingColumn) + this.draggingOffset + rowHeaderWidth;
126
+ maxX = getOrThrow(visibleColumnXs, rightColumn) + getOrThrow(visibleColumnWidths, rightColumn) * 0.5 - getOrThrow(visibleColumnWidths, draggingColumn) + this.draggingOffset + rowHeaderWidth;
128
127
  }
129
128
 
130
129
  var {
@@ -143,8 +142,8 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
143
142
  movedColumns,
144
143
  draggingColumn
145
144
  });
146
- var minMoveX = rowHeaderWidth + visibleColumnWidths.get(left) * 0.5;
147
- var maxMoveX = rowHeaderWidth + visibleColumnXs.get(rightVisible) + visibleColumnWidths.get(rightVisible) * 0.5;
145
+ var minMoveX = rowHeaderWidth + getOrThrow(visibleColumnWidths, left) * 0.5;
146
+ var maxMoveX = rowHeaderWidth + getOrThrow(visibleColumnXs, rightVisible) + getOrThrow(visibleColumnWidths, rightVisible) * 0.5;
148
147
 
149
148
  if (mouseX < minMoveX && left > 0) {
150
149
  grid.setState({
@@ -159,11 +158,11 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
159
158
  return true;
160
159
  }
161
160
 
162
- onUp(_, grid) {
161
+ onUp(gridPoint, grid) {
163
162
  this.cursor = null;
164
163
 
165
164
  if (this.draggingOffset != null) {
166
- this.draggingOffset = null;
165
+ this.draggingOffset = undefined;
167
166
  grid.setState({
168
167
  draggingColumnOffset: null,
169
168
  draggingColumn: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.js"],"names":["GridUtils","GridMouseHandler","SLOPPY_CLICK_DISTANCE","GridColumnMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","column","metrics","columnHeaderHeight","rowHeaderWidth","visibleColumnXs","startingGridPoint","sloppyClickThreshold","cursor","isColumnMovable","columnX","get","draggingOffset","setState","draggingColumnOffset","onDrag","draggingColumn","state","mouseX","mouseY","isDragging","Math","abs","getGridPointFromXY","left","lastLeft","right","rightVisible","columnCount","visibleColumnWidths","width","minX","leftColumn","maxX","rightColumn","movedColumns","moveItem","minMoveX","maxMoveX","onUp","_"],"mappings":"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","sourcesContent":["import GridUtils from '../GridUtils';\nimport GridMouseHandler from '../GridMouseHandler';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor = null;\n\n draggingOffset = null;\n\n startingGridPoint = null;\n\n sloppyClickThreshold = false;\n\n onDown(gridPoint, grid) {\n const { model } = grid.props;\n const { x, y, column } = gridPoint;\n const { metrics } = grid;\n const { columnHeaderHeight, rowHeaderWidth, visibleColumnXs } = metrics;\n\n this.startingGridPoint = gridPoint;\n this.sloppyClickThreshold = false;\n this.cursor = null;\n\n if (\n column != null &&\n y <= columnHeaderHeight &&\n model.isColumnMovable(column)\n ) {\n const columnX = visibleColumnXs.get(column);\n this.draggingOffset = x - columnX - rowHeaderWidth;\n grid.setState({ draggingColumnOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint, grid) {\n if (this.draggingOffset == null) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingColumn } = grid.state;\n const { mouseX, mouseY, isDragging } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\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 (!this.sloppyClickThreshold &&\n Math.abs(this.startingGridPoint.x - mouseX) >= SLOPPY_CLICK_DISTANCE) ||\n Math.abs(this.startingGridPoint.y - mouseY) >= SLOPPY_CLICK_DISTANCE\n ) {\n this.sloppyClickThreshold = true;\n } else if (!this.sloppyClickThreshold && !isDragging) {\n return false;\n }\n\n if (draggingColumn == null) {\n const { column } = grid.getGridPointFromXY(mouseX, mouseY);\n if (column != null && !model.isColumnMovable(column)) {\n return false;\n }\n\n draggingColumn = column;\n\n grid.setState({ draggingColumn, isDragging: true });\n\n if (draggingColumn == null) {\n return false;\n }\n }\n\n this.cursor = 'move';\n const { metrics } = grid;\n const {\n left,\n lastLeft,\n right,\n rightVisible,\n columnCount,\n rowHeaderWidth,\n visibleColumnWidths,\n visibleColumnXs,\n width,\n } = metrics;\n let minX = rowHeaderWidth;\n if (left < draggingColumn) {\n const leftColumn = draggingColumn - 1;\n minX =\n visibleColumnXs.get(leftColumn) +\n visibleColumnWidths.get(leftColumn) * 0.5 +\n this.draggingOffset +\n rowHeaderWidth;\n }\n\n let maxX = width;\n if (draggingColumn < right) {\n const rightColumn = draggingColumn + 1;\n maxX =\n visibleColumnXs.get(rightColumn) +\n visibleColumnWidths.get(rightColumn) * 0.5 -\n visibleColumnWidths.get(draggingColumn) +\n this.draggingOffset +\n rowHeaderWidth;\n }\n\n let { movedColumns } = grid.state;\n if (\n mouseX < minX &&\n draggingColumn > 0 &&\n model.isColumnMovable(draggingColumn - 1)\n ) {\n movedColumns = GridUtils.moveItem(\n draggingColumn,\n draggingColumn - 1,\n movedColumns\n );\n draggingColumn -= 1;\n } else if (\n maxX < mouseX &&\n draggingColumn < columnCount - 1 &&\n model.isColumnMovable(draggingColumn + 1)\n ) {\n movedColumns = GridUtils.moveItem(\n draggingColumn,\n draggingColumn + 1,\n movedColumns\n );\n draggingColumn += 1;\n }\n grid.setState({ movedColumns, draggingColumn });\n\n const minMoveX = rowHeaderWidth + visibleColumnWidths.get(left) * 0.5;\n const maxMoveX =\n rowHeaderWidth +\n visibleColumnXs.get(rightVisible) +\n visibleColumnWidths.get(rightVisible) * 0.5;\n if (mouseX < minMoveX && left > 0) {\n grid.setState({ left: left - 1 });\n } else if (mouseX > maxMoveX && left < lastLeft) {\n grid.setState({ left: left + 1 });\n }\n\n return true;\n }\n\n onUp(_, grid) {\n this.cursor = null;\n\n if (this.draggingOffset != null) {\n this.draggingOffset = null;\n grid.setState({\n draggingColumnOffset: null,\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"file":"GridColumnMoveMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"names":["GridUtils","GridMouseHandler","getOrThrow","SLOPPY_CLICK_DISTANCE","GridColumnMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","column","metrics","Error","columnHeaderHeight","rowHeaderWidth","visibleColumnXs","startingGridPoint","sloppyClickThreshold","cursor","isColumnMovable","columnX","draggingOffset","setState","draggingColumnOffset","onDrag","undefined","draggingColumn","state","mouseX","mouseY","isDragging","Math","abs","getGridPointFromXY","left","lastLeft","right","rightVisible","columnCount","visibleColumnWidths","width","minX","leftColumn","maxX","rightColumn","movedColumns","moveItem","minMoveX","maxMoveX","onUp"],"mappings":"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","sourcesContent":["import Grid from '../Grid';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport { EventHandlerResult } from '../EventHandlerResult';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor: string | null = null;\n\n private draggingOffset?: number;\n\n private startingGridPoint?: GridPoint;\n\n private sloppyClickThreshold = false;\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, y, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const { columnHeaderHeight, rowHeaderWidth, visibleColumnXs } = metrics;\n\n this.startingGridPoint = gridPoint;\n this.sloppyClickThreshold = false;\n this.cursor = null;\n\n if (\n column != null &&\n y <= columnHeaderHeight &&\n model.isColumnMovable(column)\n ) {\n const columnX = getOrThrow(visibleColumnXs, column);\n this.draggingOffset = x - columnX - rowHeaderWidth;\n grid.setState({ draggingColumnOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (\n this.draggingOffset === undefined ||\n this.startingGridPoint === undefined\n ) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingColumn } = grid.state;\n const { mouseX, mouseY, isDragging } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\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 (!this.sloppyClickThreshold &&\n Math.abs(this.startingGridPoint.x - mouseX) >= SLOPPY_CLICK_DISTANCE) ||\n Math.abs(this.startingGridPoint.y - mouseY) >= SLOPPY_CLICK_DISTANCE\n ) {\n this.sloppyClickThreshold = true;\n } else if (!this.sloppyClickThreshold && !isDragging) {\n return false;\n }\n\n if (draggingColumn == null) {\n const { column } = grid.getGridPointFromXY(mouseX, mouseY);\n if (column != null && !model.isColumnMovable(column)) {\n return false;\n }\n\n draggingColumn = column;\n\n grid.setState({ draggingColumn, isDragging: true });\n\n if (draggingColumn == null) {\n return false;\n }\n }\n\n this.cursor = 'move';\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const {\n left,\n lastLeft,\n right,\n rightVisible,\n columnCount,\n rowHeaderWidth,\n visibleColumnWidths,\n visibleColumnXs,\n width,\n } = metrics;\n let minX = rowHeaderWidth;\n if (left < draggingColumn) {\n const leftColumn = draggingColumn - 1;\n minX =\n getOrThrow(visibleColumnXs, leftColumn) +\n getOrThrow(visibleColumnWidths, leftColumn) * 0.5 +\n this.draggingOffset +\n rowHeaderWidth;\n }\n\n let maxX = width;\n if (draggingColumn < right) {\n const rightColumn = draggingColumn + 1;\n maxX =\n getOrThrow(visibleColumnXs, rightColumn) +\n getOrThrow(visibleColumnWidths, rightColumn) * 0.5 -\n getOrThrow(visibleColumnWidths, draggingColumn) +\n this.draggingOffset +\n rowHeaderWidth;\n }\n\n let { movedColumns } = grid.state;\n if (\n mouseX < minX &&\n draggingColumn > 0 &&\n model.isColumnMovable(draggingColumn - 1)\n ) {\n movedColumns = GridUtils.moveItem(\n draggingColumn,\n draggingColumn - 1,\n movedColumns\n );\n draggingColumn -= 1;\n } else if (\n maxX < mouseX &&\n draggingColumn < columnCount - 1 &&\n model.isColumnMovable(draggingColumn + 1)\n ) {\n movedColumns = GridUtils.moveItem(\n draggingColumn,\n draggingColumn + 1,\n movedColumns\n );\n draggingColumn += 1;\n }\n grid.setState({ movedColumns, draggingColumn });\n\n const minMoveX =\n rowHeaderWidth + getOrThrow(visibleColumnWidths, left) * 0.5;\n const maxMoveX =\n rowHeaderWidth +\n getOrThrow(visibleColumnXs, rightVisible) +\n getOrThrow(visibleColumnWidths, rightVisible) * 0.5;\n if (mouseX < minMoveX && left > 0) {\n grid.setState({ left: left - 1 });\n } else if (mouseX > maxMoveX && left < lastLeft) {\n grid.setState({ left: left + 1 });\n }\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n this.cursor = null;\n\n if (this.draggingOffset != null) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingColumnOffset: null,\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"file":"GridColumnMoveMouseHandler.js"}
@@ -1,6 +1,27 @@
1
- export default GridColumnSeparatorMouseHandler;
1
+ import Grid from '../Grid';
2
+ import GridMetricCalculator from '../GridMetricCalculator';
3
+ import { ModelIndex, VisibleIndex } from '../GridMetrics';
4
+ import GridUtils, { GridPoint } from '../GridUtils';
5
+ import GridSeparatorMouseHandler from './GridSeparatorMouseHandler';
2
6
  declare class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
3
- static getColumnSeparatorIndex(gridPoint: any, grid: any, checkAllowResize?: boolean): number | null;
7
+ static getColumnSeparatorIndex(gridPoint: GridPoint, grid: Grid, checkAllowResize?: boolean): VisibleIndex | null;
8
+ hiddenCursor: string;
9
+ defaultCursor: string;
10
+ pointProperty: "x";
11
+ userSizesProperty: "userColumnWidths";
12
+ visibleOffsetProperty: "visibleColumnXs";
13
+ visibleSizesProperty: "visibleColumnWidths";
14
+ marginProperty: "rowHeaderWidth";
15
+ calculatedSizesProperty: "calculatedColumnWidths";
16
+ modelIndexesProperty: "modelColumns";
17
+ firstIndexProperty: "firstColumn";
18
+ treePaddingProperty: "treePaddingX";
19
+ getHiddenItems: typeof GridUtils.getHiddenColumns;
20
+ getNextShownItem: typeof GridUtils.getNextShownColumn;
21
+ setSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex, size: number): void;
22
+ resetSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex): void;
23
+ updateSeparator(grid: Grid, separatorIndex: VisibleIndex | null): void;
24
+ getSeparatorIndex: typeof GridColumnSeparatorMouseHandler.getColumnSeparatorIndex;
4
25
  }
5
- import GridSeparatorMouseHandler from "./GridSeparatorMouseHandler";
26
+ export default GridColumnSeparatorMouseHandler;
6
27
  //# sourceMappingURL=GridColumnSeparatorMouseHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridColumnSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.js"],"names":[],"mappings":";AAIA;IACE,qGAUC;CA4CF"}
1
+ {"version":3,"file":"GridColumnSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,cAAM,+BAAgC,SAAQ,yBAAyB;IACrE,MAAM,CAAC,uBAAuB,CAC5B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,gBAAgB,UAAO,GACtB,YAAY,GAAG,IAAI;IAatB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,qBAA+B;IAEhD,qBAAqB,oBAA8B;IAEnD,oBAAoB,wBAAkC;IAEtD,cAAc,mBAA6B;IAE3C,uBAAuB,2BAAqC;IAE5D,oBAAoB,iBAA2B;IAE/C,kBAAkB,gBAA0B;IAE5C,mBAAmB,iBAA2B;IAE9C,cAAc,oCAA8B;IAE5C,gBAAgB,sCAAgC;IAEhD,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAOtE,iBAAiB,iEAA2D;CAC7E;AAED,eAAe,+BAA+B,CAAC"}
@@ -52,6 +52,7 @@ class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
52
52
  var {
53
53
  metrics
54
54
  } = grid;
55
+ if (!metrics) throw new Error('metrics not set');
55
56
  return GridUtils.getColumnSeparatorIndex(x, y, metrics, theme);
56
57
  }
57
58
 
@@ -66,7 +67,7 @@ class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
66
67
  updateSeparator(grid, separatorIndex) {
67
68
  grid.setState({
68
69
  draggingColumnSeparator: separatorIndex,
69
- isDragging: !!separatorIndex
70
+ isDragging: separatorIndex !== null
70
71
  });
71
72
  }
72
73
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.js"],"names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparatorIndex","gridPoint","grid","checkAllowResize","theme","getTheme","allowColumnResize","x","y","metrics","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","separatorIndex","setState","draggingColumnSeparator","isDragging"],"mappings":";;AAAA;OACOA,S;OACAC,yB;;AAEP,MAAMC,+BAAN,SAA8CD,yBAA9C,CAAwE;AAAA;AAAA;;AAAA,0CAavD,UAbuD;;AAAA,2CAetD,YAfsD;;AAAA,2CAiBtD,GAjBsD;;AAAA,+CAmBlD,kBAnBkD;;AAAA,mDAqB9C,iBArB8C;;AAAA,kDAuB/C,qBAvB+C;;AAAA,4CAyBrD,gBAzBqD;;AAAA,qDA2B5C,wBA3B4C;;AAAA,kDA6B/C,cA7B+C;;AAAA,gDA+BjD,aA/BiD;;AAAA,iDAiChD,cAjCgD;;AAAA,4CAmCrDD,SAAS,CAACG,gBAnC2C;;AAAA,8CAqCnDH,SAAS,CAACI,kBArCyC;;AAAA,+CAsDlDF,+BAA+B,CAACG,uBAtDkB;AAAA;;AACxC,SAAvBA,uBAAuB,CAACC,SAAD,EAAYC,IAAZ,EAA2C;AAAA,QAAzBC,gBAAyB,uEAAN,IAAM;AACvE,QAAMC,KAAK,GAAGF,IAAI,CAACG,QAAL,EAAd;;AACA,QAAIF,gBAAgB,IAAI,CAACC,KAAK,CAACE,iBAA/B,EAAkD;AAChD,aAAO,IAAP;AACD;;AAED,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWP,SAAjB;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAcP,IAApB;AAEA,WAAOP,SAAS,CAACK,uBAAV,CAAkCO,CAAlC,EAAqCC,CAArC,EAAwCC,OAAxC,EAAiDL,KAAjD,CAAP;AACD;;AA4BDM,EAAAA,OAAO,CAACC,gBAAD,EAAmBC,UAAnB,EAA+BC,IAA/B,EAAqC;AAC1CF,IAAAA,gBAAgB,CAACG,cAAjB,CAAgCF,UAAhC,EAA4CC,IAA5C;AACD;;AAEDE,EAAAA,SAAS,CAACJ,gBAAD,EAAmBC,UAAnB,EAA+B;AACtCD,IAAAA,gBAAgB,CAACK,gBAAjB,CAAkCJ,UAAlC;AACD;;AAEDK,EAAAA,eAAe,CAACf,IAAD,EAAOgB,cAAP,EAAuB;AACpChB,IAAAA,IAAI,CAACiB,QAAL,CAAc;AACZC,MAAAA,uBAAuB,EAAEF,cADb;AAEZG,MAAAA,UAAU,EAAE,CAAC,CAACH;AAFF,KAAd;AAID;;AApDqE;;AAyDxE,eAAerB,+BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport GridUtils from '../GridUtils';\nimport GridSeparatorMouseHandler from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparatorIndex(gridPoint, grid, checkAllowResize = true) {\n const theme = grid.getTheme();\n if (checkAllowResize && !theme.allowColumnResize) {\n return null;\n }\n\n const { x, y } = gridPoint;\n const { metrics } = grid;\n\n return GridUtils.getColumnSeparatorIndex(x, y, metrics, theme);\n }\n\n hiddenCursor = 'e-resize';\n\n defaultCursor = 'col-resize';\n\n pointProperty = 'x';\n\n userSizesProperty = 'userColumnWidths';\n\n visibleOffsetProperty = 'visibleColumnXs';\n\n visibleSizesProperty = 'visibleColumnWidths';\n\n marginProperty = 'rowHeaderWidth';\n\n calculatedSizesProperty = 'calculatedColumnWidths';\n\n modelIndexesProperty = 'modelColumns';\n\n firstIndexProperty = 'firstColumn';\n\n treePaddingProperty = 'treePaddingX';\n\n getHiddenItems = GridUtils.getHiddenColumns;\n\n getNextShownItem = GridUtils.getNextShownColumn;\n\n setSize(metricCalculator, modelIndex, size) {\n metricCalculator.setColumnWidth(modelIndex, size);\n }\n\n resetSize(metricCalculator, modelIndex) {\n metricCalculator.resetColumnWidth(modelIndex);\n }\n\n updateSeparator(grid, separatorIndex) {\n grid.setState({\n draggingColumnSeparator: separatorIndex,\n isDragging: !!separatorIndex,\n });\n }\n\n getSeparatorIndex = GridColumnSeparatorMouseHandler.getColumnSeparatorIndex;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"file":"GridColumnSeparatorMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparatorIndex","gridPoint","grid","checkAllowResize","theme","getTheme","allowColumnResize","x","y","metrics","Error","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","separatorIndex","setState","draggingColumnSeparator","isDragging"],"mappings":";;AAAA;OAIOA,S;OACAC,yB;;AAEP,MAAMC,+BAAN,SAA8CD,yBAA9C,CAAwE;AAAA;AAAA;;AAAA,0CAkBvD,UAlBuD;;AAAA,2CAoBtD,YApBsD;;AAAA,2CAsBtD,GAtBsD;;AAAA,+CAwBlD,kBAxBkD;;AAAA,mDA0B9C,iBA1B8C;;AAAA,kDA4B/C,qBA5B+C;;AAAA,4CA8BrD,gBA9BqD;;AAAA,qDAgC5C,wBAhC4C;;AAAA,kDAkC/C,cAlC+C;;AAAA,gDAoCjD,aApCiD;;AAAA,iDAsChD,cAtCgD;;AAAA,4CAwCrDD,SAAS,CAACG,gBAxC2C;;AAAA,8CA0CnDH,SAAS,CAACI,kBA1CyC;;AAAA,+CAkElDF,+BAA+B,CAACG,uBAlEkB;AAAA;;AACxC,SAAvBA,uBAAuB,CAC5BC,SAD4B,EAE5BC,IAF4B,EAIP;AAAA,QADrBC,gBACqB,uEADF,IACE;AACrB,QAAMC,KAAK,GAAGF,IAAI,CAACG,QAAL,EAAd;;AACA,QAAIF,gBAAgB,IAAI,CAACC,KAAK,CAACE,iBAA/B,EAAkD;AAChD,aAAO,IAAP;AACD;;AAED,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWP,SAAjB;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAcP,IAApB;AACA,QAAI,CAACO,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,WAAOf,SAAS,CAACK,uBAAV,CAAkCO,CAAlC,EAAqCC,CAArC,EAAwCC,OAAxC,EAAiDL,KAAjD,CAAP;AACD;;AA4BDO,EAAAA,OAAO,CACLC,gBADK,EAELC,UAFK,EAGLC,IAHK,EAIC;AACNF,IAAAA,gBAAgB,CAACG,cAAjB,CAAgCF,UAAhC,EAA4CC,IAA5C;AACD;;AAEDE,EAAAA,SAAS,CACPJ,gBADO,EAEPC,UAFO,EAGD;AACND,IAAAA,gBAAgB,CAACK,gBAAjB,CAAkCJ,UAAlC;AACD;;AAEDK,EAAAA,eAAe,CAAChB,IAAD,EAAaiB,cAAb,EAAwD;AACrEjB,IAAAA,IAAI,CAACkB,QAAL,CAAc;AACZC,MAAAA,uBAAuB,EAAEF,cADb;AAEZG,MAAAA,UAAU,EAAEH,cAAc,KAAK;AAFnB,KAAd;AAID;;AAhEqE;;AAqExE,eAAetB,+BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparatorIndex(\n gridPoint: GridPoint,\n grid: Grid,\n checkAllowResize = true\n ): VisibleIndex | null {\n const theme = grid.getTheme();\n if (checkAllowResize && !theme.allowColumnResize) {\n return null;\n }\n\n const { x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n return GridUtils.getColumnSeparatorIndex(x, y, metrics, theme);\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, separatorIndex: VisibleIndex | null): void {\n grid.setState({\n draggingColumnSeparator: separatorIndex,\n isDragging: separatorIndex !== null,\n });\n }\n\n getSeparatorIndex = GridColumnSeparatorMouseHandler.getColumnSeparatorIndex;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"file":"GridColumnSeparatorMouseHandler.js"}
@@ -1,11 +1,21 @@
1
- export default GridHorizontalScrollBarMouseHandler;
1
+ import { EventHandlerResult } from '../EventHandlerResult';
2
+ import Grid from '../Grid';
3
+ import { VisibleIndex } from '../GridMetrics';
4
+ import GridMouseHandler from '../GridMouseHandler';
5
+ import { GridPoint } from '../GridUtils';
2
6
  declare class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
3
- static getLeftWithOffsetFromRawLeft(grid: any, rawLeft: any): {
4
- left: number;
7
+ static getLeftWithOffsetFromRawLeft(grid: Grid, rawLeft: number): {
8
+ left: VisibleIndex;
5
9
  leftOffset: number;
6
10
  };
7
- dragOffset: any;
8
- isInScrollBar(gridPoint: any, grid: any): boolean;
11
+ private dragOffset?;
12
+ cursor: string;
13
+ isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean;
14
+ onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
15
+ onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
16
+ onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
17
+ onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
18
+ onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
9
19
  }
10
- import GridMouseHandler from "../GridMouseHandler";
20
+ export default GridHorizontalScrollBarMouseHandler;
11
21
  //# sourceMappingURL=GridHorizontalScrollBarMouseHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridHorizontalScrollBarMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.js"],"names":[],"mappings":";AAGA;IA0HE;;;MAoBC;IA7ID,gBAAkB;IAKlB,kDAgBC;CAyHF"}
1
+ {"version":3,"file":"GridHorizontalScrollBarMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,cAAM,mCAAoC,SAAQ,gBAAgB;IAChE,MAAM,CAAC,4BAA4B,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAuB7C,OAAO,CAAC,UAAU,CAAC,CAAS;IAG5B,MAAM,SAAa;IAEnB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAoBxD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA8C5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAoC5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAY1D,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAG9D;AAED,eAAe,mCAAmC,CAAC"}
@@ -1,17 +1,49 @@
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
2
 
3
3
  import GridMouseHandler from "../GridMouseHandler.js";
4
- /* eslint class-methods-use-this: "off" */
5
4
 
5
+ /* eslint class-methods-use-this: "off" */
6
6
  class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
 
10
- _defineProperty(this, "dragOffset", null);
11
-
12
10
  _defineProperty(this, "cursor", 'default');
13
11
  }
14
12
 
13
+ static getLeftWithOffsetFromRawLeft(grid, rawLeft) {
14
+ var theme = grid.getTheme();
15
+ var {
16
+ metrics,
17
+ metricCalculator
18
+ } = grid;
19
+ if (!metrics) throw new Error('metrics not set');
20
+
21
+ if (theme.scrollSnapToColumn) {
22
+ var _left = Math.round(rawLeft);
23
+
24
+ var _leftOffset = 0;
25
+ return {
26
+ left: _left,
27
+ leftOffset: _leftOffset
28
+ };
29
+ }
30
+
31
+ var left = Math.floor(rawLeft);
32
+ var leftOffsetPercent = rawLeft - left;
33
+ var columnWidth = metrics.visibleColumnWidths.get(left);
34
+
35
+ if (columnWidth == null) {
36
+ var metricState = grid.getMetricState();
37
+ columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);
38
+ }
39
+
40
+ var leftOffset = columnWidth * leftOffsetPercent;
41
+ return {
42
+ left,
43
+ leftOffset
44
+ };
45
+ }
46
+
15
47
  isInScrollBar(gridPoint, grid) {
16
48
  var theme = grid.getTheme();
17
49
  var {
@@ -21,6 +53,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
21
53
  var {
22
54
  metrics
23
55
  } = grid;
56
+ if (!metrics) throw new Error('metrics not set');
24
57
  var {
25
58
  x,
26
59
  y
@@ -40,6 +73,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
40
73
  var {
41
74
  metrics
42
75
  } = grid;
76
+ if (!metrics) throw new Error('metrics not set');
43
77
  var {
44
78
  x
45
79
  } = gridPoint;
@@ -89,6 +123,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
89
123
  var {
90
124
  metrics
91
125
  } = grid;
126
+ if (!metrics) throw new Error('metrics not set');
92
127
  var {
93
128
  barWidth,
94
129
  handleWidth,
@@ -118,8 +153,8 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
118
153
  }
119
154
 
120
155
  onUp(gridPoint, grid) {
121
- if (this.dragOffset != null) {
122
- this.dragOffset = null;
156
+ if (this.dragOffset !== undefined) {
157
+ this.dragOffset = undefined;
123
158
  grid.setState({
124
159
  isDraggingHorizontalScrollBar: false,
125
160
  isDragging: false
@@ -133,39 +168,6 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
133
168
  return this.isInScrollBar(gridPoint, grid);
134
169
  }
135
170
 
136
- static getLeftWithOffsetFromRawLeft(grid, rawLeft) {
137
- var theme = grid.getTheme();
138
- var {
139
- metrics,
140
- metricCalculator
141
- } = grid;
142
-
143
- if (theme.scrollSnapToColumn) {
144
- var _left = Math.round(rawLeft);
145
-
146
- var _leftOffset = 0;
147
- return {
148
- left: _left,
149
- leftOffset: _leftOffset
150
- };
151
- }
152
-
153
- var left = Math.floor(rawLeft);
154
- var leftOffsetPercent = rawLeft - left;
155
- var columnWidth = metrics.visibleColumnWidths.get(left);
156
-
157
- if (columnWidth == null) {
158
- var metricState = grid.getMetricState();
159
- columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);
160
- }
161
-
162
- var leftOffset = columnWidth * leftOffsetPercent;
163
- return {
164
- left,
165
- leftOffset
166
- };
167
- }
168
-
169
171
  }
170
172
 
171
173
  export default GridHorizontalScrollBarMouseHandler;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.js"],"names":["GridMouseHandler","GridHorizontalScrollBarMouseHandler","isInScrollBar","gridPoint","grid","theme","getTheme","scrollBarSize","scrollBarHoverSize","metrics","x","y","lastLeft","lastTop","rowHeaderWidth","width","height","scrollBarWidth","onDown","barWidth","handleWidth","scrollX","mouseBarX","dragOffset","setState","isDraggingHorizontalScrollBar","rawLeft","Math","min","max","left","newLeft","leftOffset","newLeftOffset","getLeftWithOffsetFromRawLeft","setViewState","isDragging","onDrag","onMove","onUp","onClick","metricCalculator","scrollSnapToColumn","round","floor","leftOffsetPercent","columnWidth","visibleColumnWidths","get","metricState","getMetricState","getVisibleColumnWidth"],"mappings":"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","sourcesContent":["import GridMouseHandler from '../GridMouseHandler';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridHorizontalScrollBarMouseHandler extends GridMouseHandler {\n dragOffset = null;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint, grid) {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n const { x, y } = gridPoint;\n const { lastLeft, lastTop, rowHeaderWidth, width, height } = metrics;\n const scrollBarWidth = lastTop > 0 ? width - scrollBarSize : width;\n return (\n scrollBarSize > 0 &&\n lastLeft > 0 &&\n y >= height - scrollBarHoverSize &&\n y < height &&\n x > rowHeaderWidth &&\n x < scrollBarWidth\n );\n }\n\n onDown(gridPoint, grid) {\n const { metrics } = grid;\n const { x } = gridPoint;\n const {\n barWidth,\n handleWidth,\n lastLeft,\n rowHeaderWidth,\n scrollX,\n } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarX = x - rowHeaderWidth;\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 const rawLeft = Math.min(\n Math.max(0, (mouseBarX / (barWidth - handleWidth)) * lastLeft),\n lastLeft\n );\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\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, grid) {\n if (this.dragOffset != null) {\n const { x } = gridPoint;\n const { metrics } = grid;\n const { barWidth, handleWidth, lastLeft, rowHeaderWidth } = metrics;\n const mouseBarX = x - rowHeaderWidth;\n\n const rawLeft = Math.min(\n Math.max(\n 0,\n ((mouseBarX - this.dragOffset) / (barWidth - handleWidth)) * lastLeft\n ),\n lastLeft\n );\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\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, grid) {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onUp(gridPoint, grid) {\n if (this.dragOffset != null) {\n this.dragOffset = null;\n grid.setState({\n isDraggingHorizontalScrollBar: false,\n isDragging: false,\n });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint, grid) {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n static getLeftWithOffsetFromRawLeft(grid, rawLeft) {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\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\nexport default GridHorizontalScrollBarMouseHandler;\n"],"file":"GridHorizontalScrollBarMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mouse-handlers/GridHorizontalScrollBarMouseHandler.ts"],"names":["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","lastLeft","lastTop","rowHeaderWidth","width","height","scrollBarWidth","onDown","barWidth","handleWidth","scrollX","mouseBarX","dragOffset","setState","isDraggingHorizontalScrollBar","min","max","newLeft","newLeftOffset","setViewState","isDragging","onDrag","onMove","onUp","undefined","onClick"],"mappings":"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","sourcesContent":["import { 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 { lastLeft, lastTop, rowHeaderWidth, width, height } = metrics;\n const scrollBarWidth = lastTop > 0 ? width - scrollBarSize : width;\n return (\n scrollBarSize > 0 &&\n lastLeft > 0 &&\n y >= height - scrollBarHoverSize &&\n y < height &&\n x > rowHeaderWidth &&\n x < scrollBarWidth\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 {\n barWidth,\n handleWidth,\n lastLeft,\n rowHeaderWidth,\n scrollX,\n } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarX = x - rowHeaderWidth;\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 const rawLeft = Math.min(\n Math.max(0, (mouseBarX / (barWidth - handleWidth)) * lastLeft),\n lastLeft\n );\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\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 { x } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { barWidth, handleWidth, lastLeft, rowHeaderWidth } = metrics;\n const mouseBarX = x - rowHeaderWidth;\n\n const rawLeft = Math.min(\n Math.max(\n 0,\n ((mouseBarX - this.dragOffset) / (barWidth - handleWidth)) * lastLeft\n ),\n lastLeft\n );\n\n const {\n left: newLeft,\n leftOffset: newLeftOffset,\n } = GridHorizontalScrollBarMouseHandler.getLeftWithOffsetFromRawLeft(\n grid,\n rawLeft\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"],"file":"GridHorizontalScrollBarMouseHandler.js"}
@@ -1,6 +1,13 @@
1
- export default GridRowMoveMouseHandler;
1
+ import { EventHandlerResult } from '../EventHandlerResult';
2
+ import Grid from '../Grid';
3
+ import GridMouseHandler from '../GridMouseHandler';
4
+ import { GridPoint } from '../GridUtils';
2
5
  declare class GridRowMoveMouseHandler extends GridMouseHandler {
3
- draggingOffset: any;
6
+ cursor: string;
7
+ private draggingOffset?;
8
+ onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
9
+ onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
10
+ onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
4
11
  }
5
- import GridMouseHandler from "../GridMouseHandler";
12
+ export default GridRowMoveMouseHandler;
6
13
  //# sourceMappingURL=GridRowMoveMouseHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.js"],"names":[],"mappings":";AAGA;IAGE,oBAAsB;CAsHvB"}
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,15 +1,14 @@
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
2
 
3
- import GridUtils from "../GridUtils.js";
3
+ import { getOrThrow } from "../GridMetricCalculator.js";
4
4
  import GridMouseHandler from "../GridMouseHandler.js";
5
+ import GridUtils from "../GridUtils.js";
5
6
 
6
7
  class GridRowMoveMouseHandler extends GridMouseHandler {
7
8
  constructor() {
8
9
  super(...arguments);
9
10
 
10
11
  _defineProperty(this, "cursor", 'move');
11
-
12
- _defineProperty(this, "draggingOffset", null);
13
12
  }
14
13
 
15
14
  onDown(gridPoint, grid) {
@@ -24,14 +23,15 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
24
23
  var {
25
24
  metrics
26
25
  } = grid;
26
+ if (!metrics) throw new Error('metrics not set');
27
27
  var {
28
28
  columnHeaderHeight,
29
29
  rowHeaderWidth,
30
30
  visibleRowYs
31
31
  } = metrics;
32
32
 
33
- if (x <= rowHeaderWidth && model.isRowMovable(row)) {
34
- var rowY = visibleRowYs.get(row);
33
+ if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {
34
+ var rowY = getOrThrow(visibleRowYs, row);
35
35
  this.draggingOffset = y - rowY - columnHeaderHeight;
36
36
  grid.setState({
37
37
  draggingRowOffset: this.draggingOffset
@@ -84,6 +84,7 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
84
84
  var {
85
85
  metrics
86
86
  } = grid;
87
+ if (!metrics) throw new Error('metrics not set');
87
88
  var {
88
89
  top,
89
90
  lastTop,
@@ -99,14 +100,14 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
99
100
 
100
101
  if (top < draggingRow) {
101
102
  var topRow = draggingRow - 1;
102
- minY = visibleRowYs.get(topRow) + visibleRowHeights.get(topRow) * 0.5 + columnHeaderHeight;
103
+ minY = getOrThrow(visibleRowYs, topRow) + getOrThrow(visibleRowHeights, topRow) * 0.5 + columnHeaderHeight;
103
104
  }
104
105
 
105
106
  var maxY = height;
106
107
 
107
108
  if (draggingRow < bottom) {
108
109
  var bottomRow = draggingRow + 1;
109
- maxY = visibleRowYs.get(bottomRow) + visibleRowHeights.get(bottomRow) * 0.5 + columnHeaderHeight;
110
+ maxY = getOrThrow(visibleRowYs, bottomRow) + getOrThrow(visibleRowHeights, bottomRow) * 0.5 + columnHeaderHeight;
110
111
  }
111
112
 
112
113
  var {
@@ -125,8 +126,8 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
125
126
  movedRows,
126
127
  draggingRow
127
128
  });
128
- var minMoveY = columnHeaderHeight + visibleRowHeights.get(top) * 0.5;
129
- var maxMoveY = columnHeaderHeight + visibleRowYs.get(bottomVisible) + visibleRowHeights.get(bottomVisible) * 0.5;
129
+ var minMoveY = columnHeaderHeight + getOrThrow(visibleRowHeights, top) * 0.5;
130
+ var maxMoveY = columnHeaderHeight + getOrThrow(visibleRowYs, bottomVisible) + getOrThrow(visibleRowHeights, bottomVisible) * 0.5;
130
131
 
131
132
  if (mouseY < minMoveY && top > 0) {
132
133
  grid.setState({
@@ -141,9 +142,9 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
141
142
  return true;
142
143
  }
143
144
 
144
- onUp(_, grid) {
145
- if (this.draggingOffset != null) {
146
- this.draggingOffset = null;
145
+ onUp(gridPoint, grid) {
146
+ if (this.draggingOffset !== undefined) {
147
+ this.draggingOffset = undefined;
147
148
  grid.setState({
148
149
  draggingRowOffset: null,
149
150
  draggingRow: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.js"],"names":["GridUtils","GridMouseHandler","GridRowMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","row","metrics","columnHeaderHeight","rowHeaderWidth","visibleRowYs","isRowMovable","rowY","get","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","_"],"mappings":"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","sourcesContent":["import GridUtils from '../GridUtils';\nimport GridMouseHandler from '../GridMouseHandler';\n\nclass GridRowMoveMouseHandler extends GridMouseHandler {\n cursor = 'move';\n\n draggingOffset = null;\n\n onDown(gridPoint, grid) {\n const { model } = grid.props;\n const { x, y, row } = gridPoint;\n const { metrics } = grid;\n const { columnHeaderHeight, rowHeaderWidth, visibleRowYs } = metrics;\n\n if (x <= rowHeaderWidth && model.isRowMovable(row)) {\n const rowY = visibleRowYs.get(row);\n this.draggingOffset = y - rowY - columnHeaderHeight;\n grid.setState({ draggingRowOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint, grid) {\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 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 visibleRowYs.get(topRow) +\n visibleRowHeights.get(topRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let maxY = height;\n if (draggingRow < bottom) {\n const bottomRow = draggingRow + 1;\n maxY =\n visibleRowYs.get(bottomRow) +\n visibleRowHeights.get(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 + visibleRowHeights.get(top) * 0.5;\n const maxMoveY =\n columnHeaderHeight +\n visibleRowYs.get(bottomVisible) +\n visibleRowHeights.get(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(_, grid) {\n if (this.draggingOffset != null) {\n this.draggingOffset = null;\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"],"file":"GridRowMoveMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"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"],"mappings":"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","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"],"file":"GridRowMoveMouseHandler.js"}
@@ -1,6 +1,27 @@
1
- export default GridRowSeparatorMouseHandler;
1
+ import Grid from '../Grid';
2
+ import GridMetricCalculator from '../GridMetricCalculator';
3
+ import { ModelIndex, VisibleIndex } from '../GridMetrics';
4
+ import GridUtils, { GridPoint } from '../GridUtils';
5
+ import GridSeparatorMouseHandler from './GridSeparatorMouseHandler';
2
6
  declare class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
3
- static getRowSeparatorIndex(gridPoint: any, grid: any, checkAllowResize?: boolean): number | null;
7
+ static getRowSeparatorIndex(gridPoint: GridPoint, grid: Grid, checkAllowResize?: boolean): VisibleIndex | null;
8
+ hiddenCursor: string;
9
+ defaultCursor: string;
10
+ pointProperty: "y";
11
+ userSizesProperty: "userRowHeights";
12
+ visibleOffsetProperty: "visibleRowYs";
13
+ visibleSizesProperty: "visibleRowHeights";
14
+ marginProperty: "columnHeaderHeight";
15
+ calculatedSizesProperty: "calculatedRowHeights";
16
+ modelIndexesProperty: "modelRows";
17
+ firstIndexProperty: "firstRow";
18
+ treePaddingProperty: "treePaddingY";
19
+ getHiddenItems: typeof GridUtils.getHiddenRows;
20
+ getNextShownItem: typeof GridUtils.getNextShownRow;
21
+ setSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex, size: number): void;
22
+ resetSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex): void;
23
+ updateSeparator(grid: Grid, separatorIndex: VisibleIndex | null): void;
24
+ getSeparatorIndex: typeof GridRowSeparatorMouseHandler.getRowSeparatorIndex;
4
25
  }
5
- import GridSeparatorMouseHandler from "./GridSeparatorMouseHandler";
26
+ export default GridRowSeparatorMouseHandler;
6
27
  //# sourceMappingURL=GridRowSeparatorMouseHandler.d.ts.map