@visactor/vtable 1.1.3-alpha.2 → 1.2.0-alpha.1

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 (123) hide show
  1. package/cjs/core/BaseTable.d.ts +1 -0
  2. package/cjs/core/BaseTable.js +6 -3
  3. package/cjs/core/BaseTable.js.map +1 -1
  4. package/cjs/event/util.d.ts +1 -0
  5. package/cjs/event/util.js +3 -2
  6. package/cjs/event/util.js.map +1 -1
  7. package/cjs/index.d.ts +1 -1
  8. package/cjs/index.js +1 -1
  9. package/cjs/index.js.map +1 -1
  10. package/cjs/plugins/custom-cell-style.d.ts +1 -0
  11. package/cjs/plugins/custom-cell-style.js +6 -2
  12. package/cjs/plugins/custom-cell-style.js.map +1 -1
  13. package/cjs/scenegraph/animation/appear.d.ts +2 -0
  14. package/cjs/scenegraph/animation/appear.js +26 -0
  15. package/cjs/scenegraph/animation/appear.js.map +1 -0
  16. package/cjs/scenegraph/component/custom.d.ts +5 -2
  17. package/cjs/scenegraph/component/custom.js +36 -8
  18. package/cjs/scenegraph/component/custom.js.map +1 -1
  19. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +33 -22
  20. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  21. package/cjs/scenegraph/group-creater/cell-helper.js +6 -5
  22. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  23. package/cjs/scenegraph/group-creater/column-helper.js +1 -1
  24. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  25. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  26. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  27. package/cjs/scenegraph/layout/compute-row-height.js +1 -1
  28. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  29. package/cjs/scenegraph/layout/update-height.js +13 -3
  30. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  31. package/cjs/scenegraph/layout/update-width.js +13 -3
  32. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  33. package/cjs/scenegraph/scenegraph.js +8 -5
  34. package/cjs/scenegraph/scenegraph.js.map +1 -1
  35. package/cjs/scenegraph/utils/break-string.d.ts +4 -1
  36. package/cjs/scenegraph/utils/break-string.js +8 -4
  37. package/cjs/scenegraph/utils/break-string.js.map +1 -1
  38. package/cjs/scenegraph/utils/text-icon-layout.js +4 -2
  39. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  40. package/cjs/state/select/is-cell-select-highlight.d.ts +5 -0
  41. package/cjs/state/select/is-cell-select-highlight.js +51 -0
  42. package/cjs/state/select/is-cell-select-highlight.js.map +1 -0
  43. package/cjs/state/select/update-position.js +10 -5
  44. package/cjs/state/select/update-position.js.map +1 -1
  45. package/cjs/state/state.js +4 -3
  46. package/cjs/state/state.js.map +1 -1
  47. package/cjs/themes/DEFAULT.js +0 -2
  48. package/cjs/themes/DEFAULT.js.map +1 -1
  49. package/cjs/themes/theme.js +37 -1
  50. package/cjs/themes/theme.js.map +1 -1
  51. package/cjs/ts-types/animation/appear.d.ts +6 -0
  52. package/cjs/ts-types/animation/appear.js +6 -0
  53. package/cjs/ts-types/animation/appear.js.map +1 -0
  54. package/cjs/ts-types/base-table.d.ts +4 -0
  55. package/cjs/ts-types/base-table.js.map +1 -1
  56. package/cjs/ts-types/table-engine.d.ts +5 -1
  57. package/cjs/ts-types/table-engine.js.map +1 -1
  58. package/cjs/ts-types/theme.d.ts +6 -0
  59. package/cjs/ts-types/theme.js.map +1 -1
  60. package/cjs/vrender.js.map +1 -1
  61. package/dist/vtable.js +428 -96
  62. package/dist/vtable.min.js +2 -2
  63. package/es/core/BaseTable.d.ts +1 -0
  64. package/es/core/BaseTable.js +6 -3
  65. package/es/core/BaseTable.js.map +1 -1
  66. package/es/event/util.d.ts +1 -0
  67. package/es/event/util.js +1 -1
  68. package/es/event/util.js.map +1 -1
  69. package/es/index.d.ts +1 -1
  70. package/es/index.js +1 -1
  71. package/es/index.js.map +1 -1
  72. package/es/plugins/custom-cell-style.d.ts +1 -0
  73. package/es/plugins/custom-cell-style.js +6 -2
  74. package/es/plugins/custom-cell-style.js.map +1 -1
  75. package/es/scenegraph/animation/appear.d.ts +2 -0
  76. package/es/scenegraph/animation/appear.js +20 -0
  77. package/es/scenegraph/animation/appear.js.map +1 -0
  78. package/es/scenegraph/component/custom.d.ts +5 -2
  79. package/es/scenegraph/component/custom.js +38 -4
  80. package/es/scenegraph/component/custom.js.map +1 -1
  81. package/es/scenegraph/graphic/contributions/group-contribution-render.js +34 -21
  82. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  83. package/es/scenegraph/group-creater/cell-helper.js +5 -4
  84. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  85. package/es/scenegraph/group-creater/column-helper.js +1 -1
  86. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  87. package/es/scenegraph/layout/compute-col-width.js +2 -2
  88. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  89. package/es/scenegraph/layout/compute-row-height.js +1 -1
  90. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  91. package/es/scenegraph/layout/update-height.js +13 -4
  92. package/es/scenegraph/layout/update-height.js.map +1 -1
  93. package/es/scenegraph/layout/update-width.js +13 -4
  94. package/es/scenegraph/layout/update-width.js.map +1 -1
  95. package/es/scenegraph/scenegraph.js +9 -5
  96. package/es/scenegraph/scenegraph.js.map +1 -1
  97. package/es/scenegraph/utils/break-string.d.ts +4 -1
  98. package/es/scenegraph/utils/break-string.js +9 -3
  99. package/es/scenegraph/utils/break-string.js.map +1 -1
  100. package/es/scenegraph/utils/text-icon-layout.js +4 -2
  101. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  102. package/es/state/select/is-cell-select-highlight.d.ts +5 -0
  103. package/es/state/select/is-cell-select-highlight.js +46 -0
  104. package/es/state/select/is-cell-select-highlight.js.map +1 -0
  105. package/es/state/select/update-position.js +10 -5
  106. package/es/state/select/update-position.js.map +1 -1
  107. package/es/state/state.js +4 -3
  108. package/es/state/state.js.map +1 -1
  109. package/es/themes/DEFAULT.js +0 -2
  110. package/es/themes/DEFAULT.js.map +1 -1
  111. package/es/themes/theme.js +33 -1
  112. package/es/themes/theme.js.map +1 -1
  113. package/es/ts-types/animation/appear.d.ts +6 -0
  114. package/es/ts-types/animation/appear.js +2 -0
  115. package/es/ts-types/animation/appear.js.map +1 -0
  116. package/es/ts-types/base-table.d.ts +4 -0
  117. package/es/ts-types/base-table.js.map +1 -1
  118. package/es/ts-types/table-engine.d.ts +5 -1
  119. package/es/ts-types/table-engine.js.map +1 -1
  120. package/es/ts-types/theme.d.ts +6 -0
  121. package/es/ts-types/theme.js.map +1 -1
  122. package/es/vrender.js.map +1 -1
  123. package/package.json +2 -2
