@visactor/vtable 0.25.5 → 0.25.6

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 (127) hide show
  1. package/cjs/ListTable.js +11 -15
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/core/BaseTable.js +24 -5
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/core/TABLE_EVENT_TYPE.d.ts +1 -0
  6. package/cjs/core/TABLE_EVENT_TYPE.js +1 -0
  7. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  8. package/cjs/edit/edit-manager.js +8 -7
  9. package/cjs/edit/edit-manager.js.map +1 -1
  10. package/cjs/event/listener/scroll-bar.js +6 -2
  11. package/cjs/event/listener/scroll-bar.js.map +1 -1
  12. package/cjs/event/listener/table-group.js +29 -19
  13. package/cjs/event/listener/table-group.js.map +1 -1
  14. package/cjs/event/util.d.ts +2 -0
  15. package/cjs/event/util.js +18 -4
  16. package/cjs/event/util.js.map +1 -1
  17. package/cjs/header-helper/header-helper.d.ts +1 -0
  18. package/cjs/header-helper/header-helper.js +8 -0
  19. package/cjs/header-helper/header-helper.js.map +1 -1
  20. package/cjs/index.d.ts +1 -1
  21. package/cjs/index.js +1 -1
  22. package/cjs/index.js.map +1 -1
  23. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  24. package/cjs/layout/pivot-header-layout.js +19 -3
  25. package/cjs/layout/pivot-header-layout.js.map +1 -1
  26. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
  27. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  28. package/cjs/scenegraph/graphic/group.d.ts +1 -1
  29. package/cjs/scenegraph/graphic/group.js.map +1 -1
  30. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +1 -1
  31. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  32. package/cjs/scenegraph/group-creater/column-helper.js +1 -1
  33. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  34. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  35. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  36. package/cjs/scenegraph/layout/compute-col-width.js +2 -1
  37. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  38. package/cjs/scenegraph/layout/update-height.js +2 -2
  39. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  40. package/cjs/scenegraph/scenegraph.js +10 -3
  41. package/cjs/scenegraph/scenegraph.js.map +1 -1
  42. package/cjs/scenegraph/utils/text-icon-layout.js +4 -4
  43. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  44. package/cjs/scenegraph/utils/text-measure.js +3 -1
  45. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  46. package/cjs/state/cell-move/index.js +2 -1
  47. package/cjs/state/cell-move/index.js.map +1 -1
  48. package/cjs/state/checkbox/checkbox.d.ts +1 -0
  49. package/cjs/state/checkbox/checkbox.js +12 -2
  50. package/cjs/state/checkbox/checkbox.js.map +1 -1
  51. package/cjs/state/radio/radio.d.ts +1 -0
  52. package/cjs/state/radio/radio.js +13 -2
  53. package/cjs/state/radio/radio.js.map +1 -1
  54. package/cjs/state/state.d.ts +1 -0
  55. package/cjs/state/state.js +5 -1
  56. package/cjs/state/state.js.map +1 -1
  57. package/cjs/ts-types/base-table.js.map +1 -1
  58. package/cjs/ts-types/common.d.ts +6 -0
  59. package/cjs/ts-types/common.js.map +1 -1
  60. package/cjs/ts-types/events.d.ts +4 -1
  61. package/cjs/ts-types/events.js.map +1 -1
  62. package/cjs/vrender.js.map +1 -1
  63. package/dist/vtable.js +239 -70
  64. package/dist/vtable.min.js +2 -2
  65. package/es/ListTable.js +6 -11
  66. package/es/ListTable.js.map +1 -1
  67. package/es/core/BaseTable.js +24 -5
  68. package/es/core/BaseTable.js.map +1 -1
  69. package/es/core/TABLE_EVENT_TYPE.d.ts +1 -0
  70. package/es/core/TABLE_EVENT_TYPE.js +1 -0
  71. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  72. package/es/edit/edit-manager.js +8 -7
  73. package/es/edit/edit-manager.js.map +1 -1
  74. package/es/event/listener/scroll-bar.js +6 -2
  75. package/es/event/listener/scroll-bar.js.map +1 -1
  76. package/es/event/listener/table-group.js +29 -19
  77. package/es/event/listener/table-group.js.map +1 -1
  78. package/es/event/util.d.ts +2 -0
  79. package/es/event/util.js +12 -0
  80. package/es/event/util.js.map +1 -1
  81. package/es/header-helper/header-helper.d.ts +1 -0
  82. package/es/header-helper/header-helper.js +8 -0
  83. package/es/header-helper/header-helper.js.map +1 -1
  84. package/es/index.d.ts +1 -1
  85. package/es/index.js +1 -1
  86. package/es/index.js.map +1 -1
  87. package/es/layout/pivot-header-layout.d.ts +1 -0
  88. package/es/layout/pivot-header-layout.js +19 -3
  89. package/es/layout/pivot-header-layout.js.map +1 -1
  90. package/es/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
  91. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  92. package/es/scenegraph/graphic/group.d.ts +1 -1
  93. package/es/scenegraph/graphic/group.js.map +1 -1
  94. package/es/scenegraph/group-creater/cell-type/text-cell.js +1 -1
  95. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  96. package/es/scenegraph/group-creater/column-helper.js +1 -1
  97. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  98. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  99. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  100. package/es/scenegraph/layout/compute-col-width.js +2 -1
  101. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  102. package/es/scenegraph/layout/update-height.js +2 -2
  103. package/es/scenegraph/layout/update-height.js.map +1 -1
  104. package/es/scenegraph/scenegraph.js +10 -3
  105. package/es/scenegraph/scenegraph.js.map +1 -1
  106. package/es/scenegraph/utils/text-icon-layout.js +4 -4
  107. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  108. package/es/scenegraph/utils/text-measure.js +3 -1
  109. package/es/scenegraph/utils/text-measure.js.map +1 -1
  110. package/es/state/cell-move/index.js +2 -1
  111. package/es/state/cell-move/index.js.map +1 -1
  112. package/es/state/checkbox/checkbox.d.ts +1 -0
  113. package/es/state/checkbox/checkbox.js +10 -0
  114. package/es/state/checkbox/checkbox.js.map +1 -1
  115. package/es/state/radio/radio.d.ts +1 -0
  116. package/es/state/radio/radio.js +10 -0
  117. package/es/state/radio/radio.js.map +1 -1
  118. package/es/state/state.d.ts +1 -0
  119. package/es/state/state.js +7 -3
  120. package/es/state/state.js.map +1 -1
  121. package/es/ts-types/base-table.js.map +1 -1
  122. package/es/ts-types/common.d.ts +6 -0
  123. package/es/ts-types/common.js.map +1 -1
  124. package/es/ts-types/events.d.ts +4 -1
  125. package/es/ts-types/events.js.map +1 -1
  126. package/es/vrender.js.map +1 -1
  127. package/package.json +4 -4
