k-vtable 1.0.34 → 1.0.35

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 (189) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +184 -25
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +3 -2
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +1 -0
  7. package/cjs/PivotTable.js +95 -15
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/core/BaseTable.d.ts +14 -0
  10. package/cjs/core/BaseTable.js +149 -41
  11. package/cjs/core/BaseTable.js.map +1 -1
  12. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  13. package/cjs/core/TABLE_EVENT_TYPE.js +2 -0
  14. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  15. package/cjs/core/record-helper.js +83 -13
  16. package/cjs/core/record-helper.js.map +1 -1
  17. package/cjs/core/tableHelper.js +5 -3
  18. package/cjs/core/tableHelper.js.map +1 -1
  19. package/cjs/core/utils/get-cell-position.js +23 -12
  20. package/cjs/core/utils/get-cell-position.js.map +1 -1
  21. package/cjs/data/DataSource.js +3 -2
  22. package/cjs/data/DataSource.js.map +1 -1
  23. package/cjs/dataset/dataset.js +5 -1
  24. package/cjs/dataset/dataset.js.map +1 -1
  25. package/cjs/edit/edit-manager.js +24 -16
  26. package/cjs/edit/edit-manager.js.map +1 -1
  27. package/cjs/event/EventTarget.js +3 -1
  28. package/cjs/event/EventTarget.js.map +1 -1
  29. package/cjs/event/helper.js +1 -1
  30. package/cjs/event/listener/container-dom.js +11 -6
  31. package/cjs/event/listener/container-dom.js.map +1 -1
  32. package/cjs/event/listener/scroll-bar.js +77 -6
  33. package/cjs/event/listener/scroll-bar.js.map +1 -1
  34. package/cjs/event/listener/table-group.js +53 -23
  35. package/cjs/event/listener/table-group.js.map +1 -1
  36. package/cjs/event/media-click.js +1 -1
  37. package/cjs/event/scroll.js +35 -12
  38. package/cjs/event/scroll.js.map +1 -1
  39. package/cjs/event/sparkline-event.js +1 -1
  40. package/cjs/event/util.d.ts +2 -0
  41. package/cjs/event/util.js +29 -4
  42. package/cjs/event/util.js.map +1 -1
  43. package/cjs/header-helper/header-helper.js +2 -2
  44. package/cjs/header-helper/header-helper.js.map +1 -1
  45. package/cjs/header-helper/style.js +2 -1
  46. package/cjs/index.d.ts +3 -3
  47. package/cjs/index.js +51 -12
  48. package/cjs/index.js.map +1 -1
  49. package/cjs/layout/cell-range/simple-cell-range.js +14 -5
  50. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  51. package/cjs/plugins/index.js +1 -1
  52. package/cjs/plugins/interface.js +1 -1
  53. package/cjs/plugins/invert-highlight.js +1 -1
  54. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  55. package/cjs/plugins/plugin-manager.js +1 -1
  56. package/cjs/scenegraph/component/table-component.d.ts +6 -1
  57. package/cjs/scenegraph/component/table-component.js +143 -17
  58. package/cjs/scenegraph/component/table-component.js.map +1 -1
  59. package/cjs/scenegraph/component/util.js +5 -2
  60. package/cjs/scenegraph/component/util.js.map +1 -1
  61. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
  62. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/cell-helper.js +7 -4
  64. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/init-scenegraph.js +37 -7
  66. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  68. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  69. package/cjs/scenegraph/scenegraph.d.ts +13 -0
  70. package/cjs/scenegraph/scenegraph.js +194 -23
  71. package/cjs/scenegraph/scenegraph.js.map +1 -1
  72. package/cjs/scenegraph/select/create-select-border.js +9 -10
  73. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  74. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  75. package/cjs/scenegraph/select/move-select-border.js.map +1 -1
  76. package/cjs/scenegraph/select/update-custom-select-border.js +9 -9
  77. package/cjs/scenegraph/select/update-custom-select-border.js.map +1 -1
  78. package/cjs/scenegraph/select/update-select-border.js +27 -122
  79. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  80. package/cjs/scenegraph/select/update-select-style.js.map +1 -1
  81. package/cjs/state/select/update-position.js +2 -1
  82. package/cjs/state/select/update-position.js.map +1 -1
  83. package/cjs/state/state.d.ts +8 -1
  84. package/cjs/state/state.js +82 -40
  85. package/cjs/state/state.js.map +1 -1
  86. package/cjs/ts-types/base-table.d.ts +15 -0
  87. package/cjs/ts-types/base-table.js.map +1 -1
  88. package/cjs/ts-types/dataset/aggregation.js +94 -39
  89. package/cjs/ts-types/dataset/aggregation.js.map +1 -1
  90. package/cjs/ts-types/events.d.ts +16 -0
  91. package/cjs/ts-types/events.js.map +1 -1
  92. package/cjs/ts-types/table-engine.js.map +1 -1
  93. package/cjs/vrender.js.map +1 -1
  94. package/dist/vtable.js +2381 -733
  95. package/dist/vtable.min.js +1 -15
  96. package/es/ListTable.d.ts +1 -0
  97. package/es/ListTable.js +178 -25
  98. package/es/ListTable.js.map +1 -1
  99. package/es/PivotChart.js +2 -2
  100. package/es/PivotChart.js.map +1 -1
  101. package/es/PivotTable.d.ts +1 -0
  102. package/es/PivotTable.js +93 -15
  103. package/es/PivotTable.js.map +1 -1
  104. package/es/core/BaseTable.d.ts +14 -0
  105. package/es/core/BaseTable.js +148 -40
  106. package/es/core/BaseTable.js.map +1 -1
  107. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  108. package/es/core/TABLE_EVENT_TYPE.js +2 -0
  109. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  110. package/es/core/record-helper.js +83 -12
  111. package/es/core/record-helper.js.map +1 -1
  112. package/es/core/tableHelper.js +5 -3
  113. package/es/core/tableHelper.js.map +1 -1
  114. package/es/core/utils/get-cell-position.js +23 -12
  115. package/es/core/utils/get-cell-position.js.map +1 -1
  116. package/es/data/DataSource.js +3 -2
  117. package/es/data/DataSource.js.map +1 -1
  118. package/es/dataset/dataset.js +5 -1
  119. package/es/dataset/dataset.js.map +1 -1
  120. package/es/edit/edit-manager.js +22 -16
  121. package/es/edit/edit-manager.js.map +1 -1
  122. package/es/event/EventTarget.js +3 -1
  123. package/es/event/EventTarget.js.map +1 -1
  124. package/es/event/helper.js +1 -1
  125. package/es/event/listener/container-dom.js +10 -5
  126. package/es/event/listener/container-dom.js.map +1 -1
  127. package/es/event/listener/scroll-bar.js +75 -6
  128. package/es/event/listener/scroll-bar.js.map +1 -1
  129. package/es/event/listener/table-group.js +53 -24
  130. package/es/event/listener/table-group.js.map +1 -1
  131. package/es/event/media-click.js +1 -1
  132. package/es/event/scroll.js +35 -12
  133. package/es/event/scroll.js.map +1 -1
  134. package/es/event/sparkline-event.js +1 -1
  135. package/es/event/util.d.ts +2 -0
  136. package/es/event/util.js +25 -1
  137. package/es/event/util.js.map +1 -1
  138. package/es/header-helper/header-helper.js +2 -2
  139. package/es/header-helper/header-helper.js.map +1 -1
  140. package/es/header-helper/style.js +2 -1
  141. package/es/index.d.ts +3 -3
  142. package/es/index.js +5 -3
  143. package/es/index.js.map +1 -1
  144. package/es/layout/cell-range/simple-cell-range.js +14 -5
  145. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  146. package/es/plugins/index.js +1 -1
  147. package/es/plugins/interface.js +1 -1
  148. package/es/plugins/invert-highlight.js +1 -1
  149. package/es/plugins/list-tree-stick-cell.js +1 -1
  150. package/es/plugins/plugin-manager.js +1 -1
  151. package/es/scenegraph/component/table-component.d.ts +6 -1
  152. package/es/scenegraph/component/table-component.js +141 -17
  153. package/es/scenegraph/component/table-component.js.map +1 -1
  154. package/es/scenegraph/component/util.js +5 -2
  155. package/es/scenegraph/component/util.js.map +1 -1
  156. package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
  157. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  158. package/es/scenegraph/group-creater/cell-helper.js +7 -4
  159. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  160. package/es/scenegraph/group-creater/init-scenegraph.js +37 -7
  161. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  162. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  163. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  164. package/es/scenegraph/scenegraph.d.ts +13 -0
  165. package/es/scenegraph/scenegraph.js +185 -18
  166. package/es/scenegraph/scenegraph.js.map +1 -1
  167. package/es/scenegraph/select/create-select-border.js +9 -10
  168. package/es/scenegraph/select/create-select-border.js.map +1 -1
  169. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  170. package/es/scenegraph/select/move-select-border.js.map +1 -1
  171. package/es/scenegraph/select/update-custom-select-border.js +9 -9
  172. package/es/scenegraph/select/update-custom-select-border.js.map +1 -1
  173. package/es/scenegraph/select/update-select-border.js +25 -118
  174. package/es/scenegraph/select/update-select-border.js.map +1 -1
  175. package/es/scenegraph/select/update-select-style.js.map +1 -1
  176. package/es/state/select/update-position.js +3 -0
  177. package/es/state/select/update-position.js.map +1 -1
  178. package/es/state/state.d.ts +8 -1
  179. package/es/state/state.js +81 -40
  180. package/es/state/state.js.map +1 -1
  181. package/es/ts-types/base-table.d.ts +15 -0
  182. package/es/ts-types/base-table.js.map +1 -1
  183. package/es/ts-types/dataset/aggregation.js +68 -38
  184. package/es/ts-types/dataset/aggregation.js.map +1 -1
  185. package/es/ts-types/events.d.ts +16 -0
  186. package/es/ts-types/events.js.map +1 -1
  187. package/es/ts-types/table-engine.js.map +1 -1
  188. package/es/vrender.js.map +1 -1
  189. package/package.json +12 -11
