k-vtable 1.0.10 → 1.0.12

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 (137) hide show
  1. package/cjs/ListTable.js +14 -10
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/core/BaseTable.js +45 -33
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/core/record-helper.js +121 -17
  6. package/cjs/core/record-helper.js.map +1 -1
  7. package/cjs/core/tableHelper.js +1 -1
  8. package/cjs/core/tableHelper.js.map +1 -1
  9. package/cjs/data/CachedDataSource.d.ts +1 -1
  10. package/cjs/data/CachedDataSource.js +6 -6
  11. package/cjs/data/CachedDataSource.js.map +1 -1
  12. package/cjs/dataset/dataset-pivot-table.js +2 -1
  13. package/cjs/dataset/flatDataToObject.js +1 -2
  14. package/cjs/event/event.js +2 -2
  15. package/cjs/event/event.js.map +1 -1
  16. package/cjs/event/listener/table-group.js +6 -4
  17. package/cjs/event/listener/table-group.js.map +1 -1
  18. package/cjs/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  19. package/cjs/event/self-event-listener/base-table/dropdown-menu.js +5 -3
  20. package/cjs/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  21. package/cjs/event/self-event-listener/list-table/checkbox.js +5 -5
  22. package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -1
  23. package/cjs/index.d.ts +1 -1
  24. package/cjs/index.js +1 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/layout/cell-range/simple-cell-range.js +1 -2
  27. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  28. package/cjs/layout/index.js +2 -1
  29. package/cjs/layout/layout-helper.js +1 -1
  30. package/cjs/layout/layout-helper.js.map +1 -1
  31. package/cjs/layout/pivot-header-layout.js +0 -1
  32. package/cjs/layout/simple-header-layout.js +3 -3
  33. package/cjs/layout/simple-header-layout.js.map +1 -1
  34. package/cjs/scenegraph/graphic/chart.js +7 -4
  35. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  36. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +2 -4
  37. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  38. package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
  39. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  40. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  41. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  42. package/cjs/scenegraph/group-creater/column-helper.js +3 -3
  43. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  44. package/cjs/scenegraph/group-creater/init-scenegraph.js +1 -1
  45. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  46. package/cjs/scenegraph/layout/update-height.js +2 -2
  47. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  48. package/cjs/scenegraph/layout/update-width.js +1 -1
  49. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  50. package/cjs/scenegraph/scenegraph.js +1 -1
  51. package/cjs/scenegraph/scenegraph.js.map +1 -1
  52. package/cjs/scenegraph/select/update-select-border.js +6 -5
  53. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  54. package/cjs/scenegraph/utils/get-hierarchy-offset.js +1 -1
  55. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  56. package/cjs/state/checkbox/checkbox.js +7 -6
  57. package/cjs/state/checkbox/checkbox.js.map +1 -1
  58. package/cjs/tools/diff-cell.d.ts +1 -1
  59. package/cjs/tools/diff-cell.js +4 -1
  60. package/cjs/tools/diff-cell.js.map +1 -1
  61. package/cjs/ts-types/base-table.d.ts +8 -1
  62. package/cjs/ts-types/base-table.js.map +1 -1
  63. package/cjs/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  64. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -1
  65. package/cjs/ts-types/table-engine.d.ts +9 -1
  66. package/cjs/ts-types/table-engine.js.map +1 -1
  67. package/cjs/vrender.js.map +1 -1
  68. package/dist/vtable.js +311 -84
  69. package/dist/vtable.min.js +2 -2
  70. package/es/ListTable.js +13 -9
  71. package/es/ListTable.js.map +1 -1
  72. package/es/core/BaseTable.js +45 -33
  73. package/es/core/BaseTable.js.map +1 -1
  74. package/es/core/record-helper.js +120 -14
  75. package/es/core/record-helper.js.map +1 -1
  76. package/es/core/tableHelper.js +1 -1
  77. package/es/core/tableHelper.js.map +1 -1
  78. package/es/data/CachedDataSource.d.ts +1 -1
  79. package/es/data/CachedDataSource.js +6 -6
  80. package/es/data/CachedDataSource.js.map +1 -1
  81. package/es/dataset/dataset-pivot-table.js +2 -1
  82. package/es/dataset/flatDataToObject.js +1 -2
  83. package/es/event/event.js +3 -3
  84. package/es/event/event.js.map +1 -1
  85. package/es/event/listener/table-group.js +6 -4
  86. package/es/event/listener/table-group.js.map +1 -1
  87. package/es/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  88. package/es/event/self-event-listener/base-table/dropdown-menu.js +3 -1
  89. package/es/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  90. package/es/event/self-event-listener/list-table/checkbox.js +5 -5
  91. package/es/event/self-event-listener/list-table/checkbox.js.map +1 -1
  92. package/es/index.d.ts +1 -1
  93. package/es/index.js +1 -1
  94. package/es/index.js.map +1 -1
  95. package/es/layout/cell-range/simple-cell-range.js +1 -2
  96. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  97. package/es/layout/index.js +2 -1
  98. package/es/layout/layout-helper.js +1 -1
  99. package/es/layout/layout-helper.js.map +1 -1
  100. package/es/layout/pivot-header-layout.js +1 -2
  101. package/es/layout/simple-header-layout.js +3 -3
  102. package/es/layout/simple-header-layout.js.map +1 -1
  103. package/es/scenegraph/graphic/chart.js +7 -4
  104. package/es/scenegraph/graphic/chart.js.map +1 -1
  105. package/es/scenegraph/graphic/contributions/group-contribution-render.js +2 -4
  106. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  107. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  108. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  109. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  110. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  111. package/es/scenegraph/group-creater/column-helper.js +2 -2
  112. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  113. package/es/scenegraph/group-creater/init-scenegraph.js +1 -1
  114. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  115. package/es/scenegraph/layout/update-height.js +2 -2
  116. package/es/scenegraph/layout/update-height.js.map +1 -1
  117. package/es/scenegraph/layout/update-width.js +1 -1
  118. package/es/scenegraph/layout/update-width.js.map +1 -1
  119. package/es/scenegraph/scenegraph.js +1 -1
  120. package/es/scenegraph/scenegraph.js.map +1 -1
  121. package/es/scenegraph/select/update-select-border.js +6 -5
  122. package/es/scenegraph/select/update-select-border.js.map +1 -1
  123. package/es/scenegraph/utils/get-hierarchy-offset.js +1 -1
  124. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  125. package/es/state/checkbox/checkbox.js +7 -6
  126. package/es/state/checkbox/checkbox.js.map +1 -1
  127. package/es/tools/diff-cell.d.ts +1 -1
  128. package/es/tools/diff-cell.js +4 -1
  129. package/es/tools/diff-cell.js.map +1 -1
  130. package/es/ts-types/base-table.d.ts +8 -1
  131. package/es/ts-types/base-table.js.map +1 -1
  132. package/es/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  133. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -1
  134. package/es/ts-types/table-engine.d.ts +9 -1
  135. package/es/ts-types/table-engine.js.map +1 -1
  136. package/es/vrender.js.map +1 -1
  137. package/package.json +6 -7
