@visactor/vtable 0.19.2-alpha.2 → 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 (231) hide show
  1. package/cjs/ListTable.d.ts +12 -2
  2. package/cjs/ListTable.js +81 -24
  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/body-helper/body-helper.js +1 -0
  11. package/cjs/body-helper/body-helper.js.map +1 -1
  12. package/cjs/core/BaseTable.d.ts +2 -2
  13. package/cjs/core/BaseTable.js +22 -18
  14. package/cjs/core/BaseTable.js.map +1 -1
  15. package/cjs/core/tableHelper.d.ts +2 -2
  16. package/cjs/core/tableHelper.js +4 -6
  17. package/cjs/core/tableHelper.js.map +1 -1
  18. package/cjs/data/CachedDataSource.d.ts +4 -3
  19. package/cjs/data/CachedDataSource.js +5 -4
  20. package/cjs/data/CachedDataSource.js.map +1 -1
  21. package/cjs/data/DataSource.d.ts +22 -3
  22. package/cjs/data/DataSource.js +93 -7
  23. package/cjs/data/DataSource.js.map +1 -1
  24. package/cjs/dataset/dataset-pivot-table.d.ts +3 -3
  25. package/cjs/dataset/dataset-pivot-table.js +1 -0
  26. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  27. package/cjs/dataset/dataset.d.ts +3 -3
  28. package/cjs/dataset/dataset.js +3 -0
  29. package/cjs/dataset/dataset.js.map +1 -1
  30. package/cjs/dataset/statistics-helper.d.ts +24 -3
  31. package/cjs/dataset/statistics-helper.js +75 -9
  32. package/cjs/dataset/statistics-helper.js.map +1 -1
  33. package/cjs/edit/edit-manager.js +5 -4
  34. package/cjs/edit/edit-manager.js.map +1 -1
  35. package/cjs/event/listener/table-group.js +14 -4
  36. package/cjs/event/listener/table-group.js.map +1 -1
  37. package/cjs/event/media-click.js +2 -1
  38. package/cjs/event/scroll.js +0 -1
  39. package/cjs/event/sparkline-event.js +1 -1
  40. package/cjs/event/sparkline-event.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/chart-helper/get-chart-spec.d.ts +1 -0
  45. package/cjs/layout/chart-helper/get-chart-spec.js +34 -9
  46. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  47. package/cjs/layout/layout-helper.d.ts +4 -63
  48. package/cjs/layout/layout-helper.js +25 -247
  49. package/cjs/layout/layout-helper.js.map +1 -1
  50. package/cjs/layout/pivot-header-layout.d.ts +6 -3
  51. package/cjs/layout/pivot-header-layout.js +26 -15
  52. package/cjs/layout/pivot-header-layout.js.map +1 -1
  53. package/cjs/layout/row-height-map.js +2 -1
  54. package/cjs/layout/row-height-map.js.map +1 -1
  55. package/cjs/layout/simple-header-layout.d.ts +25 -2
  56. package/cjs/layout/simple-header-layout.js +130 -18
  57. package/cjs/layout/simple-header-layout.js.map +1 -1
  58. package/cjs/layout/tree-helper.d.ts +63 -0
  59. package/cjs/layout/tree-helper.js +259 -0
  60. package/cjs/layout/tree-helper.js.map +1 -0
  61. package/cjs/scenegraph/graphic/chart.d.ts +2 -1
  62. package/cjs/scenegraph/graphic/chart.js +21 -18
  63. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  64. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  65. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  66. package/cjs/scenegraph/graphic/contributions/chart-render.js +2 -2
  67. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  68. package/cjs/scenegraph/group-creater/cell-helper.js +19 -8
  69. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  70. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  71. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  72. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  73. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  74. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  75. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  76. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  77. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  78. package/cjs/scenegraph/group-creater/column-helper.js +5 -5
  79. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  80. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -2
  81. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  82. package/cjs/scenegraph/scenegraph.js +24 -11
  83. package/cjs/scenegraph/scenegraph.js.map +1 -1
  84. package/cjs/scenegraph/style/frame-border.js +7 -4
  85. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  86. package/cjs/state/hover/is-cell-hover.js +1 -1
  87. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  88. package/cjs/state/sort/index.js +2 -5
  89. package/cjs/state/sort/index.js.map +1 -1
  90. package/cjs/state/state.d.ts +0 -1
  91. package/cjs/state/state.js +3 -4
  92. package/cjs/state/state.js.map +1 -1
  93. package/cjs/themes/theme.js +3 -0
  94. package/cjs/themes/theme.js.map +1 -1
  95. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  96. package/cjs/tools/isx.d.ts +1 -1
  97. package/cjs/tools/util.d.ts +1 -1
  98. package/cjs/ts-types/base-table.d.ts +6 -5
  99. package/cjs/ts-types/base-table.js.map +1 -1
  100. package/cjs/ts-types/list-table/define/basic-define.d.ts +2 -0
  101. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  102. package/cjs/ts-types/list-table/layout-map/api.d.ts +5 -4
  103. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  104. package/cjs/ts-types/new-data-set.d.ts +27 -6
  105. package/cjs/ts-types/new-data-set.js +1 -1
  106. package/cjs/ts-types/new-data-set.js.map +1 -1
  107. package/cjs/ts-types/table-engine.d.ts +17 -5
  108. package/cjs/ts-types/table-engine.js.map +1 -1
  109. package/cjs/ts-types/theme.d.ts +1 -0
  110. package/cjs/ts-types/theme.js.map +1 -1
  111. package/cjs/vrender.js.map +1 -1
  112. package/dist/vtable.js +1306 -544
  113. package/dist/vtable.min.js +2 -2
  114. package/es/ListTable.d.ts +12 -2
  115. package/es/ListTable.js +81 -24
  116. package/es/ListTable.js.map +1 -1
  117. package/es/PivotChart.d.ts +2 -1
  118. package/es/PivotChart.js +5 -1
  119. package/es/PivotChart.js.map +1 -1
  120. package/es/PivotTable.d.ts +5 -2
  121. package/es/PivotTable.js +13 -5
  122. package/es/PivotTable.js.map +1 -1
  123. package/es/body-helper/body-helper.js +1 -0
  124. package/es/body-helper/body-helper.js.map +1 -1
  125. package/es/core/BaseTable.d.ts +2 -2
  126. package/es/core/BaseTable.js +22 -18
  127. package/es/core/BaseTable.js.map +1 -1
  128. package/es/core/tableHelper.d.ts +2 -2
  129. package/es/core/tableHelper.js +4 -6
  130. package/es/core/tableHelper.js.map +1 -1
  131. package/es/data/CachedDataSource.d.ts +4 -3
  132. package/es/data/CachedDataSource.js +5 -4
  133. package/es/data/CachedDataSource.js.map +1 -1
  134. package/es/data/DataSource.d.ts +22 -3
  135. package/es/data/DataSource.js +91 -7
  136. package/es/data/DataSource.js.map +1 -1
  137. package/es/dataset/dataset-pivot-table.d.ts +3 -3
  138. package/es/dataset/dataset-pivot-table.js +1 -0
  139. package/es/dataset/dataset-pivot-table.js.map +1 -1
  140. package/es/dataset/dataset.d.ts +3 -3
  141. package/es/dataset/dataset.js +3 -0
  142. package/es/dataset/dataset.js.map +1 -1
  143. package/es/dataset/statistics-helper.d.ts +24 -3
  144. package/es/dataset/statistics-helper.js +72 -8
  145. package/es/dataset/statistics-helper.js.map +1 -1
  146. package/es/edit/edit-manager.js +5 -4
  147. package/es/edit/edit-manager.js.map +1 -1
  148. package/es/event/listener/table-group.js +14 -4
  149. package/es/event/listener/table-group.js.map +1 -1
  150. package/es/event/media-click.js +2 -1
  151. package/es/event/scroll.js +1 -2
  152. package/es/event/sparkline-event.js +1 -1
  153. package/es/event/sparkline-event.js.map +1 -1
  154. package/es/index.d.ts +1 -1
  155. package/es/index.js +1 -1
  156. package/es/index.js.map +1 -1
  157. package/es/layout/chart-helper/get-chart-spec.d.ts +1 -0
  158. package/es/layout/chart-helper/get-chart-spec.js +29 -4
  159. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  160. package/es/layout/layout-helper.d.ts +4 -63
  161. package/es/layout/layout-helper.js +19 -246
  162. package/es/layout/layout-helper.js.map +1 -1
  163. package/es/layout/pivot-header-layout.d.ts +6 -3
  164. package/es/layout/pivot-header-layout.js +17 -6
  165. package/es/layout/pivot-header-layout.js.map +1 -1
  166. package/es/layout/row-height-map.js +2 -1
  167. package/es/layout/row-height-map.js.map +1 -1
  168. package/es/layout/simple-header-layout.d.ts +25 -2
  169. package/es/layout/simple-header-layout.js +130 -17
  170. package/es/layout/simple-header-layout.js.map +1 -1
  171. package/es/layout/tree-helper.d.ts +63 -0
  172. package/es/layout/tree-helper.js +256 -0
  173. package/es/layout/tree-helper.js.map +1 -0
  174. package/es/scenegraph/graphic/chart.d.ts +2 -1
  175. package/es/scenegraph/graphic/chart.js +21 -17
  176. package/es/scenegraph/graphic/chart.js.map +1 -1
  177. package/es/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  178. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  179. package/es/scenegraph/graphic/contributions/chart-render.js +2 -2
  180. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  181. package/es/scenegraph/group-creater/cell-helper.js +20 -7
  182. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  183. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  184. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  185. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  186. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  187. package/es/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  188. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  189. package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  190. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  191. package/es/scenegraph/group-creater/column-helper.js +5 -5
  192. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  193. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +6 -3
  194. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  195. package/es/scenegraph/scenegraph.js +24 -11
  196. package/es/scenegraph/scenegraph.js.map +1 -1
  197. package/es/scenegraph/style/frame-border.js +7 -4
  198. package/es/scenegraph/style/frame-border.js.map +1 -1
  199. package/es/state/hover/is-cell-hover.js +1 -1
  200. package/es/state/hover/is-cell-hover.js.map +1 -1
  201. package/es/state/sort/index.js +2 -5
  202. package/es/state/sort/index.js.map +1 -1
  203. package/es/state/state.d.ts +0 -1
  204. package/es/state/state.js +3 -4
  205. package/es/state/state.js.map +1 -1
  206. package/es/themes/theme.js +3 -0
  207. package/es/themes/theme.js.map +1 -1
  208. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  209. package/es/tools/isx.d.ts +1 -1
  210. package/es/tools/util.d.ts +1 -1
  211. package/es/ts-types/base-table.d.ts +6 -5
  212. package/es/ts-types/base-table.js.map +1 -1
  213. package/es/ts-types/list-table/define/basic-define.d.ts +2 -0
  214. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  215. package/es/ts-types/list-table/layout-map/api.d.ts +5 -4
  216. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  217. package/es/ts-types/new-data-set.d.ts +27 -6
  218. package/es/ts-types/new-data-set.js +1 -1
  219. package/es/ts-types/new-data-set.js.map +1 -1
  220. package/es/ts-types/table-engine.d.ts +17 -5
  221. package/es/ts-types/table-engine.js.map +1 -1
  222. package/es/ts-types/theme.d.ts +1 -0
  223. package/es/ts-types/theme.js.map +1 -1
  224. package/es/vrender.js.map +1 -1
  225. package/package.json +3 -3
  226. package/cjs/data/FilterDataSource.d.ts +0 -1
  227. package/cjs/data/FilterDataSource.js +0 -1
  228. package/cjs/data/FilterDataSource.js.map +0 -1
  229. package/es/data/FilterDataSource.d.ts +0 -1
  230. package/es/data/FilterDataSource.js +0 -1
  231. package/es/data/FilterDataSource.js.map +0 -1