package/dist/vtable.js CHANGED
@@ -23294,6 +23294,7 @@
23294
23294
  MOUSEDOWN_CELL: 'mousedown_cell',
23295
23295
  MOUSEUP_CELL: 'mouseup_cell',
23296
23296
  SELECTED_CELL: 'selected_cell',
23297
+ SELECTED_CLEAR: 'selected_clear',
23297
23298
  KEYDOWN: 'keydown',
23298
23299
  MOUSEENTER_TABLE: 'mouseenter_table',
23299
23300
  MOUSELEAVE_TABLE: 'mouseleave_table',
@@ -38478,7 +38479,12 @@
38478
38479
  let contentHeight;
38479
38480
  if (textMark instanceof Text$1) {
38480
38481
  oldTextHeight = textMark.AABBBounds.height();
38481
- textMark.setAttribute('maxLineWidth', distWidth - leftIconWidth - rightIconHeight - (padding[1] + padding[3]) - (textMark.attribute.dx ?? 0));
38482
+ textMark.setAttribute('maxLineWidth', distWidth -
38483
+ leftIconWidth -
38484
+ rightIconHeight -
38485
+ (padding[1] + padding[3]) -
38486
+ (textMark.attribute.dx ?? 0) -
38487
+ (scene.table.theme._contentOffset ?? 0));
38482
38488
  contentHeight = textMark.AABBBounds.height();
38483
38489
  }
38484
38490
  else if (textMark instanceof RichText) {
@@ -38516,7 +38522,7 @@
38516
38522
  });
38517
38523
  if (autoRowHeight) {
38518
38524
  let newHeight = Math.max(leftIconHeight, contentHeight, rightIconHeight);
38519
- if (isCellHeightUpdate(scene, cellGroup, newHeight + padding[0] + padding[2], oldCellHeight)) {
38525
+ if (isCellHeightUpdate(scene, cellGroup, Math.round(newHeight + padding[0] + padding[2]), oldCellHeight)) {
38520
38526
  return true;
38521
38527
  }
38522
38528
  newHeight = (cellGroup.contentHeight ?? cellHeight) - (padding[0] + padding[2]);
@@ -38697,7 +38703,7 @@
38697
38703
  }
38698
38704
  icons = table.getCellIcons(iconCol, iconRow);
38699
38705
  }
38700
- createCellContent(cellGroup, icons, textStr, padding, autoColWidth, autoRowHeight, autoWrapText, typeof lineClamp === 'number' ? lineClamp : undefined, cellWidth, cellHeight, textAlign, textBaseline, table, cellTheme, range);
38706
+ createCellContent(cellGroup, icons, textStr, padding, autoColWidth, autoRowHeight, autoWrapText, typeof lineClamp === 'number' ? lineClamp : undefined, cellGroup.attribute.width, cellGroup.attribute.height, textAlign, textBaseline, table, cellTheme, range);
38701
38707
  if (cellTheme?._vtable?.marked) {
38702
38708
  const mark = createArc({
38703
38709
  x: cellGroup.attribute.width,
@@ -40855,7 +40861,10 @@
40855
40861
  ignoreBuf: true
40856
40862
  });
40857
40863
  function measureTextBounds(attribute) {
40858
- utilTextMark.setAttributes(attribute);
40864
+ utilTextMark.initAttributes({
40865
+ ...attribute,
40866
+ ignoreBuf: true
40867
+ });
40859
40868
  return utilTextMark.AABBBounds;
40860
40869
  }
40861
40870
 
@@ -41493,9 +41502,9 @@
41493
41502
  rowStart = row + 1;
41494
41503
  rowEnd = Math.min(scene.proxy.rowEnd, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);
41495
41504
  }
