@visactor/vtable 1.2.1-alpha.2 → 1.3.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 (163) hide show
  1. package/cjs/ListTable.js +2 -1
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.d.ts +1 -5
  4. package/cjs/PivotChart.js +7 -30
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +7 -2
  7. package/cjs/PivotTable.js +98 -24
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/body-helper/style/Style.d.ts +3 -0
  10. package/cjs/body-helper/style/Style.js +32 -25
  11. package/cjs/body-helper/style/Style.js.map +1 -1
  12. package/cjs/components/empty-tip/empty-tip.js +2 -2
  13. package/cjs/components/empty-tip/empty-tip.js.map +1 -1
  14. package/cjs/components/tooltip/TooltipHandler.js +4 -2
  15. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  16. package/cjs/components/tooltip/logic/BubbleTooltipElement.d.ts +2 -0
  17. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +18 -4
  18. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  19. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  20. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  21. package/cjs/core/BaseTable.d.ts +1 -1
  22. package/cjs/core/BaseTable.js +7 -7
  23. package/cjs/core/BaseTable.js.map +1 -1
  24. package/cjs/core/tableHelper.js +2 -1
  25. package/cjs/core/tableHelper.js.map +1 -1
  26. package/cjs/dataset/dataset.d.ts +2 -0
  27. package/cjs/dataset/dataset.js +8 -7
  28. package/cjs/dataset/dataset.js.map +1 -1
  29. package/cjs/event/listener/container-dom.js +9 -6
  30. package/cjs/event/listener/container-dom.js.map +1 -1
  31. package/cjs/event/listener/table-group.js +8 -7
  32. package/cjs/event/listener/table-group.js.map +1 -1
  33. package/cjs/header-helper/header-helper.d.ts +1 -0
  34. package/cjs/header-helper/header-helper.js +12 -2
  35. package/cjs/header-helper/header-helper.js.map +1 -1
  36. package/cjs/header-helper/style/Style.d.ts +3 -0
  37. package/cjs/header-helper/style/Style.js +34 -27
  38. package/cjs/header-helper/style/Style.js.map +1 -1
  39. package/cjs/index.d.ts +1 -1
  40. package/cjs/index.js +1 -1
  41. package/cjs/index.js.map +1 -1
  42. package/cjs/layout/pivot-header-layout.js +43 -21
  43. package/cjs/layout/pivot-header-layout.js.map +1 -1
  44. package/cjs/layout/tree-helper.js +4 -1
  45. package/cjs/layout/tree-helper.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/cell-helper.js +2 -2
  47. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  48. package/cjs/scenegraph/icon/icon-update.js +1 -0
  49. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  50. package/cjs/scenegraph/layout/frozen.js +12 -4
  51. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  52. package/cjs/scenegraph/utils/text-icon-layout.js +1 -1
  53. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  54. package/cjs/state/select/update-position.js +1 -1
  55. package/cjs/state/select/update-position.js.map +1 -1
  56. package/cjs/state/state.js +7 -5
  57. package/cjs/state/state.js.map +1 -1
  58. package/cjs/themes/theme.js +3 -0
  59. package/cjs/themes/theme.js.map +1 -1
  60. package/cjs/ts-types/base-table.d.ts +3 -1
  61. package/cjs/ts-types/base-table.js.map +1 -1
  62. package/cjs/ts-types/column/style.d.ts +1 -0
  63. package/cjs/ts-types/column/style.js.map +1 -1
  64. package/cjs/ts-types/common.d.ts +4 -13
  65. package/cjs/ts-types/common.js.map +1 -1
  66. package/cjs/ts-types/icon.d.ts +1 -0
  67. package/cjs/ts-types/icon.js.map +1 -1
  68. package/cjs/ts-types/list-table/layout-map/api.d.ts +2 -1
  69. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  70. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +3 -1
  71. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  72. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -0
  73. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  74. package/cjs/ts-types/style-define.d.ts +1 -0
  75. package/cjs/ts-types/style-define.js.map +1 -1
  76. package/cjs/ts-types/table-engine.d.ts +4 -1
  77. package/cjs/ts-types/table-engine.js.map +1 -1
  78. package/cjs/ts-types/tooltip.d.ts +1 -0
  79. package/cjs/ts-types/tooltip.js.map +1 -1
  80. package/cjs/vrender.js.map +1 -1
  81. package/dist/vtable.js +463 -112
  82. package/dist/vtable.min.js +2 -2
  83. package/es/ListTable.js +2 -1
  84. package/es/ListTable.js.map +1 -1
  85. package/es/PivotChart.d.ts +1 -5
  86. package/es/PivotChart.js +6 -31
  87. package/es/PivotChart.js.map +1 -1
  88. package/es/PivotTable.d.ts +7 -2
  89. package/es/PivotTable.js +100 -26
  90. package/es/PivotTable.js.map +1 -1
  91. package/es/body-helper/style/Style.d.ts +3 -0
  92. package/es/body-helper/style/Style.js +32 -25
  93. package/es/body-helper/style/Style.js.map +1 -1
  94. package/es/components/empty-tip/empty-tip.js +2 -2
  95. package/es/components/empty-tip/empty-tip.js.map +1 -1
  96. package/es/components/tooltip/TooltipHandler.js +4 -2
  97. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  98. package/es/components/tooltip/logic/BubbleTooltipElement.d.ts +2 -0
  99. package/es/components/tooltip/logic/BubbleTooltipElement.js +18 -4
  100. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  101. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  102. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  103. package/es/core/BaseTable.d.ts +1 -1
  104. package/es/core/BaseTable.js +7 -7
  105. package/es/core/BaseTable.js.map +1 -1
  106. package/es/core/tableHelper.js +2 -1
  107. package/es/core/tableHelper.js.map +1 -1
  108. package/es/dataset/dataset.d.ts +2 -0
  109. package/es/dataset/dataset.js +8 -7
  110. package/es/dataset/dataset.js.map +1 -1
  111. package/es/event/listener/container-dom.js +9 -6
  112. package/es/event/listener/container-dom.js.map +1 -1
  113. package/es/event/listener/table-group.js +8 -7
  114. package/es/event/listener/table-group.js.map +1 -1
  115. package/es/header-helper/header-helper.d.ts +1 -0
  116. package/es/header-helper/header-helper.js +12 -2
  117. package/es/header-helper/header-helper.js.map +1 -1
  118. package/es/header-helper/style/Style.d.ts +3 -0
  119. package/es/header-helper/style/Style.js +34 -27
  120. package/es/header-helper/style/Style.js.map +1 -1
  121. package/es/index.d.ts +1 -1
  122. package/es/index.js +1 -1
  123. package/es/index.js.map +1 -1
  124. package/es/layout/pivot-header-layout.js +43 -21
  125. package/es/layout/pivot-header-layout.js.map +1 -1
  126. package/es/layout/tree-helper.js +4 -1
  127. package/es/layout/tree-helper.js.map +1 -1
  128. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  129. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  130. package/es/scenegraph/icon/icon-update.js +1 -0
  131. package/es/scenegraph/icon/icon-update.js.map +1 -1
  132. package/es/scenegraph/layout/frozen.js +12 -4
  133. package/es/scenegraph/layout/frozen.js.map +1 -1
  134. package/es/scenegraph/utils/text-icon-layout.js +1 -1
  135. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  136. package/es/state/select/update-position.js +1 -1
  137. package/es/state/select/update-position.js.map +1 -1
  138. package/es/state/state.js +7 -5
  139. package/es/state/state.js.map +1 -1
  140. package/es/themes/theme.js +3 -0
  141. package/es/themes/theme.js.map +1 -1
  142. package/es/ts-types/base-table.d.ts +3 -1
  143. package/es/ts-types/base-table.js.map +1 -1
  144. package/es/ts-types/column/style.d.ts +1 -0
  145. package/es/ts-types/column/style.js.map +1 -1
  146. package/es/ts-types/common.d.ts +4 -13
  147. package/es/ts-types/common.js.map +1 -1
  148. package/es/ts-types/icon.d.ts +1 -0
  149. package/es/ts-types/icon.js.map +1 -1
  150. package/es/ts-types/list-table/layout-map/api.d.ts +2 -1
  151. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  152. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +3 -1
  153. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  154. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -0
  155. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  156. package/es/ts-types/style-define.d.ts +1 -0
  157. package/es/ts-types/style-define.js.map +1 -1
  158. package/es/ts-types/table-engine.d.ts +4 -1
  159. package/es/ts-types/table-engine.js.map +1 -1
  160. package/es/ts-types/tooltip.d.ts +1 -0
  161. package/es/ts-types/tooltip.js.map +1 -1
  162. package/es/vrender.js.map +1 -1
  163. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import type { FieldData, FieldDef, PivotTableAPI, SortRules, PivotSortState, CellAddress, ICellHeaderPaths, DropDownMenuEventInfo, FieldKeyDef, PivotTableConstructorOptions, IHeaderTreeDefine, IDimensionInfo, SortOrder, IPagination, CellLocation } from './ts-types';
