@visactor/vtable 0.19.2-alpha.3 → 0.20.1-alpha.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 (221) hide show
  1. package/cjs/ListTable.d.ts +14 -3
  2. package/cjs/ListTable.js +85 -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/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 +5 -7
  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 +25 -5
  20. package/cjs/data/DataSource.js +112 -17
  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 +7 -4
  45. package/cjs/layout/pivot-header-layout.js +27 -16
  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 +26 -3
  50. package/cjs/layout/simple-header-layout.js +131 -19
  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/component/custom.d.ts +0 -5
  56. package/cjs/scenegraph/component/custom.js +3 -20
  57. package/cjs/scenegraph/component/custom.js.map +1 -1
  58. package/cjs/scenegraph/graphic/chart.d.ts +2 -1
  59. package/cjs/scenegraph/graphic/chart.js +21 -18
  60. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  61. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  62. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  63. package/cjs/scenegraph/graphic/contributions/chart-render.js +2 -2
  64. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/cell-helper.d.ts +8 -0
  66. package/cjs/scenegraph/group-creater/cell-helper.js +64 -10
  67. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  68. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  69. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  70. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  71. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  72. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  73. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  74. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  75. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  76. package/cjs/scenegraph/group-creater/column-helper.d.ts +1 -5
  77. package/cjs/scenegraph/group-creater/column-helper.js +10 -37
  78. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  79. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -2
  80. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  81. package/cjs/scenegraph/layout/update-height.js +3 -3
  82. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  83. package/cjs/scenegraph/layout/update-width.js +3 -3
  84. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  85. package/cjs/scenegraph/scenegraph.js +4 -6
  86. package/cjs/scenegraph/scenegraph.js.map +1 -1
  87. package/cjs/state/sort/index.js +2 -5
  88. package/cjs/state/sort/index.js.map +1 -1
  89. package/cjs/state/state.d.ts +0 -1
  90. package/cjs/state/state.js +1 -2
  91. package/cjs/state/state.js.map +1 -1
  92. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  93. package/cjs/tools/isx.d.ts +1 -1
  94. package/cjs/tools/util.d.ts +1 -1
  95. package/cjs/ts-types/base-table.d.ts +6 -5
  96. package/cjs/ts-types/base-table.js.map +1 -1
  97. package/cjs/ts-types/list-table/define/basic-define.d.ts +2 -0
  98. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  99. package/cjs/ts-types/list-table/layout-map/api.d.ts +5 -4
  100. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  101. package/cjs/ts-types/new-data-set.d.ts +27 -6
  102. package/cjs/ts-types/new-data-set.js +1 -1
  103. package/cjs/ts-types/new-data-set.js.map +1 -1
  104. package/cjs/ts-types/table-engine.d.ts +18 -6
  105. package/cjs/ts-types/table-engine.js.map +1 -1
  106. package/cjs/vrender.js.map +1 -1
  107. package/dist/vtable.js +2119 -1430
  108. package/dist/vtable.min.js +2 -2
  109. package/es/ListTable.d.ts +14 -3
  110. package/es/ListTable.js +85 -24
  111. package/es/ListTable.js.map +1 -1
  112. package/es/PivotChart.d.ts +2 -1
  113. package/es/PivotChart.js +5 -1
  114. package/es/PivotChart.js.map +1 -1
  115. package/es/PivotTable.d.ts +5 -2
  116. package/es/PivotTable.js +13 -5
  117. package/es/PivotTable.js.map +1 -1
  118. package/es/core/BaseTable.d.ts +2 -2
  119. package/es/core/BaseTable.js +7 -8
  120. package/es/core/BaseTable.js.map +1 -1
  121. package/es/core/tableHelper.d.ts +2 -2
  122. package/es/core/tableHelper.js +5 -7
  123. package/es/core/tableHelper.js.map +1 -1
  124. package/es/data/CachedDataSource.d.ts +4 -3
  125. package/es/data/CachedDataSource.js +5 -4
  126. package/es/data/CachedDataSource.js.map +1 -1
  127. package/es/data/DataSource.d.ts +25 -5
  128. package/es/data/DataSource.js +110 -18
  129. package/es/data/DataSource.js.map +1 -1
  130. package/es/dataset/dataset-pivot-table.d.ts +3 -3
  131. package/es/dataset/dataset-pivot-table.js +1 -0
  132. package/es/dataset/dataset-pivot-table.js.map +1 -1
  133. package/es/dataset/dataset.d.ts +3 -3
  134. package/es/dataset/dataset.js +3 -0
  135. package/es/dataset/dataset.js.map +1 -1
  136. package/es/dataset/statistics-helper.d.ts +24 -3
  137. package/es/dataset/statistics-helper.js +72 -8
  138. package/es/dataset/statistics-helper.js.map +1 -1
  139. package/es/edit/edit-manager.js +5 -4
  140. package/es/edit/edit-manager.js.map +1 -1
  141. package/es/event/media-click.js +2 -1
  142. package/es/event/scroll.js +1 -2
  143. package/es/index.d.ts +1 -1
  144. package/es/index.js +1 -1
  145. package/es/index.js.map +1 -1
  146. package/es/layout/chart-helper/get-chart-spec.d.ts +1 -0
  147. package/es/layout/chart-helper/get-chart-spec.js +29 -4
  148. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  149. package/es/layout/layout-helper.d.ts +4 -63
  150. package/es/layout/layout-helper.js +19 -246
  151. package/es/layout/layout-helper.js.map +1 -1
  152. package/es/layout/pivot-header-layout.d.ts +7 -4
  153. package/es/layout/pivot-header-layout.js +18 -7
  154. package/es/layout/pivot-header-layout.js.map +1 -1
  155. package/es/layout/row-height-map.js +2 -1
  156. package/es/layout/row-height-map.js.map +1 -1
  157. package/es/layout/simple-header-layout.d.ts +26 -3
  158. package/es/layout/simple-header-layout.js +131 -18
  159. package/es/layout/simple-header-layout.js.map +1 -1
  160. package/es/layout/tree-helper.d.ts +63 -0
  161. package/es/layout/tree-helper.js +256 -0
  162. package/es/layout/tree-helper.js.map +1 -0
  163. package/es/scenegraph/component/custom.d.ts +0 -5
  164. package/es/scenegraph/component/custom.js +0 -18
  165. package/es/scenegraph/component/custom.js.map +1 -1
  166. package/es/scenegraph/graphic/chart.d.ts +2 -1
  167. package/es/scenegraph/graphic/chart.js +21 -17
  168. package/es/scenegraph/graphic/chart.js.map +1 -1
  169. package/es/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
  170. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  171. package/es/scenegraph/graphic/contributions/chart-render.js +2 -2
  172. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  173. package/es/scenegraph/group-creater/cell-helper.d.ts +8 -0
  174. package/es/scenegraph/group-creater/cell-helper.js +64 -9
  175. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  176. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  177. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  178. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  179. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  180. package/es/scenegraph/group-creater/cell-type/image-cell.js +9 -5
  181. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  182. package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  183. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  184. package/es/scenegraph/group-creater/column-helper.d.ts +1 -5
  185. package/es/scenegraph/group-creater/column-helper.js +6 -34
  186. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  187. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +6 -3
  188. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  189. package/es/scenegraph/layout/update-height.js +2 -2
  190. package/es/scenegraph/layout/update-height.js.map +1 -1
  191. package/es/scenegraph/layout/update-width.js +2 -2
  192. package/es/scenegraph/layout/update-width.js.map +1 -1
  193. package/es/scenegraph/scenegraph.js +4 -6
  194. package/es/scenegraph/scenegraph.js.map +1 -1
  195. package/es/state/sort/index.js +2 -5
  196. package/es/state/sort/index.js.map +1 -1
  197. package/es/state/state.d.ts +0 -1
  198. package/es/state/state.js +1 -2
  199. package/es/state/state.js.map +1 -1
  200. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  201. package/es/tools/isx.d.ts +1 -1
  202. package/es/tools/util.d.ts +1 -1
  203. package/es/ts-types/base-table.d.ts +6 -5
  204. package/es/ts-types/base-table.js.map +1 -1
  205. package/es/ts-types/list-table/define/basic-define.d.ts +2 -0
  206. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  207. package/es/ts-types/list-table/layout-map/api.d.ts +5 -4
  208. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  209. package/es/ts-types/new-data-set.d.ts +27 -6
  210. package/es/ts-types/new-data-set.js +1 -1
  211. package/es/ts-types/new-data-set.js.map +1 -1
  212. package/es/ts-types/table-engine.d.ts +18 -6
  213. package/es/ts-types/table-engine.js.map +1 -1
  214. package/es/vrender.js.map +1 -1
  215. package/package.json +2 -2
  216. package/cjs/data/FilterDataSource.d.ts +0 -1
  217. package/cjs/data/FilterDataSource.js +0 -1
  218. package/cjs/data/FilterDataSource.js.map +0 -1
  219. package/es/data/FilterDataSource.d.ts +0 -1
  220. package/es/data/FilterDataSource.js +0 -1
  221. 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;
