@deephaven/grid 0.25.1-beta.0 → 0.25.1-beta.2
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/Grid.d.ts +1 -0
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +40 -40
- package/dist/Grid.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +36 -38
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMetrics.d.ts +6 -2
- package/dist/GridMetrics.d.ts.map +1 -1
- package/dist/GridMetrics.js.map +1 -1
- package/dist/GridRenderer.d.ts +0 -2
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +152 -152
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +35 -35
- package/dist/GridUtils.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +13 -13
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +8 -8
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +8 -8
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/package.json +4 -4
package/dist/GridRenderer.js
CHANGED
|
@@ -195,8 +195,8 @@ export class GridRenderer {
|
|
|
195
195
|
floatingRows,
|
|
196
196
|
rowCount,
|
|
197
197
|
visibleColumns,
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
allRowYs,
|
|
199
|
+
allRowHeights
|
|
200
200
|
} = metrics;
|
|
201
201
|
if (floatingRows.length === 0) {
|
|
202
202
|
return;
|
|
@@ -216,15 +216,15 @@ export class GridRenderer {
|
|
|
216
216
|
this.drawSelectedRanges(context, state, {
|
|
217
217
|
top: 0,
|
|
218
218
|
bottom: floatingTopRowCount - 1,
|
|
219
|
-
maxY: getOrThrow(
|
|
219
|
+
maxY: getOrThrow(allRowYs, floatingTopRowCount - 1) + getOrThrow(allRowHeights, floatingTopRowCount - 1) - 0.5
|
|
220
220
|
});
|
|
221
221
|
}
|
|
222
222
|
if (floatingBottomRowCount > 0) {
|
|
223
223
|
this.drawSelectedRanges(context, state, {
|
|
224
224
|
top: rowCount - floatingBottomRowCount - 1,
|
|
225
225
|
bottom: rowCount - 1,
|
|
226
|
-
minY: getOrThrow(
|
|
227
|
-
maxY: getOrThrow(
|
|
226
|
+
minY: getOrThrow(allRowYs, rowCount - floatingBottomRowCount) + 0.5,
|
|
227
|
+
maxY: getOrThrow(allRowYs, rowCount - 1) + getOrThrow(allRowHeights, rowCount - 1) - 0.5
|
|
228
228
|
});
|
|
229
229
|
}
|
|
230
230
|
|
|
@@ -254,8 +254,8 @@ export class GridRenderer {
|
|
|
254
254
|
maxX,
|
|
255
255
|
columnCount,
|
|
256
256
|
visibleRows,
|
|
257
|
-
|
|
258
|
-
|
|
257
|
+
allColumnXs,
|
|
258
|
+
allColumnWidths,
|
|
259
259
|
width,
|
|
260
260
|
height
|
|
261
261
|
} = metrics;
|
|
@@ -284,15 +284,15 @@ export class GridRenderer {
|
|
|
284
284
|
if (floatingLeftColumnCount > 0) {
|
|
285
285
|
this.drawSelectedRanges(context, state, {
|
|
286
286
|
left: 0,
|
|
287
|
-
maxX: getOrThrow(
|
|
287
|
+
maxX: getOrThrow(allColumnXs, floatingLeftColumnCount - 1) + getOrThrow(allColumnWidths, floatingLeftColumnCount - 1)
|
|
288
288
|
});
|
|
289
289
|
}
|
|
290
290
|
if (floatingRightColumnCount > 0) {
|
|
291
291
|
this.drawSelectedRanges(context, state, {
|
|
292
292
|
left: columnCount - floatingRightColumnCount,
|
|
293
293
|
right: columnCount - 1,
|
|
294
|
-
minX: getOrThrow(
|
|
295
|
-
maxX: getOrThrow(
|
|
294
|
+
minX: getOrThrow(allColumnXs, columnCount - floatingRightColumnCount) + 0.5,
|
|
295
|
+
maxX: getOrThrow(allColumnXs, columnCount - 1) + getOrThrow(allColumnWidths, columnCount - 1)
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
298
|
|
|
@@ -317,10 +317,10 @@ export class GridRenderer {
|
|
|
317
317
|
floatingRightColumnCount,
|
|
318
318
|
rowCount,
|
|
319
319
|
columnCount,
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
320
|
+
allRowYs,
|
|
321
|
+
allColumnXs,
|
|
322
|
+
allRowHeights,
|
|
323
|
+
allColumnWidths,
|
|
324
324
|
maxX,
|
|
325
325
|
maxY
|
|
326
326
|
} = metrics;
|
|
@@ -332,22 +332,22 @@ export class GridRenderer {
|
|
|
332
332
|
context.beginPath();
|
|
333
333
|
context.strokeStyle = floatingDividerOuterColor;
|
|
334
334
|
if (floatingTopRowCount > 0) {
|
|
335
|
-
var y = getOrThrow(
|
|
335
|
+
var y = getOrThrow(allRowYs, floatingTopRowCount - 1) + getOrThrow(allRowHeights, floatingTopRowCount - 1) + 0.5;
|
|
336
336
|
context.moveTo(0, y);
|
|
337
337
|
context.lineTo(maxX, y);
|
|
338
338
|
}
|
|
339
339
|
if (floatingBottomRowCount > 0) {
|
|
340
|
-
var _y = getOrThrow(
|
|
340
|
+
var _y = getOrThrow(allRowYs, rowCount - floatingBottomRowCount) - 0.5;
|
|
341
341
|
context.moveTo(0, _y);
|
|
342
342
|
context.lineTo(maxX, _y);
|
|
343
343
|
}
|
|
344
344
|
if (floatingLeftColumnCount > 0) {
|
|
345
|
-
var x = getOrThrow(
|
|
345
|
+
var x = getOrThrow(allColumnXs, floatingLeftColumnCount - 1) + getOrThrow(allColumnWidths, floatingLeftColumnCount - 1) + 0.5;
|
|
346
346
|
context.moveTo(x, 0);
|
|
347
347
|
context.lineTo(x, maxY);
|
|
348
348
|
}
|
|
349
349
|
if (floatingRightColumnCount > 0) {
|
|
350
|
-
var _x = getOrThrow(
|
|
350
|
+
var _x = getOrThrow(allColumnXs, columnCount - floatingRightColumnCount) - 0.5;
|
|
351
351
|
context.moveTo(_x, 0);
|
|
352
352
|
context.lineTo(_x, maxY);
|
|
353
353
|
}
|
|
@@ -356,22 +356,22 @@ export class GridRenderer {
|
|
|
356
356
|
context.lineWidth = 1;
|
|
357
357
|
context.strokeStyle = floatingDividerInnerColor;
|
|
358
358
|
if (floatingTopRowCount > 0) {
|
|
359
|
-
var _y2 = getOrThrow(
|
|
359
|
+
var _y2 = getOrThrow(allRowYs, floatingTopRowCount - 1) + getOrThrow(allRowHeights, floatingTopRowCount - 1) + 0.5;
|
|
360
360
|
context.moveTo(0, _y2);
|
|
361
361
|
context.lineTo(maxX, _y2);
|
|
362
362
|
}
|
|
363
363
|
if (floatingBottomRowCount > 0) {
|
|
364
|
-
var _y3 = getOrThrow(
|
|
364
|
+
var _y3 = getOrThrow(allRowYs, rowCount - floatingBottomRowCount) - 0.5;
|
|
365
365
|
context.moveTo(0, _y3);
|
|
366
366
|
context.lineTo(maxX, _y3);
|
|
367
367
|
}
|
|
368
368
|
if (floatingLeftColumnCount > 0) {
|
|
369
|
-
var _x2 = getOrThrow(
|
|
369
|
+
var _x2 = getOrThrow(allColumnXs, floatingLeftColumnCount - 1) + getOrThrow(allColumnWidths, floatingLeftColumnCount - 1) + 0.5;
|
|
370
370
|
context.moveTo(_x2, 0);
|
|
371
371
|
context.lineTo(_x2, maxY);
|
|
372
372
|
}
|
|
373
373
|
if (floatingRightColumnCount > 0) {
|
|
374
|
-
var _x3 = getOrThrow(
|
|
374
|
+
var _x3 = getOrThrow(allColumnXs, columnCount - floatingRightColumnCount) - 0.5;
|
|
375
375
|
context.moveTo(_x3, 0);
|
|
376
376
|
context.lineTo(_x3, maxY);
|
|
377
377
|
}
|
|
@@ -398,20 +398,20 @@ export class GridRenderer {
|
|
|
398
398
|
floatingTopRowCount,
|
|
399
399
|
columnCount,
|
|
400
400
|
rowCount,
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
401
|
+
allRowHeights,
|
|
402
|
+
allRowYs,
|
|
403
|
+
allColumnXs,
|
|
404
|
+
allColumnWidths,
|
|
405
405
|
width,
|
|
406
406
|
height
|
|
407
407
|
} = metrics;
|
|
408
408
|
this.drawSelectedRanges(context, state, {
|
|
409
409
|
bottom: Math.min(bottom, rowCount - floatingBottomRowCount - 1),
|
|
410
410
|
right: Math.min(right, columnCount - floatingRightColumnCount - 1),
|
|
411
|
-
minX: floatingLeftColumnCount > 0 &&
|
|
412
|
-
minY: floatingTopRowCount > 0 &&
|
|
413
|
-
maxX: floatingRightColumnCount > 0 &&
|
|
414
|
-
maxY: floatingBottomRowCount > 0 &&
|
|
411
|
+
minX: floatingLeftColumnCount > 0 && allColumnXs.has(floatingLeftColumnCount + 1) ? getOrThrow(allColumnXs, floatingLeftColumnCount + 1) : -10,
|
|
412
|
+
minY: floatingTopRowCount > 0 && allRowYs.has(floatingTopRowCount + 1) ? getOrThrow(allRowYs, floatingTopRowCount + 1) : -10,
|
|
413
|
+
maxX: floatingRightColumnCount > 0 && allColumnXs.has(columnCount - floatingRightColumnCount - 1) ? getOrThrow(allColumnXs, columnCount - floatingRightColumnCount - 1) + getOrThrow(allColumnWidths, columnCount - floatingRightColumnCount - 1) - 0.5 : width + 10,
|
|
414
|
+
maxY: floatingBottomRowCount > 0 && allRowYs.has(rowCount - floatingBottomRowCount - 1) ? getOrThrow(allRowYs, rowCount - floatingBottomRowCount - 1) + getOrThrow(allRowHeights, rowCount - floatingBottomRowCount - 1) - 0.5 : height + 10
|
|
415
415
|
});
|
|
416
416
|
}
|
|
417
417
|
drawRowStripes(context, state) {
|
|
@@ -445,8 +445,8 @@ export class GridRenderer {
|
|
|
445
445
|
} = theme;
|
|
446
446
|
var colorSets = this.getCachedBackgroundColors(rowBackgroundColors, maxDepth);
|
|
447
447
|
var {
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
allRowYs,
|
|
449
|
+
allRowHeights
|
|
450
450
|
} = metrics;
|
|
451
451
|
|
|
452
452
|
// Optimize by grouping together all rows that end up with the same color
|
|
@@ -482,8 +482,8 @@ export class GridRenderer {
|
|
|
482
482
|
context.beginPath();
|
|
483
483
|
for (var _i = 0; _i < colorRows.length; _i += 1) {
|
|
484
484
|
var _row = colorRows[_i];
|
|
485
|
-
var y = getOrThrow(
|
|
486
|
-
var rowHeight = getOrThrow(
|
|
485
|
+
var y = getOrThrow(allRowYs, _row);
|
|
486
|
+
var rowHeight = getOrThrow(allRowHeights, _row);
|
|
487
487
|
context.rect(minX, y, maxX, rowHeight);
|
|
488
488
|
}
|
|
489
489
|
context.fill();
|
|
@@ -498,7 +498,7 @@ export class GridRenderer {
|
|
|
498
498
|
context.fillStyle = gradient;
|
|
499
499
|
for (var _i2 = 0; _i2 < topShadowRows.length; _i2 += 1) {
|
|
500
500
|
var _row2 = topShadowRows[_i2];
|
|
501
|
-
var y = getOrThrow(
|
|
501
|
+
var y = getOrThrow(allRowYs, _row2);
|
|
502
502
|
// Use a translate so we can reuse the gradient
|
|
503
503
|
context.translate(0, y);
|
|
504
504
|
context.fillRect(minX, 0, maxX, shadowBlur);
|
|
@@ -516,8 +516,8 @@ export class GridRenderer {
|
|
|
516
516
|
context.fillStyle = _gradient;
|
|
517
517
|
for (var _i3 = 0; _i3 < bottomShadowRows.length; _i3 += 1) {
|
|
518
518
|
var _row3 = bottomShadowRows[_i3];
|
|
519
|
-
var _y4 = getOrThrow(
|
|
520
|
-
var rowHeight = getOrThrow(
|
|
519
|
+
var _y4 = getOrThrow(allRowYs, _row3);
|
|
520
|
+
var rowHeight = getOrThrow(allRowHeights, _row3);
|
|
521
521
|
var gradientY = _y4 + rowHeight - shadowBlur;
|
|
522
522
|
// Use a translate so we can reuse the gradient
|
|
523
523
|
context.translate(0, gradientY);
|
|
@@ -540,15 +540,15 @@ export class GridRenderer {
|
|
|
540
540
|
return;
|
|
541
541
|
}
|
|
542
542
|
var {
|
|
543
|
-
|
|
544
|
-
|
|
543
|
+
allColumnWidths,
|
|
544
|
+
allColumnXs,
|
|
545
545
|
maxY
|
|
546
546
|
} = metrics;
|
|
547
547
|
if (mouseY > maxY) {
|
|
548
548
|
return;
|
|
549
549
|
}
|
|
550
|
-
var x = getOrThrow(
|
|
551
|
-
var columnWidth = getOrThrow(
|
|
550
|
+
var x = getOrThrow(allColumnXs, mouseColumn);
|
|
551
|
+
var columnWidth = getOrThrow(allColumnWidths, mouseColumn);
|
|
552
552
|
context.fillStyle = theme.columnHoverBackgroundColor;
|
|
553
553
|
context.fillRect(x, 0, columnWidth, maxY);
|
|
554
554
|
}
|
|
@@ -601,12 +601,12 @@ export class GridRenderer {
|
|
|
601
601
|
theme
|
|
602
602
|
} = state;
|
|
603
603
|
var {
|
|
604
|
-
|
|
605
|
-
|
|
604
|
+
allRowHeights,
|
|
605
|
+
allRowYs,
|
|
606
606
|
maxX
|
|
607
607
|
} = metrics;
|
|
608
|
-
var y = getOrThrow(
|
|
609
|
-
var rowHeight = getOrThrow(
|
|
608
|
+
var y = getOrThrow(allRowYs, row);
|
|
609
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
610
610
|
if (theme.rowHoverBackgroundColor != null) {
|
|
611
611
|
context.fillStyle = theme.rowHoverBackgroundColor;
|
|
612
612
|
}
|
|
@@ -656,12 +656,12 @@ export class GridRenderer {
|
|
|
656
656
|
metrics
|
|
657
657
|
} = state;
|
|
658
658
|
var {
|
|
659
|
-
|
|
659
|
+
allColumnXs,
|
|
660
660
|
maxY
|
|
661
661
|
} = metrics;
|
|
662
662
|
for (var i = 0; i < columns.length; i += 1) {
|
|
663
663
|
var column = columns[i];
|
|
664
|
-
var x = getOrThrow(
|
|
664
|
+
var x = getOrThrow(allColumnXs, column) + 0.5;
|
|
665
665
|
context.moveTo(x, 0);
|
|
666
666
|
context.lineTo(x, maxY);
|
|
667
667
|
}
|
|
@@ -671,7 +671,7 @@ export class GridRenderer {
|
|
|
671
671
|
metrics
|
|
672
672
|
} = state;
|
|
673
673
|
var {
|
|
674
|
-
|
|
674
|
+
allRowYs,
|
|
675
675
|
maxX: metricsMaxX
|
|
676
676
|
} = metrics;
|
|
677
677
|
var maxX = metricsMaxX;
|
|
@@ -679,7 +679,7 @@ export class GridRenderer {
|
|
|
679
679
|
// Draw row lines
|
|
680
680
|
for (var i = 0; i < rows.length; i += 1) {
|
|
681
681
|
var row = rows[i];
|
|
682
|
-
var y = getOrThrow(
|
|
682
|
+
var y = getOrThrow(allRowYs, row) + 0.5;
|
|
683
683
|
context.moveTo(0.5, y);
|
|
684
684
|
context.lineTo(maxX - 0.5, y);
|
|
685
685
|
}
|
|
@@ -716,10 +716,10 @@ export class GridRenderer {
|
|
|
716
716
|
firstColumn,
|
|
717
717
|
modelColumns,
|
|
718
718
|
modelRows,
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
719
|
+
allColumnXs,
|
|
720
|
+
allColumnWidths,
|
|
721
|
+
allRowYs,
|
|
722
|
+
allRowHeights
|
|
723
723
|
} = metrics;
|
|
724
724
|
var modelRow = getOrThrow(modelRows, row);
|
|
725
725
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
@@ -727,10 +727,10 @@ export class GridRenderer {
|
|
|
727
727
|
var isFirstColumn = column === firstColumn;
|
|
728
728
|
var hasExpandableRows = isExpandableGridModel(model) && model.hasExpandableRows;
|
|
729
729
|
if (backgroundColor != null) {
|
|
730
|
-
var x = getOrThrow(
|
|
731
|
-
var y = getOrThrow(
|
|
732
|
-
var columnWidth = getOrThrow(
|
|
733
|
-
var rowHeight = getOrThrow(
|
|
730
|
+
var x = getOrThrow(allColumnXs, column) + 1;
|
|
731
|
+
var y = getOrThrow(allRowYs, row) + 1;
|
|
732
|
+
var columnWidth = getOrThrow(allColumnWidths, column) - 1;
|
|
733
|
+
var rowHeight = getOrThrow(allRowHeights, row) - 1;
|
|
734
734
|
context.fillStyle = backgroundColor;
|
|
735
735
|
context.fillRect(x, y, columnWidth, rowHeight);
|
|
736
736
|
}
|
|
@@ -755,13 +755,13 @@ export class GridRenderer {
|
|
|
755
755
|
metrics
|
|
756
756
|
} = state;
|
|
757
757
|
var {
|
|
758
|
-
|
|
759
|
-
|
|
758
|
+
allColumnXs,
|
|
759
|
+
allColumnWidths,
|
|
760
760
|
visibleRows,
|
|
761
761
|
height
|
|
762
762
|
} = metrics;
|
|
763
|
-
var x = getOrThrow(
|
|
764
|
-
var columnWidth = getOrThrow(
|
|
763
|
+
var x = getOrThrow(allColumnXs, column);
|
|
764
|
+
var columnWidth = getOrThrow(allColumnWidths, column);
|
|
765
765
|
context.save();
|
|
766
766
|
context.beginPath();
|
|
767
767
|
context.rect(x, 0, columnWidth, height);
|
|
@@ -795,20 +795,20 @@ export class GridRenderer {
|
|
|
795
795
|
} = state;
|
|
796
796
|
var {
|
|
797
797
|
firstColumn,
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
798
|
+
allColumnXs,
|
|
799
|
+
allColumnWidths,
|
|
800
|
+
allRowYs,
|
|
801
|
+
allRowHeights
|
|
802
802
|
} = metrics;
|
|
803
803
|
var {
|
|
804
804
|
cellHorizontalPadding,
|
|
805
805
|
treeDepthIndent,
|
|
806
806
|
treeHorizontalPadding
|
|
807
807
|
} = theme;
|
|
808
|
-
var x = getOrThrow(
|
|
809
|
-
var y = getOrThrow(
|
|
810
|
-
var columnWidth = getOrThrow(
|
|
811
|
-
var rowHeight = getOrThrow(
|
|
808
|
+
var x = getOrThrow(allColumnXs, column);
|
|
809
|
+
var y = getOrThrow(allRowYs, row);
|
|
810
|
+
var columnWidth = getOrThrow(allColumnWidths, column);
|
|
811
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
812
812
|
var isFirstColumn = column === firstColumn;
|
|
813
813
|
var treeIndent = 0;
|
|
814
814
|
if (isExpandableGridModel(model) && model.hasExpandableRows && isFirstColumn) {
|
|
@@ -840,12 +840,12 @@ export class GridRenderer {
|
|
|
840
840
|
fontWidths,
|
|
841
841
|
modelColumns,
|
|
842
842
|
modelRows,
|
|
843
|
-
|
|
843
|
+
allRowHeights
|
|
844
844
|
} = metrics;
|
|
845
845
|
var {
|
|
846
846
|
textColor
|
|
847
847
|
} = theme;
|
|
848
|
-
var rowHeight = getOrThrow(
|
|
848
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
849
849
|
var modelRow = getOrThrow(modelRows, row);
|
|
850
850
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
851
851
|
var text = textOverride !== null && textOverride !== void 0 ? textOverride : model.textForCell(modelColumn, modelRow);
|
|
@@ -884,20 +884,20 @@ export class GridRenderer {
|
|
|
884
884
|
firstColumn,
|
|
885
885
|
gridX,
|
|
886
886
|
gridY,
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
887
|
+
allColumnXs,
|
|
888
|
+
allColumnWidths,
|
|
889
|
+
allRowYs,
|
|
890
|
+
allRowHeights,
|
|
891
891
|
visibleRowTreeBoxes
|
|
892
892
|
} = metrics;
|
|
893
893
|
var {
|
|
894
894
|
treeMarkerColor,
|
|
895
895
|
treeMarkerHoverColor
|
|
896
896
|
} = theme;
|
|
897
|
-
var columnX = getOrThrow(
|
|
898
|
-
var columnWidth = getOrThrow(
|
|
899
|
-
var rowY = getOrThrow(
|
|
900
|
-
var rowHeight = getOrThrow(
|
|
897
|
+
var columnX = getOrThrow(allColumnXs, firstColumn);
|
|
898
|
+
var columnWidth = getOrThrow(allColumnWidths, firstColumn);
|
|
899
|
+
var rowY = getOrThrow(allRowYs, row);
|
|
900
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
901
901
|
if (!isExpandableGridModel(model) || !model.isRowExpandable(row)) {
|
|
902
902
|
return;
|
|
903
903
|
}
|
|
@@ -930,18 +930,18 @@ export class GridRenderer {
|
|
|
930
930
|
if (depth === 0) return;
|
|
931
931
|
var {
|
|
932
932
|
firstColumn,
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
933
|
+
allColumnXs,
|
|
934
|
+
allRowYs,
|
|
935
|
+
allRowHeights
|
|
936
936
|
} = metrics;
|
|
937
937
|
var {
|
|
938
938
|
treeDepthIndent,
|
|
939
939
|
treeHorizontalPadding,
|
|
940
940
|
treeLineColor
|
|
941
941
|
} = theme;
|
|
942
|
-
var columnX = getOrThrow(
|
|
943
|
-
var rowY = getOrThrow(
|
|
944
|
-
var rowHeight = getOrThrow(
|
|
942
|
+
var columnX = getOrThrow(allColumnXs, firstColumn);
|
|
943
|
+
var rowY = getOrThrow(allRowYs, row);
|
|
944
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
945
945
|
var depthRowAfter = rowAfter !== undefined ? model.depthForRow(rowAfter) : 0;
|
|
946
946
|
var depthDiff = depth > depthRowAfter ? depth - depthRowAfter : 0;
|
|
947
947
|
context.strokeStyle = treeLineColor;
|
|
@@ -1003,8 +1003,8 @@ export class GridRenderer {
|
|
|
1003
1003
|
gridX,
|
|
1004
1004
|
width,
|
|
1005
1005
|
visibleColumns,
|
|
1006
|
-
|
|
1007
|
-
|
|
1006
|
+
allColumnWidths,
|
|
1007
|
+
allColumnXs,
|
|
1008
1008
|
floatingLeftColumnCount,
|
|
1009
1009
|
floatingLeftWidth,
|
|
1010
1010
|
floatingRightWidth,
|
|
@@ -1036,7 +1036,7 @@ export class GridRenderer {
|
|
|
1036
1036
|
}
|
|
1037
1037
|
if (headerSeparatorColor) {
|
|
1038
1038
|
context.strokeStyle = headerSeparatorColor;
|
|
1039
|
-
var hiddenColumns = [...
|
|
1039
|
+
var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
|
|
1040
1040
|
var [_, w] = _ref;
|
|
1041
1041
|
return w === 0;
|
|
1042
1042
|
}).map(_ref2 => {
|
|
@@ -1049,8 +1049,8 @@ export class GridRenderer {
|
|
|
1049
1049
|
context.fillStyle = headerSeparatorColor;
|
|
1050
1050
|
for (var i = 0; i < hiddenColumns.length; i += 1) {
|
|
1051
1051
|
var column = hiddenColumns[i];
|
|
1052
|
-
var columnX = getOrThrow(
|
|
1053
|
-
var columnWidth = getOrThrow(
|
|
1052
|
+
var columnX = getOrThrow(allColumnXs, column);
|
|
1053
|
+
var columnWidth = getOrThrow(allColumnWidths, column);
|
|
1054
1054
|
var minX = gridX + columnX + columnWidth + 0.5 - headerHiddenSeparatorSize * 0.5;
|
|
1055
1055
|
context.rect(minX, hiddenY, headerHiddenSeparatorSize, hiddenSeparatorHeight);
|
|
1056
1056
|
}
|
|
@@ -1080,12 +1080,12 @@ export class GridRenderer {
|
|
|
1080
1080
|
}
|
|
1081
1081
|
if (shouldDrawSeparator && highlightedSeparator != null && depth != null && (!isDragging || draggingColumnSeparator != null)) {
|
|
1082
1082
|
context.strokeStyle = headerSeparatorHoverColor;
|
|
1083
|
-
var _columnX = getOrThrow(
|
|
1084
|
-
var _columnWidth = getOrThrow(
|
|
1083
|
+
var _columnX = getOrThrow(allColumnXs, highlightedSeparator);
|
|
1084
|
+
var _columnWidth = getOrThrow(allColumnWidths, highlightedSeparator);
|
|
1085
1085
|
var x = gridX + _columnX + _columnWidth + 0.5;
|
|
1086
1086
|
var visibleColumnIndex = visibleColumns.indexOf(highlightedSeparator);
|
|
1087
1087
|
var nextColumn = visibleColumnIndex < visibleColumns.length - 1 ? visibleColumns[visibleColumnIndex + 1] : null;
|
|
1088
|
-
var nextColumnWidth = nextColumn != null ?
|
|
1088
|
+
var nextColumnWidth = nextColumn != null ? allColumnWidths.get(nextColumn) : null;
|
|
1089
1089
|
var isColumnHidden = _columnWidth === 0;
|
|
1090
1090
|
var isNextColumnHidden = nextColumnWidth != null && nextColumnWidth === 0;
|
|
1091
1091
|
if (isColumnHidden) {
|
|
@@ -1128,11 +1128,11 @@ export class GridRenderer {
|
|
|
1128
1128
|
} = state;
|
|
1129
1129
|
var {
|
|
1130
1130
|
modelColumns,
|
|
1131
|
-
|
|
1131
|
+
allColumnXs,
|
|
1132
1132
|
gridX,
|
|
1133
1133
|
calculatedColumnWidths,
|
|
1134
1134
|
userColumnWidths,
|
|
1135
|
-
|
|
1135
|
+
allColumnWidths,
|
|
1136
1136
|
movedColumns
|
|
1137
1137
|
} = metrics;
|
|
1138
1138
|
var {
|
|
@@ -1174,8 +1174,8 @@ export class GridRenderer {
|
|
|
1174
1174
|
var modelColumn = getOrThrow(modelColumns, columnIndex);
|
|
1175
1175
|
var columnGroupName = model.textForColumnHeader(modelColumn, depth);
|
|
1176
1176
|
var columnGroupColor = model.colorForColumnHeader(modelColumn, depth);
|
|
1177
|
-
var columnGroupLeft = getOrThrow(
|
|
1178
|
-
var columnGroupRight = columnGroupLeft + getOrThrow(
|
|
1177
|
+
var columnGroupLeft = getOrThrow(allColumnXs, columnIndex) + gridX;
|
|
1178
|
+
var columnGroupRight = columnGroupLeft + getOrThrow(allColumnWidths, columnIndex);
|
|
1179
1179
|
if (columnGroupName != null) {
|
|
1180
1180
|
// Need to determine if the column group is at least the width of the bounds
|
|
1181
1181
|
// And if the left/right of the group extend past the bounds
|
|
@@ -1245,12 +1245,12 @@ export class GridRenderer {
|
|
|
1245
1245
|
} = state;
|
|
1246
1246
|
var {
|
|
1247
1247
|
modelColumns,
|
|
1248
|
-
|
|
1249
|
-
|
|
1248
|
+
allColumnWidths,
|
|
1249
|
+
allColumnXs,
|
|
1250
1250
|
gridX
|
|
1251
1251
|
} = metrics;
|
|
1252
|
-
var width = getOrThrow(
|
|
1253
|
-
var x = getOrThrow(
|
|
1252
|
+
var width = getOrThrow(allColumnWidths, index);
|
|
1253
|
+
var x = getOrThrow(allColumnXs, index) + gridX;
|
|
1254
1254
|
var modelColumn = getOrThrow(modelColumns, index);
|
|
1255
1255
|
var text = model.textForColumnHeader(modelColumn);
|
|
1256
1256
|
if (text == null) {
|
|
@@ -1389,8 +1389,8 @@ export class GridRenderer {
|
|
|
1389
1389
|
rowHeaderWidth,
|
|
1390
1390
|
height,
|
|
1391
1391
|
visibleRows,
|
|
1392
|
-
|
|
1393
|
-
|
|
1392
|
+
allRowHeights,
|
|
1393
|
+
allRowYs
|
|
1394
1394
|
} = metrics;
|
|
1395
1395
|
if (rowHeaderWidth <= 0) {
|
|
1396
1396
|
return;
|
|
@@ -1422,8 +1422,8 @@ export class GridRenderer {
|
|
|
1422
1422
|
var isPreviousRowHidden = false;
|
|
1423
1423
|
for (var i = 0; i < visibleRows.length; i += 1) {
|
|
1424
1424
|
var row = visibleRows[i];
|
|
1425
|
-
var rowY = getOrThrow(
|
|
1426
|
-
var rowHeight = getOrThrow(
|
|
1425
|
+
var rowY = getOrThrow(allRowYs, row);
|
|
1426
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
1427
1427
|
if (rowHeight > 0) {
|
|
1428
1428
|
var y = gridY + rowY + rowHeight + 0.5;
|
|
1429
1429
|
context.moveTo(0, y);
|
|
@@ -1445,8 +1445,8 @@ export class GridRenderer {
|
|
|
1445
1445
|
context.fillStyle = headerSeparatorColor;
|
|
1446
1446
|
for (var _i5 = 0; _i5 < hiddenRows.length; _i5 += 1) {
|
|
1447
1447
|
var _row4 = hiddenRows[_i5];
|
|
1448
|
-
var _rowY = getOrThrow(
|
|
1449
|
-
var _rowHeight = getOrThrow(
|
|
1448
|
+
var _rowY = getOrThrow(allRowYs, _row4);
|
|
1449
|
+
var _rowHeight = getOrThrow(allRowHeights, _row4);
|
|
1450
1450
|
var minY = gridY + _rowY + _rowHeight + 0.5 - headerHiddenSeparatorSize * 0.5;
|
|
1451
1451
|
context.rect(hiddenX, minY, hiddenSeparatorWidth, headerHiddenSeparatorSize);
|
|
1452
1452
|
}
|
|
@@ -1461,12 +1461,12 @@ export class GridRenderer {
|
|
|
1461
1461
|
}
|
|
1462
1462
|
if (highlightedSeparator != null) {
|
|
1463
1463
|
context.strokeStyle = headerSeparatorHoverColor;
|
|
1464
|
-
var _rowY2 = getOrThrow(
|
|
1465
|
-
var _rowHeight2 = getOrThrow(
|
|
1464
|
+
var _rowY2 = getOrThrow(allRowYs, highlightedSeparator);
|
|
1465
|
+
var _rowHeight2 = getOrThrow(allRowHeights, highlightedSeparator);
|
|
1466
1466
|
var _y5 = gridY + _rowY2 + _rowHeight2 + 0.5;
|
|
1467
1467
|
var visibleRowIndex = visibleRows.indexOf(highlightedSeparator);
|
|
1468
1468
|
var nextRow = visibleRowIndex < visibleRows.length - 1 ? visibleRows[visibleRowIndex + 1] : null;
|
|
1469
|
-
var nextRowHeight = nextRow != null ?
|
|
1469
|
+
var nextRowHeight = nextRow != null ? allRowHeights.get(nextRow) : null;
|
|
1470
1470
|
var isRowHidden = _rowHeight2 === 0;
|
|
1471
1471
|
var isNextRowHidden = nextRowHeight != null && nextRowHeight === 0;
|
|
1472
1472
|
if (isRowHidden) {
|
|
@@ -1492,8 +1492,8 @@ export class GridRenderer {
|
|
|
1492
1492
|
context.textAlign = 'right';
|
|
1493
1493
|
for (var _i6 = 0; _i6 < visibleRows.length; _i6 += 1) {
|
|
1494
1494
|
var _row5 = visibleRows[_i6];
|
|
1495
|
-
var _rowHeight3 = getOrThrow(
|
|
1496
|
-
var _y6 = getOrThrow(
|
|
1495
|
+
var _rowHeight3 = getOrThrow(allRowHeights, _row5);
|
|
1496
|
+
var _y6 = getOrThrow(allRowYs, _row5) + gridY;
|
|
1497
1497
|
this.drawRowHeader(context, state, _row5, _y6, _rowHeight3);
|
|
1498
1498
|
}
|
|
1499
1499
|
context.restore();
|
|
@@ -1534,8 +1534,8 @@ export class GridRenderer {
|
|
|
1534
1534
|
height,
|
|
1535
1535
|
verticalBarWidth,
|
|
1536
1536
|
visibleRows,
|
|
1537
|
-
|
|
1538
|
-
|
|
1537
|
+
allRowHeights,
|
|
1538
|
+
allRowYs,
|
|
1539
1539
|
width
|
|
1540
1540
|
} = metrics;
|
|
1541
1541
|
if (rowFooterWidth <= 0) {
|
|
@@ -1570,8 +1570,8 @@ export class GridRenderer {
|
|
|
1570
1570
|
var isPreviousRowHidden = false;
|
|
1571
1571
|
for (var i = 0; i < visibleRows.length; i += 1) {
|
|
1572
1572
|
var row = visibleRows[i];
|
|
1573
|
-
var rowY = getOrThrow(
|
|
1574
|
-
var rowHeight = getOrThrow(
|
|
1573
|
+
var rowY = getOrThrow(allRowYs, row);
|
|
1574
|
+
var rowHeight = getOrThrow(allRowHeights, row);
|
|
1575
1575
|
if (rowHeight > 0) {
|
|
1576
1576
|
var y = gridY + rowY + rowHeight + 0.5;
|
|
1577
1577
|
context.moveTo(x + 0.5, y);
|
|
@@ -1593,8 +1593,8 @@ export class GridRenderer {
|
|
|
1593
1593
|
context.fillStyle = headerSeparatorColor;
|
|
1594
1594
|
for (var _i7 = 0; _i7 < hiddenRows.length; _i7 += 1) {
|
|
1595
1595
|
var _row6 = hiddenRows[_i7];
|
|
1596
|
-
var _rowY3 = getOrThrow(
|
|
1597
|
-
var _rowHeight4 = getOrThrow(
|
|
1596
|
+
var _rowY3 = getOrThrow(allRowYs, _row6);
|
|
1597
|
+
var _rowHeight4 = getOrThrow(allRowHeights, _row6);
|
|
1598
1598
|
var minY = gridY + _rowY3 + _rowHeight4 + 0.5 - headerHiddenSeparatorSize * 0.5;
|
|
1599
1599
|
context.rect(x + hiddenX, minY, hiddenSeparatorWidth, headerHiddenSeparatorSize);
|
|
1600
1600
|
}
|
|
@@ -1609,12 +1609,12 @@ export class GridRenderer {
|
|
|
1609
1609
|
}
|
|
1610
1610
|
if (highlightedSeparator != null) {
|
|
1611
1611
|
context.strokeStyle = headerSeparatorHoverColor;
|
|
1612
|
-
var _rowY4 = getOrThrow(
|
|
1613
|
-
var _rowHeight5 = getOrThrow(
|
|
1612
|
+
var _rowY4 = getOrThrow(allRowYs, highlightedSeparator);
|
|
1613
|
+
var _rowHeight5 = getOrThrow(allRowHeights, highlightedSeparator);
|
|
1614
1614
|
var _y7 = gridY + _rowY4 + _rowHeight5 + 0.5;
|
|
1615
1615
|
var visibleRowIndex = visibleRows.indexOf(highlightedSeparator);
|
|
1616
1616
|
var nextRow = visibleRowIndex < visibleRows.length - 1 ? visibleRows[visibleRowIndex + 1] : null;
|
|
1617
|
-
var nextRowHeight = nextRow != null ?
|
|
1617
|
+
var nextRowHeight = nextRow != null ? allRowHeights.get(nextRow) : null;
|
|
1618
1618
|
var isRowHidden = _rowHeight5 === 0;
|
|
1619
1619
|
var isNextRowHidden = nextRowHeight != null && nextRowHeight === 0;
|
|
1620
1620
|
if (isRowHidden) {
|
|
@@ -1641,9 +1641,9 @@ export class GridRenderer {
|
|
|
1641
1641
|
var textX = x + cellHorizontalPadding;
|
|
1642
1642
|
for (var _i8 = 0; _i8 < visibleRows.length; _i8 += 1) {
|
|
1643
1643
|
var _row7 = visibleRows[_i8];
|
|
1644
|
-
var _rowHeight6 = getOrThrow(
|
|
1644
|
+
var _rowHeight6 = getOrThrow(allRowHeights, _row7);
|
|
1645
1645
|
if (_rowHeight6 > 0) {
|
|
1646
|
-
var _rowY5 = getOrThrow(
|
|
1646
|
+
var _rowY5 = getOrThrow(allRowYs, _row7) + gridY;
|
|
1647
1647
|
var modelRow = getOrThrow(modelRows, _row7);
|
|
1648
1648
|
var textY = _rowY5 + _rowHeight6 * 0.5;
|
|
1649
1649
|
context.fillText(model.textForRowFooter(modelRow), textX, textY);
|
|
@@ -1665,10 +1665,10 @@ export class GridRenderer {
|
|
|
1665
1665
|
theme
|
|
1666
1666
|
} = state;
|
|
1667
1667
|
var {
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1668
|
+
allColumnWidths,
|
|
1669
|
+
allColumnXs,
|
|
1670
|
+
allRowHeights,
|
|
1671
|
+
allRowYs,
|
|
1672
1672
|
width,
|
|
1673
1673
|
height
|
|
1674
1674
|
} = metrics;
|
|
@@ -1685,13 +1685,13 @@ export class GridRenderer {
|
|
|
1685
1685
|
if (selectedRanges.length === 0) {
|
|
1686
1686
|
return;
|
|
1687
1687
|
}
|
|
1688
|
-
var isCursorVisible = isEditableGridModel(model) && model.isEditable && editingCell == null && draggingRow == null && draggingColumn == null && column != null && row != null &&
|
|
1688
|
+
var isCursorVisible = isEditableGridModel(model) && model.isEditable && editingCell == null && draggingRow == null && draggingColumn == null && column != null && row != null && allColumnXs.has(column) && allRowYs.has(row);
|
|
1689
1689
|
if (isCursorVisible) {
|
|
1690
1690
|
// Punch a hole out where the active cell is, it gets styled differently.
|
|
1691
|
-
var x = getOrThrow(
|
|
1692
|
-
var y = getOrThrow(
|
|
1693
|
-
var w = getOrThrow(
|
|
1694
|
-
var h = getOrThrow(
|
|
1691
|
+
var x = getOrThrow(allColumnXs, column);
|
|
1692
|
+
var y = getOrThrow(allRowYs, row);
|
|
1693
|
+
var w = getOrThrow(allColumnWidths, column);
|
|
1694
|
+
var h = getOrThrow(allRowHeights, row);
|
|
1695
1695
|
context.save();
|
|
1696
1696
|
context.beginPath();
|
|
1697
1697
|
context.rect(0, 0, width, height);
|
|
@@ -1709,10 +1709,10 @@ export class GridRenderer {
|
|
|
1709
1709
|
var endRow = selectedRange.endRow !== null ? selectedRange.endRow : bottom;
|
|
1710
1710
|
if (endRow >= top && bottom >= startRow && endColumn >= left && right >= startColumn) {
|
|
1711
1711
|
// Need to offset the x/y coordinates so that the line draws nice and crisp
|
|
1712
|
-
var _x4 = startColumn >= left &&
|
|
1713
|
-
var _y8 = startRow >= top &&
|
|
1714
|
-
var endX = endColumn <= right &&
|
|
1715
|
-
var endY = endRow <= bottom &&
|
|
1712
|
+
var _x4 = startColumn >= left && allColumnXs.has(startColumn) ? Math.round(getOrThrow(allColumnXs, startColumn)) + 0.5 : minX;
|
|
1713
|
+
var _y8 = startRow >= top && allRowYs.has(startRow) ? Math.max(Math.round(getOrThrow(allRowYs, startRow)) + 0.5, 0.5) : minY;
|
|
1714
|
+
var endX = endColumn <= right && allColumnXs.has(endColumn) ? Math.round(getOrThrow(allColumnXs, endColumn) + getOrThrow(allColumnWidths, endColumn)) - 0.5 : maxX;
|
|
1715
|
+
var endY = endRow <= bottom && allRowYs.has(endRow) ? Math.round(getOrThrow(allRowYs, endRow) + getOrThrow(allRowHeights, endRow)) - 0.5 : maxY;
|
|
1716
1716
|
context.rect(_x4, _y8, endX - _x4, endY - _y8);
|
|
1717
1717
|
}
|
|
1718
1718
|
|
|
@@ -1751,15 +1751,15 @@ export class GridRenderer {
|
|
|
1751
1751
|
theme
|
|
1752
1752
|
} = state;
|
|
1753
1753
|
var {
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1754
|
+
allColumnWidths,
|
|
1755
|
+
allColumnXs,
|
|
1756
|
+
allRowHeights,
|
|
1757
|
+
allRowYs
|
|
1758
1758
|
} = metrics;
|
|
1759
|
-
var cellX = getOrThrow(
|
|
1760
|
-
var cellY = getOrThrow(
|
|
1761
|
-
var cellW = getOrThrow(
|
|
1762
|
-
var cellH = getOrThrow(
|
|
1759
|
+
var cellX = getOrThrow(allColumnXs, column);
|
|
1760
|
+
var cellY = getOrThrow(allRowYs, row);
|
|
1761
|
+
var cellW = getOrThrow(allColumnWidths, column);
|
|
1762
|
+
var cellH = getOrThrow(allRowHeights, row);
|
|
1763
1763
|
|
|
1764
1764
|
// Now get the outline for the active cell
|
|
1765
1765
|
var x = cellX - borderWidth * 0.5;
|
|
@@ -1830,8 +1830,8 @@ export class GridRenderer {
|
|
|
1830
1830
|
var {
|
|
1831
1831
|
gridX,
|
|
1832
1832
|
gridY,
|
|
1833
|
-
|
|
1834
|
-
|
|
1833
|
+
allColumnXs,
|
|
1834
|
+
allColumnWidths,
|
|
1835
1835
|
height,
|
|
1836
1836
|
width,
|
|
1837
1837
|
columnHeaderMaxDepth,
|
|
@@ -1846,8 +1846,8 @@ export class GridRenderer {
|
|
|
1846
1846
|
return;
|
|
1847
1847
|
}
|
|
1848
1848
|
var [startIndex, endIndex] = draggingColumnVisibleRange;
|
|
1849
|
-
var originalLeft = getOrThrow(
|
|
1850
|
-
var originalRight = getOrThrow(
|
|
1849
|
+
var originalLeft = getOrThrow(allColumnXs, startIndex);
|
|
1850
|
+
var originalRight = getOrThrow(allColumnXs, endIndex) + getOrThrow(allColumnWidths, endIndex);
|
|
1851
1851
|
var originalWidth = originalRight - originalLeft;
|
|
1852
1852
|
var draggingLeft = draggingColumn.left;
|
|
1853
1853
|
var {
|
|
@@ -1926,12 +1926,12 @@ export class GridRenderer {
|
|
|
1926
1926
|
var {
|
|
1927
1927
|
gridX,
|
|
1928
1928
|
gridY,
|
|
1929
|
-
|
|
1930
|
-
|
|
1929
|
+
allRowYs,
|
|
1930
|
+
allRowHeights,
|
|
1931
1931
|
width
|
|
1932
1932
|
} = metrics;
|
|
1933
|
-
var y = getOrThrow(
|
|
1934
|
-
var rowHeight = getOrThrow(
|
|
1933
|
+
var y = getOrThrow(allRowYs, draggingRow);
|
|
1934
|
+
var rowHeight = getOrThrow(allRowHeights, draggingRow) + 1;
|
|
1935
1935
|
var {
|
|
1936
1936
|
backgroundColor,
|
|
1937
1937
|
font,
|