@deephaven/grid 0.22.3-beta.18 → 0.22.3-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CellInputField.d.ts +5 -5
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +6 -23
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.js +1 -0
- package/dist/EditableGridModel.js.map +1 -1
- package/dist/ExpandableGridModel.js +1 -0
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.js +77 -315
- package/dist/Grid.js.map +1 -1
- package/dist/GridAxisRange.js.map +1 -1
- package/dist/GridColorUtils.js +1 -2
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +83 -240
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.js +13 -31
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.js +2 -15
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js +46 -160
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js +126 -407
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridTestUtils.js +0 -5
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.js +68 -217
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js +2 -8
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.js +0 -42
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +6 -55
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js +0 -15
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/ViewportDataGridModel.js +0 -14
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js +0 -3
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js +0 -3
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +0 -12
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +15 -33
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +6 -53
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +0 -11
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js +1 -4
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +0 -5
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +35 -123
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -27
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +0 -27
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +0 -23
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +0 -10
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +0 -6
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +8 -38
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -54
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
2
|
import { getOrThrow } from "../GridMetricCalculator.js";
|
|
4
3
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
5
|
-
|
|
6
4
|
/**
|
|
7
5
|
* Abstract class that should be extended for column/row behaviour
|
|
8
6
|
* Override the necessary functions/properties
|
|
@@ -10,41 +8,25 @@ import GridMouseHandler from "../GridMouseHandler.js";
|
|
|
10
8
|
class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
11
9
|
constructor() {
|
|
12
10
|
super(...arguments);
|
|
13
|
-
|
|
14
11
|
_defineProperty(this, "draggingIndex", void 0);
|
|
15
|
-
|
|
16
12
|
_defineProperty(this, "resizingItems", []);
|
|
17
|
-
|
|
18
13
|
_defineProperty(this, "hiddenItems", []);
|
|
19
|
-
|
|
20
14
|
_defineProperty(this, "targetSizes", new Map());
|
|
21
|
-
|
|
22
15
|
_defineProperty(this, "dragOffset", 0);
|
|
23
|
-
|
|
24
16
|
_defineProperty(this, "hiddenCursor", void 0);
|
|
25
|
-
|
|
26
17
|
_defineProperty(this, "defaultCursor", void 0);
|
|
27
|
-
|
|
28
18
|
_defineProperty(this, "pointProperty", void 0);
|
|
29
|
-
|
|
30
19
|
_defineProperty(this, "userSizesProperty", void 0);
|
|
31
|
-
|
|
32
20
|
_defineProperty(this, "visibleOffsetProperty", void 0);
|
|
33
|
-
|
|
34
21
|
_defineProperty(this, "visibleSizesProperty", void 0);
|
|
35
|
-
|
|
36
22
|
_defineProperty(this, "marginProperty", void 0);
|
|
37
|
-
|
|
38
23
|
_defineProperty(this, "calculatedSizesProperty", void 0);
|
|
39
|
-
|
|
40
24
|
_defineProperty(this, "modelIndexesProperty", void 0);
|
|
41
|
-
|
|
42
25
|
_defineProperty(this, "firstIndexProperty", void 0);
|
|
43
|
-
|
|
44
26
|
_defineProperty(this, "treePaddingProperty", void 0);
|
|
45
27
|
}
|
|
46
|
-
|
|
47
28
|
// End of overrides
|
|
29
|
+
|
|
48
30
|
onDown(gridPoint, grid) {
|
|
49
31
|
var {
|
|
50
32
|
metrics
|
|
@@ -55,7 +37,6 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
55
37
|
var theme = grid.getTheme();
|
|
56
38
|
if (!metrics) throw new Error('metrics not set');
|
|
57
39
|
var separator = this.getSeparator(gridPoint, metrics, model, theme);
|
|
58
|
-
|
|
59
40
|
if (separator != null) {
|
|
60
41
|
var separatorIndex = separator.index;
|
|
61
42
|
this.dragOffset = 0;
|
|
@@ -68,10 +49,8 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
68
49
|
this.updateSeparator(grid, separator);
|
|
69
50
|
return true;
|
|
70
51
|
}
|
|
71
|
-
|
|
72
52
|
return false;
|
|
73
53
|
}
|
|
74
|
-
|
|
75
54
|
onMove(gridPoint, grid) {
|
|
76
55
|
var {
|
|
77
56
|
metrics
|
|
@@ -82,20 +61,16 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
82
61
|
var theme = grid.getTheme();
|
|
83
62
|
if (!metrics) throw new Error('metrics not set');
|
|
84
63
|
var separator = this.getSeparator(gridPoint, metrics, model, theme);
|
|
85
|
-
|
|
86
64
|
if (separator != null) {
|
|
87
65
|
this.updateCursor(metrics, separator.index);
|
|
88
66
|
return true;
|
|
89
67
|
}
|
|
90
|
-
|
|
91
68
|
return false;
|
|
92
69
|
}
|
|
93
|
-
|
|
94
70
|
onDrag(gridPoint, grid) {
|
|
95
71
|
if (this.draggingIndex == null) {
|
|
96
72
|
return false;
|
|
97
73
|
}
|
|
98
|
-
|
|
99
74
|
var point = gridPoint[this.pointProperty];
|
|
100
75
|
var {
|
|
101
76
|
metricCalculator,
|
|
@@ -108,29 +83,25 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
108
83
|
var calculatedSizes = metrics[this.calculatedSizesProperty];
|
|
109
84
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
110
85
|
var firstIndex = metrics[this.firstIndexProperty];
|
|
111
|
-
var treePadding = metrics[this.treePaddingProperty];
|
|
86
|
+
var treePadding = metrics[this.treePaddingProperty];
|
|
112
87
|
|
|
113
|
-
|
|
88
|
+
// New sizes are batched and applied after the loop to avoid updating state while calculating next step
|
|
89
|
+
var newSizes = new Map();
|
|
114
90
|
|
|
91
|
+
// Use a loop as we may need to resize multiple items if they drag quickly
|
|
115
92
|
var resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
116
|
-
|
|
117
93
|
while (resizeIndex != null) {
|
|
118
94
|
var itemOffset = getOrThrow(visibleOffsets, resizeIndex);
|
|
119
95
|
var itemSize = point - margin - itemOffset - this.dragOffset;
|
|
120
|
-
|
|
121
96
|
var _modelIndex = getOrThrow(modelIndexes, resizeIndex);
|
|
122
|
-
|
|
123
97
|
var targetSize = this.targetSizes.get(_modelIndex);
|
|
124
98
|
var isResizingMultiple = this.resizingItems.length > 1;
|
|
125
99
|
var hiddenIndex = this.hiddenItems.indexOf(resizeIndex);
|
|
126
100
|
var calculatedSize = getOrThrow(calculatedSizes, _modelIndex);
|
|
127
|
-
|
|
128
101
|
if (resizeIndex === firstIndex) {
|
|
129
102
|
calculatedSize += treePadding;
|
|
130
103
|
}
|
|
131
|
-
|
|
132
104
|
var newSize = itemSize;
|
|
133
|
-
|
|
134
105
|
if (Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold) {
|
|
135
106
|
// Snapping behaviour to "natural" width
|
|
136
107
|
newSize = null;
|
|
@@ -140,24 +111,20 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
140
111
|
// Snapping to hidden item
|
|
141
112
|
newSize = 0;
|
|
142
113
|
}
|
|
143
|
-
|
|
144
114
|
if (newSize !== calculatedSize) {
|
|
145
115
|
newSizes.set(_modelIndex, newSize);
|
|
146
116
|
} else {
|
|
147
117
|
newSizes.set(_modelIndex, null);
|
|
148
118
|
}
|
|
149
|
-
|
|
150
119
|
if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {
|
|
151
120
|
if (hiddenIndex >= 0 && isResizingMultiple) {
|
|
152
121
|
var _this$targetSizes$get;
|
|
153
|
-
|
|
154
122
|
this.resizingItems.pop();
|
|
155
123
|
this.removeTargetSize(metrics, resizeIndex);
|
|
156
124
|
resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
157
125
|
this.dragOffset -= (_this$targetSizes$get = this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex))) !== null && _this$targetSizes$get !== void 0 ? _this$targetSizes$get : 0;
|
|
158
126
|
} else {
|
|
159
127
|
resizeIndex = this.getNextShownItem(resizeIndex, metrics);
|
|
160
|
-
|
|
161
128
|
if (resizeIndex !== null) {
|
|
162
129
|
this.resizingItems.push(resizeIndex);
|
|
163
130
|
this.addTargetSize(metrics, resizeIndex);
|
|
@@ -180,7 +147,6 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
180
147
|
resizeIndex = null;
|
|
181
148
|
}
|
|
182
149
|
}
|
|
183
|
-
|
|
184
150
|
newSizes.forEach((newSize, modelIndex) => {
|
|
185
151
|
if (newSize !== null) {
|
|
186
152
|
this.setSize(metricCalculator, modelIndex, newSize);
|
|
@@ -191,7 +157,6 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
191
157
|
this.updateCursor(metrics, this.draggingIndex);
|
|
192
158
|
return true;
|
|
193
159
|
}
|
|
194
|
-
|
|
195
160
|
onUp(gridPoint, grid) {
|
|
196
161
|
if (this.draggingIndex != null) {
|
|
197
162
|
this.draggingIndex = undefined;
|
|
@@ -200,10 +165,8 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
200
165
|
this.targetSizes.clear();
|
|
201
166
|
this.updateSeparator(grid, null);
|
|
202
167
|
}
|
|
203
|
-
|
|
204
168
|
return false;
|
|
205
169
|
}
|
|
206
|
-
|
|
207
170
|
onDoubleClick(gridPoint, grid) {
|
|
208
171
|
var {
|
|
209
172
|
metrics,
|
|
@@ -215,31 +178,24 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
215
178
|
var theme = grid.getTheme();
|
|
216
179
|
if (!metrics) throw new Error('metrics not set');
|
|
217
180
|
var separator = this.getSeparator(gridPoint, metrics, model, theme);
|
|
218
|
-
|
|
219
181
|
if (separator != null) {
|
|
220
182
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
221
|
-
|
|
222
183
|
var _modelIndex2 = getOrThrow(modelIndexes, separator.index);
|
|
223
|
-
|
|
224
184
|
this.resetSize(metricCalculator, _modelIndex2);
|
|
225
185
|
grid.forceUpdate();
|
|
226
186
|
return true;
|
|
227
187
|
}
|
|
228
|
-
|
|
229
188
|
return false;
|
|
230
189
|
}
|
|
231
|
-
|
|
232
190
|
updateCursor(metrics, itemIndex) {
|
|
233
191
|
var visibleSizes = metrics[this.visibleSizesProperty];
|
|
234
192
|
var itemSize = getOrThrow(visibleSizes, itemIndex);
|
|
235
|
-
|
|
236
193
|
if (itemSize === 0) {
|
|
237
194
|
this.cursor = this.hiddenCursor;
|
|
238
195
|
} else {
|
|
239
196
|
this.cursor = this.defaultCursor;
|
|
240
197
|
}
|
|
241
198
|
}
|
|
242
|
-
|
|
243
199
|
addTargetSize(metrics, itemIndex) {
|
|
244
200
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
245
201
|
var userSizes = metrics[this.userSizesProperty];
|
|
@@ -247,21 +203,16 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
247
203
|
var treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;
|
|
248
204
|
var modelIndex = getOrThrow(modelIndexes, itemIndex);
|
|
249
205
|
var targetSize = userSizes.get(modelIndex);
|
|
250
|
-
|
|
251
206
|
if (targetSize == null || targetSize === 0) {
|
|
252
207
|
targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;
|
|
253
208
|
}
|
|
254
|
-
|
|
255
209
|
this.targetSizes.set(modelIndex, targetSize);
|
|
256
210
|
}
|
|
257
|
-
|
|
258
211
|
removeTargetSize(metrics, itemIndex) {
|
|
259
212
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
260
213
|
var modelIndex = getOrThrow(modelIndexes, itemIndex);
|
|
261
214
|
this.targetSizes.delete(modelIndex);
|
|
262
215
|
}
|
|
263
|
-
|
|
264
216
|
}
|
|
265
|
-
|
|
266
217
|
export default GridSeparatorMouseHandler;
|
|
267
218
|
//# sourceMappingURL=GridSeparatorMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","getNextShownItem","push","forEach","setSize","resetSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number | null> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = getOrThrow(calculatedSizes, modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize: number | null = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n if (newSize !== null) {\n this.setSize(metricCalculator, modelIndex, newSize);\n } else {\n this.resetSize(metricCalculator, modelIndex);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n this.resetSize(metricCalculator, modelIndex);\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","getNextShownItem","push","forEach","setSize","resetSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number | null> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = getOrThrow(calculatedSizes, modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize: number | null = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n if (newSize !== null) {\n this.setSize(metricCalculator, modelIndex, newSize);\n } else {\n this.resetSize(metricCalculator, modelIndex);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n this.resetSize(metricCalculator, modelIndex);\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
2
|
import clamp from 'lodash.clamp';
|
|
4
3
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
5
|
-
|
|
6
4
|
/* eslint class-methods-use-this: "off" */
|
|
7
5
|
class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
8
6
|
constructor() {
|
|
9
7
|
super(...arguments);
|
|
10
|
-
|
|
11
8
|
_defineProperty(this, "dragOffset", void 0);
|
|
12
|
-
|
|
13
9
|
_defineProperty(this, "cursor", 'default');
|
|
14
10
|
}
|
|
15
|
-
|
|
16
11
|
static getTopWithOffsetFromRawTop(grid, rawTop) {
|
|
17
12
|
var theme = grid.getTheme();
|
|
18
13
|
var {
|
|
@@ -20,33 +15,27 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
20
15
|
metricCalculator
|
|
21
16
|
} = grid;
|
|
22
17
|
if (!metrics) throw new Error('metrics not set');
|
|
23
|
-
|
|
24
18
|
if (theme.scrollSnapToRow) {
|
|
25
19
|
var _top = Math.round(rawTop);
|
|
26
|
-
|
|
27
20
|
var _topOffset = 0;
|
|
28
21
|
return {
|
|
29
22
|
top: _top,
|
|
30
23
|
topOffset: _topOffset
|
|
31
24
|
};
|
|
32
25
|
}
|
|
33
|
-
|
|
34
26
|
var top = Math.floor(rawTop);
|
|
35
27
|
var topOffsetPercent = rawTop - top;
|
|
36
28
|
var rowHeight = metrics.visibleRowHeights.get(top);
|
|
37
|
-
|
|
38
29
|
if (rowHeight == null) {
|
|
39
30
|
var metricState = grid.getMetricState();
|
|
40
31
|
rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);
|
|
41
32
|
}
|
|
42
|
-
|
|
43
33
|
var topOffset = rowHeight * topOffsetPercent;
|
|
44
34
|
return {
|
|
45
35
|
top,
|
|
46
36
|
topOffset
|
|
47
37
|
};
|
|
48
38
|
}
|
|
49
|
-
|
|
50
39
|
isInScrollBar(gridPoint, grid) {
|
|
51
40
|
var theme = grid.getTheme();
|
|
52
41
|
var {
|
|
@@ -69,10 +58,8 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
69
58
|
} = metrics;
|
|
70
59
|
return hasVerticalBar && scrollBarSize > 0 && x >= width - scrollBarHoverSize && x < width && y > barTop && y < barTop + barHeight;
|
|
71
60
|
}
|
|
72
|
-
|
|
73
61
|
getTopWithOffset(gridPoint, grid) {
|
|
74
62
|
var _this$dragOffset;
|
|
75
|
-
|
|
76
63
|
var {
|
|
77
64
|
metrics
|
|
78
65
|
} = grid;
|
|
@@ -91,18 +78,15 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
91
78
|
} = metrics;
|
|
92
79
|
var mouseBarY = y - barTop;
|
|
93
80
|
var scrollPercent = clamp((mouseBarY - ((_this$dragOffset = this.dragOffset) !== null && _this$dragOffset !== void 0 ? _this$dragOffset : 0)) / (barHeight - handleHeight), 0, 1);
|
|
94
|
-
|
|
95
81
|
if (rowCount === 1) {
|
|
96
82
|
return {
|
|
97
83
|
top: 0,
|
|
98
84
|
topOffset: scrollPercent * (scrollableContentHeight - scrollableViewportHeight)
|
|
99
85
|
};
|
|
100
86
|
}
|
|
101
|
-
|
|
102
87
|
var rawTop = scrollPercent * lastTop;
|
|
103
88
|
return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(grid, rawTop);
|
|
104
89
|
}
|
|
105
|
-
|
|
106
90
|
onDown(gridPoint, grid) {
|
|
107
91
|
var {
|
|
108
92
|
metrics
|
|
@@ -116,13 +100,10 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
116
100
|
barTop,
|
|
117
101
|
scrollY
|
|
118
102
|
} = metrics;
|
|
119
|
-
|
|
120
103
|
if (!this.isInScrollBar(gridPoint, grid)) {
|
|
121
104
|
return false;
|
|
122
105
|
}
|
|
123
|
-
|
|
124
106
|
var mouseBarY = y - barTop;
|
|
125
|
-
|
|
126
107
|
if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {
|
|
127
108
|
// Grabbed the vertical handle
|
|
128
109
|
this.dragOffset = mouseBarY - scrollY;
|
|
@@ -143,14 +124,11 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
143
124
|
isDragging: true
|
|
144
125
|
});
|
|
145
126
|
}
|
|
146
|
-
|
|
147
127
|
return true;
|
|
148
128
|
}
|
|
149
|
-
|
|
150
129
|
onMove(gridPoint, grid) {
|
|
151
130
|
return this.isInScrollBar(gridPoint, grid);
|
|
152
131
|
}
|
|
153
|
-
|
|
154
132
|
onDrag(gridPoint, grid) {
|
|
155
133
|
if (this.dragOffset != null) {
|
|
156
134
|
var {
|
|
@@ -165,10 +143,8 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
165
143
|
});
|
|
166
144
|
return true;
|
|
167
145
|
}
|
|
168
|
-
|
|
169
146
|
return false;
|
|
170
147
|
}
|
|
171
|
-
|
|
172
148
|
onUp(gridPoint, grid) {
|
|
173
149
|
if (this.dragOffset !== undefined) {
|
|
174
150
|
this.dragOffset = undefined;
|
|
@@ -177,15 +153,11 @@ class GridVerticalScrollBarMouseHandler extends GridMouseHandler {
|
|
|
177
153
|
isDragging: false
|
|
178
154
|
});
|
|
179
155
|
}
|
|
180
|
-
|
|
181
156
|
return this.isInScrollBar(gridPoint, grid);
|
|
182
157
|
}
|
|
183
|
-
|
|
184
158
|
onClick(gridPoint, grid) {
|
|
185
159
|
return this.isInScrollBar(gridPoint, grid);
|
|
186
160
|
}
|
|
187
|
-
|
|
188
161
|
}
|
|
189
|
-
|
|
190
162
|
export default GridVerticalScrollBarMouseHandler;
|
|
191
163
|
//# sourceMappingURL=GridVerticalScrollBarMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","visibleRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.visibleRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","visibleRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.visibleRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","GridSelectionMouseHandler","GridColumnMoveMouseHandler","GridColumnSeparatorMouseHandler","GridHorizontalScrollBarMouseHandler","GridRowMoveMouseHandler","GridRowSeparatorMouseHandler","GridRowTreeMouseHandler","GridScrollBarCornerMouseHandler","GridVerticalScrollBarMouseHandler","EditMouseHandler"],"sources":["../../src/mouse-handlers/index.ts"],"sourcesContent":["export { default as GridSelectionMouseHandler } from './GridSelectionMouseHandler';\nexport { default as GridColumnMoveMouseHandler } from './GridColumnMoveMouseHandler';\nexport { default as GridColumnSeparatorMouseHandler } from './GridColumnSeparatorMouseHandler';\nexport { default as GridHorizontalScrollBarMouseHandler } from './GridHorizontalScrollBarMouseHandler';\nexport { default as GridRowMoveMouseHandler } from './GridRowMoveMouseHandler';\nexport { default as GridRowSeparatorMouseHandler } from './GridRowSeparatorMouseHandler';\nexport { default as GridRowTreeMouseHandler } from './GridRowTreeMouseHandler';\nexport { default as GridScrollBarCornerMouseHandler } from './GridScrollBarCornerMouseHandler';\nexport { default as GridVerticalScrollBarMouseHandler } from './GridVerticalScrollBarMouseHandler';\nexport { default as EditMouseHandler } from './EditMouseHandler';\nexport * from './GridSeparatorMouseHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","GridSelectionMouseHandler","GridColumnMoveMouseHandler","GridColumnSeparatorMouseHandler","GridHorizontalScrollBarMouseHandler","GridRowMoveMouseHandler","GridRowSeparatorMouseHandler","GridRowTreeMouseHandler","GridScrollBarCornerMouseHandler","GridVerticalScrollBarMouseHandler","EditMouseHandler"],"sources":["../../src/mouse-handlers/index.ts"],"sourcesContent":["export { default as GridSelectionMouseHandler } from './GridSelectionMouseHandler';\nexport { default as GridColumnMoveMouseHandler } from './GridColumnMoveMouseHandler';\nexport { default as GridColumnSeparatorMouseHandler } from './GridColumnSeparatorMouseHandler';\nexport { default as GridHorizontalScrollBarMouseHandler } from './GridHorizontalScrollBarMouseHandler';\nexport { default as GridRowMoveMouseHandler } from './GridRowMoveMouseHandler';\nexport { default as GridRowSeparatorMouseHandler } from './GridRowSeparatorMouseHandler';\nexport { default as GridRowTreeMouseHandler } from './GridRowTreeMouseHandler';\nexport { default as GridScrollBarCornerMouseHandler } from './GridScrollBarCornerMouseHandler';\nexport { default as GridVerticalScrollBarMouseHandler } from './GridVerticalScrollBarMouseHandler';\nexport { default as EditMouseHandler } from './EditMouseHandler';\nexport * from './GridSeparatorMouseHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,yBAAyB;AAAA,SACpCD,OAAO,IAAIE,0BAA0B;AAAA,SACrCF,OAAO,IAAIG,+BAA+B;AAAA,SAC1CH,OAAO,IAAII,mCAAmC;AAAA,SAC9CJ,OAAO,IAAIK,uBAAuB;AAAA,SAClCL,OAAO,IAAIM,4BAA4B;AAAA,SACvCN,OAAO,IAAIO,uBAAuB;AAAA,SAClCP,OAAO,IAAIQ,+BAA+B;AAAA,SAC1CR,OAAO,IAAIS,iCAAiC;AAAA,SAC5CT,OAAO,IAAIU,gBAAgB;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/grid",
|
|
3
|
-
"version": "0.22.3-beta.
|
|
3
|
+
"version": "0.22.3-beta.21+6d63afd",
|
|
4
4
|
"description": "Deephaven React grid component",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
"react": "^17.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@deephaven/tsconfig": "^0.22.3-beta.
|
|
28
|
+
"@deephaven/tsconfig": "^0.22.3-beta.21+6d63afd"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/utils": "^0.22.3-beta.
|
|
34
|
+
"@deephaven/utils": "^0.22.3-beta.21+6d63afd",
|
|
35
35
|
"classnames": "^2.3.1",
|
|
36
36
|
"color-convert": "^2.0.1",
|
|
37
37
|
"event-target-shim": "^6.0.2",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "6d63afd124485605d545e0104d0cb437eb8993ab"
|
|
47
47
|
}
|