@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
package/dist/GridUtils.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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; } }
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
8
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3
9
|
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; }
|
|
@@ -33,18 +39,15 @@ export class GridUtils {
|
|
|
33
39
|
};
|
|
34
40
|
}
|
|
35
41
|
static getCellInfoFromXY(x, y, metrics) {
|
|
36
|
-
var
|
|
37
|
-
row,
|
|
38
|
-
column
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
modelColumns,
|
|
46
|
-
modelRows
|
|
47
|
-
} = metrics;
|
|
42
|
+
var _GridUtils$getGridPoi = GridUtils.getGridPointFromXY(x, y, metrics),
|
|
43
|
+
row = _GridUtils$getGridPoi.row,
|
|
44
|
+
column = _GridUtils$getGridPoi.column;
|
|
45
|
+
var allColumnWidths = metrics.allColumnWidths,
|
|
46
|
+
allRowHeights = metrics.allRowHeights,
|
|
47
|
+
allColumnXs = metrics.allColumnXs,
|
|
48
|
+
allRowYs = metrics.allRowYs,
|
|
49
|
+
modelColumns = metrics.modelColumns,
|
|
50
|
+
modelRows = metrics.modelRows;
|
|
48
51
|
var modelRow = row !== null ? modelRows.get(row) : null;
|
|
49
52
|
var modelColumn = column !== null ? modelColumns.get(column) : null;
|
|
50
53
|
var left = column !== null ? allColumnXs.get(column) : null;
|
|
@@ -64,10 +67,8 @@ export class GridUtils {
|
|
|
64
67
|
}
|
|
65
68
|
static getColumnHeaderDepthAtY(y, metrics) {
|
|
66
69
|
var row = GridUtils.getRowAtY(y, metrics);
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
columnHeaderMaxDepth
|
|
70
|
-
} = metrics;
|
|
70
|
+
var columnHeaderHeight = metrics.columnHeaderHeight,
|
|
71
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth;
|
|
71
72
|
if (row === null && y <= columnHeaderHeight * columnHeaderMaxDepth) {
|
|
72
73
|
return clamp(columnHeaderMaxDepth - Math.ceil(y / columnHeaderHeight), 0, columnHeaderMaxDepth - 1);
|
|
73
74
|
}
|
|
@@ -204,15 +205,13 @@ export class GridUtils {
|
|
|
204
205
|
*/
|
|
205
206
|
static getColumnAtX(x, metrics) {
|
|
206
207
|
var ignoreFloating = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
207
|
-
var
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
gridX
|
|
215
|
-
} = metrics;
|
|
208
|
+
var columnCount = metrics.columnCount,
|
|
209
|
+
floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
210
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
211
|
+
visibleColumns = metrics.visibleColumns,
|
|
212
|
+
allColumnXs = metrics.allColumnXs,
|
|
213
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
214
|
+
gridX = metrics.gridX;
|
|
216
215
|
if (x < gridX) {
|
|
217
216
|
return null;
|
|
218
217
|
}
|
|
@@ -226,15 +225,13 @@ export class GridUtils {
|
|
|
226
225
|
* @returns Index of the row at that coordinate, or null if no row matches
|
|
227
226
|
*/
|
|
228
227
|
static getRowAtY(y, metrics) {
|
|
229
|
-
var
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
gridY
|
|
237
|
-
} = metrics;
|
|
228
|
+
var floatingTopRowCount = metrics.floatingTopRowCount,
|
|
229
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
230
|
+
rowCount = metrics.rowCount,
|
|
231
|
+
visibleRows = metrics.visibleRows,
|
|
232
|
+
allRowYs = metrics.allRowYs,
|
|
233
|
+
allRowHeights = metrics.allRowHeights,
|
|
234
|
+
gridY = metrics.gridY;
|
|
238
235
|
if (y < gridY) {
|
|
239
236
|
return null;
|
|
240
237
|
}
|
|
@@ -270,11 +267,9 @@ export class GridUtils {
|
|
|
270
267
|
* @returns Index of the next visible item, or null if no more are visible
|
|
271
268
|
*/
|
|
272
269
|
static getNextShownColumn(startIndex, metrics) {
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
userColumnWidths
|
|
277
|
-
} = metrics;
|
|
270
|
+
var modelColumns = metrics.modelColumns,
|
|
271
|
+
visibleColumns = metrics.visibleColumns,
|
|
272
|
+
userColumnWidths = metrics.userColumnWidths;
|
|
278
273
|
return GridUtils.getNextShownItem(startIndex, modelColumns, visibleColumns, userColumnWidths);
|
|
279
274
|
}
|
|
280
275
|
|
|
@@ -285,81 +280,81 @@ export class GridUtils {
|
|
|
285
280
|
* @returns Index of the next visible item, or null if no more are visible
|
|
286
281
|
*/
|
|
287
282
|
static getNextShownRow(startIndex, metrics) {
|
|
288
|
-
var
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
userRowHeights
|
|
292
|
-
} = metrics;
|
|
283
|
+
var modelRows = metrics.modelRows,
|
|
284
|
+
visibleRows = metrics.visibleRows,
|
|
285
|
+
userRowHeights = metrics.userRowHeights;
|
|
293
286
|
return GridUtils.getNextShownItem(startIndex, modelRows, visibleRows, userRowHeights);
|
|
294
287
|
}
|
|
295
288
|
|
|
296
289
|
/**
|
|
297
|
-
*
|
|
290
|
+
* Determine whether two adjacent columns belong to the same column-header group
|
|
291
|
+
* at the given depth.
|
|
298
292
|
*
|
|
299
|
-
* -
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
* -
|
|
305
|
-
*
|
|
306
|
-
* keep their existing behavior.
|
|
307
|
-
* - The check is symmetric across the boundary: a separator is drawn at either
|
|
308
|
-
* outer edge of a group cell, including the left edge of a group that is preceded
|
|
309
|
-
* by an ungrouped column (empty band). Only a boundary with an empty band on
|
|
310
|
-
* both sides has no separator.
|
|
293
|
+
* - When the model exposes group instances via `getColumnHeaderGroup`, identity
|
|
294
|
+
* decides: two distinct group instances that happen to share a display name
|
|
295
|
+
* (e.g. pivot Totals groups) are treated as different groups.
|
|
296
|
+
* - When only one side has a declared group, they are different groups.
|
|
297
|
+
* - When neither side has a declared group, fall back to header-text equality so
|
|
298
|
+
* plain grouped-header models (which express grouping only through repeated
|
|
299
|
+
* text) keep their existing behavior.
|
|
311
300
|
*
|
|
312
301
|
* @param model The grid model
|
|
313
302
|
* @param depth The header depth to check at
|
|
314
|
-
* @param columnIndex The
|
|
315
|
-
* @param
|
|
316
|
-
* @returns true if
|
|
303
|
+
* @param columnIndex The first model column index
|
|
304
|
+
* @param otherColumnIndex The second model column index
|
|
305
|
+
* @returns true if both columns are part of the same group at this depth
|
|
317
306
|
*/
|
|
318
|
-
static
|
|
319
|
-
|
|
320
|
-
|
|
307
|
+
static isSameColumnGroupAtDepth(model, depth, columnIndex, otherColumnIndex) {
|
|
308
|
+
var groupA = model.getColumnHeaderGroup(columnIndex, depth);
|
|
309
|
+
var groupB = model.getColumnHeaderGroup(otherColumnIndex, depth);
|
|
310
|
+
if (groupA != null && groupB != null) {
|
|
311
|
+
return groupA === groupB;
|
|
321
312
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
if (depth === 0) {
|
|
325
|
-
return true;
|
|
313
|
+
if (groupA != null || groupB != null) {
|
|
314
|
+
return false;
|
|
326
315
|
}
|
|
327
316
|
|
|
328
|
-
//
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
var hasHeaderCellA = groupA != null || model.textForColumnHeader(columnIndex, depth) != null;
|
|
332
|
-
|
|
333
|
-
// Right edge of the last column: a separator exists only if a cell is drawn
|
|
334
|
-
// above it (otherwise it is the right edge of an empty band).
|
|
335
|
-
if (nextColumnIndex == null) {
|
|
336
|
-
return hasHeaderCellA;
|
|
337
|
-
}
|
|
338
|
-
var groupB = model.getColumnHeaderGroup(nextColumnIndex, depth);
|
|
339
|
-
var hasHeaderCellB = groupB != null || model.textForColumnHeader(nextColumnIndex, depth) != null;
|
|
317
|
+
// Neither side has a declared group; fall back to text equality
|
|
318
|
+
return model.textForColumnHeader(columnIndex, depth) === model.textForColumnHeader(otherColumnIndex, depth);
|
|
319
|
+
}
|
|
340
320
|
|
|
341
|
-
|
|
342
|
-
|
|
321
|
+
/**
|
|
322
|
+
* Check if a separator exists between the column at `visibleIndex` and the
|
|
323
|
+
* column immediately after it at a given header depth.
|
|
324
|
+
*
|
|
325
|
+
* - At leaf depth (0), every model column has a separator on its trailing edge.
|
|
326
|
+
* - At deeper depths, separator existence follows column-header-group identity
|
|
327
|
+
* (see {@link isSameColumnGroupAtDepth}). Distinct group instances that share a
|
|
328
|
+
* display name (e.g. pivot Totals groups) are correctly treated as separate.
|
|
329
|
+
* - The true trailing edge of the table (the last column) always has a separator.
|
|
330
|
+
*
|
|
331
|
+
* The next model column is resolved from `visibleIndex + 1` so that an off-screen
|
|
332
|
+
* neighbor is handled correctly and is not mistaken for the table's trailing edge.
|
|
333
|
+
*
|
|
334
|
+
* @param model The grid model
|
|
335
|
+
* @param depth The header depth to check at
|
|
336
|
+
* @param visibleIndex The visible index of the current column
|
|
337
|
+
* @param columnCount The total number of columns in the model
|
|
338
|
+
* @param movedColumns The current column-move operations
|
|
339
|
+
* @returns true if a separator should be shown, false otherwise
|
|
340
|
+
*/
|
|
341
|
+
static hasColumnSeparatorAtDepth(model, depth, visibleIndex, columnCount, movedColumns) {
|
|
342
|
+
if (depth == null || visibleIndex == null) {
|
|
343
343
|
return false;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
//
|
|
347
|
-
|
|
348
|
-
// a group followed by one).
|
|
349
|
-
if (hasHeaderCellA !== hasHeaderCellB) {
|
|
346
|
+
// True trailing edge of the table
|
|
347
|
+
if (visibleIndex >= columnCount - 1) {
|
|
350
348
|
return true;
|
|
351
349
|
}
|
|
352
350
|
|
|
353
|
-
//
|
|
354
|
-
if (
|
|
355
|
-
return groupA !== groupB;
|
|
356
|
-
}
|
|
357
|
-
if (groupA != null || groupB != null) {
|
|
351
|
+
// Leaf depth: every distinct model column is a physical boundary
|
|
352
|
+
if (depth === 0) {
|
|
358
353
|
return true;
|
|
359
354
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
return
|
|
355
|
+
var columnIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);
|
|
356
|
+
var nextColumnIndex = GridUtils.getModelIndex(visibleIndex + 1, movedColumns);
|
|
357
|
+
return !GridUtils.isSameColumnGroupAtDepth(model, depth, columnIndex, nextColumnIndex);
|
|
363
358
|
}
|
|
364
359
|
|
|
365
360
|
/**
|
|
@@ -372,21 +367,18 @@ export class GridUtils {
|
|
|
372
367
|
* @returns Index of the column separator at the coordinates provided, or null if none match
|
|
373
368
|
*/
|
|
374
369
|
static getColumnSeparatorIndex(x, y, metrics, theme, model) {
|
|
375
|
-
var
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
allowColumnResize,
|
|
388
|
-
headerSeparatorHandleSize
|
|
389
|
-
} = theme;
|
|
370
|
+
var rowHeaderWidth = metrics.rowHeaderWidth,
|
|
371
|
+
columnHeaderHeight = metrics.columnHeaderHeight,
|
|
372
|
+
floatingColumns = metrics.floatingColumns,
|
|
373
|
+
floatingLeftWidth = metrics.floatingLeftWidth,
|
|
374
|
+
visibleColumns = metrics.visibleColumns,
|
|
375
|
+
allColumnXs = metrics.allColumnXs,
|
|
376
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
377
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth,
|
|
378
|
+
columnCount = metrics.columnCount,
|
|
379
|
+
movedColumns = metrics.movedColumns;
|
|
380
|
+
var allowColumnResize = theme.allowColumnResize,
|
|
381
|
+
headerSeparatorHandleSize = theme.headerSeparatorHandleSize;
|
|
390
382
|
if (columnHeaderMaxDepth * columnHeaderHeight < y || !allowColumnResize || headerSeparatorHandleSize <= 0) {
|
|
391
383
|
return null;
|
|
392
384
|
}
|
|
@@ -411,7 +403,7 @@ export class GridUtils {
|
|
|
411
403
|
}
|
|
412
404
|
var minX = midX - halfSeparatorSize;
|
|
413
405
|
var maxX = midX + halfSeparatorSize;
|
|
414
|
-
if (minX <= gridX && gridX <= maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth,
|
|
406
|
+
if (minX <= gridX && gridX <= maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, column, columnCount, movedColumns)) {
|
|
415
407
|
return column;
|
|
416
408
|
}
|
|
417
409
|
isPreviousColumnHidden = isColumnHidden;
|
|
@@ -440,7 +432,7 @@ export class GridUtils {
|
|
|
440
432
|
}
|
|
441
433
|
var _minX = _midX - halfSeparatorSize;
|
|
442
434
|
var _maxX = _midX + halfSeparatorSize;
|
|
443
|
-
if (_minX <= gridX && gridX <= _maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth,
|
|
435
|
+
if (_minX <= gridX && gridX <= _maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, _column, columnCount, movedColumns)) {
|
|
444
436
|
return _column;
|
|
445
437
|
}
|
|
446
438
|
isPreviousColumnHidden = _isColumnHidden;
|
|
@@ -466,9 +458,7 @@ export class GridUtils {
|
|
|
466
458
|
* @returns True if the column is hidden, false otherwise
|
|
467
459
|
*/
|
|
468
460
|
static isColumnHidden(columnIndex, metrics) {
|
|
469
|
-
var
|
|
470
|
-
allColumnWidths
|
|
471
|
-
} = metrics;
|
|
461
|
+
var allColumnWidths = metrics.allColumnWidths;
|
|
472
462
|
return GridUtils.isItemHidden(columnIndex, allColumnWidths);
|
|
473
463
|
}
|
|
474
464
|
|
|
@@ -482,11 +472,9 @@ export class GridUtils {
|
|
|
482
472
|
if (row == null) {
|
|
483
473
|
return false;
|
|
484
474
|
}
|
|
485
|
-
var
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
rowCount
|
|
489
|
-
} = metrics;
|
|
475
|
+
var floatingTopRowCount = metrics.floatingTopRowCount,
|
|
476
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
477
|
+
rowCount = metrics.rowCount;
|
|
490
478
|
return row < floatingTopRowCount || row >= rowCount - floatingBottomRowCount;
|
|
491
479
|
}
|
|
492
480
|
|
|
@@ -500,11 +488,9 @@ export class GridUtils {
|
|
|
500
488
|
if (column == null) {
|
|
501
489
|
return false;
|
|
502
490
|
}
|
|
503
|
-
var
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
columnCount
|
|
507
|
-
} = metrics;
|
|
491
|
+
var floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
492
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
493
|
+
columnCount = metrics.columnCount;
|
|
508
494
|
return column < floatingLeftColumnCount || column >= columnCount - floatingRightColumnCount;
|
|
509
495
|
}
|
|
510
496
|
|
|
@@ -539,10 +525,8 @@ export class GridUtils {
|
|
|
539
525
|
* @returns Array of items that are hidden
|
|
540
526
|
*/
|
|
541
527
|
static getHiddenColumns(columnIndex, metrics) {
|
|
542
|
-
var
|
|
543
|
-
|
|
544
|
-
allColumnWidths
|
|
545
|
-
} = metrics;
|
|
528
|
+
var visibleColumns = metrics.visibleColumns,
|
|
529
|
+
allColumnWidths = metrics.allColumnWidths;
|
|
546
530
|
return GridUtils.getHiddenItems(columnIndex, allColumnWidths, visibleColumns);
|
|
547
531
|
}
|
|
548
532
|
|
|
@@ -555,17 +539,13 @@ export class GridUtils {
|
|
|
555
539
|
* @returns Index of the row separator at the coordinates provided, or null if none match
|
|
556
540
|
*/
|
|
557
541
|
static getRowSeparatorIndex(x, y, metrics, theme) {
|
|
558
|
-
var
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
var {
|
|
566
|
-
allowRowResize,
|
|
567
|
-
headerSeparatorHandleSize
|
|
568
|
-
} = theme;
|
|
542
|
+
var rowHeaderWidth = metrics.rowHeaderWidth,
|
|
543
|
+
columnHeaderHeight = metrics.columnHeaderHeight,
|
|
544
|
+
visibleRows = metrics.visibleRows,
|
|
545
|
+
allRowYs = metrics.allRowYs,
|
|
546
|
+
allRowHeights = metrics.allRowHeights;
|
|
547
|
+
var allowRowResize = theme.allowRowResize,
|
|
548
|
+
headerSeparatorHandleSize = theme.headerSeparatorHandleSize;
|
|
569
549
|
if (rowHeaderWidth < x || !allowRowResize || headerSeparatorHandleSize <= 0) {
|
|
570
550
|
return null;
|
|
571
551
|
}
|
|
@@ -605,9 +585,7 @@ export class GridUtils {
|
|
|
605
585
|
* @returns True if the row is hidden, false otherwise
|
|
606
586
|
*/
|
|
607
587
|
static isRowHidden(rowIndex, metrics) {
|
|
608
|
-
var
|
|
609
|
-
allRowHeights
|
|
610
|
-
} = metrics;
|
|
588
|
+
var allRowHeights = metrics.allRowHeights;
|
|
611
589
|
return GridUtils.isItemHidden(rowIndex, allRowHeights);
|
|
612
590
|
}
|
|
613
591
|
|
|
@@ -618,10 +596,8 @@ export class GridUtils {
|
|
|
618
596
|
* @returns Array of items that are hidden
|
|
619
597
|
*/
|
|
620
598
|
static getHiddenRows(rowIndex, metrics) {
|
|
621
|
-
var
|
|
622
|
-
|
|
623
|
-
allRowHeights
|
|
624
|
-
} = metrics;
|
|
599
|
+
var visibleRows = metrics.visibleRows,
|
|
600
|
+
allRowHeights = metrics.allRowHeights;
|
|
625
601
|
return GridUtils.getHiddenItems(rowIndex, allRowHeights, visibleRows);
|
|
626
602
|
}
|
|
627
603
|
|
|
@@ -733,15 +709,15 @@ export class GridUtils {
|
|
|
733
709
|
var reverse = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
734
710
|
var result = [[start, end]];
|
|
735
711
|
var _loop = function _loop() {
|
|
736
|
-
var
|
|
737
|
-
from
|
|
738
|
-
to
|
|
739
|
-
} = movedItems[i];
|
|
712
|
+
var _movedItems$i = movedItems[i],
|
|
713
|
+
fromItemOrRange = _movedItems$i.from,
|
|
714
|
+
toItem = _movedItems$i.to;
|
|
740
715
|
var length = 1;
|
|
741
716
|
var fromItem;
|
|
742
717
|
if (isBoundedAxisRange(fromItemOrRange)) {
|
|
743
718
|
length = fromItemOrRange[1] - fromItemOrRange[0] + 1; // Ranges are inclusive
|
|
744
|
-
|
|
719
|
+
var _fromItemOrRange = _slicedToArray(fromItemOrRange, 1);
|
|
720
|
+
fromItem = _fromItemOrRange[0];
|
|
745
721
|
} else {
|
|
746
722
|
fromItem = fromItemOrRange;
|
|
747
723
|
}
|
|
@@ -755,17 +731,23 @@ export class GridUtils {
|
|
|
755
731
|
var currentStart = (_result$j$ = result[j][0]) !== null && _result$j$ !== void 0 ? _result$j$ : Number.NEGATIVE_INFINITY;
|
|
756
732
|
var currentEnd = (_result$j$2 = result[j][1]) !== null && _result$j$2 !== void 0 ? _result$j$2 : Number.POSITIVE_INFINITY;
|
|
757
733
|
var movedRange;
|
|
758
|
-
var currentResult = [[currentStart, fromStart - 1], [fromStart, fromEnd], [fromEnd + 1, currentEnd]].map(
|
|
759
|
-
var
|
|
734
|
+
var currentResult = [[currentStart, fromStart - 1], [fromStart, fromEnd], [fromEnd + 1, currentEnd]].map(_ref3 => {
|
|
735
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
736
|
+
s = _ref4[0],
|
|
737
|
+
e = _ref4[1];
|
|
760
738
|
return [
|
|
761
739
|
// Cap the ranges to within the current range bounds
|
|
762
740
|
Math.max(s, currentStart), Math.min(e, currentEnd)];
|
|
763
|
-
}).filter(
|
|
764
|
-
var
|
|
741
|
+
}).filter(_ref5 => {
|
|
742
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
743
|
+
s = _ref6[0],
|
|
744
|
+
e = _ref6[1];
|
|
765
745
|
return s <= e;
|
|
766
746
|
}) // Remove invalid ranges
|
|
767
747
|
.map(range => {
|
|
768
|
-
var
|
|
748
|
+
var _range = _slicedToArray(range, 2),
|
|
749
|
+
s = _range[0],
|
|
750
|
+
e = _range[1];
|
|
769
751
|
if (fromStart <= s && fromEnd >= e) {
|
|
770
752
|
// Current range in moved range
|
|
771
753
|
movedRange = [s + moveDistance, e + moveDistance];
|
|
@@ -777,7 +759,9 @@ export class GridUtils {
|
|
|
777
759
|
}
|
|
778
760
|
return range;
|
|
779
761
|
}).map(range => {
|
|
780
|
-
var
|
|
762
|
+
var _range2 = _slicedToArray(range, 2),
|
|
763
|
+
s = _range2[0],
|
|
764
|
+
e = _range2[1];
|
|
781
765
|
if (toStart > s && toStart <= e) {
|
|
782
766
|
// Moved range splits this range
|
|
783
767
|
return [[s, toStart - 1], [toStart + length, e + length]];
|
|
@@ -800,7 +784,9 @@ export class GridUtils {
|
|
|
800
784
|
|
|
801
785
|
// Return infinity values back to null
|
|
802
786
|
result = nextResult.map(_ref => {
|
|
803
|
-
var
|
|
787
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
788
|
+
s = _ref2[0],
|
|
789
|
+
e = _ref2[1];
|
|
804
790
|
return [Number.isFinite(s) ? s : null, Number.isFinite(e) ? e : null];
|
|
805
791
|
});
|
|
806
792
|
};
|
|
@@ -973,9 +959,7 @@ export class GridUtils {
|
|
|
973
959
|
* @returns True if this platform is a Mac, false otherwise
|
|
974
960
|
*/
|
|
975
961
|
static isMacPlatform() {
|
|
976
|
-
var
|
|
977
|
-
platform
|
|
978
|
-
} = window.navigator;
|
|
962
|
+
var platform = window.navigator.platform;
|
|
979
963
|
return platform.startsWith('Mac');
|
|
980
964
|
}
|
|
981
965
|
|
|
@@ -1032,22 +1016,20 @@ export class GridUtils {
|
|
|
1032
1016
|
* @returns Dimensions of the drag area in relation to the canvas they need to drag outside of to start scrolling
|
|
1033
1017
|
*/
|
|
1034
1018
|
static getScrollDragBounds(metrics, row, column) {
|
|
1035
|
-
var
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
rowCount
|
|
1050
|
-
} = metrics;
|
|
1019
|
+
var gridX = metrics.gridX,
|
|
1020
|
+
gridY = metrics.gridY,
|
|
1021
|
+
width = metrics.width,
|
|
1022
|
+
height = metrics.height,
|
|
1023
|
+
floatingTopRowCount = metrics.floatingTopRowCount,
|
|
1024
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
1025
|
+
floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
1026
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
1027
|
+
floatingLeftWidth = metrics.floatingLeftWidth,
|
|
1028
|
+
floatingRightWidth = metrics.floatingRightWidth,
|
|
1029
|
+
floatingTopHeight = metrics.floatingTopHeight,
|
|
1030
|
+
floatingBottomHeight = metrics.floatingBottomHeight,
|
|
1031
|
+
columnCount = metrics.columnCount,
|
|
1032
|
+
rowCount = metrics.rowCount;
|
|
1051
1033
|
var x1 = gridX;
|
|
1052
1034
|
var y1 = gridY;
|
|
1053
1035
|
var x2 = width;
|
|
@@ -1091,10 +1073,8 @@ export class GridUtils {
|
|
|
1091
1073
|
var pageHeight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 768;
|
|
1092
1074
|
var lineWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 20;
|
|
1093
1075
|
var lineHeight = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 20;
|
|
1094
|
-
var
|
|
1095
|
-
|
|
1096
|
-
deltaY
|
|
1097
|
-
} = wheelEvent;
|
|
1076
|
+
var deltaX = wheelEvent.deltaX,
|
|
1077
|
+
deltaY = wheelEvent.deltaY;
|
|
1098
1078
|
|
|
1099
1079
|
// Flip scroll direction if shiftKey is held on windows/linux.
|
|
1100
1080
|
// On mac, deltaX/Y values are switched at the event level when shiftKey=true.
|
|
@@ -1165,20 +1145,16 @@ export class GridUtils {
|
|
|
1165
1145
|
* @returns The token box with translated coordinates
|
|
1166
1146
|
*/
|
|
1167
1147
|
static translateTokenBox(tokenBox, metrics) {
|
|
1168
|
-
var
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
height: gridHeight,
|
|
1179
|
-
verticalBarWidth,
|
|
1180
|
-
horizontalBarHeight
|
|
1181
|
-
} = metrics;
|
|
1148
|
+
var left = tokenBox.x1,
|
|
1149
|
+
top = tokenBox.y1,
|
|
1150
|
+
right = tokenBox.x2,
|
|
1151
|
+
bottom = tokenBox.y2;
|
|
1152
|
+
var gridX = metrics.gridX,
|
|
1153
|
+
gridY = metrics.gridY,
|
|
1154
|
+
gridWidth = metrics.width,
|
|
1155
|
+
gridHeight = metrics.height,
|
|
1156
|
+
verticalBarWidth = metrics.verticalBarWidth,
|
|
1157
|
+
horizontalBarHeight = metrics.horizontalBarHeight;
|
|
1182
1158
|
|
|
1183
1159
|
// Clamp the values within the grid
|
|
1184
1160
|
var newLeft = clamp(gridX + left, gridX, gridWidth - verticalBarWidth);
|
|
@@ -1205,25 +1181,19 @@ export class GridUtils {
|
|
|
1205
1181
|
* @returns Object with width, x, and y of the text
|
|
1206
1182
|
*/
|
|
1207
1183
|
static getTextRenderMetrics(state, column, row) {
|
|
1208
|
-
var
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
} = metrics;
|
|
1222
|
-
var {
|
|
1223
|
-
cellHorizontalPadding,
|
|
1224
|
-
treeDepthIndent,
|
|
1225
|
-
treeHorizontalPadding
|
|
1226
|
-
} = theme;
|
|
1184
|
+
var metrics = state.metrics,
|
|
1185
|
+
model = state.model,
|
|
1186
|
+
theme = state.theme;
|
|
1187
|
+
var firstColumn = metrics.firstColumn,
|
|
1188
|
+
allColumnXs = metrics.allColumnXs,
|
|
1189
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
1190
|
+
allRowYs = metrics.allRowYs,
|
|
1191
|
+
allRowHeights = metrics.allRowHeights,
|
|
1192
|
+
modelRows = metrics.modelRows,
|
|
1193
|
+
modelColumns = metrics.modelColumns;
|
|
1194
|
+
var cellHorizontalPadding = theme.cellHorizontalPadding,
|
|
1195
|
+
treeDepthIndent = theme.treeDepthIndent,
|
|
1196
|
+
treeHorizontalPadding = theme.treeHorizontalPadding;
|
|
1227
1197
|
var modelRow = getOrThrow(modelRows, row);
|
|
1228
1198
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
1229
1199
|
var textAlign = model.textAlignForCell(modelColumn, modelRow);
|