1
+ import type { FieldData, FieldDef, PivotTableAPI, SortRules, CellAddress, ICellHeaderPaths, DropDownMenuEventInfo, FieldKeyDef, PivotTableConstructorOptions, IHeaderTreeDefine, IDimensionInfo, SortOrder, IPagination, CellLocation } from './ts-types';
2
2
  import { HierarchyState } from './ts-types';
3
3
  import { FlatDataToObjects } from './dataset/flatDataToObject';
4
4
  import { PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';
@@ -14,7 +14,10 @@ export declare class PivotTable extends BaseTable implements PivotTableAPI {
14
14
  };
15
15
  internalProps: PivotTableProtected;
16
16
  options: PivotTableConstructorOptions;
17
- pivotSortState: PivotSortState[];
17
+ pivotSortState: {
18
+ dimensions: IDimensionInfo[];
19
+ order: SortOrder;
20
+ }[];
18
21
  editorManager: EditManeger;
19
22
  dataset?: Dataset;
20
23
  flatDataToObjects?: FlatDataToObjects;
@@ -46,10 +49,12 @@ export declare class PivotTable extends BaseTable implements PivotTableAPI {
46
49
  getCellOriginRecord(col: number, row: number): any;
47
50
  getCellRawRecord(col: number, row: number): any;
48
51
  updateSortRules(sortRules: SortRules): void;
52
+ _changePivotSortStateBySortRules(): void;
49
53
  updatePivotSortState(pivotSortStateConfig: {
50
54
  dimensions: IDimensionInfo[];
51
55
  order: SortOrder;
52
56
  }[]): void;
57
+ sort(col: number, row: number, order: SortOrder): void;
53
58
  getPivotSortState(col: number, row: number): SortOrder;
54
59
  _moveHeaderPosition(source: CellAddress, target: CellAddress): {
55
60
  sourceIndex: number;
package/cjs/PivotTable.js CHANGED
@@ -33,7 +33,7 @@ const ts_types_1 = require("./ts-types"), pivot_header_layout_1 = require("./lay
33
33
 
34
34
  class PivotTable extends BaseTable_1.BaseTable {
35
35
  constructor(container, options) {
36
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
37
37
  if ("node" === env_1.Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container,
38
38
  container = container.container ? container.container : null), super(container, options),
39
39
  this.layoutNodeId = {
@@ -68,14 +68,16 @@ class PivotTable extends BaseTable_1.BaseTable {
68
68
  this.dataset = new dataset_1.Dataset(this.internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, this.internalProps.indicators, null === (_l = options.indicatorsAsCol) || void 0 === _l || _l, options.records, options.rowHierarchyType, this.internalProps.columnTree, this.internalProps.rowTree),
69
69
  options.columnTree || (!1 !== options.indicatorsAsCol && (this.dataset.colHeaderTree = (0,
70
70
  layout_helper_1.supplementIndicatorNodesForCustomTree)(this.dataset.colHeaderTree, options.indicators)),
71
- columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_m = this.dataset.colHeaderTree) && void 0 !== _m ? _m : [], this.layoutNodeId)),
71
+ 0 !== (null !== (_o = null === (_m = this.records) || void 0 === _m ? void 0 : _m.length) && void 0 !== _o ? _o : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.colHeaderTree = []),
72
+ columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_p = this.dataset.colHeaderTree) && void 0 !== _p ? _p : [], this.layoutNodeId)),
72
73
  options.rowTree || (!1 === options.indicatorsAsCol && (this.dataset.rowHeaderTree = (0,
73
74
  layout_helper_1.supplementIndicatorNodesForCustomTree)(this.dataset.rowHeaderTree, options.indicators)),
74
- rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_o = this.dataset.rowHeaderTree) && void 0 !== _o ? _o : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_p = this.options.rowExpandLevel) && void 0 !== _p ? _p : 1 : void 0)),
75
+ 0 !== (null !== (_r = null === (_q = this.records) || void 0 === _q ? void 0 : _q.length) && void 0 !== _r ? _r : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.rowHeaderTree = []),
76
+ rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_s = this.dataset.rowHeaderTree) && void 0 !== _s ? _s : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_t = this.options.rowExpandLevel) && void 0 !== _t ? _t : 1 : void 0)),
75
77
  this.internalProps.layoutMap = new pivot_header_layout_1.PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree);
