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
package/es/state/state.js CHANGED
@@ -55,7 +55,8 @@ export class StateManager {
55
55
  this.resetInteractionState = debounce((state => {
56
56
  this.updateInteractionState(null != state ? state : InteractionState.default);
57
57
  }), 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this),
58
- this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this);
58
+ this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this), this.updateFrozenHorizontalScrollBar = this.updateFrozenHorizontalScrollBar.bind(this),
59
+ this.updateRightFrozenHorizontalScrollBar = this.updateRightFrozenHorizontalScrollBar.bind(this);
59
60
  }
60
61
  initState() {
61
62
  this._initState(), this.setHoverState(), this.setSelectState(), this.setFrozenState();
@@ -63,8 +64,13 @@ export class StateManager {
63
64
  updateOptionSetState() {
64
65
  this._updateOptionSetState(), this.setHoverState(), this.setSelectState(), this.setFrozenState();
65
66
  }
67
+ endResizeIfResizing() {
68
+ this.columnResize.resizing && (this.table.scenegraph.component.hideResizeCol(),
69
+ this.columnResize.resizing = !1), this.rowResize.resizing && (this.table.scenegraph.component.hideResizeRow(),
70
+ this.rowResize.resizing = !1), this.interactionState === InteractionState.grabing && (this.interactionState = InteractionState.default);
71
+ }
66
72
  _updateOptionSetState() {
67
- this.interactionState = InteractionState.default, this.hoverIcon = {
73
+ this.endResizeIfResizing(), this.interactionState = InteractionState.default, this.hoverIcon = {
68
74
  col: -1,
69
75
  row: -1,
70
76
  icon: null
@@ -172,7 +178,9 @@ export class StateManager {
172
178
  row: -1
173
179
  }, this.scroll = {
174
180
  horizontalBarPos: 0,
175
- verticalBarPos: 0
181
+ verticalBarPos: 0,
182
+ frozenHorizontalBarPos: 0,
183
+ rightFrozenHorizontalBarPos: 0
176
184
  }, this.tablePosition = {
177
185
  absoluteX: 0,
178
186
  absoluteY: 0
@@ -225,13 +233,13 @@ export class StateManager {
225
233
  setSortState(sortState) {
226
234
  const state = this;
227
235
  const sort = (sortState = !sortState || Array.isArray(sortState) ? sortState : [ sortState ]) && sortState.reduce(((prev, item) => {
228
- var _a, _b, _c;
236
+ var _a, _b, _c, _d, _e;
229
237
  const column = null === (_a = function(columns) {
230
238
  const result = [];
231
239
  return function flatten(cols, parentStartIndex = 0) {
232
240
  cols.forEach((col => {
233
241
  var _a;
234
- const startIndex = col.startInTotal ? null !== (_a = col.startInTotal + state.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0 : parentStartIndex;
242
+ const startIndex = col.startInTotal ? col.startInTotal + (null !== (_a = state.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0) : parentStartIndex;
235
243
  col.columns ? flatten(col.columns, startIndex) : result.push(Object.assign(Object.assign({}, col), {
236
244
  startIndex: startIndex
237
245
  }));
@@ -241,12 +249,12 @@ export class StateManager {
241
249
  return this.table.internalProps.transpose ? prev.push({
242
250
  field: item.field,
243
251
  order: item.order,
244
- row: null !== (_b = (null == column ? void 0 : column.startInTotal) + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _b ? _b : 0,
252
+ 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),
245
253
  col: null == column ? void 0 : column.level
246
254
  }) : prev.push({
247
255
  field: item.field,
248
256
  order: item.order,
249
- col: null !== (_c = (null == column ? void 0 : column.startInTotal) + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _c ? _c : 0,
257
+ 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),
250
258
  row: null == column ? void 0 : column.level
251
259
  }), prev;
252
260
  }), []);
@@ -417,14 +425,46 @@ export class StateManager {
417
425
  }), 0);
418
426
  })), void this._frozenObserver.observe(container);
419
427
  }
420
- if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0),
428
+ if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) if (this.table.options.scrollFrozenCols) this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount),
429
+ this.setFrozenCol(originalFrozenColCount)); else if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0),
421
430
  this.setFrozenCol(-1); else {
422
431
  const computedFrozenColCount = this.table._getComputedFrozenColCount(originalFrozenColCount);
423
432
  this.table._setFrozenColCount(computedFrozenColCount), this.setFrozenCol(computedFrozenColCount);
424
433
  } else this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount),
425
434
  this.setFrozenCol(originalFrozenColCount));
435
+ this.table.options.scrollFrozenCols && 0 !== this.table.getFrozenColsOffset() ? this.setFrozenColsScrollLeft(this.scroll.frozenHorizontalBarPos, !1) : this.setFrozenColsScrollLeft(0, !1),
436
+ this.table.options.scrollRightFrozenCols && 0 !== this.table.getRightFrozenColsOffset() ? this.setRightFrozenColsScrollLeft(this.scroll.rightFrozenHorizontalBarPos, !1) : this.setRightFrozenColsScrollLeft(0, !1);
426
437
  } else this.clearFrozenObserver();
427
438
  }
439
+ setFrozenColsScrollLeft(left, triggerRender = !0) {
440
+ if (!this.table || !this.table.scenegraph) return;
441
+ const maxScrollLeft = this.table.getFrozenColsOffset();
442
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.frozenHorizontalBarPos === left) return;
443
+ this.scroll.frozenHorizontalBarPos = left;
444
+ const ratio = maxScrollLeft ? left / maxScrollLeft : 0;
445
+ this.table.scenegraph.component.updateFrozenHorizontalScrollBarPos(ratio), triggerRender && this.table.scenegraph.setFrozenColsScrollLeft(left);
446
+ }
447
+ setRightFrozenColsScrollLeft(left, triggerRender = !0) {
448
+ if (!this.table || !this.table.scenegraph) return;
449
+ const maxScrollLeft = this.table.getRightFrozenColsOffset();
450
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.rightFrozenHorizontalBarPos === left) return;
451
+ this.scroll.rightFrozenHorizontalBarPos = left;
452
+ const ratio = maxScrollLeft ? 1 - left / maxScrollLeft : 1;
453
+ this.table.scenegraph.component.updateRightFrozenHorizontalScrollBarPos(ratio),
454
+ triggerRender && this.table.scenegraph.setRightFrozenColsScrollLeft(left);
455
+ }
456
+ updateFrozenHorizontalScrollBar(xRatio) {
457
+ var _a, _b, _c;
458
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
459
+ let left = Math.ceil(xRatio * maxScrollLeft);
460
+ isValid(left) && !isNaN(left) || (left = 0), this.setFrozenColsScrollLeft(left, !0);
461
+ }
462
+ updateRightFrozenHorizontalScrollBar(xRatio) {
463
+ var _a, _b, _c;
464
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
465
+ let left = Math.ceil((1 - xRatio) * maxScrollLeft);
466
+ isValid(left) && !isNaN(left) || (left = 0), this.setRightFrozenColsScrollLeft(left, !0);
467
+ }
428
468
  clearFrozenObserver() {
429
469
  this._frozenObserver && (this._frozenObserver.disconnect(), this._frozenObserver = null);
430
470
  }