@@ -25,7 +27,8 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
25
27
  getCellOriginValue(col: number, row: number): FieldData;
26
28
  getCellRawValue(col: number, row: number): FieldData;
27
29
  getRecordShowIndexByCell(col: number, row: number): number;
28
- getTableIndexByRecordIndex(recordIndex: number): number;
30
+ getRecordIndexByCell(col: number, row: number): number | number[];
31
+ getTableIndexByRecordIndex(recordIndex: number | number[]): number;
29
32
  getTableIndexByField(field: FieldDef): number;
30
33
  getCellAddrByFieldRecord(field: FieldDef, recordIndex: number): CellAddress;
31
34
  getCellOriginRecord(col: number, row: number): MaybePromiseOrUndefined;
@@ -47,6 +50,7 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
47
50
  getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo;
48
51
  _getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): ((v1: any, v2: any, order: SortOrder) => 0 | 1 | -1) | undefined;
49
52
  updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
53
+ updateFilterRules(filterRules: FilterRules): void;
50
54
  getCheckboxState(field?: string | number): boolean[] | Record<string | number, boolean>[];
51
55
  getCellCheckboxState(col: number, row: number): boolean;
52
56
  setRecords(records: Array<any>, sort?: SortState | SortState[]): void;
@@ -60,5 +64,12 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
60
64
  addRecords(records: any[], recordIndex?: number): void;
