@visactor/vtable 1.19.4-alpha.2 → 1.19.5

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 (85) hide show
  1. package/cjs/ListTable.js +5 -1
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/core/BaseTable.js +17 -15
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/core/record-helper.js +115 -11
  6. package/cjs/core/record-helper.js.map +1 -1
  7. package/cjs/data/CachedDataSource.d.ts +1 -1
  8. package/cjs/data/CachedDataSource.js +5 -5
  9. package/cjs/data/CachedDataSource.js.map +1 -1
  10. package/cjs/event/event.js +1 -1
  11. package/cjs/event/event.js.map +1 -1
  12. package/cjs/event/listener/table-group.js +1 -1
  13. package/cjs/event/listener/table-group.js.map +1 -1
  14. package/cjs/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  15. package/cjs/event/self-event-listener/base-table/dropdown-menu.js +5 -3
  16. package/cjs/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  17. package/cjs/event/self-event-listener/list-table/checkbox.js +1 -1
  18. package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -1
  19. package/cjs/index.d.ts +1 -1
  20. package/cjs/index.js +1 -1
  21. package/cjs/index.js.map +1 -1
  22. package/cjs/layout/cell-range/simple-cell-range.js +1 -1
  23. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  24. package/cjs/scenegraph/graphic/chart.js +7 -4
  25. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  26. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  27. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  28. package/cjs/scenegraph/layout/update-height.js +1 -1
  29. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  30. package/cjs/scenegraph/scenegraph.js +1 -1
  31. package/cjs/scenegraph/scenegraph.js.map +1 -1
  32. package/cjs/state/checkbox/checkbox.js +2 -1
  33. package/cjs/state/checkbox/checkbox.js.map +1 -1
  34. package/cjs/tools/diff-cell.d.ts +1 -1
  35. package/cjs/tools/diff-cell.js +4 -1
  36. package/cjs/tools/diff-cell.js.map +1 -1
  37. package/cjs/ts-types/base-table.d.ts +3 -1
  38. package/cjs/ts-types/base-table.js.map +1 -1
  39. package/cjs/ts-types/table-engine.d.ts +2 -2
  40. package/cjs/ts-types/table-engine.js.map +1 -1
  41. package/cjs/vrender.js.map +1 -1
  42. package/dist/vtable.js +231 -35
  43. package/dist/vtable.min.js +2 -2
  44. package/es/ListTable.js +5 -1
  45. package/es/ListTable.js.map +1 -1
  46. package/es/core/BaseTable.js +17 -15
  47. package/es/core/BaseTable.js.map +1 -1
  48. package/es/core/record-helper.js +114 -8
  49. package/es/core/record-helper.js.map +1 -1
  50. package/es/data/CachedDataSource.d.ts +1 -1
  51. package/es/data/CachedDataSource.js +5 -5
  52. package/es/data/CachedDataSource.js.map +1 -1
  53. package/es/event/event.js +2 -2
  54. package/es/event/event.js.map +1 -1
  55. package/es/event/listener/table-group.js +1 -1
  56. package/es/event/listener/table-group.js.map +1 -1
  57. package/es/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  58. package/es/event/self-event-listener/base-table/dropdown-menu.js +3 -1
  59. package/es/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  60. package/es/event/self-event-listener/list-table/checkbox.js +1 -1
  61. package/es/event/self-event-listener/list-table/checkbox.js.map +1 -1
  62. package/es/index.d.ts +1 -1
  63. package/es/index.js +1 -1
  64. package/es/index.js.map +1 -1
  65. package/es/layout/cell-range/simple-cell-range.js +1 -1
  66. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  67. package/es/scenegraph/graphic/chart.js +7 -4
  68. package/es/scenegraph/graphic/chart.js.map +1 -1
  69. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  70. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  71. package/es/scenegraph/layout/update-height.js +1 -1
  72. package/es/scenegraph/layout/update-height.js.map +1 -1
  73. package/es/scenegraph/scenegraph.js +1 -1
  74. package/es/scenegraph/scenegraph.js.map +1 -1
  75. package/es/state/checkbox/checkbox.js +2 -1
  76. package/es/state/checkbox/checkbox.js.map +1 -1
  77. package/es/tools/diff-cell.d.ts +1 -1
  78. package/es/tools/diff-cell.js +4 -1
  79. package/es/tools/diff-cell.js.map +1 -1
  80. package/es/ts-types/base-table.d.ts +3 -1
  81. package/es/ts-types/base-table.js.map +1 -1
  82. package/es/ts-types/table-engine.d.ts +2 -2
  83. package/es/ts-types/table-engine.js.map +1 -1
  84. package/es/vrender.js.map +1 -1
  85. package/package.json +10 -10
