k-vtable 1.0.11 → 1.0.13

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 (135) hide show
  1. package/cjs/ListTable.js +15 -11
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/core/BaseTable.js +47 -33
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/core/group-helper.d.ts +3 -1
  6. package/cjs/core/group-helper.js +5 -3
  7. package/cjs/core/group-helper.js.map +1 -1
  8. package/cjs/core/record-helper.js +121 -17
  9. package/cjs/core/record-helper.js.map +1 -1
  10. package/cjs/core/tableHelper.js +1 -1
  11. package/cjs/core/tableHelper.js.map +1 -1
  12. package/cjs/data/CachedDataSource.d.ts +1 -1
  13. package/cjs/data/CachedDataSource.js +7 -6
  14. package/cjs/data/CachedDataSource.js.map +1 -1
  15. package/cjs/event/event.js +2 -2
  16. package/cjs/event/event.js.map +1 -1
  17. package/cjs/event/listener/table-group.js +6 -4
  18. package/cjs/event/listener/table-group.js.map +1 -1
  19. package/cjs/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  20. package/cjs/event/self-event-listener/base-table/dropdown-menu.js +5 -3
  21. package/cjs/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  22. package/cjs/event/self-event-listener/list-table/checkbox.js +5 -5
  23. package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -1
  24. package/cjs/index.d.ts +1 -1
  25. package/cjs/index.js +1 -1
  26. package/cjs/index.js.map +1 -1
  27. package/cjs/layout/cell-range/simple-cell-range.js +2 -2
  28. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  29. package/cjs/layout/layout-helper.js +1 -1
  30. package/cjs/layout/layout-helper.js.map +1 -1
  31. package/cjs/layout/simple-header-layout.js +3 -3
  32. package/cjs/layout/simple-header-layout.js.map +1 -1
  33. package/cjs/scenegraph/graphic/chart.js +7 -4
  34. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  35. package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
  36. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  37. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  38. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  39. package/cjs/scenegraph/group-creater/column-helper.js +3 -3
  40. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  41. package/cjs/scenegraph/group-creater/init-scenegraph.js +1 -1
  42. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  43. package/cjs/scenegraph/layout/update-height.js +2 -2
  44. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  45. package/cjs/scenegraph/layout/update-width.js +1 -1
  46. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  47. package/cjs/scenegraph/scenegraph.js +1 -1
  48. package/cjs/scenegraph/scenegraph.js.map +1 -1
  49. package/cjs/scenegraph/select/update-select-border.js +27 -11
  50. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  51. package/cjs/scenegraph/utils/get-hierarchy-offset.js +1 -1
  52. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  53. package/cjs/state/checkbox/checkbox.js +7 -6
  54. package/cjs/state/checkbox/checkbox.js.map +1 -1
  55. package/cjs/tools/diff-cell.d.ts +1 -1
  56. package/cjs/tools/diff-cell.js +4 -1
  57. package/cjs/tools/diff-cell.js.map +1 -1
  58. package/cjs/ts-types/base-table.d.ts +10 -1
  59. package/cjs/ts-types/base-table.js.map +1 -1
  60. package/cjs/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  61. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -1
  62. package/cjs/ts-types/new-data-set.d.ts +1 -0
  63. package/cjs/ts-types/new-data-set.js.map +1 -1
  64. package/cjs/ts-types/table-engine.d.ts +12 -1
  65. package/cjs/ts-types/table-engine.js.map +1 -1
  66. package/cjs/vrender.js.map +1 -1
  67. package/dist/vtable.js +341 -85
  68. package/dist/vtable.min.js +2 -2
  69. package/es/ListTable.js +13 -9
  70. package/es/ListTable.js.map +1 -1
  71. package/es/core/BaseTable.js +47 -33
  72. package/es/core/BaseTable.js.map +1 -1
  73. package/es/core/group-helper.d.ts +3 -1
  74. package/es/core/group-helper.js +5 -3
  75. package/es/core/group-helper.js.map +1 -1
  76. package/es/core/record-helper.js +120 -14
  77. package/es/core/record-helper.js.map +1 -1
  78. package/es/core/tableHelper.js +1 -1
  79. package/es/core/tableHelper.js.map +1 -1
  80. package/es/data/CachedDataSource.d.ts +1 -1
  81. package/es/data/CachedDataSource.js +7 -6
  82. package/es/data/CachedDataSource.js.map +1 -1
  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 +2 -2
  96. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  97. package/es/layout/layout-helper.js +1 -1
  98. package/es/layout/layout-helper.js.map +1 -1
  99. package/es/layout/simple-header-layout.js +3 -3
  100. package/es/layout/simple-header-layout.js.map +1 -1
  101. package/es/scenegraph/graphic/chart.js +7 -4
  102. package/es/scenegraph/graphic/chart.js.map +1 -1
  103. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  104. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  105. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  106. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  107. package/es/scenegraph/group-creater/column-helper.js +2 -2
  108. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  109. package/es/scenegraph/group-creater/init-scenegraph.js +1 -1
  110. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  111. package/es/scenegraph/layout/update-height.js +2 -2
  112. package/es/scenegraph/layout/update-height.js.map +1 -1
  113. package/es/scenegraph/layout/update-width.js +1 -1
  114. package/es/scenegraph/layout/update-width.js.map +1 -1
  115. package/es/scenegraph/scenegraph.js +1 -1
  116. package/es/scenegraph/scenegraph.js.map +1 -1
  117. package/es/scenegraph/select/update-select-border.js +23 -9
  118. package/es/scenegraph/select/update-select-border.js.map +1 -1
  119. package/es/scenegraph/utils/get-hierarchy-offset.js +1 -1
  120. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  121. package/es/state/checkbox/checkbox.js +7 -6
  122. package/es/state/checkbox/checkbox.js.map +1 -1
  123. package/es/tools/diff-cell.d.ts +1 -1
  124. package/es/tools/diff-cell.js +4 -1
  125. package/es/tools/diff-cell.js.map +1 -1
  126. package/es/ts-types/base-table.d.ts +10 -1
  127. package/es/ts-types/base-table.js.map +1 -1
  128. package/es/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  129. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -1
  130. package/es/ts-types/new-data-set.d.ts +1 -0
  131. package/es/ts-types/new-data-set.js.map +1 -1
  132. package/es/ts-types/table-engine.d.ts +12 -1
  133. package/es/ts-types/table-engine.js.map +1 -1
  134. package/es/vrender.js.map +1 -1
  135. package/package.json +6 -7
