@deephaven/grid 0.7.3-beta.8 → 0.8.0

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 +397 -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 -4
  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 +8 -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 -1
  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 -5
  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 +43 -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 +38 -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 +13 -10
  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 +41 -37
  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 +14 -11
  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 +26 -16
  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 +57 -74
  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 +41 -37
  145. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"GridColumnMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.js"],"names":[],"mappings":";AAKA;IAGE,oBAAsB;IAEtB,uBAAyB;IAEzB,8BAA6B;CAwJ9B"}
1
+ {"version":3,"file":"GridColumnMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,cAAM,0BAA2B,SAAQ,gBAAgB;IACvD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,OAAO,CAAC,iBAAiB,CAAC,CAAY;IAEtC,OAAO,CAAC,oBAAoB,CAAS;IAErC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAwB5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAuH5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAe3D;AAED,eAAe,0BAA0B,CAAC"}
@@ -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,9 +11,9 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
10
11
 
11
12
  _defineProperty(this, "cursor", null);
12
13
 
13
- _defineProperty(this, "draggingOffset", null);
14
+ _defineProperty(this, "draggingOffset", void 0);
14
15
 
15
- _defineProperty(this, "startingGridPoint", null);
16
+ _defineProperty(this, "startingGridPoint", void 0);
16
17
 
17
18
  _defineProperty(this, "sloppyClickThreshold", false);
18
19
  }
@@ -29,6 +30,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
29
30
  var {
30
31
  metrics
31
32
  } = grid;
