k-vtable 1.0.14 → 1.0.16

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 (200) hide show
  1. package/cjs/ListTable.d.ts +8 -2
  2. package/cjs/ListTable.js +64 -13
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +4 -1
  5. package/cjs/PivotChart.js +9 -4
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +4 -1
  8. package/cjs/PivotTable.js +9 -4
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/body-helper/style.js +2 -1
  11. package/cjs/core/BaseTable.d.ts +15 -1
  12. package/cjs/core/BaseTable.js +124 -29
  13. package/cjs/core/BaseTable.js.map +1 -1
  14. package/cjs/core/TABLE_EVENT_TYPE.d.ts +4 -0
  15. package/cjs/core/TABLE_EVENT_TYPE.js +5 -1
  16. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  17. package/cjs/core/animation.js.map +1 -1
  18. package/cjs/core/group-helper.d.ts +4 -2
  19. package/cjs/core/group-helper.js +7 -2
  20. package/cjs/core/group-helper.js.map +1 -1
  21. package/cjs/core/utils/get-cell-position.js +2 -2
  22. package/cjs/core/utils/get-cell-position.js.map +1 -1
  23. package/cjs/data/DataSource.d.ts +1 -0
  24. package/cjs/data/DataSource.js +21 -12
  25. package/cjs/data/DataSource.js.map +1 -1
  26. package/cjs/dataset/dataset-pivot-table.js +2 -1
  27. package/cjs/dataset/flatDataToObject.js +1 -2
  28. package/cjs/edit/edit-manager.js +5 -4
  29. package/cjs/edit/edit-manager.js.map +1 -1
  30. package/cjs/event/event.d.ts +17 -0
  31. package/cjs/event/event.js +254 -9
  32. package/cjs/event/event.js.map +1 -1
  33. package/cjs/event/listener/container-dom.js +8 -153
  34. package/cjs/event/listener/container-dom.js.map +1 -1
  35. package/cjs/event/listener/scroll-bar.js +1 -1
  36. package/cjs/event/listener/scroll-bar.js.map +1 -1
  37. package/cjs/event/listener/table-group.js +35 -32
  38. package/cjs/event/listener/table-group.js.map +1 -1
  39. package/cjs/event/scroll.js +3 -1
  40. package/cjs/event/scroll.js.map +1 -1
  41. package/cjs/index.d.ts +1 -1
  42. package/cjs/index.js +1 -1
  43. package/cjs/index.js.map +1 -1
  44. package/cjs/layout/index.js +2 -1
  45. package/cjs/layout/pivot-header-layout.js +0 -1
  46. package/cjs/scenegraph/component/table-component.d.ts +1 -1
  47. package/cjs/scenegraph/component/table-component.js +1 -1
  48. package/cjs/scenegraph/component/table-component.js.map +1 -1
  49. package/cjs/scenegraph/group-creater/cell-helper.js +2 -1
  50. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  51. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  52. package/cjs/scenegraph/layout/compute-col-width.js +3 -1
  53. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  54. package/cjs/scenegraph/layout/frozen-react.js +3 -5
  55. package/cjs/scenegraph/layout/frozen-react.js.map +1 -1
  56. package/cjs/scenegraph/layout/frozen.js +7 -4
  57. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  58. package/cjs/scenegraph/scenegraph.d.ts +6 -2
  59. package/cjs/scenegraph/scenegraph.js +34 -10
  60. package/cjs/scenegraph/scenegraph.js.map +1 -1
  61. package/cjs/scenegraph/select/create-select-border.d.ts +2 -0
  62. package/cjs/scenegraph/select/create-select-border.js +2 -2
  63. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  64. package/cjs/scenegraph/select/update-custom-select-border.d.ts +6 -0
  65. package/cjs/scenegraph/select/update-custom-select-border.js +69 -0
  66. package/cjs/scenegraph/select/update-custom-select-border.js.map +1 -0
  67. package/cjs/scenegraph/select/update-select-border.js +37 -27
  68. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  69. package/cjs/scenegraph/utils/cell-pos.d.ts +12 -0
  70. package/cjs/scenegraph/utils/cell-pos.js +26 -1
  71. package/cjs/scenegraph/utils/cell-pos.js.map +1 -1
  72. package/cjs/scenegraph/utils/update-container.d.ts +1 -0
  73. package/cjs/scenegraph/utils/update-container.js +8 -1
  74. package/cjs/scenegraph/utils/update-container.js.map +1 -1
  75. package/cjs/state/select/custom-select.d.ts +2 -2
  76. package/cjs/state/select/custom-select.js +2 -14
  77. package/cjs/state/select/custom-select.js.map +1 -1
  78. package/cjs/state/select/update-position.js +1 -1
  79. package/cjs/state/select/update-position.js.map +1 -1
  80. package/cjs/state/state.d.ts +4 -7
  81. package/cjs/state/state.js +28 -4
  82. package/cjs/state/state.js.map +1 -1
  83. package/cjs/themes/theme-define.js +1 -1
  84. package/cjs/themes/theme-define.js.map +1 -1
  85. package/cjs/tools/style.d.ts +3 -1
  86. package/cjs/tools/style.js +23 -2
  87. package/cjs/tools/style.js.map +1 -1
  88. package/cjs/ts-types/base-table.d.ts +7 -0
  89. package/cjs/ts-types/base-table.js.map +1 -1
  90. package/cjs/ts-types/events.d.ts +21 -1
  91. package/cjs/ts-types/events.js.map +1 -1
  92. package/cjs/ts-types/new-data-set.d.ts +1 -0
  93. package/cjs/ts-types/new-data-set.js.map +1 -1
  94. package/cjs/ts-types/style-define.d.ts +6 -0
  95. package/cjs/ts-types/style-define.js.map +1 -1
  96. package/cjs/ts-types/table-engine.d.ts +3 -0
  97. package/cjs/ts-types/table-engine.js.map +1 -1
  98. package/cjs/vrender.js.map +1 -1
  99. package/dist/vtable.js +2523 -497
  100. package/dist/vtable.min.js +2 -2
  101. package/es/ListTable.d.ts +8 -2
  102. package/es/ListTable.js +65 -11
  103. package/es/ListTable.js.map +1 -1
  104. package/es/PivotChart.d.ts +4 -1
  105. package/es/PivotChart.js +9 -4
  106. package/es/PivotChart.js.map +1 -1
  107. package/es/PivotTable.d.ts +4 -1
  108. package/es/PivotTable.js +9 -4
  109. package/es/PivotTable.js.map +1 -1
  110. package/es/body-helper/style.js +2 -1
  111. package/es/core/BaseTable.d.ts +15 -1
  112. package/es/core/BaseTable.js +119 -25
  113. package/es/core/BaseTable.js.map +1 -1
  114. package/es/core/TABLE_EVENT_TYPE.d.ts +4 -0
  115. package/es/core/TABLE_EVENT_TYPE.js +5 -1
  116. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  117. package/es/core/animation.js +1 -1
  118. package/es/core/animation.js.map +1 -1
  119. package/es/core/group-helper.d.ts +4 -2
  120. package/es/core/group-helper.js +7 -2
  121. package/es/core/group-helper.js.map +1 -1
  122. package/es/core/utils/get-cell-position.js +2 -2
  123. package/es/core/utils/get-cell-position.js.map +1 -1
  124. package/es/data/DataSource.d.ts +1 -0
  125. package/es/data/DataSource.js +21 -12
  126. package/es/data/DataSource.js.map +1 -1
  127. package/es/dataset/dataset-pivot-table.js +2 -1
  128. package/es/dataset/flatDataToObject.js +1 -2
  129. package/es/edit/edit-manager.js +5 -4
  130. package/es/edit/edit-manager.js.map +1 -1
  131. package/es/event/event.d.ts +17 -0
  132. package/es/event/event.js +256 -8
  133. package/es/event/event.js.map +1 -1
  134. package/es/event/listener/container-dom.js +9 -154
  135. package/es/event/listener/container-dom.js.map +1 -1
  136. package/es/event/listener/scroll-bar.js +1 -1
  137. package/es/event/listener/scroll-bar.js.map +1 -1
  138. package/es/event/listener/table-group.js +35 -32
  139. package/es/event/listener/table-group.js.map +1 -1
  140. package/es/event/scroll.js +3 -1
  141. package/es/event/scroll.js.map +1 -1
  142. package/es/index.d.ts +1 -1
  143. package/es/index.js +1 -1
  144. package/es/index.js.map +1 -1
  145. package/es/layout/index.js +2 -1
  146. package/es/layout/pivot-header-layout.js +1 -2
  147. package/es/scenegraph/component/table-component.d.ts +1 -1
  148. package/es/scenegraph/component/table-component.js +1 -1
  149. package/es/scenegraph/component/table-component.js.map +1 -1
  150. package/es/scenegraph/group-creater/cell-helper.js +2 -1
  151. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  152. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  153. package/es/scenegraph/layout/compute-col-width.js +3 -1
  154. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  155. package/es/scenegraph/layout/frozen-react.js +3 -5
  156. package/es/scenegraph/layout/frozen-react.js.map +1 -1
  157. package/es/scenegraph/layout/frozen.js +7 -4
  158. package/es/scenegraph/layout/frozen.js.map +1 -1
  159. package/es/scenegraph/scenegraph.d.ts +6 -2
  160. package/es/scenegraph/scenegraph.js +32 -11
  161. package/es/scenegraph/scenegraph.js.map +1 -1
  162. package/es/scenegraph/select/create-select-border.d.ts +2 -0
  163. package/es/scenegraph/select/create-select-border.js +1 -1
  164. package/es/scenegraph/select/create-select-border.js.map +1 -1
  165. package/es/scenegraph/select/update-custom-select-border.d.ts +6 -0
  166. package/es/scenegraph/select/update-custom-select-border.js +63 -0
  167. package/es/scenegraph/select/update-custom-select-border.js.map +1 -0
  168. package/es/scenegraph/select/update-select-border.js +37 -26
  169. package/es/scenegraph/select/update-select-border.js.map +1 -1
  170. package/es/scenegraph/utils/cell-pos.d.ts +12 -0
  171. package/es/scenegraph/utils/cell-pos.js +24 -0
  172. package/es/scenegraph/utils/cell-pos.js.map +1 -1
  173. package/es/scenegraph/utils/update-container.d.ts +1 -0
  174. package/es/scenegraph/utils/update-container.js +6 -0
  175. package/es/scenegraph/utils/update-container.js.map +1 -1
  176. package/es/state/select/custom-select.d.ts +2 -2
  177. package/es/state/select/custom-select.js +3 -15
  178. package/es/state/select/custom-select.js.map +1 -1
  179. package/es/state/select/update-position.js +1 -1
  180. package/es/state/select/update-position.js.map +1 -1
  181. package/es/state/state.d.ts +4 -7
  182. package/es/state/state.js +28 -4
  183. package/es/state/state.js.map +1 -1
  184. package/es/themes/theme-define.js +1 -1
  185. package/es/themes/theme-define.js.map +1 -1
  186. package/es/tools/style.d.ts +3 -1
  187. package/es/tools/style.js +20 -0
  188. package/es/tools/style.js.map +1 -1
  189. package/es/ts-types/base-table.d.ts +7 -0
  190. package/es/ts-types/base-table.js.map +1 -1
  191. package/es/ts-types/events.d.ts +21 -1
  192. package/es/ts-types/events.js.map +1 -1
  193. package/es/ts-types/new-data-set.d.ts +1 -0
  194. package/es/ts-types/new-data-set.js.map +1 -1
  195. package/es/ts-types/style-define.d.ts +6 -0
  196. package/es/ts-types/style-define.js.map +1 -1
  197. package/es/ts-types/table-engine.d.ts +3 -0
  198. package/es/ts-types/table-engine.js.map +1 -1
  199. package/es/vrender.js.map +1 -1
  200. package/package.json +12 -8
