@visactor/vtable 0.22.0 → 0.22.2-alpha.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 (103) hide show
  1. package/cjs/ListTable.js.map +1 -1
  2. package/cjs/body-helper/style/Style.d.ts +3 -0
  3. package/cjs/body-helper/style/Style.js +22 -15
  4. package/cjs/body-helper/style/Style.js.map +1 -1
  5. package/cjs/core/BaseTable.d.ts +1 -1
  6. package/cjs/core/BaseTable.js +23 -8
  7. package/cjs/core/BaseTable.js.map +1 -1
  8. package/cjs/data/DataSource.js +5 -1
  9. package/cjs/data/DataSource.js.map +1 -1
  10. package/cjs/event/event.js +2 -1
  11. package/cjs/event/event.js.map +1 -1
  12. package/cjs/header-helper/style/Style.d.ts +3 -0
  13. package/cjs/header-helper/style/Style.js +26 -19
  14. package/cjs/header-helper/style/Style.js.map +1 -1
  15. package/cjs/index.d.ts +1 -1
  16. package/cjs/index.js +1 -1
  17. package/cjs/index.js.map +1 -1
  18. package/cjs/layout/pivot-header-layout.js +1 -1
  19. package/cjs/layout/pivot-header-layout.js.map +1 -1
  20. package/cjs/scenegraph/component/custom.js +1 -1
  21. package/cjs/scenegraph/component/custom.js.map +1 -1
  22. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -0
  23. package/cjs/scenegraph/group-creater/cell-helper.js +19 -27
  24. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  25. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +5 -4
  26. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/column-helper.js +3 -2
  28. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  29. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  30. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  31. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  32. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  33. package/cjs/scenegraph/layout/compute-col-width.js +7 -4
  34. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  35. package/cjs/scenegraph/layout/compute-row-height.js +70 -71
  36. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  37. package/cjs/scenegraph/layout/update-height.js +18 -11
  38. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  39. package/cjs/scenegraph/layout/update-width.js +19 -13
  40. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  41. package/cjs/scenegraph/select/update-select-border.d.ts +2 -0
  42. package/cjs/scenegraph/select/update-select-border.js +19 -2
  43. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  44. package/cjs/scenegraph/utils/text-icon-layout.js +1 -1
  45. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  46. package/cjs/scenegraph/utils/text-measure.js +6 -6
  47. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  48. package/cjs/ts-types/new-data-set.d.ts +2 -1
  49. package/cjs/ts-types/new-data-set.js.map +1 -1
  50. package/cjs/vrender.js.map +1 -1
  51. package/dist/vtable.js +245 -172
  52. package/dist/vtable.min.js +2 -2
  53. package/es/ListTable.js.map +1 -1
  54. package/es/body-helper/style/Style.d.ts +3 -0
  55. package/es/body-helper/style/Style.js +22 -15
  56. package/es/body-helper/style/Style.js.map +1 -1
  57. package/es/core/BaseTable.d.ts +1 -1
  58. package/es/core/BaseTable.js +22 -8
  59. package/es/core/BaseTable.js.map +1 -1
  60. package/es/data/DataSource.js +5 -1
  61. package/es/data/DataSource.js.map +1 -1
  62. package/es/event/event.js +2 -1
  63. package/es/event/event.js.map +1 -1
  64. package/es/header-helper/style/Style.d.ts +3 -0
  65. package/es/header-helper/style/Style.js +26 -19
  66. package/es/header-helper/style/Style.js.map +1 -1
  67. package/es/index.d.ts +1 -1
  68. package/es/index.js +1 -1
  69. package/es/index.js.map +1 -1
  70. package/es/layout/pivot-header-layout.js +1 -1
  71. package/es/layout/pivot-header-layout.js.map +1 -1
  72. package/es/scenegraph/component/custom.js +1 -1
  73. package/es/scenegraph/component/custom.js.map +1 -1
  74. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -0
  75. package/es/scenegraph/group-creater/cell-helper.js +14 -25
  76. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  77. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +6 -3
  78. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  79. package/es/scenegraph/group-creater/column-helper.js +5 -4
  80. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  81. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  82. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  83. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  84. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  85. package/es/scenegraph/layout/compute-col-width.js +6 -4
  86. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  87. package/es/scenegraph/layout/compute-row-height.js +69 -70
  88. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  89. package/es/scenegraph/layout/update-height.js +16 -9
  90. package/es/scenegraph/layout/update-height.js.map +1 -1
  91. package/es/scenegraph/layout/update-width.js +19 -10
  92. package/es/scenegraph/layout/update-width.js.map +1 -1
  93. package/es/scenegraph/select/update-select-border.d.ts +2 -0
  94. package/es/scenegraph/select/update-select-border.js +16 -0
  95. package/es/scenegraph/select/update-select-border.js.map +1 -1
  96. package/es/scenegraph/utils/text-icon-layout.js +1 -1
  97. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  98. package/es/scenegraph/utils/text-measure.js +6 -6
  99. package/es/scenegraph/utils/text-measure.js.map +1 -1
  100. package/es/ts-types/new-data-set.d.ts +2 -1
  101. package/es/ts-types/new-data-set.js.map +1 -1
  102. package/es/vrender.js.map +1 -1
  103. package/package.json +5 -5
package/dist/vtable.js CHANGED
@@ -21687,6 +21687,7 @@
21687
21687
  _padding;
21688
21688
  _defaultPadding = [10, 16, 10, 16];
21689
21689
  _textStick;
21690
+ _textStickBaseOnAlign;
21690
21691
  _textOverflow;
21691
21692
  _textAlign;
21692
21693
  _textBaseline;
@@ -21725,6 +21726,7 @@
21725
21726
  this._borderColor = style?.borderColor ?? bodyStyle?.borderColor;
21726
21727
  this._textOverflow = style?.textOverflow ?? bodyStyle?.textOverflow;
21727
21728
  this._textStick = style.textStick ?? bodyStyle?.textStick ?? false;
