@visactor/vtable 0.24.2-alpha.3 → 0.25.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.
Files changed (139) hide show
  1. package/cjs/ListTable.js +5 -3
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +14 -12
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +22 -18
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.d.ts +1 -0
  8. package/cjs/core/BaseTable.js +62 -16
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/core/TABLE_EVENT_TYPE.d.ts +3 -1
  11. package/cjs/core/TABLE_EVENT_TYPE.js +3 -0
  12. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  13. package/cjs/edit/edit-manager.js +0 -1
  14. package/cjs/edit/edit-manager.js.map +1 -1
  15. package/cjs/event/event.d.ts +2 -0
  16. package/cjs/event/event.js +12 -2
  17. package/cjs/event/event.js.map +1 -1
  18. package/cjs/event/listener/container-dom.js +5 -2
  19. package/cjs/event/listener/container-dom.js.map +1 -1
  20. package/cjs/event/listener/scroll-bar.js +8 -0
  21. package/cjs/event/listener/scroll-bar.js.map +1 -1
  22. package/cjs/event/listener/table-group.js +23 -8
  23. package/cjs/event/listener/table-group.js.map +1 -1
  24. package/cjs/index.d.ts +1 -1
  25. package/cjs/index.js +1 -1
  26. package/cjs/index.js.map +1 -1
  27. package/cjs/layout/tree-helper.js +1 -1
  28. package/cjs/layout/tree-helper.js.map +1 -1
  29. package/cjs/scenegraph/component/table-component.d.ts +8 -0
  30. package/cjs/scenegraph/component/table-component.js +180 -2
  31. package/cjs/scenegraph/component/table-component.js.map +1 -1
  32. package/cjs/scenegraph/component/util.d.ts +1 -0
  33. package/cjs/scenegraph/component/util.js +8 -2
  34. package/cjs/scenegraph/component/util.js.map +1 -1
  35. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  36. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  37. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -5
  38. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  39. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  40. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  41. package/cjs/scenegraph/layout/frozen.js +4 -2
  42. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  43. package/cjs/scenegraph/scenegraph.d.ts +7 -0
  44. package/cjs/scenegraph/scenegraph.js +42 -19
  45. package/cjs/scenegraph/scenegraph.js.map +1 -1
  46. package/cjs/scenegraph/select/update-select-border.js +4 -4
  47. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  48. package/cjs/state/cell-move/index.js +2 -1
  49. package/cjs/state/cell-move/index.js.map +1 -1
  50. package/cjs/state/resize/update-resize-column.js +4 -3
  51. package/cjs/state/resize/update-resize-column.js.map +1 -1
  52. package/cjs/state/resize/update-resize-row.d.ts +2 -0
  53. package/cjs/state/resize/update-resize-row.js +63 -0
  54. package/cjs/state/resize/update-resize-row.js.map +1 -0
  55. package/cjs/state/state.d.ts +11 -1
  56. package/cjs/state/state.js +30 -5
  57. package/cjs/state/state.js.map +1 -1
  58. package/cjs/themes/component.js +1 -1
  59. package/cjs/tools/global.d.ts +1 -0
  60. package/cjs/tools/global.js +2 -2
  61. package/cjs/tools/global.js.map +1 -1
  62. package/cjs/ts-types/base-table.d.ts +7 -0
  63. package/cjs/ts-types/base-table.js.map +1 -1
  64. package/cjs/ts-types/events.d.ts +11 -0
  65. package/cjs/ts-types/events.js.map +1 -1
  66. package/cjs/ts-types/table-engine.d.ts +2 -0
  67. package/cjs/ts-types/table-engine.js.map +1 -1
  68. package/cjs/vrender.js.map +1 -1
  69. package/dist/vtable.js +700 -68
  70. package/dist/vtable.min.js +2 -2
  71. package/es/ListTable.js +5 -3
  72. package/es/ListTable.js.map +1 -1
  73. package/es/PivotChart.js +14 -12
  74. package/es/PivotChart.js.map +1 -1
  75. package/es/PivotTable.js +22 -18
  76. package/es/PivotTable.js.map +1 -1
  77. package/es/core/BaseTable.d.ts +1 -0
  78. package/es/core/BaseTable.js +62 -17
  79. package/es/core/BaseTable.js.map +1 -1
  80. package/es/core/TABLE_EVENT_TYPE.d.ts +3 -1
  81. package/es/core/TABLE_EVENT_TYPE.js +3 -0
  82. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  83. package/es/edit/edit-manager.js +0 -1
  84. package/es/edit/edit-manager.js.map +1 -1
  85. package/es/event/event.d.ts +2 -0
  86. package/es/event/event.js +12 -2
  87. package/es/event/event.js.map +1 -1
  88. package/es/event/listener/container-dom.js +5 -2
  89. package/es/event/listener/container-dom.js.map +1 -1
  90. package/es/event/listener/scroll-bar.js +8 -0
  91. package/es/event/listener/scroll-bar.js.map +1 -1
  92. package/es/event/listener/table-group.js +23 -8
  93. package/es/event/listener/table-group.js.map +1 -1
  94. package/es/index.d.ts +1 -1
  95. package/es/index.js +1 -1
  96. package/es/index.js.map +1 -1
  97. package/es/layout/tree-helper.js +1 -1
  98. package/es/layout/tree-helper.js.map +1 -1
  99. package/es/scenegraph/component/table-component.d.ts +8 -0
  100. package/es/scenegraph/component/table-component.js +181 -3
  101. package/es/scenegraph/component/table-component.js.map +1 -1
  102. package/es/scenegraph/component/util.d.ts +1 -0
  103. package/es/scenegraph/component/util.js +7 -1
  104. package/es/scenegraph/component/util.js.map +1 -1
  105. package/es/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  106. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  107. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -4
  108. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  109. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  110. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  111. package/es/scenegraph/layout/frozen.js +4 -2
  112. package/es/scenegraph/layout/frozen.js.map +1 -1
  113. package/es/scenegraph/scenegraph.d.ts +7 -0
  114. package/es/scenegraph/scenegraph.js +44 -19
  115. package/es/scenegraph/scenegraph.js.map +1 -1
  116. package/es/scenegraph/select/update-select-border.js +4 -4
  117. package/es/scenegraph/select/update-select-border.js.map +1 -1
  118. package/es/state/cell-move/index.js +2 -1
  119. package/es/state/cell-move/index.js.map +1 -1
  120. package/es/state/resize/update-resize-column.js +4 -3
  121. package/es/state/resize/update-resize-column.js.map +1 -1
  122. package/es/state/resize/update-resize-row.d.ts +2 -0
  123. package/es/state/resize/update-resize-row.js +57 -0
  124. package/es/state/resize/update-resize-row.js.map +1 -0
  125. package/es/state/state.d.ts +11 -1
  126. package/es/state/state.js +31 -4
  127. package/es/state/state.js.map +1 -1
  128. package/es/themes/component.js +1 -1
  129. package/es/tools/global.d.ts +1 -0
  130. package/es/tools/global.js +2 -0
  131. package/es/tools/global.js.map +1 -1
  132. package/es/ts-types/base-table.d.ts +7 -0
  133. package/es/ts-types/base-table.js.map +1 -1
  134. package/es/ts-types/events.d.ts +11 -0
  135. package/es/ts-types/events.js.map +1 -1
  136. package/es/ts-types/table-engine.d.ts +2 -0
  137. package/es/ts-types/table-engine.js.map +1 -1
  138. package/es/vrender.js.map +1 -1
  139. package/package.json +5 -5