@@ -22,7 +22,8 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
22
22
  clearColWidthCache?: boolean;
23
23
  }): void;
24
24
  private _recreateSceneForStateChange;
25
- addColumn(column: ColumnDefine): void;
25
+ addColumn(column: ColumnDefine, colIndex?: number, isMaintainArrayData?: boolean): void;
26
+ deleteColumn(colIndex: number): void;
26
27
  get columns(): ColumnsDefine;
27
28
  get header(): ColumnsDefine;
28
29
  set header(header: ColumnsDefine);
@@ -39,7 +40,10 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
39
40
  getCellOriginRecord(col: number, row: number): MaybePromiseOrUndefined;
40
41
  getCellRawRecord(col: number, row: number): MaybePromiseOrUndefined;
41
42
  _canResizeColumn(col: number, row: number): boolean;
42
- updateOption(options: ListTableConstructorOptions): Promise<unknown>;
43
+ updateOption(options: ListTableConstructorOptions, updateConfig?: {
44
+ clearColWidthCache?: boolean;
45
+ clearRowHeightCache?: boolean;
46
+ }): Promise<unknown>;
43
47
  updatePagination(pagination: IPagination): void;
44
48
  refreshHeader(): void;
45
49
  refreshRowColCount(): void;
@@ -102,4 +106,6 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
102
106
  release(): void;
