@visactor/vtable 0.24.2-alpha.4 → 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 (161) 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 +89 -43
  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/dataset/dataset.d.ts +1 -0
  14. package/cjs/dataset/dataset.js +14 -0
  15. package/cjs/dataset/dataset.js.map +1 -1
  16. package/cjs/dataset/flatDataToObject.d.ts +8 -3
  17. package/cjs/dataset/flatDataToObject.js +39 -8
  18. package/cjs/dataset/flatDataToObject.js.map +1 -1
  19. package/cjs/edit/edit-manager.js +0 -2
  20. package/cjs/edit/edit-manager.js.map +1 -1
  21. package/cjs/event/event.d.ts +2 -0
  22. package/cjs/event/event.js +12 -2
  23. package/cjs/event/event.js.map +1 -1
  24. package/cjs/event/listener/container-dom.js +5 -2
  25. package/cjs/event/listener/container-dom.js.map +1 -1
  26. package/cjs/event/listener/scroll-bar.js +8 -0
  27. package/cjs/event/listener/scroll-bar.js.map +1 -1
  28. package/cjs/event/listener/table-group.js +23 -8
  29. package/cjs/event/listener/table-group.js.map +1 -1
  30. package/cjs/index.d.ts +1 -1
  31. package/cjs/index.js +1 -1
  32. package/cjs/index.js.map +1 -1
  33. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  34. package/cjs/layout/pivot-header-layout.js +16 -4
  35. package/cjs/layout/pivot-header-layout.js.map +1 -1
  36. package/cjs/scenegraph/component/table-component.d.ts +8 -0
  37. package/cjs/scenegraph/component/table-component.js +180 -2
  38. package/cjs/scenegraph/component/table-component.js.map +1 -1
  39. package/cjs/scenegraph/component/util.d.ts +1 -0
  40. package/cjs/scenegraph/component/util.js +8 -2
  41. package/cjs/scenegraph/component/util.js.map +1 -1
  42. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  43. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  44. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -5
  45. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  47. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  48. package/cjs/scenegraph/layout/frozen.js +4 -2
  49. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  50. package/cjs/scenegraph/scenegraph.d.ts +7 -0
  51. package/cjs/scenegraph/scenegraph.js +42 -19
  52. package/cjs/scenegraph/scenegraph.js.map +1 -1
  53. package/cjs/scenegraph/select/update-select-border.js +4 -4
  54. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  55. package/cjs/state/cell-move/index.js +2 -1
  56. package/cjs/state/cell-move/index.js.map +1 -1
  57. package/cjs/state/resize/update-resize-column.js +4 -3
  58. package/cjs/state/resize/update-resize-column.js.map +1 -1
  59. package/cjs/state/resize/update-resize-row.d.ts +2 -0
  60. package/cjs/state/resize/update-resize-row.js +63 -0
  61. package/cjs/state/resize/update-resize-row.js.map +1 -0
  62. package/cjs/state/state.d.ts +11 -1
  63. package/cjs/state/state.js +30 -5
  64. package/cjs/state/state.js.map +1 -1
  65. package/cjs/themes/component.js +1 -1
  66. package/cjs/tools/global.d.ts +1 -0
  67. package/cjs/tools/global.js +2 -2
  68. package/cjs/tools/global.js.map +1 -1
  69. package/cjs/ts-types/base-table.d.ts +7 -0
  70. package/cjs/ts-types/base-table.js.map +1 -1
  71. package/cjs/ts-types/events.d.ts +11 -0
  72. package/cjs/ts-types/events.js.map +1 -1
  73. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  74. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  75. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  76. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  77. package/cjs/ts-types/table-engine.d.ts +5 -0
  78. package/cjs/ts-types/table-engine.js.map +1 -1
  79. package/cjs/vrender.js.map +1 -1
  80. package/dist/vtable.js +914 -107
  81. package/dist/vtable.min.js +2 -2
  82. package/es/ListTable.js +5 -3
  83. package/es/ListTable.js.map +1 -1
  84. package/es/PivotChart.js +14 -12
  85. package/es/PivotChart.js.map +1 -1
  86. package/es/PivotTable.js +89 -43
  87. package/es/PivotTable.js.map +1 -1
  88. package/es/core/BaseTable.d.ts +1 -0
  89. package/es/core/BaseTable.js +62 -17
  90. package/es/core/BaseTable.js.map +1 -1
  91. package/es/core/TABLE_EVENT_TYPE.d.ts +3 -1
  92. package/es/core/TABLE_EVENT_TYPE.js +3 -0
  93. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  94. package/es/dataset/dataset.d.ts +1 -0
  95. package/es/dataset/dataset.js +14 -0
  96. package/es/dataset/dataset.js.map +1 -1
  97. package/es/dataset/flatDataToObject.d.ts +8 -3
  98. package/es/dataset/flatDataToObject.js +38 -8
  99. package/es/dataset/flatDataToObject.js.map +1 -1
  100. package/es/edit/edit-manager.js +0 -2
  101. package/es/edit/edit-manager.js.map +1 -1
  102. package/es/event/event.d.ts +2 -0
  103. package/es/event/event.js +12 -2
  104. package/es/event/event.js.map +1 -1
  105. package/es/event/listener/container-dom.js +5 -2
  106. package/es/event/listener/container-dom.js.map +1 -1
  107. package/es/event/listener/scroll-bar.js +8 -0
  108. package/es/event/listener/scroll-bar.js.map +1 -1
  109. package/es/event/listener/table-group.js +23 -8
  110. package/es/event/listener/table-group.js.map +1 -1
  111. package/es/index.d.ts +1 -1
  112. package/es/index.js +1 -1
  113. package/es/index.js.map +1 -1
  114. package/es/layout/pivot-header-layout.d.ts +1 -0
  115. package/es/layout/pivot-header-layout.js +12 -2
  116. package/es/layout/pivot-header-layout.js.map +1 -1
  117. package/es/scenegraph/component/table-component.d.ts +8 -0
  118. package/es/scenegraph/component/table-component.js +181 -3
  119. package/es/scenegraph/component/table-component.js.map +1 -1
  120. package/es/scenegraph/component/util.d.ts +1 -0
  121. package/es/scenegraph/component/util.js +7 -1
  122. package/es/scenegraph/component/util.js.map +1 -1
  123. package/es/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  124. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  125. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -4
  126. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  127. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  128. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  129. package/es/scenegraph/layout/frozen.js +4 -2
  130. package/es/scenegraph/layout/frozen.js.map +1 -1
  131. package/es/scenegraph/scenegraph.d.ts +7 -0
  132. package/es/scenegraph/scenegraph.js +44 -19
  133. package/es/scenegraph/scenegraph.js.map +1 -1
  134. package/es/scenegraph/select/update-select-border.js +4 -4
  135. package/es/scenegraph/select/update-select-border.js.map +1 -1
  136. package/es/state/cell-move/index.js +2 -1
  137. package/es/state/cell-move/index.js.map +1 -1
  138. package/es/state/resize/update-resize-column.js +4 -3
  139. package/es/state/resize/update-resize-column.js.map +1 -1
  140. package/es/state/resize/update-resize-row.d.ts +2 -0
  141. package/es/state/resize/update-resize-row.js +57 -0
  142. package/es/state/resize/update-resize-row.js.map +1 -0
  143. package/es/state/state.d.ts +11 -1
  144. package/es/state/state.js +31 -4
  145. package/es/state/state.js.map +1 -1
  146. package/es/themes/component.js +1 -1
  147. package/es/tools/global.d.ts +1 -0
  148. package/es/tools/global.js +2 -0
  149. package/es/tools/global.js.map +1 -1
  150. package/es/ts-types/base-table.d.ts +7 -0
  151. package/es/ts-types/base-table.js.map +1 -1
  152. package/es/ts-types/events.d.ts +11 -0
  153. package/es/ts-types/events.js.map +1 -1
  154. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  155. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  156. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  157. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  158. package/es/ts-types/table-engine.d.ts +5 -0
  159. package/es/ts-types/table-engine.js.map +1 -1
  160. package/es/vrender.js.map +1 -1
  161. package/package.json +5 -5
