@visactor/vtable 1.3.3 → 1.4.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 (115) hide show
  1. package/cjs/ListTable.js +25 -15
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.d.ts +1 -2
  4. package/cjs/PivotChart.js +0 -7
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +1 -1
  7. package/cjs/PivotTable.js +34 -14
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/components/react/react-custom-layout.d.ts +21 -0
  10. package/cjs/components/react/react-custom-layout.js +48 -0
  11. package/cjs/components/react/react-custom-layout.js.map +1 -0
  12. package/cjs/core/BaseTable.d.ts +5 -0
  13. package/cjs/core/BaseTable.js +37 -23
  14. package/cjs/core/BaseTable.js.map +1 -1
  15. package/cjs/core/style.js +1 -1
  16. package/cjs/core/style.js.map +1 -1
  17. package/cjs/data/DataSource.d.ts +6 -1
  18. package/cjs/data/DataSource.js +12 -2
  19. package/cjs/data/DataSource.js.map +1 -1
  20. package/cjs/dataset/dataset.d.ts +15 -2
  21. package/cjs/dataset/dataset.js +187 -72
  22. package/cjs/dataset/dataset.js.map +1 -1
  23. package/cjs/dataset/statistics-helper.d.ts +43 -3
  24. package/cjs/dataset/statistics-helper.js +61 -26
  25. package/cjs/dataset/statistics-helper.js.map +1 -1
  26. package/cjs/event/listener/table-group.js +2 -2
  27. package/cjs/event/listener/table-group.js.map +1 -1
  28. package/cjs/index.d.ts +3 -1
  29. package/cjs/index.js +14 -5
  30. package/cjs/index.js.map +1 -1
  31. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  32. package/cjs/layout/pivot-header-layout.js +7 -0
  33. package/cjs/layout/pivot-header-layout.js.map +1 -1
  34. package/cjs/scenegraph/component/custom.js +6 -4
  35. package/cjs/scenegraph/component/custom.js.map +1 -1
  36. package/cjs/scenegraph/group-creater/cell-helper.js +4 -0
  37. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  38. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  39. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  40. package/cjs/scenegraph/layout/compute-row-height.js +3 -3
  41. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  42. package/cjs/scenegraph/scenegraph.d.ts +2 -1
  43. package/cjs/scenegraph/scenegraph.js +12 -3
  44. package/cjs/scenegraph/scenegraph.js.map +1 -1
  45. package/cjs/ts-types/base-table.d.ts +8 -0
  46. package/cjs/ts-types/base-table.js.map +1 -1
  47. package/cjs/ts-types/customLayout.d.ts +1 -1
  48. package/cjs/ts-types/customLayout.js.map +1 -1
  49. package/cjs/ts-types/new-data-set.d.ts +9 -1
  50. package/cjs/ts-types/new-data-set.js +1 -1
  51. package/cjs/ts-types/new-data-set.js.map +1 -1
  52. package/cjs/ts-types/pivot-table/corner.d.ts +12 -0
  53. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  54. package/cjs/vrender.d.ts +4 -0
  55. package/cjs/vrender.js +39 -11
  56. package/cjs/vrender.js.map +1 -1
  57. package/dist/vtable.js +25311 -9542
  58. package/dist/vtable.min.js +2 -2
  59. package/es/ListTable.js +21 -11
  60. package/es/ListTable.js.map +1 -1
  61. package/es/PivotChart.d.ts +1 -2
  62. package/es/PivotChart.js +0 -7
  63. package/es/PivotChart.js.map +1 -1
  64. package/es/PivotTable.d.ts +1 -1
  65. package/es/PivotTable.js +34 -14
  66. package/es/PivotTable.js.map +1 -1
  67. package/es/components/react/react-custom-layout.d.ts +21 -0
  68. package/es/components/react/react-custom-layout.js +38 -0
  69. package/es/components/react/react-custom-layout.js.map +1 -0
  70. package/es/core/BaseTable.d.ts +5 -0
  71. package/es/core/BaseTable.js +40 -23
  72. package/es/core/BaseTable.js.map +1 -1
  73. package/es/core/style.js +1 -1
  74. package/es/core/style.js.map +1 -1
  75. package/es/data/DataSource.d.ts +6 -1
  76. package/es/data/DataSource.js +12 -2
  77. package/es/data/DataSource.js.map +1 -1
  78. package/es/dataset/dataset.d.ts +15 -2
  79. package/es/dataset/dataset.js +187 -73
  80. package/es/dataset/dataset.js.map +1 -1
  81. package/es/dataset/statistics-helper.d.ts +43 -3
  82. package/es/dataset/statistics-helper.js +55 -23
  83. package/es/dataset/statistics-helper.js.map +1 -1
  84. package/es/event/listener/table-group.js +2 -2
  85. package/es/event/listener/table-group.js.map +1 -1
  86. package/es/index.d.ts +3 -1
  87. package/es/index.js +5 -1
  88. package/es/index.js.map +1 -1
  89. package/es/layout/pivot-header-layout.d.ts +1 -0
  90. package/es/layout/pivot-header-layout.js +7 -0
  91. package/es/layout/pivot-header-layout.js.map +1 -1
  92. package/es/scenegraph/component/custom.js +7 -3
  93. package/es/scenegraph/component/custom.js.map +1 -1
  94. package/es/scenegraph/group-creater/cell-helper.js +4 -0
  95. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  96. package/es/scenegraph/layout/compute-col-width.js +3 -3
  97. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  98. package/es/scenegraph/layout/compute-row-height.js +4 -4
  99. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  100. package/es/scenegraph/scenegraph.d.ts +2 -1
  101. package/es/scenegraph/scenegraph.js +12 -3
  102. package/es/scenegraph/scenegraph.js.map +1 -1
  103. package/es/ts-types/base-table.d.ts +8 -0
  104. package/es/ts-types/base-table.js.map +1 -1
  105. package/es/ts-types/customLayout.d.ts +1 -1
  106. package/es/ts-types/customLayout.js.map +1 -1
  107. package/es/ts-types/new-data-set.d.ts +9 -1
  108. package/es/ts-types/new-data-set.js +1 -1
  109. package/es/ts-types/new-data-set.js.map +1 -1
  110. package/es/ts-types/pivot-table/corner.d.ts +12 -0
  111. package/es/ts-types/pivot-table/corner.js.map +1 -1
  112. package/es/vrender.d.ts +4 -0
  113. package/es/vrender.js +9 -3
  114. package/es/vrender.js.map +1 -1
  115. package/package.json +8 -8
