@deephaven/grid 1.22.1 → 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.d.ts.map +1 -1
- package/dist/Grid.js +291 -453
- 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.js +429 -600
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.js +130 -163
- 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/GridRenderer.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 _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; }
|
|
2
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
9
|
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); }
|
|
@@ -127,9 +133,7 @@ export class GridRenderer {
|
|
|
127
133
|
* @param state The state of the grid
|
|
128
134
|
*/
|
|
129
135
|
drawCanvas(state) {
|
|
130
|
-
var
|
|
131
|
-
context
|
|
132
|
-
} = state;
|
|
136
|
+
var context = state.context;
|
|
133
137
|
context.save();
|
|
134
138
|
this.configureContext(context, state);
|
|
135
139
|
this.drawBackground(context, state);
|
|
@@ -142,35 +146,25 @@ export class GridRenderer {
|
|
|
142
146
|
context.restore();
|
|
143
147
|
}
|
|
144
148
|
configureContext(context, state) {
|
|
145
|
-
var
|
|
146
|
-
theme
|
|
147
|
-
} = state;
|
|
149
|
+
var theme = state.theme;
|
|
148
150
|
context.font = theme.font;
|
|
149
151
|
context.textBaseline = 'middle';
|
|
150
152
|
context.lineCap = 'butt';
|
|
151
153
|
}
|
|
152
154
|
drawBackground(context, state) {
|
|
153
|
-
var
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
var {
|
|
158
|
-
width,
|
|
159
|
-
height
|
|
160
|
-
} = metrics;
|
|
155
|
+
var theme = state.theme,
|
|
156
|
+
metrics = state.metrics;
|
|
157
|
+
var width = metrics.width,
|
|
158
|
+
height = metrics.height;
|
|
161
159
|
context.fillStyle = theme.backgroundColor;
|
|
162
160
|
context.fillRect(0, 0, width, height);
|
|
163
161
|
}
|
|
164
162
|
drawGrid(context, state) {
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
var {
|
|
171
|
-
gridX,
|
|
172
|
-
gridY
|
|
173
|
-
} = metrics;
|
|
163
|
+
var metrics = state.metrics,
|
|
164
|
+
draggingRow = state.draggingRow,
|
|
165
|
+
draggingColumn = state.draggingColumn;
|
|
166
|
+
var gridX = metrics.gridX,
|
|
167
|
+
gridY = metrics.gridY;
|
|
174
168
|
context.translate(gridX, gridY);
|
|
175
169
|
this.drawGridBackground(context, state, draggingRow == null && draggingColumn == null);
|
|
176
170
|
this.drawCellContents(context, state);
|
|
@@ -179,21 +173,17 @@ export class GridRenderer {
|
|
|
179
173
|
context.translate(-gridX, -gridY);
|
|
180
174
|
}
|
|
181
175
|
drawFloatingRows(context, state) {
|
|
182
|
-
var
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
columnsForRender,
|
|
194
|
-
allRowYs,
|
|
195
|
-
allRowHeights
|
|
196
|
-
} = metrics;
|
|
176
|
+
var draggingRow = state.draggingRow,
|
|
177
|
+
draggingColumn = state.draggingColumn,
|
|
178
|
+
metrics = state.metrics,
|
|
179
|
+
theme = state.theme;
|
|
180
|
+
var floatingTopRowCount = metrics.floatingTopRowCount,
|
|
181
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
182
|
+
floatingRows = metrics.floatingRows,
|
|
183
|
+
rowCount = metrics.rowCount,
|
|
184
|
+
columnsForRender = metrics.columnsForRender,
|
|
185
|
+
allRowYs = metrics.allRowYs,
|
|
186
|
+
allRowHeights = metrics.allRowHeights;
|
|
197
187
|
if (floatingRows.length === 0) {
|
|
198
188
|
return;
|
|
199
189
|
}
|
|
@@ -234,27 +224,23 @@ export class GridRenderer {
|
|
|
234
224
|
}
|
|
235
225
|
}
|
|
236
226
|
drawFloatingColumns(context, state) {
|
|
237
|
-
var
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
allColumnWidths,
|
|
255
|
-
width,
|
|
256
|
-
height
|
|
257
|
-
} = metrics;
|
|
227
|
+
var draggingRow = state.draggingRow,
|
|
228
|
+
draggingColumn = state.draggingColumn,
|
|
229
|
+
metrics = state.metrics,
|
|
230
|
+
theme = state.theme;
|
|
231
|
+
var floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
232
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
233
|
+
floatingLeftWidth = metrics.floatingLeftWidth,
|
|
234
|
+
floatingRightWidth = metrics.floatingRightWidth,
|
|
235
|
+
floatingColumns = metrics.floatingColumns,
|
|
236
|
+
gridX = metrics.gridX,
|
|
237
|
+
maxX = metrics.maxX,
|
|
238
|
+
columnCount = metrics.columnCount,
|
|
239
|
+
visibleRows = metrics.visibleRows,
|
|
240
|
+
allColumnXs = metrics.allColumnXs,
|
|
241
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
242
|
+
width = metrics.width,
|
|
243
|
+
height = metrics.height;
|
|
258
244
|
if (floatingColumns.length === 0) {
|
|
259
245
|
return;
|
|
260
246
|
}
|
|
@@ -302,28 +288,22 @@ export class GridRenderer {
|
|
|
302
288
|
}
|
|
303
289
|
}
|
|
304
290
|
drawFloatingBorders(context, state) {
|
|
305
|
-
var
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
maxY
|
|
322
|
-
} = metrics;
|
|
323
|
-
var {
|
|
324
|
-
floatingDividerOuterColor,
|
|
325
|
-
floatingDividerInnerColor
|
|
326
|
-
} = theme;
|
|
291
|
+
var metrics = state.metrics,
|
|
292
|
+
theme = state.theme;
|
|
293
|
+
var floatingTopRowCount = metrics.floatingTopRowCount,
|
|
294
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
295
|
+
floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
296
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
297
|
+
rowCount = metrics.rowCount,
|
|
298
|
+
columnCount = metrics.columnCount,
|
|
299
|
+
allRowYs = metrics.allRowYs,
|
|
300
|
+
allColumnXs = metrics.allColumnXs,
|
|
301
|
+
allRowHeights = metrics.allRowHeights,
|
|
302
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
303
|
+
maxX = metrics.maxX,
|
|
304
|
+
maxY = metrics.maxY;
|
|
305
|
+
var floatingDividerOuterColor = theme.floatingDividerOuterColor,
|
|
306
|
+
floatingDividerInnerColor = theme.floatingDividerInnerColor;
|
|
327
307
|
context.lineWidth = 3;
|
|
328
308
|
context.beginPath();
|
|
329
309
|
context.strokeStyle = floatingDividerOuterColor;
|
|
@@ -382,25 +362,21 @@ export class GridRenderer {
|
|
|
382
362
|
}
|
|
383
363
|
this.drawGridLines(context, state);
|
|
384
364
|
this.drawCellBackgrounds(context, state);
|
|
385
|
-
var
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
allColumnWidths,
|
|
401
|
-
width,
|
|
402
|
-
height
|
|
403
|
-
} = metrics;
|
|
365
|
+
var metrics = state.metrics;
|
|
366
|
+
var bottom = metrics.bottom,
|
|
367
|
+
right = metrics.right,
|
|
368
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
369
|
+
floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
370
|
+
floatingRightColumnCount = metrics.floatingRightColumnCount,
|
|
371
|
+
floatingTopRowCount = metrics.floatingTopRowCount,
|
|
372
|
+
columnCount = metrics.columnCount,
|
|
373
|
+
rowCount = metrics.rowCount,
|
|
374
|
+
allRowHeights = metrics.allRowHeights,
|
|
375
|
+
allRowYs = metrics.allRowYs,
|
|
376
|
+
allColumnXs = metrics.allColumnXs,
|
|
377
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
378
|
+
width = metrics.width,
|
|
379
|
+
height = metrics.height;
|
|
404
380
|
this.drawSelectedRanges(context, state, {
|
|
405
381
|
bottom: Math.min(bottom, rowCount - floatingBottomRowCount - 1),
|
|
406
382
|
right: Math.min(right, columnCount - floatingRightColumnCount - 1),
|
|
@@ -411,16 +387,10 @@ export class GridRenderer {
|
|
|
411
387
|
});
|
|
412
388
|
}
|
|
413
389
|
drawRowStripes(context, state) {
|
|
414
|
-
var
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
var {
|
|
419
|
-
visibleRows
|
|
420
|
-
} = metrics;
|
|
421
|
-
var {
|
|
422
|
-
rowBackgroundColors
|
|
423
|
-
} = theme;
|
|
390
|
+
var metrics = state.metrics,
|
|
391
|
+
theme = state.theme;
|
|
392
|
+
var visibleRows = metrics.visibleRows;
|
|
393
|
+
var rowBackgroundColors = theme.rowBackgroundColors;
|
|
424
394
|
if (!rowBackgroundColors) {
|
|
425
395
|
return;
|
|
426
396
|
}
|
|
@@ -429,22 +399,16 @@ export class GridRenderer {
|
|
|
429
399
|
drawRowStripesForRows(context, state, rows, rowBackgroundColors) {
|
|
430
400
|
var minX = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
|
431
401
|
var maxX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : state.metrics.maxX;
|
|
432
|
-
var
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
shadowBlur,
|
|
440
|
-
shadowColor,
|
|
441
|
-
shadowAlpha
|
|
442
|
-
} = theme;
|
|
402
|
+
var theme = state.theme,
|
|
403
|
+
metrics = state.metrics,
|
|
404
|
+
model = state.model;
|
|
405
|
+
var maxDepth = theme.maxDepth,
|
|
406
|
+
shadowBlur = theme.shadowBlur,
|
|
407
|
+
shadowColor = theme.shadowColor,
|
|
408
|
+
shadowAlpha = theme.shadowAlpha;
|
|
443
409
|
var colorSets = GridRenderer.getCachedBackgroundColors(rowBackgroundColors, maxDepth);
|
|
444
|
-
var
|
|
445
|
-
|
|
446
|
-
allRowHeights
|
|
447
|
-
} = metrics;
|
|
410
|
+
var allRowYs = metrics.allRowYs,
|
|
411
|
+
allRowHeights = metrics.allRowHeights;
|
|
448
412
|
|
|
449
413
|
// Optimize by grouping together all rows that end up with the same color
|
|
450
414
|
var colorRowMap = new Map();
|
|
@@ -525,22 +489,18 @@ export class GridRenderer {
|
|
|
525
489
|
}
|
|
526
490
|
}
|
|
527
491
|
drawMouseColumnHover(context, state) {
|
|
528
|
-
var
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
metrics
|
|
533
|
-
} = state;
|
|
492
|
+
var mouseX = state.mouseX,
|
|
493
|
+
mouseY = state.mouseY,
|
|
494
|
+
theme = state.theme,
|
|
495
|
+
metrics = state.metrics;
|
|
534
496
|
if (mouseX == null || mouseY == null) return;
|
|
535
497
|
var mouseColumn = GridUtils.getColumnAtX(mouseX, metrics);
|
|
536
498
|
if (mouseColumn == null || theme.columnHoverBackgroundColor == null) {
|
|
537
499
|
return;
|
|
538
500
|
}
|
|
539
|
-
var
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
maxY
|
|
543
|
-
} = metrics;
|
|
501
|
+
var allColumnWidths = metrics.allColumnWidths,
|
|
502
|
+
allColumnXs = metrics.allColumnXs,
|
|
503
|
+
maxY = metrics.maxY;
|
|
544
504
|
if (mouseY > maxY) {
|
|
545
505
|
return;
|
|
546
506
|
}
|
|
@@ -550,16 +510,12 @@ export class GridRenderer {
|
|
|
550
510
|
context.fillRect(x, 0, columnWidth, maxY);
|
|
551
511
|
}
|
|
552
512
|
drawMouseRowHover(context, state) {
|
|
553
|
-
var
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
metrics
|
|
558
|
-
} = state;
|
|
513
|
+
var mouseX = state.mouseX,
|
|
514
|
+
mouseY = state.mouseY,
|
|
515
|
+
theme = state.theme,
|
|
516
|
+
metrics = state.metrics;
|
|
559
517
|
if (mouseX == null || mouseY == null) return;
|
|
560
|
-
var
|
|
561
|
-
maxX
|
|
562
|
-
} = metrics;
|
|
518
|
+
var maxX = metrics.maxX;
|
|
563
519
|
if (mouseX > maxX || theme.rowHoverBackgroundColor == null) {
|
|
564
520
|
return;
|
|
565
521
|
}
|
|
@@ -570,19 +526,15 @@ export class GridRenderer {
|
|
|
570
526
|
this.drawMouseRowHoverForRow(context, state, mouseRow);
|
|
571
527
|
}
|
|
572
528
|
drawFloatingMouseRowHover(context, state) {
|
|
573
|
-
var
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
floatingBottomRowCount,
|
|
583
|
-
rowCount,
|
|
584
|
-
rowFooterWidth
|
|
585
|
-
} = metrics;
|
|
529
|
+
var mouseX = state.mouseX,
|
|
530
|
+
mouseY = state.mouseY,
|
|
531
|
+
theme = state.theme,
|
|
532
|
+
metrics = state.metrics;
|
|
533
|
+
var maxX = metrics.maxX,
|
|
534
|
+
floatingTopRowCount = metrics.floatingTopRowCount,
|
|
535
|
+
floatingBottomRowCount = metrics.floatingBottomRowCount,
|
|
536
|
+
rowCount = metrics.rowCount,
|
|
537
|
+
rowFooterWidth = metrics.rowFooterWidth;
|
|
586
538
|
if (mouseX == null || mouseY == null || mouseX > maxX + rowFooterWidth || theme.rowHoverBackgroundColor == null) {
|
|
587
539
|
return;
|
|
588
540
|
}
|
|
@@ -592,26 +544,21 @@ export class GridRenderer {
|
|
|
592
544
|
}
|
|
593
545
|
}
|
|
594
546
|
drawMouseRowHoverForRow(context, state, row) {
|
|
595
|
-
var
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
allRowHeights,
|
|
602
|
-
allRowYs,
|
|
603
|
-
maxX
|
|
604
|
-
} = metrics;
|
|
547
|
+
var metrics = state.metrics,
|
|
548
|
+
selectedRanges = state.selectedRanges,
|
|
549
|
+
theme = state.theme;
|
|
550
|
+
var allRowHeights = metrics.allRowHeights,
|
|
551
|
+
allRowYs = metrics.allRowYs,
|
|
552
|
+
maxX = metrics.maxX;
|
|
605
553
|
var y = getOrThrow(allRowYs, row);
|
|
606
554
|
var rowHeight = getOrThrow(allRowHeights, row);
|
|
607
555
|
if (theme.rowHoverBackgroundColor != null) {
|
|
608
556
|
context.fillStyle = theme.rowHoverBackgroundColor;
|
|
609
557
|
}
|
|
610
558
|
for (var i = 0; i < selectedRanges.length; i += 1) {
|
|
611
|
-
var
|
|
612
|
-
startRow,
|
|
613
|
-
endRow
|
|
614
|
-
} = selectedRanges[i];
|
|
559
|
+
var _selectedRanges$i = selectedRanges[i],
|
|
560
|
+
startRow = _selectedRanges$i.startRow,
|
|
561
|
+
endRow = _selectedRanges$i.endRow;
|
|
615
562
|
if (startRow != null && endRow != null && startRow <= row && endRow >= row) {
|
|
616
563
|
if (theme.selectedRowHoverBackgroundColor != null) {
|
|
617
564
|
context.fillStyle = theme.selectedRowHoverBackgroundColor;
|
|
@@ -622,14 +569,10 @@ export class GridRenderer {
|
|
|
622
569
|
context.fillRect(0, y, maxX, rowHeight);
|
|
623
570
|
}
|
|
624
571
|
drawGridLines(context, state) {
|
|
625
|
-
var
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
var {
|
|
630
|
-
columnsForRender,
|
|
631
|
-
visibleRows
|
|
632
|
-
} = metrics;
|
|
572
|
+
var metrics = state.metrics,
|
|
573
|
+
theme = state.theme;
|
|
574
|
+
var columnsForRender = metrics.columnsForRender,
|
|
575
|
+
visibleRows = metrics.visibleRows;
|
|
633
576
|
this.drawGridLinesForItems(context, state, columnsForRender, visibleRows, theme.gridColumnColor, theme.gridRowColor);
|
|
634
577
|
}
|
|
635
578
|
drawGridLinesForItems(context, state, columns, rows, columnColor, rowColor) {
|
|
@@ -649,13 +592,9 @@ export class GridRenderer {
|
|
|
649
592
|
context.stroke();
|
|
650
593
|
}
|
|
651
594
|
drawGridLinesForColumns(context, state, columns) {
|
|
652
|
-
var
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
var {
|
|
656
|
-
allColumnXs,
|
|
657
|
-
maxY
|
|
658
|
-
} = metrics;
|
|
595
|
+
var metrics = state.metrics;
|
|
596
|
+
var allColumnXs = metrics.allColumnXs,
|
|
597
|
+
maxY = metrics.maxY;
|
|
659
598
|
for (var i = 0; i < columns.length; i += 1) {
|
|
660
599
|
var column = columns[i];
|
|
661
600
|
var x = getOrThrow(allColumnXs, column) + 0.5;
|
|
@@ -664,13 +603,9 @@ export class GridRenderer {
|
|
|
664
603
|
}
|
|
665
604
|
}
|
|
666
605
|
drawGridLinesForRows(context, state, rows) {
|
|
667
|
-
var
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
var {
|
|
671
|
-
allRowYs,
|
|
672
|
-
maxX: metricsMaxX
|
|
673
|
-
} = metrics;
|
|
606
|
+
var metrics = state.metrics;
|
|
607
|
+
var allRowYs = metrics.allRowYs,
|
|
608
|
+
metricsMaxX = metrics.maxX;
|
|
674
609
|
var maxX = metricsMaxX;
|
|
675
610
|
|
|
676
611
|
// Draw row lines
|
|
@@ -682,13 +617,9 @@ export class GridRenderer {
|
|
|
682
617
|
}
|
|
683
618
|
}
|
|
684
619
|
drawCellBackgrounds(context, state) {
|
|
685
|
-
var
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
var {
|
|
689
|
-
columnsForRender,
|
|
690
|
-
visibleRows
|
|
691
|
-
} = metrics;
|
|
620
|
+
var metrics = state.metrics;
|
|
621
|
+
var columnsForRender = metrics.columnsForRender,
|
|
622
|
+
visibleRows = metrics.visibleRows;
|
|
692
623
|
this.drawCellBackgroundsForItems(context, state, columnsForRender, visibleRows);
|
|
693
624
|
}
|
|
694
625
|
drawCellBackgroundsForItems(context, state, columns, rows) {
|
|
@@ -704,20 +635,16 @@ export class GridRenderer {
|
|
|
704
635
|
context.restore();
|
|
705
636
|
}
|
|
706
637
|
drawCellBackground(context, state, column, row, rowAfter) {
|
|
707
|
-
var
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
allColumnWidths,
|
|
718
|
-
allRowYs,
|
|
719
|
-
allRowHeights
|
|
720
|
-
} = metrics;
|
|
638
|
+
var metrics = state.metrics,
|
|
639
|
+
model = state.model,
|
|
640
|
+
theme = state.theme;
|
|
641
|
+
var firstColumn = metrics.firstColumn,
|
|
642
|
+
modelColumns = metrics.modelColumns,
|
|
643
|
+
modelRows = metrics.modelRows,
|
|
644
|
+
allColumnXs = metrics.allColumnXs,
|
|
645
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
646
|
+
allRowYs = metrics.allRowYs,
|
|
647
|
+
allRowHeights = metrics.allRowHeights;
|
|
721
648
|
var modelRow = getOrThrow(modelRows, row);
|
|
722
649
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
723
650
|
var backgroundColor = model.backgroundColorForCell(modelColumn, modelRow, theme);
|
|
@@ -736,27 +663,19 @@ export class GridRenderer {
|
|
|
736
663
|
}
|
|
737
664
|
}
|
|
738
665
|
drawCellContents(context, state) {
|
|
739
|
-
var
|
|
740
|
-
|
|
741
|
-
} = state;
|
|
742
|
-
var {
|
|
743
|
-
columnsForRender
|
|
744
|
-
} = metrics;
|
|
666
|
+
var metrics = state.metrics;
|
|
667
|
+
var columnsForRender = metrics.columnsForRender;
|
|
745
668
|
for (var i = 0; i < columnsForRender.length; i += 1) {
|
|
746
669
|
var column = columnsForRender[i];
|
|
747
670
|
this.drawColumnCellContents(context, state, column);
|
|
748
671
|
}
|
|
749
672
|
}
|
|
750
673
|
drawColumnCellContents(context, state, column) {
|
|
751
|
-
var
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
allColumnWidths,
|
|
757
|
-
visibleRows,
|
|
758
|
-
height
|
|
759
|
-
} = metrics;
|
|
674
|
+
var metrics = state.metrics;
|
|
675
|
+
var allColumnXs = metrics.allColumnXs,
|
|
676
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
677
|
+
visibleRows = metrics.visibleRows,
|
|
678
|
+
height = metrics.height;
|
|
760
679
|
var x = getOrThrow(allColumnXs, column);
|
|
761
680
|
var columnWidth = getOrThrow(allColumnWidths, column);
|
|
762
681
|
context.save();
|
|
@@ -770,14 +689,10 @@ export class GridRenderer {
|
|
|
770
689
|
context.restore();
|
|
771
690
|
}
|
|
772
691
|
drawCellContent(context, state, column, row) {
|
|
773
|
-
var
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
var {
|
|
778
|
-
modelColumns,
|
|
779
|
-
modelRows
|
|
780
|
-
} = metrics;
|
|
692
|
+
var metrics = state.metrics,
|
|
693
|
+
model = state.model;
|
|
694
|
+
var modelColumns = metrics.modelColumns,
|
|
695
|
+
modelRows = metrics.modelRows;
|
|
781
696
|
var modelRow = getOrThrow(modelRows, row);
|
|
782
697
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
783
698
|
var renderType = model.renderTypeForCell(modelColumn, modelRow);
|
|
@@ -793,25 +708,19 @@ export class GridRenderer {
|
|
|
793
708
|
}
|
|
794
709
|
}
|
|
795
710
|
drawCellRowTreeDepthLines(context, state, row, rowAfter) {
|
|
796
|
-
var
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
theme
|
|
800
|
-
} = state;
|
|
711
|
+
var metrics = state.metrics,
|
|
712
|
+
model = state.model,
|
|
713
|
+
theme = state.theme;
|
|
801
714
|
if (!isExpandableGridModel(model)) return;
|
|
802
715
|
var depth = model.depthForRow(row);
|
|
803
716
|
if (depth === 0) return;
|
|
804
|
-
var
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
treeDepthIndent,
|
|
812
|
-
treeHorizontalPadding,
|
|
813
|
-
treeLineColor
|
|
814
|
-
} = theme;
|
|
717
|
+
var firstColumn = metrics.firstColumn,
|
|
718
|
+
allColumnXs = metrics.allColumnXs,
|
|
719
|
+
allRowYs = metrics.allRowYs,
|
|
720
|
+
allRowHeights = metrics.allRowHeights;
|
|
721
|
+
var treeDepthIndent = theme.treeDepthIndent,
|
|
722
|
+
treeHorizontalPadding = theme.treeHorizontalPadding,
|
|
723
|
+
treeLineColor = theme.treeLineColor;
|
|
815
724
|
var columnX = getOrThrow(allColumnXs, firstColumn);
|
|
816
725
|
var rowY = getOrThrow(allRowYs, row);
|
|
817
726
|
var rowHeight = getOrThrow(allRowHeights, row);
|
|
@@ -846,54 +755,44 @@ export class GridRenderer {
|
|
|
846
755
|
}
|
|
847
756
|
}
|
|
848
757
|
drawHeaders(context, state) {
|
|
849
|
-
var
|
|
850
|
-
theme
|
|
851
|
-
} = state;
|
|
758
|
+
var theme = state.theme;
|
|
852
759
|
context.font = theme.headerFont;
|
|
853
760
|
this.drawColumnHeaders(context, state);
|
|
854
761
|
this.drawRowHeaders(context, state);
|
|
855
762
|
}
|
|
856
763
|
drawFooters(context, state) {
|
|
857
|
-
var
|
|
858
|
-
theme
|
|
859
|
-
} = state;
|
|
764
|
+
var theme = state.theme;
|
|
860
765
|
context.font = theme.headerFont;
|
|
861
766
|
this.drawRowFooters(context, state);
|
|
862
767
|
}
|
|
863
768
|
drawColumnHeaders(context, state) {
|
|
864
|
-
var
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
movedColumns,
|
|
885
|
-
columnCount,
|
|
886
|
-
columnHeaderMaxDepth
|
|
887
|
-
} = metrics;
|
|
769
|
+
var mouseX = state.mouseX,
|
|
770
|
+
mouseY = state.mouseY,
|
|
771
|
+
theme = state.theme,
|
|
772
|
+
metrics = state.metrics,
|
|
773
|
+
draggingColumnSeparator = state.draggingColumnSeparator,
|
|
774
|
+
isDragging = state.isDragging,
|
|
775
|
+
model = state.model;
|
|
776
|
+
var columnHeaderHeight = metrics.columnHeaderHeight,
|
|
777
|
+
floatingColumns = metrics.floatingColumns,
|
|
778
|
+
gridX = metrics.gridX,
|
|
779
|
+
width = metrics.width,
|
|
780
|
+
visibleColumns = metrics.visibleColumns,
|
|
781
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
782
|
+
allColumnXs = metrics.allColumnXs,
|
|
783
|
+
floatingLeftColumnCount = metrics.floatingLeftColumnCount,
|
|
784
|
+
floatingLeftWidth = metrics.floatingLeftWidth,
|
|
785
|
+
floatingRightWidth = metrics.floatingRightWidth,
|
|
786
|
+
movedColumns = metrics.movedColumns,
|
|
787
|
+
columnCount = metrics.columnCount,
|
|
788
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth;
|
|
888
789
|
if (columnHeaderHeight <= 0) {
|
|
889
790
|
return;
|
|
890
791
|
}
|
|
891
|
-
var
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
headerSeparatorHoverColor
|
|
896
|
-
} = theme;
|
|
792
|
+
var headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
|
|
793
|
+
headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
|
|
794
|
+
headerSeparatorColor = theme.headerSeparatorColor,
|
|
795
|
+
headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
|
|
897
796
|
var hiddenSeparatorHeight = columnHeaderHeight * 0.5;
|
|
898
797
|
var hiddenY = columnHeaderHeight * (columnHeaderMaxDepth - 1) + columnHeaderHeight * 0.5 - hiddenSeparatorHeight * 0.5;
|
|
899
798
|
var containsFrozenColumns = floatingLeftColumnCount > 0;
|
|
@@ -911,10 +810,13 @@ export class GridRenderer {
|
|
|
911
810
|
if (headerSeparatorColor) {
|
|
912
811
|
context.strokeStyle = headerSeparatorColor;
|
|
913
812
|
var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
|
|
914
|
-
var
|
|
813
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
814
|
+
_ = _ref2[0],
|
|
815
|
+
w = _ref2[1];
|
|
915
816
|
return w === 0;
|
|
916
|
-
}).map(
|
|
917
|
-
var
|
|
817
|
+
}).map(_ref3 => {
|
|
818
|
+
var _ref4 = _slicedToArray(_ref3, 1),
|
|
819
|
+
index = _ref4[0];
|
|
918
820
|
return index;
|
|
919
821
|
});
|
|
920
822
|
|
|
@@ -931,10 +833,9 @@ export class GridRenderer {
|
|
|
931
833
|
context.fill();
|
|
932
834
|
}
|
|
933
835
|
if (headerSeparatorHoverColor) {
|
|
934
|
-
var {
|
|
935
|
-
index
|
|
936
|
-
depth
|
|
937
|
-
} = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {};
|
|
836
|
+
var _ref5 = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {},
|
|
837
|
+
highlightedSeparator = _ref5.index,
|
|
838
|
+
depth = _ref5.depth;
|
|
938
839
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
939
840
|
var separator = GridColumnSeparatorMouseHandler.getColumnSeparator(GridUtils.getGridPointFromXY(mouseX, mouseY, metrics), metrics, model, theme);
|
|
940
841
|
highlightedSeparator = separator === null || separator === void 0 ? void 0 : separator.index;
|
|
@@ -975,12 +876,8 @@ export class GridRenderer {
|
|
|
975
876
|
context.restore();
|
|
976
877
|
}
|
|
977
878
|
drawColumnHeadersForRange(context, state, range, bounds) {
|
|
978
|
-
var
|
|
979
|
-
|
|
980
|
-
} = state;
|
|
981
|
-
var {
|
|
982
|
-
columnHeaderMaxDepth
|
|
983
|
-
} = model;
|
|
879
|
+
var model = state.model;
|
|
880
|
+
var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
|
|
984
881
|
if (columnHeaderMaxDepth === 0) {
|
|
985
882
|
return;
|
|
986
883
|
}
|
|
@@ -989,30 +886,20 @@ export class GridRenderer {
|
|
|
989
886
|
}
|
|
990
887
|
}
|
|
991
888
|
drawColumnHeadersAtDepth(context, state, range, bounds, depth) {
|
|
992
|
-
var
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
columnHeaderHeight,
|
|
1007
|
-
columnWidth
|
|
1008
|
-
} = theme;
|
|
1009
|
-
var {
|
|
1010
|
-
columnHeaderMaxDepth
|
|
1011
|
-
} = model;
|
|
1012
|
-
var {
|
|
1013
|
-
minX,
|
|
1014
|
-
maxX
|
|
1015
|
-
} = bounds;
|
|
889
|
+
var metrics = state.metrics,
|
|
890
|
+
model = state.model,
|
|
891
|
+
theme = state.theme;
|
|
892
|
+
var modelColumns = metrics.modelColumns,
|
|
893
|
+
allColumnXs = metrics.allColumnXs,
|
|
894
|
+
gridX = metrics.gridX,
|
|
895
|
+
userColumnWidths = metrics.userColumnWidths,
|
|
896
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
897
|
+
movedColumns = metrics.movedColumns;
|
|
898
|
+
var columnHeaderHeight = theme.columnHeaderHeight,
|
|
899
|
+
columnWidth = theme.columnWidth;
|
|
900
|
+
var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
|
|
901
|
+
var minX = bounds.minX,
|
|
902
|
+
maxX = bounds.maxX;
|
|
1016
903
|
var visibleWidth = maxX - minX;
|
|
1017
904
|
if (columnHeaderMaxDepth === 0) {
|
|
1018
905
|
return;
|
|
@@ -1035,10 +922,8 @@ export class GridRenderer {
|
|
|
1035
922
|
if (depth > 0) {
|
|
1036
923
|
var columnIndex = startIndex;
|
|
1037
924
|
while (columnIndex <= endIndex) {
|
|
1038
|
-
var
|
|
1039
|
-
|
|
1040
|
-
calculatedColumnWidths
|
|
1041
|
-
} = metrics;
|
|
925
|
+
var columnCount = metrics.columnCount,
|
|
926
|
+
calculatedColumnWidths = metrics.calculatedColumnWidths;
|
|
1042
927
|
var modelColumn = getOrThrow(modelColumns, columnIndex);
|
|
1043
928
|
var columnGroupName = model.textForColumnHeader(modelColumn, depth);
|
|
1044
929
|
var columnGroupColor = model.colorForColumnHeader(modelColumn, depth);
|
|
@@ -1050,25 +935,25 @@ export class GridRenderer {
|
|
|
1050
935
|
// The group will be drawn as if it were a column with a max width of the bounds width
|
|
1051
936
|
var prevColumnIndex = columnIndex - 1;
|
|
1052
937
|
while (prevColumnIndex >= 0 && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupLeft > minX)) {
|
|
1053
|
-
var _modelColumns$get,
|
|
938
|
+
var _modelColumns$get, _ref6, _ref7, _userColumnWidths$get;
|
|
1054
939
|
var prevModelIndex = (_modelColumns$get = modelColumns.get(prevColumnIndex)) !== null && _modelColumns$get !== void 0 ? _modelColumns$get : GridUtils.getModelIndex(prevColumnIndex, movedColumns);
|
|
1055
940
|
if (prevModelIndex == null || !GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, prevModelIndex)) {
|
|
1056
941
|
// Previous column not in the same group
|
|
1057
942
|
break;
|
|
1058
943
|
}
|
|
1059
|
-
var prevColumnWidth = (
|
|
944
|
+
var prevColumnWidth = (_ref6 = (_ref7 = (_userColumnWidths$get = userColumnWidths.get(prevModelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : allColumnWidths.get(prevColumnIndex)) !== null && _ref7 !== void 0 ? _ref7 : calculatedColumnWidths.get(prevModelIndex)) !== null && _ref6 !== void 0 ? _ref6 : columnWidth;
|
|
1060
945
|
columnGroupLeft -= prevColumnWidth;
|
|
1061
946
|
prevColumnIndex -= 1;
|
|
1062
947
|
}
|
|
1063
948
|
var nextColumnIndex = columnIndex + 1;
|
|
1064
949
|
while (nextColumnIndex < columnCount && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupRight < maxX)) {
|
|
1065
|
-
var _modelColumns$get2,
|
|
950
|
+
var _modelColumns$get2, _ref8, _userColumnWidths$get2;
|
|
1066
951
|
var nextModelIndex = (_modelColumns$get2 = modelColumns.get(nextColumnIndex)) !== null && _modelColumns$get2 !== void 0 ? _modelColumns$get2 : GridUtils.getModelIndex(nextColumnIndex, movedColumns);
|
|
1067
952
|
if (!GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, nextModelIndex)) {
|
|
1068
953
|
// Next column not in the same group
|
|
1069
954
|
break;
|
|
1070
955
|
}
|
|
1071
|
-
var nextColumnWidth = (
|
|
956
|
+
var nextColumnWidth = (_ref8 = (_userColumnWidths$get2 = userColumnWidths.get(nextModelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : allColumnWidths.get(nextColumnIndex)) !== null && _ref8 !== void 0 ? _ref8 : columnWidth;
|
|
1072
957
|
columnGroupRight += nextColumnWidth;
|
|
1073
958
|
nextColumnIndex += 1;
|
|
1074
959
|
}
|
|
@@ -1103,16 +988,12 @@ export class GridRenderer {
|
|
|
1103
988
|
*/
|
|
1104
989
|
drawColumnHeaderAtIndex(context, state, index, bounds) {
|
|
1105
990
|
var _model$colorForColumn;
|
|
1106
|
-
var
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
allColumnWidths,
|
|
1113
|
-
allColumnXs,
|
|
1114
|
-
gridX
|
|
1115
|
-
} = metrics;
|
|
991
|
+
var metrics = state.metrics,
|
|
992
|
+
model = state.model;
|
|
993
|
+
var modelColumns = metrics.modelColumns,
|
|
994
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
995
|
+
allColumnXs = metrics.allColumnXs,
|
|
996
|
+
gridX = metrics.gridX;
|
|
1116
997
|
var width = getOrThrow(allColumnWidths, index);
|
|
1117
998
|
var x = getOrThrow(allColumnXs, index) + gridX;
|
|
1118
999
|
var modelColumn = getOrThrow(modelColumns, index);
|
|
@@ -1128,32 +1009,27 @@ export class GridRenderer {
|
|
|
1128
1009
|
if (columnWidth <= 0) {
|
|
1129
1010
|
return;
|
|
1130
1011
|
}
|
|
1131
|
-
var
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
} = theme;
|
|
1144
|
-
var {
|
|
1145
|
-
fontWidthsLower,
|
|
1146
|
-
fontWidthsUpper,
|
|
1147
|
-
width
|
|
1148
|
-
} = metrics;
|
|
1012
|
+
var metrics = state.metrics,
|
|
1013
|
+
theme = state.theme;
|
|
1014
|
+
var headerHorizontalPadding = theme.headerHorizontalPadding,
|
|
1015
|
+
columnHeaderHeight = theme.columnHeaderHeight,
|
|
1016
|
+
headerBackgroundColor = theme.headerBackgroundColor,
|
|
1017
|
+
headerColor = theme.headerColor,
|
|
1018
|
+
headerSeparatorColor = theme.headerSeparatorColor,
|
|
1019
|
+
black = theme.black,
|
|
1020
|
+
white = theme.white;
|
|
1021
|
+
var fontWidthsLower = metrics.fontWidthsLower,
|
|
1022
|
+
fontWidthsUpper = metrics.fontWidthsUpper,
|
|
1023
|
+
width = metrics.width;
|
|
1149
1024
|
var maxWidth = columnWidth - headerHorizontalPadding * 2;
|
|
1150
|
-
var {
|
|
1151
|
-
backgroundColor =
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1025
|
+
var _ref9 = style !== null && style !== void 0 ? style : {},
|
|
1026
|
+
_ref9$backgroundColor = _ref9.backgroundColor,
|
|
1027
|
+
backgroundColor = _ref9$backgroundColor === void 0 ? headerBackgroundColor : _ref9$backgroundColor,
|
|
1028
|
+
_ref9$separatorColor = _ref9.separatorColor,
|
|
1029
|
+
separatorColor = _ref9$separatorColor === void 0 ? headerSeparatorColor : _ref9$separatorColor;
|
|
1030
|
+
var _ref0 = style !== null && style !== void 0 ? style : {},
|
|
1031
|
+
_ref0$textColor = _ref0.textColor,
|
|
1032
|
+
textColor = _ref0$textColor === void 0 ? headerColor : _ref0$textColor;
|
|
1157
1033
|
try {
|
|
1158
1034
|
var isDarkBackground = GridRenderer.getCachedColorIsDark(backgroundColor);
|
|
1159
1035
|
var isDarkText = GridRenderer.getCachedColorIsDark(textColor);
|
|
@@ -1166,10 +1042,11 @@ export class GridRenderer {
|
|
|
1166
1042
|
// Invalid color provided
|
|
1167
1043
|
// no-op since we don't use logging in base grid
|
|
1168
1044
|
}
|
|
1169
|
-
var {
|
|
1170
|
-
minX =
|
|
1171
|
-
|
|
1172
|
-
|
|
1045
|
+
var _ref1 = bounds !== null && bounds !== void 0 ? bounds : {},
|
|
1046
|
+
_ref1$minX = _ref1.minX,
|
|
1047
|
+
minX = _ref1$minX === void 0 ? 0 : _ref1$minX,
|
|
1048
|
+
_ref1$maxX = _ref1.maxX,
|
|
1049
|
+
maxX = _ref1$maxX === void 0 ? width : _ref1$maxX;
|
|
1173
1050
|
context.save();
|
|
1174
1051
|
context.rect(minX, 0, maxX - minX, columnHeaderHeight);
|
|
1175
1052
|
context.clip();
|
|
@@ -1236,32 +1113,26 @@ export class GridRenderer {
|
|
|
1236
1113
|
context.restore();
|
|
1237
1114
|
}
|
|
1238
1115
|
drawRowHeaders(context, state) {
|
|
1239
|
-
var
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
visibleRows,
|
|
1251
|
-
allRowHeights,
|
|
1252
|
-
allRowYs
|
|
1253
|
-
} = metrics;
|
|
1116
|
+
var mouseX = state.mouseX,
|
|
1117
|
+
mouseY = state.mouseY,
|
|
1118
|
+
metrics = state.metrics,
|
|
1119
|
+
theme = state.theme,
|
|
1120
|
+
draggingRowSeparator = state.draggingRowSeparator;
|
|
1121
|
+
var gridY = metrics.gridY,
|
|
1122
|
+
rowHeaderWidth = metrics.rowHeaderWidth,
|
|
1123
|
+
height = metrics.height,
|
|
1124
|
+
visibleRows = metrics.visibleRows,
|
|
1125
|
+
allRowHeights = metrics.allRowHeights,
|
|
1126
|
+
allRowYs = metrics.allRowYs;
|
|
1254
1127
|
if (rowHeaderWidth <= 0) {
|
|
1255
1128
|
return;
|
|
1256
1129
|
}
|
|
1257
|
-
var
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
headerSeparatorHoverColor
|
|
1264
|
-
} = theme;
|
|
1130
|
+
var headerBackgroundColor = theme.headerBackgroundColor,
|
|
1131
|
+
headerColor = theme.headerColor,
|
|
1132
|
+
headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
|
|
1133
|
+
headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
|
|
1134
|
+
headerSeparatorColor = theme.headerSeparatorColor,
|
|
1135
|
+
headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
|
|
1265
1136
|
var hiddenSeparatorWidth = rowHeaderWidth * 0.5;
|
|
1266
1137
|
var hiddenX = rowHeaderWidth * 0.5 - hiddenSeparatorWidth * 0.5;
|
|
1267
1138
|
context.save();
|
|
@@ -1312,9 +1183,9 @@ export class GridRenderer {
|
|
|
1312
1183
|
context.fill();
|
|
1313
1184
|
}
|
|
1314
1185
|
if (headerSeparatorHoverColor) {
|
|
1315
|
-
var {
|
|
1316
|
-
index
|
|
1317
|
-
|
|
1186
|
+
var _ref10 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
|
|
1187
|
+
_ref10$index = _ref10.index,
|
|
1188
|
+
highlightedSeparator = _ref10$index === void 0 ? null : _ref10$index;
|
|
1318
1189
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
1319
1190
|
highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
|
|
1320
1191
|
}
|
|
@@ -1361,54 +1232,44 @@ export class GridRenderer {
|
|
|
1361
1232
|
if (rowHeight <= 0) {
|
|
1362
1233
|
return;
|
|
1363
1234
|
}
|
|
1364
|
-
var
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
var {
|
|
1370
|
-
modelRows,
|
|
1371
|
-
rowHeaderWidth
|
|
1372
|
-
} = metrics;
|
|
1235
|
+
var metrics = state.metrics,
|
|
1236
|
+
model = state.model,
|
|
1237
|
+
theme = state.theme;
|
|
1238
|
+
var modelRows = metrics.modelRows,
|
|
1239
|
+
rowHeaderWidth = metrics.rowHeaderWidth;
|
|
1373
1240
|
var modelRow = getOrThrow(modelRows, row);
|
|
1374
1241
|
var x = rowHeaderWidth - theme.cellHorizontalPadding;
|
|
1375
1242
|
var y = rowY + rowHeight * 0.5;
|
|
1376
1243
|
context.fillText(model.textForRowHeader(modelRow), x, y);
|
|
1377
1244
|
}
|
|
1378
1245
|
drawRowFooters(context, state) {
|
|
1379
|
-
var
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
allRowHeights,
|
|
1397
|
-
allRowYs,
|
|
1398
|
-
width
|
|
1399
|
-
} = metrics;
|
|
1246
|
+
var mouseX = state.mouseX,
|
|
1247
|
+
mouseY = state.mouseY,
|
|
1248
|
+
metrics = state.metrics,
|
|
1249
|
+
model = state.model,
|
|
1250
|
+
theme = state.theme,
|
|
1251
|
+
draggingRowSeparator = state.draggingRowSeparator;
|
|
1252
|
+
var gridY = metrics.gridY,
|
|
1253
|
+
gridX = metrics.gridX,
|
|
1254
|
+
maxX = metrics.maxX,
|
|
1255
|
+
modelRows = metrics.modelRows,
|
|
1256
|
+
rowFooterWidth = metrics.rowFooterWidth,
|
|
1257
|
+
height = metrics.height,
|
|
1258
|
+
verticalBarWidth = metrics.verticalBarWidth,
|
|
1259
|
+
visibleRows = metrics.visibleRows,
|
|
1260
|
+
allRowHeights = metrics.allRowHeights,
|
|
1261
|
+
allRowYs = metrics.allRowYs,
|
|
1262
|
+
width = metrics.width;
|
|
1400
1263
|
if (rowFooterWidth <= 0) {
|
|
1401
1264
|
return;
|
|
1402
1265
|
}
|
|
1403
|
-
var
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
headerSeparatorHoverColor
|
|
1411
|
-
} = theme;
|
|
1266
|
+
var cellHorizontalPadding = theme.cellHorizontalPadding,
|
|
1267
|
+
headerBackgroundColor = theme.headerBackgroundColor,
|
|
1268
|
+
headerColor = theme.headerColor,
|
|
1269
|
+
headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
|
|
1270
|
+
headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
|
|
1271
|
+
headerSeparatorColor = theme.headerSeparatorColor,
|
|
1272
|
+
headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
|
|
1412
1273
|
var hiddenSeparatorWidth = rowFooterWidth * 0.5;
|
|
1413
1274
|
var hiddenX = rowFooterWidth * 0.5 - hiddenSeparatorWidth * 0.5;
|
|
1414
1275
|
var x = Math.min(gridX + maxX, width - rowFooterWidth - verticalBarWidth);
|
|
@@ -1460,9 +1321,9 @@ export class GridRenderer {
|
|
|
1460
1321
|
context.fill();
|
|
1461
1322
|
}
|
|
1462
1323
|
if (headerSeparatorHoverColor) {
|
|
1463
|
-
var {
|
|
1464
|
-
index
|
|
1465
|
-
|
|
1324
|
+
var _ref11 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
|
|
1325
|
+
_ref11$index = _ref11.index,
|
|
1326
|
+
highlightedSeparator = _ref11$index === void 0 ? null : _ref11$index;
|
|
1466
1327
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
1467
1328
|
highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
|
|
1468
1329
|
}
|
|
@@ -1512,35 +1373,37 @@ export class GridRenderer {
|
|
|
1512
1373
|
}
|
|
1513
1374
|
drawSelectedRanges(context, state) {
|
|
1514
1375
|
var viewport = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
1515
|
-
var
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
minY = -10,
|
|
1540
|
-
maxY =
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1376
|
+
var column = state.cursorColumn,
|
|
1377
|
+
row = state.cursorRow,
|
|
1378
|
+
draggingRow = state.draggingRow,
|
|
1379
|
+
draggingColumn = state.draggingColumn,
|
|
1380
|
+
editingCell = state.editingCell,
|
|
1381
|
+
metrics = state.metrics,
|
|
1382
|
+
model = state.model,
|
|
1383
|
+
selectedRanges = state.selectedRanges,
|
|
1384
|
+
theme = state.theme;
|
|
1385
|
+
var allColumnWidths = metrics.allColumnWidths,
|
|
1386
|
+
allColumnXs = metrics.allColumnXs,
|
|
1387
|
+
allRowHeights = metrics.allRowHeights,
|
|
1388
|
+
allRowYs = metrics.allRowYs,
|
|
1389
|
+
width = metrics.width,
|
|
1390
|
+
height = metrics.height;
|
|
1391
|
+
var _viewport$left = viewport.left,
|
|
1392
|
+
left = _viewport$left === void 0 ? metrics.left : _viewport$left,
|
|
1393
|
+
_viewport$top = viewport.top,
|
|
1394
|
+
top = _viewport$top === void 0 ? metrics.top : _viewport$top,
|
|
1395
|
+
_viewport$right = viewport.right,
|
|
1396
|
+
right = _viewport$right === void 0 ? metrics.right : _viewport$right,
|
|
1397
|
+
_viewport$bottom = viewport.bottom,
|
|
1398
|
+
bottom = _viewport$bottom === void 0 ? metrics.bottom : _viewport$bottom,
|
|
1399
|
+
_viewport$minY = viewport.minY,
|
|
1400
|
+
minY = _viewport$minY === void 0 ? -10 : _viewport$minY,
|
|
1401
|
+
_viewport$maxY = viewport.maxY,
|
|
1402
|
+
maxY = _viewport$maxY === void 0 ? height + 10 : _viewport$maxY,
|
|
1403
|
+
_viewport$minX = viewport.minX,
|
|
1404
|
+
minX = _viewport$minX === void 0 ? -10 : _viewport$minX,
|
|
1405
|
+
_viewport$maxX = viewport.maxX,
|
|
1406
|
+
maxX = _viewport$maxX === void 0 ? width + 10 : _viewport$maxX;
|
|
1544
1407
|
if (selectedRanges.length === 0) {
|
|
1545
1408
|
return;
|
|
1546
1409
|
}
|
|
@@ -1610,21 +1473,15 @@ export class GridRenderer {
|
|
|
1610
1473
|
}
|
|
1611
1474
|
}
|
|
1612
1475
|
drawActiveCell(context, state, column, row) {
|
|
1613
|
-
var
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
allRowHeights,
|
|
1623
|
-
allRowYs
|
|
1624
|
-
} = metrics;
|
|
1625
|
-
var {
|
|
1626
|
-
activeCellSelectionBorderWidth: borderWidth
|
|
1627
|
-
} = theme;
|
|
1476
|
+
var metrics = state.metrics,
|
|
1477
|
+
theme = state.theme;
|
|
1478
|
+
var scrollX = metrics.scrollX,
|
|
1479
|
+
scrollY = metrics.scrollY,
|
|
1480
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
1481
|
+
allColumnXs = metrics.allColumnXs,
|
|
1482
|
+
allRowHeights = metrics.allRowHeights,
|
|
1483
|
+
allRowYs = metrics.allRowYs;
|
|
1484
|
+
var borderWidth = theme.activeCellSelectionBorderWidth;
|
|
1628
1485
|
var cellX = getOrThrow(allColumnXs, column);
|
|
1629
1486
|
var cellY = getOrThrow(allRowYs, row);
|
|
1630
1487
|
var cellW = getOrThrow(allColumnWidths, column);
|
|
@@ -1645,9 +1502,7 @@ export class GridRenderer {
|
|
|
1645
1502
|
h -= borderWidth - y;
|
|
1646
1503
|
y = borderWidth * 0.5;
|
|
1647
1504
|
}
|
|
1648
|
-
var
|
|
1649
|
-
lineWidth
|
|
1650
|
-
} = context;
|
|
1505
|
+
var lineWidth = context.lineWidth;
|
|
1651
1506
|
context.beginPath();
|
|
1652
1507
|
context.lineWidth = borderWidth;
|
|
1653
1508
|
context.strokeStyle = theme.selectionOutlineColor;
|
|
@@ -1682,51 +1537,45 @@ export class GridRenderer {
|
|
|
1682
1537
|
}
|
|
1683
1538
|
drawDraggingColumn(context, state) {
|
|
1684
1539
|
var _modelColumns$get3;
|
|
1685
|
-
var
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
model
|
|
1691
|
-
} = state;
|
|
1540
|
+
var draggingColumn = state.draggingColumn,
|
|
1541
|
+
metrics = state.metrics,
|
|
1542
|
+
mouseX = state.mouseX,
|
|
1543
|
+
theme = state.theme,
|
|
1544
|
+
model = state.model;
|
|
1692
1545
|
if (draggingColumn == null || mouseX == null) {
|
|
1693
1546
|
return;
|
|
1694
1547
|
}
|
|
1695
|
-
var
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
movedColumns,
|
|
1709
|
-
modelColumns,
|
|
1710
|
-
floatingLeftWidth
|
|
1711
|
-
} = metrics;
|
|
1548
|
+
var draggingColumnVisibleRange = draggingColumn.range,
|
|
1549
|
+
draggingColumnDepth = draggingColumn.depth;
|
|
1550
|
+
var gridX = metrics.gridX,
|
|
1551
|
+
gridY = metrics.gridY,
|
|
1552
|
+
allColumnXs = metrics.allColumnXs,
|
|
1553
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
1554
|
+
height = metrics.height,
|
|
1555
|
+
width = metrics.width,
|
|
1556
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth,
|
|
1557
|
+
columnHeaderHeight = metrics.columnHeaderHeight,
|
|
1558
|
+
movedColumns = metrics.movedColumns,
|
|
1559
|
+
modelColumns = metrics.modelColumns,
|
|
1560
|
+
floatingLeftWidth = metrics.floatingLeftWidth;
|
|
1712
1561
|
var draggingModelIndex = (_modelColumns$get3 = modelColumns.get(draggingColumnVisibleRange[0])) !== null && _modelColumns$get3 !== void 0 ? _modelColumns$get3 : GridUtils.getModelIndex(draggingColumnVisibleRange[0], movedColumns);
|
|
1713
1562
|
var draggingGroup = model.getColumnHeaderGroup(draggingModelIndex, draggingColumnDepth);
|
|
1714
1563
|
if (draggingColumnDepth > 0 && !draggingGroup) {
|
|
1715
1564
|
return;
|
|
1716
1565
|
}
|
|
1717
|
-
var
|
|
1566
|
+
var _draggingColumnVisibl = _slicedToArray(draggingColumnVisibleRange, 2),
|
|
1567
|
+
startIndex = _draggingColumnVisibl[0],
|
|
1568
|
+
endIndex = _draggingColumnVisibl[1];
|
|
1718
1569
|
var originalLeft = getOrThrow(allColumnXs, startIndex);
|
|
1719
1570
|
var originalRight = getOrThrow(allColumnXs, endIndex) + getOrThrow(allColumnWidths, endIndex);
|
|
1720
1571
|
var originalWidth = originalRight - originalLeft;
|
|
1721
1572
|
var draggingLeft = draggingColumn.left;
|
|
1722
|
-
var
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
shadowColor
|
|
1729
|
-
} = theme;
|
|
1573
|
+
var backgroundColor = theme.backgroundColor,
|
|
1574
|
+
font = theme.font,
|
|
1575
|
+
headerFont = theme.headerFont,
|
|
1576
|
+
reorderOffset = theme.reorderOffset,
|
|
1577
|
+
shadowBlur = theme.shadowBlur,
|
|
1578
|
+
shadowColor = theme.shadowColor;
|
|
1730
1579
|
var columnHeaderOffset = (columnHeaderMaxDepth - draggingColumnDepth - 1) * columnHeaderHeight;
|
|
1731
1580
|
context.save();
|
|
1732
1581
|
context.translate(gridX, 0);
|
|
@@ -1790,33 +1639,27 @@ export class GridRenderer {
|
|
|
1790
1639
|
context.restore();
|
|
1791
1640
|
}
|
|
1792
1641
|
drawDraggingRow(context, state) {
|
|
1793
|
-
var
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
theme
|
|
1799
|
-
} = state;
|
|
1642
|
+
var draggingRow = state.draggingRow,
|
|
1643
|
+
draggingRowOffset = state.draggingRowOffset,
|
|
1644
|
+
metrics = state.metrics,
|
|
1645
|
+
mouseY = state.mouseY,
|
|
1646
|
+
theme = state.theme;
|
|
1800
1647
|
if (draggingRow == null || mouseY == null) {
|
|
1801
1648
|
return;
|
|
1802
1649
|
}
|
|
1803
|
-
var
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
width
|
|
1809
|
-
} = metrics;
|
|
1650
|
+
var gridX = metrics.gridX,
|
|
1651
|
+
gridY = metrics.gridY,
|
|
1652
|
+
allRowYs = metrics.allRowYs,
|
|
1653
|
+
allRowHeights = metrics.allRowHeights,
|
|
1654
|
+
width = metrics.width;
|
|
1810
1655
|
var y = getOrThrow(allRowYs, draggingRow);
|
|
1811
1656
|
var rowHeight = getOrThrow(allRowHeights, draggingRow) + 1;
|
|
1812
|
-
var
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
shadowColor
|
|
1819
|
-
} = theme;
|
|
1657
|
+
var backgroundColor = theme.backgroundColor,
|
|
1658
|
+
font = theme.font,
|
|
1659
|
+
headerFont = theme.headerFont,
|
|
1660
|
+
reorderOffset = theme.reorderOffset,
|
|
1661
|
+
shadowBlur = theme.shadowBlur,
|
|
1662
|
+
shadowColor = theme.shadowColor;
|
|
1820
1663
|
context.save();
|
|
1821
1664
|
context.translate(0, gridY);
|
|
1822
1665
|
|
|
@@ -1848,49 +1691,43 @@ export class GridRenderer {
|
|
|
1848
1691
|
context.restore();
|
|
1849
1692
|
}
|
|
1850
1693
|
drawScrollBars(context, state) {
|
|
1851
|
-
var
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
theme
|
|
1859
|
-
} = state;
|
|
1694
|
+
var isDraggingHorizontalScrollBar = state.isDraggingHorizontalScrollBar,
|
|
1695
|
+
isDraggingVerticalScrollBar = state.isDraggingVerticalScrollBar,
|
|
1696
|
+
isDragging = state.isDragging,
|
|
1697
|
+
metrics = state.metrics,
|
|
1698
|
+
mouseX = state.mouseX,
|
|
1699
|
+
mouseY = state.mouseY,
|
|
1700
|
+
theme = state.theme;
|
|
1860
1701
|
if (theme.scrollBarSize <= 0) {
|
|
1861
1702
|
return;
|
|
1862
1703
|
}
|
|
1863
|
-
var
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
scrollBarActiveSelectionTickColor,
|
|
1891
|
-
autoSelectRow,
|
|
1892
|
-
autoSelectColumn
|
|
1893
|
-
} = theme;
|
|
1704
|
+
var width = metrics.width,
|
|
1705
|
+
height = metrics.height,
|
|
1706
|
+
handleHeight = metrics.handleHeight,
|
|
1707
|
+
handleWidth = metrics.handleWidth,
|
|
1708
|
+
scrollX = metrics.scrollX,
|
|
1709
|
+
scrollY = metrics.scrollY,
|
|
1710
|
+
hasHorizontalBar = metrics.hasHorizontalBar,
|
|
1711
|
+
hasVerticalBar = metrics.hasVerticalBar,
|
|
1712
|
+
barWidth = metrics.barWidth,
|
|
1713
|
+
barHeight = metrics.barHeight,
|
|
1714
|
+
barLeft = metrics.barLeft,
|
|
1715
|
+
barTop = metrics.barTop;
|
|
1716
|
+
var scrollBarBackgroundColor = theme.scrollBarBackgroundColor,
|
|
1717
|
+
scrollBarHoverBackgroundColor = theme.scrollBarHoverBackgroundColor,
|
|
1718
|
+
scrollBarCasingColor = theme.scrollBarCasingColor,
|
|
1719
|
+
scrollBarCornerColor = theme.scrollBarCornerColor,
|
|
1720
|
+
scrollBarColor = theme.scrollBarColor,
|
|
1721
|
+
scrollBarHoverColor = theme.scrollBarHoverColor,
|
|
1722
|
+
scrollBarActiveColor = theme.scrollBarActiveColor,
|
|
1723
|
+
scrollBarSize = theme.scrollBarSize,
|
|
1724
|
+
scrollBarHoverSize = theme.scrollBarHoverSize,
|
|
1725
|
+
scrollBarCasingWidth = theme.scrollBarCasingWidth,
|
|
1726
|
+
scrollBarSelectionTick = theme.scrollBarSelectionTick,
|
|
1727
|
+
scrollBarSelectionTickColor = theme.scrollBarSelectionTickColor,
|
|
1728
|
+
scrollBarActiveSelectionTickColor = theme.scrollBarActiveSelectionTickColor,
|
|
1729
|
+
autoSelectRow = theme.autoSelectRow,
|
|
1730
|
+
autoSelectColumn = theme.autoSelectColumn;
|
|
1894
1731
|
var isInbounds = mouseX != null && mouseY != null && mouseX <= width && mouseY <= height;
|
|
1895
1732
|
var isVerticalBarHover = isDraggingVerticalScrollBar || hasVerticalBar && !isDraggingHorizontalScrollBar && !isDragging && mouseX != null && mouseY != null && mouseX >= width - scrollBarHoverSize && mouseY >= barTop && isInbounds;
|
|
1896
1733
|
var isHorizontalBarHover = isDraggingHorizontalScrollBar || hasHorizontalBar && !isDraggingVerticalScrollBar && !isDragging && !isVerticalBarHover &&
|
|
@@ -1930,14 +1767,10 @@ export class GridRenderer {
|
|
|
1930
1767
|
if (!autoSelectRow && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
|
|
1931
1768
|
context.fillStyle = scrollBarSelectionTickColor;
|
|
1932
1769
|
// Scrollbar Selection Tick
|
|
1933
|
-
var
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
var {
|
|
1938
|
-
lastLeft,
|
|
1939
|
-
columnCount
|
|
1940
|
-
} = metrics;
|
|
1770
|
+
var selectedRanges = state.selectedRanges,
|
|
1771
|
+
cursorColumn = state.cursorColumn;
|
|
1772
|
+
var lastLeft = metrics.lastLeft,
|
|
1773
|
+
columnCount = metrics.columnCount;
|
|
1941
1774
|
var filteredRanges = [...selectedRanges].filter(value => value.startColumn != null && value.endColumn != null);
|
|
1942
1775
|
var sortedRanges = filteredRanges.map(value => [value.startColumn, value.endColumn]).sort(GridUtils.compareRanges);
|
|
1943
1776
|
var mergedRanges = GridUtils.mergeSortedRanges(sortedRanges);
|
|
@@ -1992,14 +1825,10 @@ export class GridRenderer {
|
|
|
1992
1825
|
context.fillRect(_x5 + scrollBarCasingWidth, _y9, vScrollBarSize - scrollBarCasingWidth, handleHeight);
|
|
1993
1826
|
if (!autoSelectColumn && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
|
|
1994
1827
|
// Scrollbar Selection Tick
|
|
1995
|
-
var
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
var {
|
|
2000
|
-
lastTop,
|
|
2001
|
-
rowCount
|
|
2002
|
-
} = metrics;
|
|
1828
|
+
var _selectedRanges = state.selectedRanges,
|
|
1829
|
+
cursorRow = state.cursorRow;
|
|
1830
|
+
var lastTop = metrics.lastTop,
|
|
1831
|
+
rowCount = metrics.rowCount;
|
|
2003
1832
|
var getTickY = index => {
|
|
2004
1833
|
if (index <= lastTop) {
|
|
2005
1834
|
return index / lastTop * (barHeight - handleHeight);
|