33
+ if (!metrics) throw new Error('Metrics not set');
32
34
  var {
33
35
  columnHeaderHeight,
34
36
  rowHeaderWidth,
@@ -39,7 +41,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
39
41
  this.cursor = null;
40
42
 
41
43
  if (column != null && y <= columnHeaderHeight && model.isColumnMovable(column)) {
42
- var columnX = visibleColumnXs.get(column);
44
+ var columnX = getOrThrow(visibleColumnXs, column);
43
45
  this.draggingOffset = x - columnX - rowHeaderWidth;
44
46
  grid.setState({
45
47
  draggingColumnOffset: this.draggingOffset
@@ -50,7 +52,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
50
52
  }
51
53
 
52
54
  onDrag(gridPoint, grid) {
53
- if (this.draggingOffset == null) {
55
+ if (this.draggingOffset === undefined || this.startingGridPoint === undefined) {
54
56
  return false;
55
57
  }
56
58
 
@@ -102,6 +104,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
102
104
  var {
103
105
  metrics
104
106
  } = grid;
107
+ if (!metrics) throw new Error('Metrics not set');
105
108
  var {
106
109
  left,
107
110
  lastLeft,
@@ -117,14 +120,14 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
117
120
 
118
121
  if (left < draggingColumn) {
119
122
  var leftColumn = draggingColumn - 1;
120
- minX = visibleColumnXs.get(leftColumn) + visibleColumnWidths.get(leftColumn) * 0.5 + this.draggingOffset + rowHeaderWidth;
123
+ minX = getOrThrow(visibleColumnXs, leftColumn) + getOrThrow(visibleColumnWidths, leftColumn) * 0.5 + this.draggingOffset + rowHeaderWidth;
121
124
  }
122
125
 
123
126
  var maxX = width;
124
127
 
125
128
  if (draggingColumn < right) {
126
129
  var rightColumn = draggingColumn + 1;
127
- maxX = visibleColumnXs.get(rightColumn) + visibleColumnWidths.get(rightColumn) * 0.5 - visibleColumnWidths.get(draggingColumn) + this.draggingOffset + rowHeaderWidth;
130
+ maxX = getOrThrow(visibleColumnXs, rightColumn) + getOrThrow(visibleColumnWidths, rightColumn) * 0.5 - getOrThrow(visibleColumnWidths, draggingColumn) + this.draggingOffset + rowHeaderWidth;
128
131
  }
129
132
 
130
133
  var {
@@ -143,8 +146,8 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
143
146
  movedColumns,
144
147
  draggingColumn
145
148
  });
146
- var minMoveX = rowHeaderWidth + visibleColumnWidths.get(left) * 0.5;
147
- var maxMoveX = rowHeaderWidth + visibleColumnXs.get(rightVisible) + visibleColumnWidths.get(rightVisible) * 0.5;
149
+ var minMoveX = rowHeaderWidth + getOrThrow(visibleColumnWidths, left) * 0.5;
150
+ var maxMoveX = rowHeaderWidth + getOrThrow(visibleColumnXs, rightVisible) + getOrThrow(visibleColumnWidths, rightVisible) * 0.5;
148
151
 
149
152
  if (mouseX < minMoveX && left > 0) {
150
153
  grid.setState({
@@ -159,11 +162,11 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
159
162
  return true;
160
163
  }
161
164
 
162
- onUp(_, grid) {
165
+ onUp(gridPoint, grid) {
163
166
  this.cursor = null;
164
167
 
165
168
  if (this.draggingOffset != null) {
166
- this.draggingOffset = null;
169
+ this.draggingOffset = undefined;
167
170
  grid.setState({
168
171
  draggingColumnOffset: null,
169
172
  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,51 @@
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);
10
+ _defineProperty(this, "dragOffset", void 0);
11
11
 
12
12
  _defineProperty(this, "cursor", 'default');
13
13
  }
14
14
 
15
+ static getLeftWithOffsetFromRawLeft(grid, rawLeft) {
16
+ var theme = grid.getTheme();
17
+ var {
18
+ metrics,
19
+ metricCalculator
20
+ } = grid;
21
+ if (!metrics) throw new Error('metrics not set');
22
+
23
+ if (theme.scrollSnapToColumn) {
24
+ var _left = Math.round(rawLeft);
25
+
26
+ var _leftOffset = 0;
27
+ return {
28
+ left: _left,
29
+ leftOffset: _leftOffset
30
+ };
31
+ }
32
+
33
+ var left = Math.floor(rawLeft);
34
+ var leftOffsetPercent = rawLeft - left;
35
+ var columnWidth = metrics.visibleColumnWidths.get(left);
36
+
37
+ if (columnWidth == null) {
38
+ var metricState = grid.getMetricState();
39
+ columnWidth = metricCalculator.getVisibleColumnWidth(left, metricState);
40
+ }
41
+
42
+ var leftOffset = columnWidth * leftOffsetPercent;
43
+ return {
44
+ left,
45
+ leftOffset
46
+ };
47
+ }
48
+
15
49
  isInScrollBar(gridPoint, grid) {
16
50
  var theme = grid.getTheme();
17
51
  var {
@@ -21,6 +55,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
21
55
  var {
22
56
  metrics
23
57
  } = grid;
58
+ if (!metrics) throw new Error('metrics not set');
24
59
  var {
25
60
  x,
26
61
  y
@@ -40,6 +75,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
40
75
  var {
41
76
  metrics
42
77
  } = grid;
78
+ if (!metrics) throw new Error('metrics not set');
43
79
  var {
44
80
  x
45
81
  } = gridPoint;
@@ -89,6 +125,7 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
89
125
  var {
90
126
  metrics
91
127
  } = grid;
128
+ if (!metrics) throw new Error('metrics not set');
92
129
  var {
93
130
  barWidth,
94
131
  handleWidth,
@@ -118,8 +155,8 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
118
155
  }
119
156
 
120
157
  onUp(gridPoint, grid) {
121
- if (this.dragOffset != null) {
122
- this.dragOffset = null;
158
+ if (this.dragOffset !== undefined) {
159
+ this.dragOffset = undefined;
123
160
  grid.setState({
124
161
  isDraggingHorizontalScrollBar: false,
125
162
  isDragging: false
@@ -133,39 +170,6 @@ class GridHorizontalScrollBarMouseHandler extends GridMouseHandler {
133
170
  return this.isInScrollBar(gridPoint, grid);
134
171
  }
135
172
 
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
173
  }
170
174
 
171
175
  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":";;OAAOA,gB;AAEP;;AACA,MAAMC,mCAAN,SAAkDD,gBAAlD,CAAmE;AAAA;AAAA;;AAAA,wCACpD,IADoD;;AAAA,oCAIxD,SAJwD;AAAA;;AAMjEE,EAAAA,aAAa,CAACC,SAAD,EAAYC,IAAZ,EAAkB;AAC7B,QAAMC,KAAK,GAAGD,IAAI,CAACE,QAAL,EAAd;AAEA,QAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAwCH,KAA9C;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAcL,IAApB;AACA,QAAM;AAAEM,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWR,SAAjB;AACA,QAAM;AAAES,MAAAA,QAAF;AAAYC,MAAAA,OAAZ;AAAqBC,MAAAA,cAArB;AAAqCC,MAAAA,KAArC;AAA4CC,MAAAA;AAA5C,QAAuDP,OAA7D;AACA,QAAMQ,cAAc,GAAGJ,OAAO,GAAG,CAAV,GAAcE,KAAK,GAAGR,aAAtB,GAAsCQ,KAA7D;AACA,WACER,aAAa,GAAG,CAAhB,IACAK,QAAQ,GAAG,CADX,IAEAD,CAAC,IAAIK,MAAM,GAAGR,kBAFd,IAGAG,CAAC,GAAGK,MAHJ,IAIAN,CAAC,GAAGI,cAJJ,IAKAJ,CAAC,GAAGO,cANN;AAQD;;AAEDC,EAAAA,MAAM,CAACf,SAAD,EAAYC,IAAZ,EAAkB;AACtB,QAAM;AAAEK,MAAAA;AAAF,QAAcL,IAApB;AACA,QAAM;AAAEM,MAAAA;AAAF,QAAQP,SAAd;AACA,QAAM;AACJgB,MAAAA,QADI;AAEJC,MAAAA,WAFI;AAGJR,MAAAA,QAHI;AAIJE,MAAAA,cAJI;AAKJO,MAAAA;AALI,QAMFZ,OANJ;;AAOA,QAAI,CAAC,KAAKP,aAAL,CAAmBC,SAAnB,EAA8BC,IAA9B,CAAL,EAA0C;AACxC,aAAO,KAAP;AACD;;AAED,QAAMkB,SAAS,GAAGZ,CAAC,GAAGI,cAAtB;;AACA,QAAIQ,SAAS,IAAID,OAAb,IAAwBC,SAAS,IAAID,OAAO,GAAGD,WAAnD,EAAgE;AAC9D;AACA,WAAKG,UAAL,GAAkBD,SAAS,GAAGD,OAA9B;AACAjB,MAAAA,IAAI,CAACoB,QAAL,CAAc;AAAEC,QAAAA,6BAA6B,EAAE;AAAjC,OAAd;AACD,KAJD,MAIO;AACL,WAAKF,UAAL,GAAkB,CAAlB;AACA,UAAMG,OAAO,GAAGC,IAAI,CAACC,GAAL,CACdD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAaP,SAAS,IAAIH,QAAQ,GAAGC,WAAf,CAAV,GAAyCR,QAArD,CADc,EAEdA,QAFc,CAAhB;AAKA,UAAM;AACJkB,QAAAA,IAAI,EAAEC,OADF;AAEJC,QAAAA,UAAU,EAAEC;AAFR,UAGFhC,mCAAmC,CAACiC,4BAApC,CACF9B,IADE,EAEFsB,OAFE,CAHJ;AAOAtB,MAAAA,IAAI,CAAC+B,YAAL,CAAkB;AAChBL,QAAAA,IAAI,EAAEC,OADU;AAEhBC,QAAAA,UAAU,EAAEC,aAFI;AAGhBR,QAAAA,6BAA6B,EAAE,IAHf;AAIhBW,QAAAA,UAAU,EAAE;AAJI,OAAlB;AAMD;;AAED,WAAO,IAAP;AACD;;AAEDC,EAAAA,MAAM,CAAClC,SAAD,EAAYC,IAAZ,EAAkB;AACtB,QAAI,KAAKmB,UAAL,IAAmB,IAAvB,EAA6B;AAC3B,UAAM;AAAEb,QAAAA;AAAF,UAAQP,SAAd;AACA,UAAM;AAAEM,QAAAA;AAAF,UAAcL,IAApB;AACA,UAAM;AAAEe,QAAAA,QAAF;AAAYC,QAAAA,WAAZ;AAAyBR,QAAAA,QAAzB;AAAmCE,QAAAA;AAAnC,UAAsDL,OAA5D;AACA,UAAMa,SAAS,GAAGZ,CAAC,GAAGI,cAAtB;AAEA,UAAMY,OAAO,GAAGC,IAAI,CAACC,GAAL,CACdD,IAAI,CAACE,GAAL,CACE,CADF,EAEG,CAACP,SAAS,GAAG,KAAKC,UAAlB,KAAiCJ,QAAQ,GAAGC,WAA5C,CAAD,GAA6DR,QAF/D,CADc,EAKdA,QALc,CAAhB;AAQA,UAAM;AACJkB,QAAAA,IAAI,EAAEC,OADF;AAEJC,QAAAA,UAAU,EAAEC;AAFR,UAGFhC,mCAAmC,CAACiC,4BAApC,CACF9B,IADE,EAEFsB,OAFE,CAHJ;AAOAtB,MAAAA,IAAI,CAAC+B,YAAL,CAAkB;AAChBL,QAAAA,IAAI,EAAEC,OADU;AAEhBC,QAAAA,UAAU,EAAEC,aAFI;AAGhBR,QAAAA,6BAA6B,EAAE,IAHf;AAIhBW,QAAAA,UAAU,EAAE;AAJI,OAAlB;AAOA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDE,EAAAA,MAAM,CAACnC,SAAD,EAAYC,IAAZ,EAAkB;AACtB,WAAO,KAAKF,aAAL,CAAmBC,SAAnB,EAA8BC,IAA9B,CAAP;AACD;;AAEDmC,EAAAA,IAAI,CAACpC,SAAD,EAAYC,IAAZ,EAAkB;AACpB,QAAI,KAAKmB,UAAL,IAAmB,IAAvB,EAA6B;AAC3B,WAAKA,UAAL,GAAkB,IAAlB;AACAnB,MAAAA,IAAI,CAACoB,QAAL,CAAc;AACZC,QAAAA,6BAA6B,EAAE,KADnB;AAEZW,QAAAA,UAAU,EAAE;AAFA,OAAd;AAID;;AAED,WAAO,KAAKlC,aAAL,CAAmBC,SAAnB,EAA8BC,IAA9B,CAAP;AACD;;AAEDoC,EAAAA,OAAO,CAACrC,SAAD,EAAYC,IAAZ,EAAkB;AACvB,WAAO,KAAKF,aAAL,CAAmBC,SAAnB,EAA8BC,IAA9B,CAAP;AACD;;AAEkC,SAA5B8B,4BAA4B,CAAC9B,IAAD,EAAOsB,OAAP,EAAgB;AACjD,QAAMrB,KAAK,GAAGD,IAAI,CAACE,QAAL,EAAd;AACA,QAAM;AAAEG,MAAAA,OAAF;AAAWgC,MAAAA;AAAX,QAAgCrC,IAAtC;;AAEA,QAAIC,KAAK,CAACqC,kBAAV,EAA8B;AAC5B,UAAMZ,KAAI,GAAGH,IAAI,CAACgB,KAAL,CAAWjB,OAAX,CAAb;;AACA,UAAMM,WAAU,GAAG,CAAnB;AAEA,aAAO;AAAEF,QAAAA,IAAI,EAAJA,KAAF;AAAQE,QAAAA,UAAU,EAAVA;AAAR,OAAP;AACD;;AACD,QAAMF,IAAI,GAAGH,IAAI,CAACiB,KAAL,CAAWlB,OAAX,CAAb;AACA,QAAMmB,iBAAiB,GAAGnB,OAAO,GAAGI,IAApC;AACA,QAAIgB,WAAW,GAAGrC,OAAO,CAACsC,mBAAR,CAA4BC,GAA5B,CAAgClB,IAAhC,CAAlB;;AACA,QAAIgB,WAAW,IAAI,IAAnB,EAAyB;AACvB,UAAMG,WAAW,GAAG7C,IAAI,CAAC8C,cAAL,EAApB;AACAJ,MAAAA,WAAW,GAAGL,gBAAgB,CAACU,qBAAjB,CAAuCrB,IAAvC,EAA6CmB,WAA7C,CAAd;AACD;;AACD,QAAMjB,UAAU,GAAGc,WAAW,GAAGD,iBAAjC;AAEA,WAAO;AAAEf,MAAAA,IAAF;AAAQE,MAAAA;AAAR,KAAP;AACD;;AA9IgE;;AAiJnE,eAAe/B,mCAAf","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,7 +1,8 @@
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() {
@@ -9,7 +10,7 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
9
10
 
10
11
  _defineProperty(this, "cursor", 'move');
11
12
 
12
- _defineProperty(this, "draggingOffset", null);
13
+ _defineProperty(this, "draggingOffset", void 0);
13
14
  }
14
15
 
15
16
  onDown(gridPoint, grid) {
@@ -24,14 +25,15 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
24
25
  var {
25
26
  metrics
26
27
  } = grid;
28
+ if (!metrics) throw new Error('metrics not set');
27
29
  var {
28
30
  columnHeaderHeight,
29
31
  rowHeaderWidth,
30
32
  visibleRowYs
31
33
  } = metrics;
32
34
 
33
- if (x <= rowHeaderWidth && model.isRowMovable(row)) {
34
- var rowY = visibleRowYs.get(row);
35
+ if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {
36
+ var rowY = getOrThrow(visibleRowYs, row);
35
37
  this.draggingOffset = y - rowY - columnHeaderHeight;
36
38
  grid.setState({
37
39
  draggingRowOffset: this.draggingOffset
@@ -84,6 +86,7 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
84
86
  var {
85
87
  metrics
86
88
  } = grid;
89
+ if (!metrics) throw new Error('metrics not set');
87
90
  var {
88
91
  top,
89
92
  lastTop,
@@ -99,14 +102,14 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
99
102
 
100
103
  if (top < draggingRow) {
101
104
  var topRow = draggingRow - 1;
102
- minY = visibleRowYs.get(topRow) + visibleRowHeights.get(topRow) * 0.5 + columnHeaderHeight;
105
+ minY = getOrThrow(visibleRowYs, topRow) + getOrThrow(visibleRowHeights, topRow) * 0.5 + columnHeaderHeight;
103
106
  }
104
107
 
105
108
  var maxY = height;
106
109
 
107
110
  if (draggingRow < bottom) {
108
111
  var bottomRow = draggingRow + 1;
109
- maxY = visibleRowYs.get(bottomRow) + visibleRowHeights.get(bottomRow) * 0.5 + columnHeaderHeight;
112
+ maxY = getOrThrow(visibleRowYs, bottomRow) + getOrThrow(visibleRowHeights, bottomRow) * 0.5 + columnHeaderHeight;
110
113
  }
111
114
 
112
115
  var {
@@ -125,8 +128,8 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
125
128
  movedRows,
126
129
  draggingRow
127
130
  });
128
- var minMoveY = columnHeaderHeight + visibleRowHeights.get(top) * 0.5;
129
- var maxMoveY = columnHeaderHeight + visibleRowYs.get(bottomVisible) + visibleRowHeights.get(bottomVisible) * 0.5;
131
+ var minMoveY = columnHeaderHeight + getOrThrow(visibleRowHeights, top) * 0.5;
132
+ var maxMoveY = columnHeaderHeight + getOrThrow(visibleRowYs, bottomVisible) + getOrThrow(visibleRowHeights, bottomVisible) * 0.5;
130
133
 
131
134
  if (mouseY < minMoveY && top > 0) {
132
135
  grid.setState({
@@ -141,9 +144,9 @@ class GridRowMoveMouseHandler extends GridMouseHandler {
141
144
  return true;
142
145
  }
143
146
 
144
- onUp(_, grid) {
145
- if (this.draggingOffset != null) {
146
- this.draggingOffset = null;
147
+ onUp(gridPoint, grid) {
148
+ if (this.draggingOffset !== undefined) {
149
+ this.draggingOffset = undefined;
147
150
  grid.setState({
148
151
  draggingRowOffset: null,
149
152
  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"}