41496
- for (let rowIndex = rowStart; rowIndex <= rowEnd; rowIndex++) {
41497
- for (let colIndex = 0; colIndex < scene.table.colCount; colIndex++) {
41498
- const cellGroup = scene.getCell(colIndex, rowIndex);
41505
+ for (let colIndex = 0; colIndex < scene.table.colCount; colIndex++) {
41506
+ for (let rowIndex = rowStart; rowIndex <= rowEnd; rowIndex++) {
41507
+ const cellGroup = scene.highPerformanceGetCell(colIndex, rowIndex);
41499
41508
  if (cellGroup.role === 'cell') {
41500
41509
  cellGroup.setAttribute('y', cellGroup.attribute.y + detaY);
41501
41510
  }
@@ -44036,6 +44045,7 @@
44036
44045
  if (stroke &&
44037
44046
  Array.isArray(lineDash) &&
44038
44047
  lineDash.length &&
44048
+ lineDash[0].length &&
44039
44049
  !Array.isArray(strokeArrayColor) &&
44040
44050
  !Array.isArray(strokeArrayWidth)) {
44041
44051
  doFillOrStroke.doStroke = false;
@@ -44052,7 +44062,7 @@
44052
44062
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
44053
44063
  const { lineDash = groupAttribute.lineDash, stroke = groupAttribute.stroke, strokeArrayColor = groupAttribute.strokeArrayColor, strokeArrayWidth = groupAttribute.strokeArrayWidth, lineWidth = groupAttribute.lineWidth } = group.attribute;
44054
44064
  if (!stroke ||
44055
- !(Array.isArray(lineDash) && lineDash.length) ||
44065
+ !(Array.isArray(lineDash) && lineDash.length && lineDash[0].length) ||
44056
44066
  Array.isArray(strokeArrayColor) ||
44057
44067
  Array.isArray(strokeArrayWidth)) {
44058
44068
  return;
@@ -44874,6 +44884,9 @@
44874
44884
  else if (maxWidth > colMaxWidth) {
44875
44885
  return colMaxWidth;
44876
44886
  }
44887
+ else if (maxWidth <= 0) {
44888
+ maxWidth = table.defaultColWidth;
44889
+ }
44877
44890
  return maxWidth;
44878
44891
  }
44879
44892
  function computeCustomRenderWidth(col, row, table) {
@@ -45214,8 +45227,8 @@
45214
45227
  y += rangeHeight;
45215
45228
  }
45216
45229
  else {
45217
- columnGroup.updateColumnHeight(cellGroup.attribute.height);
45218
- y += cellGroup.attribute.height;
45230
+ columnGroup.updateColumnHeight(cellHeight);
45231
+ y += cellHeight;
45219
45232
  }
45220
45233
  }
45221
45234
  if (rowLimit && row > rowLimit) {
@@ -46375,14 +46388,18 @@
46375
46388
  constructor(table) {
46376
46389
  this.table = table;
46377
46390
  if (this.table.isPivotChart()) {
46378
- this.rowLimit = 100;
46379
- this.colLimit = 100;
46391
+ this.rowLimit = Math.max(100, Math.ceil((table.tableNoFrameHeight * 2) / table.defaultRowHeight));
46392
+ this.colLimit = Math.max(100, Math.ceil((table.tableNoFrameWidth * 2) / table.defaultColWidth));
46380
46393
  }
46381
46394
  else if (this.table.heightMode === 'autoHeight') {
46382
- this.rowLimit = 100;
46395
+ this.rowLimit = Math.max(100, Math.ceil((table.tableNoFrameHeight * 2) / table.defaultRowHeight));
46383
46396
  }
46384
46397
  else if (this.table.widthMode === 'autoWidth') {
46385
- this.colLimit = 100;
46398
+ this.colLimit = Math.max(100, Math.ceil((table.tableNoFrameWidth * 2) / table.defaultColWidth));
46399
+ }
46400
+ else {
46401
+ this.rowLimit = Math.max(200, Math.ceil((table.tableNoFrameHeight * 2) / table.defaultRowHeight));
46402
+ this.colLimit = Math.max(100, Math.ceil((table.tableNoFrameWidth * 2) / table.defaultColWidth));
46386
46403
  }
46387
46404
  if (this.table.internalProps.transpose) {
46388
46405
  this.mode = 'row';
@@ -46799,10 +46816,10 @@
46799
46816
  }
46800
46817
  const prev = cacheCellGroup._prev;
46801
46818
  const next = cacheCellGroup._next;
46802
- if (cacheCellGroup.row > row && prev && prev.row === row - 1) {
46819
+ if (cacheCellGroup.row > row && prev && prev.row === cacheCellGroup.row - 1) {
46803
46820
  return getCellByCache(prev, row);
46804
46821
  }
46805
- if (cacheCellGroup.row < row && next && next.row === row + 1) {
46822
+ if (cacheCellGroup.row < row && next && next.row === cacheCellGroup.row + 1) {
46806
46823
  return getCellByCache(next, row);
46807
46824
  }
46808
46825
  return null;
@@ -50080,26 +50097,29 @@
50080
50097
  getResizeColAt(abstractX, abstractY, cellGroup, offset = ResizeColumnHotSpotSize / 2) {
50081
50098
  let cell;
50082
50099
  if (!cellGroup) {
50083
- cell = this.table.getCellAt(abstractX - offset, abstractY);
50084
- }
50085
- else {
50086
- if (abstractX < cellGroup.globalAABBBounds.x1 + offset) {
50087
- cell = { col: cellGroup.col - 1, row: cellGroup.row, x: cellGroup.globalAABBBounds.x1 };
50088
- }
50089
- else if (cellGroup.globalAABBBounds.x2 - offset < abstractX) {
50090
- cell = { col: cellGroup.col, row: cellGroup.row, x: cellGroup.globalAABBBounds.x2 };
50091
- }
50092
- if (cell &&
50093
- this.table.rightFrozenColCount > 0 &&
50094
- cell.col === this.table.colCount - this.table.rightFrozenColCount - 1 &&
50095
- this.table.tableNoFrameWidth -
50096
- this.table.getFrozenColsWidth() -
50097
- this.table.getRightFrozenColsWidth() +
50098
- this.table.scrollLeft <
50099
- this.bodyGroup.attribute.width) {
50100
- cell.col = cell.col + 1;
50101
- cell.rightFrozen = true;
50100
+ const drawRange = this.table.getDrawRange();
50101
+ if (abstractY >= drawRange.top && abstractY <= drawRange.bottom) {
50102
+ cell = this.table.getCellAt(abstractX - offset, abstractY);
50103
+ return cell;
50102
50104
  }
50105
+ return { col: -1, row: -1 };
50106
+ }
50107
+ if (abstractX < cellGroup.globalAABBBounds.x1 + offset) {
50108
+ cell = { col: cellGroup.col - 1, row: cellGroup.row, x: cellGroup.globalAABBBounds.x1 };
50109
+ }
50110
+ else if (cellGroup.globalAABBBounds.x2 - offset < abstractX) {
50111
+ cell = { col: cellGroup.col, row: cellGroup.row, x: cellGroup.globalAABBBounds.x2 };
50112
+ }
50113
+ if (cell &&
50114
+ this.table.rightFrozenColCount > 0 &&
50115
+ cell.col === this.table.colCount - this.table.rightFrozenColCount - 1 &&
50116
+ this.table.tableNoFrameWidth -
50117
+ this.table.getFrozenColsWidth() -
50118
+ this.table.getRightFrozenColsWidth() +
50119
+ this.table.scrollLeft <
50120
+ this.bodyGroup.attribute.width) {
50121
+ cell.col = cell.col + 1;
50122
+ cell.rightFrozen = true;
50103
50123
  }
50104
50124
  if (cell) {
50105
50125
  return cell;
@@ -51112,6 +51132,7 @@
51112
51132
  if (!state.table.transpose &&
51113
51133
  state.table.internalProps.layoutMap.isSeriesNumberInBody(state.columnMove.colSource, state.columnMove.rowSource)) {
51114
51134
  state.table.changeRecordOrder(moveContext.sourceIndex, moveContext.targetIndex);
51135
+ state.changeCheckboxAndRadioOrder(moveContext.sourceIndex, moveContext.targetIndex);
51115
51136
  }
51116
51137
  if (moveContext.moveType === 'column') {
51117
51138
  clearWidthsAndHeightsCache(colMin, colMax, 0, -1, state.table);
@@ -51524,6 +51545,22 @@
51524
51545
  radio?._handlePointerUp();
51525
51546
  }
51526
51547
  }
51548
+ function changeRadioOrder(sourceIndex, targetIndex, state) {
51549
+ const { radioState, table } = state;
51550
+ if (table.internalProps.transpose) {
51551
+ sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);
51552
+ targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);
51553
+ }
51554
+ else {
51555
+ sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);
51556
+ targetIndex = table.getRecordShowIndexByCell(0, targetIndex);
51557
+ }
51558
+ if (sourceIndex !== targetIndex) {
51559
+ const sourceRecord = radioState[sourceIndex];
51560
+ radioState[sourceIndex] = radioState[targetIndex];
51561
+ radioState[targetIndex] = sourceRecord;
51562
+ }
51563
+ }
51527
51564
 
51528
51565
  function setCheckedState(col, row, field, checked, state) {
51529
51566
  const recordIndex = state.table.getRecordShowIndexByCell(col, row);
@@ -51705,6 +51742,22 @@
51705
51742
  }
51706
51743
  }
51707
51744
  }
51745
+ function changeCheckboxOrder(sourceIndex, targetIndex, state) {
51746
+ const { checkedState, table } = state;
51747
+ if (table.internalProps.transpose) {
51748
+ sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);
51749
+ targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);
51750
+ }
51751
+ else {
51752
+ sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);
51753
+ targetIndex = table.getRecordShowIndexByCell(0, targetIndex);
51754
+ }
51755
+ if (sourceIndex !== targetIndex) {
51756
+ const sourceRecord = checkedState[sourceIndex];
51757
+ checkedState[sourceIndex] = checkedState[targetIndex];
51758
+ checkedState[targetIndex] = sourceRecord;
51759
+ }
51760
+ }
51708
51761
 
51709
51762
  function updateResizeRow(xInTable, yInTable, state) {
51710
51763
  xInTable = Math.ceil(xInTable);
@@ -52190,6 +52243,11 @@
52190
52243
  row: lastRow
52191
52244
  });
52192
52245
  }