package/dist/vtable.js CHANGED
@@ -24538,8 +24538,6 @@
24538
24538
  selectionStyle: {
24539
24539
  cellBgColor: 'rgba(0, 0, 255,0.1)',
24540
24540
  cellBorderLineWidth: 2,
24541
- inlineColumnBgColor: '#CCE0FF',
24542
- inlineRowBgColor: '#CCE0FF',
24543
24541
  cellBorderColor: '#0000ff'
24544
24542
  },
24545
24543
  tooltipStyle: {
@@ -24722,6 +24720,7 @@
24722
24720
  return getProp$1(obj, superTheme, ['_contentOffset']) ?? 0;
24723
24721
  }
24724
24722
  get defaultStyle() {
24723
+ const that = this;
24725
24724
  if (!this._defaultStyle) {
24726
24725
  const { obj, superTheme } = this.internalTheme;
24727
24726
  const defaultStyle = ingoreNoneValueMerge({}, superTheme.defaultStyle, obj.defaultStyle);
@@ -24780,6 +24779,29 @@
24780
24779
  }
24781
24780
  return undefined;
24782
24781
  },
24782
+ get select() {
24783
+ if (defaultStyle.select) {
24784
+ return {
24785
+ get inlineColumnBgColor() {
24786
+ return (defaultStyle.select?.inlineColumnBgColor ??
24787
+ that.selectionStyle?.inlineColumnBgColor ??
24788
+ (that.selectionStyle?.cellBgColor && typeof that.selectionStyle.cellBgColor === 'string'
24789
+ ? changeColor(that.selectionStyle.cellBgColor, 0.1, false)
24790
+ : undefined) ??
24791
+ undefined);
24792
+ },
24793
+ get inlineRowBgColor() {
24794
+ return (defaultStyle.select?.inlineRowBgColor ??
24795
+ that.selectionStyle.inlineRowBgColor ??
24796
+ (that.selectionStyle?.cellBgColor && typeof that.selectionStyle.cellBgColor === 'string'
24797
+ ? changeColor(that.selectionStyle.cellBgColor, 0.1, false)
24798
+ : undefined) ??
24799
+ undefined);
24800
+ }
24801
+ };
24802
+ }
24803
+ return undefined;
24804
+ },
24783
24805
  get padding() {
24784
24806
  return defaultStyle.padding ?? [10, 16, 10, 16];
24785
24807
  },
@@ -25123,6 +25145,12 @@
25123
25145
  },
25124
25146
  get cellBorderLineWidth() {
25125
25147
  return selectionStyle?.cellBorderLineWidth ?? 2;
25148
+ },
25149
+ get inlineColumnBgColor() {
25150
+ return selectionStyle?.inlineColumnBgColor;
25151
+ },
25152
+ get inlineRowBgColor() {
25153
+ return selectionStyle?.inlineRowBgColor;
25126
25154
  }
25127
25155
  };
25128
25156
  }
@@ -25165,9 +25193,10 @@
25165
25193
  return hasThemeProperty(obj, names) || hasThemeProperty(superTheme, names);
25166
25194
  }
25167
25195
  extends(obj) {
25168
- return new TableTheme(obj, this);
25196
+ return new TableTheme(obj, this.internalTheme.superTheme || this.internalTheme.obj);
25169
25197
  }
25170
25198
  getStyle(style) {
25199
+ const that = this;
25171
25200
  return {
25172
25201
  get fontSize() {
25173
25202
  return style.fontSize;
@@ -25223,6 +25252,26 @@
25223
25252
  }
25224
25253
  return undefined;
25225
25254
  },
25255
+ get select() {
25256
+ return {
25257
+ get inlineColumnBgColor() {
25258
+ return (style.select?.inlineColumnBgColor ??
25259
+ that.selectionStyle?.inlineColumnBgColor ??
25260
+ (that.selectionStyle?.cellBgColor && typeof that.selectionStyle.cellBgColor === 'string'
25261
+ ? changeColor(that.selectionStyle.cellBgColor, 0.1, false)
25262
+ : undefined) ??
25263
+ undefined);
25264
+ },
25265
+ get inlineRowBgColor() {
25266
+ return (style.select?.inlineRowBgColor ??
25267
+ that.selectionStyle.inlineRowBgColor ??
25268
+ (that.selectionStyle?.cellBgColor && typeof that.selectionStyle.cellBgColor === 'string'
25269
+ ? changeColor(that.selectionStyle.cellBgColor, 0.1, false)
25270
+ : undefined) ??
25271
+ undefined);
25272
+ }
25273
+ };
25274
+ },
25226
25275
  get frameStyle() {
25227
25276
  if (style.frameStyle) {
25228
25277
  return {
@@ -35176,7 +35225,55 @@
35176
35225
  }
35177
35226
  };
35178
35227
 
35179
- function dealWithCustom(customLayout, customRender, col, row, width, height, autoWidth, autoHeight, padding, table) {
35228
+ function getCellEventArgsSet(e) {
35229
+ const tableEvent = {
35230
+ abstractPos: {
35231
+ x: e.x,
35232
+ y: e.y
35233
+ }
35234
+ };
35235
+ const targetCell = getTargetCell(e.target);
35236
+ if (targetCell) {
35237
+ tableEvent.eventArgs = {
35238
+ col: targetCell.col,
35239
+ row: targetCell.row,
35240
+ event: e,
35241
+ targetCell,
35242
+ mergeInfo: getMergeCellInfo(targetCell),
35243
+ target: e.target
35244
+ };
35245
+ }
35246
+ return tableEvent;
35247
+ }
35248
+ function getTargetCell(target) {
35249
+ while (target && target.parent) {
35250
+ if (target.role === 'cell') {
35251
+ return target;
35252
+ }
35253
+ target = target.parent;
35254
+ }
35255
+ return null;
35256
+ }
35257
+ function getMergeCellInfo(cellGroup) {
35258
+ if (isValid$1(cellGroup.mergeStartCol) &&
35259
+ isValid$1(cellGroup.mergeStartRow) &&
35260
+ isValid$1(cellGroup.mergeEndCol) &&
35261
+ isValid$1(cellGroup.mergeEndRow)) {
35262
+ return {
35263
+ colStart: cellGroup.mergeStartCol,
35264
+ colEnd: cellGroup.mergeEndCol,
35265
+ rowStart: cellGroup.mergeStartRow,
35266
+ rowEnd: cellGroup.mergeEndRow
35267
+ };
35268
+ }
35269
+ return undefined;
35270
+ }
35271
+ const regIndexReg = /radio-\d+-\d+-(\d+)/;
35272
+
35273
+ const CUSTOM_MERGE_PRE_NAME = '_custom_';
35274
+ const CUSTOM_CONTAINER_NAME = 'custom-container';
35275
+ const CUSTOM_MERGE_CONTAINER_NAME = CUSTOM_MERGE_PRE_NAME + '_0';
35276
+ function dealWithCustom(customLayout, customRender, col, row, width, height, autoWidth, autoHeight, padding, range, table) {
35180
35277
  let renderDefault = true;
35181
35278
  let enableCellPadding = false;
35182
35279
  let expectedWidth;
@@ -35205,7 +35302,7 @@
35205
35302
  }
35206
35303
  if (customRenderObj.rootContainer instanceof Group$2) {
35207
35304
  elementsGroup = customRenderObj.rootContainer;
35208
- elementsGroup.name = 'custom-container';
35305
+ elementsGroup.name = CUSTOM_CONTAINER_NAME;
35209
35306
  }
35210
35307
  renderDefault = customRenderObj.renderDefault;
35211
35308
  enableCellPadding = customRenderObj.enableCellPadding;
@@ -35253,6 +35350,9 @@
35253
35350
  });
35254
35351
  }