76
78
  }
77
- this.pivotSortState = [], options.pivotSortState && this.updatePivotSortState(options.pivotSortState),
78
- "node" !== env_1.Env.mode && (this.editorManager = new edit_manager_1.EditManeger(this)),
79
+ this._changePivotSortStateBySortRules(), (null !== (_v = null === (_u = options.pivotSortState) || void 0 === _u ? void 0 : _u.length) && void 0 !== _v ? _v : 0) > 0 && (this.pivotSortState = [],
80
+ this.pivotSortState = options.pivotSortState), "node" !== env_1.Env.mode && (this.editorManager = new edit_manager_1.EditManeger(this)),
79
81
  this.refreshHeader(), this.stateManager.initCheckedState(records), this.scenegraph.createSceneGraph(),
80
82
  options.title && (this.internalProps.title = new title_1.Title(options.title, this),
81
83
  this.scenegraph.resize()), this.options.emptyTip && (this.internalProps.emptyTip || (this.internalProps.emptyTip = new empty_tip_1.EmptyTip(this.options.emptyTip, this)),
@@ -112,7 +114,7 @@ class PivotTable extends BaseTable_1.BaseTable {
112
114
  return ifCan;
113
115
  }
114
116
  updateOption(options) {
115
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
117
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
116
118
  const internalProps = this.internalProps;
117
119
  if (super.updateOption(options), this.layoutNodeId = {
118
120
  seqId: 0
@@ -153,14 +155,16 @@ class PivotTable extends BaseTable_1.BaseTable {
153
155
  this.dataset = new dataset_1.Dataset(internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, this.internalProps.indicators, null === (_o = options.indicatorsAsCol) || void 0 === _o || _o, records, options.rowHierarchyType, this.internalProps.columnTree, this.internalProps.rowTree),
154
156
  options.columnTree || (!1 !== options.indicatorsAsCol && (this.dataset.colHeaderTree = (0,
155
157
  layout_helper_1.supplementIndicatorNodesForCustomTree)(this.dataset.colHeaderTree, options.indicators)),
156
- columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_p = this.dataset.colHeaderTree) && void 0 !== _p ? _p : [], this.layoutNodeId)),
158
+ 0 !== (null !== (_q = null === (_p = this.records) || void 0 === _p ? void 0 : _p.length) && void 0 !== _q ? _q : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.colHeaderTree = []),
159
+ columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_r = this.dataset.colHeaderTree) && void 0 !== _r ? _r : [], this.layoutNodeId)),
157
160
  options.rowTree || (!1 === options.indicatorsAsCol && (this.dataset.rowHeaderTree = (0,
158
161
  layout_helper_1.supplementIndicatorNodesForCustomTree)(this.dataset.rowHeaderTree, options.indicators)),
159
- rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_q = this.dataset.rowHeaderTree) && void 0 !== _q ? _q : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_r = this.options.rowExpandLevel) && void 0 !== _r ? _r : 1 : void 0)),
162
+ 0 !== (null !== (_t = null === (_s = this.records) || void 0 === _s ? void 0 : _s.length) && void 0 !== _t ? _t : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.rowHeaderTree = []),
163
+ rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_u = this.dataset.rowHeaderTree) && void 0 !== _u ? _u : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_v = this.options.rowExpandLevel) && void 0 !== _v ? _v : 1 : void 0)),
160
164
  internalProps.layoutMap = new pivot_header_layout_1.PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree);