52246
+ else if (fireListener) {
52247
+ if (this.select.ranges.length === 0) {
52248
+ this.table.fireListeners(TABLE_EVENT_TYPE.SELECTED_CLEAR, {});
52249
+ }
52250
+ }
52193
52251
  }
52194
52252
  endResizeCol() {
52195
52253
  setTimeout(() => {
@@ -52705,6 +52763,14 @@
52705
52763
  syncRadioState(col, row, field, radioType, indexInCell, isChecked) {
52706
52764
  return syncRadioState(col, row, field, radioType, indexInCell, isChecked, this);
52707
52765
  }
52766
+ changeCheckboxAndRadioOrder(sourceIndex, targetIndex) {
52767
+ if (this.checkedState.length) {
52768
+ changeCheckboxOrder(sourceIndex, targetIndex, this);
52769
+ }
52770
+ if (this.radioState.length) {
52771
+ changeRadioOrder(sourceIndex, targetIndex, this);
52772
+ }
52773
+ }
52708
52774
  }
52709
52775
 
52710
52776
  function bindMediaClick(table) {
@@ -52902,6 +52968,7 @@
52902
52968
  row: targetCell.row,
52903
52969
  event: e,
52904
52970
  targetCell,
52971
+ mergeInfo: getMergeCellInfo(targetCell),
52905
52972
  target: e.target
52906
52973
  };
52907
52974
  }
@@ -52916,6 +52983,20 @@
52916
52983
  }
