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
@@ -52,6 +52,7 @@ export declare class PivotTable extends BaseTable implements PivotTableAPI {
52
52
  getCellRawRecord(col: number, row: number): any;
53
53
  updateSortRules(sortRules: SortRules, col?: number, row?: number): void;
54
54
  _changePivotSortStateBySortRules(): void;
55
+ _filterHideIndicatorNode(): void;
55
56
  updatePivotSortState(pivotSortStateConfig: {
56
57
  dimensions: IDimensionInfo[];
57
58
  order: SortOrder;
package/es/PivotTable.js CHANGED
@@ -500,7 +500,8 @@ export class PivotTable extends BaseTable {
500
500
  updateSortRules(sortRules, col, row) {
501
501
  this.internalProps.dataConfig ? this.internalProps.dataConfig.sortRules = sortRules : this.internalProps.dataConfig = {
502
502
  sortRules: sortRules
503
- }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules();
503
+ }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules(),
504
+ this._filterHideIndicatorNode();
504
505
  const {layoutMap: layoutMap} = this.internalProps;
505
506
  layoutMap.resetHeaderTree(), this.scenegraph.clearCells(), isNumber(col) && isNumber(row) ? (this.isRowHeader(col, row) ? (this.setMinMaxLimitWidth(!0),
506
507
  this.internalProps._widthResizedColMap.clear()) : this.isCornerHeader(col, row) ? "column" === layoutMap.cornerSetting.titleOnDimension ? (this.setMinMaxLimitWidth(!0),
@@ -513,7 +514,7 @@ export class PivotTable extends BaseTable {
513
514
  this.pivotSortState = [];
514
515
  const sortRules = null !== (_b = null === (_a = this.internalProps.dataConfig) || void 0 === _a ? void 0 : _a.sortRules) && void 0 !== _b ? _b : [];
515
516
  for (let i = 0; i < sortRules.length; i++) {
516
- const sortRule = sortRules[i], dimensions = [];
517
+ const sortRule = sortRules[i], dimensions = [], sortType = sortRule.sortType ? sortRule.sortType.toUpperCase() : "ASC";
517
518
  if (sortRule.sortByIndicator && sortRule.sortField === (this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1])) {
518
519
  for (let j = 0; j < sortRule.query.length; j++) dimensions.push({
519
520
  dimensionKey: this.dataset.indicatorsAsCol ? this.dataset.columns[j] : this.dataset.rows[j],
@@ -522,19 +523,53 @@ export class PivotTable extends BaseTable {
522
523
  dimensions.push({
523
524
  indicatorKey: sortRule.sortByIndicator,
524
525
  value: null !== (_d = null === (_c = this.internalProps.layoutMap.getIndicatorInfo(sortRule.sortByIndicator)) || void 0 === _c ? void 0 : _c.title) && void 0 !== _d ? _d : sortRule.sortByIndicator
526
+ }), this.pivotSortState.push({
527
+ dimensions: dimensions,
528
+ order: SortType[sortType]
525
529
  });
526
- } else dimensions.push({
527
- dimensionKey: sortRule.sortField,
528
- isPivotCorner: !0,
529
- value: sortRule.sortField
530
- });
531
- const sortType = sortRule.sortType ? sortRule.sortType.toUpperCase() : "ASC";
532
- this.pivotSortState.push({
533
- dimensions: dimensions,
534
- order: SortType[sortType]
535
- });
530
+ } else {
531
+ const sortField = sortRule.sortField, rowIndex = this.dataset.rows.indexOf(sortField), colIndex = this.dataset.columns.indexOf(sortField);
532
+ let pushed = !1;
533
+ if (rowIndex >= 0) {
534
+ const rowDimensions = [];
535
+ for (let k = 0; k <= rowIndex; k++) rowDimensions.push({
536
+ dimensionKey: this.dataset.rows[k],
537
+ isPivotCorner: !0,
538
+ value: this.dataset.rows[k]
539
+ });
540
+ this.pivotSortState.push({
541
+ dimensions: rowDimensions,
542
+ order: SortType[sortType]
543
+ }), pushed = !0;
544
+ }
545
+ if (colIndex >= 0) {
546
+ const colDimensions = [];
547
+ for (let k = 0; k <= colIndex; k++) colDimensions.push({
548
+ dimensionKey: this.dataset.columns[k],
549
+ isPivotCorner: !0,
550
+ value: this.dataset.columns[k]
551
+ });
552
+ this.pivotSortState.push({
553
+ dimensions: colDimensions,
554
+ order: SortType[sortType]
555
+ }), pushed = !0;
556
+ }
557
+ pushed || (dimensions.push({
558
+ dimensionKey: sortField,
559
+ isPivotCorner: !0,
560
+ value: sortField
561
+ }), this.pivotSortState.push({
562
+ dimensions: dimensions,
563
+ order: SortType[sortType]
564
+ }));
565
+ }
536
566
  }
537
567
  }
568
+ _filterHideIndicatorNode() {
569
+ const options = this.options;
570
+ !1 !== options.indicatorsAsCol && options.indicators && this.dataset.colHeaderTree && deleteHideIndicatorNode(this.dataset.colHeaderTree, options.indicators, !1, this),
571
+ !1 === options.indicatorsAsCol && this.dataset.rowHeaderTree && options.indicators && deleteHideIndicatorNode(this.dataset.rowHeaderTree, options.indicators, !1, this);
572
+ }
538
573
  updatePivotSortState(pivotSortStateConfig) {
539
574
  this.pivotSortState = pivotSortStateConfig;
540
575
  }
@@ -588,10 +623,53 @@ export class PivotTable extends BaseTable {
588
623
  }
589
624
  }
590
625
  getPivotSortState(col, row) {
626
+ var _a;
591
627
  if (!this.pivotSortState) return;
592
628
  const cellRange = this.getCellRange(col, row);
593
629
  for (let i = 0; i < this.pivotSortState.length; i++) {
594
- const pivotState = this.pivotSortState[i], dimensions = pivotState.dimensions, cell = this.getCellAddressByHeaderPaths(dimensions), order = pivotState.order;
630
+ const pivotState = this.pivotSortState[i], dimensions = pivotState.dimensions;
631
+ if (this.isCornerHeader(col, row)) {
632
+ const layoutMap = this.internalProps.layoutMap, header = layoutMap.getHeader(col, row);
633
+ if (header && header.pivotInfo && dimensions && dimensions.length > 0) {
634
+ let cellPathKeys = [];
635
+ const leftSnCount = null !== (_a = layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0;
636
+ if ("row" === layoutMap.cornerSetting.titleOnDimension) {
637
+ const dimIndex = col - leftSnCount;
638
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
639
+ } else if ("column" === layoutMap.cornerSetting.titleOnDimension) {
640
+ const dimIndex = row;
641
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
642
+ } else if ("all" === layoutMap.cornerSetting.titleOnDimension) if (layoutMap.indicatorsAsCol) {
643
+ let indicatorAtIndex = layoutMap.colDimensionKeys.indexOf(layoutMap.indicatorDimensionKey);
644
+ if (-1 === indicatorAtIndex && (indicatorAtIndex = layoutMap.columnHeaderLevelCount - 1),
645
+ row === indicatorAtIndex) {
646
+ const dimIndex = col - leftSnCount;
647
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
648
+ } else {
649
+ const dimIndex = row;
650
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
651
+ }
652
+ } else {
653
+ let indicatorAtIndex = layoutMap.rowDimensionKeys.indexOf(layoutMap.indicatorDimensionKey);
654
+ if (-1 === indicatorAtIndex && (indicatorAtIndex = layoutMap.rowHeaderLevelCount - 1),
655
+ col - leftSnCount === indicatorAtIndex) {
656
+ const dimIndex = row;
657
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
658
+ } else {
659
+ const dimIndex = col - leftSnCount;
660
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
661
+ }
662
+ }
663
+ if (cellPathKeys.length > 0 && dimensions.length === cellPathKeys.length) {
664
+ if (dimensions.every(((dim, idx) => {
665
+ const isCorner = dim.isPivotCorner || !isValid(dim.isPivotCorner) && dim.dimensionKey && !dim.value, keyMatch = dim.dimensionKey === cellPathKeys[idx] || dim.value === cellPathKeys[idx];
666
+ return isCorner && keyMatch;
667
+ }))) return pivotState.order;
668
+ }
669
+ }
670
+ continue;
671
+ }
672
+ const cell = this.getCellAddressByHeaderPaths(dimensions), order = pivotState.order;
595
673
  if (cell && cellInRange(cellRange, cell.col, cell.row)) return order;
596
674
  }
597
675
  }
@@ -699,7 +777,7 @@ export class PivotTable extends BaseTable {
699
777
  }
700
778
  setRecords(records) {
701
779
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
702
- clearChartRenderQueue();
780
+ this.stateManager.endResizeIfResizing(), clearChartRenderQueue();
703
781
  const oldHoverState = {
704
782
  col: this.stateManager.hover.cellPos.col,
705
783
  row: this.stateManager.hover.cellPos.row
@@ -957,7 +1035,7 @@ export class PivotTable extends BaseTable {
957
1035
  }
958
1036
  updateFilterRules(filterRules, isResetTree = !1) {
959
1037
  this.internalProps.dataConfig.filterRules = filterRules, isResetTree ? (this.dataset.updateFilterRules(filterRules, !0),
960
- this.internalProps.layoutMap.resetHeaderTree()) : this.dataset.updateFilterRules(filterRules),
1038
+ this._filterHideIndicatorNode(), this.internalProps.layoutMap.resetHeaderTree()) : this.dataset.updateFilterRules(filterRules),
961
1039
  this.renderWithRecreateCells();
962
1040
  }
963
1041
  getFilteredRecords() {