@visactor/vtable 0.19.2-alpha.3 → 0.20.0

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 (203) hide show
  1. package/cjs/ListTable.d.ts +12 -2
  2. package/cjs/ListTable.js +80 -23
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +2 -1
  5. package/cjs/PivotChart.js +5 -1
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +5 -2
  8. package/cjs/PivotTable.js +13 -5
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/core/BaseTable.d.ts +2 -2
  11. package/cjs/core/BaseTable.js +7 -8
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/tableHelper.d.ts +2 -2
  14. package/cjs/core/tableHelper.js +4 -6
  15. package/cjs/core/tableHelper.js.map +1 -1
  16. package/cjs/data/CachedDataSource.d.ts +4 -3
  17. package/cjs/data/CachedDataSource.js +5 -4
  18. package/cjs/data/CachedDataSource.js.map +1 -1
  19. package/cjs/data/DataSource.d.ts +22 -3
  20. package/cjs/data/DataSource.js +93 -7
  21. package/cjs/data/DataSource.js.map +1 -1
  22. package/cjs/dataset/dataset-pivot-table.d.ts +3 -3
  23. package/cjs/dataset/dataset-pivot-table.js +1 -0
  24. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  25. package/cjs/dataset/dataset.d.ts +3 -3
  26. package/cjs/dataset/dataset.js +3 -0
  27. package/cjs/dataset/dataset.js.map +1 -1
  28. package/cjs/dataset/statistics-helper.d.ts +24 -3
  29. package/cjs/dataset/statistics-helper.js +75 -9
  30. package/cjs/dataset/statistics-helper.js.map +1 -1
  31. package/cjs/edit/edit-manager.js +5 -4
  32. package/cjs/edit/edit-manager.js.map +1 -1
  33. package/cjs/event/media-click.js +2 -1
  34. package/cjs/event/scroll.js +0 -1
  35. package/cjs/index.d.ts +1 -1
  36. package/cjs/index.js +1 -1
  37. package/cjs/index.js.map +1 -1
  38. package/cjs/layout/chart-helper/get-chart-spec.d.ts +1 -0
  39. package/cjs/layout/chart-helper/get-chart-spec.js +34 -9
  40. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  41. package/cjs/layout/layout-helper.d.ts +4 -63
  42. package/cjs/layout/layout-helper.js +25 -247
  43. package/cjs/layout/layout-helper.js.map +1 -1
  44. package/cjs/layout/pivot-header-layout.d.ts +6 -3
  45. package/cjs/layout/pivot-header-layout.js +26 -15
  46. package/cjs/layout/pivot-header-layout.js.map +1 -1
  47. package/cjs/layout/row-height-map.js +2 -1
  48. package/cjs/layout/row-height-map.js.map +1 -1
  49. package/cjs/layout/simple-header-layout.d.ts +25 -2
  50. package/cjs/layout/simple-header-layout.js +130 -18
  51. package/cjs/layout/simple-header-layout.js.map +1 -1
  52. package/cjs/layout/tree-helper.d.ts +63 -0
  53. package/cjs/layout/tree-helper.js +259 -0
  54. package/cjs/layout/tree-helper.js.map +1 -0
  55. package/cjs/scenegraph/graphic/chart.d.ts +2 -1
  56. package/cjs/scenegraph/graphic/chart.js +21 -18
  57. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  58. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  59. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  60. package/cjs/scenegraph/graphic/contributions/chart-render.js +2 -2
  61. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  62. package/cjs/scenegraph/group-creater/cell-helper.js +19 -8
  63. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  64. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  65. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  66. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  68. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  69. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  70. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  71. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  72. package/cjs/scenegraph/group-creater/column-helper.js +5 -5
  73. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  74. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -2
  75. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  76. package/cjs/scenegraph/scenegraph.js +4 -6
  77. package/cjs/scenegraph/scenegraph.js.map +1 -1
  78. package/cjs/state/sort/index.js +2 -5
  79. package/cjs/state/sort/index.js.map +1 -1
  80. package/cjs/state/state.d.ts +0 -1
  81. package/cjs/state/state.js +1 -2
  82. package/cjs/state/state.js.map +1 -1
  83. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  84. package/cjs/tools/isx.d.ts +1 -1
  85. package/cjs/tools/util.d.ts +1 -1
  86. package/cjs/ts-types/base-table.d.ts +6 -5
  87. package/cjs/ts-types/base-table.js.map +1 -1
  88. package/cjs/ts-types/list-table/define/basic-define.d.ts +2 -0
  89. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  90. package/cjs/ts-types/list-table/layout-map/api.d.ts +4 -3
  91. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  92. package/cjs/ts-types/new-data-set.d.ts +27 -6
  93. package/cjs/ts-types/new-data-set.js +1 -1
  94. package/cjs/ts-types/new-data-set.js.map +1 -1
  95. package/cjs/ts-types/table-engine.d.ts +17 -5
  96. package/cjs/ts-types/table-engine.js.map +1 -1
  97. package/cjs/vrender.js.map +1 -1
  98. package/dist/vtable.js +1175 -498
  99. package/dist/vtable.min.js +2 -2
  100. package/es/ListTable.d.ts +12 -2
  101. package/es/ListTable.js +80 -23
  102. package/es/ListTable.js.map +1 -1
  103. package/es/PivotChart.d.ts +2 -1
  104. package/es/PivotChart.js +5 -1
  105. package/es/PivotChart.js.map +1 -1
  106. package/es/PivotTable.d.ts +5 -2
  107. package/es/PivotTable.js +13 -5
  108. package/es/PivotTable.js.map +1 -1
  109. package/es/core/BaseTable.d.ts +2 -2
  110. package/es/core/BaseTable.js +7 -8
  111. package/es/core/BaseTable.js.map +1 -1
  112. package/es/core/tableHelper.d.ts +2 -2
  113. package/es/core/tableHelper.js +4 -6
  114. package/es/core/tableHelper.js.map +1 -1
  115. package/es/data/CachedDataSource.d.ts +4 -3
  116. package/es/data/CachedDataSource.js +5 -4
  117. package/es/data/CachedDataSource.js.map +1 -1
  118. package/es/data/DataSource.d.ts +22 -3
  119. package/es/data/DataSource.js +91 -7
  120. package/es/data/DataSource.js.map +1 -1
  121. package/es/dataset/dataset-pivot-table.d.ts +3 -3
  122. package/es/dataset/dataset-pivot-table.js +1 -0
  123. package/es/dataset/dataset-pivot-table.js.map +1 -1
  124. package/es/dataset/dataset.d.ts +3 -3
  125. package/es/dataset/dataset.js +3 -0
  126. package/es/dataset/dataset.js.map +1 -1
  127. package/es/dataset/statistics-helper.d.ts +24 -3
  128. package/es/dataset/statistics-helper.js +72 -8
  129. package/es/dataset/statistics-helper.js.map +1 -1
  130. package/es/edit/edit-manager.js +5 -4
  131. package/es/edit/edit-manager.js.map +1 -1
  132. package/es/event/media-click.js +2 -1
  133. package/es/event/scroll.js +1 -2
  134. package/es/index.d.ts +1 -1
  135. package/es/index.js +1 -1
  136. package/es/index.js.map +1 -1
  137. package/es/layout/chart-helper/get-chart-spec.d.ts +1 -0
  138. package/es/layout/chart-helper/get-chart-spec.js +29 -4
  139. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  140. package/es/layout/layout-helper.d.ts +4 -63
  141. package/es/layout/layout-helper.js +19 -246
  142. package/es/layout/layout-helper.js.map +1 -1
  143. package/es/layout/pivot-header-layout.d.ts +6 -3
  144. package/es/layout/pivot-header-layout.js +17 -6
  145. package/es/layout/pivot-header-layout.js.map +1 -1
  146. package/es/layout/row-height-map.js +2 -1
  147. package/es/layout/row-height-map.js.map +1 -1
  148. package/es/layout/simple-header-layout.d.ts +25 -2
  149. package/es/layout/simple-header-layout.js +130 -17
  150. package/es/layout/simple-header-layout.js.map +1 -1
  151. package/es/layout/tree-helper.d.ts +63 -0
  152. package/es/layout/tree-helper.js +256 -0
  153. package/es/layout/tree-helper.js.map +1 -0
  154. package/es/scenegraph/graphic/chart.d.ts +2 -1
  155. package/es/scenegraph/graphic/chart.js +21 -17
  156. package/es/scenegraph/graphic/chart.js.map +1 -1
  157. package/es/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  158. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  159. package/es/scenegraph/graphic/contributions/chart-render.js +2 -2
  160. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  161. package/es/scenegraph/group-creater/cell-helper.js +20 -7
  162. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  163. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  164. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  165. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  166. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  167. package/es/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  168. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  169. package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  170. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  171. package/es/scenegraph/group-creater/column-helper.js +5 -5
  172. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  173. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +6 -3
  174. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  175. package/es/scenegraph/scenegraph.js +4 -6
  176. package/es/scenegraph/scenegraph.js.map +1 -1
  177. package/es/state/sort/index.js +2 -5
  178. package/es/state/sort/index.js.map +1 -1
  179. package/es/state/state.d.ts +0 -1
  180. package/es/state/state.js +1 -2
  181. package/es/state/state.js.map +1 -1
  182. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  183. package/es/tools/isx.d.ts +1 -1
  184. package/es/tools/util.d.ts +1 -1
  185. package/es/ts-types/base-table.d.ts +6 -5
  186. package/es/ts-types/base-table.js.map +1 -1
  187. package/es/ts-types/list-table/define/basic-define.d.ts +2 -0
  188. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  189. package/es/ts-types/list-table/layout-map/api.d.ts +4 -3
  190. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  191. package/es/ts-types/new-data-set.d.ts +27 -6
  192. package/es/ts-types/new-data-set.js +1 -1
  193. package/es/ts-types/new-data-set.js.map +1 -1
  194. package/es/ts-types/table-engine.d.ts +17 -5
  195. package/es/ts-types/table-engine.js.map +1 -1
  196. package/es/vrender.js.map +1 -1
  197. package/package.json +3 -3
  198. package/cjs/data/FilterDataSource.d.ts +0 -1
  199. package/cjs/data/FilterDataSource.js +0 -1
  200. package/cjs/data/FilterDataSource.js.map +0 -1
  201. package/es/data/FilterDataSource.d.ts +0 -1
  202. package/es/data/FilterDataSource.js +0 -1
  203. package/es/data/FilterDataSource.js.map +0 -1