52917
52984
  return null;
52918
52985
  }
52986
+ function getMergeCellInfo(cellGroup) {
52987
+ if (isValid$3(cellGroup.mergeStartCol) &&
52988
+ isValid$3(cellGroup.mergeStartRow) &&
52989
+ isValid$3(cellGroup.mergeEndCol) &&
52990
+ isValid$3(cellGroup.mergeEndRow)) {
52991
+ return {
52992
+ colStart: cellGroup.mergeStartCol,
52993
+ colEnd: cellGroup.mergeEndCol,
52994
+ rowStart: cellGroup.mergeStartRow,
52995
+ rowEnd: cellGroup.mergeEndRow
52996
+ };
52997
+ }
52998
+ return undefined;
52999
+ }
52919
53000
  const regIndexReg = /radio-\d+-\d+-(\d+)/;
52920
53001
 
52921
53002
  function bindTableGroupListener(eventManager) {
@@ -52984,7 +53065,8 @@
52984
53065
  }),
52985
53066
  scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
52986
53067
  event: e.nativeEvent,
52987
- target: eventArgsSet?.eventArgs?.target
53068
+ target: eventArgsSet?.eventArgs?.target,
53069
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
52988
53070
  });
52989
53071
  }
52990
53072
  }
@@ -53013,7 +53095,8 @@
53013
53095
  funcType: icon.attribute.funcType
53014
53096
  }
53015
53097
  : undefined,
53016
- target: eventArgsSet?.eventArgs?.target
53098
+ target: eventArgsSet?.eventArgs?.target,
53099
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
53017
53100
  });
53018
53101
  }
53019
53102
  });
@@ -53231,7 +53314,8 @@
53231
53314
  col: eventArgsSet.eventArgs.col,
53232
53315
  row: eventArgsSet.eventArgs.row,
53233
53316
  event: e.nativeEvent,
53234
- target: eventArgsSet?.eventArgs?.target
53317
+ target: eventArgsSet?.eventArgs?.target,
53318
+ mergeCellInfo: eventArgsSet.eventArgs.mergeInfo
53235
53319
  });
53236
53320
  }
53237
53321
  }
@@ -53276,7 +53360,8 @@
53276
53360
  col: eventArgsSet.eventArgs.target.col,
53277
53361
  row: eventArgsSet.eventArgs.target.row,
53278
53362
  scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
53279
- target: eventArgsSet?.eventArgs?.target
53363
+ target: eventArgsSet?.eventArgs?.target,
53364
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
53280
53365
  };
53281
53366
  cellsEvent.cells = table.getSelectedCellInfos();
53282
53367
  table.fireListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END, cellsEvent);
@@ -53293,7 +53378,8 @@
53293
53378
  col: eventArgsSet.eventArgs.col,