35255
35352
  dealPercentCalc(elementsGroup, width, height);
35353
+ if (range && (range.start.col !== range.end.col || range.start.row !== range.end.row)) {
35354
+ bindAttributeUpdate(elementsGroup, col, row, 0);
35355
+ }
35256
35356
  return {
35257
35357
  elementsGroup,
35258
35358
  renderDefault
@@ -35268,7 +35368,7 @@
35268
35368
  stroke: false,
35269
35369
  pickable: false
35270
35370
  });
35271
- customGroup.name = 'custom-container';
35371
+ customGroup.name = CUSTOM_CONTAINER_NAME;
35272
35372
  const elementsAdjusted = adjustElementsPos(elements, width, height, value);
35273
35373
  elementsAdjusted.forEach(element => {
35274
35374
  if (element.clickable) {
@@ -35543,6 +35643,51 @@
35543
35643
  });
35544
35644
  }
35545
35645
  }
35646
+ function bindAttributeUpdate(group, col, row, index, preId) {
35647
+ if (!group) {
35648
+ return;
35649
+ }
35650
+ group.name = `${CUSTOM_MERGE_PRE_NAME}${preId ?? ''}_${index}`;
35651
+ group.onBeforeAttributeUpdate = onBeforeAttributeUpdate;
35652
+ if (group.type === 'group' && group.childrenCount) {
35653
+ group.forEachChildren((child, childIndex) => {
35654
+ bindAttributeUpdate(child, col, row, childIndex, (preId ?? '') + '_' + index);
35655
+ });
35656
+ }
35657
+ }
35658
+ function onBeforeAttributeUpdate(val, attribute) {
35659
+ const graphic = this;
35660
+ const cellGroup = getTargetCell(graphic);
35661
+ const table = cellGroup.stage.table;
35662
+ graphic.skipAttributeUpdate = true;
35663
+ const { mergeStartCol, mergeEndCol, mergeStartRow, mergeEndRow } = cellGroup;
35664
+ if (isValid$1(mergeStartCol) &&
35665
+ isValid$1(mergeEndCol) &&
35666
+ isValid$1(mergeStartRow) &&
35667
+ isValid$1(mergeEndRow) &&
35668
+ (mergeStartCol !== mergeEndCol || mergeStartRow !== mergeEndRow)) {
35669
+ for (let col = mergeStartCol; col <= mergeEndCol; col++) {
35670
+ for (let row = mergeStartRow; row <= mergeEndRow; row++) {
35671
+ if (col === cellGroup.col && row === cellGroup.row) {
35672
+ continue;
35673
+ }
35674
+ const cell = table.scenegraph.getCell(col, row);
35675
+ if (cell.role === 'cell') {
35676
+ const target = cell.getChildByName(graphic.name, true);
35677
+ if (!target || target.skipAttributeUpdate) {
35678
+ continue;
35679
+ }
35680
+ for (const key in val) {
35681
+ if (val[key] !== target.attribute[key] && key !== 'dx' && key !== 'dy') {
35682
+ target.setAttribute(key, val[key]);
35683
+ }
35684
+ }
35685
+ }
35686
+ }
35687
+ }
35688
+ graphic.skipAttributeUpdate = undefined;
35689
+ }
35690
+ }
35546
35691
 
35547
35692
  const icons = {};
35548
35693
  class IconCache {
@@ -37639,6 +37784,12 @@
37639
37784
  }
37640
37785
 
