@visactor/vtable 1.5.3-alpha.1 → 1.5.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/cjs/ListTable.d.ts +1 -2
  2. package/cjs/ListTable.js +194 -26
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -1
  5. package/cjs/PivotTable.js +3 -3
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.d.ts +3 -5
  8. package/cjs/core/BaseTable.js +79 -8
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/core/tableHelper.d.ts +2 -0
  11. package/cjs/core/tableHelper.js +18 -9
  12. package/cjs/core/tableHelper.js.map +1 -1
  13. package/cjs/data/CachedDataSource.d.ts +1 -10
  14. package/cjs/data/CachedDataSource.js +3 -78
  15. package/cjs/data/CachedDataSource.js.map +1 -1
  16. package/cjs/dataset/statistics-helper.js +1 -0
  17. package/cjs/edit/edit-manager.d.ts +1 -1
  18. package/cjs/edit/edit-manager.js +4 -5
  19. package/cjs/edit/edit-manager.js.map +1 -1
  20. package/cjs/event/listener/container-dom.js +6 -5
  21. package/cjs/event/listener/container-dom.js.map +1 -1
  22. package/cjs/event/listener/table-group.js.map +1 -1
  23. package/cjs/event/scroll.js +6 -4
  24. package/cjs/event/scroll.js.map +1 -1
  25. package/cjs/index.d.ts +1 -1
  26. package/cjs/index.js +1 -1
  27. package/cjs/index.js.map +1 -1
  28. package/cjs/layout/layout-helper.js +2 -2
  29. package/cjs/layout/layout-helper.js.map +1 -1
  30. package/cjs/layout/pivot-header-layout.js +5 -5
  31. package/cjs/layout/pivot-header-layout.js.map +1 -1
  32. package/cjs/layout/row-height-map.js +0 -1
  33. package/cjs/layout/simple-header-layout.d.ts +2 -1
  34. package/cjs/layout/simple-header-layout.js +88 -2
  35. package/cjs/layout/simple-header-layout.js.map +1 -1
  36. package/cjs/plugins/icons.js +1 -1
  37. package/cjs/plugins/themes.js +1 -1
  38. package/cjs/scenegraph/group-creater/cell-helper.js +6 -11
  39. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  40. package/cjs/scenegraph/group-creater/column-helper.js +2 -7
  41. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  42. package/cjs/scenegraph/scenegraph.js +1 -1
  43. package/cjs/scenegraph/utils/get-cell-merge.js +1 -1
  44. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  45. package/cjs/scenegraph/utils/get-hierarchy-offset.js +8 -6
  46. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  47. package/cjs/state/select/is-cell-select-highlight.d.ts +1 -0
  48. package/cjs/state/select/is-cell-select-highlight.js +8 -2
  49. package/cjs/state/select/is-cell-select-highlight.js.map +1 -1
  50. package/cjs/themes/theme.d.ts +0 -2
  51. package/cjs/themes/theme.js +4 -12
  52. package/cjs/themes/theme.js.map +1 -1
  53. package/cjs/tools/helper.js.map +1 -1
  54. package/cjs/ts-types/base-table.d.ts +0 -9
  55. package/cjs/ts-types/base-table.js.map +1 -1
  56. package/cjs/ts-types/new-data-set.d.ts +0 -1
  57. package/cjs/ts-types/new-data-set.js.map +1 -1
  58. package/cjs/ts-types/table-engine.d.ts +1 -9
  59. package/cjs/ts-types/table-engine.js.map +1 -1
  60. package/cjs/ts-types/theme.d.ts +0 -1
  61. package/cjs/ts-types/theme.js.map +1 -1
  62. package/cjs/vrender.js.map +1 -1
  63. package/dist/vtable.js +2903 -3151
  64. package/dist/vtable.min.js +2 -2
  65. package/es/ListTable.d.ts +1 -2
  66. package/es/ListTable.js +192 -30
  67. package/es/ListTable.js.map +1 -1
  68. package/es/PivotTable.d.ts +1 -1
  69. package/es/PivotTable.js +3 -3
  70. package/es/PivotTable.js.map +1 -1
  71. package/es/core/BaseTable.d.ts +3 -5
  72. package/es/core/BaseTable.js +83 -11
  73. package/es/core/BaseTable.js.map +1 -1
  74. package/es/core/tableHelper.d.ts +2 -0
  75. package/es/core/tableHelper.js +16 -6
  76. package/es/core/tableHelper.js.map +1 -1
  77. package/es/data/CachedDataSource.d.ts +1 -10
  78. package/es/data/CachedDataSource.js +0 -79
  79. package/es/data/CachedDataSource.js.map +1 -1
  80. package/es/dataset/statistics-helper.js +2 -1
  81. package/es/edit/edit-manager.d.ts +1 -1
  82. package/es/edit/edit-manager.js +5 -4
  83. package/es/edit/edit-manager.js.map +1 -1
  84. package/es/event/listener/container-dom.js +7 -4
  85. package/es/event/listener/container-dom.js.map +1 -1
  86. package/es/event/listener/table-group.js.map +1 -1
  87. package/es/event/scroll.js +6 -4
  88. package/es/event/scroll.js.map +1 -1
  89. package/es/index.d.ts +1 -1
  90. package/es/index.js +1 -1
  91. package/es/index.js.map +1 -1
  92. package/es/layout/layout-helper.js +2 -2
  93. package/es/layout/layout-helper.js.map +1 -1
  94. package/es/layout/pivot-header-layout.js +5 -5
  95. package/es/layout/pivot-header-layout.js.map +1 -1
  96. package/es/layout/row-height-map.js +1 -2
  97. package/es/layout/simple-header-layout.d.ts +2 -1
  98. package/es/layout/simple-header-layout.js +87 -3
  99. package/es/layout/simple-header-layout.js.map +1 -1
  100. package/es/plugins/icons.js +1 -1
  101. package/es/plugins/themes.js +1 -1
  102. package/es/scenegraph/group-creater/cell-helper.js +6 -11
  103. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  104. package/es/scenegraph/group-creater/column-helper.js +2 -7
  105. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  106. package/es/scenegraph/scenegraph.js +1 -1
  107. package/es/scenegraph/utils/get-cell-merge.js +1 -1
  108. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  109. package/es/scenegraph/utils/get-hierarchy-offset.js +9 -7
  110. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  111. package/es/state/select/is-cell-select-highlight.d.ts +1 -0
  112. package/es/state/select/is-cell-select-highlight.js +5 -0
  113. package/es/state/select/is-cell-select-highlight.js.map +1 -1
  114. package/es/themes/theme.d.ts +0 -2
  115. package/es/themes/theme.js +4 -11
  116. package/es/themes/theme.js.map +1 -1
  117. package/es/tools/helper.js.map +1 -1
  118. package/es/ts-types/base-table.d.ts +0 -9
  119. package/es/ts-types/base-table.js.map +1 -1
  120. package/es/ts-types/new-data-set.d.ts +0 -1
  121. package/es/ts-types/new-data-set.js.map +1 -1
  122. package/es/ts-types/table-engine.d.ts +1 -9
  123. package/es/ts-types/table-engine.js.map +1 -1
  124. package/es/ts-types/theme.d.ts +0 -1
  125. package/es/ts-types/theme.js.map +1 -1
  126. package/es/vrender.js.map +1 -1
  127. package/package.json +4 -4
  128. package/cjs/core/group-helper.d.ts +0 -6
  129. package/cjs/core/group-helper.js +0 -22
  130. package/cjs/core/group-helper.js.map +0 -1
  131. package/cjs/core/record-helper.d.ts +0 -6
  132. package/cjs/core/record-helper.js +0 -230
  133. package/cjs/core/record-helper.js.map +0 -1
  134. package/cjs/core/style-helper.d.ts +0 -3
  135. package/cjs/core/style-helper.js +0 -110
  136. package/cjs/core/style-helper.js.map +0 -1
  137. package/cjs/layout/cell-range/simple-cell-range.d.ts +0 -4
  138. package/cjs/layout/cell-range/simple-cell-range.js +0 -106
  139. package/cjs/layout/cell-range/simple-cell-range.js.map +0 -1
  140. package/es/core/group-helper.d.ts +0 -6
  141. package/es/core/group-helper.js +0 -14
  142. package/es/core/group-helper.js.map +0 -1
  143. package/es/core/record-helper.d.ts +0 -6
  144. package/es/core/record-helper.js +0 -220
  145. package/es/core/record-helper.js.map +0 -1
  146. package/es/core/style-helper.d.ts +0 -3
  147. package/es/core/style-helper.js +0 -86
  148. package/es/core/style-helper.js.map +0 -1
  149. package/es/layout/cell-range/simple-cell-range.d.ts +0 -4
  150. package/es/layout/cell-range/simple-cell-range.js +0 -99
  151. package/es/layout/cell-range/simple-cell-range.js.map +0 -1