21729
+ this._textStickBaseOnAlign = style.textStickBaseOnAlign ?? bodyStyle?.textStickBaseOnAlign ?? false;
21728
21730
  this._bgColor = style?.bgColor ?? bodyStyle?.bgColor;
21729
21731
  this._lineHeight = style?.lineHeight ?? bodyStyle?.lineHeight;
21730
21732
  this._underline = style?.underline ?? bodyStyle?.underline;
@@ -21806,6 +21808,12 @@
21806
21808
  set textStick(textStick) {
21807
21809
  this._textStick = textStick;
21808
21810
  }
21811
+ get textStickBaseOnAlign() {
21812
+ return this._textStickBaseOnAlign;
21813
+ }
21814
+ set textStickBaseOnAlign(textStickBaseOnAlign) {
21815
+ this._textStickBaseOnAlign = textStickBaseOnAlign;
21816
+ }
21809
21817
  get textAlign() {
21810
21818
  return this._textAlign;
21811
21819
  }
@@ -22089,6 +22097,7 @@
22089
22097
  _padding;
22090
22098
  _defaultPadding = [10, 16, 10, 16];
22091
22099
  _textStick;
22100
+ _textStickBaseOnAlign;
22092
22101
  _marked;
22093
22102
  _textAlign;
22094
22103
  _textBaseline;
@@ -22122,6 +22131,7 @@
22122
22131
  this._fontStyle = style.fontStyle ?? headerStyle?.fontStyle;
22123
22132
  this._textOverflow = (style.textOverflow ?? headerStyle?.textOverflow) || 'ellipsis';
22124
22133
  this._textStick = style.textStick ?? headerStyle?.textStick ?? false;
22134
+ this._textStickBaseOnAlign = style.textStickBaseOnAlign ?? headerStyle?.textStickBaseOnAlign ?? false;
22125
22135
  this._marked = style.marked ?? headerStyle?.marked ?? false;
22126
22136
  this._textAlign = (style.textAlign ?? headerStyle?.textAlign) || 'left';
22127
22137
  this._textBaseline = (style.textBaseline ?? headerStyle?.textBaseline) || 'middle';
@@ -22207,6 +22217,12 @@
22207
22217
  set textStick(textStick) {
22208
22218
  this._textStick = textStick;
22209
22219
  }
22220
+ get textStickBaseOnAlign() {
22221
+ return this._textStickBaseOnAlign;
22222
+ }
22223
+ set textStickBaseOnAlign(textStickBaseOnAlign) {
22224
+ this._textStickBaseOnAlign = textStickBaseOnAlign;
22225
+ }
22210
22226
  get marked() {
22211
22227
  return this._marked;
22212
22228
  }
@@ -33851,11 +33867,20 @@
33851
33867
  if (typeof field === 'string' || typeof field === 'number') {
33852
33868
  const beforeChangedValue = this.beforeChangedRecordsMap[dataIndex][field];
33853
33869
  const record = this.getOriginalRecord(dataIndex);
33870
+ let formatValue = value;
33854
33871
  if (typeof beforeChangedValue === 'number' && isAllDigits(value)) {
33855
- record[field] = parseFloat(value);
33872
+ formatValue = parseFloat(value);
33873
+ }
33874
+ if (isPromise(record)) {
33875
+ record
33876
+ .then(record => {
33877
+ record[field] = formatValue;
33878
+ })
33879
+ .catch((err) => {
33880
+ });
33856
33881
  }
33857
33882
  else {
33858
- record[field] = value;
33883
+ record[field] = formatValue;
33859
33884
  }
33860
33885
  }
33861
33886
  }
@@ -35475,7 +35500,9 @@
35475
35500
  });
35476
35501
  }
35477
35502
  function decodeReactDom(dom) {
35478
- if (!dom || !dom.$$typeof) {
35503
+ if (!dom ||
35504
+ (!isValid$3(dom.$$typeof) &&
35505
+ !isValid$3(dom.vtype))) {
35479
35506
  return dom;
35480
35507
  }
35481
35508
  const type = dom.type;
@@ -36448,9 +36475,13 @@
36448
36475
  const height = table.getRowHeight(row);
36449
36476
  let contentWidth = width;
36450
36477
  let contentHeight = height;
36478
+ let _contentOffset = 0;
36479
+ if (isNumber$4(table.theme._contentOffset)) {
36480
+ _contentOffset = table.theme._contentOffset;
36481
+ }
36451
36482
  const percentCompleteBarGroup = new Group$1({
36452
- x: 0,
36453
- y: 0,
36483
+ x: -_contentOffset,
36484
+ y: -_contentOffset,
36454
36485
  width: contentWidth,
36455
36486
  height: contentHeight
36456
36487
  });
@@ -37779,7 +37810,7 @@
37779
37810
  }
37780
37811
  iconAttribute.marginLeft = (icon.marginLeft ?? 0) + hierarchyOffset;
37781
37812
  iconAttribute.marginRight = icon.marginRight ?? 0;
37782
- if (icon.interactive) {
37813
+ if (icon.interactive === false) {
37783
37814
  iconAttribute.pickable = false;
37784
37815
  }
37785
37816
  if (icon.hover) {
@@ -38347,16 +38378,6 @@
38347
38378
  if (isPromise(value)) {
38348
38379
  value = table.getCellValue(col, row);
38349
38380
  }
38350
- let bgColorFunc;
38351
- if (table.internalProps?.dataConfig?.mappingRules && !table.isHeader(col, row)) {
38352
- table.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
38353
- if (mappingRule.bgColor &&
38354
- table.internalProps.layoutMap.getIndicatorKey(col, row) ===
38355
- mappingRule.bgColor.indicatorKey) {
38356
- bgColorFunc = mappingRule.bgColor.mapping;
38357
- }
38358
- });
38359
- }
38360
38381
  let cellGroup;
38361
38382
  if (type === 'text' || type === 'link') {
38362
38383
  if (type === 'link') {
@@ -38382,22 +38403,6 @@
38382
38403
  }
38383
38404
  }
38384
38405
  }