53294
53379
  row: eventArgsSet.eventArgs.row,
53295
53380
  event: e.nativeEvent,
53296
- target: eventArgsSet?.eventArgs?.target
53381
+ target: eventArgsSet?.eventArgs?.target,
53382
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
53297
53383
  });
53298
53384
  }
53299
53385
  }
@@ -53325,7 +53411,8 @@
53325
53411
  funcType: icon.attribute.funcType
53326
53412
  }
53327
53413
  : undefined,
53328
- target: eventArgsSet?.eventArgs?.target
53414
+ target: eventArgsSet?.eventArgs?.target,
53415
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
53329
53416
  };
53330
53417
  if (cellInRanges(table.stateManager.select.ranges, col, row)) {
53331
53418
  cellsEvent.cells = table.getSelectedCellInfos();
@@ -53381,7 +53468,8 @@
53381
53468
  funcType: icon.attribute.funcType
53382
53469
  }
53383
53470
  : undefined,
53384
- target: eventArgsSet?.eventArgs?.target
53471
+ target: eventArgsSet?.eventArgs?.target,
53472
+ mergeCellInfo: eventArgsSet.eventArgs?.mergeInfo
53385
53473
  };
53386
53474
  table.fireListeners(TABLE_EVENT_TYPE.CLICK_CELL, cellsEvent);
53387
53475
  }
@@ -53426,6 +53514,7 @@
53426
53514
  stateManager.updateInteractionState(InteractionState.default);
53427
53515
  eventManager.dealTableHover();
53428
53516
  eventManager.dealTableSelect();
53517
+ stateManager.endSelectCells();
53429
53518
  stateManager.updateCursor();
53430
53519
  table.scenegraph.updateChartState(null);
53431
53520
  }
@@ -53479,6 +53568,7 @@
53479
53568
  ...cellInfo,
53480
53569
  event: e.nativeEvent,
53481
53570
  target: eventArgsSet?.eventArgs?.target,
53571
+ mergeCellInfo: eventArgsSet?.eventArgs?.mergeInfo,
53482
53572
  checked: e.detail.checked
53483
53573
  };
53484
53574
  if (table.isHeader(col, row)) {
@@ -53568,6 +53658,7 @@
53568
53658
  ...cellInfo,
53569
53659
  event: e.nativeEvent,
53570
53660
  target: eventArgsSet?.eventArgs?.target,
53661
+ mergeCellInfo: eventArgsSet?.eventArgs?.mergeInfo,
53571
53662
  radioIndexInCell
53572
53663
  };
53573
53664
  table.fireListeners(TABLE_EVENT_TYPE.RADIO_STATE_CHANGE, cellsEvent);
@@ -53638,7 +53729,8 @@
53638
53729
  funcType: icon.attribute.funcType
53639
53730
  }
53640
53731
  : undefined,
53641
- target: eventArgsSet?.eventArgs?.target
53732
+ target: eventArgsSet?.eventArgs?.target,
53733
+ mergeCellInfo: eventArgsSet?.eventArgs?.mergeInfo
53642
53734
  };
53643
53735
  table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);
53644
53736
  }
@@ -53672,6 +53764,11 @@
53672
53764
  });
53673
53765
  scenegraph.component.vScrollBar.addEventListener('pointerdown', (e) => {
53674
53766
  e.stopPropagation();
53767
+ if (scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {
53768
+ scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
53769
+ event: e.nativeEvent
53770
+ });
53771
+ }
53675
53772
  });
53676
53773
  scenegraph.component.vScrollBar.addEventListener('scrollDown', (e) => {
53677
53774
  scenegraph.table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };
@@ -53709,6 +53806,11 @@
53709
53806
  });
53710
53807
  scenegraph.component.hScrollBar.addEventListener('pointerdown', (e) => {
53711
53808
  e.stopPropagation();
53809
+ if (scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {
53810
+ scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
53811
+ event: e.nativeEvent
53812
+ });
53813
+ }
53712
53814
  });
53713
53815
  scenegraph.component.hScrollBar.addEventListener('scrollDown', (e) => {
53714
53816
  scenegraph.table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };
@@ -56220,6 +56322,19 @@
56220
56322
  return CheckboxStyle;
56221
56323
  }
56222
56324
  }
56325
+ setTableColumnsEditor() {
56326
+ const setEditor = (colDefines, setColumns) => {
56327
+ colDefines.forEach((colDefine, index) => {
56328
+ if (colDefine.editor) {
56329
+ setColumns[index].editor = colDefine.editor;
56330
+ }
56331
+ if (colDefine.columns) {
56332
+ setEditor(colDefine.columns, setColumns[index].columns);
56333
+ }
56334
+ });
56335
+ };
56336
+ setEditor(this._table.options.columns, this._table.internalProps.columns);
56337
+ }
56223
56338
  }
56224
56339
 
56225
56340
  class BaseTooltip {
@@ -58255,7 +58370,7 @@
58255
58370
  return TABLE_EVENT_TYPE;
58256
58371
  }
58257
58372
  options;
