@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.
- package/dist/CellInputField.d.ts +4 -4
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +10 -11
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.d.ts +70 -0
- package/dist/EditableGridModel.d.ts.map +1 -0
- package/dist/EditableGridModel.js +13 -0
- package/dist/EditableGridModel.js.map +1 -0
- package/dist/EventHandlerResult.d.ts +17 -0
- package/dist/EventHandlerResult.d.ts.map +1 -0
- package/dist/EventHandlerResult.js +2 -0
- package/dist/EventHandlerResult.js.map +1 -0
- package/dist/ExpandableGridModel.d.ts +34 -0
- package/dist/ExpandableGridModel.d.ts.map +1 -0
- package/dist/ExpandableGridModel.js +7 -0
- package/dist/ExpandableGridModel.js.map +1 -0
- package/dist/Grid.d.ts +283 -234
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +397 -165
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.d.ts +22 -12
- package/dist/GridColorUtils.d.ts.map +1 -1
- package/dist/GridColorUtils.js +26 -21
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +8 -4
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.d.ts +54 -60
- package/dist/GridModel.d.ts.map +1 -1
- package/dist/GridModel.js +54 -122
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.d.ts +23 -24
- package/dist/GridMouseHandler.d.ts.map +1 -1
- package/dist/GridMouseHandler.js +8 -14
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.d.ts +2 -2
- package/dist/GridRange.d.ts.map +1 -1
- package/dist/GridRange.js +1 -1
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts +117 -69
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +183 -168
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +4 -4
- package/dist/GridUtils.js +4 -4
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.d.ts +10 -7
- package/dist/KeyHandler.d.ts.map +1 -1
- package/dist/KeyHandler.js +6 -5
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.d.ts +1 -1
- package/dist/MockGridData.d.ts.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.d.ts +39 -12
- package/dist/MockGridModel.d.ts.map +1 -1
- package/dist/MockGridModel.js +43 -10
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.d.ts +37 -22
- package/dist/MockTreeGridModel.d.ts.map +1 -1
- package/dist/MockTreeGridModel.js +38 -20
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/errors/AssertionError.d.ts +5 -0
- package/dist/errors/AssertionError.d.ts.map +1 -0
- package/dist/errors/AssertionError.js +12 -0
- package/dist/errors/AssertionError.js.map +1 -0
- package/dist/errors/PasteError.d.ts +1 -1
- package/dist/errors/PasteError.d.ts.map +1 -1
- package/dist/errors/PasteError.js +1 -2
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.d.ts +3 -0
- package/dist/errors/assertIsDefined.d.ts.map +1 -0
- package/dist/errors/assertIsDefined.js +8 -0
- package/dist/errors/assertIsDefined.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
- package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +10 -9
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
- package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +3 -3
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
- package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +16 -15
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
- package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +14 -12
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/memoizeClear.d.ts +13 -3
- package/dist/memoizeClear.d.ts.map +1 -1
- package/dist/memoizeClear.js +7 -7
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
- package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +3 -2
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +13 -10
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +41 -37
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +14 -11
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +26 -16
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +57 -74
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +41 -37
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridColumnMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.
|
|
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",
|
|
14
|
+
_defineProperty(this, "draggingOffset", void 0);
|
|
14
15
|
|
|
15
|
-
_defineProperty(this, "startingGridPoint",
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
147
|
-
var maxMoveX = rowHeaderWidth + visibleColumnXs
|
|
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(
|
|
165
|
+
onUp(gridPoint, grid) {
|
|
163
166
|
this.cursor = null;
|
|
164
167
|
|
|
165
168
|
if (this.draggingOffset != null) {
|
|
166
|
-
this.draggingOffset =
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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.
|
|
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:
|
|
70
|
+
isDragging: separatorIndex !== null
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.
|
|
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
|
-
|
|
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:
|
|
4
|
-
left:
|
|
7
|
+
static getLeftWithOffsetFromRawLeft(grid: Grid, rawLeft: number): {
|
|
8
|
+
left: VisibleIndex;
|
|
5
9
|
leftOffset: number;
|
|
6
10
|
};
|
|
7
|
-
dragOffset
|
|
8
|
-
|
|
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
|
-
|
|
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.
|
|
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",
|
|
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
|
|
122
|
-
this.dragOffset =
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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",
|
|
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
|
|
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
|
|
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
|
|
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
|
|
129
|
-
var maxMoveY = columnHeaderHeight + visibleRowYs
|
|
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(
|
|
145
|
-
if (this.draggingOffset
|
|
146
|
-
this.draggingOffset =
|
|
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.
|
|
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"}
|