38385
- if (bgColorFunc) {
38386
- const cellValue = table.getCellOriginValue(col, row);
38387
- const bgColor = bgColorFunc(table, cellValue);
38388
- if (bgColor) {
38389
- if (cellTheme) {
38390
- cellTheme.group.fill = bgColor;
38391
- }
38392
- else {
38393
- cellTheme = {
38394
- group: {
38395
- fill: bgColor
38396
- }
38397
- };
38398
- }
38399
- }
38400
- }
38401
38406
  let customElementsGroup;
38402
38407
  let renderDefault = true;
38403
38408
  if (customResult) {
@@ -38601,16 +38606,6 @@
38601
38606
  const textAlign = cellTheme.text.textAlign;
38602
38607
  const textBaseline = cellTheme.text.textBaseline;
38603
38608
  let newCellGroup;
38604
- let bgColorFunc;
38605
- if (table.internalProps?.dataConfig?.mappingRules && !table.isHeader(col, row)) {
38606
- table.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
38607
- if (mappingRule.bgColor &&
38608
- table.internalProps.layoutMap.getIndicatorKey(col, row) ===
38609
- mappingRule.bgColor.indicatorKey) {
38610
- bgColorFunc = mappingRule.bgColor.mapping;
38611
- }
38612
- });
38613
- }
38614
38609
  let cellWidth;
38615
38610
  let cellHeight;
38616
38611
  if (range) {
@@ -38623,10 +38618,10 @@
38623
38618
  }
38624
38619
  if (isPromise(value)) {
38625
38620
  oldCellGroup.removeAllChild();
38626
- dealPromiseData(value, table, updateCellContent.bind(null, type, value, define, table, col, row, bgColorFunc, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult));
38621
+ dealPromiseData(value, table, updateCellContent.bind(null, type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult));
38627
38622
  }
38628
38623
  else {
38629
- newCellGroup = updateCellContent(type, value, define, table, col, row, bgColorFunc, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult);
38624
+ newCellGroup = updateCellContent(type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult);
38630
38625
  }
38631
38626
  if (isMerge) {
38632
38627
  const { width: contentWidth } = newCellGroup.attribute;
@@ -38637,7 +38632,7 @@
38637
38632
  }
38638
38633
  return newCellGroup;
38639
38634
  }
38640
- function updateCellContent(type, value, define, table, col, row, bgColorFunc, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult) {
38635
+ function updateCellContent(type, value, define, table, col, row, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme, range, customResult) {
38641
38636
  if (isPromise(value)) {
38642
38637
  value = table.getCellValue(col, row);
38643
38638
  }
@@ -38676,10 +38671,10 @@
38676
38671
  for (let col = range.start.col; col <= range.end.col; col++) {
38677
38672
  for (let row = range.start.row; row <= range.end.row; row++) {
38678
38673
  const cellGroup = table.scenegraph.getCell(col, row, true);
38679
- if (range.start.row !== range.end.row) {
38674
+ if (cellGroup.role === 'cell' && range.start.row !== range.end.row && cellGroup.contentWidth !== cellWidth) {
38680
38675
  updateCellContentHeight(cellGroup, cellHeight, cellHeight, table.heightMode === 'autoHeight', padding, textAlign, textBaseline);
38681
38676
  }
38682
- if (range.start.col !== range.end.col) {
38677
+ if (cellGroup.role === 'cell' && range.start.col !== range.end.col && cellGroup.contentHeight !== cellHeight) {
38683
38678
  updateCellContentWidth(cellGroup, cellWidth, cellHeight, 0, table.heightMode === 'autoHeight', padding, textAlign, textBaseline, table.scenegraph);
38684
38679
  }
38685
38680
  cellGroup.contentWidth = cellWidth;
@@ -38718,7 +38713,7 @@
38718
38713
  });
38719
38714
  }
38720
38715
  });
38721
- const lineWidth = cellGroup.attribute.lineWidth;
38716
+ const lineWidth = cellGroup.attribute.strokeArrayWidth ?? cellGroup.attribute.lineWidth;
38722
38717
  const isLineWidthArray = isArray$3(lineWidth);
38723
38718
  const newLineWidth = [0, 0, 0, 0];
38724
38719
  if (col === range.start.col) {
@@ -39937,7 +39932,7 @@
39937
39932
  }
39938
39933
  }