161
165
  }
162
- return this.pivotSortState = [], options.pivotSortState && this.updatePivotSortState(options.pivotSortState),
163
- this.refreshHeader(), internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
166
+ return this._changePivotSortStateBySortRules(), (null !== (_x = null === (_w = options.pivotSortState) || void 0 === _w ? void 0 : _w.length) && void 0 !== _x ? _x : 0) > 0 && (this.pivotSortState = [],
167
+ this.pivotSortState = options.pivotSortState), this.refreshHeader(), internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
164
168
  var _a;
165
169
  return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
166
170
  })), internalProps.releaseList = null), this.scenegraph.clearCells(), this.scenegraph.createSceneGraph(),
@@ -463,26 +467,94 @@ class PivotTable extends BaseTable_1.BaseTable {
463
467
  }
464
468
  }
465
469
  updateSortRules(sortRules) {
466
- this.internalProps.dataConfig.sortRules = sortRules, this.dataset.updateSortRules(sortRules),
470
+ this.internalProps.dataConfig ? this.internalProps.dataConfig.sortRules = sortRules : this.internalProps.dataConfig = {
471
+ sortRules: sortRules
472
+ }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules(),
467
473
  this.internalProps.layoutMap.resetHeaderTree(), this.scenegraph.clearCells(), this.refreshHeader(),
468
474
  this.scenegraph.createSceneGraph(), this.render();
469
475
  }