@@ -171,5 +171,4 @@ function indexFirst(arr, elm) {
171
171
  return high < 0 ? 0 : high;
172
172
  }
173
173
 
174
- //# sourceMappingURL=row-height-map.js.map
175
174
  exports.NumberRangeMap = NumberRangeMap;
@@ -29,7 +29,7 @@ export declare class SimpleHeaderLayoutMap implements LayoutMapAPI {
29
29
  _hasAggregationOnTopCount: number;
30
30
  _hasAggregationOnBottomCount: number;
31
31
  rowHierarchyType?: 'grid' | 'tree';
32
- _cellRangeMap: Map<string, CellRange>;
32
+ private _cellRangeMap;
33
33
  constructor(table: ListTable, columns: ColumnsDefine, showHeader: boolean, hierarchyIndent: number);
34
34
  handleRowSeriesNumber(rowSeriesNumber: IRowSeriesNumber): void;
35
35
  get transpose(): boolean;
@@ -97,6 +97,7 @@ export declare class SimpleHeaderLayoutMap implements LayoutMapAPI {
97
97
  getBody(col: number, _row: number): ColumnData | SeriesNumberColumnData;
98
98
  getBodyLayoutRangeById(id: LayoutObjectId): CellRange;
99
99
  getCellRange(col: number, row: number): CellRange;
100
+ private getCellRangeTranspose;
100
101
  isCellRangeEqual(col: number, row: number, targetCol: number, targetRow: number): boolean;
101
102
  getRecordShowIndexByCell(col: number, row: number): number;
102
103
  getRecordStartRowByRecordIndex(index: number): number;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.SimpleHeaderLayoutMap = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), global_1 = require("../tools/global"), get_chart_spec_1 = require("./chart-helper/get-chart-spec"), layout_helper_1 = require("./layout-helper"), tree_helper_1 = require("./tree-helper"), simple_cell_range_1 = require("./cell-range/simple-cell-range");
7
+ const vutils_1 = require("@visactor/vutils"), global_1 = require("../tools/global"), get_chart_spec_1 = require("./chart-helper/get-chart-spec"), layout_helper_1 = require("./layout-helper"), tree_helper_1 = require("./tree-helper");
8
8
 
9
9
  class SimpleHeaderLayoutMap {
10
10
  constructor(table, columns, showHeader, hierarchyIndent) {
@@ -480,7 +480,93 @@ class SimpleHeaderLayoutMap {
480
480
  throw new Error(`can not found body layout @id=${id}`);
481
481
  }
482
482
  getCellRange(col, row) {
483
- return (0, simple_cell_range_1.getCellRange)(col, row, this);
483
+ var _a, _b, _c;
484
+ if (-1 === col || -1 === row) return {
485
+ start: {
486
+ col: col,
487
+ row: row
488
+ },
489
+ end: {
490
+ col: col,
491
+ row: row
492
+ }
493
+ };
494
+ if (this._cellRangeMap.has(`$${col}$${row}`)) return this._cellRangeMap.get(`$${col}$${row}`);
495
+ let cellRange = {
496
+ start: {
497
+ col: col,
498
+ row: row
499
+ },
500
+ end: {
501
+ col: col,
502
+ row: row
503
+ }
504
+ };
505
+ if (this.transpose) cellRange = this.getCellRangeTranspose(col, row); else if (this.headerLevelCount <= row) {
506
+ if (this.headerLevelCount <= row && (null === (_b = null === (_a = this.columnObjects[col - this.leftRowSeriesNumberColumnCount]) || void 0 === _a ? void 0 : _a.define) || void 0 === _b ? void 0 : _b.mergeCell)) {
507
+ const value = this._table.getCellValue(col, row);
508
+ for (let r = row - 1; r >= this.headerLevelCount; r--) {
509
+ const last_Value = this._table.getCellValue(col, r);
510
+ if ("boolean" == typeof this.columnObjects[col - this.leftRowSeriesNumberColumnCount].define.mergeCell) {
511
+ if (value !== last_Value) break;
512
+ } else if (!this.columnObjects[col - this.leftRowSeriesNumberColumnCount].define.mergeCell(value, last_Value)) break;
513
+ cellRange.start.row = r;
514
+ }
515
+ for (let r = row + 1; r < this.rowCount; r++) {
516
+ const next_Value = this._table.getCellValue(col, r);
517
+ if ("boolean" == typeof this.columnObjects[col - this.leftRowSeriesNumberColumnCount].define.mergeCell) {
518
+ if (value !== next_Value) break;
519
+ } else if (!this.columnObjects[col - this.leftRowSeriesNumberColumnCount].define.mergeCell(value, next_Value)) break;
520
+ cellRange.end.row = r;
521
+ }
522
+ }
523
+ } else {
524
+ const id = this.getCellId(col, row);
525
+ for (let c = col - 1; c >= 0 && id === this.getCellId(c, row); c--) cellRange.start.col = c;
526
+ for (let c = col + 1; c < (null !== (_c = this.colCount) && void 0 !== _c ? _c : 0) && id === this.getCellId(c, row); c++) cellRange.end.col = c;
527
+ for (let r = row - 1; r >= 0 && id === this.getCellId(col, r); r--) cellRange.start.row = r;
528
+ for (let r = row + 1; r < this.headerLevelCount && id === this.getCellId(col, r); r++) cellRange.end.row = r;
529
+ }
530
+ return this._cellRangeMap.set(`$${col}$${row}`, cellRange), cellRange;
531
+ }
532
+ getCellRangeTranspose(col, row) {
533
+ var _a, _b, _c, _d;
534
+ const result = {
535
+ start: {
536
+ col: col,
537
+ row: row
538
+ },
539
+ end: {
540
+ col: col,
541
+ row: row
542
+ }
543
+ };
544
+ if (this.headerLevelCount + this.leftRowSeriesNumberColumnCount <= col || -1 === col && -1 === row) {
545
+ if (this.headerLevelCount + this.leftRowSeriesNumberColumnCount <= col && (null === (_b = null === (_a = this.columnObjects[row]) || void 0 === _a ? void 0 : _a.define) || void 0 === _b ? void 0 : _b.mergeCell)) {
546
+ const value = this._table.getCellValue(col, row);
547
+ for (let c = col - 1; c >= this.headerLevelCount + this.leftRowSeriesNumberColumnCount; c--) {
548
+ const last_Value = this._table.getCellValue(c, row);
549
+ if ("boolean" == typeof this.columnObjects[row].define.mergeCell) {
550
+ if (value !== last_Value) break;
551
+ } else if (!this.columnObjects[row].define.mergeCell(value, last_Value)) break;
552
+ result.start.col = c;
553
+ }
554
+ for (let c = col + 1; c < (null !== (_c = this.colCount) && void 0 !== _c ? _c : 0); c++) {
555
+ const next_Value = this._table.getCellValue(c, row);
556
+ if ("boolean" == typeof this.columnObjects[row].define.mergeCell) {
557
+ if (value !== next_Value) break;
558
+ } else if (!this.columnObjects[row].define.mergeCell(value, next_Value)) break;
559
+ result.end.col = c;
560
+ }
561
+ }
562
+ return result;
563
+ }
564
+ const id = this.getCellId(col, row);
565
+ for (let r = row - 1; r >= 0 && id === this.getCellId(col, r); r--) result.start.row = r;
566
+ for (let r = row + 1; r < (null !== (_d = this.rowCount) && void 0 !== _d ? _d : 0) && id === this.getCellId(col, r); r++) result.end.row = r;
567
+ for (let c = col - 1; c >= 0 && id === this.getCellId(c, row); c--) result.start.col = c;
568
+ for (let c = col + 1; c < this.headerLevelCount + this.leftRowSeriesNumberColumnCount && id === this.getCellId(c, row); c++) result.end.col = c;
569
+ return result;
484
570
  }
485
571
  isCellRangeEqual(col, row, targetCol, targetRow) {
486
572
  const range1 = this.getCellRange(col, row), range2 = this.getCellRange(targetCol, targetRow);