@@ -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/cjs/ListTable.js CHANGED
@@ -39,7 +39,7 @@ class ListTable extends core_1.BaseTable {
39
39
  this.showHeader = !0;
40
40
  const internalProps = this.internalProps;
41
41
  internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode, this.pagination = options.pagination,
42
- internalProps.sortState = options.sortState, internalProps.columns = options.columns ? (0,
42
+ internalProps.sortState = options.sortState, internalProps.dataConfig = {}, internalProps.columns = options.columns ? (0,
43
43
  vutils_2.cloneDeep)(options.columns) : options.header ? (0, vutils_2.cloneDeep)(options.header) : [],
44
44
  null === (_a = options.columns) || void 0 === _a || _a.forEach(((colDefine, index) => {
45
45
  colDefine.editor && (internalProps.columns[index].editor = colDefine.editor);
@@ -63,6 +63,12 @@ class ListTable extends core_1.BaseTable {
63
63
  get sortState() {
64
64
  return this.internalProps.sortState;
65
65
  }
66
+ get records() {
67
+ return this.dataSource.source;
68
+ }
69
+ get recordsCount() {
70
+ return this.dataSource.source.length;
71
+ }
66
72
  updateColumns(columns) {
67
73
  const oldHoverState = {
68
74
  col: this.stateManager.hover.cellPos.col,
@@ -103,6 +109,16 @@ class ListTable extends core_1.BaseTable {
103
109
  const {title: title} = table.internalProps.layoutMap.getHeader(col, row);
104
110
  return "function" == typeof title ? title() : title;
105
111
  }
112
+ if (table.internalProps.layoutMap.isAggregation(col, row)) {
113
+ if (table.internalProps.layoutMap.isTopAggregation(col, row)) {
114
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnTop(col, row);
115
+ return (null == aggregator ? void 0 : aggregator.formatValue) ? aggregator.formatValue(col, row, this) : "";
116
+ }
117
+ if (table.internalProps.layoutMap.isBottomAggregation(col, row)) {
118
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnBottom(col, row);
119
+ return (null == aggregator ? void 0 : aggregator.formatValue) ? aggregator.formatValue(col, row, this) : "";
120
+ }
121
+ }
106
122
  const {field: field, fieldFormat: fieldFormat} = table.internalProps.layoutMap.getBody(col, row);
107
123
  return table.getFieldData(fieldFormat || field, col, row);
108
124
  }
@@ -113,6 +129,16 @@ class ListTable extends core_1.BaseTable {
113
129
  const {title: title} = table.internalProps.layoutMap.getHeader(col, row);
114
130
  return "function" == typeof title ? title() : title;
115
131
  }
132
+ if (table.internalProps.layoutMap.isAggregation(col, row)) {
133
+ if (table.internalProps.layoutMap.isTopAggregation(col, row)) {
134
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnTop(col, row);
135
+ return null == aggregator ? void 0 : aggregator.value();
136
+ }
137
+ if (table.internalProps.layoutMap.isBottomAggregation(col, row)) {
138
+ const aggregator = table.internalProps.layoutMap.getAggregatorOnBottom(col, row);
139
+ return null == aggregator ? void 0 : aggregator.value();
140
+ }
141
+ }
116
142
  const {field: field} = table.internalProps.layoutMap.getBody(col, row);
117
143
  return table.getFieldData(field, col, row);
118
144
  }
@@ -166,7 +192,7 @@ class ListTable extends core_1.BaseTable {
166
192
  var _a, _b;
167
193
  const internalProps = this.internalProps;
168
194
  return super.updateOption(options), internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode,
169
- this.pagination = options.pagination, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
195
+ this.pagination = options.pagination, internalProps.dataConfig = {}, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
170
196
  internalProps.columns = options.columns ? (0, vutils_2.cloneDeep)(options.columns) : options.header ? (0,
171
197
  vutils_2.cloneDeep)(options.header) : [], options.columns.forEach(((colDefine, index) => {
172
198
  colDefine.editor && (internalProps.columns[index].editor = colDefine.editor);
@@ -198,18 +224,18 @@ class ListTable extends core_1.BaseTable {
198
224
  this.refreshRowColCount();
199
225
  }
200
226
  refreshRowColCount() {
201
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
202
228
  const table = this, {layoutMap: layoutMap} = table.internalProps;
203
- layoutMap && (layoutMap.recordsCount = null !== (_b = null === (_a = table.internalProps.dataSource) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0,
229
+ 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,
204
230
  table.transpose ? (table.rowCount = null !== (_c = layoutMap.rowCount) && void 0 !== _c ? _c : 0,
205
- 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,
206
- table.frozenRowCount = 0, this.internalProps.frozenColCount = null !== (_f = layoutMap.headerLevelCount) && void 0 !== _f ? _f : 0,
207
- table.bottomFrozenRowCount !== (null !== (_g = this.options.bottomFrozenRowCount) && void 0 !== _g ? _g : 0) && (table.bottomFrozenRowCount = null !== (_h = this.options.bottomFrozenRowCount) && void 0 !== _h ? _h : 0),
208
- 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,
209
- 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,
210
- this.internalProps.frozenColCount = null !== (_p = this.options.frozenColCount) && void 0 !== _p ? _p : 0,
211
- 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),
212
- table.rightFrozenColCount !== (null !== (_s = this.options.rightFrozenColCount) && void 0 !== _s ? _s : 0) && (table.rightFrozenColCount = null !== (_t = this.options.rightFrozenColCount) && void 0 !== _t ? _t : 0)),
231
+ table.colCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
232
+ table.frozenRowCount = 0, this.internalProps.frozenColCount = null !== (_d = layoutMap.headerLevelCount) && void 0 !== _d ? _d : 0,
233
+ table.bottomFrozenRowCount !== (null !== (_e = this.options.bottomFrozenRowCount) && void 0 !== _e ? _e : 0) && (table.bottomFrozenRowCount = null !== (_f = this.options.bottomFrozenRowCount) && void 0 !== _f ? _f : 0),
234
+ 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,
235
+ table.rowCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
236
+ this.internalProps.frozenColCount = null !== (_k = this.options.frozenColCount) && void 0 !== _k ? _k : 0,
237
+ 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),
238
+ table.rightFrozenColCount !== (null !== (_o = this.options.rightFrozenColCount) && void 0 !== _o ? _o : 0) && (table.rightFrozenColCount = null !== (_p = this.options.rightFrozenColCount) && void 0 !== _p ? _p : 0)),
213
239
  this.stateManager.setFrozenCol(this.internalProps.frozenColCount));
214
240
  }
215
241
  getFieldData(field, col, row) {
@@ -356,23 +382,26 @@ class ListTable extends core_1.BaseTable {
356
382
  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++) {
357
383
  this.internalProps.sortState[i].order = "normal";
358
384
  } else this.internalProps.sortState.order = "normal";
359
- let order, field, fieldKey;
360
- 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),
385
+ let order, field;
386
+ 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),
361
387
  field && executeSort) {
362
- const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, field, fieldKey);
363
- let hd;
364
- hd = fieldKey ? this.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
388
+ const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
365
389
  !1 !== hd.define.sort && (this.dataSource.sort(hd.field, order, sortFunc), this.internalProps.layoutMap.clearCellRangeMap(),
366
390
  this.scenegraph.sortCell());
367
391
  }
368
392
  this.stateManager.updateSortState(sortState);
369
393
  }
394
+ updateFilterRules(filterRules) {
395
+ this.scenegraph.clearCells(), this.internalProps.dataConfig.filterRules = filterRules,
396
+ this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), (0, tableHelper_1.sortRecords)(this)) : this.dataSource.updateFilterRules(filterRules),
397
+ this.refreshRowColCount(), this.scenegraph.createSceneGraph();
398
+ }
370
399
  getCheckboxState(field) {
371
400
  return this.stateManager.checkedState.length < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records),
372
401
  (0, vutils_1.isValid)(field) ? this.stateManager.checkedState.map((state => state[field])) : this.stateManager.checkedState;
373
402
  }
374
403
  getCellCheckboxState(col, row) {
375
- const define = this.getBodyColumnDefine(col, row), field = null == define ? void 0 : define.field, cellType = null == define ? void 0 : define.cellType;
404
+ const define = this.getBodyColumnDefine(col, row), field = null == define ? void 0 : define.field, cellType = this.getCellType(col, row);
376
405
  if ((0, vutils_1.isValid)(field) && "checkbox" === cellType) {
377
406
  const dataIndex = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row));
378
407
  return this.stateManager.checkedState[dataIndex][field];
@@ -388,12 +417,10 @@ class ListTable extends core_1.BaseTable {
388
417
  if (this.scenegraph.clearCells(), void 0 !== sort && (this.internalProps.sortState = sort,
389
418
  this.stateManager.setSortState(this.sortState)), records) {
390
419
  if ((0, tableHelper_1._setRecords)(this, records), this.sortState) {
391
- let order, field, fieldKey;
392
- 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),
420
+ let order, field;
421
+ 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),
393
422
  order && field && "normal" !== order) {
394
- const sortFunc = this._getSortFuncFromHeaderOption(void 0, field, fieldKey);
395
- let hd;
396
- hd = fieldKey ? this.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
423
+ const sortFunc = this._getSortFuncFromHeaderOption(void 0, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
397
424
  !1 !== hd.define.sort && this.dataSource.sort(hd.field, order, null != sortFunc ? sortFunc : util_1.defaultOrderFn);
398
425
  }
399
426
  }
@@ -438,6 +465,15 @@ class ListTable extends core_1.BaseTable {
438
465
  changeCellValue(col, row, value) {
439
466
  const recordIndex = this.getRecordShowIndexByCell(col, row), {field: field} = this.internalProps.layoutMap.getBody(col, row), beforeChangeValue = this.getCellRawValue(col, row);
440
467
  this.isHeader(col, row) ? this.internalProps.layoutMap.updateColumnTitle(col, row, value) : this.dataSource.changeFieldValue(value, recordIndex, field, col, row, this);
468
+ const aggregators = this.internalProps.layoutMap.getAggregators(col, row);
469
+ if (aggregators) {
470
+ if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
471
+ const aggregatorCells = this.internalProps.layoutMap.getCellAddressHasAggregator(col, row);
472
+ for (let i = 0; i < aggregatorCells.length; i++) {
473
+ const range = this.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
474
+ 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);
475
+ }
476
+ }
441
477
  const range = this.getCellRange(col, row);
442
478
  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);
443
479
  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)) {
@@ -682,7 +718,7 @@ class ListTable extends core_1.BaseTable {
682
718
  }
683
719
  }