103
107
  expandAllTreeNode(): void;
104
108
  collapseAllTreeNode(): void;
109
+ mergeCells(startCol: number, startRow: number, endCol: number, endRow: number): void;
110
+ unmergeCells(startCol: number, startRow: number, endCol: number, endRow: number): void;
105
111
  }
package/cjs/ListTable.js CHANGED
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", {
29
29
  value: !0
30
30
  }), exports.ListTable = void 0;
31
31
 
32
- const ts_types_1 = require("./ts-types"), layout_1 = require("./layout"), vutils_1 = require("@visactor/vutils"), tableHelper_1 = require("./core/tableHelper"), core_1 = require("./core"), TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE"), env_1 = require("./tools/env"), editors = __importStar(require("./edit/editors")), edit_manager_1 = require("./edit/edit-manager"), compute_row_height_1 = require("./scenegraph/layout/compute-row-height"), util_1 = require("./tools/util"), radio_1 = require("./state/radio/radio"), vutils_extension_1 = require("@visactor/vutils-extension"), checkbox_1 = require("./state/checkbox/checkbox"), factory_1 = require("./core/factory"), group_helper_1 = require("./core/group-helper"), data_1 = require("./data"), record_helper_1 = require("./core/record-helper"), update_row_1 = require("./tools/update-row"), chart_render_helper_1 = require("./scenegraph/graphic/contributions/chart-render-helper");
32
+ const ts_types_1 = require("./ts-types"), layout_1 = require("./layout"), vutils_1 = require("@visactor/vutils"), tableHelper_1 = require("./core/tableHelper"), core_1 = require("./core"), TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE"), env_1 = require("./tools/env"), editors = __importStar(require("./edit/editors")), edit_manager_1 = require("./edit/edit-manager"), compute_row_height_1 = require("./scenegraph/layout/compute-row-height"), util_1 = require("./tools/util"), radio_1 = require("./state/radio/radio"), vutils_extension_1 = require("@visactor/vutils-extension"), checkbox_1 = require("./state/checkbox/checkbox"), factory_1 = require("./core/factory"), group_helper_1 = require("./core/group-helper"), data_1 = require("./data"), record_helper_1 = require("./core/record-helper"), update_row_1 = require("./tools/update-row"), chart_render_helper_1 = require("./scenegraph/graphic/contributions/chart-render-helper"), get_custom_merge_cell_func_1 = require("./core/utils/get-custom-merge-cell-func");
33
33
 
