@visactor/vtable 0.24.2-alpha.4 → 0.25.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 (161) hide show
  1. package/cjs/ListTable.js +5 -3
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +14 -12
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +89 -43
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.d.ts +1 -0
  8. package/cjs/core/BaseTable.js +62 -16
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/core/TABLE_EVENT_TYPE.d.ts +3 -1
  11. package/cjs/core/TABLE_EVENT_TYPE.js +3 -0
  12. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  13. package/cjs/dataset/dataset.d.ts +1 -0
  14. package/cjs/dataset/dataset.js +14 -0
  15. package/cjs/dataset/dataset.js.map +1 -1
  16. package/cjs/dataset/flatDataToObject.d.ts +8 -3
  17. package/cjs/dataset/flatDataToObject.js +39 -8
  18. package/cjs/dataset/flatDataToObject.js.map +1 -1
  19. package/cjs/edit/edit-manager.js +0 -2
  20. package/cjs/edit/edit-manager.js.map +1 -1
  21. package/cjs/event/event.d.ts +2 -0
  22. package/cjs/event/event.js +12 -2
  23. package/cjs/event/event.js.map +1 -1
  24. package/cjs/event/listener/container-dom.js +5 -2
  25. package/cjs/event/listener/container-dom.js.map +1 -1
  26. package/cjs/event/listener/scroll-bar.js +8 -0
  27. package/cjs/event/listener/scroll-bar.js.map +1 -1
  28. package/cjs/event/listener/table-group.js +23 -8
  29. package/cjs/event/listener/table-group.js.map +1 -1
  30. package/cjs/index.d.ts +1 -1
  31. package/cjs/index.js +1 -1
  32. package/cjs/index.js.map +1 -1
  33. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  34. package/cjs/layout/pivot-header-layout.js +16 -4
  35. package/cjs/layout/pivot-header-layout.js.map +1 -1
  36. package/cjs/scenegraph/component/table-component.d.ts +8 -0
  37. package/cjs/scenegraph/component/table-component.js +180 -2
  38. package/cjs/scenegraph/component/table-component.js.map +1 -1
  39. package/cjs/scenegraph/component/util.d.ts +1 -0
  40. package/cjs/scenegraph/component/util.js +8 -2
  41. package/cjs/scenegraph/component/util.js.map +1 -1
  42. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  43. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  44. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -5
  45. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  47. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  48. package/cjs/scenegraph/layout/frozen.js +4 -2
  49. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  50. package/cjs/scenegraph/scenegraph.d.ts +7 -0
  51. package/cjs/scenegraph/scenegraph.js +42 -19
  52. package/cjs/scenegraph/scenegraph.js.map +1 -1
  53. package/cjs/scenegraph/select/update-select-border.js +4 -4
  54. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  55. package/cjs/state/cell-move/index.js +2 -1
  56. package/cjs/state/cell-move/index.js.map +1 -1
  57. package/cjs/state/resize/update-resize-column.js +4 -3
  58. package/cjs/state/resize/update-resize-column.js.map +1 -1
  59. package/cjs/state/resize/update-resize-row.d.ts +2 -0
  60. package/cjs/state/resize/update-resize-row.js +63 -0
  61. package/cjs/state/resize/update-resize-row.js.map +1 -0
  62. package/cjs/state/state.d.ts +11 -1
  63. package/cjs/state/state.js +30 -5
  64. package/cjs/state/state.js.map +1 -1
  65. package/cjs/themes/component.js +1 -1
  66. package/cjs/tools/global.d.ts +1 -0
  67. package/cjs/tools/global.js +2 -2
  68. package/cjs/tools/global.js.map +1 -1
  69. package/cjs/ts-types/base-table.d.ts +7 -0
  70. package/cjs/ts-types/base-table.js.map +1 -1
  71. package/cjs/ts-types/events.d.ts +11 -0
  72. package/cjs/ts-types/events.js.map +1 -1
  73. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  74. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  75. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  76. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  77. package/cjs/ts-types/table-engine.d.ts +5 -0
  78. package/cjs/ts-types/table-engine.js.map +1 -1
  79. package/cjs/vrender.js.map +1 -1
  80. package/dist/vtable.js +914 -107
  81. package/dist/vtable.min.js +2 -2
  82. package/es/ListTable.js +5 -3
  83. package/es/ListTable.js.map +1 -1
  84. package/es/PivotChart.js +14 -12
  85. package/es/PivotChart.js.map +1 -1
  86. package/es/PivotTable.js +89 -43
  87. package/es/PivotTable.js.map +1 -1
  88. package/es/core/BaseTable.d.ts +1 -0
  89. package/es/core/BaseTable.js +62 -17
  90. package/es/core/BaseTable.js.map +1 -1
  91. package/es/core/TABLE_EVENT_TYPE.d.ts +3 -1
  92. package/es/core/TABLE_EVENT_TYPE.js +3 -0
  93. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  94. package/es/dataset/dataset.d.ts +1 -0
  95. package/es/dataset/dataset.js +14 -0
  96. package/es/dataset/dataset.js.map +1 -1
  97. package/es/dataset/flatDataToObject.d.ts +8 -3
  98. package/es/dataset/flatDataToObject.js +38 -8
  99. package/es/dataset/flatDataToObject.js.map +1 -1
  100. package/es/edit/edit-manager.js +0 -2
  101. package/es/edit/edit-manager.js.map +1 -1
  102. package/es/event/event.d.ts +2 -0
  103. package/es/event/event.js +12 -2
  104. package/es/event/event.js.map +1 -1
  105. package/es/event/listener/container-dom.js +5 -2
  106. package/es/event/listener/container-dom.js.map +1 -1
  107. package/es/event/listener/scroll-bar.js +8 -0
  108. package/es/event/listener/scroll-bar.js.map +1 -1
  109. package/es/event/listener/table-group.js +23 -8
  110. package/es/event/listener/table-group.js.map +1 -1
  111. package/es/index.d.ts +1 -1
  112. package/es/index.js +1 -1
  113. package/es/index.js.map +1 -1
  114. package/es/layout/pivot-header-layout.d.ts +1 -0
  115. package/es/layout/pivot-header-layout.js +12 -2
  116. package/es/layout/pivot-header-layout.js.map +1 -1
  117. package/es/scenegraph/component/table-component.d.ts +8 -0
  118. package/es/scenegraph/component/table-component.js +181 -3
  119. package/es/scenegraph/component/table-component.js.map +1 -1
  120. package/es/scenegraph/component/util.d.ts +1 -0
  121. package/es/scenegraph/component/util.js +7 -1
  122. package/es/scenegraph/component/util.js.map +1 -1
  123. package/es/scenegraph/graphic/contributions/group-contribution-render.js +18 -9
  124. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  125. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +5 -4
  126. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  127. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  128. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  129. package/es/scenegraph/layout/frozen.js +4 -2
  130. package/es/scenegraph/layout/frozen.js.map +1 -1
  131. package/es/scenegraph/scenegraph.d.ts +7 -0
  132. package/es/scenegraph/scenegraph.js +44 -19
  133. package/es/scenegraph/scenegraph.js.map +1 -1
  134. package/es/scenegraph/select/update-select-border.js +4 -4
  135. package/es/scenegraph/select/update-select-border.js.map +1 -1
  136. package/es/state/cell-move/index.js +2 -1
  137. package/es/state/cell-move/index.js.map +1 -1
  138. package/es/state/resize/update-resize-column.js +4 -3
  139. package/es/state/resize/update-resize-column.js.map +1 -1
  140. package/es/state/resize/update-resize-row.d.ts +2 -0
  141. package/es/state/resize/update-resize-row.js +57 -0
  142. package/es/state/resize/update-resize-row.js.map +1 -0
  143. package/es/state/state.d.ts +11 -1
  144. package/es/state/state.js +31 -4
  145. package/es/state/state.js.map +1 -1
  146. package/es/themes/component.js +1 -1
  147. package/es/tools/global.d.ts +1 -0
  148. package/es/tools/global.js +2 -0
  149. package/es/tools/global.js.map +1 -1
  150. package/es/ts-types/base-table.d.ts +7 -0
  151. package/es/ts-types/base-table.js.map +1 -1
  152. package/es/ts-types/events.d.ts +11 -0
  153. package/es/ts-types/events.js.map +1 -1
  154. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +6 -1
  155. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  156. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +3 -0
  157. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  158. package/es/ts-types/table-engine.d.ts +5 -0
  159. package/es/ts-types/table-engine.js.map +1 -1
  160. package/es/vrender.js.map +1 -1
  161. package/package.json +5 -5