61
65
  deleteRecords(recordIndexs: number[]): void;
62
66
  updateRecords(records: any[], recordIndexs: number[]): void;
63
- hasCustomRenderOrLayout(): boolean;
67
+ _hasCustomRenderOrLayout(): boolean;
68
+ getAggregateValuesByField(field: string | number): {
69
+ col: number;
70
+ aggregateValue: {
71
+ aggregationType: AggregationType;
72
+ value: number | string;
73
+ }[];
74
+ }[];
64
75
  }
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
  }
@@ -128,7 +154,11 @@ class ListTable extends core_1.BaseTable {
128
154
  }
129
155
  getRecordShowIndexByCell(col, row) {
130
156
  const {layoutMap: layoutMap} = this.internalProps;
131
- return layoutMap.getRecordIndexByCell(col, row);
157
+ return layoutMap.getRecordShowIndexByCell(col, row);
158
+ }
159
+ getRecordIndexByCell(col, row) {
160
+ const {layoutMap: layoutMap} = this.internalProps, recordShowIndex = layoutMap.getRecordShowIndexByCell(col, row);
161
+ return this.dataSource.currentPagerIndexedData[recordShowIndex];
132
162
  }
133
163
  getTableIndexByRecordIndex(recordIndex) {
134
164
  return this.transpose ? this.dataSource.getTableIndex(recordIndex) + this.rowHeaderLevelCount : this.dataSource.getTableIndex(recordIndex) + this.columnHeaderLevelCount;
@@ -166,7 +196,7 @@ class ListTable extends core_1.BaseTable {
166
196
  var _a, _b;
167
197
  const internalProps = this.internalProps;
168
198
  return super.updateOption(options), internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode,
169
- this.pagination = options.pagination, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
199
+ this.pagination = options.pagination, internalProps.dataConfig = {}, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
170
200
  internalProps.columns = options.columns ? (0, vutils_2.cloneDeep)(options.columns) : options.header ? (0,
171
201
  vutils_2.cloneDeep)(options.header) : [], options.columns.forEach(((colDefine, index) => {
172
202
  colDefine.editor && (internalProps.columns[index].editor = colDefine.editor);
@@ -198,18 +228,18 @@ class ListTable extends core_1.BaseTable {
198
228
  this.refreshRowColCount();
199
229
  }
200
230
  refreshRowColCount() {
201
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
231
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
202
232
  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,
233
+ 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
234
  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)),
235
+ table.colCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
236
+ table.frozenRowCount = 0, this.internalProps.frozenColCount = null !== (_d = layoutMap.headerLevelCount) && void 0 !== _d ? _d : 0,
237
+ table.bottomFrozenRowCount !== (null !== (_e = this.options.bottomFrozenRowCount) && void 0 !== _e ? _e : 0) && (table.bottomFrozenRowCount = null !== (_f = this.options.bottomFrozenRowCount) && void 0 !== _f ? _f : 0),
238
+ 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,
239
+ table.rowCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
240
+ this.internalProps.frozenColCount = null !== (_k = this.options.frozenColCount) && void 0 !== _k ? _k : 0,
241
+ 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),
242
+ 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
243
  this.stateManager.setFrozenCol(this.internalProps.frozenColCount));
214
244
  }
215
245
  getFieldData(field, col, row) {
@@ -356,17 +386,20 @@ class ListTable extends core_1.BaseTable {
356
386
  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
387
  this.internalProps.sortState[i].order = "normal";
358
388
  } 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),
389
+ let order, field;
390
+ 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
391
  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)),