package/es/PivotTable.js CHANGED
@@ -14,7 +14,7 @@ import { BaseTable } from "./core/BaseTable";
14
14
 
15
15
  import { Title } from "./components/title/title";
16
16
 
17
- import { cloneDeep, isValid } from "@visactor/vutils";
17
+ import { cloneDeep, isNumber, isValid } from "@visactor/vutils";
18
18
 
19
19
  import { Env } from "./tools/env";
20
20
 
@@ -465,13 +465,16 @@ export class PivotTable extends BaseTable {
465
465
  }
466
466
  }
467
467
  }
468
- updateSortRules(sortRules) {
468
+ updateSortRules(sortRules, col, row) {
469
469
  this.internalProps.dataConfig ? this.internalProps.dataConfig.sortRules = sortRules : this.internalProps.dataConfig = {
470
470
  sortRules: sortRules
471
- }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules(),
472
- this.internalProps.layoutMap.resetHeaderTree(), this.scenegraph.clearCells(), this.refreshHeader(),
473
- this.internalProps.useOneRowHeightFillAll = !1, this.scenegraph.createSceneGraph(),
474
- this.render();
471
+ }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules();
472
+ const {layoutMap: layoutMap} = this.internalProps;
473
+ layoutMap.resetHeaderTree(), this.scenegraph.clearCells(), isNumber(col) && isNumber(row) ? (this.isRowHeader(col, row) ? (this.setMinMaxLimitWidth(!0),
474
+ this.internalProps._widthResizedColMap.clear()) : this.isCornerHeader(col, row) ? "column" === layoutMap.cornerSetting.titleOnDimension ? (this.setMinMaxLimitWidth(!0),
475
+ this.internalProps._widthResizedColMap.clear()) : "row" === layoutMap.cornerSetting.titleOnDimension && this.internalProps._heightResizedRowMap.clear() : this.isColumnHeader(col, row) && this.internalProps._heightResizedRowMap.clear(),
476
+ this.refreshRowColCount()) : this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1,
477
+ this.scenegraph.createSceneGraph(!0), this.render();
475
478
  }
476
479
  _changePivotSortStateBySortRules() {
477
480
  var _a, _b, _c, _d;
@@ -546,7 +549,7 @@ export class PivotTable extends BaseTable {
546
549
  sortField: headerDefine.dimensionKey,
547
550
  sortType: SortType[order]
548
551
  } ];
549
- this.updateSortRules(this.dataset.sortRules);
552
+ this.updateSortRules(this.dataset.sortRules, col, row);
550
553
  }
551
554
  }
552
555
  getPivotSortState(col, row) {
@@ -677,11 +680,14 @@ export class PivotTable extends BaseTable {
677
680
  this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1, this.scenegraph.clearCells(),
678
681
  this.clearCellStyleCache(), this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),
679
682
  this.internalProps.title && !this.internalProps.title.isReleased && (this._updateSize(),
680
- this.internalProps.title.resize(), this.scenegraph.resize()), this.eventManager.updateEventBinder();
683
+ this.internalProps.title.resize(), this.scenegraph.resize()), this.eventManager.updateEventBinder(),
684
+ this.options.emptyTip && (this.internalProps.emptyTip || (this.internalProps.emptyTip = new EmptyTip(this.options.emptyTip, this)),
685
+ this.internalProps.emptyTip.resetVisible());
681
686
  }