@@ -497,24 +537,24 @@ export class StateManager {
497
537
  }), oldVerticalBarPos !== this.scroll.verticalBarPos && this.checkVerticalScrollBarEnd();
498
538
  }
499
539
  updateHorizontalScrollBar(xRatio) {
500
- var _a, _b, _c, _d;
501
- const totalWidth = this.table.getAllColsWidth(), oldHorizontalBarPos = this.scroll.horizontalBarPos;
502
- let horizontalBarPos = Math.ceil(xRatio * (totalWidth - this.table.scenegraph.width));
540
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
541
+ 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);
542
+ let horizontalBarPos = Math.ceil(xRatio * scrollRange);
503
543
  isValid(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
504
544
  const dx = horizontalBarPos - this.table.scenegraph.proxy.deltaX - oldHorizontalBarPos;
505
545
  if (this.table.fireListeners(TABLE_EVENT_TYPE.CAN_SCROLL, {
506
546
  event: void 0,
507
547
  scrollTop: this.scroll.verticalBarPos,
508
548
  scrollLeft: horizontalBarPos - this.table.scenegraph.proxy.deltaX,
509
- scrollHeight: null === (_a = this.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
510
- scrollWidth: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
549
+ scrollHeight: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
550
+ scrollWidth: null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.width,
511
551
  viewHeight: this.table.tableNoFrameHeight,
512
552
  viewWidth: this.table.tableNoFrameWidth,
513
553
  scrollDirection: "horizontal",
514
554
  scrollRatioX: xRatio,
515
555
  dx: dx
516
556
  }).some((value => !1 === value))) {
517
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
557
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
518
558
  this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
519
559
  } else this.scroll.horizontalBarPos = horizontalBarPos, this.table.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio),
520
560
  this.scroll.horizontalBarPos -= this.table.scenegraph.proxy.deltaX, this.table.scenegraph.proxy.deltaX = 0,
@@ -522,8 +562,8 @@ export class StateManager {
522
562
  event: void 0,
523
563
  scrollTop: this.scroll.verticalBarPos,
524
564
  scrollLeft: this.scroll.horizontalBarPos,
525
- scrollHeight: null === (_c = this.table.theme.scrollStyle) || void 0 === _c ? void 0 : _c.width,
526
- scrollWidth: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
565
+ scrollHeight: null === (_j = this.table.theme.scrollStyle) || void 0 === _j ? void 0 : _j.width,
566
+ scrollWidth: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
527
567
  viewHeight: this.table.tableNoFrameHeight,
528
568
  viewWidth: this.table.tableNoFrameWidth,
529
569
  scrollDirection: "horizontal",
@@ -576,15 +616,13 @@ export class StateManager {
576
616
  }), oldVerticalBarPos !== top && triggerEvent && this.checkVerticalScrollBarEnd();
577
617
  }