@@ -45,10 +45,10 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
48
- if (super(), this.showFrozenIcon = !0, this.version = "0.24.2-alpha.3", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "0.25.0", this.id = `VTable${Date.now()}`,
49
49
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
50
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
51
- const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, widthAdaptiveMode: widthAdaptiveMode = "only-body", heightAdaptiveMode: heightAdaptiveMode = "only-body", keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
51
+ const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, widthAdaptiveMode: widthAdaptiveMode = "only-body", heightAdaptiveMode: heightAdaptiveMode = "only-body", keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, rowResizeMode: rowResizeMode = "none", dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth, limitMinHeight: limitMinHeight} = options;
52
52
  this.container = container, this.options = options, this._widthMode = widthMode,
53
53
  this._heightMode = heightMode, this._widthAdaptiveMode = widthAdaptiveMode, this._heightAdaptiveMode = heightAdaptiveMode,
54
54
  this._autoFillWidth = autoFillWidth, this._autoFillHeight = autoFillHeight, this.customRender = customRender,
@@ -75,13 +75,14 @@ class BaseTable extends EventTarget_1.EventTarget {
75
75
  internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
76
76
  internalProps.keyboardOptions = keyboardOptions, internalProps.eventOptions = eventOptions,
77
77
  internalProps.rowSeriesNumber = rowSeriesNumber, internalProps.columnResizeMode = columnResizeMode,
78
- internalProps.dragHeaderMode = dragHeaderMode, internalProps.renderChartAsync = renderChartAsync,
79
- (0, chart_render_helper_1.setBatchRenderChartCount)(renderChartAsyncBatchCount),
78
+ internalProps.rowResizeMode = rowResizeMode, internalProps.dragHeaderMode = dragHeaderMode,
79
+ internalProps.renderChartAsync = renderChartAsync, (0, chart_render_helper_1.setBatchRenderChartCount)(renderChartAsyncBatchCount),
80
80
  internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
81
81
  internalProps._rowHeightsMap = new row_height_map_1.NumberRangeMap(this), internalProps._rowRangeHeightsMap = new Map,
82
82
  internalProps._colRangeWidthsMap = new Map, internalProps._widthResizedColMap = new Set,
83
- this.colWidthsMap = new NumberMap_1.NumberMap, this.colContentWidthsMap = new NumberMap_1.NumberMap,
84
- this.colWidthsLimit = {}, internalProps.calcWidthContext = {
83
+ internalProps._heightResizedRowMap = new Set, this.colWidthsMap = new NumberMap_1.NumberMap,
84
+ this.colContentWidthsMap = new NumberMap_1.NumberMap, this.colWidthsLimit = {},
85
+ internalProps.calcWidthContext = {
85
86
  _: internalProps,
86
87
  get full() {
87
88
  var _a;
@@ -97,6 +98,7 @@ class BaseTable extends EventTarget_1.EventTarget {
97
98
  internalProps.allowFrozenColCount = null !== (_d = options.allowFrozenColCount) && void 0 !== _d ? _d : 0,
98
99
  internalProps.limitMaxAutoWidth = null !== (_e = options.limitMaxAutoWidth) && void 0 !== _e ? _e : 450,
99
100
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
101
+ internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
100
102
  this._vDataSet = new vdataset_1.DataSet, this.scenegraph = new scenegraph_1.Scenegraph(this),
101
103
  this.stateManager = new state_1.StateManager(this), this.eventManager = new event_1.EventManager(this),
102
104
  options.legends && (internalProps.legends = (0, create_legend_1.createLegend)(options.legends, this),
@@ -380,7 +382,7 @@ class BaseTable extends EventTarget_1.EventTarget {
380
382
  if (startRow > endRow || 0 === this.rowCount) return 0;
381
383
  startRow = Math.max(startRow, 0), endRow = Math.min(endRow, (null !== (_a = this.rowCount) && void 0 !== _a ? _a : 1 / 0) - 1);
382
384
  let h = 0;
383
- if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn()) h = this.rowHeightsMap.getSumInRange(startRow, endRow); else {
385
+ if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || 0 !== this.internalProps._heightResizedRowMap.size) h = this.rowHeightsMap.getSumInRange(startRow, endRow); else {
384
386
  for (let i = startRow; i < Math.min(endRow + 1, this.columnHeaderLevelCount); i++) h += this.getRowHeight(i);
385
387
  endRow >= this.columnHeaderLevelCount && (h += this.defaultRowHeight * (Math.min(endRow, this.rowCount - this.bottomFrozenRowCount - 1) - Math.max(this.columnHeaderLevelCount, startRow) + 1));
386
388
  for (let i = this.rowCount - this.bottomFrozenRowCount; i < endRow + 1; i++) h += this.getRowHeight(i);
@@ -720,7 +722,7 @@ class BaseTable extends EventTarget_1.EventTarget {
720
722
  updateOption(options) {
721
723
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
722
724
  this.options = options;
723
- const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, autoFillHeight: autoFillHeight, widthAdaptiveMode: widthAdaptiveMode, heightAdaptiveMode: heightAdaptiveMode, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
725
+ const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, rowResizeMode: rowResizeMode = "none", dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, autoFillHeight: autoFillHeight, widthAdaptiveMode: widthAdaptiveMode, heightAdaptiveMode: heightAdaptiveMode, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth, limitMinHeight: limitMinHeight} = options;
724
726
  pixelRatio && pixelRatio !== this.internalProps.pixelRatio && (this.internalProps.pixelRatio = pixelRatio),
725
727
  padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
726
728
  this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
@@ -740,19 +742,20 @@ class BaseTable extends EventTarget_1.EventTarget {
740
742
  internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
741
743
  internalProps.keyboardOptions = keyboardOptions, internalProps.eventOptions = eventOptions,
742
744
  internalProps.rowSeriesNumber = rowSeriesNumber, internalProps.columnResizeMode = columnResizeMode,
743
- internalProps.dragHeaderMode = dragHeaderMode, internalProps.renderChartAsync = renderChartAsync,
744
- (0, chart_render_helper_1.setBatchRenderChartCount)(renderChartAsyncBatchCount),
745
+ internalProps.rowResizeMode = rowResizeMode, internalProps.dragHeaderMode = dragHeaderMode,
746
+ internalProps.renderChartAsync = renderChartAsync, (0, chart_render_helper_1.setBatchRenderChartCount)(renderChartAsyncBatchCount),
745
747
  internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
746
748
  internalProps.cellTextOverflows = {}, internalProps._rowHeightsMap = new row_height_map_1.NumberRangeMap(this),
747
749
  internalProps._rowRangeHeightsMap = new Map, internalProps._colRangeWidthsMap = new Map,
748
- internalProps._widthResizedColMap = new Set, this.colWidthsMap = new NumberMap_1.NumberMap,
749
- this.colContentWidthsMap = new NumberMap_1.NumberMap, this.colWidthsLimit = {},
750
- internalProps.stick.changedCells.clear(), internalProps.theme = themes_1.default.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes_1.default.DEFAULT),
750
+ internalProps._widthResizedColMap = new Set, internalProps._heightResizedRowMap = new Set,
751
+ this.colWidthsMap = new NumberMap_1.NumberMap, this.colContentWidthsMap = new NumberMap_1.NumberMap,
752
+ this.colWidthsLimit = {}, internalProps.stick.changedCells.clear(), internalProps.theme = themes_1.default.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes_1.default.DEFAULT),
751
753
  internalProps.theme.isPivot = this.isPivotTable(), this.scenegraph.updateStageBackground(),
752
754
  internalProps.autoWrapText = options.autoWrapText, internalProps.enableLineBreak = options.enableLineBreak,
753
755
  internalProps.allowFrozenColCount = null !== (_c = options.allowFrozenColCount) && void 0 !== _c ? _c : 0,
754
756
  internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
755
757
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
758
+ internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
756
759
  this._vDataSet = new vdataset_1.DataSet, null === (_e = internalProps.legends) || void 0 === _e || _e.release(),
757
760
  null === (_f = internalProps.title) || void 0 === _f || _f.release(), internalProps.layoutMap.release(),
758
761
  this.scenegraph.clearCells(), this.scenegraph.updateComponent(), this.stateManager.updateOptionSetState(),
@@ -1311,6 +1314,15 @@ class BaseTable extends EventTarget_1.EventTarget {
1311
1314
  const limit = this.colWidthsLimit[col];
1312
1315
  return !(limit && limit.min && limit.max) || limit.max !== limit.min;
1313
1316
  }
1317
+ _canResizeRow(col, row) {
1318
+ if (!(col >= 0 && row >= 0)) return !1;
1319
+ if (this.isCellRangeEqual(col, row, col, row + 1)) return !1;
1320
+ if ("none" === this.internalProps.rowResizeMode) return !1;
1321
+ if ("header" === this.internalProps.rowResizeMode) {
1322
+ if (!this.isHeader(col, row)) return !1;
1323
+ } else if ("body" === this.internalProps.rowResizeMode && this.isHeader(col, row)) return !1;
1324
+ return !0;
1325
+ }
1314
1326
  _canDragHeaderPosition(col, row) {
1315
1327
  if (this.isHeader(col, row) && this.stateManager.isSelected(col, row)) {
1316
1328
  if ("disabled" === this.internalProps.frozenColDragHeaderMode && this.isFrozenColumn(col)) return !1;
@@ -1563,7 +1575,31 @@ class BaseTable extends EventTarget_1.EventTarget {
1563
1575
  }
1564
1576
  cellIsInVisualView(col, row) {
1565
1577
  const drawRange = this.getDrawRange(), rect = this.getCellRelativeRect(col, row);
1566
- return col < this.frozenColCount && row < this.frozenRowCount || rect.top >= drawRange.top && rect.bottom <= drawRange.bottom && rect.left >= drawRange.left && rect.right <= drawRange.right;
1578
+ if (col < this.frozenColCount && row < this.frozenRowCount) return !0;
1579
+ const colHeaderRangeRect = this.getCellRangeRelativeRect({
1580
+ start: {
1581
+ col: 0,
1582
+ row: 0
1583
+ },
1584
+ end: {
1585
+ col: this.colCount - 1,
1586
+ row: this.columnHeaderLevelCount
1587
+ }
1588
+ }), rowHeaderRangeRect = this.getCellRangeRelativeRect({
1589
+ start: {
1590
+ col: 0,
1591
+ row: 0
1592
+ },
1593
+ end: {
1594
+ col: this.rowHeaderLevelCount,
1595
+ row: this.rowCount - 1
1596
+ }
1597
+ });
1598
+ if (rect.top >= drawRange.top && rect.bottom <= drawRange.bottom && rect.left >= drawRange.left && rect.right <= drawRange.right) {
1599
+ if (this.isHeader(col, row)) return !0;
1600
+ if (drawRange.top >= colHeaderRangeRect.bottom && drawRange.left >= rowHeaderRangeRect.right) return !0;
1601
+ }
1602
+ return !1;
1567
1603
  }
1568
1604
  getCustomMergeValue(col, row) {
1569
1605
  if (this.internalProps.customMergeCell) {
@@ -1588,7 +1624,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1588
1624
  (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && (0,
1589
1625
  update_select_border_1.hideCellSelectBorder)(this.scenegraph);
1590
1626
  const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1591
- this.stateManager.updateHoverPos(-1, -1), this.scenegraph.renderSceneGraph();
1627
+ this.stateManager.updateHoverPos(-1, -1), this.scenegraph.component.hideVerticalScrollBar(),
1628
+ this.scenegraph.component.hideHorizontalScrollBar(), this.scenegraph.renderSceneGraph();
1592
1629
  const c = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
1593
1630
  return isInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1594
1631
  (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && (0,
@@ -1596,6 +1633,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1596
1633
  c.toDataURL();
1597
1634
  }
1598
1635
  exportCellRangeImg(cellRange) {
1636
+ var _a, _b, _c, _d;
1599
1637
  const {scrollTop: scrollTop, scrollLeft: scrollLeft} = this, minCol = Math.min(cellRange.start.col, cellRange.end.col), minRow = Math.min(cellRange.start.row, cellRange.end.row), maxCol = Math.max(cellRange.start.col, cellRange.end.col), maxRow = Math.max(cellRange.start.row, cellRange.end.row), isInView = this.cellIsInVisualView(minCol, minRow), isMaxCellInView = this.cellIsInVisualView(maxCol, maxRow);
1600
1638
  isInView && isMaxCellInView || this.scrollToCell({
1601
1639
  col: minCol,
@@ -1610,8 +1648,16 @@ class BaseTable extends EventTarget_1.EventTarget {
1610
1648
  col: maxCol,
1611
1649
  row: maxRow
1612
1650
  }
1613
- }), base64Image = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1651
+ });
1652
+ (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && (0,
1653
+ update_select_border_1.hideCellSelectBorder)(this.scenegraph);
1654
+ const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1655
+ this.stateManager.updateHoverPos(-1, -1), this.scenegraph.component.hideVerticalScrollBar(),
1656
+ this.scenegraph.component.hideHorizontalScrollBar(), this.scenegraph.renderSceneGraph();
1657
+ const base64Image = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1614
1658
  return isInView && isMaxCellInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1659
+ (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && (0,
1660
+ update_select_border_1.restoreCellSelectBorder)(this.scenegraph), this.stateManager.updateHoverPos(hoverCol, hoverRow),
1615
1661
  base64Image;
1616
1662
  }
1617
1663
  exportCanvas() {