@@ -82,10 +82,10 @@ export class BaseTable extends EventTarget {
82
82
  }
83
83
  constructor(container, options = {}) {
84
84
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
85
- if (super(), this.showFrozenIcon = !0, this.version = "0.24.2-alpha.4", this.id = `VTable${Date.now()}`,
85
+ if (super(), this.showFrozenIcon = !0, this.version = "0.25.0", this.id = `VTable${Date.now()}`,
86
86
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200),
87
87
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
88
- 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 = defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
88
+ 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 = defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth, limitMinHeight: limitMinHeight} = options;
89
89
  this.container = container, this.options = options, this._widthMode = widthMode,
90
90
  this._heightMode = heightMode, this._widthAdaptiveMode = widthAdaptiveMode, this._heightAdaptiveMode = heightAdaptiveMode,
91
91
  this._autoFillWidth = autoFillWidth, this._autoFillHeight = autoFillHeight, this.customRender = customRender,
@@ -111,12 +111,13 @@ export class BaseTable extends EventTarget {
111
111
  internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
112
112
  internalProps.keyboardOptions = keyboardOptions, internalProps.eventOptions = eventOptions,
113
113
  internalProps.rowSeriesNumber = rowSeriesNumber, internalProps.columnResizeMode = columnResizeMode,
114
- internalProps.dragHeaderMode = dragHeaderMode, internalProps.renderChartAsync = renderChartAsync,
115
- setBatchRenderChartCount(renderChartAsyncBatchCount), internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
114
+ internalProps.rowResizeMode = rowResizeMode, internalProps.dragHeaderMode = dragHeaderMode,
115
+ internalProps.renderChartAsync = renderChartAsync, setBatchRenderChartCount(renderChartAsyncBatchCount),
116
+ internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
116
117
  internalProps._rowHeightsMap = new NumberRangeMap(this), internalProps._rowRangeHeightsMap = new Map,
117
118
  internalProps._colRangeWidthsMap = new Map, internalProps._widthResizedColMap = new Set,
118
- this.colWidthsMap = new NumberMap, this.colContentWidthsMap = new NumberMap, this.colWidthsLimit = {},
119
- internalProps.calcWidthContext = {
119
+ internalProps._heightResizedRowMap = new Set, this.colWidthsMap = new NumberMap,
120
+ this.colContentWidthsMap = new NumberMap, this.colWidthsLimit = {}, internalProps.calcWidthContext = {
120
121
  _: internalProps,
121
122
  get full() {
122
123
  var _a;
@@ -132,6 +133,7 @@ export class BaseTable extends EventTarget {
132
133
  internalProps.allowFrozenColCount = null !== (_d = options.allowFrozenColCount) && void 0 !== _d ? _d : 0,
133
134
  internalProps.limitMaxAutoWidth = null !== (_e = options.limitMaxAutoWidth) && void 0 !== _e ? _e : 450,
134
135
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
136
+ internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
135
137
  this._vDataSet = new DataSet, this.scenegraph = new Scenegraph(this), this.stateManager = new StateManager(this),
136
138
  this.eventManager = new EventManager(this), options.legends && (internalProps.legends = createLegend(options.legends, this),
137
139
  this.scenegraph.tableGroup.setAttributes({
@@ -414,7 +416,7 @@ export class BaseTable extends EventTarget {
414
416
  if (startRow > endRow || 0 === this.rowCount) return 0;
415
417
  startRow = Math.max(startRow, 0), endRow = Math.min(endRow, (null !== (_a = this.rowCount) && void 0 !== _a ? _a : 1 / 0) - 1);
416
418
  let h = 0;
417
- if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn()) h = this.rowHeightsMap.getSumInRange(startRow, endRow); else {
419
+ if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || 0 !== this.internalProps._heightResizedRowMap.size) h = this.rowHeightsMap.getSumInRange(startRow, endRow); else {
418
420
  for (let i = startRow; i < Math.min(endRow + 1, this.columnHeaderLevelCount); i++) h += this.getRowHeight(i);
419
421
  endRow >= this.columnHeaderLevelCount && (h += this.defaultRowHeight * (Math.min(endRow, this.rowCount - this.bottomFrozenRowCount - 1) - Math.max(this.columnHeaderLevelCount, startRow) + 1));
420
422
  for (let i = this.rowCount - this.bottomFrozenRowCount; i < endRow + 1; i++) h += this.getRowHeight(i);
@@ -752,7 +754,7 @@ export class BaseTable extends EventTarget {
752
754
  updateOption(options) {
753
755
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
754
756
  this.options = options;
755
- 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;
757
+ 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;
756
758
  pixelRatio && pixelRatio !== this.internalProps.pixelRatio && (this.internalProps.pixelRatio = pixelRatio),
757
759
  padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
758
760
  this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
@@ -772,18 +774,20 @@ export class BaseTable extends EventTarget {
772
774
  internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
773
775
  internalProps.keyboardOptions = keyboardOptions, internalProps.eventOptions = eventOptions,
774
776
  internalProps.rowSeriesNumber = rowSeriesNumber, internalProps.columnResizeMode = columnResizeMode,
775
- internalProps.dragHeaderMode = dragHeaderMode, internalProps.renderChartAsync = renderChartAsync,
776
- setBatchRenderChartCount(renderChartAsyncBatchCount), internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
777
+ internalProps.rowResizeMode = rowResizeMode, internalProps.dragHeaderMode = dragHeaderMode,
778
+ internalProps.renderChartAsync = renderChartAsync, setBatchRenderChartCount(renderChartAsyncBatchCount),
779
+ internalProps.overscrollBehavior = null != overscrollBehavior ? overscrollBehavior : "auto",
777
780
  internalProps.cellTextOverflows = {}, internalProps._rowHeightsMap = new NumberRangeMap(this),
778
781
  internalProps._rowRangeHeightsMap = new Map, internalProps._colRangeWidthsMap = new Map,
779
- internalProps._widthResizedColMap = new Set, this.colWidthsMap = new NumberMap,
780
- this.colContentWidthsMap = new NumberMap, this.colWidthsLimit = {}, internalProps.stick.changedCells.clear(),
781
- internalProps.theme = themes.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes.DEFAULT),
782
+ internalProps._widthResizedColMap = new Set, internalProps._heightResizedRowMap = new Set,
783
+ this.colWidthsMap = new NumberMap, this.colContentWidthsMap = new NumberMap, this.colWidthsLimit = {},
784
+ internalProps.stick.changedCells.clear(), internalProps.theme = themes.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes.DEFAULT),
782
785
  internalProps.theme.isPivot = this.isPivotTable(), this.scenegraph.updateStageBackground(),
783
786
  internalProps.autoWrapText = options.autoWrapText, internalProps.enableLineBreak = options.enableLineBreak,
784
787
  internalProps.allowFrozenColCount = null !== (_c = options.allowFrozenColCount) && void 0 !== _c ? _c : 0,
785
788
  internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
786
789
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
790
+ internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
787
791
  this._vDataSet = new DataSet, null === (_e = internalProps.legends) || void 0 === _e || _e.release(),
788
792
  null === (_f = internalProps.title) || void 0 === _f || _f.release(), internalProps.layoutMap.release(),
789
793
  this.scenegraph.clearCells(), this.scenegraph.updateComponent(), this.stateManager.updateOptionSetState(),
@@ -1340,6 +1344,15 @@ export class BaseTable extends EventTarget {
1340
1344
  const limit = this.colWidthsLimit[col];
1341
1345
  return !(limit && limit.min && limit.max) || limit.max !== limit.min;
1342
1346
  }
1347
+ _canResizeRow(col, row) {
1348
+ if (!(col >= 0 && row >= 0)) return !1;
1349
+ if (this.isCellRangeEqual(col, row, col, row + 1)) return !1;
1350
+ if ("none" === this.internalProps.rowResizeMode) return !1;
1351
+ if ("header" === this.internalProps.rowResizeMode) {
1352
+ if (!this.isHeader(col, row)) return !1;
1353
+ } else if ("body" === this.internalProps.rowResizeMode && this.isHeader(col, row)) return !1;
1354
+ return !0;
1355
+ }
1343
1356
  _canDragHeaderPosition(col, row) {
1344
1357
  if (this.isHeader(col, row) && this.stateManager.isSelected(col, row)) {
1345
1358
  if ("disabled" === this.internalProps.frozenColDragHeaderMode && this.isFrozenColumn(col)) return !1;
@@ -1592,7 +1605,31 @@ export class BaseTable extends EventTarget {
1592
1605
  }
1593
1606
  cellIsInVisualView(col, row) {
1594
1607
  const drawRange = this.getDrawRange(), rect = this.getCellRelativeRect(col, row);
1595
- return col < this.frozenColCount && row < this.frozenRowCount || rect.top >= drawRange.top && rect.bottom <= drawRange.bottom && rect.left >= drawRange.left && rect.right <= drawRange.right;
1608
+ if (col < this.frozenColCount && row < this.frozenRowCount) return !0;
1609
+ const colHeaderRangeRect = this.getCellRangeRelativeRect({
1610
+ start: {
1611
+ col: 0,
1612
+ row: 0
1613
+ },
1614
+ end: {
1615
+ col: this.colCount - 1,
1616
+ row: this.columnHeaderLevelCount
1617
+ }
1618
+ }), rowHeaderRangeRect = this.getCellRangeRelativeRect({
1619
+ start: {
1620
+ col: 0,
1621
+ row: 0
1622
+ },
1623
+ end: {
1624
+ col: this.rowHeaderLevelCount,
1625
+ row: this.rowCount - 1
1626
+ }
1627
+ });
1628
+ if (rect.top >= drawRange.top && rect.bottom <= drawRange.bottom && rect.left >= drawRange.left && rect.right <= drawRange.right) {
1629
+ if (this.isHeader(col, row)) return !0;
1630
+ if (drawRange.top >= colHeaderRangeRect.bottom && drawRange.left >= rowHeaderRangeRect.right) return !0;
1631
+ }
1632
+ return !1;
1596
1633
  }
1597
1634
  getCustomMergeValue(col, row) {
1598
1635
  if (this.internalProps.customMergeCell) {
@@ -1616,13 +1653,15 @@ export class BaseTable extends EventTarget {
1616
1653
  const cellRect = this.getCellRelativeRect(col, row);
1617
1654
  (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && hideCellSelectBorder(this.scenegraph);
1618
1655
  const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1619
- this.stateManager.updateHoverPos(-1, -1), this.scenegraph.renderSceneGraph();
1656
+ this.stateManager.updateHoverPos(-1, -1), this.scenegraph.component.hideVerticalScrollBar(),
1657
+ this.scenegraph.component.hideHorizontalScrollBar(), this.scenegraph.renderSceneGraph();
1620
1658
  const c = this.scenegraph.stage.toCanvas(!1, (new AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
1621
1659
  return isInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1622
1660
  (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && restoreCellSelectBorder(this.scenegraph),
1623
1661
  this.stateManager.updateHoverPos(hoverCol, hoverRow), c.toDataURL();
1624
1662
  }
1625
1663
  exportCellRangeImg(cellRange) {
1664
+ var _a, _b, _c, _d;
1626
1665
  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);
1627
1666
  isInView && isMaxCellInView || this.scrollToCell({
1628
1667
  col: minCol,
@@ -1637,9 +1676,15 @@ export class BaseTable extends EventTarget {
1637
1676
  col: maxCol,
1638
1677
  row: maxRow
1639
1678
  }
1640
- }), base64Image = this.scenegraph.stage.toCanvas(!1, (new AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1679
+ });
1680
+ (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && hideCellSelectBorder(this.scenegraph);
1681
+ const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1682
+ this.stateManager.updateHoverPos(-1, -1), this.scenegraph.component.hideVerticalScrollBar(),
1683
+ this.scenegraph.component.hideHorizontalScrollBar(), this.scenegraph.renderSceneGraph();
1684
+ const base64Image = this.scenegraph.stage.toCanvas(!1, (new AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1641
1685
  return isInView && isMaxCellInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1642
- base64Image;
1686
+ (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && restoreCellSelectBorder(this.scenegraph),
1687
+ this.stateManager.updateHoverPos(hoverCol, hoverRow), base64Image;
1643
1688
  }
1644
1689
  exportCanvas() {
1645
1690
  return this.scenegraph.stage.toCanvas();