@deephaven/grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.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.js +41 -22
- package/dist/CellInputField.js.map +1 -1
- package/dist/CellRenderer.js +19 -27
- package/dist/CellRenderer.js.map +1 -1
- package/dist/DataBarCellRenderer.js +61 -87
- package/dist/DataBarCellRenderer.js.map +1 -1
- package/dist/Grid.js +281 -455
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.js +23 -21
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +192 -303
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridRange.js +18 -28
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +432 -604
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +33 -16
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +183 -213
- package/dist/GridUtils.js.map +1 -1
- package/dist/MockGridModel.js +17 -10
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +36 -31
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/TextCellRenderer.js +36 -57
- package/dist/TextCellRenderer.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +4 -7
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +1 -3
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +40 -71
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +4 -10
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +3 -7
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +54 -82
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +4 -8
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +31 -55
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +26 -46
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +2 -4
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +14 -22
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +8 -16
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +47 -75
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +9 -23
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.js +24 -39
- package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +31 -55
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/package.json +3 -3
|
@@ -46,12 +46,8 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
46
46
|
case 'L':
|
|
47
47
|
{
|
|
48
48
|
if (GridUtils.isModifierKeyDown(event)) return false;
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
} = grid.props;
|
|
52
|
-
var {
|
|
53
|
-
columnCount
|
|
54
|
-
} = model;
|
|
49
|
+
var model = grid.props.model;
|
|
50
|
+
var columnCount = model.columnCount;
|
|
55
51
|
if (!event.shiftKey) {
|
|
56
52
|
grid.clearSelectedRanges();
|
|
57
53
|
}
|
|
@@ -70,13 +66,9 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
70
66
|
return true;
|
|
71
67
|
case 'End':
|
|
72
68
|
{
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var {
|
|
77
|
-
columnCount: _columnCount,
|
|
78
|
-
rowCount
|
|
79
|
-
} = _model;
|
|
69
|
+
var _model = grid.props.model;
|
|
70
|
+
var _columnCount = _model.columnCount,
|
|
71
|
+
rowCount = _model.rowCount;
|
|
80
72
|
if (!event.shiftKey) {
|
|
81
73
|
grid.clearSelectedRanges();
|
|
82
74
|
}
|
|
@@ -116,22 +108,17 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
116
108
|
} else {
|
|
117
109
|
grid.clearSelectedRanges();
|
|
118
110
|
}
|
|
119
|
-
var
|
|
120
|
-
cursorRow,
|
|
121
|
-
cursorColumn,
|
|
122
|
-
selectionEndColumn,
|
|
123
|
-
selectionEndRow
|
|
124
|
-
} = grid.state;
|
|
111
|
+
var _grid$state = grid.state,
|
|
112
|
+
cursorRow = _grid$state.cursorRow,
|
|
113
|
+
cursorColumn = _grid$state.cursorColumn,
|
|
114
|
+
selectionEndColumn = _grid$state.selectionEndColumn,
|
|
115
|
+
selectionEndRow = _grid$state.selectionEndRow;
|
|
125
116
|
var column = isShiftKey ? selectionEndColumn : cursorColumn;
|
|
126
117
|
var row = isShiftKey ? selectionEndRow : cursorRow;
|
|
127
118
|
if (isModifierKey) {
|
|
128
|
-
var
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
var {
|
|
132
|
-
columnCount,
|
|
133
|
-
rowCount
|
|
134
|
-
} = model;
|
|
119
|
+
var model = grid.props.model;
|
|
120
|
+
var columnCount = model.columnCount,
|
|
121
|
+
rowCount = model.rowCount;
|
|
135
122
|
var maximizePreviousRange = isModifierKey && isShiftKey;
|
|
136
123
|
var moveToColumn = null;
|
|
137
124
|
var moveToRow = null;
|
|
@@ -153,32 +140,22 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
153
140
|
}
|
|
154
141
|
} else {
|
|
155
142
|
if (!grid.metrics) throw new Error('grid.metrics are not set');
|
|
156
|
-
var
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
autoSelectColumn = false
|
|
162
|
-
} = theme;
|
|
143
|
+
var theme = grid.props.theme;
|
|
144
|
+
var _theme$autoSelectRow = theme.autoSelectRow,
|
|
145
|
+
autoSelectRow = _theme$autoSelectRow === void 0 ? false : _theme$autoSelectRow,
|
|
146
|
+
_theme$autoSelectColu = theme.autoSelectColumn,
|
|
147
|
+
autoSelectColumn = _theme$autoSelectColu === void 0 ? false : _theme$autoSelectColu;
|
|
163
148
|
if (autoSelectRow && deltaColumn !== 0) {
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
} = grid.metrics;
|
|
167
|
-
var {
|
|
168
|
-
left
|
|
169
|
-
} = grid.state;
|
|
149
|
+
var lastLeft = grid.metrics.lastLeft;
|
|
150
|
+
var left = grid.state.left;
|
|
170
151
|
left = clamp(left + deltaColumn, 0, lastLeft);
|
|
171
152
|
grid.moveCursorToPosition(left, cursorRow, isShiftKey, false);
|
|
172
153
|
grid.setViewState({
|
|
173
154
|
left
|
|
174
155
|
});
|
|
175
156
|
} else if (autoSelectColumn && deltaRow !== 0) {
|
|
176
|
-
var
|
|
177
|
-
|
|
178
|
-
} = grid.metrics;
|
|
179
|
-
var {
|
|
180
|
-
top
|
|
181
|
-
} = grid.state;
|
|
157
|
+
var lastTop = grid.metrics.lastTop;
|
|
158
|
+
var top = grid.state.top;
|
|
182
159
|
top = clamp(top + deltaRow, 0, lastTop);
|
|
183
160
|
grid.moveCursorToPosition(top, cursorColumn, isShiftKey, false);
|
|
184
161
|
grid.setViewState({
|
|
@@ -197,24 +174,20 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
197
174
|
} else {
|
|
198
175
|
grid.clearSelectedRanges();
|
|
199
176
|
}
|
|
200
|
-
var
|
|
201
|
-
cursorColumn,
|
|
202
|
-
selectionEndRow
|
|
203
|
-
} = grid.state;
|
|
177
|
+
var _grid$state2 = grid.state,
|
|
178
|
+
cursorColumn = _grid$state2.cursorColumn,
|
|
179
|
+
selectionEndRow = _grid$state2.selectionEndRow;
|
|
204
180
|
var row = selectionEndRow;
|
|
205
181
|
var column = cursorColumn;
|
|
206
182
|
if (row == null) {
|
|
207
183
|
return false;
|
|
208
184
|
}
|
|
209
185
|
var metricState = grid.getMetricState();
|
|
210
|
-
var
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
topVisible,
|
|
216
|
-
hasHorizontalBar
|
|
217
|
-
} = metricCalculator.getMetrics(metricState);
|
|
186
|
+
var metricCalculator = grid.metricCalculator;
|
|
187
|
+
var _metricCalculator$get = metricCalculator.getMetrics(metricState),
|
|
188
|
+
bottomVisible = _metricCalculator$get.bottomVisible,
|
|
189
|
+
topVisible = _metricCalculator$get.topVisible,
|
|
190
|
+
hasHorizontalBar = _metricCalculator$get.hasHorizontalBar;
|
|
218
191
|
var selectRangeEndPosition = row - (bottomVisible - topVisible);
|
|
219
192
|
selectRangeEndPosition -= hasHorizontalBar ? 0 : 1;
|
|
220
193
|
|
|
@@ -234,26 +207,22 @@ class SelectionKeyHandler extends KeyHandler {
|
|
|
234
207
|
} else {
|
|
235
208
|
grid.clearSelectedRanges();
|
|
236
209
|
}
|
|
237
|
-
var
|
|
238
|
-
selectionEndRow,
|
|
239
|
-
cursorColumn
|
|
240
|
-
} = grid.state;
|
|
210
|
+
var _grid$state3 = grid.state,
|
|
211
|
+
selectionEndRow = _grid$state3.selectionEndRow,
|
|
212
|
+
cursorColumn = _grid$state3.cursorColumn;
|
|
241
213
|
var row = selectionEndRow;
|
|
242
214
|
var column = cursorColumn;
|
|
243
215
|
if (row === null) {
|
|
244
216
|
return false;
|
|
245
217
|
}
|
|
246
218
|
var metricState = grid.getMetricState();
|
|
247
|
-
var
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
rowCount,
|
|
255
|
-
lastTop
|
|
256
|
-
} = metricCalculator.getMetrics(metricState);
|
|
219
|
+
var metricCalculator = grid.metricCalculator;
|
|
220
|
+
var _metricCalculator$get2 = metricCalculator.getMetrics(metricState),
|
|
221
|
+
bottomVisible = _metricCalculator$get2.bottomVisible,
|
|
222
|
+
topVisible = _metricCalculator$get2.topVisible,
|
|
223
|
+
hasHorizontalBar = _metricCalculator$get2.hasHorizontalBar,
|
|
224
|
+
rowCount = _metricCalculator$get2.rowCount,
|
|
225
|
+
lastTop = _metricCalculator$get2.lastTop;
|
|
257
226
|
var lastRowIndex = rowCount - 1;
|
|
258
227
|
var selectRangeEndPosition = bottomVisible - topVisible + row;
|
|
259
228
|
selectRangeEndPosition += hasHorizontalBar ? 0 : 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionKeyHandler.js","names":["clamp","GridRange","GridUtils","KeyHandler","SelectionKeyHandler","onDown","event","grid","key","isModifierKeyDown","selectAll","handleArrowMove","handlePageUp","handlePageDown","shiftKey","clearSelectedRanges","moveCursorToPosition","state","cursorRow","model","props","columnCount","cursorColumn","rowCount","selectedRanges","length","preventDefault","stopPropagation","moveCursorInDirection","SELECTION_DIRECTION","UP","DOWN","LEFT","RIGHT","deltaColumn","deltaRow","isShiftKey","isModifierKey","trimSelectedRanges","selectionEndColumn","selectionEndRow","column","row","maximizePreviousRange","moveToColumn","moveToRow","metrics","Error","theme","autoSelectRow","autoSelectColumn","lastLeft","left","setViewState","lastTop","top","moveCursor","e","metricState","getMetricState","metricCalculator","bottomVisible","topVisible","hasHorizontalBar","getMetrics","selectRangeEndPosition","Math","max","viewportPosition","lastRowIndex","min"],"sources":["../../src/key-handlers/SelectionKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport clamp from 'lodash.clamp';\nimport { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridRange from '../GridRange';\nimport GridUtils from '../GridUtils';\nimport KeyHandler, { type GridKeyboardEvent } from '../KeyHandler';\n\nclass SelectionKeyHandler extends KeyHandler {\n onDown(event: GridKeyboardEvent, grid: Grid): EventHandlerResult {\n switch (event.key) {\n case 'a':\n if (GridUtils.isModifierKeyDown(event)) {\n grid.selectAll();\n return true;\n }\n break;\n case 'ArrowUp':\n return this.handleArrowMove(0, -1, event, grid);\n case 'ArrowDown':\n return this.handleArrowMove(0, 1, event, grid);\n case 'ArrowRight':\n return this.handleArrowMove(1, 0, event, grid);\n case 'ArrowLeft':\n return this.handleArrowMove(-1, 0, event, grid);\n /**\n * h/j/k/l keys are grouped together for quick navigation by power users.\n * Bender added these as shortcuts in the original commit of keyboard shortcuts.\n * We have no idea why, or what might have inspired them (not excel, not swing, vim?).\n * Maybe lack of page up keys on a laptop at the time?\n */\n case 'k':\n case 'K':\n if (GridUtils.isModifierKeyDown(event)) return false;\n return this.handlePageUp(event, grid);\n case 'j':\n case 'J':\n if (GridUtils.isModifierKeyDown(event)) return false;\n return this.handlePageDown(event, grid);\n case 'h':\n case 'H':\n if (GridUtils.isModifierKeyDown(event)) return false;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(0, grid.state.cursorRow, event.shiftKey);\n return true;\n case 'l':\n case 'L': {\n if (GridUtils.isModifierKeyDown(event)) return false;\n const { model } = grid.props;\n const { columnCount } = model;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n columnCount - 1,\n grid.state.cursorRow,\n event.shiftKey\n );\n return true;\n }\n case 'PageDown':\n return this.handlePageDown(event, grid);\n case 'PageUp':\n return this.handlePageUp(event, grid);\n case 'Home':\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n GridUtils.isModifierKeyDown(event) ? grid.state.cursorColumn : 0,\n GridUtils.isModifierKeyDown(event) ? 0 : grid.state.cursorRow,\n event.shiftKey,\n true,\n true\n );\n return true;\n case 'End': {\n const { model } = grid.props;\n const { columnCount, rowCount } = model;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n GridUtils.isModifierKeyDown(event)\n ? grid.state.cursorColumn\n : columnCount - 1,\n GridUtils.isModifierKeyDown(event)\n ? rowCount - 1\n : grid.state.cursorRow,\n event.shiftKey,\n true,\n true\n );\n return true;\n }\n case 'Escape':\n if (grid.state.selectedRanges.length === 0) return false;\n grid.clearSelectedRanges();\n // consume the event, and stop propagation only if there were selected ranges to clear\n return { preventDefault: false, stopPropagation: true };\n case 'Enter':\n if (grid.state.selectedRanges.length > 0) {\n grid.moveCursorInDirection(\n event.shiftKey\n ? GridRange.SELECTION_DIRECTION.UP\n : GridRange.SELECTION_DIRECTION.DOWN\n );\n return true;\n }\n break;\n case 'Tab':\n if (grid.state.selectedRanges.length > 0) {\n grid.moveCursorInDirection(\n event.shiftKey\n ? GridRange.SELECTION_DIRECTION.LEFT\n : GridRange.SELECTION_DIRECTION.RIGHT\n );\n return true;\n }\n break;\n default:\n break;\n }\n return false;\n }\n\n handleArrowMove(\n deltaColumn: number,\n deltaRow: number,\n event: GridKeyboardEvent,\n grid: Grid\n ): boolean {\n const isShiftKey = event.shiftKey;\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { cursorRow, cursorColumn, selectionEndColumn, selectionEndRow } =\n grid.state;\n const column = isShiftKey ? selectionEndColumn : cursorColumn;\n const row = isShiftKey ? selectionEndRow : cursorRow;\n if (isModifierKey) {\n const { model } = grid.props;\n const { columnCount, rowCount } = model;\n const maximizePreviousRange = isModifierKey && isShiftKey;\n let moveToColumn = null;\n let moveToRow = null;\n if (deltaColumn < 0) {\n moveToColumn = 0;\n moveToRow = row;\n } else if (deltaColumn > 0) {\n moveToColumn = columnCount - 1;\n moveToRow = row;\n } else if (deltaRow < 0) {\n moveToColumn = column;\n moveToRow = 0;\n } else if (deltaRow > 0) {\n moveToColumn = column;\n moveToRow = rowCount - 1;\n }\n if (moveToColumn != null && moveToRow != null) {\n grid.moveCursorToPosition(\n moveToColumn,\n moveToRow,\n isShiftKey,\n true,\n maximizePreviousRange\n );\n }\n } else {\n if (!grid.metrics) throw new Error('grid.metrics are not set');\n\n const { theme } = grid.props;\n const { autoSelectRow = false, autoSelectColumn = false } = theme;\n if (autoSelectRow && deltaColumn !== 0) {\n const { lastLeft } = grid.metrics;\n let { left } = grid.state;\n\n left = clamp(left + deltaColumn, 0, lastLeft);\n\n grid.moveCursorToPosition(left, cursorRow, isShiftKey, false);\n\n grid.setViewState({ left });\n } else if (autoSelectColumn && deltaRow !== 0) {\n const { lastTop } = grid.metrics;\n let { top } = grid.state;\n\n top = clamp(top + deltaRow, 0, lastTop);\n\n grid.moveCursorToPosition(top, cursorColumn, isShiftKey, false);\n\n grid.setViewState({ top });\n } else {\n grid.moveCursor(deltaColumn, deltaRow, isShiftKey);\n }\n }\n return true;\n }\n\n handlePageUp(e: GridKeyboardEvent, grid: Grid): boolean {\n const isShiftKey = e.shiftKey;\n\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { cursorColumn, selectionEndRow } = grid.state;\n const row: number | null = selectionEndRow;\n const column: number | null = cursorColumn;\n if (row == null) {\n return false;\n }\n const metricState = grid.getMetricState();\n const { metricCalculator } = grid;\n const { bottomVisible, topVisible, hasHorizontalBar } =\n metricCalculator.getMetrics(metricState);\n\n let selectRangeEndPosition = row - (bottomVisible - topVisible);\n selectRangeEndPosition -= hasHorizontalBar ? 0 : 1;\n\n // Don't move beyond the top table row.\n selectRangeEndPosition = Math.max(selectRangeEndPosition, 0);\n const viewportPosition = Math.max(\n selectRangeEndPosition - (row - topVisible),\n 0\n );\n\n grid.moveCursorToPosition(\n column,\n selectRangeEndPosition,\n isShiftKey,\n false\n );\n grid.setViewState({ top: viewportPosition });\n return true;\n }\n\n handlePageDown(e: GridKeyboardEvent, grid: Grid): boolean {\n const isShiftKey = e.shiftKey;\n\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { selectionEndRow, cursorColumn } = grid.state;\n const row: number | null = selectionEndRow;\n const column: number | null = cursorColumn;\n if (row === null) {\n return false;\n }\n const metricState = grid.getMetricState();\n const { metricCalculator } = grid;\n const { bottomVisible, topVisible, hasHorizontalBar, rowCount, lastTop } =\n metricCalculator.getMetrics(metricState);\n const lastRowIndex = rowCount - 1;\n\n let selectRangeEndPosition = bottomVisible - topVisible + row;\n selectRangeEndPosition += hasHorizontalBar ? 0 : 1;\n\n // Don't move beyond the bottom table row.\n selectRangeEndPosition = Math.min(selectRangeEndPosition, lastRowIndex);\n\n const viewportPosition = Math.min(\n lastTop,\n selectRangeEndPosition - (row - topVisible)\n );\n grid.moveCursorToPosition(\n column,\n selectRangeEndPosition,\n isShiftKey,\n false\n );\n grid.setViewState({ top: viewportPosition });\n\n return true;\n }\n}\n\nexport default SelectionKeyHandler;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SelectionKeyHandler.js","names":["clamp","GridRange","GridUtils","KeyHandler","SelectionKeyHandler","onDown","event","grid","key","isModifierKeyDown","selectAll","handleArrowMove","handlePageUp","handlePageDown","shiftKey","clearSelectedRanges","moveCursorToPosition","state","cursorRow","model","props","columnCount","cursorColumn","rowCount","selectedRanges","length","preventDefault","stopPropagation","moveCursorInDirection","SELECTION_DIRECTION","UP","DOWN","LEFT","RIGHT","deltaColumn","deltaRow","isShiftKey","isModifierKey","trimSelectedRanges","_grid$state","selectionEndColumn","selectionEndRow","column","row","maximizePreviousRange","moveToColumn","moveToRow","metrics","Error","theme","_theme$autoSelectRow","autoSelectRow","_theme$autoSelectColu","autoSelectColumn","lastLeft","left","setViewState","lastTop","top","moveCursor","e","_grid$state2","metricState","getMetricState","metricCalculator","_metricCalculator$get","getMetrics","bottomVisible","topVisible","hasHorizontalBar","selectRangeEndPosition","Math","max","viewportPosition","_grid$state3","_metricCalculator$get2","lastRowIndex","min"],"sources":["../../src/key-handlers/SelectionKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport clamp from 'lodash.clamp';\nimport { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridRange from '../GridRange';\nimport GridUtils from '../GridUtils';\nimport KeyHandler, { type GridKeyboardEvent } from '../KeyHandler';\n\nclass SelectionKeyHandler extends KeyHandler {\n onDown(event: GridKeyboardEvent, grid: Grid): EventHandlerResult {\n switch (event.key) {\n case 'a':\n if (GridUtils.isModifierKeyDown(event)) {\n grid.selectAll();\n return true;\n }\n break;\n case 'ArrowUp':\n return this.handleArrowMove(0, -1, event, grid);\n case 'ArrowDown':\n return this.handleArrowMove(0, 1, event, grid);\n case 'ArrowRight':\n return this.handleArrowMove(1, 0, event, grid);\n case 'ArrowLeft':\n return this.handleArrowMove(-1, 0, event, grid);\n /**\n * h/j/k/l keys are grouped together for quick navigation by power users.\n * Bender added these as shortcuts in the original commit of keyboard shortcuts.\n * We have no idea why, or what might have inspired them (not excel, not swing, vim?).\n * Maybe lack of page up keys on a laptop at the time?\n */\n case 'k':\n case 'K':\n if (GridUtils.isModifierKeyDown(event)) return false;\n return this.handlePageUp(event, grid);\n case 'j':\n case 'J':\n if (GridUtils.isModifierKeyDown(event)) return false;\n return this.handlePageDown(event, grid);\n case 'h':\n case 'H':\n if (GridUtils.isModifierKeyDown(event)) return false;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(0, grid.state.cursorRow, event.shiftKey);\n return true;\n case 'l':\n case 'L': {\n if (GridUtils.isModifierKeyDown(event)) return false;\n const { model } = grid.props;\n const { columnCount } = model;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n columnCount - 1,\n grid.state.cursorRow,\n event.shiftKey\n );\n return true;\n }\n case 'PageDown':\n return this.handlePageDown(event, grid);\n case 'PageUp':\n return this.handlePageUp(event, grid);\n case 'Home':\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n GridUtils.isModifierKeyDown(event) ? grid.state.cursorColumn : 0,\n GridUtils.isModifierKeyDown(event) ? 0 : grid.state.cursorRow,\n event.shiftKey,\n true,\n true\n );\n return true;\n case 'End': {\n const { model } = grid.props;\n const { columnCount, rowCount } = model;\n if (!event.shiftKey) {\n grid.clearSelectedRanges();\n }\n grid.moveCursorToPosition(\n GridUtils.isModifierKeyDown(event)\n ? grid.state.cursorColumn\n : columnCount - 1,\n GridUtils.isModifierKeyDown(event)\n ? rowCount - 1\n : grid.state.cursorRow,\n event.shiftKey,\n true,\n true\n );\n return true;\n }\n case 'Escape':\n if (grid.state.selectedRanges.length === 0) return false;\n grid.clearSelectedRanges();\n // consume the event, and stop propagation only if there were selected ranges to clear\n return { preventDefault: false, stopPropagation: true };\n case 'Enter':\n if (grid.state.selectedRanges.length > 0) {\n grid.moveCursorInDirection(\n event.shiftKey\n ? GridRange.SELECTION_DIRECTION.UP\n : GridRange.SELECTION_DIRECTION.DOWN\n );\n return true;\n }\n break;\n case 'Tab':\n if (grid.state.selectedRanges.length > 0) {\n grid.moveCursorInDirection(\n event.shiftKey\n ? GridRange.SELECTION_DIRECTION.LEFT\n : GridRange.SELECTION_DIRECTION.RIGHT\n );\n return true;\n }\n break;\n default:\n break;\n }\n return false;\n }\n\n handleArrowMove(\n deltaColumn: number,\n deltaRow: number,\n event: GridKeyboardEvent,\n grid: Grid\n ): boolean {\n const isShiftKey = event.shiftKey;\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { cursorRow, cursorColumn, selectionEndColumn, selectionEndRow } =\n grid.state;\n const column = isShiftKey ? selectionEndColumn : cursorColumn;\n const row = isShiftKey ? selectionEndRow : cursorRow;\n if (isModifierKey) {\n const { model } = grid.props;\n const { columnCount, rowCount } = model;\n const maximizePreviousRange = isModifierKey && isShiftKey;\n let moveToColumn = null;\n let moveToRow = null;\n if (deltaColumn < 0) {\n moveToColumn = 0;\n moveToRow = row;\n } else if (deltaColumn > 0) {\n moveToColumn = columnCount - 1;\n moveToRow = row;\n } else if (deltaRow < 0) {\n moveToColumn = column;\n moveToRow = 0;\n } else if (deltaRow > 0) {\n moveToColumn = column;\n moveToRow = rowCount - 1;\n }\n if (moveToColumn != null && moveToRow != null) {\n grid.moveCursorToPosition(\n moveToColumn,\n moveToRow,\n isShiftKey,\n true,\n maximizePreviousRange\n );\n }\n } else {\n if (!grid.metrics) throw new Error('grid.metrics are not set');\n\n const { theme } = grid.props;\n const { autoSelectRow = false, autoSelectColumn = false } = theme;\n if (autoSelectRow && deltaColumn !== 0) {\n const { lastLeft } = grid.metrics;\n let { left } = grid.state;\n\n left = clamp(left + deltaColumn, 0, lastLeft);\n\n grid.moveCursorToPosition(left, cursorRow, isShiftKey, false);\n\n grid.setViewState({ left });\n } else if (autoSelectColumn && deltaRow !== 0) {\n const { lastTop } = grid.metrics;\n let { top } = grid.state;\n\n top = clamp(top + deltaRow, 0, lastTop);\n\n grid.moveCursorToPosition(top, cursorColumn, isShiftKey, false);\n\n grid.setViewState({ top });\n } else {\n grid.moveCursor(deltaColumn, deltaRow, isShiftKey);\n }\n }\n return true;\n }\n\n handlePageUp(e: GridKeyboardEvent, grid: Grid): boolean {\n const isShiftKey = e.shiftKey;\n\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { cursorColumn, selectionEndRow } = grid.state;\n const row: number | null = selectionEndRow;\n const column: number | null = cursorColumn;\n if (row == null) {\n return false;\n }\n const metricState = grid.getMetricState();\n const { metricCalculator } = grid;\n const { bottomVisible, topVisible, hasHorizontalBar } =\n metricCalculator.getMetrics(metricState);\n\n let selectRangeEndPosition = row - (bottomVisible - topVisible);\n selectRangeEndPosition -= hasHorizontalBar ? 0 : 1;\n\n // Don't move beyond the top table row.\n selectRangeEndPosition = Math.max(selectRangeEndPosition, 0);\n const viewportPosition = Math.max(\n selectRangeEndPosition - (row - topVisible),\n 0\n );\n\n grid.moveCursorToPosition(\n column,\n selectRangeEndPosition,\n isShiftKey,\n false\n );\n grid.setViewState({ top: viewportPosition });\n return true;\n }\n\n handlePageDown(e: GridKeyboardEvent, grid: Grid): boolean {\n const isShiftKey = e.shiftKey;\n\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n\n const { selectionEndRow, cursorColumn } = grid.state;\n const row: number | null = selectionEndRow;\n const column: number | null = cursorColumn;\n if (row === null) {\n return false;\n }\n const metricState = grid.getMetricState();\n const { metricCalculator } = grid;\n const { bottomVisible, topVisible, hasHorizontalBar, rowCount, lastTop } =\n metricCalculator.getMetrics(metricState);\n const lastRowIndex = rowCount - 1;\n\n let selectRangeEndPosition = bottomVisible - topVisible + row;\n selectRangeEndPosition += hasHorizontalBar ? 0 : 1;\n\n // Don't move beyond the bottom table row.\n selectRangeEndPosition = Math.min(selectRangeEndPosition, lastRowIndex);\n\n const viewportPosition = Math.min(\n lastTop,\n selectRangeEndPosition - (row - topVisible)\n );\n grid.moveCursorToPosition(\n column,\n selectRangeEndPosition,\n isShiftKey,\n false\n );\n grid.setViewState({ top: viewportPosition });\n\n return true;\n }\n}\n\nexport default SelectionKeyHandler;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,20 +15,14 @@ class TreeKeyHandler extends KeyHandler {
|
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
handleExpandKey(event, grid) {
|
|
18
|
-
var
|
|
19
|
-
selectedRanges
|
|
20
|
-
} = grid.state;
|
|
18
|
+
var selectedRanges = grid.state.selectedRanges;
|
|
21
19
|
if (selectedRanges.length === 1) {
|
|
22
20
|
var range = selectedRanges[0];
|
|
23
21
|
if (range.startRow === range.endRow && range.startColumn === range.endColumn) {
|
|
24
22
|
if (!grid.metrics) throw new Error('grid.metrics not set');
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var {
|
|
29
|
-
startRow: row,
|
|
30
|
-
startColumn: column
|
|
31
|
-
} = range;
|
|
23
|
+
var model = grid.props.model;
|
|
24
|
+
var row = range.startRow,
|
|
25
|
+
column = range.startColumn;
|
|
32
26
|
if (row != null) {
|
|
33
27
|
var modelRow = grid.getModelRow(row);
|
|
34
28
|
if ((column === 0 || column == null) && isExpandableGridModel(model) && model.isRowExpandable(modelRow)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeKeyHandler.js","names":["isExpandableGridModel","KeyHandler","TreeKeyHandler","onDown","event","grid","key","handleExpandKey","selectedRanges","state","length","range","startRow","endRow","startColumn","endColumn","metrics","Error","model","props","row","column","modelRow","getModelRow","isRowExpandable","toggleRowExpanded"],"sources":["../../src/key-handlers/TreeKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isExpandableGridModel } from '../ExpandableGridModel';\nimport type Grid from '../Grid';\nimport type GridRange from '../GridRange';\nimport KeyHandler from '../KeyHandler';\n\nclass TreeKeyHandler extends KeyHandler {\n onDown(event: KeyboardEvent, grid: Grid): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ': {\n return this.handleExpandKey(event, grid);\n }\n default:\n break;\n }\n return false;\n }\n\n handleExpandKey(event: KeyboardEvent, grid: Grid): boolean {\n const { selectedRanges } = grid.state;\n if (selectedRanges.length === 1) {\n const range = selectedRanges[0] as GridRange;\n if (\n range.startRow === range.endRow &&\n range.startColumn === range.endColumn\n ) {\n if (!grid.metrics) throw new Error('grid.metrics not set');\n\n const { model } = grid.props;\n const { startRow: row, startColumn: column } = range;\n if (row != null) {\n const modelRow = grid.getModelRow(row);\n if (\n (column === 0 || column == null) &&\n isExpandableGridModel(model) &&\n model.isRowExpandable(modelRow)\n ) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n\nexport default TreeKeyHandler;\n"],"mappings":"AAAA;AAAA,SACSA,qBAAqB;AAAA,OAGvBC,UAAU;AAEjB,MAAMC,cAAc,SAASD,UAAU,CAAC;EACtCE,MAAMA,CAACC,KAAoB,EAAEC,IAAU,EAAW;IAChD,QAAQD,KAAK,CAACE,GAAG;MACf,KAAK,OAAO;MACZ,KAAK,GAAG;QAAE;UACR,OAAO,IAAI,CAACC,eAAe,CAACH,KAAK,EAAEC,IAAI,CAAC;QAC1C;MACA;QACE;IACJ;IACA,OAAO,KAAK;EACd;EAEAE,eAAeA,CAACH,KAAoB,EAAEC,IAAU,EAAW;IACzD,
|
|
1
|
+
{"version":3,"file":"TreeKeyHandler.js","names":["isExpandableGridModel","KeyHandler","TreeKeyHandler","onDown","event","grid","key","handleExpandKey","selectedRanges","state","length","range","startRow","endRow","startColumn","endColumn","metrics","Error","model","props","row","column","modelRow","getModelRow","isRowExpandable","toggleRowExpanded"],"sources":["../../src/key-handlers/TreeKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isExpandableGridModel } from '../ExpandableGridModel';\nimport type Grid from '../Grid';\nimport type GridRange from '../GridRange';\nimport KeyHandler from '../KeyHandler';\n\nclass TreeKeyHandler extends KeyHandler {\n onDown(event: KeyboardEvent, grid: Grid): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ': {\n return this.handleExpandKey(event, grid);\n }\n default:\n break;\n }\n return false;\n }\n\n handleExpandKey(event: KeyboardEvent, grid: Grid): boolean {\n const { selectedRanges } = grid.state;\n if (selectedRanges.length === 1) {\n const range = selectedRanges[0] as GridRange;\n if (\n range.startRow === range.endRow &&\n range.startColumn === range.endColumn\n ) {\n if (!grid.metrics) throw new Error('grid.metrics not set');\n\n const { model } = grid.props;\n const { startRow: row, startColumn: column } = range;\n if (row != null) {\n const modelRow = grid.getModelRow(row);\n if (\n (column === 0 || column == null) &&\n isExpandableGridModel(model) &&\n model.isRowExpandable(modelRow)\n ) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n\nexport default TreeKeyHandler;\n"],"mappings":"AAAA;AAAA,SACSA,qBAAqB;AAAA,OAGvBC,UAAU;AAEjB,MAAMC,cAAc,SAASD,UAAU,CAAC;EACtCE,MAAMA,CAACC,KAAoB,EAAEC,IAAU,EAAW;IAChD,QAAQD,KAAK,CAACE,GAAG;MACf,KAAK,OAAO;MACZ,KAAK,GAAG;QAAE;UACR,OAAO,IAAI,CAACC,eAAe,CAACH,KAAK,EAAEC,IAAI,CAAC;QAC1C;MACA;QACE;IACJ;IACA,OAAO,KAAK;EACd;EAEAE,eAAeA,CAACH,KAAoB,EAAEC,IAAU,EAAW;IACzD,IAAQG,cAAc,GAAKH,IAAI,CAACI,KAAK,CAA7BD,cAAc;IACtB,IAAIA,cAAc,CAACE,MAAM,KAAK,CAAC,EAAE;MAC/B,IAAMC,KAAK,GAAGH,cAAc,CAAC,CAAC,CAAc;MAC5C,IACEG,KAAK,CAACC,QAAQ,KAAKD,KAAK,CAACE,MAAM,IAC/BF,KAAK,CAACG,WAAW,KAAKH,KAAK,CAACI,SAAS,EACrC;QACA,IAAI,CAACV,IAAI,CAACW,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;QAE1D,IAAQC,KAAK,GAAKb,IAAI,CAACc,KAAK,CAApBD,KAAK;QACb,IAAkBE,GAAG,GAA0BT,KAAK,CAA5CC,QAAQ;UAAoBS,MAAM,GAAKV,KAAK,CAA7BG,WAAW;QAClC,IAAIM,GAAG,IAAI,IAAI,EAAE;UACf,IAAME,QAAQ,GAAGjB,IAAI,CAACkB,WAAW,CAACH,GAAG,CAAC;UACtC,IACE,CAACC,MAAM,KAAK,CAAC,IAAIA,MAAM,IAAI,IAAI,KAC/BrB,qBAAqB,CAACkB,KAAK,CAAC,IAC5BA,KAAK,CAACM,eAAe,CAACF,QAAQ,CAAC,EAC/B;YACAjB,IAAI,CAACoB,iBAAiB,CAACL,GAAG,CAAC;YAC3B,OAAO,IAAI;UACb;QACF;MACF;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAelB,cAAc","ignoreList":[]}
|
|
@@ -7,13 +7,9 @@ import GridRange from "../GridRange.js";
|
|
|
7
7
|
*/
|
|
8
8
|
class EditMouseHandler extends GridMouseHandler {
|
|
9
9
|
onDoubleClick(_ref, grid) {
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} = _ref;
|
|
14
|
-
var {
|
|
15
|
-
model
|
|
16
|
-
} = grid.props;
|
|
10
|
+
var column = _ref.column,
|
|
11
|
+
row = _ref.row;
|
|
12
|
+
var model = grid.props.model;
|
|
17
13
|
if (isEditableGridModel(model) && column != null && row != null && model.isEditableRange(GridRange.makeCell(column, row))) {
|
|
18
14
|
grid.startEditing(column, row);
|
|
19
15
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditMouseHandler.js","names":["isEditableGridModel","GridMouseHandler","GridRange","EditMouseHandler","onDoubleClick","_ref","grid","column","row","model","props","isEditableRange","makeCell","startEditing"],"sources":["../../src/mouse-handlers/EditMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isEditableGridModel } from '../EditableGridModel';\nimport { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport { type GridPoint } from '../GridUtils';\n\n/**\n * Handles clicking on a cell to edit it in an editable grid\n */\nclass EditMouseHandler extends GridMouseHandler {\n onDoubleClick({ column, row }: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n if (\n isEditableGridModel(model) &&\n column != null &&\n row != null &&\n model.isEditableRange(GridRange.makeCell(column, row))\n ) {\n grid.startEditing(column, row);\n return true;\n }\n return false;\n }\n}\n\nexport default EditMouseHandler;\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB;AAAA,OAGrBC,gBAAgB;AAAA,OAChBC,SAAS;AAGhB;AACA;AACA;AACA,MAAMC,gBAAgB,SAASF,gBAAgB,CAAC;EAC9CG,aAAaA,CAAAC,IAAA,EAA6BC,IAAU,EAAsB;IAAA,
|
|
1
|
+
{"version":3,"file":"EditMouseHandler.js","names":["isEditableGridModel","GridMouseHandler","GridRange","EditMouseHandler","onDoubleClick","_ref","grid","column","row","model","props","isEditableRange","makeCell","startEditing"],"sources":["../../src/mouse-handlers/EditMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { isEditableGridModel } from '../EditableGridModel';\nimport { type EventHandlerResult } from '../EventHandlerResult';\nimport type Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport { type GridPoint } from '../GridUtils';\n\n/**\n * Handles clicking on a cell to edit it in an editable grid\n */\nclass EditMouseHandler extends GridMouseHandler {\n onDoubleClick({ column, row }: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n if (\n isEditableGridModel(model) &&\n column != null &&\n row != null &&\n model.isEditableRange(GridRange.makeCell(column, row))\n ) {\n grid.startEditing(column, row);\n return true;\n }\n return false;\n }\n}\n\nexport default EditMouseHandler;\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB;AAAA,OAGrBC,gBAAgB;AAAA,OAChBC,SAAS;AAGhB;AACA;AACA;AACA,MAAMC,gBAAgB,SAASF,gBAAgB,CAAC;EAC9CG,aAAaA,CAAAC,IAAA,EAA6BC,IAAU,EAAsB;IAAA,IAA1DC,MAAM,GAAAF,IAAA,CAANE,MAAM;MAAEC,GAAG,GAAAH,IAAA,CAAHG,GAAG;IACzB,IAAQC,KAAK,GAAKH,IAAI,CAACI,KAAK,CAApBD,KAAK;IACb,IACET,mBAAmB,CAACS,KAAK,CAAC,IAC1BF,MAAM,IAAI,IAAI,IACdC,GAAG,IAAI,IAAI,IACXC,KAAK,CAACE,eAAe,CAACT,SAAS,CAACU,QAAQ,CAACL,MAAM,EAAEC,GAAG,CAAC,CAAC,EACtD;MACAF,IAAI,CAACO,YAAY,CAACN,MAAM,EAAEC,GAAG,CAAC;MAC9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeL,gBAAgB","ignoreList":[]}
|
|
@@ -3,6 +3,12 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
3
3
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
5
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
7
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
9
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
11
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
6
12
|
import clamp from 'lodash.clamp';
|
|
7
13
|
import { assertNotNull } from '@deephaven/utils';
|
|
8
14
|
import GridUtils from "../GridUtils.js";
|
|
@@ -22,17 +28,15 @@ var SCROLL_DELTA = 10;
|
|
|
22
28
|
*/
|
|
23
29
|
function getColumnInfo(visibleIndex, depth, metrics, model) {
|
|
24
30
|
var _modelColumns$get;
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
maxX
|
|
35
|
-
} = metrics;
|
|
31
|
+
var modelColumns = metrics.modelColumns,
|
|
32
|
+
movedColumns = metrics.movedColumns,
|
|
33
|
+
allColumnXs = metrics.allColumnXs,
|
|
34
|
+
columnCount = metrics.columnCount,
|
|
35
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
36
|
+
userColumnWidths = metrics.userColumnWidths,
|
|
37
|
+
calculatedColumnWidths = metrics.calculatedColumnWidths,
|
|
38
|
+
floatingLeftWidth = metrics.floatingLeftWidth,
|
|
39
|
+
maxX = metrics.maxX;
|
|
36
40
|
if (depth == null || visibleIndex == null || visibleIndex > columnCount || visibleIndex < 0) {
|
|
37
41
|
return null;
|
|
38
42
|
}
|
|
@@ -44,7 +48,10 @@ function getColumnInfo(visibleIndex, depth, metrics, model) {
|
|
|
44
48
|
var range;
|
|
45
49
|
if (group != null) {
|
|
46
50
|
var _allColumnXs$get, _allColumnXs$get2, _allColumnWidths$get;
|
|
47
|
-
var
|
|
51
|
+
var _group$getVisibleRang = group.getVisibleRange(movedColumns),
|
|
52
|
+
_group$getVisibleRang2 = _slicedToArray(_group$getVisibleRang, 2),
|
|
53
|
+
startVisibleIndex = _group$getVisibleRang2[0],
|
|
54
|
+
endVisibleIndex = _group$getVisibleRang2[1];
|
|
48
55
|
left = (_allColumnXs$get = allColumnXs.get(startVisibleIndex)) !== null && _allColumnXs$get !== void 0 ? _allColumnXs$get : floatingLeftWidth;
|
|
49
56
|
right = ((_allColumnXs$get2 = allColumnXs.get(endVisibleIndex)) !== null && _allColumnXs$get2 !== void 0 ? _allColumnXs$get2 : maxX) + ((_allColumnWidths$get = allColumnWidths.get(endVisibleIndex)) !== null && _allColumnWidths$get !== void 0 ? _allColumnWidths$get : 0);
|
|
50
57
|
range = [startVisibleIndex, endVisibleIndex];
|
|
@@ -86,21 +93,17 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
86
93
|
}
|
|
87
94
|
this.scrollingDirection = direction;
|
|
88
95
|
this.scrollingInterval = window.setInterval(() => {
|
|
89
|
-
var
|
|
90
|
-
metrics
|
|
91
|
-
} = grid;
|
|
96
|
+
var metrics = grid.metrics;
|
|
92
97
|
if (!metrics) {
|
|
93
98
|
return;
|
|
94
99
|
}
|
|
95
|
-
var
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
allColumnWidths
|
|
103
|
-
} = metrics;
|
|
100
|
+
var left = metrics.left,
|
|
101
|
+
lastLeft = metrics.lastLeft,
|
|
102
|
+
leftOffset = metrics.leftOffset,
|
|
103
|
+
userColumnWidths = metrics.userColumnWidths,
|
|
104
|
+
calculatedColumnWidths = metrics.calculatedColumnWidths,
|
|
105
|
+
movedColumns = metrics.movedColumns,
|
|
106
|
+
allColumnWidths = metrics.allColumnWidths;
|
|
104
107
|
var nextLeft = left;
|
|
105
108
|
var nextOffset = leftOffset;
|
|
106
109
|
if (direction === 'left') {
|
|
@@ -135,10 +138,9 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
135
138
|
}
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
|
-
var
|
|
139
|
-
mouseX,
|
|
140
|
-
mouseY
|
|
141
|
-
} = grid.state;
|
|
141
|
+
var _grid$state = grid.state,
|
|
142
|
+
mouseX = _grid$state.mouseX,
|
|
143
|
+
mouseY = _grid$state.mouseY;
|
|
142
144
|
if (metrics == null || mouseX == null || mouseY == null) {
|
|
143
145
|
return;
|
|
144
146
|
}
|
|
@@ -162,17 +164,11 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
162
164
|
return false;
|
|
163
165
|
}
|
|
164
166
|
onDown(gridPoint, grid) {
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
column,
|
|
171
|
-
columnHeaderDepth
|
|
172
|
-
} = gridPoint;
|
|
173
|
-
var {
|
|
174
|
-
metrics
|
|
175
|
-
} = grid;
|
|
167
|
+
var model = grid.props.model;
|
|
168
|
+
var x = gridPoint.x,
|
|
169
|
+
column = gridPoint.column,
|
|
170
|
+
columnHeaderDepth = gridPoint.columnHeaderDepth;
|
|
171
|
+
var metrics = grid.metrics;
|
|
176
172
|
if (!metrics) throw new Error('Metrics not set');
|
|
177
173
|
var columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);
|
|
178
174
|
if (column == null || columnInfo == null || columnHeaderDepth == null) {
|
|
@@ -183,9 +179,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
183
179
|
if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {
|
|
184
180
|
return false;
|
|
185
181
|
}
|
|
186
|
-
var
|
|
187
|
-
rowHeaderWidth
|
|
188
|
-
} = metrics;
|
|
182
|
+
var rowHeaderWidth = metrics.rowHeaderWidth;
|
|
189
183
|
this.initialGridPoint = gridPoint;
|
|
190
184
|
this.draggingColumn = null;
|
|
191
185
|
this.cursor = null;
|
|
@@ -199,22 +193,12 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
199
193
|
if (this.draggingOffset === undefined || this.initialGridPoint === undefined || this.initialOffset === undefined) {
|
|
200
194
|
return false;
|
|
201
195
|
}
|
|
202
|
-
var
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
var
|
|
207
|
-
|
|
208
|
-
} = this.initialGridPoint;
|
|
209
|
-
var {
|
|
210
|
-
model
|
|
211
|
-
} = grid.props;
|
|
212
|
-
var {
|
|
213
|
-
draggingColumn
|
|
214
|
-
} = this;
|
|
215
|
-
var {
|
|
216
|
-
metrics
|
|
217
|
-
} = grid;
|
|
196
|
+
var mouseX = gridPoint.x,
|
|
197
|
+
mouseY = gridPoint.y;
|
|
198
|
+
var columnHeaderDepth = this.initialGridPoint.columnHeaderDepth;
|
|
199
|
+
var model = grid.props.model;
|
|
200
|
+
var draggingColumn = this.draggingColumn;
|
|
201
|
+
var metrics = grid.metrics;
|
|
218
202
|
if (!metrics) throw new Error('Metrics not set');
|
|
219
203
|
|
|
220
204
|
// before considering it a drag, the mouse must have moved a minimum distance
|
|
@@ -281,13 +265,9 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
281
265
|
if (this.draggingOffset === undefined || this.initialGridPoint === undefined || this.initialOffset === undefined || this.draggingColumn == null || deltaX === 0) {
|
|
282
266
|
return;
|
|
283
267
|
}
|
|
284
|
-
var
|
|
285
|
-
metrics
|
|
286
|
-
} = grid;
|
|
268
|
+
var metrics = grid.metrics;
|
|
287
269
|
assertNotNull(metrics, 'Metrics not set');
|
|
288
|
-
var
|
|
289
|
-
gridX
|
|
290
|
-
} = metrics;
|
|
270
|
+
var gridX = metrics.gridX;
|
|
291
271
|
|
|
292
272
|
// Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again
|
|
293
273
|
if (this.initialOffset !== this.draggingOffset) {
|
|
@@ -307,21 +287,13 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
307
287
|
});
|
|
308
288
|
return;
|
|
309
289
|
}
|
|
310
|
-
var
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
var
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
movedColumns
|
|
318
|
-
} = grid.state;
|
|
319
|
-
var {
|
|
320
|
-
floatingLeftWidth,
|
|
321
|
-
width,
|
|
322
|
-
columnHeaderMaxDepth,
|
|
323
|
-
allColumnXs
|
|
324
|
-
} = metrics;
|
|
290
|
+
var draggingColumnDepth = this.draggingColumn.depth;
|
|
291
|
+
var model = grid.props.model;
|
|
292
|
+
var movedColumns = grid.state.movedColumns;
|
|
293
|
+
var floatingLeftWidth = metrics.floatingLeftWidth,
|
|
294
|
+
width = metrics.width,
|
|
295
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth,
|
|
296
|
+
allColumnXs = metrics.allColumnXs;
|
|
325
297
|
var isDraggingLeft = deltaX < 0;
|
|
326
298
|
var draggingColumn = getColumnInfo(this.draggingColumn.range[0], draggingColumnDepth, metrics, model);
|
|
327
299
|
if (!draggingColumn) {
|
|
@@ -367,9 +339,9 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
367
339
|
if (swapColumn.visibleIndex > parentVisibleRange[1]) {
|
|
368
340
|
var _getColumnInfo;
|
|
369
341
|
var _newMovedColumns2 = this.moveColumn(draggingColumn, parentVisibleRange[1] - (draggingColumn.range[1] - draggingColumn.range[0]), movedColumns);
|
|
370
|
-
var {
|
|
371
|
-
right
|
|
372
|
-
|
|
342
|
+
var _ref3 = (_getColumnInfo = getColumnInfo(parentVisibleRange[1], 0, metrics, model)) !== null && _getColumnInfo !== void 0 ? _getColumnInfo : {},
|
|
343
|
+
_ref3$right = _ref3.right,
|
|
344
|
+
parentRight = _ref3$right === void 0 ? 0 : _ref3$right;
|
|
373
345
|
this.draggingOffset = mouseX - (parentRight - draggingColumn.width);
|
|
374
346
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
375
347
|
left: mouseX - this.draggingOffset - gridX
|