canvas-datagrid 0.4.3 → 0.4.4
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/CHANGELOG.md +12 -0
- package/dist/canvas-datagrid.debug.js +355 -144
- package/dist/canvas-datagrid.debug.map +1 -1
- package/dist/canvas-datagrid.js +1 -1
- package/dist/canvas-datagrid.module.js +1 -1
- package/dist/canvas-datagrid.module.js.map +1 -1
- package/dist/types.d.ts +12 -8
- package/lib/contextMenu.js +2 -2
- package/lib/defaults.js +9 -7
- package/lib/docs.js +16 -0
- package/lib/dom.js +29 -2
- package/lib/draw.js +157 -60
- package/lib/events/index.js +130 -65
- package/lib/intf.js +8 -14
- package/lib/publicMethods.js +118 -42
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -463,16 +463,16 @@ declare class canvasDatagrid {
|
|
|
463
463
|
* @param dontDraw - Suppress the draw method after the selection change.
|
|
464
464
|
*/
|
|
465
465
|
static selectAll(dontDraw: boolean): void;
|
|
466
|
-
/**
|
|
467
|
-
* Returns true if indices of columns next to the selected columnIndex is selected on every row.
|
|
468
|
-
* @param columnIndex - The column index to check.
|
|
469
|
-
*/
|
|
470
|
-
static isMultiColumnsSelected(columnIndex: number): void;
|
|
471
466
|
/**
|
|
472
467
|
* Returns true if the selected columnIndex is selected on every row.
|
|
473
468
|
* @param columnIndex - The column index to check.
|
|
474
469
|
*/
|
|
475
470
|
static isColumnSelected(columnIndex: number): void;
|
|
471
|
+
/**
|
|
472
|
+
* Returns true if the selected rowIndex is selected on every column.
|
|
473
|
+
* @param rowIndex - The row index to check.
|
|
474
|
+
*/
|
|
475
|
+
static isRowSelected(rowIndex: number): void;
|
|
476
476
|
/**
|
|
477
477
|
* Runs the defined method on each selected cell.
|
|
478
478
|
* @param fn - The function to execute. The signature of the function is: (data, rowIndex, columnName).
|
|
@@ -519,15 +519,19 @@ declare class canvasDatagrid {
|
|
|
519
519
|
/**
|
|
520
520
|
* Hide column/columns
|
|
521
521
|
*/
|
|
522
|
-
static hideColumns:
|
|
522
|
+
static hideColumns(beginColumnOrderIndex: number, endColumnOrderIndex?: number): void;
|
|
523
|
+
/**
|
|
524
|
+
* Unihde column/columns
|
|
525
|
+
*/
|
|
526
|
+
static unhideColumns(beginColumnOrderIndex: number, endColumnOrderIndex?: number): void;
|
|
523
527
|
/**
|
|
524
528
|
* Hide rows
|
|
525
529
|
*/
|
|
526
|
-
static hideRows:
|
|
530
|
+
static hideRows(beginRowIndex: number, endRowIndex: number): void;
|
|
527
531
|
/**
|
|
528
532
|
* Unhide rows
|
|
529
533
|
*/
|
|
530
|
-
static unhideRows:
|
|
534
|
+
static unhideRows(beginRowIndex: number, endRowIndex: number): void;
|
|
531
535
|
/**
|
|
532
536
|
* Resizes a column to fit the longest value in the column. Call without a value to resize all columns.
|
|
533
537
|
* Warning, can be slow on very large record sets (1m records ~3-5 seconds on an i7).
|
package/lib/contextMenu.js
CHANGED
|
@@ -1128,7 +1128,7 @@ export default function (self) {
|
|
|
1128
1128
|
function createDisposeEvent() {
|
|
1129
1129
|
requestAnimationFrame(function () {
|
|
1130
1130
|
document.addEventListener('click', self.disposeContextMenu);
|
|
1131
|
-
|
|
1131
|
+
window.removeEventListener('mouseup', createDisposeEvent);
|
|
1132
1132
|
});
|
|
1133
1133
|
}
|
|
1134
1134
|
var contextPosition,
|
|
@@ -1176,7 +1176,7 @@ export default function (self) {
|
|
|
1176
1176
|
}
|
|
1177
1177
|
self.contextMenu = createContextMenu(ev, contextPosition, items);
|
|
1178
1178
|
if (e.type == 'mousedown') {
|
|
1179
|
-
|
|
1179
|
+
window.addEventListener('mouseup', createDisposeEvent);
|
|
1180
1180
|
} else {
|
|
1181
1181
|
createDisposeEvent();
|
|
1182
1182
|
}
|
package/lib/defaults.js
CHANGED
|
@@ -295,14 +295,16 @@ export default function (self) {
|
|
|
295
295
|
['filterButtonHoverBackgroundColor', 'rgba(235, 235, 235, 1)'],
|
|
296
296
|
['filterButtonMenuOffsetTop', 10],
|
|
297
297
|
['filterButtonWidth', 20],
|
|
298
|
-
['frozenMarkerHoverColor', 'rgba(
|
|
299
|
-
['frozenMarkerHoverBorderColor', 'rgba(
|
|
300
|
-
['frozenMarkerActiveColor', 'rgba(
|
|
301
|
-
['frozenMarkerActiveBorderColor', 'rgba(
|
|
302
|
-
['
|
|
303
|
-
['
|
|
298
|
+
['frozenMarkerHoverColor', 'rgba(165, 198, 254, 1)'],
|
|
299
|
+
['frozenMarkerHoverBorderColor', 'rgba(165, 198, 254, 1)'],
|
|
300
|
+
['frozenMarkerActiveColor', 'rgba(165, 198, 254, 0.2)'],
|
|
301
|
+
['frozenMarkerActiveBorderColor', 'rgba(165, 198, 254, 0.5)'],
|
|
302
|
+
['frozenMarkerActiveHeaderColor', 'rgba(165, 198, 254, 1)'],
|
|
303
|
+
['frozenMarkerColor', 'rgba(221, 221, 221, 1)'],
|
|
304
|
+
['frozenMarkerBorderColor', 'rgba(221, 221, 221, 1)'],
|
|
304
305
|
['frozenMarkerBorderWidth', 1],
|
|
305
|
-
['
|
|
306
|
+
['frozenMarkerHeaderColor', 'rgba(188, 188, 188, 1)'],
|
|
307
|
+
['frozenMarkerWidth', 4],
|
|
306
308
|
['groupingAreaBackgroundColor', 'rgba(240, 240, 240, 1)'],
|
|
307
309
|
['gridBackgroundColor', 'rgba(240, 240, 240, 1)'],
|
|
308
310
|
['gridBorderCollapse', 'collapse'],
|
package/lib/docs.js
CHANGED
|
@@ -973,6 +973,22 @@
|
|
|
973
973
|
* @param {object} e.ctx Canvas context.
|
|
974
974
|
* @param {canvasDatagrid.cell} e.cell The cell being moved out of.
|
|
975
975
|
*/
|
|
976
|
+
/**
|
|
977
|
+
* Fires column(s) are being hidden
|
|
978
|
+
* @event
|
|
979
|
+
* @name canvasDatagrid#columnhide
|
|
980
|
+
* @param {object} e Event object.
|
|
981
|
+
* @param {object} e.ctx Canvas context.
|
|
982
|
+
* @param {columnIndex} e.columnIndex Index of column being hidden.
|
|
983
|
+
*/
|
|
984
|
+
/**
|
|
985
|
+
* Fires column(s) are being unhidden
|
|
986
|
+
* @event
|
|
987
|
+
* @name canvasDatagrid#columnunhide
|
|
988
|
+
* @param {object} e Event object.
|
|
989
|
+
* @param {object} e.ctx Canvas context.
|
|
990
|
+
* @param {columnIndex} e.columnIndex Index of column being unhidden.
|
|
991
|
+
*/
|
|
976
992
|
/**
|
|
977
993
|
* Fires when the mouse enters a row.
|
|
978
994
|
* @event
|
package/lib/dom.js
CHANGED
|
@@ -370,6 +370,19 @@ export default function (self) {
|
|
|
370
370
|
var shouldClearCellValue = cellValueIsEmpty || inEnterMode;
|
|
371
371
|
|
|
372
372
|
self.input.value = shouldClearCellValue ? '' : cell.value;
|
|
373
|
+
let width = Math.round(
|
|
374
|
+
self.input.value.length *
|
|
375
|
+
parseInt(self.style.editCellFontSize, 10) *
|
|
376
|
+
0.7 *
|
|
377
|
+
self.scale,
|
|
378
|
+
);
|
|
379
|
+
if (width + self.style.cellPaddingLeft < cell.width) {
|
|
380
|
+
width = cell.width - self.style.cellPaddingLeft;
|
|
381
|
+
} else if (width > self.width - cell.x - self.style.scrollBarWidth) {
|
|
382
|
+
width = self.width - cell.x - self.style.scrollBarWidth;
|
|
383
|
+
self.input.style.height = 'auto';
|
|
384
|
+
}
|
|
385
|
+
self.input.style.width = width + 'px';
|
|
373
386
|
self.input.focus();
|
|
374
387
|
self.input.addEventListener('click', self.stopPropagation);
|
|
375
388
|
self.input.addEventListener('dblclick', self.stopPropagation);
|
|
@@ -450,6 +463,20 @@ export default function (self) {
|
|
|
450
463
|
}
|
|
451
464
|
self.scrollIntoView(nx, ny);
|
|
452
465
|
self.beginEditAt(nx, ny, e);
|
|
466
|
+
} else {
|
|
467
|
+
let width = Math.round(
|
|
468
|
+
self.input.value.length *
|
|
469
|
+
parseInt(self.style.editCellFontSize, 10) *
|
|
470
|
+
0.7 *
|
|
471
|
+
self.scale,
|
|
472
|
+
);
|
|
473
|
+
if (width + self.style.cellPaddingLeft < cell.width) {
|
|
474
|
+
width = cell.width - self.style.cellPaddingLeft;
|
|
475
|
+
} else if (width > self.width - cell.x - self.style.scrollBarWidth) {
|
|
476
|
+
width = self.width - cell.x - self.style.scrollBarWidth;
|
|
477
|
+
self.input.style.height = 'auto';
|
|
478
|
+
}
|
|
479
|
+
self.input.style.width = width + 'px';
|
|
453
480
|
}
|
|
454
481
|
});
|
|
455
482
|
|
|
@@ -773,11 +800,11 @@ export default function (self) {
|
|
|
773
800
|
});
|
|
774
801
|
self.eventParent.addEventListener('scroll', self.resize, false);
|
|
775
802
|
self.eventParent.addEventListener('touchstart', self.touchstart, false);
|
|
776
|
-
self.eventParent.addEventListener('mouseup', self.mouseup, false);
|
|
777
803
|
self.eventParent.addEventListener('mousedown', self.mousedown, false);
|
|
778
804
|
self.eventParent.addEventListener('dblclick', self.dblclick, false);
|
|
779
805
|
self.eventParent.addEventListener('click', self.click, false);
|
|
780
|
-
|
|
806
|
+
window.addEventListener('mouseup', self.mouseup, false);
|
|
807
|
+
window.addEventListener('mousemove', self.mousemove);
|
|
781
808
|
self[self.isChildGrid ? 'parentGrid' : 'eventParent'].addEventListener(
|
|
782
809
|
'wheel',
|
|
783
810
|
self.scrollWheel,
|
package/lib/draw.js
CHANGED
|
@@ -1064,8 +1064,10 @@ export default function (self) {
|
|
|
1064
1064
|
isGrid = header.type === 'canvas-datagrid',
|
|
1065
1065
|
activeHeader =
|
|
1066
1066
|
(self.orders.rows[self.activeCell.rowIndex] === rowOrderIndex ||
|
|
1067
|
+
self.selectedRows.indexOf(rowOrderIndex) >= 0 ||
|
|
1067
1068
|
self.orders.columns[self.activeCell.columnIndex] ===
|
|
1068
|
-
headerIndex
|
|
1069
|
+
headerIndex ||
|
|
1070
|
+
self.selectedColumns.indexOf(headerIndex) >= 0) &&
|
|
1069
1071
|
(columnOrderIndex === -1 || rowOrderIndex === -1)
|
|
1070
1072
|
? isRowHeader
|
|
1071
1073
|
? 'activeRowHeaderCell'
|
|
@@ -1818,7 +1820,7 @@ export default function (self) {
|
|
|
1818
1820
|
}
|
|
1819
1821
|
}
|
|
1820
1822
|
//draw frozen columns
|
|
1821
|
-
x =
|
|
1823
|
+
x = 1;
|
|
1822
1824
|
if (self.attributes.showRowHeaders) {
|
|
1823
1825
|
x += rowHeaderCellWidth;
|
|
1824
1826
|
}
|
|
@@ -2311,10 +2313,8 @@ export default function (self) {
|
|
|
2311
2313
|
if (self.attributes.allowFreezingRows) {
|
|
2312
2314
|
// HACK great, another stupid magic number.
|
|
2313
2315
|
// Background will appear as a 0.5px artifact behind the row freeze bar without this hack
|
|
2314
|
-
y +=
|
|
2315
|
-
|
|
2316
|
-
self.style.frozenMarkerWidth -
|
|
2317
|
-
0.4999999999;
|
|
2316
|
+
if (y > columnHeaderCellHeight) y += self.style.frozenMarkerWidth;
|
|
2317
|
+
y += self.style.frozenMarkerBorderWidth - 0.4999999999;
|
|
2318
2318
|
}
|
|
2319
2319
|
self.lastFrozenRowPixel = y;
|
|
2320
2320
|
}
|
|
@@ -2441,6 +2441,7 @@ export default function (self) {
|
|
|
2441
2441
|
self.ctx.lineWidth = self.style.reorderMarkerIndexBorderWidth;
|
|
2442
2442
|
self.ctx.strokeStyle = self.style.reorderMarkerIndexBorderColor;
|
|
2443
2443
|
if (
|
|
2444
|
+
self.selectedRows.indexOf(self.reorderTarget.sortRowIndex) === -1 &&
|
|
2444
2445
|
self.currentCell.rowIndex !== self.reorderObject.rowIndex &&
|
|
2445
2446
|
self.currentCell.rowIndex > -1 &&
|
|
2446
2447
|
self.currentCell.rowIndex < l
|
|
@@ -2454,10 +2455,12 @@ export default function (self) {
|
|
|
2454
2455
|
}
|
|
2455
2456
|
} else if (self.dragMode === 'column-reorder' && self.reorderObject) {
|
|
2456
2457
|
var selectedColumns = self.selections[0];
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
self.
|
|
2460
|
-
|
|
2458
|
+
if (selectedColumns) {
|
|
2459
|
+
for (var k = 1; k < selectedColumns.length; k++) {
|
|
2460
|
+
b.width += self.getColumnWidth(
|
|
2461
|
+
self.orders.columns[selectedColumns[k]],
|
|
2462
|
+
);
|
|
2463
|
+
}
|
|
2461
2464
|
}
|
|
2462
2465
|
b.height = h;
|
|
2463
2466
|
b.y = 0;
|
|
@@ -2470,8 +2473,11 @@ export default function (self) {
|
|
|
2470
2473
|
self.ctx.lineWidth = self.style.reorderMarkerIndexBorderWidth;
|
|
2471
2474
|
self.ctx.strokeStyle = self.style.reorderMarkerIndexBorderColor;
|
|
2472
2475
|
if (
|
|
2476
|
+
self.selectedColumns.indexOf(self.reorderTarget.sortColumnIndex) ===
|
|
2477
|
+
-1 &&
|
|
2473
2478
|
self.currentCell.sortColumnIndex !==
|
|
2474
2479
|
self.reorderObject.sortColumnIndex &&
|
|
2480
|
+
self.reorderTarget.columnIndex !== self.reorderObject.columnIndex &&
|
|
2475
2481
|
self.currentCell.sortColumnIndex > -1 &&
|
|
2476
2482
|
self.currentCell.sortColumnIndex < schema.length
|
|
2477
2483
|
) {
|
|
@@ -2592,81 +2598,172 @@ export default function (self) {
|
|
|
2592
2598
|
self.ctx.restore();
|
|
2593
2599
|
}
|
|
2594
2600
|
function drawFrozenMarkers() {
|
|
2595
|
-
if (self.dragStartObject !== undefined) return;
|
|
2596
2601
|
var my = self.lastFrozenRowPixel - self.style.frozenMarkerWidth,
|
|
2597
|
-
mx = self.lastFrozenColumnPixel - self.style.
|
|
2602
|
+
mx = self.lastFrozenColumnPixel - self.style.frozenMarkerWidth,
|
|
2598
2603
|
xHover =
|
|
2599
2604
|
self.currentCell && self.currentCell.style === 'frozen-row-marker',
|
|
2600
2605
|
yHover =
|
|
2601
2606
|
self.currentCell && self.currentCell.style === 'frozen-column-marker';
|
|
2607
|
+
let rowHeaderCellWidth = self.getRowHeaderCellWidth();
|
|
2602
2608
|
self.ctx.lineWidth = self.style.frozenMarkerBorderWidth;
|
|
2603
2609
|
if (self.attributes.allowFreezingColumns) {
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2610
|
+
if (
|
|
2611
|
+
!self.freezeMarkerPosition ||
|
|
2612
|
+
(self.freezeMarkerPosition && self.dragMode === 'frozen-row-marker')
|
|
2613
|
+
) {
|
|
2614
|
+
if (mx > self.style.rowHeaderCellWidth) {
|
|
2615
|
+
self.ctx.fillStyle = self.style.frozenMarkerColor;
|
|
2616
|
+
self.ctx.strokeStyle = self.style.frozenMarkerBorderColor;
|
|
2617
|
+
fillRect(mx, 0, self.style.frozenMarkerWidth, self.height);
|
|
2618
|
+
strokeRect(mx, 0, self.style.frozenMarkerWidth, self.height);
|
|
2619
|
+
}
|
|
2620
|
+
self.ctx.fillStyle = yHover
|
|
2621
|
+
? self.style.frozenMarkerHoverColor
|
|
2622
|
+
: self.style.frozenMarkerHeaderColor;
|
|
2623
|
+
self.ctx.strokeStyle = yHover
|
|
2624
|
+
? self.style.frozenMarkerHoverBorderColor
|
|
2625
|
+
: self.style.frozenMarkerHeaderColor;
|
|
2626
|
+
fillRect(
|
|
2627
|
+
mx,
|
|
2628
|
+
0,
|
|
2629
|
+
self.style.frozenMarkerWidth,
|
|
2630
|
+
self.style.columnHeaderCellHeight,
|
|
2631
|
+
);
|
|
2632
|
+
strokeRect(
|
|
2633
|
+
mx,
|
|
2634
|
+
0,
|
|
2635
|
+
self.style.frozenMarkerWidth,
|
|
2636
|
+
self.style.columnHeaderCellHeight,
|
|
2637
|
+
);
|
|
2638
|
+
}
|
|
2639
|
+
|
|
2640
|
+
if (
|
|
2641
|
+
!self.dragStartObject ||
|
|
2642
|
+
(self.dragStartObject &&
|
|
2643
|
+
self.dragStartObject.style !== 'rowHeaderCell')
|
|
2644
|
+
) {
|
|
2645
|
+
self.visibleCells.unshift({
|
|
2646
|
+
x: mx,
|
|
2647
|
+
y: 0,
|
|
2648
|
+
height: self.height,
|
|
2649
|
+
width: self.style.frozenMarkerWidth, // + self.style.frozenMarkerBorderWidth,
|
|
2650
|
+
style: 'frozen-column-marker',
|
|
2651
|
+
});
|
|
2652
|
+
}
|
|
2620
2653
|
}
|
|
2621
2654
|
if (self.attributes.allowFreezingRows) {
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2655
|
+
if (
|
|
2656
|
+
!self.freezeMarkerPosition ||
|
|
2657
|
+
(self.freezeMarkerPosition &&
|
|
2658
|
+
self.dragMode === 'frozen-column-marker')
|
|
2659
|
+
) {
|
|
2660
|
+
if (my > rowHeaderCellWidth) {
|
|
2661
|
+
self.ctx.fillStyle = self.style.frozenMarkerColor;
|
|
2662
|
+
self.ctx.strokeStyle = self.style.frozenMarkerBorderColor;
|
|
2663
|
+
fillRect(0, my, self.width, self.style.frozenMarkerWidth);
|
|
2664
|
+
strokeRect(0, my, self.width, self.style.frozenMarkerWidth);
|
|
2665
|
+
}
|
|
2666
|
+
self.ctx.fillStyle = xHover
|
|
2667
|
+
? self.style.frozenMarkerHoverColor
|
|
2668
|
+
: self.style.frozenMarkerHeaderColor;
|
|
2669
|
+
self.ctx.strokeStyle = xHover
|
|
2670
|
+
? self.style.frozenMarkerHoverBorderColor
|
|
2671
|
+
: self.style.frozenMarkerHeaderColor;
|
|
2672
|
+
fillRect(0, my, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2673
|
+
strokeRect(0, my, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2674
|
+
}
|
|
2675
|
+
var height =
|
|
2631
2676
|
self.style.frozenMarkerWidth + self.style.frozenMarkerBorderWidth;
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2677
|
+
if (
|
|
2678
|
+
!self.dragStartObject ||
|
|
2679
|
+
(self.dragStartObject &&
|
|
2680
|
+
self.dragStartObject.style !== 'columnHeaderCell')
|
|
2681
|
+
) {
|
|
2682
|
+
self.visibleCells.unshift({
|
|
2683
|
+
x: 0,
|
|
2684
|
+
y: my,
|
|
2685
|
+
height: height,
|
|
2686
|
+
width: self.width,
|
|
2687
|
+
style: 'frozen-row-marker',
|
|
2688
|
+
});
|
|
2689
|
+
}
|
|
2639
2690
|
rowGroupsFrozenInfo = { y: my, h: height };
|
|
2640
2691
|
}
|
|
2641
2692
|
if (self.freezeMarkerPosition) {
|
|
2642
2693
|
self.ctx.fillStyle = self.style.frozenMarkerActiveColor;
|
|
2643
2694
|
self.ctx.strokeStyle = self.style.frozenMarkerActiveBorderColor;
|
|
2644
2695
|
if (self.dragMode === 'frozen-column-marker') {
|
|
2696
|
+
let posX = self.freezeMarkerPosition.x;
|
|
2697
|
+
let nearCell = self.getCellAt(posX, 0);
|
|
2698
|
+
if (self.freezeMarkerPosition.isGrab) posX = mx;
|
|
2699
|
+
if (posX > rowHeaderCellWidth) {
|
|
2700
|
+
let x =
|
|
2701
|
+
nearCell.x -
|
|
2702
|
+
self.style.frozenMarkerWidth -
|
|
2703
|
+
self.style.frozenMarkerBorderWidth;
|
|
2704
|
+
if (posX > x + nearCell.width / 2) x = x + nearCell.width;
|
|
2705
|
+
self.ctx.fillStyle = self.style.frozenMarkerColor;
|
|
2706
|
+
self.ctx.strokeStyle = self.style.frozenMarkerBorderColor;
|
|
2707
|
+
fillRect(x, 0, self.style.frozenMarkerWidth, self.height);
|
|
2708
|
+
strokeRect(x, 0, self.style.frozenMarkerWidth, self.height);
|
|
2709
|
+
self.ctx.fillStyle = self.style.frozenMarkerHeaderColor;
|
|
2710
|
+
self.ctx.strokeStyle = self.style.frozenMarkerHeaderColor;
|
|
2711
|
+
fillRect(
|
|
2712
|
+
x,
|
|
2713
|
+
0,
|
|
2714
|
+
self.style.frozenMarkerWidth,
|
|
2715
|
+
self.style.columnHeaderCellHeight,
|
|
2716
|
+
);
|
|
2717
|
+
strokeRect(
|
|
2718
|
+
x,
|
|
2719
|
+
0,
|
|
2720
|
+
self.style.frozenMarkerWidth,
|
|
2721
|
+
self.style.columnHeaderCellHeight,
|
|
2722
|
+
);
|
|
2723
|
+
}
|
|
2724
|
+
self.ctx.fillStyle = self.style.frozenMarkerActiveHeaderColor;
|
|
2725
|
+
self.ctx.strokeStyle = self.style.frozenMarkerActiveBorderColor;
|
|
2645
2726
|
fillRect(
|
|
2646
|
-
|
|
2727
|
+
posX,
|
|
2647
2728
|
0,
|
|
2648
2729
|
self.style.frozenMarkerWidth,
|
|
2649
|
-
self.
|
|
2730
|
+
self.style.columnHeaderCellHeight,
|
|
2650
2731
|
);
|
|
2651
2732
|
strokeRect(
|
|
2652
|
-
|
|
2733
|
+
posX,
|
|
2653
2734
|
0,
|
|
2654
2735
|
self.style.frozenMarkerWidth,
|
|
2655
|
-
self.
|
|
2736
|
+
self.style.columnHeaderCellHeight,
|
|
2656
2737
|
);
|
|
2738
|
+
self.ctx.fillStyle = self.style.frozenMarkerActiveColor;
|
|
2739
|
+
fillRect(posX, 0, self.style.frozenMarkerWidth, self.height);
|
|
2740
|
+
strokeRect(posX, 0, self.style.frozenMarkerWidth, self.height);
|
|
2657
2741
|
} else {
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
self.
|
|
2668
|
-
self.style.
|
|
2669
|
-
|
|
2742
|
+
let posY = self.freezeMarkerPosition.y;
|
|
2743
|
+
let nearCell = self.getCellAt(0, posY);
|
|
2744
|
+
if (self.freezeMarkerPosition.isGrab) posY = my;
|
|
2745
|
+
if (posY > self.style.columnHeaderCellHeight) {
|
|
2746
|
+
let y =
|
|
2747
|
+
nearCell.y -
|
|
2748
|
+
self.style.frozenMarkerWidth -
|
|
2749
|
+
self.style.frozenMarkerBorderWidth;
|
|
2750
|
+
if (posY > y + nearCell.height / 2) y = y + nearCell.height;
|
|
2751
|
+
self.ctx.fillStyle = self.style.frozenMarkerColor;
|
|
2752
|
+
self.ctx.strokeStyle = self.style.frozenMarkerBorderColor;
|
|
2753
|
+
fillRect(0, y, self.width, self.style.frozenMarkerWidth);
|
|
2754
|
+
strokeRect(0, y, self.width, self.style.frozenMarkerWidth);
|
|
2755
|
+
self.ctx.fillStyle = self.style.frozenMarkerHeaderColor;
|
|
2756
|
+
self.ctx.strokeStyle = self.style.frozenMarkerHeaderColor;
|
|
2757
|
+
fillRect(0, y, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2758
|
+
strokeRect(0, y, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2759
|
+
}
|
|
2760
|
+
self.ctx.fillStyle = self.style.frozenMarkerActiveHeaderColor;
|
|
2761
|
+
self.ctx.strokeStyle = self.style.frozenMarkerActiveBorderColor;
|
|
2762
|
+
fillRect(0, posY, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2763
|
+
strokeRect(0, posY, rowHeaderCellWidth, self.style.frozenMarkerWidth);
|
|
2764
|
+
self.ctx.fillStyle = self.style.frozenMarkerActiveColor;
|
|
2765
|
+
fillRect(0, posY, self.width, self.style.frozenMarkerWidth);
|
|
2766
|
+
strokeRect(0, posY, self.width, self.style.frozenMarkerWidth);
|
|
2670
2767
|
}
|
|
2671
2768
|
}
|
|
2672
2769
|
}
|