682
687
  startEditCell(col, row) {
683
688
  var _a;
684
- if (isValid(col) && isValid(row)) this.selectCell(col, row), this.editorManager.startEditCell(col, row); else if (null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.cellPos) {
689
+ if (isValid(col) && isValid(row)) this.eventManager.isDraging = !1, this.selectCell(col, row),
690
+ this.editorManager.startEditCell(col, row); else if (null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.cellPos) {
685
691
  const {col: col, row: row} = this.stateManager.select.cellPos;
686
692
  isValid(col) && isValid(row) && this.editorManager.startEditCell(col, row);
687
693
  }
@@ -690,14 +696,17 @@ export class PivotTable extends BaseTable {
690
696
  this.editorManager.completeEdit();
691
697
  }
692
698
  getEditor(col, row) {
693
- var _a, _b;
699
+ var _a, _b, _c;
694
700
  let editorDefine;
695
- if (this.isHeader(col, row) && !this.isCornerHeader(col, row)) {
701
+ if (this.isCornerHeader(col, row)) {
696
702
  const define = this.getHeaderDefine(col, row);
697
703
  editorDefine = null !== (_a = null == define ? void 0 : define.headerEditor) && void 0 !== _a ? _a : this.options.headerEditor;
704
+ } else if (this.isHeader(col, row)) {
705
+ const define = this.getHeaderDefine(col, row);
706
+ editorDefine = null !== (_b = null == define ? void 0 : define.headerEditor) && void 0 !== _b ? _b : this.options.headerEditor;
698
707
  } else {
699
708
  const define = this.getBodyColumnDefine(col, row);
700
- editorDefine = null !== (_b = null == define ? void 0 : define.editor) && void 0 !== _b ? _b : this.options.editor;
709
+ editorDefine = null !== (_c = null == define ? void 0 : define.editor) && void 0 !== _c ? _c : this.options.editor;
701
710
  }
702
711
  if ("function" == typeof editorDefine) {
703
712
  editorDefine = editorDefine({
@@ -752,6 +761,17 @@ export class PivotTable extends BaseTable {
752
761
  }
753
762
  changeCellValues(startCol, startRow, values, workOnEditableCell = !1) {
754
763
  let pasteColEnd = startCol, pasteRowEnd = startRow;
764
+ const beforeChangeValues = [], oldValues = [];
765
+ for (let i = 0; i < values.length && !(startRow + i > this.rowCount - 1); i++) {
766
+ const rowValues = values[i], rawRowValues = [], oldRowValues = [];
767
+ beforeChangeValues.push(rawRowValues), oldValues.push(oldRowValues);
768
+ for (let j = 0; j < rowValues.length && !(startCol + j > this.colCount - 1); j++) {
769
+ const beforeChangeValue = this.getCellRawValue(startCol + j, startRow + i);
770
+ rawRowValues.push(beforeChangeValue);
771
+ const oldValue = this.getCellOriginValue(startCol + j, startRow + i);
772
+ oldRowValues.push(oldValue);
773
+ }
774
+ }
755
775
  for (let i = 0; i < values.length && !(startRow + i > this.rowCount - 1); i++) {
756
776
  pasteRowEnd = startRow + i;
757
777
  const rowValues = values[i];
@@ -760,7 +780,7 @@ export class PivotTable extends BaseTable {
760
780
  workOnEditableCell && this.isHasEditorDefine(startCol + j, startRow + i) || !1 === workOnEditableCell) {
761
781
  const value = rowValues[j];
762
782
  let newValue = value;
763
- const oldValue = this.getCellOriginValue(startCol + j, startRow + i), rawValue = this.getCellRawValue(startCol + j, startRow + i);
783
+ const oldValue = oldValues[i][j], rawValue = beforeChangeValues[i][j];
764
784
  "number" == typeof rawValue && isAllDigits(value) && (newValue = parseFloat(value)),
765
785
  this._changeCellValueToDataSet(startCol + j, startRow + i, oldValue, newValue),
766
786
  this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
@@ -796,7 +816,7 @@ export class PivotTable extends BaseTable {
796
816
  this.records[rowIndex][colIndex] = newValue;
797
817
  } else if (this.dataset) {
798
818
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
799
- if (this.isHeader(col, row)) this.internalProps.layoutMap.changeTreeNodeTitle(col, row, newValue),
819
+ if (this.isCornerHeader(col, row)) this.internalProps.layoutMap.changeCornerTitle(col, row, newValue); else if (this.isHeader(col, row)) this.internalProps.layoutMap.changeTreeNodeTitle(col, row, newValue),
800
820
  !this.isCornerHeader(col, row) && this.dataset.changeRecordFieldValue((null === (_a = cellDimensionPath.colHeaderPaths) || void 0 === _a ? void 0 : _a.length) ? null !== (_b = cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].indicatorKey) && void 0 !== _b ? _b : cellDimensionPath.colHeaderPaths[cellDimensionPath.colHeaderPaths.length - 1].dimensionKey : null !== (_c = cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].indicatorKey) && void 0 !== _c ? _c : cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].dimensionKey, oldValue, newValue); else {
801
821
  const colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
802
822
  var _a;