package/dist/vtable.js CHANGED
@@ -16200,7 +16200,7 @@
16200
16200
  return data || this.currentRenderMap.get(type) || this.defaultRenderMap.get(type);
16201
16201
  }
16202
16202
  clearScreen(renderService, context, drawContext) {
16203
- var _a, _b;
16203
+ var _a, _b, _c;
16204
16204
  const {
16205
16205
  clear: clear,
16206
16206
  viewBox: viewBox
@@ -16208,9 +16208,9 @@
16208
16208
  width = viewBox.width(),
16209
16209
  height = viewBox.height();
16210
16210
  if (clear) {
16211
- context.clearRect(0, 0, width, height);
16212
- const stage = null === (_a = renderService.drawParams) || void 0 === _a ? void 0 : _a.stage;
16213
- if (stage && (context.globalAlpha = null !== (_b = stage.attribute.opacity) && void 0 !== _b ? _b : 1), stage && stage.backgroundImg && stage.resources) {
16211
+ context.clearRect(0, 0, width, height), (null === (_a = renderService.drawParams) || void 0 === _a ? void 0 : _a.stage) && renderService.drawParams.stage.hooks.afterClearRect.call(renderService.drawParams);
16212
+ const stage = null === (_b = renderService.drawParams) || void 0 === _b ? void 0 : _b.stage;
16213
+ if (stage && (context.globalAlpha = null !== (_c = stage.attribute.opacity) && void 0 !== _c ? _c : 1), stage && stage.backgroundImg && stage.resources) {
16214
16214
  const res = stage.resources.get(clear);
16215
16215
  res && "success" === res.state && res.data && context.drawImage(res.data, 0, 0, width, height);
16216
16216
  } else context.fillStyle = createColor(context, clear, {
@@ -16745,6 +16745,8 @@
16745
16745
  this._beforeRender && this._beforeRender(stage);
16746
16746
  }, this.afterClearScreen = drawParams => {
16747
16747
  this._afterClearScreen && this._afterClearScreen(drawParams);
16748
+ }, this.afterClearRect = drawParams => {
16749
+ this._afterClearRect && this._afterClearRect(drawParams);
16748
16750
  }, this.afterRender = stage => {
16749
16751
  this.renderCount++, this._afterRender && this._afterRender(stage), this._afterNextRenderCbs && this._afterNextRenderCbs.forEach(cb => cb(stage)), this._afterNextRenderCbs = null, this.tickedBeforeRender = !1;
16750
16752
  }, this.afterTickCb = () => {
@@ -16752,7 +16754,8 @@
16752
16754
  }, this.params = params, this.theme = new Theme(), this.hooks = {
16753
16755
  beforeRender: new SyncHook(["stage"]),
16754
16756
  afterRender: new SyncHook(["stage"]),
16755
- afterClearScreen: new SyncHook(["stage"])
16757
+ afterClearScreen: new SyncHook(["stage"]),
16758
+ afterClearRect: new SyncHook(["stage"])
16756
16759
  }, this.global = application.global, !this.global.env && isBrowserEnv() && this.global.setEnv("browser"), this.window = container.get(VWindow), this.renderService = container.get(RenderService), this.pluginService = container.get(PluginService), this.layerService = container.get(LayerService), this.graphicService = container.get(GraphicService), this.pluginService.active(this, params), this.window.create({
16757
16760
  width: params.width,
16758
16761
  height: params.height,
@@ -16764,7 +16767,7 @@
16764
16767
  canvas: params.canvas
16765
16768
  }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = null !== (_a = params.background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND, this.appendChild(this.layerService.createLayer(this, {
16766
16769
  main: !0
16767
- })), this.nextFrameRenderLayerSet = new Set(), this.willNextFrameRender = !1, this.stage = this, this.renderStyle = params.renderStyle, params.autoRender && this.enableAutoRender(), params.autoRefresh && this.enableAutoRefresh(), !1 === params.disableDirtyBounds && this.enableDirtyBounds(), params.enableHtmlAttribute && this.enableHtmlAttribute(params.enableHtmlAttribute), params.ReactDOM && this.enableReactAttribute(params.ReactDOM), params.enableLayout && this.enableLayout(), this.hooks.beforeRender.tap("constructor", this.beforeRender), this.hooks.afterRender.tap("constructor", this.afterRender), this.hooks.afterClearScreen.tap("constructor", this.afterClearScreen), this._beforeRender = params.beforeRender, this._afterRender = params.afterRender, this._afterClearScreen = params.afterClearScreen, this.supportInteractiveLayer = !1 !== params.interactiveLayer, params.optimize || (params.optimize = {
16770
+ })), this.nextFrameRenderLayerSet = new Set(), this.willNextFrameRender = !1, this.stage = this, this.renderStyle = params.renderStyle, params.autoRender && this.enableAutoRender(), params.autoRefresh && this.enableAutoRefresh(), !1 === params.disableDirtyBounds && this.enableDirtyBounds(), params.enableHtmlAttribute && this.enableHtmlAttribute(params.enableHtmlAttribute), params.ReactDOM && this.enableReactAttribute(params.ReactDOM), params.enableLayout && this.enableLayout(), this.hooks.beforeRender.tap("constructor", this.beforeRender), this.hooks.afterRender.tap("constructor", this.afterRender), this.hooks.afterClearScreen.tap("constructor", this.afterClearScreen), this.hooks.afterClearRect.tap("constructor", this.afterClearRect), this._beforeRender = params.beforeRender, this._afterRender = params.afterRender, this._afterClearScreen = params.afterClearScreen, this._afterClearRect = params.afterClearRect, this.supportInteractiveLayer = !1 !== params.interactiveLayer, params.optimize || (params.optimize = {
16768
16771
  tickRenderMode: "effect"
16769
16772
  }), this.optmize(params.optimize), params.background && isString$6(this._background) && this._background.includes("/") && this.setAttributes({
16770
16773
  background: this._background
@@ -39610,13 +39613,14 @@
39610
39613
  }
39611
39614
  }
39612
39615
  this.initTreeHierarchyState();
39613
- this.updatePagerData();
39616
+ this.updatePagination();
39614
39617
  }
39615
39618
  deleteRecordsForTree(recordIndexs) {
39616
39619
  if (!isArray$7(recordIndexs) || recordIndexs.length === 0) {
39617
- return;
39620
+ return [];
39618
39621
  }
39619
39622
  const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);
39623
+ const deletedRecordIndexs = [];
39620
39624
  for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39621
39625
  const recordIndex = recordIndexsMaxToMin[index];
39622
39626
  if (isNumber$4(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {
@@ -39633,9 +39637,11 @@
39633
39637
  parentRecord.children.splice(index, 1);
39634
39638
  }
39635
39639
  this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');
39640
+ deletedRecordIndexs.push(recordIndex);
39636
39641
  }
39637
39642
  this.initTreeHierarchyState();
39638
- this.updatePagerData();
39643
+ this.updatePagination();
39644
+ return deletedRecordIndexs;
39639
39645
  }
39640
39646
  updateRecordsForTree(records, recordIndexs) {
39641
39647
  for (let index = 0; index < recordIndexs.length; index++) {
@@ -45014,7 +45020,7 @@
45014
45020
  }
45015
45021
 
45016
45022
  function updateRowHeight(scene, row, detaY, skipTableHeightMap) {
45017
- if (!skipTableHeightMap) {
45023
+ if (!skipTableHeightMap && detaY) {
45018
45024
  scene.table._setRowHeight(row, scene.table.getRowHeight(row) + detaY, true);
45019
45025
  }
45020
45026
  for (let col = 0; col < scene.table.colCount; col++) {
@@ -47362,13 +47368,15 @@
47362
47368
  stage.needRender = false;
47363
47369
  chartStage.resumeRender();
47364
47370
  },
47365
- afterClearScreen(drawParams) {
47366
- const { context, layer, viewBox } = drawParams;
47367
- if (layer.main) {
47368
- context.beginPath();
47369
- context.fillStyle = hoverColor;
47370
- context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);
47371
- context.fill();
47371
+ renderHooks: {
47372
+ afterClearRect(drawParams) {
47373
+ const { context, layer, viewBox } = drawParams;
47374
+ if (layer.main && drawParams.clear && hoverColor) {
47375
+ context.beginPath();
47376
+ context.fillStyle = hoverColor;
47377
+ context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);
47378
+ context.fill();
47379
+ }
47372
47380
  }
47373
47381
  }
47374
47382
  }));
@@ -56031,7 +56039,7 @@
56031
56039
  else if (this.table.isAutoRowHeight(this.table.columnHeaderLevelCount)) {
56032
56040
  for (let i = 0; i < updateRows.length; i++) {
56033
56041
  const row = updateRows[i];
56034
- const oldHeight = this.table.getRowHeight(row);
56042
+ const oldHeight = this.table.rowHeightsMap.get(row);
56035
56043
  const newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
56036
56044
  if ((row >= this.proxy.rowStart && row <= this.proxy.rowEnd) ||
56037
56045
  (row >= this.table.rowCount - this.table.bottomFrozenRowCount && row <= this.table.rowCount - 1)) {
@@ -57838,7 +57846,8 @@
57838
57846
  }
57839
57847
  function setCellCheckboxState(col, row, checked, table) {
57840
57848
  const cellGroup = table.scenegraph.getCell(col, row);
57841
- const checkbox = cellGroup?.getChildByName('checkbox');
57849
+ const checkbox = cellGroup?.getChildByName('checkbox') ||
57850
+ cellGroup?.getChildByName('checkbox-content')?._checkboxGroup?.getChildByName('checkbox');
57842
57851
  if (!checkbox) {
57843
57852
  const field = table.getHeaderField(col, row);
57844
57853
  if (table.isHeader(col, row)) {
@@ -60387,7 +60396,7 @@
60387
60396
  };
60388
60397
  if (table.isHeader(col, row)) {
60389
60398
  table.stateManager.setHeaderCheckedState(cellInfo.field, e.detail.checked);
60390
- if (table.internalProps.enableCheckboxCascade) {
60399
+ if (table.internalProps.enableHeaderCheckboxCascade) {
60391
60400
  const cellType = table.getCellType(col, row);
60392
60401
  if (cellType === 'checkbox') {
60393
60402
  table.scenegraph.updateCheckboxCellState(col, row, e.detail.checked);
@@ -61956,7 +61965,7 @@
61956
61965
  });
61957
61966
  }
61958
61967
  function bindHeaderCheckboxChange(table) {
61959
- if (table.internalProps.enableCheckboxCascade !== true) {
61968
+ if (table.internalProps.enableHeaderCheckboxCascade !== true) {
61960
61969
  return;
61961
61970
  }
61962
61971
  table.on('checkbox_state_change', args => {
@@ -62022,10 +62031,13 @@
62022
62031
  });
62023
62032
  }
62024
62033
 
62025
- function bindDropdownMenuClickEvent(table) {
62034
+ function bindDropdownMenuEvent(table) {
62026
62035
  table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, () => {
62027
62036
  table.stateManager.hideMenu();
62028
62037
  });
62038
+ table.on(TABLE_EVENT_TYPE.SCROLL, () => {
62039
+ table.stateManager.hideMenu();
62040
+ });
62029
62041
  }
62030
62042
 
62031
62043
  function bindDBClickAutoColumnWidthEvent(table) {
@@ -62159,7 +62171,7 @@
62159
62171
  return;
62160
62172
  }
62161
62173
  bindIconClickEvent(this.table);
62162
- bindDropdownMenuClickEvent(this.table);
62174
+ bindDropdownMenuEvent(this.table);
62163
62175
  this.updateEventBinder();
62164
62176
  bindMediaClick(this.table);
62165
62177
  bindDBClickAutoColumnWidthEvent(this.table);
@@ -67135,7 +67147,7 @@
67135
67147
  return TABLE_EVENT_TYPE;
67136
67148
  }
67137
67149
  options;
67138
- version = "1.19.4-alpha.2";
67150
+ version = "1.19.5";
67139
67151
  pagination;
67140
67152
  id = `VTable${Date.now()}`;
67141
67153
  headerStyleCache;
@@ -67175,7 +67187,7 @@
67175
67187
  if (options.customConfig?.imageAnonymous === false) {
67176
67188
  vglobal.isImageAnonymous = false;
67177
67189
  }
67178
- const { frozenColCount = 0, unfreezeAllOnExceedsMaxWidth, frozenRowCount, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth, widthMode = 'standard', heightMode = 'standard', autoFillWidth = false, autoFillHeight = false, containerFit = { width: false, height: false }, widthAdaptiveMode = 'only-body', heightAdaptiveMode = 'only-body', keyboardOptions, eventOptions, rowSeriesNumber, enableCheckboxCascade, columnResizeMode, rowResizeMode = 'none', resize, dragHeaderMode, dragOrder, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, customRender, pixelRatio = defaultPixelRatio, renderChartAsync, renderChartAsyncBatchCount, mode, modeParams, canvasWidth, canvasHeight, overscrollBehavior, limitMinWidth, limitMinHeight, clearDOM = true } = options;
67190
+ const { frozenColCount = 0, unfreezeAllOnExceedsMaxWidth, frozenRowCount, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth, widthMode = 'standard', heightMode = 'standard', autoFillWidth = false, autoFillHeight = false, containerFit = { width: false, height: false }, widthAdaptiveMode = 'only-body', heightAdaptiveMode = 'only-body', keyboardOptions, eventOptions, rowSeriesNumber, enableCheckboxCascade, enableHeaderCheckboxCascade, columnResizeMode, rowResizeMode = 'none', resize, dragHeaderMode, dragOrder, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, customRender, pixelRatio = defaultPixelRatio, renderChartAsync, renderChartAsyncBatchCount, mode, modeParams, canvasWidth, canvasHeight, overscrollBehavior, limitMinWidth, limitMinHeight, clearDOM = true } = options;
67179
67191
  const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
67180
67192
  this.container = container;
67181
67193
  this.options = options;
@@ -67263,6 +67275,7 @@
67263
67275
  internalProps.eventOptions = eventOptions;
67264
67276
  internalProps.rowSeriesNumber = rowSeriesNumber;
67265
67277
  internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
67278
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
67266
67279
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
67267
67280
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
67268
67281
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
@@ -67270,7 +67283,8 @@
67270
67283
  setBatchRenderChartCount(renderChartAsyncBatchCount);
67271
67284
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
67272
67285
  internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
67273
- internalProps.titleCheckbox = groupConfig?.titleCheckbox;
67286
+ internalProps.groupTitleCheckbox =
67287
+ groupConfig?.titleCheckbox ?? !!rowSeriesNumber?.enableTreeCheckbox;
67274
67288
  internalProps.groupTitleFieldFormat =
67275
67289
  groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
67276
67290
  internalProps.groupTitleCustomLayout =
@@ -68647,7 +68661,7 @@
68647
68661
  this.editorManager?.cancelEdit();
68648
68662
  this.options = options;
68649
68663
  this._hasAutoImageColumn = undefined;
68650
- const { frozenColCount = 0, unfreezeAllOnExceedsMaxWidth, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth = 80, keyboardOptions, eventOptions, rowSeriesNumber, enableCheckboxCascade, columnResizeMode, rowResizeMode = 'none', resize, dragHeaderMode, dragOrder, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, pixelRatio, widthMode, heightMode, autoFillWidth, autoFillHeight, containerFit, widthAdaptiveMode, heightAdaptiveMode, customRender, renderChartAsync, renderChartAsyncBatchCount, canvasWidth, canvasHeight, overscrollBehavior, limitMinWidth, limitMinHeight } = options;
68664
+ const { frozenColCount = 0, unfreezeAllOnExceedsMaxWidth, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth = 80, keyboardOptions, eventOptions, rowSeriesNumber, enableCheckboxCascade, enableHeaderCheckboxCascade, columnResizeMode, rowResizeMode = 'none', resize, dragHeaderMode, dragOrder, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, pixelRatio, widthMode, heightMode, autoFillWidth, autoFillHeight, containerFit, widthAdaptiveMode, heightAdaptiveMode, customRender, renderChartAsync, renderChartAsyncBatchCount, canvasWidth, canvasHeight, overscrollBehavior, limitMinWidth, limitMinHeight } = options;
68651
68665
  const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
68652
68666
  if (pixelRatio && pixelRatio !== this.internalProps.pixelRatio) {
68653
68667
  this.internalProps.pixelRatio = pixelRatio;
@@ -68708,6 +68722,7 @@
68708
68722
  internalProps.eventOptions = eventOptions;
68709
68723
  internalProps.rowSeriesNumber = rowSeriesNumber;
68710
68724
  internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
68725
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
68711
68726
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
68712
68727
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
68713
68728
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
@@ -68716,7 +68731,7 @@
68716
68731
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
68717
68732
  internalProps.cellTextOverflows = {};
68718
68733
  internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
68719
- internalProps.titleCheckbox = groupConfig?.titleCheckbox;
68734
+ internalProps.groupTitleCheckbox = groupConfig?.titleCheckbox;
68720
68735
  internalProps.groupTitleFieldFormat =
68721
68736
  groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
68722
68737
  internalProps.groupTitleCustomLayout =
@@ -71992,7 +72007,7 @@
71992
72007
  return;
71993
72008
  }
71994
72009
  const cellRecord = layout._table.getCellRawRecord(col, row);
71995
- if (layout._table.internalProps.titleCheckbox && layout._table.internalProps.rowSeriesNumber) {
72010
+ if (layout._table.internalProps.groupTitleCheckbox && layout._table.internalProps.rowSeriesNumber) {
71996
72011
  if (cellRecord?.vtableMerge && col >= layout.leftRowSeriesNumberColumnCount) {
71997
72012
  cellRange.start.col = layout.rowHeaderLevelCount + layout.leftRowSeriesNumberColumnCount;
71998
72013
  cellRange.end.col = layout.colCount - 1;
@@ -73838,6 +73853,7 @@
73838
73853
  }
73839
73854
  else if (table.dataSource.rowHierarchyType === 'tree') {
73840
73855
  table.dataSource.addRecordsForTree?.([record], recordIndex);
73856
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73841
73857
  table.refreshRowColCount();
73842
73858
  table.internalProps.layoutMap.clearCellRangeMap();
73843
73859
  table.sortState && sortRecords(table);
@@ -73846,6 +73862,7 @@
73846
73862
  }
73847
73863
  else if (table.sortState) {
73848
73864
  table.dataSource.addRecordForSorted(record);
73865
+ table.stateManager.checkedState.clear();
73849
73866
  sortRecords(table);
73850
73867
  table.refreshRowColCount();
73851
73868
  table.scenegraph.clearCells();
@@ -73858,6 +73875,7 @@
73858
73875
  }
73859
73876
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
73860
73877
  table.dataSource.addRecord(record, recordIndex);
73878
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73861
73879
  const oldRowCount = table.rowCount;
73862
73880
  table.refreshRowColCount();
73863
73881
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -73939,6 +73957,7 @@
73939
73957
  }
73940
73958
  else if (table.dataSource.rowHierarchyType === 'tree') {
73941
73959
  table.dataSource.addRecordsForTree?.(records, recordIndex);
73960
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
73942
73961
  table.refreshRowColCount();
73943
73962
  table.internalProps.layoutMap.clearCellRangeMap();
73944
73963
  table.sortState && sortRecords(table);
@@ -73962,6 +73981,7 @@
73962
73981
  }
73963
73982
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
73964
73983
  table.dataSource.addRecords(records, recordIndex);
73984
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
73965
73985
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
73966
73986
  table.refreshRowColCount();
73967
73987
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -74056,7 +74076,13 @@
74056
74076
  table.scenegraph.createSceneGraph();
74057
74077
  }
74058
74078
  else if (table.dataSource.rowHierarchyType === 'tree') {
74059
- table.dataSource.deleteRecordsForTree?.(recordIndexs);
74079
+ const deletedRecordIndexs = table.dataSource.deleteRecordsForTree?.(recordIndexs);
74080
+ if (deletedRecordIndexs.length === 0) {
74081
+ return;
74082
+ }
74083
+ for (let index = 0; index < deletedRecordIndexs.length; index++) {
74084
+ adjustCheckBoxStateMapWithDeleteRecordIndex(table, deletedRecordIndexs[index], 1);
74085
+ }
74060
74086
  table.refreshRowColCount();
74061
74087
  table.internalProps.layoutMap.clearCellRangeMap();
74062
74088
  table.sortState && sortRecords(table);
@@ -74284,6 +74310,158 @@
74284
74310
  }
74285
74311
  }
74286
74312
  }
74313
+ function adjustCheckBoxStateMapWithDeleteRecordIndex(table, recordIndex, count) {
74314
+ const { checkedState } = table.stateManager;
74315
+ if (!checkedState) {
74316
+ return;
74317
+ }
74318
+ if (table.dataSource.rowHierarchyType === 'tree') {
74319
+ let toOperateIndexArr;
74320
+ if (isNumber$4(recordIndex)) {
74321
+ toOperateIndexArr = [recordIndex];
74322
+ }
74323
+ else {
74324
+ toOperateIndexArr = recordIndex;
74325
+ }
74326
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74327
+ const targetResult = [];
74328
+ checkedState.forEach((value, key) => {
74329
+ const keyArray = key.split(',');
74330
+ if (keyArray.length >= toOperateIndexArr.length) {
74331
+ for (let i = 0; i < keyArray.length; i++) {
74332
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74333
+ const keyIndex = Number(keyArray[i]);
74334
+ if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74335
+ else if ((toOperateIndex === keyIndex && i === keyArray.length - 1) || toOperateIndex === -1) {
74336
+ targetResult.push({
74337
+ originKey: key,
74338
+ value
74339
+ });
74340
+ break;
74341
+ }
74342
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74343
+ keyArray[i] = (keyIndex - count).toString();
74344
+ targetResult.push({
74345
+ originKey: key,
74346
+ targetKey: keyArray.toString(),
74347
+ value
74348
+ });
74349
+ break;
74350
+ }
74351
+ else {
74352
+ break;
74353
+ }
74354
+ }
74355
+ }
74356
+ });
74357
+ targetResult.sort((a, b) => {
74358
+ const aArray = a.originKey.split(',');
74359
+ const bArray = b.originKey.split(',');
74360
+ const aLength = aArray.length;
74361
+ const bLength = bArray.length;
74362
+ const minLength = Math.min(aLength, bLength);
74363
+ for (let i = 0; i < minLength; i++) {
74364
+ const aIndex = Number(aArray[i]);
74365
+ const bIndex = Number(bArray[i]);
74366
+ if (aIndex !== bIndex) {
74367
+ return aIndex - bIndex;
74368
+ }
74369
+ }
74370
+ return aLength - bLength;
74371
+ });
74372
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74373
+ checkedState.delete(originKey);
74374
+ if (targetKey) {
74375
+ checkedState.set(targetKey, value);
74376
+ }
74377
+ });
74378
+ }
74379
+ else {
74380
+ const length = checkedState.size;
74381
+ for (let key = length - 1; key >= recordIndex; key--) {
74382
+ const record = checkedState.get(key.toString());
74383
+ checkedState.delete(key.toString());
74384
+ checkedState.set((key - count).toString(), record);
74385
+ }
74386
+ }
74387
+ }
74388
+ function adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, count) {
74389
+ const { checkedState } = table.stateManager;
74390
+ if (!checkedState) {
74391
+ return;
74392
+ }
74393
+ if (table.dataSource.rowHierarchyType === 'tree') {
74394
+ let toOperateIndexArr;
74395
+ if (isNumber$4(recordIndex)) {
74396
+ toOperateIndexArr = [recordIndex];
74397
+ }
74398
+ else {
74399
+ toOperateIndexArr = recordIndex;
74400
+ }
74401
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74402
+ const targetResult = [];
74403
+ checkedState.forEach((value, key) => {
74404
+ const keyArray = key.split(',');
74405
+ if (keyArray.length >= toOperateIndexArr.length) {
74406
+ for (let i = 0; i < keyArray.length; i++) {
74407
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74408
+ const keyIndex = Number(keyArray[i]);
74409
+ if (toOperateIndex === keyIndex && (i === keyArray.length - 1 || i === toOperateIndexArrLength - 1)) {
74410
+ keyArray[i] = (keyIndex + count).toString();
74411
+ targetResult.push({
74412
+ originKey: key,
74413
+ targetKey: keyArray.toString(),
74414
+ value
74415
+ });
74416
+ break;
74417
+ }
74418
+ else if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74419
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74420
+ keyArray[i] = (keyIndex + count).toString();
74421
+ targetResult.push({
74422
+ originKey: key,
74423
+ targetKey: keyArray.toString(),
74424
+ value
74425
+ });
74426
+ break;
74427
+ }
74428
+ else {
74429
+ break;
74430
+ }
74431
+ }
74432
+ }
74433
+ });
74434
+ targetResult.sort((a, b) => {
74435
+ const aArray = a.originKey.split(',');
74436
+ const bArray = b.originKey.split(',');
74437
+ const aLength = aArray.length;
74438
+ const bLength = bArray.length;
74439
+ const minLength = Math.min(aLength, bLength);
74440
+ for (let i = 0; i < minLength; i++) {
74441
+ const aIndex = Number(aArray[i]);
74442
+ const bIndex = Number(bArray[i]);
74443
+ if (aIndex !== bIndex) {
74444
+ return -aIndex + bIndex;
74445
+ }
74446
+ }
74447
+ return -aLength + bLength;
74448
+ });
74449
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74450
+ checkedState.delete(originKey);
74451
+ if (targetKey) {
74452
+ checkedState.set(targetKey, value);
74453
+ }
74454
+ });
74455
+ }
74456
+ else {
74457
+ const length = checkedState.size;
74458
+ for (let key = length - 1; key >= recordIndex; key--) {
74459
+ const record = checkedState.get(key.toString());
74460
+ checkedState.delete(key.toString());
74461
+ checkedState.set((key + count).toString(), record);
74462
+ }
74463
+ }
74464
+ }
74287
74465
 
74288
74466
  function fixUpdateRowRange(diffPositions, col, row, table) {
74289
74467
  const updateCells = [{ col, row }];
@@ -74533,7 +74711,17 @@
74533
74711
  }
74534
74712
  }