37641
37786
  function breakString(textStr, table) {
37787
+ let moreThanMaxCharacters = false;
37788
+ if (isString$2(textStr) && textStr.length > (table.options.maxCharactersNumber || 200)) {
37789
+ textStr = textStr.slice(0, table.options.maxCharactersNumber || 200);
37790
+ textStr += '\u2026';
37791
+ moreThanMaxCharacters = true;
37792
+ }
37642
37793
  let text;
37643
37794
  if (!table.internalProps.enableLineBreak && !table.options.customConfig?.multilinesForXTable) {
37644
37795
  text = [convertInternal(textStr)];
@@ -37649,7 +37800,10 @@
37649
37800
  while (text.length && text.length > 1 && !text[text.length - 1]) {
37650
37801
  text.pop();
37651
37802
  }
37652
- return text;
37803
+ return {
37804
+ text,
37805
+ moreThanMaxCharacters
37806
+ };
37653
37807
  }
37654
37808
 
37655
37809
  function createCellContent(cellGroup, icons, textStr, padding, autoColWidth, autoRowHeight, autoWrapText, lineClamp, cellWidth, cellHeight, textAlign, textBaseline, table, cellTheme, range) {
@@ -37670,7 +37824,7 @@
37670
37824
  let absoluteRightIconWidth = 0;
37671
37825
  if (!Array.isArray(icons) || icons.length === 0) {
37672
37826
  if (isValid$1(textStr)) {
37673
- const text = breakString(textStr, table);
37827
+ const { text, moreThanMaxCharacters } = breakString(textStr, table);
37674
37828
  const hierarchyOffset = range
37675
37829
  ? getHierarchyOffset(range.start.col, range.start.row, table)
37676
37830
  : getHierarchyOffset(cellGroup.col, cellGroup.row, table);
@@ -37685,6 +37839,7 @@
37685
37839
  }
37686
37840
  const attribute = {
37687
37841
  text: text.length === 1 ? text[0] : text,
37842
+ moreThanMaxCharacters,
37688
37843
  maxLineWidth: autoColWidth ? Infinity : cellWidth - (padding[1] + padding[3] + hierarchyOffset),
37689
37844
  textBaseline: 'top',
37690
37845
  autoWrapText,
@@ -37783,9 +37938,10 @@
37783
37938
  const hierarchyOffset = range
37784
37939
  ? getHierarchyOffset(range.start.col, range.start.row, table)
37785
37940
  : getHierarchyOffset(cellGroup.col, cellGroup.row, table);
37786
- const text = breakString(textStr, table);
37941
+ const { text, moreThanMaxCharacters } = breakString(textStr, table);
37787
37942
  const attribute = {
37788
37943
  text: text.length === 1 ? text[0] : text,
37944
+ moreThanMaxCharacters,
37789
37945
  maxLineWidth: autoColWidth
37790
37946
  ? Infinity
37791
37947
  : cellWidth - (padding[1] + padding[3]) - leftIconWidth - rightIconWidth - hierarchyOffset,
@@ -38847,7 +39003,7 @@
38847
39003
  customLayout = define?.customLayout;
38848
39004
  }
38849
39005
  if (customLayout || customRender) {
38850
- const customResult = dealWithCustom(customLayout, customRender, col, row, cellWidth, cellHeight, false, table.isAutoRowHeight(row), padding, table);
39006
+ const customResult = dealWithCustom(customLayout, customRender, col, row, cellWidth, cellHeight, false, table.isAutoRowHeight(row), padding, range, table);
38851
39007
  customElementsGroup = customResult.elementsGroup;
38852
39008
  renderDefault = customResult.renderDefault;
38853
39009
  }
@@ -38928,7 +39084,7 @@
38928
39084
  cellTheme.group.cornerRadius = getCellCornerRadius(col, row, table);
38929
39085
  }
38930
39086
  if (customLayout || customRender) {
38931
- customResult = dealWithCustom(customLayout, customRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], table);
39087
+ customResult = dealWithCustom(customLayout, customRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
38932
39088
  }
38933
39089
  }
38934
39090
  }
@@ -38973,7 +39129,7 @@
38973
39129
  const textMark = oldCellGroup.getChildByName('text');
38974
39130
  if (textMark) {
38975
39131
  const text = table.getCellValue(col, row);
38976
- const textArr = breakString(text, table);
39132
+ const { text: textArr, moreThanMaxCharacters } = breakString(text, table);
38977
39133
  const hierarchyOffset = getHierarchyOffset(col, row, table);
38978
39134
  const lineClamp = cellStyle.lineClamp;
38979
39135
  const padding = getQuadProps(getProp('padding', cellStyle, col, row, table)) ?? [0, 0, 0, 0];
@@ -38990,6 +39146,7 @@
38990
39146
  }
38991
39147
  const attribute = {
38992
39148
  text: textArr.length === 1 && !autoWrapText ? textArr[0] : textArr,
39149
+ moreThanMaxCharacters,
38993
39150
  maxLineWidth: cellWidth - (padding[1] + padding[3] + hierarchyOffset),
38994
39151
  textBaseline: 'top',
38995
39152
  autoWrapText,
@@ -39178,7 +39335,7 @@
39178
39335
  if (customMerge) {
39179
39336
  const { range: customMergeRange, text: customMergeText, style: customMergeStyle, customLayout: customMergeLayout, customRender: customMergeRender } = customMerge;
39180
39337
  if (customMergeLayout || customMergeRender) {
39181
- const customResult = dealWithCustom(customMergeLayout, customMergeRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], table);
39338
+ const customResult = dealWithCustom(customMergeLayout, customMergeRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], customMergeRange, table);
39182
39339
  const customElementsGroup = customResult.elementsGroup;
39183
39340
  if (cellGroup.childrenCount > 0 && customElementsGroup) {
39184
39341
  cellGroup.insertBefore(customElementsGroup, cellGroup.firstChild);
@@ -40930,7 +41087,7 @@
40930
41087
  }
40931
41088
  else {
40932
41089
  text = cellValue;
40933
- const lines = breakString(text, table);
41090
+ const lines = breakString(text, table).text;
40934
41091
  const cellWidth = table.getColsWidth(col, endCol);
40935
41092
  if (iconInlineFront.length || iconInlineEnd.length) {
40936
41093
  if (autoWrapText) {
@@ -41122,7 +41279,8 @@
41122
41279
  }
41123
41280
  else {
41124
41281
  let renderDefault = true;
41125
- const customContainer = cell.getChildByName('custom-container');
41282
+ const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) ||
41283
+ cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
41126
41284
  if (customContainer) {
41127
41285
  let customElementsGroup;
41128
41286
  customContainer.removeAllChild();
@@ -41134,7 +41292,8 @@
41134
41292
  continue;
41135
41293
  }
41136
41294
  const mergedCell = scene.getCell(col, mergeRow);
41137
- const customContainer = mergedCell.getChildByName('custom-container');
41295
+ const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) ||
41296
+ cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
41138
41297
  customContainer.removeAllChild();
41139
41298
  mergedCell.removeChild(customContainer);
41140
41299
  getCustomCellMergeCustom(col, mergeRow, mergedCell, scene.table);
@@ -41163,7 +41322,12 @@
41163
41322
  width = scene.table.getColsWidth(cell.mergeStartCol, cell.mergeEndCol);
41164
41323
  height = scene.table.getRowsHeight(cell.mergeStartRow, cell.mergeEndRow);
41165
41324
  }
41166
- const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.isAutoRowHeight(row), padding, scene.table);
41325
+ const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.isAutoRowHeight(row), padding, isMergeCellGroup(cell)
41326
+ ? {
41327
+ start: { col: cell.mergeStartCol, row: cell.mergeStartRow },
41328
+ end: { col: cell.mergeEndCol, row: cell.mergeEndRow }
41329
+ }
41330
+ : undefined, scene.table);
41167
41331
  customElementsGroup = customResult.elementsGroup;
41168
41332
  renderDefault = customResult.renderDefault;
41169
41333
  }
@@ -41442,7 +41606,8 @@
41442
41606
  }