@@ -16,7 +16,7 @@ import { getQuadProps } from "./utils/padding";
16
16
 
17
17
  import { createFrameBorder, updateCornerRadius, updateFrameBorder, updateFrameBorderSize } from "./style/frame-border";
18
18
 
19
- import { ResizeColumnHotSpotSize } from "../tools/global";
19
+ import { ResizeColumnHotSpotSize, ResizeRowHotSpotSize } from "../tools/global";
20
20
 
21
21
  import splitModule from "./graphic/contributions";
22
22
 
@@ -40,6 +40,8 @@ import { deleteAllSelectBorder, deleteLastSelectedRangeComponents, removeFillHan
40
40
 
41
41
  import { updateRow } from "./layout/update-row";
42
42
 
43
+ import { handleTextStick } from "./stick-text";
44
+
43
45
  import { computeRowHeight, computeRowsHeight } from "./layout/compute-row-height";
44
46
 
45
47
  import { emptyGroup } from "./utils/empty-group";
@@ -259,7 +261,7 @@ export class Scenegraph {
259
261
  };
260
262
  }
261
263
  updateNextFrame() {
262
- this.resetAllSelectComponent(), this.stage.renderNextFrame();
264
+ this.updateContainerSync(), this.resetAllSelectComponent(), this.stage.renderNextFrame();
263
265
  }