74535
74713
  else {
74536
- value = row - this.columnHeaderLevelCount + 1;
74714
+ const define = table.getBodyColumnDefine(col, row);
74715
+ const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
74716
+ if (typeof checkboxSeriesNumberStyle === 'string') {
74717
+ value = checkboxSeriesNumberStyle;
74718
+ }
74719
+ else if (checkboxSeriesNumberStyle?.text) {
74720
+ value = checkboxSeriesNumberStyle.text ?? '';
74721
+ }
74722
+ else {
74723
+ value = row - this.columnHeaderLevelCount + 1;
74724
+ }
74537
74725
  }
74538
74726
  const { format } = table.internalProps.layoutMap.getSeriesNumberBody(col, row);
74539
74727
  return typeof format === 'function' ? format(col, row, this, value) : value;
@@ -79915,9 +80103,14 @@
79915
80103
  if (table.internalProps.layoutMap.isSeriesNumber(col, row)) {
79916
80104
  const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
79917
80105
  if (checkboxSeriesNumberStyle) {
79918
- isChecked = checkboxSeriesNumberStyle.checked;
79919
- isDisabled = checkboxSeriesNumberStyle.disable;
79920
- text = checkboxSeriesNumberStyle.text ?? '';
80106
+ if (typeof checkboxSeriesNumberStyle === 'string') ;
80107
+ else if (typeof checkboxSeriesNumberStyle === 'object') {
80108
+ isChecked = checkboxSeriesNumberStyle.checked;
80109
+ isDisabled = checkboxSeriesNumberStyle.disable;
80110
+ }
80111
+ else if (typeof checkboxSeriesNumberStyle === 'boolean') {
80112
+ isChecked = checkboxSeriesNumberStyle;
80113
+ }
79921
80114
  }
79922
80115
  }
79923
80116
  isChecked = table.stateManager.syncCheckedState(col, row, define.field, isChecked);
@@ -81961,6 +82154,9 @@
81961
82154
  updateCellPositionsRowDirection.push(parentCellAddress);
81962
82155
  }
81963
82156
  }
82157
+ if (!updateCellPositionsRowDirection.some(item => item.col === col && item.row === row)) {
82158
+ updateCellPositionsRowDirection.push({ col, row });
82159
+ }
81964
82160
  return {
81965
82161
  addCellPositionsRowDirection,
81966
82162
  removeCellPositionsRowDirection,
@@ -90840,7 +91036,7 @@
90840
91036
  }
90841
91037
 
90842
91038
  registerForVrender();
90843
- const version = "1.19.4-alpha.2";
91039
+ const version = "1.19.5";
90844
91040
  function getIcons() {
90845
91041
  return get$2();
90846
91042
  }