@visactor/vtable 1.26.3 → 1.26.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 (101) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +25 -4
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/core/BaseTable.js +6 -4
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/core/FouseInput.js +1 -2
  7. package/cjs/core/tableHelper.d.ts +2 -0
  8. package/cjs/core/tableHelper.js +13 -8
  9. package/cjs/core/tableHelper.js.map +1 -1
  10. package/cjs/data/CachedDataSource.d.ts +1 -0
  11. package/cjs/data/CachedDataSource.js +22 -0
  12. package/cjs/data/CachedDataSource.js.map +1 -1
  13. package/cjs/dataset/DataStatistics.js +2 -1
  14. package/cjs/dataset/flatDataToObject.js +1 -2
  15. package/cjs/event/helper.js +1 -1
  16. package/cjs/event/listener/table-group.js +52 -52
  17. package/cjs/event/listener/table-group.js.map +1 -1
  18. package/cjs/event/media-click.js +1 -1
  19. package/cjs/event/scroll.js +1 -1
  20. package/cjs/event/sparkline-event.js +1 -1
  21. package/cjs/event/util.js +1 -1
  22. package/cjs/header-helper/style.js +2 -1
  23. package/cjs/index.d.ts +1 -1
  24. package/cjs/index.js +1 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/plugins/index.js +1 -1
  27. package/cjs/plugins/interface.js +1 -2
  28. package/cjs/plugins/invert-highlight.js +1 -1
  29. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  30. package/cjs/plugins/plugin-manager.js +1 -1
  31. package/cjs/scenegraph/component/custom.js +2 -2
  32. package/cjs/scenegraph/component/custom.js.map +1 -1
  33. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -1
  34. package/cjs/scenegraph/group-creater/cell-helper.js +5 -5
  35. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  36. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  37. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +3 -2
  38. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  39. package/cjs/scenegraph/group-creater/column-helper.js +9 -6
  40. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  41. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  42. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  43. package/cjs/scenegraph/layout/compute-row-height.js +1 -1
  44. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  45. package/cjs/scenegraph/scenegraph.js +22 -13
  46. package/cjs/scenegraph/scenegraph.js.map +1 -1
  47. package/cjs/scenegraph/utils/text-icon-layout.js +4 -4
  48. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  49. package/cjs/vrender.js.map +1 -1
  50. package/dist/vtable.js +174 -76
  51. package/dist/vtable.min.js +1 -1
  52. package/es/ListTable.d.ts +1 -0
  53. package/es/ListTable.js +26 -6
  54. package/es/ListTable.js.map +1 -1
  55. package/es/core/BaseTable.js +4 -3
  56. package/es/core/BaseTable.js.map +1 -1
  57. package/es/core/FouseInput.js +1 -2
  58. package/es/core/tableHelper.d.ts +2 -0
  59. package/es/core/tableHelper.js +11 -7
  60. package/es/core/tableHelper.js.map +1 -1
  61. package/es/data/CachedDataSource.d.ts +1 -0
  62. package/es/data/CachedDataSource.js +22 -0
  63. package/es/data/CachedDataSource.js.map +1 -1
  64. package/es/dataset/DataStatistics.js +2 -1
  65. package/es/dataset/flatDataToObject.js +1 -2
  66. package/es/event/helper.js +1 -1
  67. package/es/event/listener/table-group.js +52 -52
  68. package/es/event/listener/table-group.js.map +1 -1
  69. package/es/event/media-click.js +1 -1
  70. package/es/event/scroll.js +1 -1
  71. package/es/event/sparkline-event.js +1 -1
  72. package/es/event/util.js +1 -1
  73. package/es/header-helper/style.js +2 -1
  74. package/es/index.d.ts +1 -1
  75. package/es/index.js +1 -1
  76. package/es/index.js.map +1 -1
  77. package/es/plugins/index.js +1 -1
  78. package/es/plugins/interface.js +1 -2
  79. package/es/plugins/invert-highlight.js +1 -1
  80. package/es/plugins/list-tree-stick-cell.js +1 -1
  81. package/es/plugins/plugin-manager.js +1 -1
  82. package/es/scenegraph/component/custom.js +2 -2
  83. package/es/scenegraph/component/custom.js.map +1 -1
  84. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -1
  85. package/es/scenegraph/group-creater/cell-helper.js +5 -5
  86. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  87. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  88. package/es/scenegraph/group-creater/cell-type/text-cell.js +3 -2
  89. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  90. package/es/scenegraph/group-creater/column-helper.js +9 -6
  91. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  92. package/es/scenegraph/layout/compute-col-width.js +1 -1
  93. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  94. package/es/scenegraph/layout/compute-row-height.js +1 -1
  95. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  96. package/es/scenegraph/scenegraph.js +22 -10
  97. package/es/scenegraph/scenegraph.js.map +1 -1
  98. package/es/scenegraph/utils/text-icon-layout.js +4 -4
  99. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  100. package/es/vrender.js.map +1 -1
  101. package/package.json +3 -3
package/es/ListTable.d.ts CHANGED
@@ -45,6 +45,7 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
45
45
  clearColWidthCache?: boolean;
46
46
  clearRowHeightCache?: boolean;
47
47
  }): Promise<unknown>;
48
+ private _refreshCurrentRecordsForOptionUpdate;
48
49
  updatePagination(pagination: IPagination): void;
49
50
  refreshHeader(): void;
50
51
  refreshRowColCount(): void;
package/es/ListTable.js CHANGED
@@ -4,7 +4,7 @@ import { SimpleHeaderLayoutMap } from "./layout";
4
4
 