package/dist/vtable.js CHANGED
@@ -39460,6 +39460,9 @@
39460
39460
  this.groupAggregator = new this.registedAggregators[AggregationType.CUSTOM]({
39461
39461
  field: '',
39462
39462
  aggregationFun: (values, records, field) => {
39463
+ if (this.dataConfig.customDealGroupData) {
39464
+ return this.dataConfig.customDealGroupData(records);
39465
+ }
39463
39466
  const groupMap = new Map();
39464
39467
  const groupResult = [];
39465
39468
  for (let i = 0; i < records.length; i++) {
@@ -39576,13 +39579,14 @@
39576
39579
  }
39577
39580
  }
39578
39581
  this.initTreeHierarchyState();
39579
- this.updatePagerData();
39582
+ this.updatePagination();
39580
39583
  }
39581
39584
  deleteRecordsForTree(recordIndexs) {
39582
39585
  if (!isArray$7(recordIndexs) || recordIndexs.length === 0) {
39583
- return;
39586
+ return [];
39584
39587
  }
39585
39588
  const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);
39589
+ const deletedRecordIndexs = [];
39586
39590
  for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39587
39591
  const recordIndex = recordIndexsMaxToMin[index];
39588
39592
  if (isNumber$4(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {
@@ -39599,9 +39603,11 @@
39599
39603
  parentRecord.children.splice(index, 1);
39600
39604
  }
39601
39605
  this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');
39606
+ deletedRecordIndexs.push(recordIndex);
39602
39607
  }
39603
39608
  this.initTreeHierarchyState();
39604
- this.updatePagerData();
39609
+ this.updatePagination();
39610
+ return deletedRecordIndexs;
39605
39611
  }
39606
39612
  updateRecordsForTree(records, recordIndexs) {
39607
39613
  for (let index = 0; index < recordIndexs.length; index++) {
@@ -39663,7 +39669,7 @@
39663
39669
  }
39664
39670
  cacheBeforeChangedRecord(dataIndex, table) {
39665
39671
  const originRecord = this.getOriginalRecord(dataIndex);
39666
- if (table.options.groupBy) {
39672
+ if (table.internalProps.groupBy) {
39667
39673
  dataIndex = this.getOriginRecordIndexForGroup(dataIndex);
39668
39674
  }
39669
39675
  if (!this.beforeChangedRecordsMap.has(dataIndex.toString())) {
@@ -40226,7 +40232,7 @@
40226
40232
  if (table.options.hierarchyExpandLevel) {
40227
40233
  return table.options.hierarchyExpandLevel;
40228
40234
  }
40229
- else if (table.options.groupBy) {
40235
+ else if (table.internalProps.groupBy) {
40230
40236
  return Infinity;
40231
40237
  }
40232
40238
  return table._hasHierarchyTreeHeader?.() ? 1 : undefined;
@@ -42337,7 +42343,7 @@
42337
42343
  }
42338
42344
  }
42339
42345
  else {
42340
- if (table.options.groupBy ||
42346
+ if (table.internalProps.groupBy ||
42341
42347
  table.getBodyColumnDefine(col, row)?.tree) {
42342
42348
  const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));
42343
42349
  const groupLength = table.dataSource.getGroupLength() ?? 0;
@@ -43618,11 +43624,11 @@
43618
43624
  isVtableMerge = vtableMerge;
43619
43625
  if (vtableMerge) {
43620
43626
  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);
43627
+ if (table.internalProps.groupTitleCustomLayout) {
43628
+ 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
43629
  }
43624
- if (table.options.groupTitleFieldFormat) {
43625
- value = table.options.groupTitleFieldFormat(rawRecord, col, row, table);
43630
+ if (table.internalProps.groupTitleFieldFormat) {
43631
+ value = table.internalProps.groupTitleFieldFormat(rawRecord, col, row, table);
43626
43632
  }
43627
43633
  else if (vtableMergeName !== undefined) {
43628
43634
  value = vtableMergeName;
@@ -44980,7 +44986,7 @@
44980
44986
  }
44981
44987
 
44982
44988
  function updateRowHeight(scene, row, detaY, skipTableHeightMap) {
44983
- if (!skipTableHeightMap) {
44989
+ if (!skipTableHeightMap && detaY) {
44984
44990
  scene.table._setRowHeight(row, scene.table.getRowHeight(row) + detaY, true);
44985
44991
  }
44986
44992
  for (let col = 0; col < scene.table.colCount; col++) {
@@ -45098,8 +45104,8 @@
45098
45104
  let customLayout;
45099
45105
  const cellLocation = scene.table.getCellLocation(col, row);
45100
45106
  const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};
45101
- if (vtableMerge && scene.table.options.groupTitleCustomLayout) {
45102
- customLayout = scene.table.options.groupTitleCustomLayout;
45107
+ if (vtableMerge && scene.table.internalProps.groupTitleCustomLayout) {
45108
+ customLayout = scene.table.internalProps.groupTitleCustomLayout;
45103
45109
  }
45104
45110
  else if (cellLocation !== 'body') {
45105
45111
  const define = scene.table.getHeaderDefine(col, row);
@@ -45455,8 +45461,8 @@
45455
45461
  let customLayout;
45456
45462
  const cellType = scene.table.getCellLocation(col, row);
45457
45463
  const { vtableMerge } = scene.table.getCellRawRecord(col, row) || {};
45458
- if (vtableMerge && scene.table.options.groupTitleCustomLayout) {
45459
- customLayout = scene.table.options.groupTitleCustomLayout;
45464
+ if (vtableMerge && scene.table.internalProps.groupTitleCustomLayout) {
45465
+ customLayout = scene.table.internalProps.groupTitleCustomLayout;
45460
45466
  }
45461
45467
  else if (cellType !== 'body') {
45462
45468
  const define = scene.table.getHeaderDefine(col, row);
@@ -47411,13 +47417,15 @@
47411
47417
  stage.needRender = false;
47412
47418
  chartStage.resumeRender();
47413
47419
  },
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();
47420
+ renderHooks: {
47421
+ afterClearRect(drawParams) {
47422
+ const { context, layer, viewBox } = drawParams;
47423
+ if (layer.main && drawParams.clear && hoverColor) {
47424
+ context.beginPath();
47425
+ context.fillStyle = hoverColor;
47426
+ context.rect(viewBox.x1, viewBox.y1, viewBox.x2 - viewBox.x1, viewBox.y2 - viewBox.y1);
47427
+ context.fill();
47428
+ }
47421
47429
  }
47422
47430
  }
47423
47431
  }));
@@ -49884,11 +49892,11 @@
49884
49892
  isVtableMerge = vtableMerge;
49885
49893
  if (vtableMerge) {
49886
49894
  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);
49895
+ if (table.internalProps.groupTitleCustomLayout) {
49896
+ 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
49897
  }
49890
- if (table.options.groupTitleFieldFormat) {
49891
- value = table.options.groupTitleFieldFormat(rawRecord, col, row, table);
49898
+ if (table.internalProps.groupTitleFieldFormat) {
49899
+ value = table.internalProps.groupTitleFieldFormat(rawRecord, col, row, table);
49892
49900
  }
49893
49901
  else if (vtableMergeName !== undefined) {
49894
49902
  value = vtableMergeName;
@@ -51885,11 +51893,12 @@
51885
51893
  const rowsHeight = table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow);
51886
51894
  const firstCellBound = scene.highPerformanceGetCell(computeRectCellRangeStartCol, computeRectCellRangeStartRow).globalAABBBounds;
51887
51895
  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
51896
+ x: firstCellBound.x1 - scene.tableGroup.attribute.x + 1,
51897
+ y: firstCellBound.y1 - scene.tableGroup.attribute.y + 1,
51898
+ width: colsWidth - 2,
51899
+ height: rowsHeight - 2,
51900
+ visible: true,
51901
+ cornerRadius: 2
51893
51902
  });
51894
51903
  if (selectComp.fillhandle) {
51895
51904
  const fillHandle = scene.table.options.excelOptions?.fillHandle;
@@ -52094,6 +52103,21 @@
52094
52103
  });
52095
52104
  }
52096
52105
  }
52106
+ const resetGroupCell = (table, col, row, mergeInfo) => {
52107
+ if (mergeInfo) {
52108
+ const record = table.getRecordByRowCol(mergeInfo.start.col, mergeInfo.start.row);
52109
+ if (record && record.vtableMerge) {
52110
+ mergeInfo.start = {
52111
+ col,
52112
+ row
52113
+ };
52114
+ mergeInfo.end = {
52115
+ col,
52116
+ row
52117
+ };
52118
+ }
52119
+ }
52120
+ };
52097
52121
  function updateCellSelectBorder(scene, selectRange, ifExtendSelectRange = true) {
52098
52122
  const table = scene.table;
52099
52123
  const newStartCol = selectRange.start.col;
@@ -52114,6 +52138,7 @@
52114
52138
  continue;
52115
52139
  }
52116
52140
  const mergeInfo = getCellMergeInfo(table, col, row);
52141
+ resetGroupCell(table, col, row, mergeInfo);
52117
52142
  if (mergeInfo && mergeInfo.start.col < startCol) {
52118
52143
  startCol = mergeInfo.start.col;
52119
52144
  isExtend = true;
@@ -52127,6 +52152,7 @@
52127
52152
  continue;
52128
52153
  }
52129
52154
  const mergeInfo = getCellMergeInfo(table, col, row);
52155
+ resetGroupCell(table, col, row, mergeInfo);
52130
52156
  if (mergeInfo && Math.min(mergeInfo.end.col, table.colCount - 1) > endCol) {
52131
52157
  endCol = mergeInfo.end.col;
52132
52158
  isExtend = true;
@@ -52146,6 +52172,7 @@
52146
52172
  continue;
52147
52173
  }
52148
52174
  const mergeInfo = getCellMergeInfo(table, col, row);
52175
+ resetGroupCell(table, col, row, mergeInfo);
52149
52176
  if (mergeInfo && mergeInfo.start.row < startRow) {
52150
52177
  startRow = mergeInfo.start.row;
52151
52178
  isExtend = true;
@@ -52159,6 +52186,7 @@
52159
52186
  continue;
52160
52187
  }
52161
52188
  const mergeInfo = getCellMergeInfo(table, col, row);
52189
+ resetGroupCell(table, col, row, mergeInfo);
52162
52190
  if (mergeInfo && Math.min(mergeInfo.end.row, table.rowCount - 1) > endRow) {
52163
52191
  endRow = mergeInfo.end.row;
52164
52192
  isExtend = true;
@@ -53959,7 +53987,7 @@
53959
53987
  const height = scene.table.tableNoFrameHeight;
53960
53988
  scene.tableGroup = new Group$1({ x: 0, y: 0, width, height, clip: true, pickable: false });
53961
53989
  scene.tableGroup.role = 'table';
53962
- const colHeaderGroup = createContainerGroup(0, 0, !scene.table.options.enableTreeStickCell);
53990
+ const colHeaderGroup = createContainerGroup(0, 0, !scene.table.internalProps.enableTreeStickCell);
53963
53991
  colHeaderGroup.role = 'col-header';
53964
53992
  scene.colHeaderGroup = colHeaderGroup;
53965
53993
  const cornerHeaderGroup = createContainerGroup(0, 0, !scene.table.options.enableTreeStickCell);
@@ -56158,7 +56186,7 @@
56158
56186
  else if (this.table.isAutoRowHeight(this.table.columnHeaderLevelCount)) {
56159
56187
  for (let i = 0; i < updateRows.length; i++) {
56160
56188
  const row = updateRows[i];
56161
- const oldHeight = this.table.getRowHeight(row);
56189
+ const oldHeight = this.table.rowHeightsMap.get(row);
56162
56190
  const newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
56163
56191
  if ((row >= this.proxy.rowStart && row <= this.proxy.rowEnd) ||
56164
56192
  (row >= this.table.rowCount - this.table.bottomFrozenRowCount && row <= this.table.rowCount - 1)) {
@@ -57815,9 +57843,11 @@
57815
57843
  }
57816
57844
  function setHeaderCheckedState(field, checked, state) {
57817
57845
  state.headerCheckedState[field] = checked;
57818
- state.checkedState?.forEach(recordCheckState => {
57819
- recordCheckState[field] = checked;
57820
- });
57846
+ if (state.table.internalProps.enableCheckboxCascade) {
57847
+ state.checkedState?.forEach(recordCheckState => {
57848
+ recordCheckState[field] = checked;
57849
+ });
57850
+ }
57821
57851
  }
57822
57852
  function syncCheckedState(col, row, field, checked, state) {
57823
57853
  if (state.table.isHeader(col, row)) {
@@ -57845,7 +57875,7 @@
57845
57875
  if (state.checkedState.get(dataIndex)) {
57846
57876
  state.checkedState.get(dataIndex)[field] = checked;
57847
57877
  }
57848
- else if (dataIndex.includes(',')) {
57878
+ else if (state.table.internalProps.enableCheckboxCascade && dataIndex.includes(',')) {
57849
57879
  const parentDataIndex = dataIndex.split(',').slice(0, -1).join(',');
57850
57880
  if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {
57851
57881
  state.checkedState.set(dataIndex, {
@@ -57924,7 +57954,7 @@
57924
57954
  ? state.table.getCustomMerge(tableIndex, row)
57925
57955
  : state.table.getCustomMerge(col, tableIndex);
57926
57956
  const data = state.table.dataSource?.get(index);
57927
- if (mergeCell || (!state.table.internalProps.rowSeriesNumber?.enableTreeCheckbox && data?.vtableMerge)) {
57957
+ if (mergeCell || (!state.table.internalProps.enableCheckboxCascade && data?.vtableMerge)) {
57928
57958
  return;
57929
57959
  }
57930
57960
  if (check_state?.[field] !== true) {
@@ -57971,7 +58001,8 @@
57971
58001
  }
57972
58002
  function setCellCheckboxState(col, row, checked, table) {
57973
58003
  const cellGroup = table.scenegraph.getCell(col, row);
57974
- const checkbox = cellGroup?.getChildByName('checkbox');
58004
+ const checkbox = cellGroup?.getChildByName('checkbox') ||
58005
+ cellGroup?.getChildByName('checkbox-content')?._checkboxGroup?.getChildByName('checkbox');
57975
58006
  if (!checkbox) {
57976
58007
  const field = table.getHeaderField(col, row);
57977
58008
  if (table.isHeader(col, row)) {
@@ -60519,19 +60550,23 @@
60519
60550
  };
60520
60551
  if (table.isHeader(col, row)) {
60521
60552
  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);
60553
+ if (table.internalProps.enableHeaderCheckboxCascade) {
60554
+ const cellType = table.getCellType(col, row);
60555
+ if (cellType === 'checkbox') {
60556
+ table.scenegraph.updateCheckboxCellState(col, row, e.detail.checked);
60557
+ }
60525
60558
  }
60526
60559
  }
60527
60560
  else {
60528
60561
  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);
60562
+ if (table.internalProps.enableCheckboxCascade) {
60563
+ const cellType = table.getCellType(col, row);
60564
+ if (cellType === 'checkbox') {
60565
+ const oldHeaderCheckedState = table.stateManager.headerCheckedState[cellInfo.field];
60566
+ const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(cellInfo.field, col, row);
60567
+ if (oldHeaderCheckedState !== newHeaderCheckedState) {
60568
+ table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);
60569
+ }
60535
60570
  }
60536
60571
  }
60537
60572
  }
@@ -61872,8 +61907,7 @@
61872
61907
  function bindGroupTitleCheckboxChange(table) {
61873
61908
  table.on('checkbox_state_change', args => {
61874
61909
  const { col, row, checked, field } = args;
61875
- if (!table.internalProps.layoutMap.isSeriesNumber(col, row) ||
61876
- table.internalProps.rowSeriesNumber?.enableTreeCheckbox !== true) {
61910
+ if (!table.internalProps.layoutMap.isSeriesNumber(col, row) || table.internalProps.enableCheckboxCascade !== true) {
61877
61911
  return;
61878
61912
  }
61879
61913
  if (table.isHeader(col, row)) {
@@ -61917,6 +61951,9 @@
61917
61951
  });
61918
61952
  }
61919
61953
  function bindGroupCheckboxTreeChange(table) {
61954
+ if (table.internalProps.enableCheckboxCascade !== true) {
61955
+ return;
61956
+ }
61920
61957
  table.on('checkbox_state_change', args => {
61921
61958
  const { col, row, checked, field } = args;
61922
61959
  const isCheckboxAndTree = table.internalProps.columns.some(column => column.tree);
@@ -62083,6 +62120,9 @@
62083
62120
  });
62084
62121
  }
62085
62122
  function bindHeaderCheckboxChange(table) {
62123
+ if (table.internalProps.enableHeaderCheckboxCascade !== true) {
62124
+ return;
62125
+ }
62086
62126
  table.on('checkbox_state_change', args => {
62087
62127
  const { col, row, checked, field } = args;
62088
62128
  if (table.isHeader(col, row)) {
@@ -62146,10 +62186,13 @@
62146
62186
  });
62147
62187
  }
62148
62188
 
62149
- function bindDropdownMenuClickEvent(table) {
62189
+ function bindDropdownMenuEvent(table) {
62150
62190
  table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, () => {
62151
62191
  table.stateManager.hideMenu();
62152
62192
  });
62193
+ table.on(TABLE_EVENT_TYPE.SCROLL, () => {
62194
+ table.stateManager.hideMenu();
62195
+ });
62153
62196
  }
62154
62197
 
62155
62198
  function bindDBClickAutoColumnWidthEvent(table) {
@@ -62256,7 +62299,7 @@
62256
62299
  return;
62257
62300
  }
62258
62301
  bindIconClickEvent(this.table);
62259
- bindDropdownMenuClickEvent(this.table);
62302
+ bindDropdownMenuEvent(this.table);
62260
62303
  this.updateEventBinder();
62261
62304
  bindMediaClick(this.table);
62262
62305
  bindDBClickAutoColumnWidthEvent(this.table);
@@ -62400,7 +62443,7 @@
62400
62443
  }
62401
62444
  checkColumnResize(eventArgsSet, update) {
62402
62445
  const { eventArgs } = eventArgsSet;
62403
- if (this.table.options.enableTreeStickCell && !eventArgs) {
62446
+ if (this.table.internalProps.enableTreeStickCell && !eventArgs) {
62404
62447
  return false;
62405
62448
  }
62406
62449
  const resizeCol = this.table.scenegraph.getResizeColAt(eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y, eventArgs?.targetCell);
@@ -65397,7 +65440,7 @@
65397
65440
  return count;
65398
65441
  }
65399
65442
  function checkHasTreeDefine(layoutMap) {
65400
- if (layoutMap._table.options.groupBy) {
65443
+ if (layoutMap._table.internalProps.groupBy) {
65401
65444
  return true;
65402
65445
  }
65403
65446
  const { columns } = layoutMap._table.options;
@@ -67231,7 +67274,7 @@
67231
67274
  return TABLE_EVENT_TYPE;
67232
67275
  }
67233
67276
  options;
67234
- version = "1.0.11";
67277
+ version = "1.0.13";
67235
67278
  pagination;
67236
67279
  id = `VTable${Date.now()}`;
67237
67280
  headerStyleCache;
@@ -67271,7 +67314,8 @@
67271
67314
  if (options.customConfig?.imageAnonymous === false) {
67272
67315
  vglobal.isImageAnonymous = false;
67273
67316
  }
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;
67317
+ 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;
67318
+ const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
67275
67319
  this.container = container;
67276
67320
  this.options = options;
67277
67321
  this._widthMode = widthMode;
@@ -67357,13 +67401,24 @@
67357
67401
  internalProps.keyboardOptions = keyboardOptions;
67358
67402
  internalProps.eventOptions = eventOptions;
67359
67403
  internalProps.rowSeriesNumber = rowSeriesNumber;
67360
- internalProps.enableCheckboxCascade = enableCheckboxCascade;
67404
+ internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
67405
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
67361
67406
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
67362
67407
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
67363
67408
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
67364
67409
  internalProps.renderChartAsync = renderChartAsync;
67365
67410
  setBatchRenderChartCount(renderChartAsyncBatchCount);
67366
67411
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
67412
+ internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
67413
+ internalProps.groupTitleCheckbox =
67414
+ groupConfig?.titleCheckbox ?? !!rowSeriesNumber?.enableTreeCheckbox;
67415
+ internalProps.groupCellMerge = groupConfig?.groupCellMerge;
67416
+ internalProps.customDealGroupData = groupConfig?.customDealGroupData;
67417
+ internalProps.groupTitleFieldFormat =
67418
+ groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
67419
+ internalProps.groupTitleCustomLayout =
67420
+ groupConfig?.titleCustomLayout ?? groupTitleCustomLayout;
67421
+ internalProps.enableTreeStickCell = groupConfig?.enableTreeStickCell ?? enableTreeStickCell;
67367
67422
  internalProps._rowHeightsMap = new NumberRangeMap(this);
67368
67423
  internalProps._rowRangeHeightsMap = new Map();
67369
67424
  internalProps._colRangeWidthsMap = new Map();
@@ -68735,7 +68790,8 @@
68735
68790
  this.editorManager?.cancelEdit();
68736
68791
  this.options = options;
68737
68792
  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;
68793
+ 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;
68794
+ const { groupConfig, groupBy, groupTitleFieldFormat, groupTitleCustomLayout, enableTreeStickCell } = options;
68739
68795
  if (pixelRatio && pixelRatio !== this.internalProps.pixelRatio) {
68740
68796
  this.internalProps.pixelRatio = pixelRatio;
68741
68797
  }
@@ -68794,7 +68850,8 @@
68794
68850
  internalProps.keyboardOptions = keyboardOptions;
68795
68851
  internalProps.eventOptions = eventOptions;
68796
68852
  internalProps.rowSeriesNumber = rowSeriesNumber;
68797
- internalProps.enableCheckboxCascade = enableCheckboxCascade;
68853
+ internalProps.enableCheckboxCascade = enableCheckboxCascade ?? rowSeriesNumber?.enableTreeCheckbox ?? true;
68854
+ internalProps.enableHeaderCheckboxCascade = enableCheckboxCascade || (enableHeaderCheckboxCascade ?? true);
68798
68855
  internalProps.columnResizeMode = resize?.columnResizeMode ?? columnResizeMode;
68799
68856
  internalProps.rowResizeMode = resize?.rowResizeMode ?? rowResizeMode;
68800
68857
  internalProps.dragHeaderMode = dragOrder?.dragHeaderMode ?? dragHeaderMode ?? 'none';
@@ -68802,6 +68859,13 @@
68802
68859
  setBatchRenderChartCount(renderChartAsyncBatchCount);
68803
68860
  internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
68804
68861
  internalProps.cellTextOverflows = {};
68862
+ internalProps.groupBy = groupConfig?.groupBy ?? groupBy;
68863
+ internalProps.groupTitleCheckbox = groupConfig?.titleCheckbox;
68864
+ internalProps.groupTitleFieldFormat =
68865
+ groupConfig?.titleFieldFormat ?? groupTitleFieldFormat;
68866
+ internalProps.groupTitleCustomLayout =
68867
+ groupConfig?.titleCustomLayout ?? groupTitleCustomLayout;
68868
+ internalProps.enableTreeStickCell = groupConfig?.enableTreeStickCell ?? enableTreeStickCell;
68805
68869
  internalProps._rowHeightsMap = new NumberRangeMap(this);
68806
68870
  internalProps._rowRangeHeightsMap = new Map();
68807
68871
  internalProps._colRangeWidthsMap = new Map();
@@ -69472,7 +69536,7 @@
69472
69536
  icons = this.internalProps.headerHelper.getIcons(col, row);
69473
69537
  }
69474
69538
  else if (this.internalProps.layoutMap.isSeriesNumber(col, row)) {
69475
- if (!this.options.groupBy || !this.getCellRawRecord(col, row)?.vtableMerge) {
69539
+ if (!this.internalProps.groupBy || !this.getCellRawRecord(col, row)?.vtableMerge) {
69476
69540
  const dragOrder = this.internalProps.layoutMap.getSeriesNumberBody(col, row)?.define
69477
69541
  ?.dragOrder;
69478
69542
  if (dragOrder) {
@@ -72071,8 +72135,11 @@
72071
72135
  if (layout.rowHierarchyType !== 'tree') {
72072
72136
  return;
72073
72137
  }
72138
+ if (layout._table.internalProps.groupCellMerge) {
72139
+ return layout._table.internalProps.groupCellMerge(col, row, cellRange, layout);
72140
+ }
72074
72141
  const cellRecord = layout._table.getCellRawRecord(col, row);
72075
- if (layout._table.internalProps.rowSeriesNumber?.enableTreeCheckbox) {
72142
+ if (layout._table.internalProps.groupTitleCheckbox && layout._table.internalProps.rowSeriesNumber) {
72076
72143
  if (cellRecord?.vtableMerge && col >= layout.leftRowSeriesNumberColumnCount) {
72077
72144
  cellRange.start.col = layout.rowHeaderLevelCount + layout.leftRowSeriesNumberColumnCount;
72078
72145
  cellRange.end.col = layout.colCount - 1;
@@ -72255,7 +72322,7 @@
72255
72322
  title: rowSeriesNumber.title,
72256
72323
  define: merge$1({ field: '_vtable_rowSeries_number' }, rowSeriesNumber),
72257
72324
  cellType: rowSeriesNumber.cellType ?? 'text',
72258
- headerType: rowSeriesNumber.cellType === 'checkbox' ? 'checkbox' : 'text',
72325
+ headerType: rowSeriesNumber.headerType ?? (rowSeriesNumber.cellType === 'checkbox' ? 'checkbox' : 'text'),
72259
72326
  style: rowSeriesNumber.style,
72260
72327
  width: rowSeriesNumber.width,
72261
72328
  format: rowSeriesNumber.format,
@@ -73622,9 +73689,9 @@
73622
73689
  return false;
73623
73690
  }
73624
73691
 
73625
- function getGroupByDataConfig(groupByOption) {
73692
+ function getGroupByDataConfig(groupByOption, customDealGroupData) {
73626
73693
  if (isString$4(groupByOption)) {
73627
- return { groupByRules: [groupByOption] };
73694
+ return { groupByRules: [groupByOption], customDealGroupData };
73628
73695
  }
73629
73696
  if (isArray$7(groupByOption)) {
73630
73697
  const groupByRules = groupByOption.map(item => {
@@ -73633,7 +73700,7 @@
73633
73700
  }
73634
73701
  return item.key;
73635
73702
  });
73636
- return { groupByRules };
73703
+ return { groupByRules, customDealGroupData };
73637
73704
  }
73638
73705
  return {};
73639
73706
  }
@@ -73881,11 +73948,11 @@
73881
73948
  if (oldCellUpdateType === 'group') {
73882
73949
  return oldCellUpdateType;
73883
73950
  }
73884
- if (oldCellUpdateType === 'sort' && !table.options.groupBy) {
73951
+ if (oldCellUpdateType === 'sort' && !table.internalProps.groupBy) {
73885
73952
  return oldCellUpdateType;
73886
73953
  }
73887
73954
  let cellUpdateType = 'normal';
73888
- if (table.options.groupBy) {
73955
+ if (table.internalProps.groupBy) {
73889
73956
  cellUpdateType = 'group';
73890
73957
  }
73891
73958
  else if (!table.isHeader(col, row) && table.dataSource.lastOrderField) {
@@ -73908,7 +73975,7 @@
73908
73975
  }
73909
73976
  }
73910
73977
  function listTableAddRecord(record, recordIndex, table) {
73911
- if (table.options.groupBy) {
73978
+ if (table.internalProps.groupBy) {
73912
73979
  table.dataSource.addRecordsForGroup?.([record], recordIndex);
73913
73980
  table.refreshRowColCount();
73914
73981
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -73918,6 +73985,7 @@
73918
73985
  }
73919
73986
  else if (table.dataSource.rowHierarchyType === 'tree') {
73920
73987
  table.dataSource.addRecordsForTree?.([record], recordIndex);
73988
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73921
73989
  table.refreshRowColCount();
73922
73990
  table.internalProps.layoutMap.clearCellRangeMap();
73923
73991
  table.sortState && sortRecords(table);
@@ -73926,6 +73994,7 @@
73926
73994
  }
73927
73995
  else if (table.sortState) {
73928
73996
  table.dataSource.addRecordForSorted(record);
73997
+ table.stateManager.checkedState.clear();
73929
73998
  sortRecords(table);
73930
73999
  table.refreshRowColCount();
73931
74000
  table.scenegraph.clearCells();
@@ -73938,6 +74007,7 @@
73938
74007
  }
73939
74008
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
73940
74009
  table.dataSource.addRecord(record, recordIndex);
74010
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
73941
74011
  const oldRowCount = table.rowCount;
73942
74012
  table.refreshRowColCount();
73943
74013
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -74009,7 +74079,7 @@
74009
74079
  }
74010
74080
  }
74011
74081
  function listTableAddRecords(records, recordIndex, table) {
74012
- if (table.options.groupBy) {
74082
+ if (table.internalProps.groupBy) {
74013
74083
  table.dataSource.addRecordsForGroup?.(records, recordIndex);
74014
74084
  table.refreshRowColCount();
74015
74085
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74019,6 +74089,7 @@
74019
74089
  }
74020
74090
  else if (table.dataSource.rowHierarchyType === 'tree') {
74021
74091
  table.dataSource.addRecordsForTree?.(records, recordIndex);
74092
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
74022
74093
  table.refreshRowColCount();
74023
74094
  table.internalProps.layoutMap.clearCellRangeMap();
74024
74095
  table.sortState && sortRecords(table);
@@ -74042,6 +74113,7 @@
74042
74113
  }
74043
74114
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
74044
74115
  table.dataSource.addRecords(records, recordIndex);
74116
+ adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
74045
74117
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
74046
74118
  table.refreshRowColCount();
74047
74119
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -74127,7 +74199,7 @@
74127
74199
  }
74128
74200
  function listTableDeleteRecords(recordIndexs, table) {
74129
74201
  if (recordIndexs?.length > 0) {
74130
- if (table.options.groupBy) {
74202
+ if (table.internalProps.groupBy) {
74131
74203
  table.dataSource.deleteRecordsForGroup?.(recordIndexs);
74132
74204
  table.refreshRowColCount();
74133
74205
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74136,7 +74208,13 @@
74136
74208
  table.scenegraph.createSceneGraph();
74137
74209
  }
74138
74210
  else if (table.dataSource.rowHierarchyType === 'tree') {
74139
- table.dataSource.deleteRecordsForTree?.(recordIndexs);
74211
+ const deletedRecordIndexs = table.dataSource.deleteRecordsForTree?.(recordIndexs);
74212
+ if (deletedRecordIndexs.length === 0) {
74213
+ return;
74214
+ }
74215
+ for (let index = 0; index < deletedRecordIndexs.length; index++) {
74216
+ adjustCheckBoxStateMapWithDeleteRecordIndex(table, deletedRecordIndexs[index], 1);
74217
+ }
74140
74218
  table.refreshRowColCount();
74141
74219
  table.internalProps.layoutMap.clearCellRangeMap();
74142
74220
  table.sortState && sortRecords(table);
@@ -74255,7 +74333,7 @@
74255
74333
  }
74256
74334
  function listTableUpdateRecords(records, recordIndexs, table) {
74257
74335
  if (recordIndexs?.length > 0) {
74258
- if (table.options.groupBy) {
74336
+ if (table.internalProps.groupBy) {
74259
74337
  table.dataSource.updateRecordsForGroup?.(records, recordIndexs);
74260
74338
  table.refreshRowColCount();
74261
74339
  table.internalProps.layoutMap.clearCellRangeMap();
@@ -74364,6 +74442,158 @@
74364
74442
  }
74365
74443
  }
74366
74444
  }
74445
+ function adjustCheckBoxStateMapWithDeleteRecordIndex(table, recordIndex, count) {
74446
+ const { checkedState } = table.stateManager;
74447
+ if (!checkedState) {
74448
+ return;
74449
+ }
74450
+ if (table.dataSource.rowHierarchyType === 'tree') {
74451
+ let toOperateIndexArr;
74452
+ if (isNumber$4(recordIndex)) {
74453
+ toOperateIndexArr = [recordIndex];
74454
+ }
74455
+ else {
74456
+ toOperateIndexArr = recordIndex;
74457
+ }
74458
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74459
+ const targetResult = [];
74460
+ checkedState.forEach((value, key) => {
74461
+ const keyArray = key.split(',');
74462
+ if (keyArray.length >= toOperateIndexArr.length) {
74463
+ for (let i = 0; i < keyArray.length; i++) {
74464
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74465
+ const keyIndex = Number(keyArray[i]);
74466
+ if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74467
+ else if ((toOperateIndex === keyIndex && i === keyArray.length - 1) || toOperateIndex === -1) {
74468
+ targetResult.push({
74469
+ originKey: key,
74470
+ value
74471
+ });
74472
+ break;
74473
+ }
74474
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74475
+ keyArray[i] = (keyIndex - count).toString();
74476
+ targetResult.push({
74477
+ originKey: key,
74478
+ targetKey: keyArray.toString(),
74479
+ value
74480
+ });
74481
+ break;
74482
+ }
74483
+ else {
74484
+ break;
74485
+ }
74486
+ }
74487
+ }
74488
+ });
74489
+ targetResult.sort((a, b) => {
74490
+ const aArray = a.originKey.split(',');
74491
+ const bArray = b.originKey.split(',');
74492
+ const aLength = aArray.length;
74493
+ const bLength = bArray.length;
74494
+ const minLength = Math.min(aLength, bLength);
74495
+ for (let i = 0; i < minLength; i++) {
74496
+ const aIndex = Number(aArray[i]);
74497
+ const bIndex = Number(bArray[i]);
74498
+ if (aIndex !== bIndex) {
74499
+ return aIndex - bIndex;
74500
+ }
74501
+ }
74502
+ return aLength - bLength;
74503
+ });
74504
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74505
+ checkedState.delete(originKey);
74506
+ if (targetKey) {
74507
+ checkedState.set(targetKey, value);
74508
+ }
74509
+ });
74510
+ }
74511
+ else {
74512
+ const length = checkedState.size;
74513
+ for (let key = length - 1; key >= recordIndex; key--) {
74514
+ const record = checkedState.get(key.toString());
74515
+ checkedState.delete(key.toString());
74516
+ checkedState.set((key - count).toString(), record);
74517
+ }
74518
+ }
74519
+ }
74520
+ function adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, count) {
74521
+ const { checkedState } = table.stateManager;
74522
+ if (!checkedState) {
74523
+ return;
74524
+ }
74525
+ if (table.dataSource.rowHierarchyType === 'tree') {
74526
+ let toOperateIndexArr;
74527
+ if (isNumber$4(recordIndex)) {
74528
+ toOperateIndexArr = [recordIndex];
74529
+ }
74530
+ else {
74531
+ toOperateIndexArr = recordIndex;
74532
+ }
74533
+ const toOperateIndexArrLength = toOperateIndexArr.length;
74534
+ const targetResult = [];
74535
+ checkedState.forEach((value, key) => {
74536
+ const keyArray = key.split(',');
74537
+ if (keyArray.length >= toOperateIndexArr.length) {
74538
+ for (let i = 0; i < keyArray.length; i++) {
74539
+ const toOperateIndex = toOperateIndexArr[i] ?? -1;
74540
+ const keyIndex = Number(keyArray[i]);
74541
+ if (toOperateIndex === keyIndex && (i === keyArray.length - 1 || i === toOperateIndexArrLength - 1)) {
74542
+ keyArray[i] = (keyIndex + count).toString();
74543
+ targetResult.push({
74544
+ originKey: key,
74545
+ targetKey: keyArray.toString(),
74546
+ value
74547
+ });
74548
+ break;
74549
+ }
74550
+ else if (toOperateIndex === keyIndex && i < keyArray.length - 1) ;
74551
+ else if (toOperateIndex < keyIndex && i === toOperateIndexArrLength - 1) {
74552
+ keyArray[i] = (keyIndex + count).toString();
74553
+ targetResult.push({
74554
+ originKey: key,
74555
+ targetKey: keyArray.toString(),
74556
+ value
74557
+ });
74558
+ break;
74559
+ }
74560
+ else {
74561
+ break;
74562
+ }
74563
+ }
74564
+ }
74565
+ });
74566
+ targetResult.sort((a, b) => {
74567
+ const aArray = a.originKey.split(',');
74568
+ const bArray = b.originKey.split(',');
74569
+ const aLength = aArray.length;
74570
+ const bLength = bArray.length;
74571
+ const minLength = Math.min(aLength, bLength);
74572
+ for (let i = 0; i < minLength; i++) {
74573
+ const aIndex = Number(aArray[i]);
74574
+ const bIndex = Number(bArray[i]);
74575
+ if (aIndex !== bIndex) {
74576
+ return -aIndex + bIndex;
74577
+ }
74578
+ }
74579
+ return -aLength + bLength;
74580
+ });
74581
+ targetResult.forEach(({ originKey, targetKey, value }) => {
74582
+ checkedState.delete(originKey);
74583
+ if (targetKey) {
74584
+ checkedState.set(targetKey, value);
74585
+ }
74586
+ });
74587
+ }
74588
+ else {
74589
+ const length = checkedState.size;
74590
+ for (let key = length - 1; key >= recordIndex; key--) {
74591
+ const record = checkedState.get(key.toString());
74592
+ checkedState.delete(key.toString());
74593
+ checkedState.set((key + count).toString(), record);
74594
+ }
74595
+ }
74596
+ }
74367
74597
 
74368
74598
  function fixUpdateRowRange(diffPositions, col, row, table) {
74369
74599
  const updateCells = [{ col, row }];
@@ -74442,14 +74672,17 @@
74442
74672
  this.pagination = options.pagination;
74443
74673
  internalProps.sortState = options.sortState;
74444
74674
  internalProps.multipleSort = !!options.multipleSort;
74445
- internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {};
74675
+ internalProps.dataConfig = this.internalProps.groupBy
74676
+ ? getGroupByDataConfig(this.internalProps.groupBy, this.internalProps.customDealGroupData)
74677
+ : {};
74446
74678
  internalProps.columns = options.columns
74447
74679
  ? cloneDeepSpec(options.columns, ['children'])
74448
74680
  : options.header
74449
74681
  ? cloneDeepSpec(options.header, ['children'])
74450
74682
  : [];
74451
74683
  generateAggregationForColumn(this);
74452
- internalProps.enableTreeNodeMerge = options.enableTreeNodeMerge ?? isValid$3(options.groupBy) ?? false;
74684
+ internalProps.enableTreeNodeMerge =
74685
+ options.enableTreeNodeMerge ?? isValid$3(this.internalProps.groupBy) ?? false;
74453
74686
  this.internalProps.headerHelper.setTableColumnsEditor();
74454
74687
  this.showHeader = options.showHeader ?? true;
74455
74688
  this.internalProps.columnWidthConfig = options.columnWidthConfig;
@@ -74483,7 +74716,7 @@
74483
74716
  this.internalProps.emptyTip?.resetVisible();
74484
74717
  }
74485
74718
  }
74486
- if (options.enableTreeStickCell) {
74719
+ if (this.internalProps.enableTreeStickCell) {
74487
74720
  const ListTreeStickCellPlugin = Factory.getComponent('listTreeStickCellPlugin');
74488
74721
  this.listTreeStickCellPlugin = new ListTreeStickCellPlugin(this);
74489
74722
  }
@@ -74602,7 +74835,7 @@
74602
74835
  return title;
74603
74836
  }
74604
74837
  let value;
74605
- if (this.options.groupBy) {
74838
+ if (this.internalProps.groupBy) {
74606
74839
  const record = table.getCellRawRecord(col, row);
74607
74840
  if (record?.vtableMerge) {
74608
74841
  return '';
@@ -74612,7 +74845,17 @@
74612
74845
  }
74613
74846
  }
74614
74847
  else {
74615
- value = row - this.columnHeaderLevelCount + 1;
74848
+ const define = table.getBodyColumnDefine(col, row);
74849
+ const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
74850
+ if (typeof checkboxSeriesNumberStyle === 'string') {
74851
+ value = checkboxSeriesNumberStyle;
74852
+ }
74853
+ else if (checkboxSeriesNumberStyle?.text) {
74854
+ value = checkboxSeriesNumberStyle.text ?? '';
74855
+ }
74856
+ else {
74857
+ value = row - this.columnHeaderLevelCount + 1;
74858
+ }
74616
74859
  }
74617
74860
  const { format } = table.internalProps.layoutMap.getSeriesNumberBody(col, row);
74618
74861
  return typeof format === 'function' ? format(col, row, this, value) : value;
@@ -74747,7 +74990,9 @@
74747
74990
  options.dragOrder?.frozenColDragHeaderMode ?? options.frozenColDragHeaderMode;
74748
74991
  this.pagination = options.pagination;
74749
74992
  internalProps.sortState = options.sortState;
74750
- internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {};
74993
+ internalProps.dataConfig = this.internalProps.groupBy
74994
+ ? getGroupByDataConfig(this.internalProps.groupBy, this.internalProps.customDealGroupData)
74995
+ : {};
74751
74996
  this.showHeader = options.showHeader ?? true;
74752
74997
  internalProps.columns = options.columns
74753
74998
  ? cloneDeepSpec(options.columns, ['children'])
@@ -74755,7 +75000,8 @@
74755
75000
  ? cloneDeepSpec(options.header, ['children'])
74756
75001
  : [];
74757
75002
  generateAggregationForColumn(this);
74758
- internalProps.enableTreeNodeMerge = options.enableTreeNodeMerge ?? isValid$3(options.groupBy) ?? false;
75003
+ internalProps.enableTreeNodeMerge =
75004
+ options.enableTreeNodeMerge ?? isValid$3(this.internalProps.groupBy) ?? false;
74759
75005
  this.internalProps.headerHelper.setTableColumnsEditor();
74760
75006
  this.transpose = options.transpose ?? false;
74761
75007
  this.refreshHeader();
@@ -75000,7 +75246,9 @@
75000
75246
  if (this.isHeader(col, row)) {
75001
75247
  return this._getHeaderLayoutMap(col, row)?.hierarchyState;
75002
75248
  }
75003
- if (!this.options.groupBy || (isArray$7(this.options.groupBy) && this.options.groupBy.length === 0)) {
75249
+ if (!this.internalProps.groupBy ||
75250
+ (isArray$7(this.internalProps.groupBy) &&
75251
+ this.internalProps.groupBy.length === 0)) {
75004
75252
  const define = this.getBodyColumnDefine(col, row);
75005
75253
  if (!define.tree) {
75006
75254
  return HierarchyState.none;
@@ -75460,7 +75708,7 @@
75460
75708
  return this.internalProps.layoutMap.isAggregation(col, row);
75461
75709
  }
75462
75710
  getGroupTitleLevel(col, row) {
75463
- if (!this.options.groupBy) {
75711
+ if (!this.internalProps.groupBy) {
75464
75712
  return undefined;
75465
75713
  }
75466
75714
  const indexArr = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row));
@@ -79989,9 +80237,14 @@
79989
80237
  if (table.internalProps.layoutMap.isSeriesNumber(col, row)) {
79990
80238
  const checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
79991
80239
  if (checkboxSeriesNumberStyle) {
79992
- isChecked = checkboxSeriesNumberStyle.checked;
79993
- isDisabled = checkboxSeriesNumberStyle.disable;
79994
- text = checkboxSeriesNumberStyle.text ?? '';
80240
+ if (typeof checkboxSeriesNumberStyle === 'string') ;
80241
+ else if (typeof checkboxSeriesNumberStyle === 'object') {
80242
+ isChecked = checkboxSeriesNumberStyle.checked;
80243
+ isDisabled = checkboxSeriesNumberStyle.disable;
80244
+ }
80245
+ else if (typeof checkboxSeriesNumberStyle === 'boolean') {
80246
+ isChecked = checkboxSeriesNumberStyle;
80247
+ }
79995
80248
  }
79996
80249
  }
79997
80250
  isChecked = table.stateManager.syncCheckedState(col, row, define.field, isChecked);
@@ -82035,6 +82288,9 @@
82035
82288
  updateCellPositionsRowDirection.push(parentCellAddress);
82036
82289
  }
82037
82290
  }
82291
+ if (!updateCellPositionsRowDirection.some(item => item.col === col && item.row === row)) {
82292
+ updateCellPositionsRowDirection.push({ col, row });
82293
+ }
82038
82294
  return {
82039
82295
  addCellPositionsRowDirection,
82040
82296
  removeCellPositionsRowDirection,
@@ -90914,7 +91170,7 @@
90914
91170
  }
90915
91171
 
90916
91172
  registerForVrender();
90917
- const version = "1.0.11";
91173
+ const version = "1.0.13";
90918
91174
  function getIcons() {
90919
91175
  return get$2();
90920
91176
  }