41443
41607
  else {
41444
41608
  let renderDefault = true;
41445
- const customContainer = cell.getChildByName('custom-container');
41609
+ const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) ||
41610
+ cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
41446
41611
  if (customContainer) {
41447
41612
  let customElementsGroup;
41448
41613
  customContainer.removeAllChild();
@@ -41454,7 +41619,8 @@
41454
41619
  continue;
41455
41620
  }
41456
41621
  const mergedCell = scene.getCell(mergeCol, row);
41457
- const customContainer = mergedCell.getChildByName('custom-container');
41622
+ const customContainer = mergedCell.getChildByName(CUSTOM_CONTAINER_NAME) ||
41623
+ cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
41458
41624
  customContainer.removeAllChild();
41459
41625
  mergedCell.removeChild(customContainer);
41460
41626
  getCustomCellMergeCustom(mergeCol, row, mergedCell, scene.table);
@@ -41483,7 +41649,12 @@
41483
41649
  width = scene.table.getColsWidth(cellGroup.mergeStartCol, cellGroup.mergeEndCol);
41484
41650
  height = scene.table.getRowsHeight(cellGroup.mergeStartRow, cellGroup.mergeEndRow);
41485
41651
  }
41486
- const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.isAutoRowHeight(row), padding, scene.table);
41652
+ const customResult = dealWithCustom(customLayout, customRender, col, row, width, height, false, scene.table.isAutoRowHeight(row), padding, isMergeCellGroup(cellGroup)
41653
+ ? {
41654
+ start: { col: cellGroup.mergeStartCol, row: cellGroup.mergeStartRow },
41655
+ end: { col: cellGroup.mergeEndCol, row: cellGroup.mergeEndRow }
41656
+ }
41657
+ : undefined, scene.table);
41487
41658
  customElementsGroup = customResult.elementsGroup;
41488
41659
  renderDefault = customResult.renderDefault;
41489
41660
  isHeightChange = true;
@@ -43379,6 +43550,113 @@
43379
43550
  return hoverMode;
43380
43551
  }
43381
43552
 
43553
+ function getCellSelectColor(cellGroup, table) {
43554
+ let colorKey;
43555
+ if (cellGroup.role === 'cell' &&
43556
+ isValid$1(cellGroup.mergeStartCol) &&
43557
+ isValid$1(cellGroup.mergeStartRow) &&
43558
+ isValid$1(cellGroup.mergeEndCol) &&
43559
+ isValid$1(cellGroup.mergeEndRow)) {
43560
+ const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);
43561
+ for (let col = colStart; col <= colEnd; col++) {
43562
+ for (let row = rowStart; row <= rowEnd; row++) {
43563
+ const key = isCellSelected(table.stateManager, col, row);
43564
+ if (key && (!colorKey || key === 'cellBgColor')) {
43565
+ colorKey = key;
43566
+ }
43567
+ }
43568
+ }
43569
+ }
43570
+ else if (cellGroup.role === 'cell') {
43571
+ colorKey = isCellSelected(table.stateManager, cellGroup.col, cellGroup.row);
43572
+ }
43573
+ if (!colorKey) {
43574
+ return undefined;
43575
+ }
43576
+ let selectStyle;
43577
+ const layout = table.internalProps.layoutMap;
43578
+ if (layout.isCornerHeader(cellGroup.col, cellGroup.row)) {
43579
+ selectStyle = table.theme.cornerHeaderStyle?.select || table.theme.headerStyle?.select;
43580
+ }
43581
+ else if (layout.isColumnHeader(cellGroup.col, cellGroup.row)) {
43582
+ selectStyle = table.theme.headerStyle?.select;
43583
+ }
43584
+ else if (layout.isRowHeader(cellGroup.col, cellGroup.row)) {
43585
+ selectStyle = table.theme.rowHeaderStyle?.select;
43586
+ }
43587
+ else if (layout.isBottomFrozenRow(cellGroup.col, cellGroup.row)) {
43588
+ selectStyle =
43589
+ table.theme.bottomFrozenStyle?.select ||
43590
+ (table.isListTable() ? table.theme.bodyStyle?.select : table.theme.headerStyle?.select);
43591
+ }
43592
+ else if (layout.isRightFrozenColumn(cellGroup.col, cellGroup.row)) {
43593
+ selectStyle =
43594
+ table.theme.rightFrozenStyle?.select ||
43595
+ (table.isListTable() ? table.theme.bodyStyle?.select : table.theme.rowHeaderStyle?.select);
43596
+ }
43597
+ else if (!table.isHeader(cellGroup.col, cellGroup.row)) {
43598
+ selectStyle = table.theme.bodyStyle?.select;
43599
+ }
43600
+ const fillColor = getProp(colorKey, selectStyle, cellGroup.col, cellGroup.row, table);
43601
+ return fillColor;
43602
+ }
43603
+ function isCellSelected(state, col, row, cellGroup) {
43604
+ const { highlightScope, disableHeader, cellPos, ranges } = state.select;
43605
+ let selectMode;
43606
+ if (ranges?.length === 1 && ranges[0].end.col === ranges[0].start.col && ranges[0].end.row === ranges[0].start.row) {
43607
+ const table = state.table;
43608
+ const isHeader = table.isHeader(col, row);
43609
+ if (isHeader && disableHeader) {
43610
+ return undefined;
43611
+ }
43612
+ if (highlightScope === HighlightScope.single && cellPos.col === col && cellPos.row === row) {
43613
+ selectMode = 'cellBgColor';
43614
+ }
43615
+ else if (highlightScope === HighlightScope.column && cellPos.col === col) {
43616
+ if (cellPos.col === col && cellPos.row === row) {
43617
+ selectMode = 'cellBgColor';
43618
+ }
43619
+ else {
43620
+ selectMode = 'inlineColumnBgColor';
43621
+ }
43622
+ }
43623
+ else if (highlightScope === HighlightScope.row && cellPos.row === row) {
43624
+ if (cellPos.col === col && cellPos.row === row) {
43625
+ selectMode = 'cellBgColor';
43626
+ }
43627
+ else {
43628
+ selectMode = 'inlineRowBgColor';
43629
+ }
43630
+ }
43631
+ else if (highlightScope === HighlightScope.cross) {
43632
+ if (cellPos.col === col && cellPos.row === row) {
43633
+ selectMode = 'cellBgColor';
43634
+ }
43635
+ else if (cellPos.col === col) {
43636
+ selectMode = 'inlineColumnBgColor';
43637
+ }
43638
+ else if (cellPos.row === row) {
43639
+ selectMode = 'inlineRowBgColor';
43640
+ }
43641
+ }
43642
+ if (selectMode) {
43643
+ let cellDisable;
43644
+ if (isHeader) {
43645
+ const define = table.getHeaderDefine(col, row);
43646
+ cellDisable = define?.disableHeaderSelect;
43647
+ }
43648
+ else {
43649
+ const define = table.getBodyColumnDefine(col, row);
43650
+ cellDisable = define?.disableSelect;
43651
+ }
43652
+ if (cellDisable) {
43653
+ selectMode = undefined;
43654
+ }
43655
+ }
43656
+ }
43657
+ return selectMode;
43658
+ }
43659
+
43382
43660
  let SplitGroupBeforeRenderContribution = class SplitGroupBeforeRenderContribution {
43383
43661
  time = BaseRenderContributionTime.beforeFillStroke;
43384
43662
  useStyle = true;
@@ -43398,7 +43676,8 @@
43398
43676
  useStyle = true;
43399
43677
  order = 0;
43400
43678
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
43401
- const { width = groupAttribute.width, height = groupAttribute.height, stroke = groupAttribute.stroke, strokeArrayColor = groupAttribute.strokeArrayColor, strokeArrayWidth = groupAttribute.strokeArrayWidth, lineWidth = groupAttribute.lineWidth, strokeColor = groupAttribute.stroke } = group.attribute;
43679
+ const { stroke = groupAttribute.stroke, strokeArrayColor = groupAttribute.strokeArrayColor, strokeArrayWidth = groupAttribute.strokeArrayWidth, lineWidth = groupAttribute.lineWidth, strokeColor = groupAttribute.stroke } = group.attribute;
43680
+ let { width = groupAttribute.width, height = groupAttribute.height } = group.attribute;
43402
43681
  if (!stroke || (!Array.isArray(strokeArrayWidth) && lineWidth === 0)) {
43403
43682
  return;
43404
43683
  }
@@ -43432,6 +43711,10 @@
43432
43711
  x = Math.floor(x) + 0.5;
43433
43712
  y = Math.floor(y) + 0.5;
43434
43713
  }