39939
39934
  function computeRowHeight(row, startCol, endCol, table) {
39940
- let maxHeight = 0;
39935
+ let maxHeight;
39941
39936
  if (table.isPivotChart() &&
39942
39937
  row >= table.columnHeaderLevelCount &&
39943
39938
  row < table.rowCount - table.bottomFrozenRowCount) {
@@ -39957,7 +39952,7 @@
39957
39952
  for (let col = startCol; col <= endCol; col++) {
39958
39953
  const customHeight = computeCustomRenderHeight(col, row, table);
39959
39954
  if (customHeight) {
39960
- maxHeight = Math.max(customHeight.height, maxHeight);
39955
+ maxHeight = isValid$3(maxHeight) ? Math.max(customHeight.height, maxHeight) : customHeight.height;
39961
39956
  if (!customHeight.renderDefault) {
39962
39957
  continue;
39963
39958
  }
@@ -39968,7 +39963,7 @@
39968
39963
  if (axisConfig) {
39969
39964
  const axisWidth = computeAxisComponentHeight(axisConfig, table);
39970
39965
  if (typeof axisWidth === 'number') {
39971
- maxHeight = Math.max(axisWidth, maxHeight);
39966
+ maxHeight = isValid$3(maxHeight) ? Math.max(axisWidth, maxHeight) : axisWidth;
39972
39967
  continue;
39973
39968
  }
39974
39969
  }
@@ -39981,19 +39976,14 @@
39981
39976
  const cellType = table.isHeader(col, row)
39982
39977
  ? table._getHeaderLayoutMap(col, row)?.headerType
39983
39978
  : table.getBodyColumnType(col, row);
39984
- if (isValid$3(cellType) &&
39985
- cellType !== 'text' &&
39986
- cellType !== 'link' &&
39987
- cellType !== 'progressbar' &&
39988
- cellType !== 'checkbox') {
39989
- const defaultHeight = table.getDefaultRowHeight(row);
39990
- maxHeight = Math.max(maxHeight, isNumber$4(defaultHeight) ? defaultHeight : table.defaultRowHeight);
39991
- continue;
39992
- }
39993
39979
  const textHeight = computeTextHeight(col, row, cellType, table);
39994
- maxHeight = Math.max(textHeight, maxHeight);
39980
+ maxHeight = isValid$3(maxHeight) ? Math.max(textHeight, maxHeight) : textHeight;
39981
+ }
39982
+ if (isValid$3(maxHeight)) {
39983
+ return maxHeight;
39995
39984
  }
39996
- return maxHeight;
39985
+ const defaultHeight = table.getDefaultRowHeight(row);
39986
+ return isNumber$4(defaultHeight) ? defaultHeight : table.defaultRowHeight;
39997
39987
  }
39998
39988
  function checkFixedStyleAndNoWrap(table) {
39999
39989
  const { layoutMap } = table.internalProps;
@@ -40189,87 +40179,92 @@
40189
40179
  const fontFamily = getProp('fontFamily', actStyle, col, row, table);
40190
40180
  const autoWrapText = getProp('autoWrapText', actStyle, col, row, table);
40191
40181
  let text;
40192
- if (cellType === 'checkbox') {
40193
- text = isObject$4(cellValue) ? cellValue.text : cellValue;
40182
+ if (cellType !== 'text' && cellType !== 'link' && cellType !== 'progressbar' && cellType !== 'checkbox') {
40183
+ maxHeight = lineHeight;
40194
40184
  }
40195
40185
  else {
40196
- text = cellValue;
40197
- }
40198
- const lines = validToString(text).split('\n') || [];
40199
- const cellWidth = table.getColsWidth(col, endCol);
40200
- if (cellType === 'checkbox') {
40201
- const size = getProp('size', actStyle, col, row, table);
40202
- if (autoWrapText) {
40203
- const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);
40204
- const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth - size - spaceBetweenTextAndIcon;
40205
- utilCheckBoxMark.setAttributes({
40206
- text: {
40207
- maxLineWidth,
40208
- text: lines,
40209
- fontSize,
40210
- fontStyle,
40211
- fontWeight,
40212
- fontFamily,
40213
- lineHeight,
40214
- wordBreak: 'break-word'
40215
- },
40216
- icon: {
40217
- width: Math.floor(size / 1.4),
40218
- height: Math.floor(size / 1.4)
40219
- },
40220
- box: {
40221
- width: size,
40222
- height: size
40223
- },
40224
- spaceBetweenTextAndIcon
40186
+ if (cellType === 'checkbox') {
40187
+ text = isObject$4(cellValue) ? cellValue.text : cellValue;
40188
+ }
40189
+ else {
40190
+ text = cellValue;
40191
+ }
40192
+ const lines = validToString(text).split('\n') || [];
40193
+ const cellWidth = table.getColsWidth(col, endCol);
40194
+ if (cellType === 'checkbox') {
40195
+ const size = getProp('size', actStyle, col, row, table);
40196
+ if (autoWrapText) {
40197
+ const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);
40198
+ const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth - size - spaceBetweenTextAndIcon;
40199
+ utilCheckBoxMark.setAttributes({
40200
+ text: {
40201
+ maxLineWidth,
40202
+ text: lines,
40203
+ fontSize,
40204
+ fontStyle,
40205
+ fontWeight,
40206
+ fontFamily,
40207
+ lineHeight,
40208
+ wordBreak: 'break-word'
40209
+ },
40210
+ icon: {
40211
+ width: Math.floor(size / 1.4),
40212
+ height: Math.floor(size / 1.4)
40213
+ },
40214
+ box: {
40215
+ width: size,
40216
+ height: size
40217
+ },
40218
+ spaceBetweenTextAndIcon
40219
+ });
40220
+ utilCheckBoxMark.render();
40221
+ maxHeight = utilTextMark.AABBBounds.height();
40222
+ }
40223
+ else {
40224
+ maxHeight = Math.max(size, lines.length * lineHeight);
40225
+ }
40226
+ }
40227
+ else if (iconInlineFront.length || iconInlineEnd.length) {
40228
+ const textOption = Object.assign({
40229
+ text: cellValue?.toString(),
40230
+ fontFamily,
40231
+ fontSize,
40232
+ fontStyle,
40233
+ fontWeight,
40234
+ lineHeight
40225
40235
  });
40226
- utilCheckBoxMark.render();
40227
- maxHeight = utilTextMark.AABBBounds.height();
40236
+ textOption.textBaseline = 'middle';
40237
+ const textConfig = [
40238
+ ...iconInlineFront.map(icon => dealWithRichTextIcon(icon)),
40239
+ textOption,
40240
+ ...iconInlineEnd.map(icon => dealWithRichTextIcon(icon))
40241
+ ];
40242
+ utilRichTextMark.setAttributes({
40243
+ width: cellWidth - (padding[1] + padding[3]) - iconWidth,
40244
+ height: 0,
40245
+ textConfig
40246
+ });
40247
+ maxHeight = utilRichTextMark.AABBBounds.height();
40248
+ }
40249
+ else if (autoWrapText) {
40250
+ const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth;
40251
+ utilTextMark.setAttributes({
40252
+ maxLineWidth,
40253
+ text: lines,
40254
+ fontSize,
40255
+ fontStyle,
40256
+ fontWeight,
40257
+ fontFamily,
40258
+ lineHeight,
40259
+ wordBreak: 'break-word',
40260
+ whiteSpace: lines.length === 1 && !autoWrapText ? 'no-wrap' : 'normal'
40261
+ });
40262
+ maxHeight = utilTextMark.AABBBounds.height() || (typeof lineHeight === 'number' ? lineHeight : fontSize);
40228
40263
  }
40229
40264
  else {
40230
- maxHeight = Math.max(size, lines.length * lineHeight);
40265
+ maxHeight = lines.length * lineHeight;
40231
40266
  }
40232
40267
  }
40233
- else if (iconInlineFront.length || iconInlineEnd.length) {
40234
- const textOption = Object.assign({
40235
- text: cellValue?.toString(),
40236
- fontFamily,
40237
- fontSize,
40238
- fontStyle,
40239
- fontWeight,
40240
- lineHeight
40241
- });
40242
- textOption.textBaseline = 'middle';
40243
- const textConfig = [
40244
- ...iconInlineFront.map(icon => dealWithRichTextIcon(icon)),
40245
- textOption,
40246
- ...iconInlineEnd.map(icon => dealWithRichTextIcon(icon))
40247
- ];
40248
- utilRichTextMark.setAttributes({
40249
- width: cellWidth - (padding[1] + padding[3]) - iconWidth,
40250
- height: 0,
40251
- textConfig
40252
- });
40253
- maxHeight = utilRichTextMark.AABBBounds.height();
40254
- }
40255
- else if (autoWrapText) {
40256
- const maxLineWidth = cellWidth - (padding[1] + padding[3]) - iconWidth;
40257
- utilTextMark.setAttributes({
40258
- maxLineWidth,
40259
- text: lines,
40260
- fontSize,
40261
- fontStyle,
40262
- fontWeight,
40263
- fontFamily,
40264
- lineHeight,
40265
- wordBreak: 'break-word',
40266
- whiteSpace: lines.length === 1 && !autoWrapText ? 'no-wrap' : 'normal'
40267
- });
40268
- maxHeight = utilTextMark.AABBBounds.height() || (typeof lineHeight === 'number' ? lineHeight : fontSize);
40269
- }
40270
- else {
40271
- maxHeight = lines.length * lineHeight;
40272
- }
40273
40268
  return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;
40274
40269
  }
40275
40270
  function getCellRect$1(col, row, table) {
@@ -40420,7 +40415,13 @@
40420
40415
  if (customLayout || customRender) {
40421
40416
  const style = scene.table._getCellStyle(col, row);
40422
40417
  const padding = getQuadProps(getProp('padding', style, col, row, scene.table));
40423
- const customResult = dealWithCustom(customLayout, customRender, col, row, cell.attribute.width, cell.attribute.height, false, scene.table.heightMode === 'autoHeight', padding, scene.table);
40418
+ let width = cell.attribute.width;
40419
+ let height = cell.attribute.height;
40420
+ if (isMergeCellGroup(cell)) {
40421
+ width = scene.table.getColsWidth(cell.mergeStartCol, cell.mergeEndCol);
40422
+ height = scene.table.getRowsHeight(cell.mergeStartRow, cell.mergeEndRow);
40423
+ }
40424
+ const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.heightMode === 'autoHeight', padding, scene.table);
40424
40425
  customElementsGroup = customResult.elementsGroup;
40425
40426
  renderDefault = customResult.renderDefault;
40426
40427
  }
@@ -40432,13 +40433,10 @@
40432
40433
  }
40433
40434
  }
40434
40435
  }
40435
- if (renderDefault) {
40436
- const style = scene.table._getCellStyle(col, row);
40437
- updateMergeCellContentHeight(cell, distHeight, detaY, scene.table.heightMode === 'autoHeight', getQuadProps(style.padding), style.textAlign, style.textBaseline, scene.table);
40438
- }
40436
+ updateMergeCellContentHeight(cell, distHeight, detaY, scene.table.heightMode === 'autoHeight', renderDefault, scene.table);
40439
40437
  }