392
+ const sortFunc = this._getSortFuncFromHeaderOption(this.internalProps.columns, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
365
393
  !1 !== hd.define.sort && (this.dataSource.sort(hd.field, order, sortFunc), this.internalProps.layoutMap.clearCellRangeMap(),
366
394
  this.scenegraph.sortCell());
367
395
  }
368
396
  this.stateManager.updateSortState(sortState);
369
397
  }
398
+ updateFilterRules(filterRules) {
399
+ this.scenegraph.clearCells(), this.internalProps.dataConfig.filterRules = filterRules,
400
+ this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), (0, tableHelper_1.sortRecords)(this)) : this.dataSource.updateFilterRules(filterRules),
401
+ this.refreshRowColCount(), this.scenegraph.createSceneGraph();
402
+ }
370
403
  getCheckboxState(field) {
371
404
  return this.stateManager.checkedState.length < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records),
372
405
  (0, vutils_1.isValid)(field) ? this.stateManager.checkedState.map((state => state[field])) : this.stateManager.checkedState;
@@ -388,12 +421,10 @@ class ListTable extends core_1.BaseTable {
388
421
  if (this.scenegraph.clearCells(), void 0 !== sort && (this.internalProps.sortState = sort,
389
422
  this.stateManager.setSortState(this.sortState)), records) {
390
423
  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),
424
+ let order, field;
425
+ 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
426
  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)),
427
+ const sortFunc = this._getSortFuncFromHeaderOption(void 0, field), hd = this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
397
428
  !1 !== hd.define.sort && this.dataSource.sort(hd.field, order, null != sortFunc ? sortFunc : util_1.defaultOrderFn);
398
429
  }
399
430
  }
@@ -438,6 +469,15 @@ class ListTable extends core_1.BaseTable {
438
469
  changeCellValue(col, row, value) {
439
470
  const recordIndex = this.getRecordShowIndexByCell(col, row), {field: field} = this.internalProps.layoutMap.getBody(col, row), beforeChangeValue = this.getCellRawValue(col, row);
440
471
  this.isHeader(col, row) ? this.internalProps.layoutMap.updateColumnTitle(col, row, value) : this.dataSource.changeFieldValue(value, recordIndex, field, col, row, this);
472
+ const aggregators = this.internalProps.layoutMap.getAggregators(col, row);
473
+ if (aggregators) {
474
+ if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
475
+ const aggregatorCells = this.internalProps.layoutMap.getCellAddressHasAggregator(col, row);
476
+ for (let i = 0; i < aggregatorCells.length; i++) {
477
+ const range = this.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
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);
479
+ }
480
+ }
441
481
  const range = this.getCellRange(col, row);
442
482
  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
483
  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 +722,7 @@ class ListTable extends core_1.BaseTable {
682
722
  }
683
723
  }
684
724
  }
685
- hasCustomRenderOrLayout() {
725
+ _hasCustomRenderOrLayout() {
686
726
  var _a, _b, _c, _d;
687
727
  const {headerObjects: headerObjects} = this.internalProps.layoutMap;
688
728
  if (this.options.customRender) return !0;
@@ -692,6 +732,27 @@ class ListTable extends core_1.BaseTable {
692
732
  }
693
733
  return !1;
694
734
  }
735
+ getAggregateValuesByField(field) {
736
+ const columns = this.internalProps.layoutMap.getColumnByField(field), results = [];
737
+ for (let i = 0; i < columns.length; i++) {
738
+ const aggregator = columns[i].columnDefine.aggregator;
739
+ if (delete columns[i].columnDefine, aggregator) {
740
+ const columnAggregateValue = {
741
+ col: columns[i].col,
742
+ aggregateValue: null
743
+ };
744
+ if (columnAggregateValue.aggregateValue = [], Array.isArray(aggregator)) for (let j = 0; j < aggregator.length; j++) columnAggregateValue.aggregateValue.push({
745
+ aggregationType: aggregator[j].type,
746
+ value: aggregator[j].value()
747
+ }); else columnAggregateValue.aggregateValue.push({
748
+ aggregationType: aggregator.type,
749
+ value: aggregator.value()
750
+ });
751
+ results.push(columnAggregateValue);
752
+ }
753
+ }
754
+ return results;
755
+ }
695
756
  }
696
757
 
697
758
  exports.ListTable = ListTable;