43714
+ if (table.options.customConfig?._disableColumnAndRowSizeRound) {
43715
+ width = Math.round(width);
43716
+ height = Math.round(height);
43717
+ }
43435
43718
  const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width + deltaWidth), Math.ceil(height + deltaHeight));
43436
43719
  widthForStroke = widthFroDraw;
43437
43720
  heightForStroke = heightFroDraw;
@@ -43655,18 +43938,24 @@
43655
43938
  Array.isArray(strokeArrayWidth)) {
43656
43939
  return;
43657
43940
  }
43941
+ const table = group.stage.table;
43942
+ if (!table) {
43943
+ return;
43944
+ }
43658
43945
  const splitLineDash = isArray$1(lineDash[0]) ? getQuadLineDash(lineDash) : [lineDash, lineDash, lineDash, lineDash];
43659
43946
  let { width = groupAttribute.width, height = groupAttribute.height } = group.attribute;
43660
- width = Math.ceil(width);
43661
- height = Math.ceil(height);
43947
+ if (table.options.customConfig?._disableColumnAndRowSizeRound) {
43948
+ width = Math.round(width);
43949
+ height = Math.round(height);
43950
+ }
43951
+ else {
43952
+ width = Math.ceil(width);
43953
+ height = Math.ceil(height);
43954
+ }
43662
43955
  let widthForStroke;
43663
43956
  let heightForStroke;
43664
43957
  if (lineWidth & 1) {
43665
- const table = group.stage.table;
43666
- if (!table) {
43667
- return;
43668
- }
43669
- const bottomRight = table?.theme.cellBorderClipDirection === 'bottom-right';
43958
+ const bottomRight = table.theme.cellBorderClipDirection === 'bottom-right';
43670
43959
  let deltaWidth = 0;
43671
43960
  let deltaHeight = 0;
43672
43961
  if (bottomRight) {
@@ -43753,7 +44042,7 @@
43753
44042
  order = 0;
43754
44043
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
43755
44044
  const { lineWidth = groupAttribute.lineWidth, stroke = groupAttribute.stroke, lineDash = groupAttribute.lineDash, strokeArrayWidth = groupAttribute.strokeArrayWidth, strokeArrayColor = groupAttribute.strokeArrayColor, notAdjustPos, cornerRadius = groupAttribute.cornerRadius } = group.attribute;
43756
- const { width = groupAttribute.width, height = groupAttribute.height } = group.attribute;
44045
+ let { width = groupAttribute.width, height = groupAttribute.height } = group.attribute;
43757
44046
  if (notAdjustPos !== true &&
43758
44047
  stroke &&
43759
44048
  Array.isArray(lineDash) &&
@@ -43761,12 +44050,16 @@
43761
44050
  !Array.isArray(strokeArrayColor) &&
43762
44051
  !Array.isArray(strokeArrayWidth) &&
43763
44052
  lineWidth & 1) {
43764
- const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height));
43765
- context.beginPath();
43766
44053
  const table = group.stage.table;
43767
44054
  if (!table) {
43768
44055
  return;
43769
44056
  }
44057
+ if (table.options.customConfig?._disableColumnAndRowSizeRound) {
44058
+ width = Math.round(width);
44059
+ height = Math.round(height);
44060
+ }
44061
+ const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height));
44062
+ context.beginPath();
43770
44063
  const bottomRight = table?.theme.cellBorderClipDirection === 'bottom-right';
43771
44064
  let deltaWidth = 0;
43772
44065
  let deltaHeight = 0;