58258
- version = "0.25.5";
58373
+ version = "0.25.6";
58259
58374
  pagination;
58260
58375
  id = `VTable${Date.now()}`;
58261
58376
  headerStyleCache;
@@ -58755,6 +58870,24 @@
58755
58870
  }
58756
58871
  getRowHeight(row) {
58757
58872
  if (isValid$3(this.rowHeightsMap.get(row))) {
58873
+ if (this.options.customConfig?._disableColumnAndRowSizeRound) {
58874
+ const height = this.rowHeightsMap.get(row);
58875
+ let heightRange;
58876
+ if (row < this.frozenRowCount) {
58877
+ heightRange = this.rowHeightsMap.getSumInRange(0, row);
58878
+ }
58879
+ else if (row >= this.rowCount - this.bottomFrozenRowCount) {
58880
+ heightRange = this.rowHeightsMap.getSumInRange(row, this.rowCount - 1);
58881
+ }
58882
+ else {
58883
+ heightRange = this.rowHeightsMap.getSumInRange(this.frozenRowCount, row);
58884
+ }
58885
+ heightRange = Number(heightRange.toFixed(2));
58886
+ if (Number.isInteger(heightRange)) {
58887
+ return Math.ceil(height);
58888
+ }
58889
+ return Math.floor(height);
58890
+ }
58758
58891
  return this.rowHeightsMap.get(row);
58759
58892
  }
58760
58893
  const defaultHeight = this.getDefaultRowHeight(row);
@@ -58793,7 +58926,7 @@
58793
58926
  return this.internalProps.defaultRowHeight;
58794
58927
  }
58795
58928
  _setRowHeight(row, height, clearCache) {
58796
- this.rowHeightsMap.put(row, Math.round(height));
58929
+ this.rowHeightsMap.put(row, this.options.customConfig?._disableColumnAndRowSizeRound ? height : Math.round(height));
58797
58930
  if (clearCache) {
58798
58931
  this._clearRowRangeHeightsMap(row);
58799
58932
  }
@@ -58825,6 +58958,24 @@
58825
58958
  }
58826
58959
  }
58827
58960
  else {
58961
+ if (this.options.customConfig?._disableColumnAndRowSizeRound) {
58962
+ const tempH = this.rowHeightsMap.getSumInRange(startRow, endRow);
58963
+ let heightRange;
58964
+ if (endRow < this.frozenRowCount) {
58965
+ heightRange = this.rowHeightsMap.getSumInRange(0, endRow);
58966
+ }
58967
+ else if (endRow >= this.rowCount - this.bottomFrozenRowCount) {
58968
+ heightRange = this.rowHeightsMap.getSumInRange(endRow, this.rowCount - 1);
58969
+ }
58970
+ else {
58971
+ heightRange = this.rowHeightsMap.getSumInRange(this.frozenRowCount, endRow);
58972
+ }
58973
+ heightRange = Number(heightRange.toFixed(2));
58974
+ if (Number.isInteger(heightRange)) {
58975
+ return Math.ceil(tempH);
58976
+ }
58977
+ return Math.floor(tempH);
58978
+ }
58828
58979
  h = this.rowHeightsMap.getSumInRange(startRow, endRow);
58829
58980
  }
58830
58981
  return Math.round(h);
