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/cjs/PivotTable.js CHANGED
@@ -502,7 +502,8 @@ class PivotTable extends BaseTable_1.BaseTable {
502
502
  updateSortRules(sortRules, col, row) {
503
503
  this.internalProps.dataConfig ? this.internalProps.dataConfig.sortRules = sortRules : this.internalProps.dataConfig = {
504
504
  sortRules: sortRules
505
- }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules();
505
+ }, this.dataset.updateSortRules(sortRules), this._changePivotSortStateBySortRules(),
506
+ this._filterHideIndicatorNode();
506
507
  const {layoutMap: layoutMap} = this.internalProps;
507
508
  layoutMap.resetHeaderTree(), this.scenegraph.clearCells(), (0, vutils_1.isNumber)(col) && (0,
508
509
  vutils_1.isNumber)(row) ? (this.isRowHeader(col, row) ? (this.setMinMaxLimitWidth(!0),
@@ -516,7 +517,7 @@ class PivotTable extends BaseTable_1.BaseTable {
516
517
  this.pivotSortState = [];
517
518
  const sortRules = null !== (_b = null === (_a = this.internalProps.dataConfig) || void 0 === _a ? void 0 : _a.sortRules) && void 0 !== _b ? _b : [];
518
519
  for (let i = 0; i < sortRules.length; i++) {
519
- const sortRule = sortRules[i], dimensions = [];
520
+ const sortRule = sortRules[i], dimensions = [], sortType = sortRule.sortType ? sortRule.sortType.toUpperCase() : "ASC";
520
521
  if (sortRule.sortByIndicator && sortRule.sortField === (this.dataset.indicatorsAsCol ? this.dataset.rows[this.dataset.rows.length - 1] : this.dataset.columns[this.dataset.columns.length - 1])) {
521
522
  for (let j = 0; j < sortRule.query.length; j++) dimensions.push({
522
523
  dimensionKey: this.dataset.indicatorsAsCol ? this.dataset.columns[j] : this.dataset.rows[j],
@@ -525,19 +526,55 @@ class PivotTable extends BaseTable_1.BaseTable {
525
526
  dimensions.push({
526
527
  indicatorKey: sortRule.sortByIndicator,
527
528
  value: null !== (_d = null === (_c = this.internalProps.layoutMap.getIndicatorInfo(sortRule.sortByIndicator)) || void 0 === _c ? void 0 : _c.title) && void 0 !== _d ? _d : sortRule.sortByIndicator
529
+ }), this.pivotSortState.push({
530
+ dimensions: dimensions,
531
+ order: ts_types_1.SortType[sortType]
528
532
  });
529
- } else dimensions.push({
530
- dimensionKey: sortRule.sortField,
531
- isPivotCorner: !0,
532
- value: sortRule.sortField
533
- });
534
- const sortType = sortRule.sortType ? sortRule.sortType.toUpperCase() : "ASC";
535
- this.pivotSortState.push({
536
- dimensions: dimensions,
537
- order: ts_types_1.SortType[sortType]
538
- });
533
+ } else {
534
+ const sortField = sortRule.sortField, rowIndex = this.dataset.rows.indexOf(sortField), colIndex = this.dataset.columns.indexOf(sortField);
535
+ let pushed = !1;
536
+ if (rowIndex >= 0) {
537
+ const rowDimensions = [];
538
+ for (let k = 0; k <= rowIndex; k++) rowDimensions.push({
539
+ dimensionKey: this.dataset.rows[k],
540
+ isPivotCorner: !0,
541
+ value: this.dataset.rows[k]
542
+ });
543
+ this.pivotSortState.push({
544
+ dimensions: rowDimensions,
545
+ order: ts_types_1.SortType[sortType]
546
+ }), pushed = !0;
547
+ }
548
+ if (colIndex >= 0) {
549
+ const colDimensions = [];
550
+ for (let k = 0; k <= colIndex; k++) colDimensions.push({
551
+ dimensionKey: this.dataset.columns[k],
552
+ isPivotCorner: !0,
553
+ value: this.dataset.columns[k]
554
+ });
555
+ this.pivotSortState.push({
556
+ dimensions: colDimensions,
557
+ order: ts_types_1.SortType[sortType]
558
+ }), pushed = !0;
559
+ }
560
+ pushed || (dimensions.push({
561
+ dimensionKey: sortField,
562
+ isPivotCorner: !0,
563
+ value: sortField
564
+ }), this.pivotSortState.push({
565
+ dimensions: dimensions,
566
+ order: ts_types_1.SortType[sortType]
567
+ }));
568
+ }
539
569
  }
540
570
  }
571
+ _filterHideIndicatorNode() {
572
+ const options = this.options;
573
+ !1 !== options.indicatorsAsCol && options.indicators && this.dataset.colHeaderTree && (0,
574
+ layout_helper_1.deleteHideIndicatorNode)(this.dataset.colHeaderTree, options.indicators, !1, this),
575
+ !1 === options.indicatorsAsCol && this.dataset.rowHeaderTree && options.indicators && (0,
576
+ layout_helper_1.deleteHideIndicatorNode)(this.dataset.rowHeaderTree, options.indicators, !1, this);
577
+ }
541
578
  updatePivotSortState(pivotSortStateConfig) {
542
579
  this.pivotSortState = pivotSortStateConfig;
543
580
  }
@@ -591,10 +628,53 @@ class PivotTable extends BaseTable_1.BaseTable {
591
628
  }
592
629
  }
593
630
  getPivotSortState(col, row) {
631
+ var _a;
594
632
  if (!this.pivotSortState) return;
595
633
  const cellRange = this.getCellRange(col, row);
596
634
  for (let i = 0; i < this.pivotSortState.length; i++) {
597
- const pivotState = this.pivotSortState[i], dimensions = pivotState.dimensions, cell = this.getCellAddressByHeaderPaths(dimensions), order = pivotState.order;
635
+ const pivotState = this.pivotSortState[i], dimensions = pivotState.dimensions;
636
+ if (this.isCornerHeader(col, row)) {
637
+ const layoutMap = this.internalProps.layoutMap, header = layoutMap.getHeader(col, row);
638
+ if (header && header.pivotInfo && dimensions && dimensions.length > 0) {
639
+ let cellPathKeys = [];
640
+ const leftSnCount = null !== (_a = layoutMap.leftRowSeriesNumberColumnCount) && void 0 !== _a ? _a : 0;
641
+ if ("row" === layoutMap.cornerSetting.titleOnDimension) {
642
+ const dimIndex = col - leftSnCount;
643
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
644
+ } else if ("column" === layoutMap.cornerSetting.titleOnDimension) {
645
+ const dimIndex = row;
646
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
647
+ } else if ("all" === layoutMap.cornerSetting.titleOnDimension) if (layoutMap.indicatorsAsCol) {
648
+ let indicatorAtIndex = layoutMap.colDimensionKeys.indexOf(layoutMap.indicatorDimensionKey);
649
+ if (-1 === indicatorAtIndex && (indicatorAtIndex = layoutMap.columnHeaderLevelCount - 1),
650
+ row === indicatorAtIndex) {
651
+ const dimIndex = col - leftSnCount;
652
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
653
+ } else {
654
+ const dimIndex = row;
655
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
656
+ }
657
+ } else {
658
+ let indicatorAtIndex = layoutMap.rowDimensionKeys.indexOf(layoutMap.indicatorDimensionKey);
659
+ if (-1 === indicatorAtIndex && (indicatorAtIndex = layoutMap.rowHeaderLevelCount - 1),
660
+ col - leftSnCount === indicatorAtIndex) {
661
+ const dimIndex = row;
662
+ cellPathKeys = layoutMap.colDimensionKeys.slice(0, dimIndex + 1);
663
+ } else {
664
+ const dimIndex = col - leftSnCount;
665
+ cellPathKeys = layoutMap.rowDimensionKeys.slice(0, dimIndex + 1);
666
+ }
667
+ }
668
+ if (cellPathKeys.length > 0 && dimensions.length === cellPathKeys.length) {
669
+ if (dimensions.every(((dim, idx) => {
670
+ const isCorner = dim.isPivotCorner || !(0, vutils_1.isValid)(dim.isPivotCorner) && dim.dimensionKey && !dim.value, keyMatch = dim.dimensionKey === cellPathKeys[idx] || dim.value === cellPathKeys[idx];
671
+ return isCorner && keyMatch;
672
+ }))) return pivotState.order;
673
+ }
674
+ }
675
+ continue;
676
+ }
677
+ const cell = this.getCellAddressByHeaderPaths(dimensions), order = pivotState.order;
598
678
  if (cell && (0, helper_1.cellInRange)(cellRange, cell.col, cell.row)) return order;
599
679
  }
600
680
  }
@@ -702,7 +782,7 @@ class PivotTable extends BaseTable_1.BaseTable {
702
782
  }
703
783
  setRecords(records) {
704
784
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
705
- (0, chart_render_helper_1.clearChartRenderQueue)();
785
+ this.stateManager.endResizeIfResizing(), (0, chart_render_helper_1.clearChartRenderQueue)();
706
786
  const oldHoverState = {
707
787
  col: this.stateManager.hover.cellPos.col,
708
788
  row: this.stateManager.hover.cellPos.row
@@ -962,7 +1042,7 @@ class PivotTable extends BaseTable_1.BaseTable {
962
1042
  }
963
1043
  updateFilterRules(filterRules, isResetTree = !1) {
964
1044
  this.internalProps.dataConfig.filterRules = filterRules, isResetTree ? (this.dataset.updateFilterRules(filterRules, !0),
965
- this.internalProps.layoutMap.resetHeaderTree()) : this.dataset.updateFilterRules(filterRules),
1045
+ this._filterHideIndicatorNode(), this.internalProps.layoutMap.resetHeaderTree()) : this.dataset.updateFilterRules(filterRules),
966
1046
  this.renderWithRecreateCells();
967
1047
  }
968
1048
  getFilteredRecords() {