@@ -43810,9 +44103,15 @@
43810
44103
  if (group.role === 'cell') {
43811
44104
  const table = group.stage.table;
43812
44105
  if (table && table.stateManager.interactionState !== InteractionState.scrolling) {
43813
- const hoverColor = getCellHoverColor(group, table);
43814
- if (hoverColor) {
43815
- group.attribute._vtableHoverFill = hoverColor;
44106
+ const selectColor = getCellSelectColor(group, table);
44107
+ if (selectColor) {
44108
+ group.attribute._vtableHightLightFill = selectColor;
44109
+ }
44110
+ else {
44111
+ const hoverColor = getCellHoverColor(group, table);
44112
+ if (hoverColor) {
44113
+ group.attribute._vtableHightLightFill = hoverColor;
44114
+ }
43816
44115
  }
43817
44116
  }
43818
44117
  }
@@ -43826,15 +44125,15 @@
43826
44125
  useStyle = true;
43827
44126
  order = 0;
43828
44127
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
43829
- if (group.attribute._vtableHoverFill) {
44128
+ if (group.attribute._vtableHightLightFill) {
43830
44129
  if (fillCb) ;
43831
44130
  else if (fVisible) {
43832
44131
  const oldColor = group.attribute.fill;
43833
- group.attribute.fill = group.attribute._vtableHoverFill;
44132
+ group.attribute.fill = group.attribute._vtableHightLightFill;
43834
44133
  context.setCommonStyle(group, group.attribute, x, y, groupAttribute);
43835
44134
  context.fill();
43836
44135
  group.attribute.fill = oldColor;
43837
- group.attribute._vtableHoverFill = undefined;
44136
+ group.attribute._vtableHightLightFill = undefined;
43838
44137
  }
43839
44138
  }
43840
44139
  }
@@ -44605,10 +44904,10 @@
44605
44904
  else {
44606
44905
  text = cellValue;
44607
44906
  }
44608
- const lines = breakString(text, table);
44907
+ const lines = breakString(text, table).text;
44609
44908
  if (lines.length >= 1) {
44610
44909
  lines.forEach((line) => {
44611
- const width = table.measureText(line.slice(0, table.options.maxCharactersNumber || 200), {
44910
+ const width = table.measureText(line, {
44612
44911
  fontSize,
44613
44912
  fontFamily,
44614
44913
  fontWeight
@@ -44756,7 +45055,7 @@
44756
45055
  value = customMergeText;
44757
45056
  customStyle = customMergeStyle;
44758
45057
  if (customLayout || customRender) {
44759
- customResult = dealWithCustom(customLayout, customRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], table);
45058
+ customResult = dealWithCustom(customLayout, customRender, customMergeRange.start.col, customMergeRange.start.row, table.getColsWidth(customMergeRange.start.col, customMergeRange.end.col), table.getRowsHeight(customMergeRange.start.row, customMergeRange.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
44760
45059
  }
44761
45060
  }
44762
45061
  }
@@ -48665,6 +48964,44 @@
48665
48964
  }
48666
48965
  }
48667
48966
 
48967
+ function dealWithAnimationAppear(table) {
48968
+ if (!table.options.animationAppear) {
48969
+ return;
48970
+ }
48971
+ let duration;
48972
+ let delay;
48973
+ let type;
48974
+ let direction;
48975
+ if (table.options.animationAppear === true) {
48976
+ duration = 500;
48977
+ delay = 0;
48978
+ type = 'one-by-one';
48979
+ direction = 'column';
48980
+ }
48981
+ else {
48982
+ duration = table.options.animationAppear.duration ?? 500;
48983
+ delay = table.options.animationAppear.delay ?? 0;
48984
+ type = table.options.animationAppear.type ?? 'one-by-one';
48985
+ direction = table.options.animationAppear.direction ?? 'row';
48986
+ }
48987
+ const { scenegraph: scene, frozenColCount, frozenRowCount } = table;
48988
+ const { colStart, colEnd, rowStart, rowEnd } = scene.proxy;
48989
+ for (let col = 0; col <= colEnd; col++) {
48990
+ for (let row = 0; row <= rowEnd; row++) {
48991
+ const cellGroup = scene.highPerformanceGetCell(col, row);
48992
+ if (cellGroup && cellGroup.role === 'cell') {
48993
+ cellGroup.forEachChildren((child) => {
48994
+ child.setAttribute('opacity', 0);
48995
+ child
48996
+ .animate()
48997
+ .wait(type === 'one-by-one' ? (direction === 'row' ? row : col) * (duration - delay) : delay)
48998
+ .to({ opacity: 1 }, duration, 'linear');
48999
+ });
49000
+ }
49001
+ }
49002
+ }
49003
+ }
49004
+
48668
49005
  registerForVrender();
48669
49006
  loadPoptip();
48670
49007
  container.load(splitModule);
@@ -48724,7 +49061,8 @@
48724
49061
  enableLayout: true,
48725
49062
  afterRender: () => {
48726
49063
  this.table.fireListeners('after_render', null);
48727
- }
49064
+ },
49065
+ ...table.options.renderOption
48728
49066
  });
48729
49067
  this.stage.defaultLayer.setTheme({
48730
49068
  group: {
@@ -49458,6 +49796,9 @@
49458
49796
  this.updateBorderSizeAndPosition();
49459
49797
  this.component.updateScrollBar();
49460
49798
  handleTextStick(this.table);
49799
+ if (this.table.options.animationAppear) {
49800
+ dealWithAnimationAppear(this.table);
49801
+ }
49461
49802
  this.updateNextFrame();
49462
49803
  }
49463
49804
  dealWidthMode() {
@@ -49833,6 +50174,9 @@
49833
50174
  const cellGroup = this.getCell(col, row);
49834
50175
  const text = cellGroup.getChildByName('text', true);
49835
50176
  if (text && text.type === 'text') {
50177
+ if (text.attribute.moreThanMaxCharacters) {
50178
+ return this.table.getCellValue(col, row);
50179
+ }
49836
50180
  const textAttributeStr = isArray$1(text.attribute.text)
49837
50181
  ? text.attribute.text.join('')
49838
50182
  : text.attribute.text;
@@ -49846,7 +50190,7 @@
49846
50190
  });
49847
50191
  }
49848
50192
  if (cacheStr !== textAttributeStr) {
49849
- return textAttributeStr;
50193
+ return this.table.getCellValue(col, row);
49850
50194
  }
49851
50195
  }
49852
50196
  else if (text && text.type === 'richtext') {
@@ -49854,8 +50198,8 @@
49854
50198
  if (richtext.attribute.ellipsis &&
49855
50199
  richtext._frameCache &&
49856
50200
  richtext.attribute.height < richtext._frameCache.actualHeight) {
49857
- const textConfig = richtext.attribute.textConfig.find((item) => item.text);
49858
- return textConfig.text;
50201
+ richtext.attribute.textConfig.find((item) => item.text);
50202
+ return this.table.getCellValue(col, row);
49859
50203
  }
49860
50204
  }
49861
50205
  return null;
@@ -50258,8 +50602,18 @@
50258
50602
  if (isSelectAll) {
50259
50603
  state.select.ranges = [];
50260
50604
  scenegraph.deleteAllSelectBorder();
50605
+ let _startCol = 0;
50606
+ let _startRow = 0;
50607
+ const { disableHeaderSelect, disableRowSeriesNumberSelect } = table.options.keyboardOptions?.selectAllOnCtrlA || {};
50608
+ if (disableHeaderSelect) {
50609
+ _startCol = table.rowHeaderLevelCount;
50610
+ _startRow = table.columnHeaderLevelCount;
50611
+ }
50612
+ if ((disableRowSeriesNumberSelect || disableHeaderSelect) && table.options.rowSeriesNumber) {
50613
+ _startCol += 1;
50614
+ }
50261
50615
  state.select.ranges.push({
50262
- start: { col: 0, row: 0 },
50616
+ start: { col: _startCol, row: _startRow },
50263
50617
  end: { col: table.colCount - 1, row: table.rowCount - 1 }
50264
50618
  });
50265
50619
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
@@ -51708,13 +52062,25 @@
51708
52062
  }
51709
52063
  }
51710
52064
  setSelectState() {
51711
- const { headerSelectMode, disableSelect, disableHeaderSelect } = Object.assign({}, {
52065
+ const { headerSelectMode, disableSelect, disableHeaderSelect, highlightMode } = Object.assign({}, {
51712
52066
  headerSelectMode: 'inline',
51713
52067
  disableSelect: false,
51714
- disableHeaderSelect: false
52068
+ disableHeaderSelect: false,
52069
+ highlightMode: 'cell'
51715
52070
  }, this.table.options.select);
51716
52071
  if (!disableSelect) {
51717
- this.select.highlightScope = HighlightScope.single;
52072
+ if (highlightMode === 'cross') {
52073
+ this.select.highlightScope = HighlightScope.cross;
52074
+ }
52075
+ else if (highlightMode === 'row') {
52076
+ this.select.highlightScope = HighlightScope.row;
52077
+ }
52078
+ else if (highlightMode === 'column') {
52079
+ this.select.highlightScope = HighlightScope.column;
52080
+ }
52081
+ else {
52082
+ this.select.highlightScope = HighlightScope.single;
52083
+ }
51718
52084
  }
51719
52085
  else {
51720
52086
  this.select.highlightScope = HighlightScope.none;
@@ -52576,51 +52942,6 @@
52576
52942
  });
52577
52943
  }
52578
52944
 
52579
- function getCellEventArgsSet(e) {
52580
- const tableEvent = {
52581
- abstractPos: {
52582
- x: e.x,
52583
- y: e.y
52584
- }
52585
- };
52586
- const targetCell = getTargetCell(e.target);
52587
- if (targetCell) {
52588
- tableEvent.eventArgs = {
52589
- col: targetCell.col,
52590
- row: targetCell.row,
52591
- event: e,
52592
- targetCell,
52593
- mergeInfo: getMergeCellInfo(targetCell),
52594
- target: e.target
52595
- };
52596
- }
52597
- return tableEvent;
52598
- }
52599
- function getTargetCell(target) {
52600
- while (target && target.parent) {
52601
- if (target.role === 'cell') {
52602
- return target;
52603
- }
52604
- target = target.parent;
52605
- }
52606
- return null;
52607
- }
52608
- function getMergeCellInfo(cellGroup) {
52609
- if (isValid$1(cellGroup.mergeStartCol) &&
52610
- isValid$1(cellGroup.mergeStartRow) &&
52611
- isValid$1(cellGroup.mergeEndCol) &&
52612
- isValid$1(cellGroup.mergeEndRow)) {
52613
- return {
52614
- colStart: cellGroup.mergeStartCol,
52615
- colEnd: cellGroup.mergeEndCol,
52616
- rowStart: cellGroup.mergeStartRow,
52617
- rowEnd: cellGroup.mergeEndRow
52618
- };
52619
- }
52620
- return undefined;
52621
- }
52622
- const regIndexReg = /radio-\d+-\d+-(\d+)/;
52623
-
52624
52945
  function bindTableGroupListener(eventManager) {
52625
52946
  const table = eventManager.table;
52626
52947
  const stateManager = table.stateManager;
@@ -57858,7 +58179,7 @@
57858
58179
  const customStyleId = this.getCustomCellStyleId(col, row);
57859
58180
  if (customStyleId) {
57860
58181
  const styleOption = this.getCustomCellStyleOption(customStyleId);
57861
- return styleOption.style;
58182
+ return styleOption?.style;
57862
58183
  }
57863
58184
  return undefined;
57864
58185
  }
@@ -57949,6 +58270,8 @@
57949
58270
  this.table.scenegraph.updateNextFrame();
57950
58271
  }
57951
58272
  updateCustomCell(customCellStyle, customCellStyleArrangement) {
58273
+ this.customCellStyle.length = 0;
58274
+ this.customCellStyleArrangement.length = 0;
57952
58275
  customCellStyle.forEach((cellStyle) => {
57953
58276
  this.registerCustomCellStyle(cellStyle.id, cellStyle.style);
57954
58277
  });
@@ -57956,6 +58279,9 @@
57956
58279
  this.arrangeCustomCellStyle(cellStyle.cellPosition, cellStyle.customStyleId);
57957
58280
  });
