@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/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,53 +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
|
-
modelColumns,
|
|
885
|
-
columnHeaderMaxDepth
|
|
886
|
-
} = 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;
|
|
887
789
|
if (columnHeaderHeight <= 0) {
|
|
888
790
|
return;
|
|
889
791
|
}
|
|
890
|
-
var
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
headerSeparatorHoverColor
|
|
895
|
-
} = theme;
|
|
792
|
+
var headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
|
|
793
|
+
headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
|
|
794
|
+
headerSeparatorColor = theme.headerSeparatorColor,
|
|
795
|
+
headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
|
|
896
796
|
var hiddenSeparatorHeight = columnHeaderHeight * 0.5;
|
|
897
797
|
var hiddenY = columnHeaderHeight * (columnHeaderMaxDepth - 1) + columnHeaderHeight * 0.5 - hiddenSeparatorHeight * 0.5;
|
|
898
798
|
var containsFrozenColumns = floatingLeftColumnCount > 0;
|
|
@@ -910,10 +810,13 @@ export class GridRenderer {
|
|
|
910
810
|
if (headerSeparatorColor) {
|
|
911
811
|
context.strokeStyle = headerSeparatorColor;
|
|
912
812
|
var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
|
|
913
|
-
var
|
|
813
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
814
|
+
_ = _ref2[0],
|
|
815
|
+
w = _ref2[1];
|
|
914
816
|
return w === 0;
|
|
915
|
-
}).map(
|
|
916
|
-
var
|
|
817
|
+
}).map(_ref3 => {
|
|
818
|
+
var _ref4 = _slicedToArray(_ref3, 1),
|
|
819
|
+
index = _ref4[0];
|
|
917
820
|
return index;
|
|
918
821
|
});
|
|
919
822
|
|
|
@@ -930,10 +833,9 @@ export class GridRenderer {
|
|
|
930
833
|
context.fill();
|
|
931
834
|
}
|
|
932
835
|
if (headerSeparatorHoverColor) {
|
|
933
|
-
var {
|
|
934
|
-
index
|
|
935
|
-
depth
|
|
936
|
-
} = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {};
|
|
836
|
+
var _ref5 = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {},
|
|
837
|
+
highlightedSeparator = _ref5.index,
|
|
838
|
+
depth = _ref5.depth;
|
|
937
839
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
938
840
|
var separator = GridColumnSeparatorMouseHandler.getColumnSeparator(GridUtils.getGridPointFromXY(mouseX, mouseY, metrics), metrics, model, theme);
|
|
939
841
|
highlightedSeparator = separator === null || separator === void 0 ? void 0 : separator.index;
|
|
@@ -943,9 +845,7 @@ export class GridRenderer {
|
|
|
943
845
|
if (highlightedSeparator == null) {
|
|
944
846
|
shouldDrawSeparator = false;
|
|
945
847
|
} else {
|
|
946
|
-
|
|
947
|
-
var nextColumnIndex = modelColumns.get(highlightedSeparator + 1);
|
|
948
|
-
shouldDrawSeparator = GridUtils.hasColumnSeparatorAtDepth(model, depth, columnIndex, nextColumnIndex);
|
|
848
|
+
shouldDrawSeparator = GridUtils.hasColumnSeparatorAtDepth(model, depth, highlightedSeparator, columnCount, movedColumns);
|
|
949
849
|
}
|
|
950
850
|
if (shouldDrawSeparator && highlightedSeparator != null && depth != null && (!isDragging || draggingColumnSeparator != null)) {
|
|
951
851
|
context.strokeStyle = headerSeparatorHoverColor;
|
|
@@ -976,12 +876,8 @@ export class GridRenderer {
|
|
|
976
876
|
context.restore();
|
|
977
877
|
}
|
|
978
878
|
drawColumnHeadersForRange(context, state, range, bounds) {
|
|
979
|
-
var
|
|
980
|
-
|
|
981
|
-
} = state;
|
|
982
|
-
var {
|
|
983
|
-
columnHeaderMaxDepth
|
|
984
|
-
} = model;
|
|
879
|
+
var model = state.model;
|
|
880
|
+
var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
|
|
985
881
|
if (columnHeaderMaxDepth === 0) {
|
|
986
882
|
return;
|
|
987
883
|
}
|
|
@@ -990,30 +886,20 @@ export class GridRenderer {
|
|
|
990
886
|
}
|
|
991
887
|
}
|
|
992
888
|
drawColumnHeadersAtDepth(context, state, range, bounds, depth) {
|
|
993
|
-
var
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
columnHeaderHeight,
|
|
1008
|
-
columnWidth
|
|
1009
|
-
} = theme;
|
|
1010
|
-
var {
|
|
1011
|
-
columnHeaderMaxDepth
|
|
1012
|
-
} = model;
|
|
1013
|
-
var {
|
|
1014
|
-
minX,
|
|
1015
|
-
maxX
|
|
1016
|
-
} = 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;
|
|
1017
903
|
var visibleWidth = maxX - minX;
|
|
1018
904
|
if (columnHeaderMaxDepth === 0) {
|
|
1019
905
|
return;
|
|
@@ -1036,10 +922,8 @@ export class GridRenderer {
|
|
|
1036
922
|
if (depth > 0) {
|
|
1037
923
|
var columnIndex = startIndex;
|
|
1038
924
|
while (columnIndex <= endIndex) {
|
|
1039
|
-
var
|
|
1040
|
-
|
|
1041
|
-
calculatedColumnWidths
|
|
1042
|
-
} = metrics;
|
|
925
|
+
var columnCount = metrics.columnCount,
|
|
926
|
+
calculatedColumnWidths = metrics.calculatedColumnWidths;
|
|
1043
927
|
var modelColumn = getOrThrow(modelColumns, columnIndex);
|
|
1044
928
|
var columnGroupName = model.textForColumnHeader(modelColumn, depth);
|
|
1045
929
|
var columnGroupColor = model.colorForColumnHeader(modelColumn, depth);
|
|
@@ -1051,25 +935,25 @@ export class GridRenderer {
|
|
|
1051
935
|
// The group will be drawn as if it were a column with a max width of the bounds width
|
|
1052
936
|
var prevColumnIndex = columnIndex - 1;
|
|
1053
937
|
while (prevColumnIndex >= 0 && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupLeft > minX)) {
|
|
1054
|
-
var _modelColumns$get,
|
|
938
|
+
var _modelColumns$get, _ref6, _ref7, _userColumnWidths$get;
|
|
1055
939
|
var prevModelIndex = (_modelColumns$get = modelColumns.get(prevColumnIndex)) !== null && _modelColumns$get !== void 0 ? _modelColumns$get : GridUtils.getModelIndex(prevColumnIndex, movedColumns);
|
|
1056
|
-
if (prevModelIndex == null ||
|
|
940
|
+
if (prevModelIndex == null || !GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, prevModelIndex)) {
|
|
1057
941
|
// Previous column not in the same group
|
|
1058
942
|
break;
|
|
1059
943
|
}
|
|
1060
|
-
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;
|
|
1061
945
|
columnGroupLeft -= prevColumnWidth;
|
|
1062
946
|
prevColumnIndex -= 1;
|
|
1063
947
|
}
|
|
1064
948
|
var nextColumnIndex = columnIndex + 1;
|
|
1065
949
|
while (nextColumnIndex < columnCount && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupRight < maxX)) {
|
|
1066
|
-
var _modelColumns$get2,
|
|
950
|
+
var _modelColumns$get2, _ref8, _userColumnWidths$get2;
|
|
1067
951
|
var nextModelIndex = (_modelColumns$get2 = modelColumns.get(nextColumnIndex)) !== null && _modelColumns$get2 !== void 0 ? _modelColumns$get2 : GridUtils.getModelIndex(nextColumnIndex, movedColumns);
|
|
1068
|
-
if (
|
|
952
|
+
if (!GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, nextModelIndex)) {
|
|
1069
953
|
// Next column not in the same group
|
|
1070
954
|
break;
|
|
1071
955
|
}
|
|
1072
|
-
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;
|
|
1073
957
|
columnGroupRight += nextColumnWidth;
|
|
1074
958
|
nextColumnIndex += 1;
|
|
1075
959
|
}
|
|
@@ -1104,16 +988,12 @@ export class GridRenderer {
|
|
|
1104
988
|
*/
|
|
1105
989
|
drawColumnHeaderAtIndex(context, state, index, bounds) {
|
|
1106
990
|
var _model$colorForColumn;
|
|
1107
|
-
var
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
allColumnWidths,
|
|
1114
|
-
allColumnXs,
|
|
1115
|
-
gridX
|
|
1116
|
-
} = 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;
|
|
1117
997
|
var width = getOrThrow(allColumnWidths, index);
|
|
1118
998
|
var x = getOrThrow(allColumnXs, index) + gridX;
|
|
1119
999
|
var modelColumn = getOrThrow(modelColumns, index);
|
|
@@ -1129,32 +1009,27 @@ export class GridRenderer {
|
|
|
1129
1009
|
if (columnWidth <= 0) {
|
|
1130
1010
|
return;
|
|
1131
1011
|
}
|
|
1132
|
-
var
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
} = theme;
|
|
1145
|
-
var {
|
|
1146
|
-
fontWidthsLower,
|
|
1147
|
-
fontWidthsUpper,
|
|
1148
|
-
width
|
|
1149
|
-
} = 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;
|
|
1150
1024
|
var maxWidth = columnWidth - headerHorizontalPadding * 2;
|
|
1151
|
-
var {
|
|
1152
|
-
backgroundColor =
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
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;
|
|
1158
1033
|
try {
|
|
1159
1034
|
var isDarkBackground = GridRenderer.getCachedColorIsDark(backgroundColor);
|
|
1160
1035
|
var isDarkText = GridRenderer.getCachedColorIsDark(textColor);
|
|
@@ -1167,10 +1042,11 @@ export class GridRenderer {
|
|
|
1167
1042
|
// Invalid color provided
|
|
1168
1043
|
// no-op since we don't use logging in base grid
|
|
1169
1044
|
}
|
|
1170
|
-
var {
|
|
1171
|
-
minX =
|
|
1172
|
-
|
|
1173
|
-
|
|
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;
|
|
1174
1050
|
context.save();
|
|
1175
1051
|
context.rect(minX, 0, maxX - minX, columnHeaderHeight);
|
|
1176
1052
|
context.clip();
|
|
@@ -1237,32 +1113,26 @@ export class GridRenderer {
|
|
|
1237
1113
|
context.restore();
|
|
1238
1114
|
}
|
|
1239
1115
|
drawRowHeaders(context, state) {
|
|
1240
|
-
var
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
visibleRows,
|
|
1252
|
-
allRowHeights,
|
|
1253
|
-
allRowYs
|
|
1254
|
-
} = 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;
|
|
1255
1127
|
if (rowHeaderWidth <= 0) {
|
|
1256
1128
|
return;
|
|
1257
1129
|
}
|
|
1258
|
-
var
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
headerSeparatorHoverColor
|
|
1265
|
-
} = 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;
|
|
1266
1136
|
var hiddenSeparatorWidth = rowHeaderWidth * 0.5;
|
|
1267
1137
|
var hiddenX = rowHeaderWidth * 0.5 - hiddenSeparatorWidth * 0.5;
|
|
1268
1138
|
context.save();
|
|
@@ -1313,9 +1183,9 @@ export class GridRenderer {
|
|
|
1313
1183
|
context.fill();
|
|
1314
1184
|
}
|
|
1315
1185
|
if (headerSeparatorHoverColor) {
|
|
1316
|
-
var {
|
|
1317
|
-
index
|
|
1318
|
-
|
|
1186
|
+
var _ref10 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
|
|
1187
|
+
_ref10$index = _ref10.index,
|
|
1188
|
+
highlightedSeparator = _ref10$index === void 0 ? null : _ref10$index;
|
|
1319
1189
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
1320
1190
|
highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
|
|
1321
1191
|
}
|
|
@@ -1362,54 +1232,44 @@ export class GridRenderer {
|
|
|
1362
1232
|
if (rowHeight <= 0) {
|
|
1363
1233
|
return;
|
|
1364
1234
|
}
|
|
1365
|
-
var
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
var {
|
|
1371
|
-
modelRows,
|
|
1372
|
-
rowHeaderWidth
|
|
1373
|
-
} = metrics;
|
|
1235
|
+
var metrics = state.metrics,
|
|
1236
|
+
model = state.model,
|
|
1237
|
+
theme = state.theme;
|
|
1238
|
+
var modelRows = metrics.modelRows,
|
|
1239
|
+
rowHeaderWidth = metrics.rowHeaderWidth;
|
|
1374
1240
|
var modelRow = getOrThrow(modelRows, row);
|
|
1375
1241
|
var x = rowHeaderWidth - theme.cellHorizontalPadding;
|
|
1376
1242
|
var y = rowY + rowHeight * 0.5;
|
|
1377
1243
|
context.fillText(model.textForRowHeader(modelRow), x, y);
|
|
1378
1244
|
}
|
|
1379
1245
|
drawRowFooters(context, state) {
|
|
1380
|
-
var
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
allRowHeights,
|
|
1398
|
-
allRowYs,
|
|
1399
|
-
width
|
|
1400
|
-
} = 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;
|
|
1401
1263
|
if (rowFooterWidth <= 0) {
|
|
1402
1264
|
return;
|
|
1403
1265
|
}
|
|
1404
|
-
var
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
headerSeparatorHoverColor
|
|
1412
|
-
} = 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;
|
|
1413
1273
|
var hiddenSeparatorWidth = rowFooterWidth * 0.5;
|
|
1414
1274
|
var hiddenX = rowFooterWidth * 0.5 - hiddenSeparatorWidth * 0.5;
|
|
1415
1275
|
var x = Math.min(gridX + maxX, width - rowFooterWidth - verticalBarWidth);
|
|
@@ -1461,9 +1321,9 @@ export class GridRenderer {
|
|
|
1461
1321
|
context.fill();
|
|
1462
1322
|
}
|
|
1463
1323
|
if (headerSeparatorHoverColor) {
|
|
1464
|
-
var {
|
|
1465
|
-
index
|
|
1466
|
-
|
|
1324
|
+
var _ref11 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
|
|
1325
|
+
_ref11$index = _ref11.index,
|
|
1326
|
+
highlightedSeparator = _ref11$index === void 0 ? null : _ref11$index;
|
|
1467
1327
|
if (highlightedSeparator == null && mouseX != null && mouseY != null) {
|
|
1468
1328
|
highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
|
|
1469
1329
|
}
|
|
@@ -1513,35 +1373,37 @@ export class GridRenderer {
|
|
|
1513
1373
|
}
|
|
1514
1374
|
drawSelectedRanges(context, state) {
|
|
1515
1375
|
var viewport = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
1516
|
-
var
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
minY = -10,
|
|
1541
|
-
maxY =
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
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;
|
|
1545
1407
|
if (selectedRanges.length === 0) {
|
|
1546
1408
|
return;
|
|
1547
1409
|
}
|
|
@@ -1611,21 +1473,15 @@ export class GridRenderer {
|
|
|
1611
1473
|
}
|
|
1612
1474
|
}
|
|
1613
1475
|
drawActiveCell(context, state, column, row) {
|
|
1614
|
-
var
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
allRowHeights,
|
|
1624
|
-
allRowYs
|
|
1625
|
-
} = metrics;
|
|
1626
|
-
var {
|
|
1627
|
-
activeCellSelectionBorderWidth: borderWidth
|
|
1628
|
-
} = 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;
|
|
1629
1485
|
var cellX = getOrThrow(allColumnXs, column);
|
|
1630
1486
|
var cellY = getOrThrow(allRowYs, row);
|
|
1631
1487
|
var cellW = getOrThrow(allColumnWidths, column);
|
|
@@ -1646,9 +1502,7 @@ export class GridRenderer {
|
|
|
1646
1502
|
h -= borderWidth - y;
|
|
1647
1503
|
y = borderWidth * 0.5;
|
|
1648
1504
|
}
|
|
1649
|
-
var
|
|
1650
|
-
lineWidth
|
|
1651
|
-
} = context;
|
|
1505
|
+
var lineWidth = context.lineWidth;
|
|
1652
1506
|
context.beginPath();
|
|
1653
1507
|
context.lineWidth = borderWidth;
|
|
1654
1508
|
context.strokeStyle = theme.selectionOutlineColor;
|
|
@@ -1683,51 +1537,45 @@ export class GridRenderer {
|
|
|
1683
1537
|
}
|
|
1684
1538
|
drawDraggingColumn(context, state) {
|
|
1685
1539
|
var _modelColumns$get3;
|
|
1686
|
-
var
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
model
|
|
1692
|
-
} = state;
|
|
1540
|
+
var draggingColumn = state.draggingColumn,
|
|
1541
|
+
metrics = state.metrics,
|
|
1542
|
+
mouseX = state.mouseX,
|
|
1543
|
+
theme = state.theme,
|
|
1544
|
+
model = state.model;
|
|
1693
1545
|
if (draggingColumn == null || mouseX == null) {
|
|
1694
1546
|
return;
|
|
1695
1547
|
}
|
|
1696
|
-
var
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
movedColumns,
|
|
1710
|
-
modelColumns,
|
|
1711
|
-
floatingLeftWidth
|
|
1712
|
-
} = 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;
|
|
1713
1561
|
var draggingModelIndex = (_modelColumns$get3 = modelColumns.get(draggingColumnVisibleRange[0])) !== null && _modelColumns$get3 !== void 0 ? _modelColumns$get3 : GridUtils.getModelIndex(draggingColumnVisibleRange[0], movedColumns);
|
|
1714
1562
|
var draggingGroup = model.getColumnHeaderGroup(draggingModelIndex, draggingColumnDepth);
|
|
1715
1563
|
if (draggingColumnDepth > 0 && !draggingGroup) {
|
|
1716
1564
|
return;
|
|
1717
1565
|
}
|
|
1718
|
-
var
|
|
1566
|
+
var _draggingColumnVisibl = _slicedToArray(draggingColumnVisibleRange, 2),
|
|
1567
|
+
startIndex = _draggingColumnVisibl[0],
|
|
1568
|
+
endIndex = _draggingColumnVisibl[1];
|
|
1719
1569
|
var originalLeft = getOrThrow(allColumnXs, startIndex);
|
|
1720
1570
|
var originalRight = getOrThrow(allColumnXs, endIndex) + getOrThrow(allColumnWidths, endIndex);
|
|
1721
1571
|
var originalWidth = originalRight - originalLeft;
|
|
1722
1572
|
var draggingLeft = draggingColumn.left;
|
|
1723
|
-
var
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
shadowColor
|
|
1730
|
-
} = 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;
|
|
1731
1579
|
var columnHeaderOffset = (columnHeaderMaxDepth - draggingColumnDepth - 1) * columnHeaderHeight;
|
|
1732
1580
|
context.save();
|
|
1733
1581
|
context.translate(gridX, 0);
|
|
@@ -1791,33 +1639,27 @@ export class GridRenderer {
|
|
|
1791
1639
|
context.restore();
|
|
1792
1640
|
}
|
|
1793
1641
|
drawDraggingRow(context, state) {
|
|
1794
|
-
var
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
theme
|
|
1800
|
-
} = state;
|
|
1642
|
+
var draggingRow = state.draggingRow,
|
|
1643
|
+
draggingRowOffset = state.draggingRowOffset,
|
|
1644
|
+
metrics = state.metrics,
|
|
1645
|
+
mouseY = state.mouseY,
|
|
1646
|
+
theme = state.theme;
|
|
1801
1647
|
if (draggingRow == null || mouseY == null) {
|
|
1802
1648
|
return;
|
|
1803
1649
|
}
|
|
1804
|
-
var
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
width
|
|
1810
|
-
} = metrics;
|
|
1650
|
+
var gridX = metrics.gridX,
|
|
1651
|
+
gridY = metrics.gridY,
|
|
1652
|
+
allRowYs = metrics.allRowYs,
|
|
1653
|
+
allRowHeights = metrics.allRowHeights,
|
|
1654
|
+
width = metrics.width;
|
|
1811
1655
|
var y = getOrThrow(allRowYs, draggingRow);
|
|
1812
1656
|
var rowHeight = getOrThrow(allRowHeights, draggingRow) + 1;
|
|
1813
|
-
var
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
shadowColor
|
|
1820
|
-
} = 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;
|
|
1821
1663
|
context.save();
|
|
1822
1664
|
context.translate(0, gridY);
|
|
1823
1665
|
|
|
@@ -1849,49 +1691,43 @@ export class GridRenderer {
|
|
|
1849
1691
|
context.restore();
|
|
1850
1692
|
}
|
|
1851
1693
|
drawScrollBars(context, state) {
|
|
1852
|
-
var
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
theme
|
|
1860
|
-
} = 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;
|
|
1861
1701
|
if (theme.scrollBarSize <= 0) {
|
|
1862
1702
|
return;
|
|
1863
1703
|
}
|
|
1864
|
-
var
|
|
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
|
-
|
|
1891
|
-
scrollBarActiveSelectionTickColor,
|
|
1892
|
-
autoSelectRow,
|
|
1893
|
-
autoSelectColumn
|
|
1894
|
-
} = 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;
|
|
1895
1731
|
var isInbounds = mouseX != null && mouseY != null && mouseX <= width && mouseY <= height;
|
|
1896
1732
|
var isVerticalBarHover = isDraggingVerticalScrollBar || hasVerticalBar && !isDraggingHorizontalScrollBar && !isDragging && mouseX != null && mouseY != null && mouseX >= width - scrollBarHoverSize && mouseY >= barTop && isInbounds;
|
|
1897
1733
|
var isHorizontalBarHover = isDraggingHorizontalScrollBar || hasHorizontalBar && !isDraggingVerticalScrollBar && !isDragging && !isVerticalBarHover &&
|
|
@@ -1931,14 +1767,10 @@ export class GridRenderer {
|
|
|
1931
1767
|
if (!autoSelectRow && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
|
|
1932
1768
|
context.fillStyle = scrollBarSelectionTickColor;
|
|
1933
1769
|
// Scrollbar Selection Tick
|
|
1934
|
-
var
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
var {
|
|
1939
|
-
lastLeft,
|
|
1940
|
-
columnCount
|
|
1941
|
-
} = metrics;
|
|
1770
|
+
var selectedRanges = state.selectedRanges,
|
|
1771
|
+
cursorColumn = state.cursorColumn;
|
|
1772
|
+
var lastLeft = metrics.lastLeft,
|
|
1773
|
+
columnCount = metrics.columnCount;
|
|
1942
1774
|
var filteredRanges = [...selectedRanges].filter(value => value.startColumn != null && value.endColumn != null);
|
|
1943
1775
|
var sortedRanges = filteredRanges.map(value => [value.startColumn, value.endColumn]).sort(GridUtils.compareRanges);
|
|
1944
1776
|
var mergedRanges = GridUtils.mergeSortedRanges(sortedRanges);
|
|
@@ -1993,14 +1825,10 @@ export class GridRenderer {
|
|
|
1993
1825
|
context.fillRect(_x5 + scrollBarCasingWidth, _y9, vScrollBarSize - scrollBarCasingWidth, handleHeight);
|
|
1994
1826
|
if (!autoSelectColumn && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
|
|
1995
1827
|
// Scrollbar Selection Tick
|
|
1996
|
-
var
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
var {
|
|
2001
|
-
lastTop,
|
|
2002
|
-
rowCount
|
|
2003
|
-
} = metrics;
|
|
1828
|
+
var _selectedRanges = state.selectedRanges,
|
|
1829
|
+
cursorRow = state.cursorRow;
|
|
1830
|
+
var lastTop = metrics.lastTop,
|
|
1831
|
+
rowCount = metrics.rowCount;
|
|
2004
1832
|
var getTickY = index => {
|
|
2005
1833
|
if (index <= lastTop) {
|
|
2006
1834
|
return index / lastTop * (barHeight - handleHeight);
|