476
+ _changePivotSortStateBySortRules() {
477
+ var _a, _b, _c, _d;
478
+ this.pivotSortState = [];
479
+ const sortRules = null !== (_b = null === (_a = this.internalProps.dataConfig) || void 0 === _a ? void 0 : _a.sortRules) && void 0 !== _b ? _b : [];
480
+ for (let i = 0; i < sortRules.length; i++) {
481
+ const sortRule = sortRules[i];
482
+ if (sortRule.sortType) {
483
+ const dimensions = [];
484
+ if (sortRule.sortByIndicator) {
485
+ if (sortRule.sortField === (this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1])) {
486
+ for (let j = 0; j < sortRule.query.length; j++) dimensions.push({
487
+ dimensionKey: this.dataset.indicatorsAsCol ? this.dataset.columns[j] : this.dataset.rows[j],
488
+ value: sortRule.query[j]
489
+ });
490
+ dimensions.push({
491
+ indicatorKey: sortRule.sortByIndicator,
492
+ value: null !== (_d = null === (_c = this.internalProps.layoutMap.getIndicatorInfo(sortRule.sortByIndicator)) || void 0 === _c ? void 0 : _c.title) && void 0 !== _d ? _d : sortRule.sortByIndicator
493
+ });
494
+ }
495
+ } else dimensions.push({
496
+ dimensionKey: sortRule.sortField,
497
+ isPivotCorner: !0,
498
+ value: sortRule.sortField
499
+ });
500
+ this.pivotSortState.push({
501
+ dimensions: dimensions,
502
+ order: sortRule.sortType
503
+ });
504
+ }
505
+ }
506
+ }
470
507
  updatePivotSortState(pivotSortStateConfig) {
471
- for (let i = 0; i < pivotSortStateConfig.length; i++) {
472
- const {dimensions: dimensions, order: order} = pivotSortStateConfig[i], cellAddress = this.internalProps.layoutMap.getPivotCellAdress(dimensions);
473
- cellAddress && this.pivotSortState.push({
474
- col: cellAddress.col,
475
- row: cellAddress.row,
476
- order: order
477
- });
508
+ this.pivotSortState = pivotSortStateConfig;
509
+ }
510
+ sort(col, row, order) {
511
+ let dimensions;
512
+ if (this.isCornerHeader(col, row)) {
513
+ const dimensionInfo = this.getHeaderDefine(col, row);
514
+ dimensions = [];
515
+ const dimension = {
516
+ isPivotCorner: !0,
517
+ dimensionKey: dimensionInfo.value,
518
+ value: dimensionInfo.value
519
+ };
520
+ dimensions.push(dimension);
521
+ } else dimensions = this.isColumnHeader(col, row) ? this.getCellHeaderPaths(col, row).colHeaderPaths : this.getCellHeaderPaths(col, row).rowHeaderPaths;
522
+ const sortIndicator = dimensions[dimensions.length - 1].indicatorKey, headerDefine = this.getHeaderDefine(col, row);
523
+ if (headerDefine.sort) {
524
+ if (this.dataset.sortRules) {
525
+ for (let i = this.dataset.sortRules.length - 1; i >= 0; i--) {
526
+ const sortRule = this.dataset.sortRules[i];
527
+ (headerDefine.dimensionKey && sortRule.sortField === headerDefine.dimensionKey || sortIndicator && sortRule.sortField === (this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1])) && this.dataset.sortRules.splice(i, 1);
528
+ }
529
+ sortIndicator ? this.dataset.sortRules.push({
530
+ sortField: this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1],
531
+ sortType: ts_types_1.SortType[order],
532
+ sortByIndicator: sortIndicator,
533
+ query: dimensions.reduce(((arr, dimension) => (dimension.dimensionKey && arr.push(dimension.value),
534
+ arr)), [])
535
+ }) : this.dataset.sortRules.push({
536
+ sortField: headerDefine.dimensionKey,
537
+ sortType: ts_types_1.SortType[order]
538
+ });
539
+ } else this.dataset.sortRules = sortIndicator ? [ {
540
+ sortField: this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1],
541
+ sortType: ts_types_1.SortType[order],
542
+ sortByIndicator: sortIndicator,
543
+ query: dimensions.reduce(((arr, dimension) => (dimension.dimensionKey && arr.push(dimension.value),
544
+ arr)), [])
545
+ } ] : [ {
546
+ sortField: headerDefine.dimensionKey,
547
+ sortType: ts_types_1.SortType[order]
548
+ } ];
549
+ this.updateSortRules(this.dataset.sortRules);
478
550
  }