57958
58281
  }
58282
+ hasCustomCellStyle(customStyleId) {
58283
+ return this.customCellStyle.some(style => style.id === customStyleId);
58284
+ }
57959
58285
  }
57960
58286
  function mergeStyle(cacheStyle, customCellStyle) {
57961
58287
  cacheStyle = cacheStyle.clone();
@@ -58670,7 +58996,7 @@
58670
58996
  return TABLE_EVENT_TYPE;
58671
58997
  }
58672
58998
  options;
58673
- version = "1.1.3-alpha.2";
58999
+ version = "1.2.0-alpha.1";
58674
59000
  pagination;
58675
59001
  id = `VTable${Date.now()}`;
58676
59002
  headerStyleCache;
@@ -59874,6 +60200,7 @@
59874
60200
  IconCache.clearAll();
59875
60201
  super.release?.();
59876
60202
  internalProps.handler?.release?.();
60203
+ this.eventManager.release();
59877
60204
  internalProps.focusControl?.release?.();
59878
60205
  internalProps.legends?.forEach(legend => {
59879
60206
  legend?.release();
@@ -59895,6 +60222,8 @@
59895
60222
  }
59896
60223
  this.editorManager?.editingEditor?.onEnd?.();
59897
60224
  this.isReleased = true;
60225
+ this.scenegraph = null;
60226
+ this.internalProps = null;
59898
60227
  }
59899
60228
  fireListeners(type, event) {
59900
60229
  return super.fireListeners(type, event);
@@ -61421,6 +61750,9 @@
61421
61750
  }
61422
61751
  changeRecordOrder(source, target) {
61423
61752
  }
61753
+ hasCustomCellStyle(customStyleId) {
61754
+ return this.customCellStylePlugin.hasCustomCellStyle(customStyleId);
61755
+ }
61424
61756
  registerCustomCellStyle(customStyleId, customStyle) {
61425
61757
  this.customCellStylePlugin.registerCustomCellStyle(customStyleId, customStyle);
61426
61758
  }
@@ -71646,7 +71978,7 @@
71646
71978
  }
71647
71979
 
71648
71980
  registerForVrender();
71649
- const version = "1.1.3-alpha.2";
71981
+ const version = "1.2.0-alpha.1";
71650
71982
  function getIcons() {
71651
71983
  return get$2();
71652
71984
  }