5
5
  import { isArray, isValid } from "@visactor/vutils";
6
6
 
7
- import { _setRecords, checkHasAggregationOnColumnDefine, generateAggregationForColumn } from "./core/tableHelper";
7
+ import { _setRecords, checkHasAggregationOnColumnDefine, generateAggregationForColumn, getHierarchyExpandLevel, getListTableRowHierarchyType } from "./core/tableHelper";
8
8
 
9
9
  import { BaseTable } from "./core";
10
10
 
@@ -30,7 +30,7 @@ import { Factory } from "./core/factory";
30
30
 
31
31
  import { getGroupByDataConfig } from "./core/group-helper";
32
32
 
33
- import { DataSource } from "./data";
33
+ import { CachedDataSource, DataSource } from "./data";
34
34
 
35
35
  import { getValueFromDeepArray } from "./data/DataSource";
36
36
 
@@ -376,9 +376,10 @@ export class ListTable extends BaseTable {
376
376
  clearRowHeightCache: !0
377
377
  }) {
378
378
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
379
- const internalProps = this.internalProps;
380
- if (this.pluginManager.removeOrAddPlugins(options.plugins), super.updateOption(options, updateConfig),
381
- internalProps.frozenColDragHeaderMode = null !== (_b = null === (_a = options.dragOrder) || void 0 === _a ? void 0 : _a.frozenColDragHeaderMode) && void 0 !== _b ? _b : options.frozenColDragHeaderMode,
379
+ const internalProps = this.internalProps, prevSortState = internalProps.sortState, hasActiveSortState = (Array.isArray(options.sortState) ? options.sortState : options.sortState ? [ options.sortState ] : []).some((item => (null == item ? void 0 : item.field) && (null == item ? void 0 : item.order) && "normal" !== item.order)), shouldSkipInitialClearCells = Boolean(options.records) || !!options.dataSource && this.dataSource !== options.dataSource;
380
+ if (this.pluginManager.removeOrAddPlugins(options.plugins), super.updateOption(options, Object.assign(Object.assign({}, updateConfig), {
381
+ skipClearCells: shouldSkipInitialClearCells
382
+ })), internalProps.frozenColDragHeaderMode = null !== (_b = null === (_a = options.dragOrder) || void 0 === _a ? void 0 : _a.frozenColDragHeaderMode) && void 0 !== _b ? _b : options.frozenColDragHeaderMode,
382
383
  this.pagination = options.pagination, internalProps.sortState = options.sortState,
383
384
  internalProps.dataConfig = this.internalProps.groupBy ? getGroupByDataConfig(this.internalProps.groupBy, options.addRecordRule) : {
384
385
  addRecordRule: options.addRecordRule
@@ -392,7 +393,7 @@ export class ListTable extends BaseTable {
392
393
  releaseObj instanceof DataSource ? releaseObj.updateColumns(this.internalProps.columns) : (null === (_g = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _g || _g.call(releaseObj),
393
394
  internalProps.releaseList.splice(i, 1));
394
395
  }
395
- if (options.dataSource && this.dataSource !== options.dataSource ? this.dataSource = options.dataSource : options.records ? this.setRecords(options.records, {
396
+ if (options.dataSource && this.dataSource !== options.dataSource ? this.dataSource = options.dataSource : options.records && options.records === internalProps.records && options.sortState === prevSortState && !hasActiveSortState && this.dataSource instanceof CachedDataSource ? this._refreshCurrentRecordsForOptionUpdate(options.records) : options.records ? this.setRecords(options.records, {
396
397
  sortState: options.sortState
397
398
  }) : (this.refreshRowColCount(), this._resetFrozenColCount(), this.scenegraph.createSceneGraph(),
398
399
  this.render()), options.title) {
@@ -409,6 +410,25 @@ export class ListTable extends BaseTable {
409
410
  setTimeout(resolve, 0);
410
411
  }));
411
412
  }
413
+ _refreshCurrentRecordsForOptionUpdate(records) {
414
+ var _a;
415
+ const dataSource = this.dataSource;
416
+ this.stateManager.endResizeIfResizing(), clearChartRenderQueue();
417
+ const oldHoverState = {
418
+ col: this.stateManager.hover.cellPos.col,
419
+ row: this.stateManager.hover.cellPos.row
420
+ };
421
+ this.scenegraph.clearCells(), this.internalProps.records = records, dataSource.refreshRecords(records, this.internalProps.dataConfig, this.pagination, this.internalProps.columns, getListTableRowHierarchyType(this), getHierarchyExpandLevel(this)),
422
+ this.refreshRowColCount(), this.stateManager.initCheckedState(records), this.clearCellStyleCache(),
423
+ this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),
424
+ this._updateSize();
425
+ (null !== (_a = this.options.componentLayoutOrder) && void 0 !== _a ? _a : [ "legend", "title" ]).forEach((component => {
426
+ var _a, _b;
427
+ "legend" === component ? null === (_a = this.internalProps.legends) || void 0 === _a || _a.forEach((legend => {
428
+ null == legend || legend.resize();
429
+ })) : "title" === component && (null === (_b = this.internalProps.title) || void 0 === _b || _b.resize());
430
+ })), this.scenegraph.resize(), this.render();
431
+ }
412
432
  updatePagination(pagination) {
413
433
  this.pagination && ("number" == typeof pagination.currentPage && pagination.currentPage >= 0 && (this.pagination.currentPage = pagination.currentPage),
414
434
  pagination.perPageCount && (this.pagination.perPageCount = pagination.perPageCount || this.pagination.perPageCount),