264
266
  resetAllSelectComponent() {
265
267
  var _a, _b;
@@ -395,7 +397,7 @@ export class Scenegraph {
395
397
  }
396
398
  resize() {
397
399
  this.proxy.resize(), ("adaptive" === this.table.widthMode || this.table.autoFillWidth) && (0 === this.table.internalProps._widthResizedColMap.size ? this.recalculateColWidths() : this.dealWidthMode()),
398
- "adaptive" === this.table.heightMode ? this.recalculateRowHeights() : this.table.autoFillHeight && this.dealHeightMode(),
400
+ "adaptive" === this.table.heightMode ? 0 === this.table.internalProps._heightResizedRowMap.size ? this.recalculateRowHeights() : this.dealHeightMode() : this.table.autoFillHeight && this.dealHeightMode(),
399
401
  this.resetFrozen(), this.updateTableSize(), this.updateBorderSizeAndPosition(),
400
402
  this.component.updateScrollBar(), ("adaptive" === this.table.widthMode || "adaptive" === this.table.heightMode || this.table.autoFillWidth || this.table.autoFillHeight) && this.updateChartSize(this.table.rowHeaderLevelCount),
401
403
  this.proxy.progress(), this.updateNextFrame();
@@ -521,9 +523,11 @@ export class Scenegraph {
521
523
  this.updateNextFrame());
522
524
  }
523
525
  afterScenegraphCreated() {
524
- this.isPivot || this.table.transpose ? this.table.options.frozenColCount && this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
526
+ this.isPivot || this.table.transpose ? this.table.options.frozenColCount ? this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.table.options.rightFrozenColCount ? this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount) : this.component.setFrozenColumnShadow(-1) : (this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
527
+ this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount)),
525
528
  this.table.stateManager.checkFrozen(), this.updateContainer(), this.createFrameBorder(),
526
- this.updateBorderSizeAndPosition(), this.component.updateScrollBar(), this.updateNextFrame();
529
+ this.updateBorderSizeAndPosition(), this.component.updateScrollBar(), handleTextStick(this.table),
530
+ this.updateNextFrame();
527
531
  }
528
532
  dealWidthMode() {
529
533
  const table = this.table;
@@ -652,10 +656,12 @@ export class Scenegraph {
652
656
  }
653
657
  updateContainer(async = !1) {
654
658
  async ? this._needUpdateContainer || (this._needUpdateContainer = !0, setTimeout((() => {
655
- this.updateContainerAttrWidthAndX(), this.updateTableSize(), this.component.updateScrollBar(),
656
- this.updateNextFrame(), this._needUpdateContainer = !1;
657
- }), 0)) : (this.updateContainerAttrWidthAndX(), this.updateTableSize(), this.component.updateScrollBar(),
658
- this.updateNextFrame(), this._needUpdateContainer = !1);
659
+ this.updateContainerSync();
660
+ }), 0)) : (this._needUpdateContainer = !0, this.updateContainerSync());
661
+ }
662
+ updateContainerSync() {
663
+ this._needUpdateContainer && (this._needUpdateContainer = !1, this.updateContainerAttrWidthAndX(),
664
+ this.updateTableSize(), this.component.updateScrollBar(), this.updateNextFrame());
659
665
  }