@@ -13,7 +13,8 @@ class StateManager {
13
13
  this.resetInteractionState = (0, debounce_1.debounce)((state => {
14
14
  this.updateInteractionState(null != state ? state : ts_types_1.InteractionState.default);
15
15
  }), 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this),
16
- this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this);
16
+ this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this), this.updateFrozenHorizontalScrollBar = this.updateFrozenHorizontalScrollBar.bind(this),
17
+ this.updateRightFrozenHorizontalScrollBar = this.updateRightFrozenHorizontalScrollBar.bind(this);
17
18
  }
18
19
  initState() {
19
20
  this._initState(), this.setHoverState(), this.setSelectState(), this.setFrozenState();
@@ -21,8 +22,14 @@ class StateManager {
21
22
  updateOptionSetState() {
22
23
  this._updateOptionSetState(), this.setHoverState(), this.setSelectState(), this.setFrozenState();
23
24
  }
25
+ endResizeIfResizing() {
26
+ this.columnResize.resizing && (this.table.scenegraph.component.hideResizeCol(),
27
+ this.columnResize.resizing = !1), this.rowResize.resizing && (this.table.scenegraph.component.hideResizeRow(),
28
+ this.rowResize.resizing = !1), this.interactionState === ts_types_1.InteractionState.grabing && (this.interactionState = ts_types_1.InteractionState.default);
29
+ }
24
30
  _updateOptionSetState() {
25
- this.interactionState = ts_types_1.InteractionState.default, this.hoverIcon = {
31
+ this.endResizeIfResizing(), this.interactionState = ts_types_1.InteractionState.default,
32
+ this.hoverIcon = {
26
33
  col: -1,
27
34
  row: -1,
28
35
  icon: null
@@ -131,7 +138,9 @@ class StateManager {
131
138
  row: -1
132
139
  }, this.scroll = {
133
140
  horizontalBarPos: 0,
134
- verticalBarPos: 0
141
+ verticalBarPos: 0,
142
+ frozenHorizontalBarPos: 0,
143
+ rightFrozenHorizontalBarPos: 0
135
144
  }, this.tablePosition = {
136
145
  absoluteX: 0,
137
146
  absoluteY: 0
@@ -184,13 +193,13 @@ class StateManager {
184
193
  setSortState(sortState) {
185
194
  const state = this;
186
195
  const sort = (sortState = !sortState || Array.isArray(sortState) ? sortState : [ sortState ]) && sortState.reduce(((prev, item) => {
187
- var _a, _b, _c;
196
+ var _a, _b, _c, _d, _e;
188
197
  const column = null === (_a = function(columns) {
189
198
  const result = [];
190
199
  return function flatten(cols, parentStartIndex = 0) {
191
200
  cols.forEach((col => {
192
201
  var _a;
193
- const startIndex = col.startInTotal ? null !== (_a = col.startInTotal + state.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0 : parentStartIndex;
202
+ const startIndex = col.startInTotal ? col.startInTotal + (null !== (_a = state.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0) : parentStartIndex;
194
203
  col.columns ? flatten(col.columns, startIndex) : result.push(Object.assign(Object.assign({}, col), {
195
204
  startIndex: startIndex
196
205
  }));
@@ -200,12 +209,12 @@ class StateManager {
200
209
  return this.table.internalProps.transpose ? prev.push({
201
210
  field: item.field,
202
211
  order: item.order,
203
- row: null !== (_b = (null == column ? void 0 : column.startInTotal) + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _b ? _b : 0,
212
+ row: (null !== (_b = null == column ? void 0 : column.startInTotal) && void 0 !== _b ? _b : 0) + (null !== (_c = this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _c ? _c : 0),
204
213
  col: null == column ? void 0 : column.level
205
214
  }) : prev.push({
206
215
  field: item.field,
207
216
  order: item.order,
208
- col: null !== (_c = (null == column ? void 0 : column.startInTotal) + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _c ? _c : 0,
217
+ col: (null !== (_d = null == column ? void 0 : column.startInTotal) && void 0 !== _d ? _d : 0) + (null !== (_e = this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _e ? _e : 0),
209
218
  row: null == column ? void 0 : column.level
210
219
  }), prev;
211
220
  }), []);
@@ -377,14 +386,46 @@ class StateManager {
377
386
  }), 0);
378
387
  })), void this._frozenObserver.observe(container);
379
388
  }
380
- if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0),
389
+ if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) if (this.table.options.scrollFrozenCols) this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount),
390
+ this.setFrozenCol(originalFrozenColCount)); else if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0),
381
391
  this.setFrozenCol(-1); else {
382
392
  const computedFrozenColCount = this.table._getComputedFrozenColCount(originalFrozenColCount);
383
393
  this.table._setFrozenColCount(computedFrozenColCount), this.setFrozenCol(computedFrozenColCount);
384
394
  } else this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount),
385
395
  this.setFrozenCol(originalFrozenColCount));
396
+ this.table.options.scrollFrozenCols && 0 !== this.table.getFrozenColsOffset() ? this.setFrozenColsScrollLeft(this.scroll.frozenHorizontalBarPos, !1) : this.setFrozenColsScrollLeft(0, !1),
397
+ this.table.options.scrollRightFrozenCols && 0 !== this.table.getRightFrozenColsOffset() ? this.setRightFrozenColsScrollLeft(this.scroll.rightFrozenHorizontalBarPos, !1) : this.setRightFrozenColsScrollLeft(0, !1);
386
398
  } else this.clearFrozenObserver();
387
399
  }
400
+ setFrozenColsScrollLeft(left, triggerRender = !0) {
401
+ if (!this.table || !this.table.scenegraph) return;
402
+ const maxScrollLeft = this.table.getFrozenColsOffset();
403
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.frozenHorizontalBarPos === left) return;
404
+ this.scroll.frozenHorizontalBarPos = left;
405
+ const ratio = maxScrollLeft ? left / maxScrollLeft : 0;
406
+ this.table.scenegraph.component.updateFrozenHorizontalScrollBarPos(ratio), triggerRender && this.table.scenegraph.setFrozenColsScrollLeft(left);
407
+ }
408
+ setRightFrozenColsScrollLeft(left, triggerRender = !0) {
409
+ if (!this.table || !this.table.scenegraph) return;
410
+ const maxScrollLeft = this.table.getRightFrozenColsOffset();
411
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.rightFrozenHorizontalBarPos === left) return;
412
+ this.scroll.rightFrozenHorizontalBarPos = left;
413
+ const ratio = maxScrollLeft ? 1 - left / maxScrollLeft : 1;
414
+ this.table.scenegraph.component.updateRightFrozenHorizontalScrollBarPos(ratio),
415
+ triggerRender && this.table.scenegraph.setRightFrozenColsScrollLeft(left);
416
+ }
417
+ updateFrozenHorizontalScrollBar(xRatio) {
418
+ var _a, _b, _c;
419
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
420
+ let left = Math.ceil(xRatio * maxScrollLeft);
421
+ (0, vutils_1.isValid)(left) && !isNaN(left) || (left = 0), this.setFrozenColsScrollLeft(left, !0);
422
+ }
423
+ updateRightFrozenHorizontalScrollBar(xRatio) {
424
+ var _a, _b, _c;
425
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
426
+ let left = Math.ceil((1 - xRatio) * maxScrollLeft);
427
+ (0, vutils_1.isValid)(left) && !isNaN(left) || (left = 0), this.setRightFrozenColsScrollLeft(left, !0);
428
+ }
388
429
  clearFrozenObserver() {
389
430
  this._frozenObserver && (this._frozenObserver.disconnect(), this._frozenObserver = null);
390
431
  }
@@ -457,24 +498,24 @@ class StateManager {
457
498
  }), oldVerticalBarPos !== this.scroll.verticalBarPos && this.checkVerticalScrollBarEnd();
458
499
  }
459
500
  updateHorizontalScrollBar(xRatio) {
460
- var _a, _b, _c, _d;
461
- const totalWidth = this.table.getAllColsWidth(), oldHorizontalBarPos = this.scroll.horizontalBarPos;
462
- let horizontalBarPos = Math.ceil(xRatio * (totalWidth - this.table.scenegraph.width));
501
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
502
+ const totalWidth = this.table.getAllColsWidth(), oldHorizontalBarPos = this.scroll.horizontalBarPos, frozenOffset = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0, rightFrozenOffset = null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0, scrollRange = Math.max(0, totalWidth - this.table.scenegraph.width - frozenOffset - rightFrozenOffset);
503
+ let horizontalBarPos = Math.ceil(xRatio * scrollRange);
463
504
  (0, vutils_1.isValid)(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
464
505
  const dx = horizontalBarPos - this.table.scenegraph.proxy.deltaX - oldHorizontalBarPos;
465
506
  if (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CAN_SCROLL, {
466
507
  event: void 0,
467
508
  scrollTop: this.scroll.verticalBarPos,
468
509
  scrollLeft: horizontalBarPos - this.table.scenegraph.proxy.deltaX,
469
- scrollHeight: null === (_a = this.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
470
- scrollWidth: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
510
+ scrollHeight: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
511
+ scrollWidth: null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.width,
471
512
  viewHeight: this.table.tableNoFrameHeight,
472
513
  viewWidth: this.table.tableNoFrameWidth,
473
514
  scrollDirection: "horizontal",
474
515
  scrollRatioX: xRatio,
475
516
  dx: dx
476
517
  }).some((value => !1 === value))) {
477
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
518
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
478
519
  this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
479
520
  } else this.scroll.horizontalBarPos = horizontalBarPos, this.table.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio),
480
521
  this.scroll.horizontalBarPos -= this.table.scenegraph.proxy.deltaX, this.table.scenegraph.proxy.deltaX = 0,
@@ -482,8 +523,8 @@ class StateManager {
482
523
  event: void 0,
483
524
  scrollTop: this.scroll.verticalBarPos,
484
525
  scrollLeft: this.scroll.horizontalBarPos,
485
- scrollHeight: null === (_c = this.table.theme.scrollStyle) || void 0 === _c ? void 0 : _c.width,
486
- scrollWidth: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
526
+ scrollHeight: null === (_j = this.table.theme.scrollStyle) || void 0 === _j ? void 0 : _j.width,
527
+ scrollWidth: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
487
528
  viewHeight: this.table.tableNoFrameHeight,
488
529
  viewWidth: this.table.tableNoFrameWidth,
489
530
  scrollDirection: "horizontal",
@@ -536,15 +577,13 @@ class StateManager {
536
577
  }), oldVerticalBarPos !== top && triggerEvent && this.checkVerticalScrollBarEnd();
537
578
  }
538
579
  setScrollLeft(left, event, triggerEvent = !0) {
539
- var _a, _b, _c, _d, _e, _f, _g;
580
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
540
581
  if (!this.table || !this.table.scenegraph) return;
541
582
  this.table.scrollLeft;
542
- const totalWidth = this.table.getAllColsWidth(), sizeTolerance = (this.table.getFrozenColsWidth(),
543
- (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0);
544
- left = Math.max(0, Math.min(left, totalWidth - this.table.scenegraph.width - sizeTolerance)),
545
- left = Math.ceil(left);
546
- const oldHorizontalBarPos = this.scroll.horizontalBarPos, xRatio = left / (totalWidth - this.table.scenegraph.width);
547
- if ((oldHorizontalBarPos !== left || !0 === (null === (_c = null === (_b = this.table.options) || void 0 === _b ? void 0 : _b.customConfig) || void 0 === _c ? void 0 : _c.scrollEventAlwaysTrigger)) && triggerEvent) {
583
+ const totalWidth = this.table.getAllColsWidth(), frozenOffset = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0, rightFrozenOffset = null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0, scrollRange = Math.max(0, totalWidth - this.table.scenegraph.width - frozenOffset - rightFrozenOffset), sizeTolerance = (null === (_g = this.table.options.customConfig) || void 0 === _g ? void 0 : _g._disableColumnAndRowSizeRound) ? 1 : 0;
584
+ left = Math.max(0, Math.min(left, scrollRange - sizeTolerance)), left = Math.ceil(left);
585
+ const oldHorizontalBarPos = this.scroll.horizontalBarPos, xRatio = scrollRange ? left / scrollRange : 0;
586
+ if ((oldHorizontalBarPos !== left || !0 === (null === (_j = null === (_h = this.table.options) || void 0 === _h ? void 0 : _h.customConfig) || void 0 === _j ? void 0 : _j.scrollEventAlwaysTrigger)) && triggerEvent) {
548
587
  let horizontalBarPos = left;
549
588
  (0, vutils_1.isValid)(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
550
589
  const dx = horizontalBarPos - oldHorizontalBarPos;
@@ -552,15 +591,15 @@ class StateManager {
552
591
  event: null == event ? void 0 : event.nativeEvent,
553
592
  scrollTop: this.scroll.verticalBarPos,
554
593
  scrollLeft: horizontalBarPos,
555
- scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
556
- scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
594
+ scrollHeight: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
595
+ scrollWidth: null === (_l = this.table.theme.scrollStyle) || void 0 === _l ? void 0 : _l.width,
557
596
  viewHeight: this.table.tableNoFrameHeight,
558
597
  viewWidth: this.table.tableNoFrameWidth,
559
598
  scrollDirection: "horizontal",
560
599
  scrollRatioX: xRatio,
561
600
  dx: dx
562
601
  }).some((value => !1 === value))) {
563
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
602
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
564
603
  return void this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
565
604
  }
566
605
  }
@@ -572,8 +611,8 @@ class StateManager {
572
611
  event: null == event ? void 0 : event.nativeEvent,
573
612
  scrollTop: this.scroll.verticalBarPos,
574
613
  scrollLeft: this.scroll.horizontalBarPos,
575
- scrollHeight: null === (_f = this.table.theme.scrollStyle) || void 0 === _f ? void 0 : _f.width,
576
- scrollWidth: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
614
+ scrollHeight: null === (_m = this.table.theme.scrollStyle) || void 0 === _m ? void 0 : _m.width,
615
+ scrollWidth: null === (_o = this.table.theme.scrollStyle) || void 0 === _o ? void 0 : _o.width,
577
616
  viewHeight: this.table.tableNoFrameHeight,
578
617
  viewWidth: this.table.tableNoFrameWidth,
579
618
  scrollDirection: "horizontal",
@@ -585,8 +624,8 @@ class StateManager {
585
624
  this.table.scenegraph.component.hideVerticalScrollBar();
586
625
  }
587
626
  showVerticalScrollBar(autoHide) {
588
- this.table.scenegraph.component.showVerticalScrollBar(), autoHide && (clearTimeout(this._clearVerticalScrollBar),
589
- this._clearVerticalScrollBar = setTimeout((() => {
627
+ this.table.scenegraph.component.showVerticalScrollBar(), clearTimeout(this._clearVerticalScrollBar),
628
+ autoHide && (this._clearVerticalScrollBar = setTimeout((() => {
590
629
  var _a;
591
630
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideVerticalScrollBar();
592
631
  }), 1e3));
@@ -594,10 +633,10 @@ class StateManager {
594
633
  hideHorizontalScrollBar() {
595
634
  this.table.scenegraph.component.hideHorizontalScrollBar();
596
635
  }
597
- showHorizontalScrollBar(autoHide) {
636
+ showHorizontalScrollBar(autoHide, target = "all") {
598
637
  var _a;
599
- this.table.scenegraph.component.showHorizontalScrollBar(), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(),
600
- autoHide && (clearTimeout(this._clearHorizontalScrollBar), this._clearHorizontalScrollBar = setTimeout((() => {
638
+ this.table.scenegraph.component.showHorizontalScrollBar(target), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(),
639
+ clearTimeout(this._clearHorizontalScrollBar), autoHide && (this._clearHorizontalScrollBar = setTimeout((() => {
601
640
  var _a, _b;
602
641
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideFrozenColumnShadow(),
603
642
  null === (_b = this.table.scenegraph) || void 0 === _b || _b.component.hideHorizontalScrollBar();
@@ -733,12 +772,15 @@ class StateManager {
733
772
  this.select.selectInline = selectInline;
734
773
  }
735
774
  updateSortState(sortState) {
736
- var _a, _b, _c, _d, _e, _f, _g, _h;
737
- sortState = Array.isArray(sortState) ? sortState : [ sortState ];
775
+ var _a, _b, _c, _d, _e, _f, _g;
776
+ const isSame = (sortState = Array.isArray(sortState) ? sortState : [ sortState ]).length === this.sort.length && sortState.every(((item, index) => {
777
+ var _a, _b;
778
+ return (null == item ? void 0 : item.field) === (null === (_a = this.sort[index]) || void 0 === _a ? void 0 : _a.field) && (null == item ? void 0 : item.order) === (null === (_b = this.sort[index]) || void 0 === _b ? void 0 : _b.order);
779
+ }));
780
+ if (isSame) return;
738
781
  for (let index = 0; index < sortState.length; index++) {
739
- if (sortState[index].field === (null === (_a = this.sort[index]) || void 0 === _a ? void 0 : _a.field) && sortState[sortState.length - 1].order === (null === (_b = this.sort[index]) || void 0 === _b ? void 0 : _b.order)) return;
740
- const oldSortCol = this.table.internalProps.multipleSort ? null : (null === (_c = this.sort[index]) || void 0 === _c ? void 0 : _c.col) || null, oldSortRow = this.table.internalProps.multipleSort ? null : (null === (_d = this.sort[index]) || void 0 === _d ? void 0 : _d.row) || null;
741
- "asc" === (null === (_e = this.sort[index]) || void 0 === _e ? void 0 : _e.order) || (null === (_f = this.sort[index]) || void 0 === _f || _f.order);
782
+ const oldSortCol = this.table.internalProps.multipleSort ? null : (null === (_a = this.sort[index]) || void 0 === _a ? void 0 : _a.col) || null, oldSortRow = this.table.internalProps.multipleSort ? null : (null === (_b = this.sort[index]) || void 0 === _b ? void 0 : _b.row) || null;
783
+ "asc" === (null === (_c = this.sort[index]) || void 0 === _c ? void 0 : _c.order) || (null === (_d = this.sort[index]) || void 0 === _d || _d.order);
742
784
  this.setSortState(sortState.slice(0, index + 1));
743
785
  const cellAddress = this.table.internalProps.layoutMap.getHeaderCellAddressByField(sortState[index].field);
744
786
  this.sort[index].col = cellAddress.col, this.sort[index].row = cellAddress.row;
@@ -752,7 +794,7 @@ class StateManager {
752
794
  order: this.sort[index].order,
753
795
  oldSortCol: oldSortCol,
754
796
  oldSortRow: oldSortRow,
755
- oldIconMark: null === (_g = this.sort[index]) || void 0 === _g ? void 0 : _g.icon
797
+ oldIconMark: null === (_e = this.sort[index]) || void 0 === _e ? void 0 : _e.icon
756
798
  });
757
799
  }
758
800
  const normalHeaders = [];
@@ -766,7 +808,7 @@ class StateManager {
766
808
  row: null,
767
809
  iconMark: null,
768
810
  order: null,
769
- oldSortCol: null !== (_h = column.startInTotal + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _h ? _h : 0,
811
+ oldSortCol: (null !== (_f = column.startInTotal) && void 0 !== _f ? _f : 0) + (null !== (_g = this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _g ? _g : 0),
770
812
  oldSortRow: column.level,
771
813
  oldIconMark: null
772
814
  });