40440
40438
  }
40441
- function updateMergeCellContentHeight(cellGroup, distHeight, detaY, autoRowHeight, padding, textAlign, textBaseline, table) {
40439
+ function updateMergeCellContentHeight(cellGroup, distHeight, detaY, autoRowHeight, renderDefault, table) {
40442
40440
  if (isMergeCellGroup(cellGroup)) {
40443
40441
  distHeight = 0;
40444
40442
  for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {
@@ -40454,7 +40452,10 @@
40454
40452
  dy: 0
40455
40453
  });
40456
40454
  });
40457
- updateCellContentHeight(singleCellGroup, distHeight, detaY, autoRowHeight, padding, textAlign, textBaseline);
40455
+ if (renderDefault) {
40456
+ const style = table._getCellStyle(col, row);
40457
+ updateCellContentHeight(singleCellGroup, distHeight, detaY, autoRowHeight, getQuadProps(style.padding), style.textAlign, style.textBaseline);
40458
+ }
40458
40459
  const rangeHeight = table.getRowHeight(row);
40459
40460
  const rangeWidth = table.getColWidth(col);
40460
40461
  singleCellGroup.contentHeight = distHeight;
@@ -40475,7 +40476,8 @@
40475
40476
  }
40476
40477
  }
40477
40478
  else {
40478
- updateCellContentHeight(cellGroup, distHeight, detaY, autoRowHeight, padding, textAlign, textBaseline);
40479
+ const style = table._getCellStyle(cellGroup.col, cellGroup.row);
40480
+ updateCellContentHeight(cellGroup, distHeight, detaY, autoRowHeight, getQuadProps(style.padding), style.textAlign, style.textBaseline);
40479
40481
  }
40480
40482
  }
40481
40483
 
@@ -40720,7 +40722,13 @@
40720
40722
  if (customLayout || customRender) {
40721
40723
  const style = scene.table._getCellStyle(col, row);
40722
40724
  const padding = getQuadProps(getProp('padding', style, col, row, scene.table));
40723
- const customResult = dealWithCustom(customLayout, customRender, col, row, cellGroup.attribute.width, cellGroup.attribute.height, false, scene.table.heightMode === 'autoHeight', padding, scene.table);
40725
+ let width = cellGroup.attribute.width;
40726
+ let height = cellGroup.attribute.height;
40727
+ if (isMergeCellGroup(cellGroup)) {
40728
+ width = scene.table.getColsWidth(cellGroup.mergeStartCol, cellGroup.mergeEndCol);
40729
+ height = scene.table.getRowsHeight(cellGroup.mergeStartRow, cellGroup.mergeEndRow);
40730
+ }
40731
+ const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.heightMode === 'autoHeight', padding, scene.table);
40724
40732
  customElementsGroup = customResult.elementsGroup;