684
720
  }
685
- hasCustomRenderOrLayout() {
721
+ _hasCustomRenderOrLayout() {
686
722
  var _a, _b, _c, _d;
687
723
  const {headerObjects: headerObjects} = this.internalProps.layoutMap;
688
724
  if (this.options.customRender) return !0;
@@ -692,6 +728,27 @@ class ListTable extends core_1.BaseTable {
692
728
  }
693
729
  return !1;
694
730
  }
731
+ getAggregateValuesByField(field) {
732
+ const columns = this.internalProps.layoutMap.getColumnByField(field), results = [];
733
+ for (let i = 0; i < columns.length; i++) {
734
+ const aggregator = columns[i].columnDefine.aggregator;
735
+ if (delete columns[i].columnDefine, aggregator) {
736
+ const columnAggregateValue = {
737
+ col: columns[i].col,
738
+ aggregateValue: null
739
+ };
740
+ if (columnAggregateValue.aggregateValue = [], Array.isArray(aggregator)) for (let j = 0; j < aggregator.length; j++) columnAggregateValue.aggregateValue.push({
741
+ aggregationType: aggregator[j].type,
742
+ value: aggregator[j].value()
743
+ }); else columnAggregateValue.aggregateValue.push({
744
+ aggregationType: aggregator.type,
745
+ value: aggregator.value()
746
+ });
747
+ results.push(columnAggregateValue);
748
+ }
749
+ }
750
+ return results;
751
+ }
695
752
  }
696
753
 
697
754
  exports.ListTable = ListTable;