479
551
  }
480
552
  getPivotSortState(col, row) {
481
553
  if (!this.pivotSortState) return;
482
554
  const cellRange = this.getCellRange(col, row);
483
555
  for (let i = 0; i < this.pivotSortState.length; i++) {
484
- const {col: sortCol, row: sortRow, order: order} = this.pivotSortState[i];
485
- if ((0, helper_1.cellInRange)(cellRange, sortCol, sortRow)) return order;
556
+ const pivotState = this.pivotSortState[i], dimensions = pivotState.dimensions, cell = this.getCellAddressByHeaderPaths(dimensions), order = pivotState.order;
557
+ if (cell && (0, helper_1.cellInRange)(cellRange, cell.col, cell.row)) return order;
486
558
  }
487
559
  }
488
560
  _moveHeaderPosition(source, target) {
@@ -581,7 +653,7 @@ class PivotTable extends BaseTable_1.BaseTable {
581
653
  };
582
654
  }
583
655
  setRecords(records) {
584
- var _a, _b, _c, _d, _e;
656
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
585
657
  const oldHoverState = {
586
658
  col: this.stateManager.hover.cellPos.col,
587
659
  row: this.stateManager.hover.cellPos.row
@@ -597,10 +669,12 @@ class PivotTable extends BaseTable_1.BaseTable {
597
669
  indicatorDimensionKey: internalProps.layoutMap.indicatorDimensionKey
598
670
  }, records)); else {
599
671
  let columnDimensionTree, rowDimensionTree;
600
- this.dataset.setRecords(records), columnDimensionTree = options.columnTree ? internalProps.layoutMap.columnDimensionTree : new tree_helper_1.DimensionTree(null !== (_c = this.dataset.colHeaderTree) && void 0 !== _c ? _c : [], this.layoutNodeId),
601
- rowDimensionTree = options.rowTree ? internalProps.layoutMap.rowDimensionTree : new tree_helper_1.DimensionTree(null !== (_d = this.dataset.rowHeaderTree) && void 0 !== _d ? _d : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_e = this.options.rowExpandLevel) && void 0 !== _e ? _e : 1 : void 0),
672
+ this.dataset.setRecords(records), options.columnTree ? columnDimensionTree = internalProps.layoutMap.columnDimensionTree : (0 !== (null !== (_d = null === (_c = this.records) || void 0 === _c ? void 0 : _c.length) && void 0 !== _d ? _d : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.colHeaderTree = []),
673
+ columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_e = this.dataset.colHeaderTree) && void 0 !== _e ? _e : [], this.layoutNodeId)),
674
+ options.rowTree ? rowDimensionTree = internalProps.layoutMap.rowDimensionTree : (0 !== (null !== (_g = null === (_f = this.records) || void 0 === _f ? void 0 : _f.length) && void 0 !== _g ? _g : 0) || this.dataset.customColTree || this.dataset.customRowTree || (this.dataset.rowHeaderTree = []),
675
+ rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_h = this.dataset.rowHeaderTree) && void 0 !== _h ? _h : [], this.layoutNodeId, this.options.rowHierarchyType, "tree" === this.options.rowHierarchyType ? null !== (_j = this.options.rowExpandLevel) && void 0 !== _j ? _j : 1 : void 0)),
602
676
  internalProps.layoutMap = new pivot_header_layout_1.PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree),
603
- this.pivotSortState = [], options.pivotSortState && this.updatePivotSortState(options.pivotSortState);
677
+ this.pivotSortState = [], options.pivotSortState && (this.pivotSortState = options.pivotSortState);
604
678
  }
605
679
  this.refreshHeader(), this.scenegraph.clearCells(), this.clearCellStyleCache(),
606
680
  this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),