40725
40733
  renderDefault = customResult.renderDefault;
40726
40734
  isHeightChange = true;
@@ -40733,14 +40741,12 @@
40733
40741
  }
40734
40742
  }
40735
40743
  }
40736
- if (renderDefault) {
40737
- const style = scene.table._getCellStyle(col, row);
40738
- isHeightChange = updateMergeCellContentWidth(cellGroup, distWidth, detaX, autoRowHeight, getQuadProps(style.padding), style.textAlign, style.textBaseline, scene.table);
40739
- }
40744
+ const cellChange = updateMergeCellContentWidth(cellGroup, distWidth, detaX, autoRowHeight, renderDefault, scene.table);
40745
+ isHeightChange = isHeightChange || cellChange;
40740
40746
  }
40741
40747
  return autoRowHeight && autoWrapText ? isHeightChange : false;
40742
40748
  }
40743
- function updateMergeCellContentWidth(cellGroup, distWidth, detaX, autoRowHeight, padding, textAlign, textBaseline, table) {
40749
+ function updateMergeCellContentWidth(cellGroup, distWidth, detaX, autoRowHeight, renderDefault, table) {
40744
40750
  if (isMergeCellGroup(cellGroup)) {
40745
40751
  distWidth = 0;
40746
40752
  let isHeightChange = false;
@@ -40754,6 +40760,9 @@
40754
40760
  const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);
40755
40761
  for (let col = colStart; col <= colEnd; col++) {
40756
40762
  for (let row = rowStart; row <= rowEnd; row++) {
40763
+ if (col === cellGroup.col && row !== cellGroup.row) {
40764
+ continue;
40765
+ }
40757
40766
  const singleCellGroup = table.scenegraph.getCell(col, row);
40758
40767
  singleCellGroup.forEachChildren((child) => {
40759
40768
  child.setAttributes({
@@ -40761,13 +40770,20 @@
40761
40770
  dy: 0
40762
40771
  });
40763
40772
  });
40764
- const changed = updateCellContentWidth(singleCellGroup, distWidth, cellHeight, detaX, autoRowHeight, padding, textAlign, textBaseline, table.scenegraph);
40765
- const hierarchyOffset = getHierarchyOffset(singleCellGroup.col, singleCellGroup.row, table);
40766
- if (hierarchyOffset) {
40767
- const text = singleCellGroup.getChildByName('text');
40768
- const icon = singleCellGroup.getChildByName('expand') || singleCellGroup.getChildByName('collapse');
40769
- if (icon?.role !== 'icon-left' && text) {
40770
- text.setAttribute('dx', hierarchyOffset);
40773
+ let changed = false;
40774
+ if (renderDefault) {
40775
+ const style = table._getCellStyle(col, row);
40776
+ const padding = getQuadProps(style.padding);
40777
+ const textAlign = style.textAlign;
40778
+ const textBaseline = style.textBaseline;
40779
+ changed = updateCellContentWidth(singleCellGroup, distWidth, cellHeight, detaX, autoRowHeight, padding, textAlign, textBaseline, table.scenegraph);
40780
+ const hierarchyOffset = getHierarchyOffset(singleCellGroup.col, singleCellGroup.row, table);
40781
+ if (hierarchyOffset) {
40782
+ const text = singleCellGroup.getChildByName('text');
40783
+ const icon = singleCellGroup.getChildByName('expand') || singleCellGroup.getChildByName('collapse');
40784
+ if (icon?.role !== 'icon-left' && text) {
40785
+ text.setAttribute('dx', hierarchyOffset);
40786
+ }
40771
40787
  }
40772
40788
  }
40773
40789
  const rangeHeight = table.getRowHeight(row);
@@ -40791,6 +40807,10 @@
40791
40807
  }
40792
40808
  return isHeightChange;
40793
40809
  }
40810
+ const style = table._getCellStyle(cellGroup.col, cellGroup.row);
40811
+ const padding = getQuadProps(style.padding);
40812
+ const textAlign = style.textAlign;
40813
+ const textBaseline = style.textBaseline;
40794
40814
  return updateCellContentWidth(cellGroup, distWidth, table.getRowHeight(cellGroup.row), detaX, autoRowHeight, padding, textAlign, textBaseline, table.scenegraph);
40795
40815
  }
40796
40816
  function resetRowHeight(scene, row) {
@@ -43057,6 +43077,7 @@
43057
43077
  }
43058
43078
 
43059
43079
  let customAlphabetCharSet = '';
43080
+ let textMeasureMode = 'quick';
43060
43081
  const textMeasureModule = new ContainerModule((bind, unbind, isBound, rebind) => {
43061
43082
  if (isBound(TextMeasureContribution)) {
43062
43083
  rebind(TextMeasureContribution).to(FastTextMeasureContribution).inSingletonScope();
@@ -43104,13 +43125,13 @@
43104
43125
  measureTextWidth(text, options) {
43105
43126
  const { fontSize, fontFamily = 'Arial,sans-serif', fontWeight = 'normal', fontStyle = 'normal' } = options;
43106
43127
  const fastTextMeasure = getFastTextMeasure(fontSize, fontWeight, fontFamily, fontStyle);
43107
- const textMeasure = fastTextMeasure.measure(text);
43128
+ const textMeasure = fastTextMeasure.measure(text, textMeasureMode);
43108
43129
  return textMeasure.width;
43109
43130
  }
43110
43131
  measureText(text, options) {
43111
43132
  const { fontSize, fontFamily = 'Arial,sans-serif', fontWeight = 'normal', fontStyle = 'normal' } = options;
43112
43133
  const fastTextMeasure = getFastTextMeasure(fontSize, fontWeight, fontFamily, fontStyle);
43113
- const textMeasure = fastTextMeasure.measure(text);
43134
+ const textMeasure = fastTextMeasure.measure(text, textMeasureMode);
43114
43135
  return textMeasure;
43115
43136
  }
43116
43137
  }
@@ -43118,13 +43139,13 @@
43118
43139
  measureText(text, options) {
43119
43140
  const { fontSize, fontFamily = 'Arial,sans-serif', fontWeight = 'normal', fontStyle = 'normal' } = options;
43120
43141
  const fastTextMeasure = getFastTextMeasure(fontSize, fontWeight, fontFamily, fontStyle);
43121
- const textMeasure = fastTextMeasure.measure(text);
43142
+ const textMeasure = fastTextMeasure.measure(text, textMeasureMode);
43122
43143
  return textMeasure;
43123
43144
  }
43124
43145
  measureTextWidth(text, options) {
43125
43146
  const { fontSize, fontFamily = 'Arial,sans-serif', fontWeight = 'normal', fontStyle = 'normal' } = options;
43126
43147
  const fastTextMeasure = getFastTextMeasure(fontSize, fontWeight, fontFamily, fontStyle);
43127
- const textMeasure = fastTextMeasure.measure(text);
43148
+ const textMeasure = fastTextMeasure.measure(text, textMeasureMode);
43128
43149
  return textMeasure.width;
43129
43150
  }
43130
43151
  clipText(text, options, width) {
@@ -43198,6 +43219,7 @@
43198
43219
  fastTextMeasureCache.clear();
43199
43220
  }
43200
43221
  function restoreMeasureText() {
43222
+ textMeasureMode = 'canvas';
43201
43223
  container.load(restoreTextMeasureModule);
43202
43224
  }
43203
43225
 
@@ -43582,8 +43604,9 @@
43582
43604
  if (customLayoutObj.rootContainer instanceof Group$2) {
43583
43605
  customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);
43584
43606
  dealPercentCalc(customLayoutObj.rootContainer, 0, table.getRowHeight(row));
43607
+ const setedWidth = customLayoutObj.rootContainer.attribute.width;
43585
43608
  customLayoutObj.rootContainer.setStage(table.scenegraph.stage);
43586
- width = customLayoutObj.rootContainer.AABBBounds.width() ?? 0;
43609
+ width = setedWidth > 0 ? setedWidth : customLayoutObj.rootContainer.AABBBounds.width() ?? 0;
43587
43610
  renderDefault = customLayoutObj.renderDefault;
43588
43611
  enableCellPadding = customLayoutObj.enableCellPadding;
43589
43612
  }
@@ -43836,12 +43859,12 @@
43836
43859
  columnGroup.updateColumnRowNumber(row);
43837
43860
  if (isMerge) {
43838
43861
  const rangeHeight = table.getRowHeight(row);
43839
- const rangeWidth = table.getColWidth(col);
43862
+ table.getColWidth(col);
43840
43863
  const { width: contentWidth } = cellGroup.attribute;
43841
43864
  const { height: contentHeight } = cellGroup.attribute;
43842
43865
  cellGroup.contentWidth = contentWidth;
43843
43866
  cellGroup.contentHeight = contentHeight;
43844
- resizeCellGroup(cellGroup, rangeWidth, rangeHeight, range, table);
43867
+ dealWithMergeCellSize(range, contentWidth, contentHeight, padding, textAlign, textBaseline, table);
43845
43868
  columnGroup.updateColumnHeight(rangeHeight);
43846
43869
  y += rangeHeight;
43847
43870
  }
@@ -43922,7 +43945,8 @@
43922
43945
  proxy.setParamsForColumn();
43923
43946
  let distCol;
43924
43947
  let distRow;
43925
- if (table.widthMode === 'adaptive') {
43948
+ if (table.widthMode === 'adaptive' ||
43949
+ (table.options.autoWrapText && (table.heightMode === 'adaptive' || table.heightMode === 'autoHeight'))) {
43926
43950
  distCol = table.colCount - 1;
43927
43951
  }
43928
43952
  else {
@@ -44877,7 +44901,7 @@
44877
44901
  computeColsWidth(this.table, this.currentCol + 1, endCol);
44878
44902
  for (let row = 0; row < this.table.rowCount; row++) {
44879
44903
  const cellGroup = this.highPerformanceGetCell(this.currentCol, row);
44880
- if (isNumber$4(cellGroup.mergeStartCol) && cellGroup.mergeStartCol > this.currentCol) {
44904
+ if (cellGroup.role === 'cell' && isNumber$4(cellGroup.mergeStartCol) && cellGroup.mergeStartCol > this.currentCol) {
44881
44905
  this.table.scenegraph.updateCellContent(cellGroup.col, cellGroup.row);
44882
44906
  }
44883
44907
  }
@@ -45615,6 +45639,22 @@
45615
45639
  scene.createCellSelectBorder(columnHeaderStartCol, columnHeaderStartRow, columnHeaderEndCol, columnHeaderEndRow, 'body', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
45616
45640
  }
45617
45641
  }
45642
+ function hideCellSelectBorder(scene) {
45643
+ scene.selectingRangeComponents.forEach((selectComp, key) => {
45644
+ selectComp.rect.setAttribute('visible', false);
45645
+ });
45646
+ scene.selectedRangeComponents.forEach((selectComp, key) => {
45647
+ selectComp.rect.setAttribute('visible', false);
45648
+ });
45649
+ }
45650
+ function restoreCellSelectBorder(scene) {
45651
+ scene.selectingRangeComponents.forEach((selectComp, key) => {
45652
+ selectComp.rect.setAttribute('visible', false);
45653
+ });
45654
+ scene.selectedRangeComponents.forEach((selectComp, key) => {
45655
+ selectComp.rect.setAttribute('visible', false);
45656
+ });
45657
+ }
45618
45658
 
45619
45659
  function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, selectRangeType, selectId, strokes) {
45620
45660
  const startCol = Math.min(start_Col, end_Col);
@@ -52121,6 +52161,7 @@
52121
52161
  const resizeCol = this.table.scenegraph.getResizeColAt(eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y, eventArgsSet.eventArgs?.targetCell);
52122
52162
  if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {
52123
52163
  this.table.scenegraph.updateAutoColWidth(resizeCol.col);
52164
+ this.table.internalProps._widthResizedColMap.add(resizeCol.col);
52124
52165
  this.table.scenegraph.updateChartSize(resizeCol.col);
52125
52166
  const state = this.table.stateManager;
52126
52167
  if (state.columnResize.col < state.table.frozenColCount &&
@@ -55504,7 +55545,7 @@
55504
55545
  return TABLE_EVENT_TYPE;
55505
55546
  }
55506
55547
  options;
55507
- version = "0.22.0";
55548
+ version = "0.22.2-alpha.0";
55508
55549
  pagination;
55509
55550
  id = `VTable${Date.now()}`;
55510
55551
  headerStyleCache;
@@ -57281,6 +57322,16 @@
57281
57322
  }
57282
57323
  return cacheStyle;
57283
57324
  }
57325
+ let bgColorFunc;
57326
+ if (this.internalProps?.dataConfig?.mappingRules && !this.isHeader(col, row)) {
57327
+ this.internalProps?.dataConfig?.mappingRules?.forEach((mappingRule, i) => {
57328
+ if (mappingRule.bgColor &&
57329
+ this.internalProps.layoutMap.getIndicatorKey(col, row) ===
57330
+ mappingRule.bgColor.indicatorKey) {
57331
+ bgColorFunc = mappingRule.bgColor.mapping;
57332
+ }
57333
+ });
57334
+ }
57284
57335
  let cacheKey;
57285
57336
  const cellType = this.getCellType(col, row);
57286
57337
  if (this.isSeriesNumberInBody(col, row)) {
@@ -57321,6 +57372,9 @@
57321
57372
  dataValue: this.getCellOriginValue(col, row),
57322
57373
  cellHeaderPaths: this.getCellHeaderPaths(col, row)
57323
57374
  }, styleClass, this.options.autoWrapText, this.theme);
57375
+ if (bgColorFunc) {
57376
+ cacheStyle = mergeStyle(cacheStyle, { bgColor: bgColorFunc });
57377
+ }
57324
57378
  if (!isFunction$3(style)) {
57325
57379
  if (layoutMap.isBottomFrozenRow(row)) {
57326
57380
  this.bodyBottomStyleCache.set(cacheKey, cacheStyle);
@@ -57625,7 +57679,7 @@
57625
57679
  const copyCellValue = getCopyCellValue(c, r, range);
57626
57680
  if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) ;
57627
57681
  else {
57628
- const strCellValue = `${copyCellValue}`;
57682
+ const strCellValue = isValid$3(copyCellValue) ? `${copyCellValue}` : '';
57629
57683
  if (/^\[object .*\]$/.exec(strCellValue)) ;
57630
57684
  else {
57631
57685
  copyValue += strCellValue;
@@ -57750,13 +57804,23 @@
57750
57804
  return customLayout;
57751
57805
  }
57752
57806
  hasAutoImageColumn() {
57753
- return this.internalProps.layoutMap.columnObjects.find((column) => {
57754
- if ((column.cellType === 'image' || typeof column.cellType === 'function') &&
57807
+ const bodyColumn = this.internalProps.layoutMap.columnObjects.find((column) => {
57808
+ if ((column.cellType === 'image' || column.cellType === 'video' || typeof column.cellType === 'function') &&
57755
57809
  column.define.imageAutoSizing) {
57756
57810
  return true;
57757
57811
  }
57758
57812
  return false;
57759
57813
  });
57814
+ const headerObj = this.internalProps.layoutMap.headerObjects.find((column) => {
57815
+ if (column) {
57816
+ if ((column.headerType === 'image' || column.headerType === 'video' || typeof column.headerType === 'function') &&
57817
+ column.define.imageAutoSizing) {
57818
+ return true;
57819
+ }
57820
+ }
57821
+ return false;
57822
+ });
57823
+ return bodyColumn || headerObj;
57760
57824
  }
57761
57825
  _getActiveChartInstance() {
57762
57826
  const cellGroup = this.scenegraph.getCell(this.stateManager.hover?.cellPos?.col, this.stateManager.hover?.cellPos?.row);
@@ -57799,11 +57863,20 @@
57799
57863
  this.scrollToCell({ col, row });
57800
57864
  }
57801
57865
  const cellRect = this.getCellRelativeRect(col, row);
57866
+ if (this.stateManager.select?.ranges?.length > 0) {
57867
+ hideCellSelectBorder(this.scenegraph);
57868
+ }
57869
+ const { col: hoverCol, row: hoverRow } = this.stateManager.hover.cellPos;
57870
+ this.stateManager.updateHoverPos(-1, -1);
57802
57871
  const c = this.scenegraph.stage.toCanvas(false, new AABBBounds$1().set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
57803
57872
  if (!isInView) {
57804
57873
  this.setScrollTop(scrollTop);
57805
57874
  this.setScrollLeft(scrollLeft);
57806
57875
  }
57876
+ if (this.stateManager.select?.ranges?.length > 0) {
57877
+ restoreCellSelectBorder(this.scenegraph);
57878
+ }
57879
+ this.stateManager.updateHoverPos(hoverCol, hoverRow);
57807
57880
  return c.toDataURL();
57808
57881
  }
57809
57882
  exportCellRangeImg(cellRange) {
@@ -63362,7 +63435,7 @@
63362
63435
  dimension.indicatorKey === rowDimension.indicatorKey &&
63363
63436
  (!rowDimension.value || dimension.value === rowDimension.value))) {
63364
63437
  rowArr = dimension.children;
63365
- if (needLowestLevel && !rowArr) {
63438
+ if (needLowestLevel && (!rowArr || rowArr.some(row => row.dimensionKey === 'axis'))) {
63366
63439
  rowDimensionFinded = dimension;
63367
63440
  }
63368
63441
  else if (!needLowestLevel) {
@@ -67563,7 +67636,7 @@
67563
67636
  }
67564
67637
 
67565
67638
  registerForVrender();
67566
- const version = "0.22.0";
67639
+ const version = "0.22.2-alpha.0";
67567
67640
  function getIcons() {
67568
67641
  return get$2();
67569
67642
  }