578
618
  setScrollLeft(left, event, triggerEvent = !0) {
579
- var _a, _b, _c, _d, _e, _f, _g;
619
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
580
620
  if (!this.table || !this.table.scenegraph) return;
581
621
  this.table.scrollLeft;
582
- const totalWidth = this.table.getAllColsWidth(), sizeTolerance = (this.table.getFrozenColsWidth(),
583
- (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0);
584
- left = Math.max(0, Math.min(left, totalWidth - this.table.scenegraph.width - sizeTolerance)),
585
- left = Math.ceil(left);
586
- const oldHorizontalBarPos = this.scroll.horizontalBarPos, xRatio = left / (totalWidth - this.table.scenegraph.width);
587
- 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) {
622
+ 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;
623
+ left = Math.max(0, Math.min(left, scrollRange - sizeTolerance)), left = Math.ceil(left);
624
+ const oldHorizontalBarPos = this.scroll.horizontalBarPos, xRatio = scrollRange ? left / scrollRange : 0;
625
+ 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) {
588
626
  let horizontalBarPos = left;
589
627
  isValid(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
590
628
  const dx = horizontalBarPos - oldHorizontalBarPos;
@@ -592,15 +630,15 @@ export class StateManager {
592
630
  event: null == event ? void 0 : event.nativeEvent,
593
631
  scrollTop: this.scroll.verticalBarPos,
594
632
  scrollLeft: horizontalBarPos,
595
- scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
596
- scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
633
+ scrollHeight: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
634
+ scrollWidth: null === (_l = this.table.theme.scrollStyle) || void 0 === _l ? void 0 : _l.width,
597
635
  viewHeight: this.table.tableNoFrameHeight,
598
636
  viewWidth: this.table.tableNoFrameWidth,
599
637
  scrollDirection: "horizontal",
600
638
  scrollRatioX: xRatio,
601
639
  dx: dx
602
640
  }).some((value => !1 === value))) {
603
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
641
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
604
642
  return void this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
605
643
  }
606
644
  }