package/dist/vtable.js CHANGED
@@ -39576,13 +39576,14 @@
39576
39576
  }
39577
39577
  }
39578
39578
  this.initTreeHierarchyState();
39579
- this.updatePagerData();
39579
+ this.updatePagination();
39580
39580
  }
39581
39581
  deleteRecordsForTree(recordIndexs) {
39582
39582
  if (!isArray$7(recordIndexs) || recordIndexs.length === 0) {
39583
- return;
39583
+ return [];
39584
39584
  }
39585
39585
  const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);
39586
+ const deletedRecordIndexs = [];
39586
39587
  for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39587
39588
  const recordIndex = recordIndexsMaxToMin[index];
39588
39589
  if (isNumber$4(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {
@@ -39599,9 +39600,11 @@
39599
39600
  parentRecord.children.splice(index, 1);
39600
39601
  }
39601
39602
  this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');
39603
+ deletedRecordIndexs.push(recordIndex);
39602
39604
  }
39603
39605
  this.initTreeHierarchyState();
39604
- this.updatePagerData();
39606
+ this.updatePagination();
39607
+ return deletedRecordIndexs;
39605
39608
  }
39606
39609
  updateRecordsForTree(records, recordIndexs) {
39607
39610
  for (let index = 0; index < recordIndexs.length; index++) {
@@ -39663,7 +39666,7 @@
39663
39666
  }
39664
39667
  cacheBeforeChangedRecord(dataIndex, table) {
39665
39668
  const originRecord = this.getOriginalRecord(dataIndex);
39666
- if (table.options.groupBy) {
39669
+ if (table.internalProps.groupBy) {
39667
39670
  dataIndex = this.getOriginRecordIndexForGroup(dataIndex);
39668
39671
  }
39669
39672
  if (!this.beforeChangedRecordsMap.has(dataIndex.toString())) {
@@ -40226,7 +40229,7 @@
40226
40229
  if (table.options.hierarchyExpandLevel) {
40227
40230
  return table.options.hierarchyExpandLevel;
40228
40231
  }
40229
- else if (table.options.groupBy) {
40232
+ else if (table.internalProps.groupBy) {
40230
40233
  return Infinity;
40231
40234
  }
40232
40235
  return table._hasHierarchyTreeHeader?.() ? 1 : undefined;
@@ -42337,7 +42340,7 @@
42337
42340
  }
42338
42341
  }
42339
42342
  else {
42340
- if (table.options.groupBy ||
42343
+ if (table.internalProps.groupBy ||
42341
42344
  table.getBodyColumnDefine(col, row)?.tree) {
42342
42345
  const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));
42343
42346
  const groupLength = table.dataSource.getGroupLength() ?? 0;
@@ -43618,11 +43621,11 @@
43618
43621
  isVtableMerge = vtableMerge;
43619
43622
  if (vtableMerge) {
43620
43623
  mayHaveIcon = true;
43621
- if (table.options.groupTitleCustomLayout) {
43622
- customResult = dealWithCustom(table.options.groupTitleCustomLayout, undefined, range.start.col, range.start.row, table.getColsWidth(range.start.col, range.end.col), table.getRowsHeight(range.start.row, range.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
43624
+ if (table.internalProps.groupTitleCustomLayout) {
43625
+ customResult = dealWithCustom(table.internalProps.groupTitleCustomLayout, undefined, range.start.col, range.start.row, table.getColsWidth(range.start.col, range.end.col), table.getRowsHeight(range.start.row, range.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
43623
43626
  }
43624
- if (table.options.groupTitleFieldFormat) {
43625
- value = table.options.groupTitleFieldFormat(rawRecord, col, row, table);
43627
+ if (table.internalProps.groupTitleFieldFormat) {
43628
+ value = table.internalProps.groupTitleFieldFormat(rawRecord, col, row, table);
43626
43629
  }
43627
43630
  else if (vtableMergeName !== undefined) {
43628
43631
  value = vtableMergeName;
@@ -44980,7 +44983,7 @@
44980
44983
  }
44981
44984
 
44982
44985
  function updateRowHeight(scene, row, detaY, skipTableHeightMap) {
44983
- if (!skipTableHeightMap) {
44986
+ if (!skipTableHeightMap && detaY) {
44984
44987
  scene.table._setRowHeight(row, scene.table.getRowHeight(row) + detaY, true);
44985
44988
  }
44986
44989
  for (let col = 0; col < scene.table.colCount; col++) {
@@ -45098,8 +45101,8 @@
45098
45101
  let customLayout;
45099
45102
  const cellLocation = scene.table.getCellLocation(col, row);
45100
45103
  const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};
45101
- if (vtableMerge && scene.table.options.groupTitleCustomLayout) {
45102
- customLayout = scene.table.options.groupTitleCustomLayout;
45104
+ if (vtableMerge && scene.table.internalProps.groupTitleCustomLayout) {
45105
+ customLayout = scene.table.internalProps.groupTitleCustomLayout;
45103
45106
  }
45104
45107
  else if (cellLocation !== 'body') {
45105
45108
  const define = scene.table.getHeaderDefine(col, row);
@@ -45455,8 +45458,8 @@
45455
45458
  let customLayout;
45456
45459
  const cellType = scene.table.getCellLocation(col, row);
45457
45460
  const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};
45458
- if (vtableMerge && scene.table.options.groupTitleCustomLayout) {
45459
- customLayout = scene.table.options.groupTitleCustomLayout;
45461
+ if (vtableMerge && scene.table.internalProps.groupTitleCustomLayout) {
45462
+ customLayout = scene.table.internalProps.groupTitleCustomLayout;
45460
45463
  }
45461
45464
  else if (cellType !== 'body') {
45462
45465
  const define = scene.table.getHeaderDefine(col, row);
@@ -47411,13 +47414,15 @@
47411
47414
  stage.needRender = false;
47412
47415
  chartStage.resumeRender();
47413
47416
  },
47414
- afterClearScreen(drawParams) {
47415
- const { context, layer, viewBox } = drawParams;
47416
- if (layer.main) {
47417
- context.beginPath();
47418
- context.fillStyle = hoverColor;
47419
- context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);
47420
- context.fill();
47417
+ renderHooks: {
47418
+ afterClearRect(drawParams) {
47419
+ const { context, layer, viewBox } = drawParams;
47420
+ if (layer.main && drawParams.clear && hoverColor) {
47421
+ context.beginPath();
47422
+ context.fillStyle = hoverColor;
47423
+ context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);
47424
+ context.fill();
47425
+ }
47421
47426
  }
47422
47427
  }
47423
47428
  }));
@@ -48590,7 +48595,7 @@
48590
48595
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb, doFillOrStroke) {
48591
48596
  if (group.__customInfoBefore) {
48592
48597
  const table = group.stage.table;
48593
- if (table && table.stateManager.interactionState !== InteractionState.scrolling) {
48598
+ if (table) {
48594
48599
  group.__customInfoBefore({
48595
48600
  group,
48596
48601
  context,
@@ -48620,7 +48625,7 @@
48620
48625
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
48621
48626
  if (group.__customInfo) {
48622
48627
  const table = group.stage.table;
48623
- if (table && table.stateManager.interactionState !== InteractionState.scrolling) {
48628
+ if (table) {
48624
48629
  group.__customInfo({
48625
48630
  group,
48626
48631
  context,
@@ -49884,11 +49889,11 @@
49884
49889
  isVtableMerge = vtableMerge;
49885
49890
  if (vtableMerge) {
49886
49891
  mayHaveIcon = true;
49887
- if (table.options.groupTitleCustomLayout) {
49888
- customResult = dealWithCustom(table.options.groupTitleCustomLayout, undefined, range.start.col, range.start.row, table.getColsWidth(range.start.col, range.end.col), table.getRowsHeight(range.start.row, range.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
49892
+ if (table.internalProps.groupTitleCustomLayout) {
49893
+ customResult = dealWithCustom(table.internalProps.groupTitleCustomLayout, undefined, range.start.col, range.start.row, table.getColsWidth(range.start.col, range.end.col), table.getRowsHeight(range.start.row, range.end.row), false, table.isAutoRowHeight(row), [0, 0, 0, 0], range, table);
49889
49894
  }
49890
- if (table.options.groupTitleFieldFormat) {
49891
- value = table.options.groupTitleFieldFormat(rawRecord, col, row, table);
49895
+ if (table.internalProps.groupTitleFieldFormat) {
49896
+ value = table.internalProps.groupTitleFieldFormat(rawRecord, col, row, table);
49892
49897
  }
49893
49898
  else if (vtableMergeName !== undefined) {
49894
49899
  value = vtableMergeName;
@@ -51885,11 +51890,12 @@
51885
51890
  const rowsHeight = table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow);
51886
51891
  const firstCellBound = scene.highPerformanceGetCell(computeRectCellRangeStartCol, computeRectCellRangeStartRow).globalAABBBounds;
51887
51892
  selectComp.rect.setAttributes({
51888
- x: firstCellBound.x1 - scene.tableGroup.attribute.x,
51889
- y: firstCellBound.y1 - scene.tableGroup.attribute.y,
51890
- width: colsWidth - 1,
51891
- height: rowsHeight - 1,
51892
- visible: true
51893
+ x: firstCellBound.x1 - scene.tableGroup.attribute.x + 1,
51894
+ y: firstCellBound.y1 - scene.tableGroup.attribute.y + 1,
51895
+ width: colsWidth - 2,
51896
+ height: rowsHeight - 2,
51897
+ visible: true,
51898
+ cornerRadius: 2
51893
51899
  });
51894
51900
  if (selectComp.fillhandle) {
51895
51901
  const fillHandle = scene.table.options.excelOptions?.fillHandle;
@@ -53959,7 +53965,7 @@
53959
53965
  const height = scene.table.tableNoFrameHeight;
53960
53966
  scene.tableGroup = new Group$1({ x: 0, y: 0, width, height, clip: true, pickable: false });
53961
53967
  scene.tableGroup.role = 'table';
53962
- const colHeaderGroup = createContainerGroup(0, 0, !scene.table.options.enableTreeStickCell);
53968
+ const colHeaderGroup = createContainerGroup(0, 0, !scene.table.internalProps.enableTreeStickCell);
53963
53969
  colHeaderGroup.role = 'col-header';
53964
53970
  scene.colHeaderGroup = colHeaderGroup;
53965
53971
  const cornerHeaderGroup = createContainerGroup(0, 0, !scene.table.options.enableTreeStickCell);
@@ -56158,7 +56164,7 @@
56158
56164
  else if (this.table.isAutoRowHeight(this.table.columnHeaderLevelCount)) {
56159
56165
  for (let i = 0; i < updateRows.length; i++) {
56160
56166
  const row = updateRows[i];
56161
- const oldHeight = this.table.getRowHeight(row);
56167
+ const oldHeight = this.table.rowHeightsMap.get(row);
56162
56168
  const newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
56163
56169
  if ((row >= this.proxy.rowStart && row <= this.proxy.rowEnd) ||
56164
56170
  (row >= this.table.rowCount - this.table.bottomFrozenRowCount && row <= this.table.rowCount - 1)) {
@@ -57815,9 +57821,11 @@
57815
57821
  }
57816
57822
  function setHeaderCheckedState(field, checked, state) {
57817
57823
  state.headerCheckedState[field] = checked;
57818
- state.checkedState?.forEach(recordCheckState => {
57819
- recordCheckState[field] = checked;
57820
- });
57824
+ if (state.table.internalProps.enableCheckboxCascade) {
57825
+ state.checkedState?.forEach(recordCheckState => {
57826
+ recordCheckState[field] = checked;
57827
+ });
57828
+ }
57821
57829
  }
57822
57830
  function syncCheckedState(col, row, field, checked, state) {
57823
57831
  if (state.table.isHeader(col, row)) {
@@ -57845,7 +57853,7 @@
57845
57853
  if (state.checkedState.get(dataIndex)) {
57846
57854
  state.checkedState.get(dataIndex)[field] = checked;
57847
57855
  }
57848
- else if (dataIndex.includes(',')) {
57856
+ else if (state.table.internalProps.enableCheckboxCascade && dataIndex.includes(',')) {
57849
57857
  const parentDataIndex = dataIndex.split(',').slice(0, -1).join(',');
57850
57858
  if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {
57851
57859
  state.checkedState.set(dataIndex, {
@@ -57924,7 +57932,7 @@
57924
57932
  ? state.table.getCustomMerge(tableIndex, row)
57925
57933
  : state.table.getCustomMerge(col, tableIndex);
57926
57934
  const data = state.table.dataSource?.get(index);
57927
- if (mergeCell || (!state.table.internalProps.rowSeriesNumber?.enableTreeCheckbox && data?.vtableMerge)) {
57935
+ if (mergeCell || (!state.table.internalProps.enableCheckboxCascade && data?.vtableMerge)) {
57928
57936
  return;
57929
57937
  }
57930
57938
  if (check_state?.[field] !== true) {
@@ -57971,7 +57979,8 @@
57971
57979
  }
57972
57980
  function setCellCheckboxState(col, row, checked, table) {
57973
57981
  const cellGroup = table.scenegraph.getCell(col, row);
57974
- const checkbox = cellGroup?.getChildByName('checkbox');
57982
+ const checkbox = cellGroup?.getChildByName('checkbox') ||
57983
+ cellGroup?.getChildByName('checkbox-content')?._checkboxGroup?.getChildByName('checkbox');
57975
57984
  if (!checkbox) {
57976
57985
  const field = table.getHeaderField(col, row);
57977
57986
  if (table.isHeader(col, row)) {
@@ -60519,19 +60528,23 @@
60519
60528
  };
60520
60529
  if (table.isHeader(col, row)) {
60521
60530
  table.stateManager.setHeaderCheckedState(cellInfo.field, e.detail.checked);
60522
- const cellType = table.getCellType(col, row);
60523
- if (cellType === 'checkbox') {
60524
- table.scenegraph.updateCheckboxCellState(col, row, e.detail.checked);
60531
+ if (table.internalProps.enableHeaderCheckboxCascade) {
60532
+ const cellType = table.getCellType(col, row);
60533
+ if (cellType === 'checkbox') {
60534
+ table.scenegraph.updateCheckboxCellState(col, row, e.detail.checked);
60535
+ }
60525
60536
  }
60526
60537
  }
60527
60538
  else {
60528
60539
  table.stateManager.setCheckedState(col, row, cellInfo.field, e.detail.checked);
60529
- const cellType = table.getCellType(col, row);
60530
- if (cellType === 'checkbox') {
60531
- const oldHeaderCheckedState = table.stateManager.headerCheckedState[cellInfo.field];
60532
- const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(cellInfo.field, col, row);
60533
- if (oldHeaderCheckedState !== newHeaderCheckedState) {
60534
- table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);
60540
+ if (table.internalProps.enableCheckboxCascade) {
60541
+ const cellType = table.getCellType(col, row);
60542
+ if (cellType === 'checkbox') {
60543
+ const oldHeaderCheckedState = table.stateManager.headerCheckedState[cellInfo.field];
60544
+ const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(cellInfo.field, col, row);
60545
+ if (oldHeaderCheckedState !== newHeaderCheckedState) {
60546
+ table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);
60547
+ }
60535
60548
  }
60536
60549
  }
60537
60550
  }
@@ -61872,8 +61885,7 @@
61872
61885
  function bindGroupTitleCheckboxChange(table) {
61873
61886
  table.on('checkbox_state_change', args => {
61874
61887
  const { col, row, checked, field } = args;
61875
- if (!table.internalProps.layoutMap.isSeriesNumber(col, row) ||
61876
- table.internalProps.rowSeriesNumber?.enableTreeCheckbox !== true) {
61888
+ if (!table.internalProps.layoutMap.isSeriesNumber(col, row) || table.internalProps.enableCheckboxCascade !== true) {
61877
61889
  return;
61878
61890
  }
61879
61891
  if (table.isHeader(col, row)) {
@@ -61917,6 +61929,9 @@
61917
61929
  });
61918
61930
  }
61919
61931
  function bindGroupCheckboxTreeChange(table) {
61932
+ if (table.internalProps.enableCheckboxCascade !== true) {
61933
+ return;
61934
+ }
61920
61935
  table.on('checkbox_state_change', args => {
61921
61936
  const { col, row, checked, field } = args;
61922
61937
  const isCheckboxAndTree = table.internalProps.columns.some(column => column.tree);
@@ -62083,6 +62098,9 @@
62083
62098
  });
62084
62099
  }
62085
62100
  function bindHeaderCheckboxChange(table) {
62101
+ if (table.internalProps.enableHeaderCheckboxCascade !== true) {
62102
+ return;
62103
+ }
62086
62104
  table.on('checkbox_state_change', args => {
62087
62105
  const { col, row, checked, field } = args;
62088
62106
  if (table.isHeader(col, row)) {
@@ -62146,10 +62164,13 @@
62146
62164
  });
62147
62165
  }
62148
62166
 
62149
- function bindDropdownMenuClickEvent(table) {
62167
+ function bindDropdownMenuEvent(table) {
62150
62168
  table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, () => {
62151
62169
  table.stateManager.hideMenu();
62152
62170
  });
62171
+ table.on(TABLE_EVENT_TYPE.SCROLL, () => {
62172
+ table.stateManager.hideMenu();
62173
+ });
62153
62174
  }
62154
62175
 
62155
62176
  function bindDBClickAutoColumnWidthEvent(table) {
@@ -62256,7 +62277,7 @@
62256
62277
  return;
62257
62278
  }
62258
62279
  bindIconClickEvent(this.table);
62259
- bindDropdownMenuClickEvent(this.table);
62280
+ bindDropdownMenuEvent(this.table);
62260
62281
  this.updateEventBinder();
62261
62282
  bindMediaClick(this.table);
62262
62283
  bindDBClickAutoColumnWidthEvent(this.table);
@@ -62400,7 +62421,7 @@
62400
62421
  }
62401
62422
  checkColumnResize(eventArgsSet, update) {
62402
62423
  const { eventArgs } = eventArgsSet;
62403
- if (this.table.options.enableTreeStickCell && !eventArgs) {
62424
+ if (this.table.internalProps.enableTreeStickCell && !eventArgs) {
62404
62425
  return false;
62405
62426
  }
62406
62427
  const resizeCol = this.table.scenegraph.getResizeColAt(eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y, eventArgs?.targetCell);
@@ -65397,7 +65418,7 @@
65397
65418
  return count;
65398
65419
  }
65399
65420
  function checkHasTreeDefine(layoutMap) {
65400
- if (layoutMap._table.options.groupBy) {
65421
+ if (layoutMap._table.internalProps.groupBy) {
65401
65422
  return true;
65402
65423
  }
65403
65424
  const { columns } = layoutMap._table.options;
@@ -67231,7 +67252,7 @@
67231
67252
  return TABLE_EVENT_TYPE;
67232
67253
  }
67233
67254
  options;
67234
- version = "1.0.10";
67255
+ version = "1.0.12";
67235
67256
  pagination;
67236
67257
  id = `VTable${Date.now()}`;
67237
67258
  headerStyleCache;
@@ -67271,7 +67292,8 @@
67271
67292
  if (options.customConfig?.imageAnonymous === false) {
67272
67293
  vglobal.isImageAnonymous = false;
67273
67294
  }
67274
- 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;
67295
+ 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;
67296
+ const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
67275
67297
  this.container = container;
67276
67298
  this.options = options;
67277
67299
  this._widthMode = widthMode;
@@ -67357,13 +67379,22 @@
67357
67379
  internalProps.keyboardOptions = keyboardOptions;
67358
67380
  internalProps.eventOptions = eventOptions;
67359
67381
  internalProps.rowSeriesNumber = rowSeriesNumber;
67360
- internalProps.enableCheckboxCascade = enableCheckboxCascade;
67382
+ internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
67383
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
67361
67384
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
67362
67385
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
67363
67386
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
67364
67387
  internalProps.renderChartAsync = renderChartAsync;
67365
67388
  setBatchRenderChartCount(renderChartAsyncBatchCount);
67366
67389
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
67390
+ internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
67391
+ internalProps.groupTitleCheckbox =
67392
+ groupConfig?.titleCheckbox ?? !!rowSeriesNumber?.enableTreeCheckbox;
67393
+ internalProps.groupTitleFieldFormat =
67394
+ groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
67395
+ internalProps.groupTitleCustomLayout =
67396
+ groupConfig?.titleCustomLayout ?? groupTitleCustomLayout;
67397
+ internalProps.enableTreeStickCell = groupConfig?.enableTreeStickCell ?? enableTreeStickCell;
67367
67398
  internalProps._rowHeightsMap = new NumberRangeMap(this);
67368
67399
  internalProps._rowRangeHeightsMap = new Map();
67369
67400
  internalProps._colRangeWidthsMap = new Map();
@@ -68735,7 +68766,8 @@
68735
68766
  this.editorManager?.cancelEdit();
68736
68767
  this.options = options;
68737
68768
  this._hasAutoImageColumn = undefined;
68738
- 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;
68769
+ 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;
68770
+ const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
68739
68771
  if (pixelRatio && pixelRatio !== this.internalProps.pixelRatio) {
68740
68772
  this.internalProps.pixelRatio = pixelRatio;
68741
68773
  }
@@ -68794,7 +68826,8 @@
68794
68826
  internalProps.keyboardOptions = keyboardOptions;
68795
68827
  internalProps.eventOptions = eventOptions;
68796
68828
  internalProps.rowSeriesNumber = rowSeriesNumber;
68797
- internalProps.enableCheckboxCascade = enableCheckboxCascade;
68829
+ internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
68830
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
68798
68831
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
68799
68832
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
68800
68833
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
@@ -68802,6 +68835,13 @@
68802
68835
  setBatchRenderChartCount(renderChartAsyncBatchCount);
68803
68836
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
68804
68837
  internalProps.cellTextOverflows = {};
68838
+ internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
68839
+ internalProps.groupTitleCheckbox = groupConfig?.titleCheckbox;
68840
+ internalProps.groupTitleFieldFormat =
68841
+ groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
68842
+ internalProps.groupTitleCustomLayout =
68843
+ groupConfig?.titleCustomLayout ?? groupTitleCustomLayout;
68844
+ internalProps.enableTreeStickCell = groupConfig?.enableTreeStickCell ?? enableTreeStickCell;
68805
68845
  internalProps._rowHeightsMap = new NumberRangeMap(this);
68806
68846
  internalProps._rowRangeHeightsMap = new Map();
68807
68847
  internalProps._colRangeWidthsMap = new Map();
@@ -69472,7 +69512,7 @@
69472
69512
  icons = this.internalProps.headerHelper.getIcons(col, row);
69473
69513
  }
69474
69514
  else if (this.internalProps.layoutMap.isSeriesNumber(col, row)) {
69475
- if (!this.options.groupBy || !this.getCellRawRecord(col, row)?.vtableMerge) {
69515
+ if (!this.internalProps.groupBy || !this.getCellRawRecord(col, row)?.vtableMerge) {
69476
69516
  const dragOrder = this.internalProps.layoutMap.getSeriesNumberBody(col, row)?.define
69477
69517
  ?.dragOrder;
69478
69518
  if (dragOrder) {
@@ -72072,7 +72112,7 @@
72072
72112
  return;
72073
72113
  }
72074
72114
  const cellRecord = layout._table.getCellRawRecord(col, row);
72075
- if (layout._table.internalProps.rowSeriesNumber?.enableTreeCheckbox) {
72115
+ if (layout._table.internalProps.groupTitleCheckbox && layout._table.internalProps.rowSeriesNumber) {
72076
72116
  if (cellRecord?.vtableMerge && col >= layout.leftRowSeriesNumberColumnCount) {
72077
72117
  cellRange.start.col = layout.rowHeaderLevelCount + layout.leftRowSeriesNumberColumnCount;
72078
72118
  cellRange.end.col = layout.colCount - 1;
@@ -72255,7 +72295,7 @@
72255
72295
  title: rowSeriesNumber.title,
72256
72296
  define: merge$1({ field: '_vtable_rowSeries_number' }, rowSeriesNumber),
72257
72297
  cellType: rowSeriesNumber.cellType ?? 'text',
72258
- headerType: rowSeriesNumber.cellType === 'checkbox' ? 'checkbox' : 'text',
72298
+ headerType: rowSeriesNumber.headerType ?? (rowSeriesNumber.cellType === 'checkbox' ? 'checkbox' : 'text'),
72259
72299
  style: rowSeriesNumber.style,
72260
72300
  width: rowSeriesNumber.width,
72261
72301
  format: rowSeriesNumber.format,
@@ -73881,11 +73921,11 @@
73881
73921
  if (oldCellUpdateType === 'group') {
73882
73922
  return oldCellUpdateType;
73883
73923
  }
73884
- if (oldCellUpdateType === 'sort' && !table.options.groupBy) {
73924
+ if (oldCellUpdateType === 'sort' && !table.internalProps.groupBy) {
73885
73925
  return oldCellUpdateType;
73886
73926
  }
73887
73927
  let cellUpdateType = 'normal';
73888
- if (table.options.groupBy) {
73928
+ if (table.internalProps.groupBy) {
73889
73929
  cellUpdateType = 'group';
73890
73930
  }
73891
73931
  else if (!table.isHeader(col, row) && table.dataSource.lastOrderField) {
@@ -73908,7 +73948,7 @@
73908
73948
  }
73909
73949
  }
73910
73950
  function listTableAddRecord(record, recordIndex, table) {
73911
- if (table.options.groupBy) {
73951
+ if (table.internalProps.groupBy) {
73912
73952
  table.dataSource.addRecordsForGroup?.([record], recordIndex);
73913
73953
  table.refreshRowColCount();
73914
73954
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -73918,6 +73958,7 @@
73918
73958
  }
73919
73959
  else if (table.dataSource.rowHierarchyType === 'tree') {
73920
73960
  table.dataSource.addRecordsForTree?.([record], recordIndex);
73961
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73921
73962
  table.refreshRowColCount();
73922
73963
  table.internalProps.layoutMap.clearCellRangeMap();
73923
73964
  table.sortState && sortRecords(table);
@@ -73926,6 +73967,7 @@
73926
73967
  }
73927
73968
  else if (table.sortState) {
73928
73969
  table.dataSource.addRecordForSorted(record);
73970
+ table.stateManager.checkedState.clear();
73929
73971
  sortRecords(table);
73930
73972
  table.refreshRowColCount();
73931
73973
  table.scenegraph.clearCells();
@@ -73938,6 +73980,7 @@
73938
73980
  }
73939
73981
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
73940
73982
  table.dataSource.addRecord(record, recordIndex);
73983
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73941
73984
  const oldRowCount = table.rowCount;
73942
73985
  table.refreshRowColCount();
73943
73986
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -74009,7 +74052,7 @@
74009
74052
  }
74010
74053
  }
74011
74054
  function listTableAddRecords(records, recordIndex, table) {
74012
- if (table.options.groupBy) {
74055
+ if (table.internalProps.groupBy) {
74013
74056
  table.dataSource.addRecordsForGroup?.(records, recordIndex);
74014
74057
  table.refreshRowColCount();
74015
74058
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74019,6 +74062,7 @@
74019
74062
  }
74020
74063
  else if (table.dataSource.rowHierarchyType === 'tree') {
74021
74064
  table.dataSource.addRecordsForTree?.(records, recordIndex);
74065
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
74022
74066
  table.refreshRowColCount();
74023
74067
  table.internalProps.layoutMap.clearCellRangeMap();
74024
74068
  table.sortState && sortRecords(table);
@@ -74042,6 +74086,7 @@
74042
74086
  }
74043
74087
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
74044
74088
  table.dataSource.addRecords(records, recordIndex);
74089
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
74045
74090
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
74046
74091
  table.refreshRowColCount();
74047
74092
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -74127,7 +74172,7 @@
74127
74172
  }
74128
74173
  function listTableDeleteRecords(recordIndexs, table) {
74129
74174
  if (recordIndexs?.length > 0) {
74130
- if (table.options.groupBy) {
74175
+ if (table.internalProps.groupBy) {
74131
74176
  table.dataSource.deleteRecordsForGroup?.(recordIndexs);
74132
74177
  table.refreshRowColCount();
74133
74178
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74136,7 +74181,13 @@
74136
74181
  table.scenegraph.createSceneGraph();
74137
74182
  }
74138
74183
  else if (table.dataSource.rowHierarchyType === 'tree') {
74139
- table.dataSource.deleteRecordsForTree?.(recordIndexs);
74184
+ const deletedRecordIndexs = table.dataSource.deleteRecordsForTree?.(recordIndexs);
74185
+ if (deletedRecordIndexs.length === 0) {
74186
+ return;
74187
+ }
74188
+ for (let index = 0; index < deletedRecordIndexs.length; index++) {
74189
+ adjustCheckBoxStateMapWithDeleteRecordIndex(table, deletedRecordIndexs[index], 1);
74190
+ }
74140
74191
  table.refreshRowColCount();
74141
74192
  table.internalProps.layoutMap.clearCellRangeMap();
74142
74193
  table.sortState && sortRecords(table);
@@ -74255,7 +74306,7 @@
74255
74306
  }
74256
74307
  function listTableUpdateRecords(records, recordIndexs, table) {
74257
74308
  if (recordIndexs?.length > 0) {
74258
- if (table.options.groupBy) {
74309
+ if (table.internalProps.groupBy) {
74259
74310
  table.dataSource.updateRecordsForGroup?.(records, recordIndexs);
74260
74311
  table.refreshRowColCount();
74261
74312
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74364,6 +74415,158 @@
74364
74415
  }
74365
74416
  }
74366
74417
  }
74418
+ function adjustCheckBoxStateMapWithDeleteRecordIndex(table, recordIndex, count) {
74419
+ const { checkedState } = table.stateManager;
74420
+ if (!checkedState) {
74421
+ return;
74422
+ }
74423
+ if (table.dataSource.rowHierarchyType === 'tree') {
74424
+ let toOperateIndexArr;
74425
+ if (isNumber$4(recordIndex)) {
74426
+ toOperateIndexArr = [recordIndex];
74427
+ }
74428
+ else {
74429
+ toOperateIndexArr = recordIndex;
74430
+ }
74431
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74432
+ const targetResult = [];
74433
+ checkedState.forEach((value, key) => {
74434
+ const keyArray = key.split(',');
74435
+ if (keyArray.length >= toOperateIndexArr.length) {
74436
+ for (let i = 0; i < keyArray.length; i++) {
74437
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74438
+ const keyIndex = Number(keyArray[i]);
74439
+ if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74440
+ else if ((toOperateIndex === keyIndex && i === keyArray.length - 1) || toOperateIndex === -1) {
74441
+ targetResult.push({
74442
+ originKey: key,
74443
+ value
74444
+ });
74445
+ break;
74446
+ }
74447
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74448
+ keyArray[i] = (keyIndex - count).toString();
74449
+ targetResult.push({
74450
+ originKey: key,
74451
+ targetKey: keyArray.toString(),
74452
+ value
74453
+ });
74454
+ break;
74455
+ }
74456
+ else {
74457
+ break;
74458
+ }
74459
+ }
74460
+ }
74461
+ });
74462
+ targetResult.sort((a, b) => {
74463
+ const aArray = a.originKey.split(',');
74464
+ const bArray = b.originKey.split(',');
74465
+ const aLength = aArray.length;
74466
+ const bLength = bArray.length;
74467
+ const minLength = Math.min(aLength, bLength);
74468
+ for (let i = 0; i < minLength; i++) {
74469
+ const aIndex = Number(aArray[i]);
74470
+ const bIndex = Number(bArray[i]);
74471
+ if (aIndex !== bIndex) {
74472
+ return aIndex - bIndex;
74473
+ }
74474
+ }
74475
+ return aLength - bLength;
74476
+ });
74477
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74478
+ checkedState.delete(originKey);
74479
+ if (targetKey) {
74480
+ checkedState.set(targetKey, value);
74481
+ }
74482
+ });
74483
+ }
74484
+ else {
74485
+ const length = checkedState.size;
74486
+ for (let key = length - 1; key >= recordIndex; key--) {
74487
+ const record = checkedState.get(key.toString());
74488
+ checkedState.delete(key.toString());
74489
+ checkedState.set((key - count).toString(), record);
74490
+ }
74491
+ }
74492
+ }
74493
+ function adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, count) {
74494
+ const { checkedState } = table.stateManager;
74495
+ if (!checkedState) {
74496
+ return;
74497
+ }
74498
+ if (table.dataSource.rowHierarchyType === 'tree') {
74499
+ let toOperateIndexArr;
74500
+ if (isNumber$4(recordIndex)) {
74501
+ toOperateIndexArr = [recordIndex];
74502
+ }
74503
+ else {
74504
+ toOperateIndexArr = recordIndex;
74505
+ }
74506
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74507
+ const targetResult = [];
74508
+ checkedState.forEach((value, key) => {
74509
+ const keyArray = key.split(',');
74510
+ if (keyArray.length >= toOperateIndexArr.length) {
74511
+ for (let i = 0; i < keyArray.length; i++) {
74512
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74513
+ const keyIndex = Number(keyArray[i]);
74514
+ if (toOperateIndex === keyIndex && (i === keyArray.length - 1 || i === toOperateIndexArrLength - 1)) {
74515
+ keyArray[i] = (keyIndex + count).toString();
74516
+ targetResult.push({
74517
+ originKey: key,
74518
+ targetKey: keyArray.toString(),
74519
+ value
74520
+ });
74521
+ break;
74522
+ }
74523
+ else if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74524
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74525
+ keyArray[i] = (keyIndex + count).toString();
74526
+ targetResult.push({
74527
+ originKey: key,
74528
+ targetKey: keyArray.toString(),
74529
+ value
74530
+ });
74531
+ break;
74532
+ }
74533
+ else {
74534
+ break;
74535
+ }
74536
+ }
74537
+ }
74538
+ });
74539
+ targetResult.sort((a, b) => {
74540
+ const aArray = a.originKey.split(',');
74541
+ const bArray = b.originKey.split(',');
74542
+ const aLength = aArray.length;
74543
+ const bLength = bArray.length;
74544
+ const minLength = Math.min(aLength, bLength);
74545
+ for (let i = 0; i < minLength; i++) {
74546
+ const aIndex = Number(aArray[i]);
74547
+ const bIndex = Number(bArray[i]);
74548
+ if (aIndex !== bIndex) {
74549
+ return -aIndex + bIndex;
74550
+ }
74551
+ }
74552
+ return -aLength + bLength;
74553
+ });
74554
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74555
+ checkedState.delete(originKey);
74556
+ if (targetKey) {
74557
+ checkedState.set(targetKey, value);
74558
+ }
74559
+ });
74560
+ }
74561
+ else {
74562
+ const length = checkedState.size;
74563
+ for (let key = length - 1; key >= recordIndex; key--) {
74564
+ const record = checkedState.get(key.toString());
74565
+ checkedState.delete(key.toString());
74566
+ checkedState.set((key + count).toString(), record);
74567
+ }
74568
+ }
74569
+ }
74367
74570
 
74368
74571
  function fixUpdateRowRange(diffPositions, col, row, table) {
74369
74572
  const updateCells = [{ col, row }];
@@ -74442,14 +74645,15 @@
74442
74645
  this.pagination = options.pagination;
74443
74646
  internalProps.sortState = options.sortState;
74444
74647
  internalProps.multipleSort = !!options.multipleSort;
74445
- internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {};
74648
+ internalProps.dataConfig = this.internalProps.groupBy ? getGroupByDataConfig(this.internalProps.groupBy) : {};
74446
74649
  internalProps.columns = options.columns
74447
74650
  ? cloneDeepSpec(options.columns, ['children'])
74448
74651
  : options.header
74449
74652
  ? cloneDeepSpec(options.header, ['children'])
74450
74653
  : [];
74451
74654
  generateAggregationForColumn(this);
74452
- internalProps.enableTreeNodeMerge = options.enableTreeNodeMerge ?? isValid$3(options.groupBy) ?? false;
74655
+ internalProps.enableTreeNodeMerge =
74656
+ options.enableTreeNodeMerge ?? isValid$3(this.internalProps.groupBy) ?? false;
74453
74657
  this.internalProps.headerHelper.setTableColumnsEditor();
74454
74658
  this.showHeader = options.showHeader ?? true;
74455
74659
  this.internalProps.columnWidthConfig = options.columnWidthConfig;
@@ -74483,7 +74687,7 @@
74483
74687
  this.internalProps.emptyTip?.resetVisible();
74484
74688
  }
74485
74689
  }
74486
- if (options.enableTreeStickCell) {
74690
+ if (this.internalProps.enableTreeStickCell) {
74487
74691
  const ListTreeStickCellPlugin = Factory.getComponent('listTreeStickCellPlugin');
74488
74692
  this.listTreeStickCellPlugin = new ListTreeStickCellPlugin(this);
74489
74693
  }
@@ -74602,7 +74806,7 @@
74602
74806
  return title;
74603
74807
  }
74604
74808
  let value;
74605
- if (this.options.groupBy) {
74809
+ if (this.internalProps.groupBy) {
74606
74810
  const record = table.getCellRawRecord(col, row);
74607
74811
  if (record?.vtableMerge) {
74608
74812
  return '';
@@ -74612,7 +74816,17 @@
74612
74816
  }
74613
74817
  }
74614
74818
  else {
74615
- value = row - this.columnHeaderLevelCount + 1;
74819
+ const define = table.getBodyColumnDefine(col, row);
74820
+ const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
74821
+ if (typeof checkboxSeriesNumberStyle === 'string') {
74822
+ value = checkboxSeriesNumberStyle;
74823
+ }
74824
+ else if (checkboxSeriesNumberStyle?.text) {
74825
+ value = checkboxSeriesNumberStyle.text ?? '';
74826
+ }
74827
+ else {
74828
+ value = row - this.columnHeaderLevelCount + 1;
74829
+ }
74616
74830
  }
74617
74831
  const { format } = table.internalProps.layoutMap.getSeriesNumberBody(col, row);
74618
74832
  return typeof format === 'function' ? format(col, row, this, value) : value;
@@ -74747,7 +74961,9 @@
74747
74961
  options.dragOrder?.frozenColDragHeaderMode ?? options.frozenColDragHeaderMode;
74748
74962
  this.pagination = options.pagination;
74749
74963
  internalProps.sortState = options.sortState;
74750
- internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {};
74964
+ internalProps.dataConfig = this.internalProps.groupBy
74965
+ ? getGroupByDataConfig(this.internalProps.groupBy)
74966
+ : {};
74751
74967
  this.showHeader = options.showHeader ?? true;
74752
74968
  internalProps.columns = options.columns
74753
74969
  ? cloneDeepSpec(options.columns, ['children'])
@@ -74755,7 +74971,8 @@
74755
74971
  ? cloneDeepSpec(options.header, ['children'])
74756
74972
  : [];
74757
74973
  generateAggregationForColumn(this);
74758
- internalProps.enableTreeNodeMerge = options.enableTreeNodeMerge ?? isValid$3(options.groupBy) ?? false;
74974
+ internalProps.enableTreeNodeMerge =
74975
+ options.enableTreeNodeMerge ?? isValid$3(this.internalProps.groupBy) ?? false;
74759
74976
  this.internalProps.headerHelper.setTableColumnsEditor();
74760
74977
  this.transpose = options.transpose ?? false;
74761
74978
  this.refreshHeader();
@@ -75000,7 +75217,9 @@
75000
75217
  if (this.isHeader(col, row)) {
75001
75218
  return this._getHeaderLayoutMap(col, row)?.hierarchyState;
75002
75219
  }
75003
- if (!this.options.groupBy || (isArray$7(this.options.groupBy) && this.options.groupBy.length === 0)) {
75220
+ if (!this.internalProps.groupBy ||
75221
+ (isArray$7(this.internalProps.groupBy) &&
75222
+ this.internalProps.groupBy.length === 0)) {
75004
75223
  const define = this.getBodyColumnDefine(col, row);
75005
75224
  if (!define.tree) {
75006
75225
  return HierarchyState.none;
@@ -75460,7 +75679,7 @@
75460
75679
  return this.internalProps.layoutMap.isAggregation(col, row);
75461
75680
  }
75462
75681
  getGroupTitleLevel(col, row) {
75463
- if (!this.options.groupBy) {
75682
+ if (!this.internalProps.groupBy) {
75464
75683
  return undefined;
75465
75684
  }
75466
75685
  const indexArr = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row));
@@ -79989,9 +80208,14 @@
79989
80208
  if (table.internalProps.layoutMap.isSeriesNumber(col, row)) {
79990
80209
  const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
79991
80210
  if (checkboxSeriesNumberStyle) {
79992
- isChecked = checkboxSeriesNumberStyle.checked;
79993
- isDisabled = checkboxSeriesNumberStyle.disable;
79994
- text = checkboxSeriesNumberStyle.text ?? '';
80211
+ if (typeof checkboxSeriesNumberStyle === 'string') ;
80212
+ else if (typeof checkboxSeriesNumberStyle === 'object') {
80213
+ isChecked = checkboxSeriesNumberStyle.checked;
80214
+ isDisabled = checkboxSeriesNumberStyle.disable;
80215
+ }
80216
+ else if (typeof checkboxSeriesNumberStyle === 'boolean') {
80217
+ isChecked = checkboxSeriesNumberStyle;
80218
+ }
79995
80219
  }
79996
80220
  }
79997
80221
  isChecked = table.stateManager.syncCheckedState(col, row, define.field, isChecked);
@@ -82035,6 +82259,9 @@
82035
82259
  updateCellPositionsRowDirection.push(parentCellAddress);
82036
82260
  }
82037
82261
  }
82262
+ if (!updateCellPositionsRowDirection.some(item => item.col === col && item.row === row)) {
82263
+ updateCellPositionsRowDirection.push({ col, row });
82264
+ }
82038
82265
  return {
82039
82266
  addCellPositionsRowDirection,
82040
82267
  removeCellPositionsRowDirection,
@@ -90914,7 +91141,7 @@
90914
91141
  }
90915
91142
 
90916
91143
  registerForVrender();
90917
- const version = "1.0.10";
91144
+ const version = "1.0.12";
90918
91145
  function getIcons() {
90919
91146
  return get$2();
90920
91147
  }