package/es/ListTable.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CellAddress, CellRange, ColumnsDefine, DropDownMenuEventInfo, FieldData, FieldDef, FieldFormat, FieldKeyDef, IPagination, ListTableAPI, ListTableConstructorOptions, MaybePromiseOrUndefined, SortOrder, SortState } from './ts-types';
1
+ import type { AggregationType, CellAddress, CellRange, ColumnsDefine, DropDownMenuEventInfo, FieldData, FieldDef, FieldFormat, FieldKeyDef, FilterRules, IPagination, ListTableAPI, ListTableConstructorOptions, MaybePromiseOrUndefined, SortOrder, SortState } from './ts-types';
2
2
  import { HierarchyState } from './ts-types';
3
3
  import { BaseTable } from './core';
4
4
  import type { ListTableProtected } from './ts-types/base-table';
@@ -15,6 +15,8 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
15
15
  isPivotTable(): false;
16
16
  isPivotChart(): false;
17
17
  get sortState(): SortState | SortState[];
18
+ get records(): any;
19
+ get recordsCount(): any;
18
20
  updateColumns(columns: ColumnsDefine): void;
19
21
  get columns(): ColumnsDefine;
20
22
  get header(): ColumnsDefine;
@@ -47,6 +49,7 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
47
49
  getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo;