34
34
  class ListTable extends core_1.BaseTable {
35
35
  constructor(container, options) {
@@ -39,8 +39,10 @@ class ListTable extends core_1.BaseTable {
39
39
  if (internalProps.frozenColDragHeaderMode = null !== (_b = null === (_a = options.dragOrder) || void 0 === _a ? void 0 : _a.frozenColDragHeaderMode) && void 0 !== _b ? _b : options.frozenColDragHeaderMode,
40
40
  this.pagination = options.pagination, internalProps.sortState = options.sortState,
41
41
  internalProps.multipleSort = !!options.multipleSort, internalProps.dataConfig = this.internalProps.groupBy ? (0,
42
- group_helper_1.getGroupByDataConfig)(this.internalProps.groupBy, this.internalProps.customDealGroupData) : {},
43
- internalProps.columns = options.columns ? (0, vutils_extension_1.cloneDeepSpec)(options.columns, [ "children" ]) : options.header ? (0,
42
+ group_helper_1.getGroupByDataConfig)(this.internalProps.groupBy, options.addRecordRule, this.internalProps.customDealGroupData) : {
43
+ addRecordRule: options.addRecordRule,
44
+ customDealGroupData: this.internalProps.customDealGroupData
45
+ }, internalProps.columns = options.columns ? (0, vutils_extension_1.cloneDeepSpec)(options.columns, [ "children" ]) : options.header ? (0,
44
46
  vutils_extension_1.cloneDeepSpec)(options.header, [ "children" ]) : [], (0, tableHelper_1.generateAggregationForColumn)(this),
45
47
  internalProps.enableTreeNodeMerge = null !== (_d = null !== (_c = options.enableTreeNodeMerge) && void 0 !== _c ? _c : (0,
46
48
  vutils_1.isValid)(this.internalProps.groupBy)) && void 0 !== _d && _d, this.internalProps.headerHelper.setTableColumnsEditor(),
@@ -113,9 +115,21 @@ class ListTable extends core_1.BaseTable {
113
115
  this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),
114
116
  this.renderAsync(), this.eventManager.updateEventBinder();
115
117
  }
116
- addColumn(column) {
118
+ addColumn(column, colIndex, isMaintainArrayData = !0) {
117
119
  const columns = this.options.columns;
118
- columns.push(column), this.updateColumns(columns);
120
+ if (void 0 === colIndex) columns.push(column); else {
121
+ if (isMaintainArrayData) for (let i = 0; i < columns.length; i++) "number" == typeof columns[i].field && columns[i].field >= colIndex && (columns[i].field = columns[i].field + 1);
122
+ columns.splice(colIndex, 0, column);
123
+ }
124
+ if (isMaintainArrayData) for (let i = 0; i < this.records.length; i++) {
125
+ const record = this.records[i];
126
+ Array.isArray(record) && record.splice(colIndex, 0, void 0);
127
+ }
128
+ this.updateColumns(columns);
129
+ }
130
+ deleteColumn(colIndex) {
131
+ const columns = this.options.columns;
132
+ columns.splice(colIndex, 1), this.updateColumns(columns);
119
133
  }
120
134
  get columns() {
121
135
  return this.internalProps.layoutMap.columnTree.getCopiedTree();
@@ -157,7 +171,7 @@ class ListTable extends core_1.BaseTable {
157
171
  table.internalProps.layoutMap.isAggregation(col, row) || (value = this.dataSource.getGroupSeriesNumber(row - this.columnHeaderLevelCount));
158
172
  } else {
159
173
  const define = table.getBodyColumnDefine(col, row), checkboxSeriesNumberStyle = table.getFieldData(define.field, col, row);
160
- value = "string" == typeof checkboxSeriesNumberStyle ? checkboxSeriesNumberStyle : (null == checkboxSeriesNumberStyle ? void 0 : checkboxSeriesNumberStyle.text) ? null !== (_a = checkboxSeriesNumberStyle.text) && void 0 !== _a ? _a : "" : row - this.columnHeaderLevelCount + 1;
174
+ value = [ "number", "string" ].includes(typeof checkboxSeriesNumberStyle) ? checkboxSeriesNumberStyle : (null == checkboxSeriesNumberStyle ? void 0 : checkboxSeriesNumberStyle.text) ? null !== (_a = checkboxSeriesNumberStyle.text) && void 0 !== _a ? _a : "" : row - this.columnHeaderLevelCount + 1;
161
175
  }
162
176
  const {format: format} = table.internalProps.layoutMap.getSeriesNumberBody(col, row);
163
177
  return "function" == typeof format ? format(col, row, this, value) : value;
@@ -260,14 +274,18 @@ class ListTable extends core_1.BaseTable {
260
274
  }
261
275
  return ifCan;
262
276
  }
263
- updateOption(options) {
277
+ updateOption(options, updateConfig = {
278
+ clearColWidthCache: !0,
279
+ clearRowHeightCache: !0
280
+ }) {
264
281
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
265
282
  const internalProps = this.internalProps;
266
- if (super.updateOption(options), internalProps.frozenColDragHeaderMode = null !== (_b = null === (_a = options.dragOrder) || void 0 === _a ? void 0 : _a.frozenColDragHeaderMode) && void 0 !== _b ? _b : options.frozenColDragHeaderMode,
283
+ if (super.updateOption(options, updateConfig), internalProps.frozenColDragHeaderMode = null !== (_b = null === (_a = options.dragOrder) || void 0 === _a ? void 0 : _a.frozenColDragHeaderMode) && void 0 !== _b ? _b : options.frozenColDragHeaderMode,
267
284
  this.pagination = options.pagination, internalProps.sortState = options.sortState,
268
- internalProps.dataConfig = this.internalProps.groupBy ? (0, group_helper_1.getGroupByDataConfig)(this.internalProps.groupBy, this.internalProps.customDealGroupData) : {},
269
- this.showHeader = null === (_c = options.showHeader) || void 0 === _c || _c, internalProps.columns = options.columns ? (0,
270
- vutils_extension_1.cloneDeepSpec)(options.columns, [ "children" ]) : options.header ? (0,
285
+ internalProps.dataConfig = this.internalProps.groupBy ? (0, group_helper_1.getGroupByDataConfig)(this.internalProps.groupBy, options.addRecordRule, this.internalProps.customDealGroupData) : {
286
+ addRecordRule: options.addRecordRule
287
+ }, this.showHeader = null === (_c = options.showHeader) || void 0 === _c || _c,
288
+ internalProps.columns = options.columns ? (0, vutils_extension_1.cloneDeepSpec)(options.columns, [ "children" ]) : options.header ? (0,
271
289
  vutils_extension_1.cloneDeepSpec)(options.header, [ "children" ]) : [], (0, tableHelper_1.generateAggregationForColumn)(this),
272
290
  internalProps.enableTreeNodeMerge = null !== (_e = null !== (_d = options.enableTreeNodeMerge) && void 0 !== _d ? _d : (0,
273
291
  vutils_1.isValid)(this.internalProps.groupBy)) && void 0 !== _e && _e, this.internalProps.headerHelper.setTableColumnsEditor(),
@@ -289,7 +307,9 @@ class ListTable extends core_1.BaseTable {
289
307
  const EmptyTip = factory_1.Factory.getComponent("emptyTip");
290
308
  this.internalProps.emptyTip = new EmptyTip(this.options.emptyTip, this), null === (_j = this.internalProps.emptyTip) || void 0 === _j || _j.resetVisible();
291
309
  }
292
- return this.pluginManager.updatePlugins(options.plugins), new Promise((resolve => {
310
+ return this.pluginManager.updatePlugins(options.plugins), setTimeout((() => {
311
+ this.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.UPDATED, null);
312
+ }), 0), new Promise((resolve => {
293
313
  setTimeout(resolve, 0);
294
314
  }));
295
315
  }
@@ -321,7 +341,7 @@ class ListTable extends core_1.BaseTable {
321
341
  table.rowCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
322
342
  this.internalProps.frozenColCount = null !== (_o = this.options.frozenColCount) && void 0 !== _o ? _o : 0,
323
343
  this.options.frozenColCount >= this.colCount && (this.internalProps.frozenColCount = 0),
324
- table.frozenRowCount = Math.max(layoutMap.headerLevelCount, null !== (_p = this.options.frozenRowCount) && void 0 !== _p ? _p : 0),
344
+ table._setFrozenRowCount(Math.max(layoutMap.headerLevelCount, null !== (_p = this.options.frozenRowCount) && void 0 !== _p ? _p : 0)),
325
345
  table.bottomFrozenRowCount !== (null !== (_q = this.options.bottomFrozenRowCount) && void 0 !== _q ? _q : 0) && (table.bottomFrozenRowCount = null !== (_r = this.options.bottomFrozenRowCount) && void 0 !== _r ? _r : 0),
326
346
  table.rightFrozenColCount !== (null !== (_s = this.options.rightFrozenColCount) && void 0 !== _s ? _s : 0) && (table.rightFrozenColCount = null !== (_t = this.options.rightFrozenColCount) && void 0 !== _t ? _t : 0)),
327
347
  this.stateManager.setFrozenCol(this.internalProps.frozenColCount);
@@ -740,6 +760,37 @@ class ListTable extends core_1.BaseTable {
740
760
  }
741
761
  }));
742
762
  }
763
+ mergeCells(startCol, startRow, endCol, endRow) {
764
+ for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) {
765
+ const cellRange = this.getCellRange(i, j);
766
+ if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) return;
767
+ }
768
+ this.options.customMergeCell ? "function" == typeof this.options.customMergeCell && (this.options.customMergeCell = []) : this.options.customMergeCell = [],
769
+ this.options.customMergeCell.push({
770
+ text: this.getCellValue(startCol, startRow),
771
+ range: {
772
+ start: {
773
+ col: startCol,
774
+ row: startRow
775
+ },
776
+ end: {
777
+ col: endCol,
778
+ row: endRow
779
+ }
780
+ }
781
+ }), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
782
+ for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
783
+ this.scenegraph.updateNextFrame();
784
+ }
785
+ unmergeCells(startCol, startRow, endCol, endRow) {
786
+ this.options.customMergeCell ? "function" == typeof this.options.customMergeCell && (this.options.customMergeCell = []) : this.options.customMergeCell = [],
787
+ this.options.customMergeCell = this.options.customMergeCell.filter((item => {
788
+ const {start: start, end: end} = item.range;
789
+ return !(start.col === startCol && start.row === startRow && end.col === endCol && end.row === endRow);
790
+ })), this.internalProps.customMergeCell = (0, get_custom_merge_cell_func_1.getCustomMergeCellFunc)(this.options.customMergeCell);
791
+ for (let i = startCol; i <= endCol; i++) for (let j = startRow; j <= endRow; j++) this.scenegraph.updateCellContent(i, j);
792
+ this.scenegraph.updateNextFrame();
793
+ }
743
794
  }
744
795
 
745
796
  exports.ListTable = ListTable;