@@ -63329,13 +63480,6 @@
63329
63480
  startEditCell(col, row) {
63330
63481
  const editor = this.table.getEditor(col, row);
63331
63482
  if (editor) {
63332
- if (!this.table.isHeader(col, row)) {
63333
- const range = this.table.getCellRange(col, row);
63334
- const isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;
63335
- if (isMerge) {
63336
- return;
63337
- }
63338
- }
63339
63483
  if (this.table.internalProps.layoutMap?.isAggregation?.(col, row)) {
63340
63484
  return;
63341
63485
  }
@@ -63383,7 +63527,16 @@
63383
63527
  if (!this.editingEditor.getValue) ;
63384
63528
  if (!this.editingEditor.validateValue || this.editingEditor.validateValue?.()) {
63385
63529
  const changedValue = this.editingEditor.getValue?.();
63386
- this.table.changeCellValue(this.editCell.col, this.editCell.row, changedValue);
63530
+ const range = this.table.getCellRange(this.editCell.col, this.editCell.row);
63531
+ const changedValues = [];
63532
+ for (let row = range.start.row; row <= range.end.row; row++) {
63533
+ const rowChangedValues = [];
63534
+ for (let col = range.start.col; col <= range.end.col; col++) {
63535
+ rowChangedValues.push(changedValue);
63536
+ }
63537
+ changedValues.push(rowChangedValues);
63538
+ }
63539
+ this.table.changeCellValues(range.start.col, range.start.row, changedValues);
63387
63540
  this.editingEditor.exit && (void 0);
63388
63541
  this.editingEditor.exit?.();
63389
63542
  this.editingEditor.onEnd?.();
@@ -63427,11 +63580,7 @@
63427
63580
  : options.header
63428
63581
  ? cloneDeepSpec(options.header)
63429
63582
  : [];
63430
- options.columns?.forEach((colDefine, index) => {
63431
- if (colDefine.editor) {
63432
- internalProps.columns[index].editor = colDefine.editor;
63433
- }
63434
- });
63583
+ this.internalProps.headerHelper.setTableColumnsEditor();
63435
63584
  this.showHeader = options.showHeader ?? true;
63436
63585
  this.transpose = options.transpose ?? false;
63437
63586
  if (Env.mode !== 'node') {
@@ -63476,11 +63625,7 @@
63476
63625
  updateColumns(columns) {
63477
63626
  const oldHoverState = { col: this.stateManager.hover.cellPos.col, row: this.stateManager.hover.cellPos.row };
63478
63627
  this.internalProps.columns = cloneDeepSpec(columns);
63479
- columns.forEach((colDefine, index) => {
63480
- if (colDefine.editor) {
63481
- this.internalProps.columns[index].editor = colDefine.editor;
63482
- }
63483
- });
63628
+ this.internalProps.headerHelper.setTableColumnsEditor();
63484
63629
  this.options.columns = columns;
63485
63630
  this.refreshHeader();
63486
63631
  this.scenegraph.clearCells();
@@ -63667,11 +63812,7 @@
63667
63812
  : options.header
63668
63813
  ? cloneDeepSpec(options.header)
63669
63814
  : [];
63670
- options.columns.forEach((colDefine, index) => {
63671
- if (colDefine.editor) {
63672
- internalProps.columns[index].editor = colDefine.editor;
63673
- }
63674
- });
63815
+ this.internalProps.headerHelper.setTableColumnsEditor();
63675
63816
  this.transpose = options.transpose ?? false;
63676
63817
  this.refreshHeader();
63677
63818
  if (internalProps.releaseList) {
@@ -64985,6 +65126,7 @@
64985
65126
  }
64986
65127
  this.handleRowSeriesNumber(table.internalProps.rowSeriesNumber);
64987
65128
  this.setColumnWidths();
65129
+ this.clearCellIds();
64988
65130
  }
64989
65131
  handleRowSeriesNumber(rowSeriesNumber) {
64990
65132
  if (rowSeriesNumber) {
@@ -65591,7 +65733,7 @@
65591
65733
  this.columnHeaderLevelCount = count;
65592
65734
  return;
65593
65735
  }
65594
- this.columnHeaderLevelCount = 0;
65736
+ this.columnHeaderLevelCount = !this.indicatorsAsCol ? 0 : this.hideIndicatorName ? 0 : 1;
65595
65737
  return;
65596
65738
  }
65597
65739
  resetRowHeaderLevelCount() {
@@ -67052,6 +67194,7 @@
67052
67194
  return o;
67053
67195
  }, {});
67054
67196
  this.setPagination(this.pagination);
67197
+ this.clearCellIds();
67055
67198
  }
67056
67199
  isSeriesNumberInHeader(col, row) {
67057
67200
  if (this.leftRowSeriesNumberColumnCount > 0 && col >= 0 && row >= 0 && col < this.leftRowSeriesNumberColumnCount) {
@@ -67135,6 +67278,32 @@
67135
67278
  const id = this.getCellId(col, row);
67136
67279
  this._headerObjectMap[id].title = value;
67137
67280
  }
67281
+ clearCellIds() {
67282
+ if (!this.showColumnHeader) {
67283
+ if (this.indicatorsAsCol && !this.hideIndicatorName) {
67284
+ const indicatorIndex = this.colDimensionKeys.indexOf(IndicatorDimensionKeyPlaceholder);
67285
+ this._columnHeaderCellIds = this._columnHeaderCellIds.splice(indicatorIndex, 1);
67286
+ }
67287
+ else {
67288
+ this._columnHeaderCellIds.splice(0, this._columnHeaderCellIds.length);
67289
+ }
67290
+ }
67291
+ if (!this.showRowHeader) {
67292
+ if (!this.indicatorsAsCol && !this.hideIndicatorName) {
67293
+ const indicatorIndex = this.rowDimensionKeys.indexOf(IndicatorDimensionKeyPlaceholder);
67294
+ this._rowHeaderCellIds_FULL.forEach((cellIds) => {
67295
+ const indicator = cellIds.splice(indicatorIndex, 1);
67296
+ cellIds.splice(0, cellIds.length);
67297
+ cellIds.push(indicator[0]);
67298
+ });
67299
+ }
67300
+ else {
67301
+ this._rowHeaderCellIds_FULL.forEach((cellIds) => {
67302
+ cellIds.splice(0, cellIds.length);
67303
+ });
67304
+ }
67305
+ }
67306
+ }
67138
67307
  }
67139
67308
  function scaleWholeRangeSize(count, bandwidth, paddingInner, paddingOuter) {
67140
67309
  if (paddingInner === 1) {
@@ -70921,7 +71090,7 @@
70921
71090
  }
70922
71091
 
70923
71092
  registerForVrender();
70924
- const version = "0.25.5";
71093
+ const version = "0.25.6";
70925
71094
  function getIcons() {
70926
71095
  return get$2();
70927
71096
  }