48
50
  _getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): ((v1: any, v2: any, order: SortOrder) => 0 | 1 | -1) | undefined;
49
51
  updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
52
+ updateFilterRules(filterRules: FilterRules): void;
50
53
  getCheckboxState(field?: string | number): boolean[] | Record<string | number, boolean>[];
51
54
  getCellCheckboxState(col: number, row: number): boolean;
52
55
  setRecords(records: Array<any>, sort?: SortState | SortState[]): void;
@@ -60,5 +63,12 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
60
63
  addRecords(records: any[], recordIndex?: number): void;
61
64
  deleteRecords(recordIndexs: number[]): void;
62
65
  updateRecords(records: any[], recordIndexs: number[]): void;
63
- hasCustomRenderOrLayout(): boolean;
66
+ _hasCustomRenderOrLayout(): boolean;
67
+ getAggregateValuesByField(field: string | number): {
68
+ col: number;
69
+ aggregateValue: {
70
+ aggregationType: AggregationType;
71
+ value: number | string;
72
+ }[];
73
+ }[];
64
74
  }
package/es/ListTable.js CHANGED
@@ -34,7 +34,7 @@ export class ListTable extends BaseTable {
34
34
  this.showHeader = !0;
35
35
  const internalProps = this.internalProps;
36
36
  internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode, this.pagination = options.pagination,
37
- internalProps.sortState = options.sortState, internalProps.columns = options.columns ? cloneDeep(options.columns) : options.header ? cloneDeep(options.header) : [],
37
+ internalProps.sortState = options.sortState, internalProps.dataConfig = {}, internalProps.columns = options.columns ? cloneDeep(options.columns) : options.header ? cloneDeep(options.header) : [],
38
38
  null === (_a = options.columns) || void 0 === _a || _a.forEach(((colDefine, index) => {
39
39
  colDefine.editor && (internalProps.columns[index].editor = colDefine.editor);
40
40
  })), this.showHeader = null === (_b = options.showHeader) || void 0 === _b || _b,
@@ -57,6 +57,12 @@ export class ListTable extends BaseTable {
57
57
  get sortState() {
58
58
  return this.internalProps.sortState;
59
59
  }
60
+ get records() {
61
+ return this.dataSource.source;
62
+ }
63
+ get recordsCount() {
64
+ return this.dataSource.source.length;
65
+ }
60
66
  updateColumns(columns) {
61
67
  const oldHoverState = {
62
68
  col: this.stateManager.hover.cellPos.col,
@@ -97,6 +103,16 @@ export class ListTable extends BaseTable {
97
103
  const {title: title} = table.internalProps.layoutMap.getHeader(col, row);
98
104
  return "function" == typeof title ? title() : title;
99
105
  }
106
+ if (table.internalProps.layoutMap.isAggregation(col, row)) {
107
+ if (table.internalProps.layoutMap.isTopAggregation(col, row)) {
108
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnTop(col, row);
109
+ return (null == aggregator ? void 0 : aggregator.formatValue) ? aggregator.formatValue(col, row, this) : "";
110
+ }
111
+ if (table.internalProps.layoutMap.isBottomAggregation(col, row)) {
112
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnBottom(col, row);
113
+ return (null == aggregator ? void 0 : aggregator.formatValue) ? aggregator.formatValue(col, row, this) : "";
114
+ }
115
+ }
100
116
  const {field: field, fieldFormat: fieldFormat} = table.internalProps.layoutMap.getBody(col, row);
101
117
  return table.getFieldData(fieldFormat || field, col, row);
102
118
  }
@@ -107,6 +123,16 @@ export class ListTable extends BaseTable {
107
123
  const {title: title} = table.internalProps.layoutMap.getHeader(col, row);
108
124
  return "function" == typeof title ? title() : title;
109
125
  }
126
+ if (table.internalProps.layoutMap.isAggregation(col, row)) {
127
+ if (table.internalProps.layoutMap.isTopAggregation(col, row)) {
128
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnTop(col, row);
129
+ return null == aggregator ? void 0 : aggregator.value();
130
+ }
131
+ if (table.internalProps.layoutMap.isBottomAggregation(col, row)) {
132
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnBottom(col, row);
133
+ return null == aggregator ? void 0 : aggregator.value();
134
+ }
135
+ }
110
136
  const {field: field} = table.internalProps.layoutMap.getBody(col, row);
111
137
  return table.getFieldData(field, col, row);
112
138
  }
@@ -160,7 +186,7 @@ export class ListTable extends BaseTable {
160
186
  var _a, _b;
161
187
  const internalProps = this.internalProps;
162
188
  return super.updateOption(options), internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode,
163
- this.pagination = options.pagination, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
189
+ this.pagination = options.pagination, internalProps.dataConfig = {}, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
164
190
  internalProps.columns = options.columns ? cloneDeep(options.columns) : options.header ? cloneDeep(options.header) : [],
165
191
  options.columns.forEach(((colDefine, index) => {
166
192
  colDefine.editor && (internalProps.columns[index].editor = colDefine.editor);
@@ -192,18 +218,18 @@ export class ListTable extends BaseTable {
192
218
  this.refreshRowColCount();
193
219
  }
194
220
  refreshRowColCount() {
195
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
221
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
196
222
  const table = this, {layoutMap: layoutMap} = table.internalProps;
197
- layoutMap && (layoutMap.recordsCount = null !== (_b = null === (_a = table.internalProps.dataSource) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0,
223
+ layoutMap && (layoutMap.recordsCount = (null !== (_b = null === (_a = table.internalProps.dataSource) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0) + layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount,
198
224
  table.transpose ? (table.rowCount = null !== (_c = layoutMap.rowCount) && void 0 !== _c ? _c : 0,
199
- table.colCount = (null !== (_e = null === (_d = table.internalProps.dataSource) || void 0 === _d ? void 0 : _d.length) && void 0 !== _e ? _e : 0) * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
200
- table.frozenRowCount = 0, this.internalProps.frozenColCount = null !== (_f = layoutMap.headerLevelCount) && void 0 !== _f ? _f : 0,
201
- table.bottomFrozenRowCount !== (null !== (_g = this.options.bottomFrozenRowCount) && void 0 !== _g ? _g : 0) && (table.bottomFrozenRowCount = null !== (_h = this.options.bottomFrozenRowCount) && void 0 !== _h ? _h : 0),
202
- table.rightFrozenColCount !== (null !== (_j = this.options.rightFrozenColCount) && void 0 !== _j ? _j : 0) && (table.rightFrozenColCount = null !== (_k = this.options.rightFrozenColCount) && void 0 !== _k ? _k : 0)) : (table.colCount = null !== (_l = layoutMap.colCount) && void 0 !== _l ? _l : 0,
203
- table.rowCount = (null !== (_o = null === (_m = table.internalProps.dataSource) || void 0 === _m ? void 0 : _m.length) && void 0 !== _o ? _o : 0) * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
204
- this.internalProps.frozenColCount = null !== (_p = this.options.frozenColCount) && void 0 !== _p ? _p : 0,
205
- table.frozenRowCount = layoutMap.headerLevelCount, table.bottomFrozenRowCount !== (null !== (_q = this.options.bottomFrozenRowCount) && void 0 !== _q ? _q : 0) && (table.bottomFrozenRowCount = null !== (_r = this.options.bottomFrozenRowCount) && void 0 !== _r ? _r : 0),
206
- table.rightFrozenColCount !== (null !== (_s = this.options.rightFrozenColCount) && void 0 !== _s ? _s : 0) && (table.rightFrozenColCount = null !== (_t = this.options.rightFrozenColCount) && void 0 !== _t ? _t : 0)),
225
+ table.colCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
226
+ table.frozenRowCount = 0, this.internalProps.frozenColCount = null !== (_d = layoutMap.headerLevelCount) && void 0 !== _d ? _d : 0,
227
+ table.bottomFrozenRowCount !== (null !== (_e = this.options.bottomFrozenRowCount) && void 0 !== _e ? _e : 0) && (table.bottomFrozenRowCount = null !== (_f = this.options.bottomFrozenRowCount) && void 0 !== _f ? _f : 0),
228
+ table.rightFrozenColCount !== (null !== (_g = this.options.rightFrozenColCount) && void 0 !== _g ? _g : 0) && (table.rightFrozenColCount = null !== (_h = this.options.rightFrozenColCount) && void 0 !== _h ? _h : 0)) : (table.colCount = null !== (_j = layoutMap.colCount) && void 0 !== _j ? _j : 0,
229
+ table.rowCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
230
+ this.internalProps.frozenColCount = null !== (_k = this.options.frozenColCount) && void 0 !== _k ? _k : 0,
231
+ table.frozenRowCount = layoutMap.headerLevelCount, table.bottomFrozenRowCount !== (null !== (_l = this.options.bottomFrozenRowCount) && void 0 !== _l ? _l : 0) && (table.bottomFrozenRowCount = null !== (_m = this.options.bottomFrozenRowCount) && void 0 !== _m ? _m : 0),
232
+ table.rightFrozenColCount !== (null !== (_o = this.options.rightFrozenColCount) && void 0 !== _o ? _o : 0) && (table.rightFrozenColCount = null !== (_p = this.options.rightFrozenColCount) && void 0 !== _p ? _p : 0)),
207
233
  this.stateManager.setFrozenCol(this.internalProps.frozenColCount));
208
234
  }
209
235
  getFieldData(field, col, row) {
@@ -350,17 +376,20 @@ export class ListTable extends BaseTable {
350
376
  if (sortState) this.internalProps.sortState = sortState; else if (this.internalProps.sortState) if (Array.isArray(this.internalProps.sortState)) for (let i = 0; i < this.internalProps.sortState.length; i++) {
351
377
  this.internalProps.sortState[i].order = "normal";
352
378
  } else this.internalProps.sortState.order = "normal";
353
- let order, field, fieldKey;
354
- if (Array.isArray(this.internalProps.sortState) ? ({order: order, field: field, fieldKey: fieldKey} = null === (_a = this.internalProps.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field, fieldKey: fieldKey} = this.internalProps.sortState),
379
+ let order, field;
380
+ if (Array.isArray(this.internalProps.sortState) ? ({order: order, field: field} = null === (_a = this.internalProps.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field} = this.internalProps.sortState),
355
381
  field && executeSort) {
356
- const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, field, fieldKey);
357
- let hd;
358
- hd = fieldKey ? this.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
382
+ const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
359
383
  !1 !== hd.define.sort && (this.dataSource.sort(hd.field, order, sortFunc), this.internalProps.layoutMap.clearCellRangeMap(),
360
384
  this.scenegraph.sortCell());
361
385
  }
362
386
  this.stateManager.updateSortState(sortState);
363
387
  }
388
+ updateFilterRules(filterRules) {
389
+ this.scenegraph.clearCells(), this.internalProps.dataConfig.filterRules = filterRules,
390
+ this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), sortRecords(this)) : this.dataSource.updateFilterRules(filterRules),
391
+ this.refreshRowColCount(), this.scenegraph.createSceneGraph();
392
+ }
364
393
  getCheckboxState(field) {
365
394
  return this.stateManager.checkedState.length < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records),
366
395
  isValid(field) ? this.stateManager.checkedState.map((state => state[field])) : this.stateManager.checkedState;
@@ -382,12 +411,10 @@ export class ListTable extends BaseTable {
382
411
  if (this.scenegraph.clearCells(), void 0 !== sort && (this.internalProps.sortState = sort,
383
412
  this.stateManager.setSortState(this.sortState)), records) {
384
413
  if (_setRecords(this, records), this.sortState) {
385
- let order, field, fieldKey;
386
- if (Array.isArray(this.sortState) ? 0 !== this.sortState.length && ({order: order, field: field, fieldKey: fieldKey} = null === (_a = this.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field, fieldKey: fieldKey} = this.sortState),
414
+ let order, field;
415
+ if (Array.isArray(this.sortState) ? 0 !== this.sortState.length && ({order: order, field: field} = null === (_a = this.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field} = this.sortState),
387
416
  order && field && "normal" !== order) {
388
- const sortFunc = this._getSortFuncFromHeaderOption(void 0, field, fieldKey);
389
- let hd;
390
- hd = fieldKey ? this.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
417
+ const sortFunc = this._getSortFuncFromHeaderOption(void 0, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
391
418
  !1 !== hd.define.sort && this.dataSource.sort(hd.field, order, null != sortFunc ? sortFunc : defaultOrderFn);
392
419
  }
393
420
  }
@@ -431,6 +458,15 @@ export class ListTable extends BaseTable {
431
458
  changeCellValue(col, row, value) {
432
459
  const recordIndex = this.getRecordShowIndexByCell(col, row), {field: field} = this.internalProps.layoutMap.getBody(col, row), beforeChangeValue = this.getCellRawValue(col, row);
433
460
  this.isHeader(col, row) ? this.internalProps.layoutMap.updateColumnTitle(col, row, value) : this.dataSource.changeFieldValue(value, recordIndex, field, col, row, this);
461
+ const aggregators = this.internalProps.layoutMap.getAggregators(col, row);
462
+ if (aggregators) {
463
+ if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
464
+ const aggregatorCells = this.internalProps.layoutMap.getCellAddressHasAggregator(col, row);
465
+ for (let i = 0; i < aggregatorCells.length; i++) {
466
+ const range = this.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
467
+ for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
468
+ }
469
+ }
434
470
  const range = this.getCellRange(col, row);
435
471
  for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
436
472
  if ("adaptive" === this.widthMode || this.autoFillWidth && this.getAllColsWidth() <= this.tableNoFrameWidth) 0 === this.internalProps._widthResizedColMap.size && this.scenegraph.recalculateColWidths(); else if (!this.internalProps._widthResizedColMap.has(col)) {
@@ -673,7 +709,7 @@ export class ListTable extends BaseTable {
673
709
  }
674
710
  }
675
711
  }
676
- hasCustomRenderOrLayout() {
712
+ _hasCustomRenderOrLayout() {
677
713
  var _a, _b, _c, _d;
678
714
  const {headerObjects: headerObjects} = this.internalProps.layoutMap;
679
715
  if (this.options.customRender) return !0;
@@ -683,4 +719,25 @@ export class ListTable extends BaseTable {
683
719
  }
684
720
  return !1;
685
721
  }
722
+ getAggregateValuesByField(field) {
723
+ const columns = this.internalProps.layoutMap.getColumnByField(field), results = [];
724
+ for (let i = 0; i < columns.length; i++) {
725
+ const aggregator = columns[i].columnDefine.aggregator;
726
+ if (delete columns[i].columnDefine, aggregator) {
727
+ const columnAggregateValue = {
728
+ col: columns[i].col,
729
+ aggregateValue: null
730
+ };
731
+ if (columnAggregateValue.aggregateValue = [], Array.isArray(aggregator)) for (let j = 0; j < aggregator.length; j++) columnAggregateValue.aggregateValue.push({
732
+ aggregationType: aggregator[j].type,
733
+ value: aggregator[j].value()
734
+ }); else columnAggregateValue.aggregateValue.push({
735
+ aggregationType: aggregator.type,
736
+ value: aggregator.value()
737
+ });
738
+ results.push(columnAggregateValue);
739
+ }
740
+ }
741
+ return results;
742
+ }
686
743
  }