@@ -612,8 +650,8 @@ export class StateManager {
612
650
  event: null == event ? void 0 : event.nativeEvent,
613
651
  scrollTop: this.scroll.verticalBarPos,
614
652
  scrollLeft: this.scroll.horizontalBarPos,
615
- scrollHeight: null === (_f = this.table.theme.scrollStyle) || void 0 === _f ? void 0 : _f.width,
616
- scrollWidth: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
653
+ scrollHeight: null === (_m = this.table.theme.scrollStyle) || void 0 === _m ? void 0 : _m.width,
654
+ scrollWidth: null === (_o = this.table.theme.scrollStyle) || void 0 === _o ? void 0 : _o.width,
617
655
  viewHeight: this.table.tableNoFrameHeight,
618
656
  viewWidth: this.table.tableNoFrameWidth,
619
657
  scrollDirection: "horizontal",
@@ -625,8 +663,8 @@ export class StateManager {
625
663
  this.table.scenegraph.component.hideVerticalScrollBar();
626
664
  }
627
665
  showVerticalScrollBar(autoHide) {
628
- this.table.scenegraph.component.showVerticalScrollBar(), autoHide && (clearTimeout(this._clearVerticalScrollBar),
629
- this._clearVerticalScrollBar = setTimeout((() => {
666
+ this.table.scenegraph.component.showVerticalScrollBar(), clearTimeout(this._clearVerticalScrollBar),
667
+ autoHide && (this._clearVerticalScrollBar = setTimeout((() => {
630
668
  var _a;
631
669
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideVerticalScrollBar();
632
670
  }), 1e3));
@@ -634,10 +672,10 @@ export class StateManager {
634
672
  hideHorizontalScrollBar() {
635
673
  this.table.scenegraph.component.hideHorizontalScrollBar();
636
674
  }
637
- showHorizontalScrollBar(autoHide) {
675
+ showHorizontalScrollBar(autoHide, target = "all") {
638
676
  var _a;
639
- this.table.scenegraph.component.showHorizontalScrollBar(), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(),
640
- autoHide && (clearTimeout(this._clearHorizontalScrollBar), this._clearHorizontalScrollBar = setTimeout((() => {
677
+ this.table.scenegraph.component.showHorizontalScrollBar(target), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(),
678
+ clearTimeout(this._clearHorizontalScrollBar), autoHide && (this._clearHorizontalScrollBar = setTimeout((() => {
641
679
  var _a, _b;
642
680
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideFrozenColumnShadow(),
643
681
  null === (_b = this.table.scenegraph) || void 0 === _b || _b.component.hideHorizontalScrollBar();
@@ -773,12 +811,15 @@ export class StateManager {
773
811
  this.select.selectInline = selectInline;
774
812
  }
775
813
  updateSortState(sortState) {
776
- var _a, _b, _c, _d, _e, _f, _g, _h;
777
- sortState = Array.isArray(sortState) ? sortState : [ sortState ];
814
+ var _a, _b, _c, _d, _e, _f, _g;
815
+ const isSame = (sortState = Array.isArray(sortState) ? sortState : [ sortState ]).length === this.sort.length && sortState.every(((item, index) => {
816
+ var _a, _b;
817
+ 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);
818
+ }));
819
+ if (isSame) return;
778
820
  for (let index = 0; index < sortState.length; index++) {
779
- 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;
780
- 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;
781
- "asc" === (null === (_e = this.sort[index]) || void 0 === _e ? void 0 : _e.order) || (null === (_f = this.sort[index]) || void 0 === _f || _f.order);
821
+ 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;
822
+ "asc" === (null === (_c = this.sort[index]) || void 0 === _c ? void 0 : _c.order) || (null === (_d = this.sort[index]) || void 0 === _d || _d.order);
782
823
  this.setSortState(sortState.slice(0, index + 1));
783
824
  const cellAddress = this.table.internalProps.layoutMap.getHeaderCellAddressByField(sortState[index].field);
784
825
  this.sort[index].col = cellAddress.col, this.sort[index].row = cellAddress.row;
@@ -792,7 +833,7 @@ export class StateManager {
792
833
  order: this.sort[index].order,
793
834
  oldSortCol: oldSortCol,
794
835
  oldSortRow: oldSortRow,
795
- oldIconMark: null === (_g = this.sort[index]) || void 0 === _g ? void 0 : _g.icon
836
+ oldIconMark: null === (_e = this.sort[index]) || void 0 === _e ? void 0 : _e.icon
796
837
  });
797
838
  }
798
839
  const normalHeaders = [];
@@ -806,7 +847,7 @@ export class StateManager {
806
847
  row: null,
807
848
  iconMark: null,
808
849
  order: null,
809
- oldSortCol: null !== (_h = column.startInTotal + this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _h ? _h : 0,
850
+ oldSortCol: (null !== (_f = column.startInTotal) && void 0 !== _f ? _f : 0) + (null !== (_g = this.table.internalProps.layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _g ? _g : 0),
810
851
  oldSortRow: column.level,
811
852
  oldIconMark: null
812
853
  });