660
666
  updateCellContentWhileResize(col, row) {
661
667
  const type = this.table.getBodyColumnType(col, row), cellGroup = this.getCell(col, row);
@@ -671,18 +677,35 @@ export class Scenegraph {
671
677
  createFrameBorder(this.tableGroup, this.table.theme.frameStyle, this.tableGroup.role, void 0);
672
678
  }
673
679
  getResizeColAt(abstractX, abstractY, cellGroup, offset = ResizeColumnHotSpotSize / 2) {
680
+ let cell;
681
+ return cellGroup ? (abstractX < cellGroup.globalAABBBounds.x1 + offset ? cell = {
682
+ col: cellGroup.col - 1,
683
+ row: cellGroup.row,
684
+ x: cellGroup.globalAABBBounds.x1
685
+ } : cellGroup.globalAABBBounds.x2 - offset < abstractX && (cell = {
686
+ col: cellGroup.col,
687
+ row: cellGroup.row,
688
+ x: cellGroup.globalAABBBounds.x2
689
+ }), cell && this.table.rightFrozenColCount > 0 && cell.col === this.table.colCount - this.table.rightFrozenColCount - 1 && this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() + this.table.scrollLeft < this.bodyGroup.attribute.width && (cell.col = cell.col + 1,
690
+ cell.rightFrozen = !0)) : cell = this.table.getCellAt(abstractX - offset, abstractY),
691
+ cell || {
692
+ col: -1,
693
+ row: -1
694
+ };
695
+ }
696
+ getResizeRowAt(abstractX, abstractY, cellGroup, offset = ResizeRowHotSpotSize / 2) {
674
697
  if (cellGroup) {
675
698
  let cell;
676
- if (abstractX < cellGroup.globalAABBBounds.x1 + offset ? cell = {
677
- col: cellGroup.col - 1,
678
- row: cellGroup.row,
679
- x: cellGroup.globalAABBBounds.x1
680
- } : cellGroup.globalAABBBounds.x2 - offset < abstractX && (cell = {
699
+ if (abstractY < cellGroup.globalAABBBounds.y1 + offset ? cell = {
700
+ col: cellGroup.col,
701
+ row: cellGroup.row - 1,
702
+ y: cellGroup.globalAABBBounds.y1
703
+ } : cellGroup.globalAABBBounds.y2 - offset < abstractY && (cell = {
681
704
  col: cellGroup.col,
682
705
  row: cellGroup.row,
683
- x: cellGroup.globalAABBBounds.x2
684
- }), cell && this.table.rightFrozenColCount > 0 && cell.col === this.table.colCount - this.table.rightFrozenColCount - 1 && this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() + this.table.scrollLeft < this.bodyGroup.attribute.width && (cell.col = cell.col + 1,
685
- cell.rightFrozen = !0), cell) return cell;
706
+ y: cellGroup.globalAABBBounds.y2
707
+ }), cell && this.table.bottomFrozenRowCount > 0 && cell.row === this.table.rowCount - this.table.bottomFrozenRowCount - 1 && this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight() - this.table.getBottomFrozenRowsHeight() + this.table.scrollTop < this.bodyGroup.attribute.height && (cell.row = cell.row + 1,
708
+ cell.bottomFrozen = !0), cell) return cell;
686
709
  } else ;
687
710
  return {
688
711
  col: -1,
@@ -746,12 +769,14 @@ export class Scenegraph {
746
769
  const row = updateRows[i], oldHeight = this.table.getRowHeight(row), newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
747
770
  (row >= this.proxy.rowStart && row <= this.proxy.rowEnd || row >= this.table.rowCount - this.table.bottomFrozenRowCount && row <= this.table.rowCount - 1) && this.table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
748
771
  }
749
- this.table.stateManager.checkFrozen(), this.isPivot || this.table.transpose ? this.table.options.frozenColCount && this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
772
+ this.table.stateManager.checkFrozen(), this.isPivot || this.table.transpose ? this.table.options.frozenColCount ? this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.table.options.rightFrozenColCount && this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount) : (this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
773
+ this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount)),
750
774
  this.component.updateScrollBar(), this.updateNextFrame();
751
775
  }
752
776
  updateCol(removeCells, addCells, updateCells = []) {
753
777
  updateCol(removeCells, addCells, updateCells, this.table), this.recalculateColWidths(),
754
- this.recalculateRowHeights(), this.table.stateManager.checkFrozen(), this.isPivot || this.table.transpose ? this.table.options.frozenColCount && this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
778
+ this.recalculateRowHeights(), this.table.stateManager.checkFrozen(), this.isPivot || this.table.transpose ? this.table.options.frozenColCount ? this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.table.options.rightFrozenColCount && this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount) : (this.component.setFrozenColumnShadow(this.table.frozenColCount - 1),
779
+ this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount)),
755
780
  this.component.updateScrollBar(), this.updateNextFrame();
756
781
  }
757
782
  getColumnGroupX(col) {