@visactor/vtable 1.5.2-alpha.0 → 1.5.2

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/PivotChart.js +8 -8
  2. package/cjs/PivotChart.js.map +1 -1
  3. package/cjs/components/react/react-custom-layout.d.ts +8 -8
  4. package/cjs/components/react/react-custom-layout.js +123 -12
  5. package/cjs/components/react/react-custom-layout.js.map +1 -1
  6. package/cjs/core/BaseTable.d.ts +2 -0
  7. package/cjs/core/BaseTable.js +7 -1
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/core/utils/get-cell-position.js.map +1 -1
  10. package/cjs/data/DataSource.js +4 -2
  11. package/cjs/data/DataSource.js.map +1 -1
  12. package/cjs/dataset/dataset.js +3 -3
  13. package/cjs/dataset/dataset.js.map +1 -1
  14. package/cjs/edit/edit-manager.js +2 -1
  15. package/cjs/event/event.d.ts +3 -0
  16. package/cjs/event/event.js +9 -4
  17. package/cjs/event/event.js.map +1 -1
  18. package/cjs/event/listener/container-dom.js +2 -2
  19. package/cjs/event/listener/container-dom.js.map +1 -1
  20. package/cjs/event/listener/touch.js +12 -14
  21. package/cjs/event/listener/touch.js.map +1 -1
  22. package/cjs/index.d.ts +1 -1
  23. package/cjs/index.js +1 -1
  24. package/cjs/index.js.map +1 -1
  25. package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -0
  26. package/cjs/layout/chart-helper/get-axis-config.js +27 -8
  27. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  28. package/cjs/layout/chart-helper/get-chart-spec.js +6 -6
  29. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  30. package/cjs/layout/pivot-header-layout.d.ts +15 -3
  31. package/cjs/layout/pivot-header-layout.js +66 -28
  32. package/cjs/layout/pivot-header-layout.js.map +1 -1
  33. package/cjs/layout/tree-helper.js +2 -2
  34. package/cjs/layout/tree-helper.js.map +1 -1
  35. package/cjs/scenegraph/component/custom.js +3 -1
  36. package/cjs/scenegraph/component/custom.js.map +1 -1
  37. package/cjs/scenegraph/group-creater/cell-helper.js +6 -3
  38. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  39. package/cjs/scenegraph/layout/compute-col-width.js +17 -11
  40. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  41. package/cjs/scenegraph/layout/compute-row-height.js +13 -10
  42. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  43. package/cjs/scenegraph/layout/update-height.js +1 -0
  44. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  45. package/cjs/scenegraph/layout/update-width.js +1 -0
  46. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  47. package/cjs/scenegraph/scenegraph.js +12 -2
  48. package/cjs/scenegraph/scenegraph.js.map +1 -1
  49. package/cjs/scenegraph/utils/break-string.js +2 -1
  50. package/cjs/scenegraph/utils/break-string.js.map +1 -1
  51. package/cjs/tools/join.d.ts +1 -0
  52. package/cjs/tools/join.js +12 -0
  53. package/cjs/tools/join.js.map +1 -0
  54. package/cjs/ts-types/base-table.d.ts +4 -0
  55. package/cjs/ts-types/base-table.js.map +1 -1
  56. package/cjs/vrender.js.map +1 -1
  57. package/dist/vtable.js +457 -112
  58. package/dist/vtable.min.js +2 -2
  59. package/es/PivotChart.js +9 -7
  60. package/es/PivotChart.js.map +1 -1
  61. package/es/components/react/react-custom-layout.d.ts +8 -8
  62. package/es/components/react/react-custom-layout.js +123 -12
  63. package/es/components/react/react-custom-layout.js.map +1 -1
  64. package/es/core/BaseTable.d.ts +2 -0
  65. package/es/core/BaseTable.js +7 -1
  66. package/es/core/BaseTable.js.map +1 -1
  67. package/es/core/utils/get-cell-position.js.map +1 -1
  68. package/es/data/DataSource.js +4 -2
  69. package/es/data/DataSource.js.map +1 -1
  70. package/es/dataset/dataset.js +4 -2
  71. package/es/dataset/dataset.js.map +1 -1
  72. package/es/edit/edit-manager.js +2 -1
  73. package/es/event/event.d.ts +3 -0
  74. package/es/event/event.js +9 -4
  75. package/es/event/event.js.map +1 -1
  76. package/es/event/listener/container-dom.js +2 -2
  77. package/es/event/listener/container-dom.js.map +1 -1
  78. package/es/event/listener/touch.js +12 -14
  79. package/es/event/listener/touch.js.map +1 -1
  80. package/es/index.d.ts +1 -1
  81. package/es/index.js +1 -1
  82. package/es/index.js.map +1 -1
  83. package/es/layout/chart-helper/get-axis-config.d.ts +1 -0
  84. package/es/layout/chart-helper/get-axis-config.js +25 -6
  85. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  86. package/es/layout/chart-helper/get-chart-spec.js +6 -6
  87. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  88. package/es/layout/pivot-header-layout.d.ts +15 -3
  89. package/es/layout/pivot-header-layout.js +64 -28
  90. package/es/layout/pivot-header-layout.js.map +1 -1
  91. package/es/layout/tree-helper.js +2 -2
  92. package/es/layout/tree-helper.js.map +1 -1
  93. package/es/scenegraph/component/custom.js +3 -1
  94. package/es/scenegraph/component/custom.js.map +1 -1
  95. package/es/scenegraph/group-creater/cell-helper.js +6 -3
  96. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  97. package/es/scenegraph/layout/compute-col-width.js +17 -11
  98. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  99. package/es/scenegraph/layout/compute-row-height.js +13 -10
  100. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  101. package/es/scenegraph/layout/update-height.js +1 -0
  102. package/es/scenegraph/layout/update-height.js.map +1 -1
  103. package/es/scenegraph/layout/update-width.js +1 -0
  104. package/es/scenegraph/layout/update-width.js.map +1 -1
  105. package/es/scenegraph/scenegraph.js +9 -2
  106. package/es/scenegraph/scenegraph.js.map +1 -1
  107. package/es/scenegraph/utils/break-string.js +2 -1
  108. package/es/scenegraph/utils/break-string.js.map +1 -1
  109. package/es/tools/join.d.ts +1 -0
  110. package/es/tools/join.js +6 -0
  111. package/es/tools/join.js.map +1 -0
  112. package/es/ts-types/base-table.d.ts +4 -0
  113. package/es/ts-types/base-table.js.map +1 -1
  114. package/es/vrender.js.map +1 -1
  115. package/package.json +3 -3
package/dist/vtable.js CHANGED
@@ -47405,7 +47405,7 @@
47405
47405
  const dataIndex = this.getIndexKey(index);
47406
47406
  if (!this.beforeChangedRecordsMap[dataIndex]) {
47407
47407
  const originRecord = this.getOriginalRecord(dataIndex);
47408
- this.beforeChangedRecordsMap[dataIndex] = cloneDeep(originRecord);
47408
+ this.beforeChangedRecordsMap[dataIndex] = cloneDeep(originRecord) ?? {};
47409
47409
  }
47410
47410
  if (typeof field === 'string' || typeof field === 'number') {
47411
47411
  const beforeChangedValue = this.beforeChangedRecordsMap[dataIndex][field];
@@ -47423,7 +47423,13 @@
47423
47423
  });
47424
47424
  }
47425
47425
  else {
47426
- record[field] = formatValue;
47426
+ if (record) {
47427
+ record[field] = formatValue;
47428
+ }
47429
+ else {
47430
+ this.records[dataIndex] = {};
47431
+ this.records[dataIndex][field] = formatValue;
47432
+ }
47427
47433
  }
47428
47434
  }
47429
47435
  }
@@ -48913,60 +48919,188 @@
48913
48919
  this.headerCustomLayoutFuncCache = new Map();
48914
48920
  this.headerReactRemoveGraphicCache = new Map();
48915
48921
  }
48916
- hasReactCreateGraphic(componentIndex, isHeaderCustomLayout) {
48922
+ hasReactCreateGraphic(componentId, isHeaderCustomLayout) {
48917
48923
  if (isHeaderCustomLayout) {
48918
- return this.headerCustomLayoutFuncCache.has(componentIndex);
48924
+ return this.headerCustomLayoutFuncCache.has(componentId);
48919
48925
  }
48920
- return this.customLayoutFuncCache.has(componentIndex);
48926
+ return this.customLayoutFuncCache.has(componentId);
48921
48927
  }
48922
- setReactCreateGraphic(componentIndex, createGraphic, isHeaderCustomLayout) {
48928
+ setReactCreateGraphic(componentId, createGraphic, isHeaderCustomLayout) {
48923
48929
  if (isHeaderCustomLayout) {
48924
- this.headerCustomLayoutFuncCache.set(componentIndex, createGraphic);
48930
+ this.headerCustomLayoutFuncCache.set(componentId, createGraphic);
48925
48931
  }
48926
48932
  else {
48927
- this.customLayoutFuncCache.set(componentIndex, createGraphic);
48933
+ this.customLayoutFuncCache.set(componentId, createGraphic);
48928
48934
  }
48929
48935
  }
48930
- setReactRemoveGraphic(componentIndex, removeGraphic, isHeaderCustomLayout) {
48936
+ setReactRemoveGraphic(componentId, removeGraphic, isHeaderCustomLayout) {
48931
48937
  if (isHeaderCustomLayout) {
48932
- this.headerReactRemoveGraphicCache.set(componentIndex, removeGraphic);
48938
+ this.headerReactRemoveGraphicCache.set(componentId, removeGraphic);
48933
48939
  }
48934
48940
  else {
48935
- this.reactRemoveGraphicCache.set(componentIndex, removeGraphic);
48941
+ this.reactRemoveGraphicCache.set(componentId, removeGraphic);
48936
48942
  }
48937
48943
  }
48938
- updateCustomCell(componentIndex, isHeaderCustomLayout) {
48944
+ updateCustomCell(componentId, isHeaderCustomLayout) {
48939
48945
  const table = this.table;
48940
- const col = componentIndex;
48941
- if (isHeaderCustomLayout) {
48942
- for (let row = 0; row < table.columnHeaderLevelCount; row++) {
48943
- table.scenegraph.updateCellContent(col, row);
48946
+ if (table.isPivotTable()) {
48947
+ const ranges = getUpdateCustomCellRangeInPivotTable(componentId, table, isHeaderCustomLayout);
48948
+ for (let i = 0; i < ranges.length; i++) {
48949
+ const range = ranges[i];
48950
+ for (let col = range.start.col; col <= range.end.col; col++) {
48951
+ for (let row = range.start.row; row <= range.end.row; row++) {
48952
+ table.scenegraph.updateCellContent(col, row);
48953
+ }
48954
+ }
48944
48955
  }
48945
48956
  }
48946
48957
  else {
48947
- for (let row = table.columnHeaderLevelCount; row < table.rowCount; row++) {
48948
- table.scenegraph.updateCellContent(col, row);
48958
+ const range = getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout);
48959
+ for (let col = range.start.col; col <= range.end.col; col++) {
48960
+ for (let row = range.start.row; row <= range.end.row; row++) {
48961
+ table.scenegraph.updateCellContent(col, row);
48962
+ }
48949
48963
  }
48950
48964
  }
48951
48965
  table.scenegraph.renderSceneGraph();
48952
48966
  }
48953
48967
  getCustomLayoutFunc(col, row) {
48954
- const { startInTotal } = this.table.getBodyColumnDefine(col, row);
48955
48968
  const isHeader = this.table.isHeader(col, row);
48956
- return ((isHeader ? this.headerCustomLayoutFuncCache.get(startInTotal) : this.customLayoutFuncCache.get(startInTotal)) ||
48957
- emptyCustomLayout);
48969
+ if (isHeader) {
48970
+ const { componentId } = this.table.getHeaderDefine(col, row);
48971
+ return this.headerCustomLayoutFuncCache.get(componentId) ?? emptyCustomLayout;
48972
+ }
48973
+ const { componentId } = this.table.getBodyColumnDefine(col, row);
48974
+ return this.customLayoutFuncCache.get(componentId) || emptyCustomLayout;
48958
48975
  }
48959
48976
  removeCustomCell(col, row) {
48960
- const { startInTotal } = this.table.getBodyColumnDefine(col, row);
48961
48977
  const isHeader = this.table.isHeader(col, row);
48962
- const removeFun = isHeader
48963
- ? this.headerReactRemoveGraphicCache.get(startInTotal)
48964
- : this.reactRemoveGraphicCache.get(startInTotal);
48978
+ let removeFun;
48979
+ if (isHeader) {
48980
+ const define = this.table.getHeaderDefine(col, row);
48981
+ const { componentId } = define;
48982
+ removeFun = this.headerReactRemoveGraphicCache.get(componentId);
48983
+ }
48984
+ else {
48985
+ const define = this.table.getBodyColumnDefine(col, row);
48986
+ const { componentId } = define;
48987
+ removeFun = this.reactRemoveGraphicCache.get(componentId);
48988
+ }
48965
48989
  if (removeFun) {
48966
48990
  removeFun(col, row);
48967
48991
  }
48968
48992
  }
48969
48993
  }
48994
+ function getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout) {
48995
+ const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;
48996
+ if (isHeaderCustomLayout) {
48997
+ const layoutMap = table.internalProps.layoutMap;
48998
+ const { headerObjects } = table.internalProps.layoutMap;
48999
+ let headerId;
49000
+ for (let i = 0; i < headerObjects.length; i++) {
49001
+ const headerObject = headerObjects[i];
49002
+ if (headerObject.define.componentId === componentId) {
49003
+ headerId = headerObject.id;
49004
+ break;
49005
+ }
49006
+ }
49007
+ const startCell = layoutMap.getHeaderCellAdressById(headerId);
49008
+ const range = layoutMap.getCellRange(startCell.col, startCell.row);
49009
+ return range;
49010
+ }
49011
+ const { columnObjects } = table.internalProps.layoutMap;
49012
+ for (let i = 0; i < columnObjects.length; i++) {
49013
+ const columnObject = columnObjects[i];
49014
+ if (columnObject.define.componentId === componentId) {
49015
+ return {
49016
+ start: {
49017
+ col: rowSeriesNumber + i,
49018
+ row: table.columnHeaderLevelCount
49019
+ },
49020
+ end: {
49021
+ col: rowSeriesNumber + i,
49022
+ row: table.rowCount - 1
49023
+ }
49024
+ };
49025
+ }
49026
+ }
49027
+ return {
49028
+ start: {
49029
+ col: 0,
49030
+ row: 0
49031
+ },
49032
+ end: {
49033
+ col: table.colCount - 1,
49034
+ row: table.rowCount - 1
49035
+ }
49036
+ };
49037
+ }
49038
+ function getUpdateCustomCellRangeInPivotTable(componentId, table, isHeaderCustomLayout) {
49039
+ const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;
49040
+ const ranges = [];
49041
+ const layoutMap = table.internalProps.layoutMap;
49042
+ if (isHeaderCustomLayout) {
49043
+ const { headerObjects } = layoutMap;
49044
+ const headerIds = [];
49045
+ for (let i = 0; i < headerObjects.length; i++) {
49046
+ const headerObject = headerObjects[i];
49047
+ if (!headerObject) {
49048
+ continue;
49049
+ }
49050
+ if (headerObject.define.componentId === componentId) {
49051
+ headerIds.push(headerObject.id);
49052
+ }
49053
+ }
49054
+ for (let i = 0; i < headerIds.length; i++) {
49055
+ const headerId = headerIds[i];
49056
+ const startCell = layoutMap.getHeaderCellAdressById(headerId);
49057
+ const range = layoutMap.getCellRange(startCell.col, startCell.row);
49058
+ ranges.push(range);
49059
+ }
49060
+ }
49061
+ else {
49062
+ let columnIndex;
49063
+ const { columnObjects, indicatorsAsCol } = layoutMap;
49064
+ for (let i = 0; i < columnObjects.length; i++) {
49065
+ const columnObject = columnObjects[i];
49066
+ if (columnObject.define.componentId === componentId) {
49067
+ columnIndex = i;
49068
+ break;
49069
+ }
49070
+ }
49071
+ if (indicatorsAsCol) {
49072
+ for (let column = layoutMap.rowHeaderLevelCount + columnIndex; column < layoutMap.colCount; column += columnObjects.length) {
49073
+ const range = {
49074
+ start: {
49075
+ col: column + rowSeriesNumber,
49076
+ row: layoutMap.columnHeaderLevelCount
49077
+ },
49078
+ end: {
49079
+ col: column + rowSeriesNumber,
49080
+ row: layoutMap.rowCount - 1
49081
+ }
49082
+ };
49083
+ ranges.push(range);
49084
+ }
49085
+ }
49086
+ else {
49087
+ for (let row = layoutMap.columnHeaderLevelCount + columnIndex; row < layoutMap.rowCount; row += columnObjects.length) {
49088
+ const range = {
49089
+ start: {
49090
+ col: layoutMap.rowHeaderLevelCount + rowSeriesNumber,
49091
+ row: row
49092
+ },
49093
+ end: {
49094
+ col: layoutMap.colCount - 1,
49095
+ row: row
49096
+ }
49097
+ };
49098
+ ranges.push(range);
49099
+ }
49100
+ }
49101
+ }
49102
+ return ranges;
49103
+ }
48970
49104
 
48971
49105
  function getCellEventArgsSet(e) {
48972
49106
  const tableEvent = {
@@ -49409,6 +49543,9 @@
49409
49543
  return;
49410
49544
  }
49411
49545
  const cellGroup = getTargetCell(graphic);
49546
+ if (!cellGroup || cellGroup.stage) {
49547
+ return;
49548
+ }
49412
49549
  const table = cellGroup.stage.table;
49413
49550
  graphic.skipAttributeUpdate = true;
49414
49551
  const { mergeStartCol, mergeEndCol, mergeStartRow, mergeEndRow } = cellGroup;
@@ -50316,6 +50453,11 @@
50316
50453
  while (text.length && text.length > 1 && !text[text.length - 1]) {
50317
50454
  text.pop();
50318
50455
  }
50456
+ if (table.options.customConfig?.multilinesForXTable && !table.internalProps.autoWrapText) {
50457
+ while (text.length && text.length > 1 && !text[0]) {
50458
+ text.shift();
50459
+ }
50460
+ }
50319
50461
  return {
50320
50462
  text,
50321
50463
  moreThanMaxCharacters
@@ -51393,9 +51535,9 @@
51393
51535
  colForDefine = range.start.col;
51394
51536
  rowForDefine = range.start.row;
51395
51537
  }
51396
- const define = cellLocation !== 'body'
51538
+ const define = (cellLocation !== 'body'
51397
51539
  ? table.getHeaderDefine(colForDefine, rowForDefine)
51398
- : table.getBodyColumnDefine(colForDefine, rowForDefine);
51540
+ : table.getBodyColumnDefine(colForDefine, rowForDefine));
51399
51541
  if (!range && (cellLocation !== 'body' || define?.mergeCell)) {
51400
51542
  range = table.getCellRange(col, row);
51401
51543
  isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;
@@ -51404,7 +51546,10 @@
51404
51546
  cellTheme = getStyleTheme(cellStyle, table, isMerge ? range.start.col : col, isMerge ? range.start.row : row, getProp).theme;
51405
51547
  }
51406
51548
  cellTheme.group.cornerRadius = getCellCornerRadius(col, row, table);
51407
- if (!addNew && !isMerge && canUseFastUpdate(col, row, oldCellGroup, autoWrapText, table)) {
51549
+ if (!addNew &&
51550
+ !isMerge &&
51551
+ !(define.customLayout || define.customRender || define.headerCustomLayout || define.headerCustomRender) &&
51552
+ canUseFastUpdate(col, row, oldCellGroup, autoWrapText, table)) {
51408
51553
  const cellWidth = table.getColWidth(col);
51409
51554
  const cellHeight = table.getRowHeight(row);
51410
51555
  oldCellGroup.setAttributes({
@@ -51526,8 +51671,10 @@
51526
51671
  if (!addNew && oldCellGroup.parent) {
51527
51672
  if (table.reactCustomLayout) {
51528
51673
  const reactGroup = oldCellGroup.getChildByName('custom-container');
51529
- const { col, row } = reactGroup;
51530
- table.reactCustomLayout.removeCustomCell(col, row);
51674
+ if (reactGroup) {
51675
+ const { col, row } = reactGroup;
51676
+ table.reactCustomLayout.removeCustomCell(col, row);
51677
+ }
51531
51678
  }
51532
51679
  }
51533
51680
  const newCellGroup = createCell(type, value, define, table, col, row, table.getColWidth(col), cellWidth, cellHeight, addNew ? table.scenegraph.getColGroup(col) : oldCellGroup.parent, addNew ? 0 : table.scenegraph.getCellGroupY(row), padding, textAlign, textBaseline, mayHaveIcon, cellTheme, range, customResult);
@@ -51964,6 +52111,11 @@
51964
52111
  oldRowHeights[row] = table.getRowHeight(row);
51965
52112
  }
51966
52113
  }
52114
+ const layoutMap = table.internalProps.layoutMap;
52115
+ if (table.isPivotTable()) {
52116
+ layoutMap.enableUseGetBodyCache();
52117
+ layoutMap.enableUseHeaderPathCache();
52118
+ }
51967
52119
  table.defaultHeaderRowHeight;
51968
52120
  table.defaultHeaderColWidth;
51969
52121
  const isDefaultHeaderHasAuto = table.defaultHeaderRowHeight === 'auto' ||
@@ -52077,7 +52229,7 @@
52077
52229
  }
52078
52230
  let actualHeight = 0;
52079
52231
  for (let row = startRow; row < endRow; row++) {
52080
- actualHeight += update ? newHeights[row] : table.getRowHeight(row);
52232
+ actualHeight += update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row);
52081
52233
  }
52082
52234
  const factor = totalDrawHeight / actualHeight;
52083
52235
  for (let row = startRow; row < endRow; row++) {
@@ -52095,7 +52247,7 @@
52095
52247
  : table.getRowsHeight(startRow, endRow - 2));
52096
52248
  }
52097
52249
  else {
52098
- rowHeight = Math.round((update ? newHeights[row] : table.getRowHeight(row)) * factor);
52250
+ rowHeight = Math.round((update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor);
52099
52251
  }
52100
52252
  if (update) {
52101
52253
  newHeights[row] = rowHeight;
@@ -52139,7 +52291,7 @@
52139
52291
  : table.getRowsHeight(startRow, endRow - 2));
52140
52292
  }
52141
52293
  else {
52142
- rowHeight = Math.round((update ? newHeights[row] : table.getRowHeight(row)) * factor);
52294
+ rowHeight = Math.round((update ? newHeights[row] ?? table.getRowHeight(row) : table.getRowHeight(row)) * factor);
52143
52295
  }
52144
52296
  if (update) {
52145
52297
  newHeights[row] = rowHeight;
@@ -52153,7 +52305,7 @@
52153
52305
  if (update) {
52154
52306
  for (let row = rowStart; row <= rowEnd; row++) {
52155
52307
  const newRowHeight = newHeights[row] ?? table.getRowHeight(row);
52156
- if (newRowHeight !== oldRowHeights[row]) {
52308
+ if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {
52157
52309
  table._setRowHeight(row, newRowHeight);
52158
52310
  }
52159
52311
  }
@@ -52161,24 +52313,28 @@
52161
52313
  (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)) {
52162
52314
  for (let row = 0; row <= table.columnHeaderLevelCount - 1; row++) {
52163
52315
  const newRowHeight = table.getRowHeight(row);
52164
- if (newRowHeight !== oldRowHeights[row]) {
52165
- table.scenegraph.updateRowHeight(row, newRowHeight - oldRowHeights[row], true);
52316
+ if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {
52317
+ table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);
52166
52318
  }
52167
52319
  }
52168
52320
  for (let row = table.rowCount - table.bottomFrozenRowCount; row <= table.rowCount - 1; row++) {
52169
52321
  const newRowHeight = table.getRowHeight(row);
52170
- if (newRowHeight !== oldRowHeights[row]) {
52171
- table.scenegraph.updateRowHeight(row, newRowHeight - oldRowHeights[row], true);
52322
+ if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {
52323
+ table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);
52172
52324
  }
52173
52325
  }
52174
52326
  }
52175
52327
  for (let row = table.scenegraph.proxy.rowStart; row <= table.scenegraph.proxy.rowEnd; row++) {
52176
52328
  const newRowHeight = table.getRowHeight(row);
52177
- if (newRowHeight !== oldRowHeights[row]) {
52178
- table.scenegraph.updateRowHeight(row, newRowHeight - oldRowHeights[row], true);
52329
+ if (newRowHeight !== (oldRowHeights[row] ?? table.getRowHeight(row))) {
52330
+ table.scenegraph.updateRowHeight(row, newRowHeight - (oldRowHeights[row] ?? table.getRowHeight(row)), true);
52179
52331
  }
52180
52332
  }
52181
52333
  }
52334
+ if (table.isPivotTable()) {
52335
+ layoutMap.disableUseGetBodyCache();
52336
+ layoutMap.disableUseHeaderPathCache();
52337
+ }
52182
52338
  }
52183
52339
  function computeRowHeight(row, startCol, endCol, table) {
52184
52340
  let maxHeight;
@@ -52656,6 +52812,9 @@
52656
52812
  const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) ||
52657
52813
  cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
52658
52814
  if (customContainer) {
52815
+ if (scene.table.reactCustomLayout) {
52816
+ scene.table.reactCustomLayout.removeCustomCell(col, row);
52817
+ }
52659
52818
  let customElementsGroup;
52660
52819
  customContainer.removeAllChild();
52661
52820
  cell.removeChild(customContainer);
@@ -52986,6 +53145,9 @@
52986
53145
  const customContainer = cell.getChildByName(CUSTOM_CONTAINER_NAME) ||
52987
53146
  cell.getChildByName(CUSTOM_MERGE_CONTAINER_NAME);
52988
53147
  if (customContainer) {
53148
+ if (scene.table.reactCustomLayout) {
53149
+ scene.table.reactCustomLayout.removeCustomCell(col, row);
53150
+ }
52989
53151
  let customElementsGroup;
52990
53152
  customContainer.removeAllChild();
52991
53153
  cell.removeChild(customContainer);
@@ -56063,6 +56225,11 @@
56063
56225
  if (colStart === 0 && colEnd === table.colCount - 1) {
56064
56226
  table._clearColRangeWidthsMap();
56065
56227
  }
56228
+ const layoutMap = table.internalProps.layoutMap;
56229
+ if (table.isPivotTable()) {
56230
+ layoutMap.enableUseGetBodyCache();
56231
+ layoutMap.enableUseHeaderPathCache();
56232
+ }
56066
56233
  const oldColWidths = [];
56067
56234
  const newWidths = [];
56068
56235
  if (update) {
@@ -56109,7 +56276,7 @@
56109
56276
  let endCol = table.colCount;
56110
56277
  if (table.widthAdaptiveMode === 'only-body') {
56111
56278
  for (let col = 0; col < table.colCount; col++) {
56112
- const colWidth = update ? newWidths[col] : table.getColWidth(col);
56279
+ const colWidth = update ? newWidths[col] ?? table.getColWidth(col) : table.getColWidth(col);
56113
56280
  if (col < table.rowHeaderLevelCount ||
56114
56281
  (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)) {
56115
56282
  actualHeaderWidth += colWidth;
@@ -56126,7 +56293,7 @@
56126
56293
  let actualHeaderWidth = 0;
56127
56294
  let actualWidth = 0;
56128
56295
  for (let col = 0; col < table.colCount; col++) {
56129
- const colWidth = update ? newWidths[col] : table.getColWidth(col);
56296
+ const colWidth = update ? newWidths[col] ?? table.getColWidth(col) : table.getColWidth(col);
56130
56297
  if (col < table.rowHeaderLevelCount ||
56131
56298
  (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)) {
56132
56299
  actualHeaderWidth += colWidth;
@@ -56141,7 +56308,7 @@
56141
56308
  }
56142
56309
  if (update) {
56143
56310
  for (let col = 0; col < table.colCount; col++) {
56144
- const newColWidth = newWidths[col] ?? table.getColWidth(col);
56311
+ const newColWidth = newWidths[col] ?? table.getColWidth(col) ?? table.getColWidth(col);
56145
56312
  if (newColWidth !== oldColWidths[col]) {
56146
56313
  table._setColWidth(col, newColWidth, false, true);
56147
56314
  }
@@ -56155,6 +56322,10 @@
56155
56322
  }
56156
56323
  table.scenegraph.updateContainer(true);
56157
56324
  }
56325
+ if (table.isPivotTable()) {
56326
+ layoutMap.disableUseGetBodyCache();
56327
+ layoutMap.disableUseHeaderPathCache();
56328
+ }
56158
56329
  }
56159
56330
  function computeColWidth(col, startRow, endRow, table, forceCompute = false) {
56160
56331
  let width = getColWidthDefinedWidthResizedWidth(col, table);
@@ -56251,7 +56422,7 @@
56251
56422
  }
56252
56423
  }
56253
56424
  }
56254
- else {
56425
+ else if (table.isListTable()) {
56255
56426
  deltaRow = prepareDeltaRow;
56256
56427
  const define = table.getBodyColumnDefine(col, row);
56257
56428
  if (define?.tree) {
@@ -56412,7 +56583,7 @@
56412
56583
  text = cellValue;
56413
56584
  }
56414
56585
  const lines = breakString(text, table).text;
56415
- if (lines.length >= 1) {
56586
+ if (lines.length >= 1 && !(lines.length === 1 && lines[0] === '')) {
56416
56587
  lines.forEach((line) => {
56417
56588
  const width = table.measureText(line, {
56418
56589
  fontSize,
@@ -56486,7 +56657,7 @@
56486
56657
  const sparklineColumns = [];
56487
56658
  let totalSparklineAbleWidth = 0;
56488
56659
  for (let col = startCol; col < endColPlus1; col++) {
56489
- const width = update ? newWidths[col] : table.getColWidth(col);
56660
+ const width = update ? newWidths[col] ?? table.getColWidth(col) : table.getColWidth(col);
56490
56661
  const maxWidth = table.getMaxColWidth(col);
56491
56662
  const minWidth = table.getMinColWidth(col);
56492
56663
  if (width !== maxWidth && width !== minWidth) {
@@ -56532,13 +56703,13 @@
56532
56703
  totalDrawWidth -
56533
56704
  adaptiveColumns.reduce((acr, cur, index) => {
56534
56705
  if (cur !== col) {
56535
- return acr + (update ? newWidths[cur] : table.getColWidth(cur));
56706
+ return acr + (update ? newWidths[cur] ?? table.getColWidth(col) : table.getColWidth(cur));
56536
56707
  }
56537
56708
  return acr;
56538
56709
  }, 0);
56539
56710
  }
56540
56711
  else {
56541
- colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);
56712
+ colWidth = Math.round((update ? newWidths[col] ?? table.getColWidth(col) : table.getColWidth(col)) * factor);
56542
56713
  }
56543
56714
  if (update) {
56544
56715
  newWidths[col] = table._adjustColWidth(col, colWidth);
@@ -61118,11 +61289,36 @@
61118
61289
  }
61119
61290
  }
61120
61291
  recalculateColWidths() {
61121
- computeColsWidth(this.table, 0, this.table.colCount - 1, true);
61292
+ const table = this.table;
61293
+ if (table.widthMode === 'adaptive' || table.autoFillWidth || table.internalProps.transpose) {
61294
+ computeColsWidth(this.table, 0, this.table.colCount - 1, true);
61295
+ }
61296
+ else {
61297
+ table._clearColRangeWidthsMap();
61298
+ if (table.frozenColCount > 0) {
61299
+ computeColsWidth(this.table, 0, table.frozenColCount - 1, true);
61300
+ }
61301
+ if (table.rightFrozenColCount > 0) {
61302
+ computeColsWidth(this.table, table.rightFrozenColCount, table.colCount - 1, true);
61303
+ }
61304
+ computeColsWidth(table, this.proxy.colStart, this.proxy.colEnd, true);
61305
+ }
61122
61306
  }
61123
61307
  recalculateRowHeights() {
61124
- this.table.internalProps.useOneRowHeightFillAll = false;
61125
- computeRowsHeight(this.table, 0, this.table.rowCount - 1, true, true);
61308
+ const table = this.table;
61309
+ table.internalProps.useOneRowHeightFillAll = false;
61310
+ if (table.heightMode === 'adaptive' || table.autoFillHeight) {
61311
+ computeRowsHeight(this.table, 0, this.table.rowCount - 1, true, true);
61312
+ }
61313
+ else {
61314
+ if (table.frozenRowCount > 0) {
61315
+ computeRowsHeight(this.table, 0, table.frozenRowCount - 1, true, true);
61316
+ }
61317
+ if (table.bottomFrozenRowCount > 0) {
61318
+ computeRowsHeight(this.table, table.bottomFrozenRowCount, table.rowCount - 1, true, true);
61319
+ }
61320
+ computeRowsHeight(table, this.proxy.rowStart, this.proxy.rowEnd, true, true);
61321
+ }
61126
61322
  }
61127
61323
  resize() {
61128
61324
  this.proxy.resize();
@@ -65652,7 +65848,9 @@
65652
65848
  eventManager.dealTableHover();
65653
65849
  });
65654
65850
  handler.on(table.getElement(), 'wheel', (e) => {
65655
- handleWhell(e, stateManager);
65851
+ if (table.eventManager._enableTableScroll) {
65852
+ handleWhell(e, stateManager);
65853
+ }
65656
65854
  });
65657
65855
  handler.on(table.getElement(), 'keydown', (e) => {
65658
65856
  if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {
@@ -66119,7 +66317,10 @@
66119
66317
  }
66120
66318
  }
66121
66319
  const isSelecting = table.stateManager.isSelecting();
66122
- if (eventManager.isDraging && isSelecting && table.stateManager.select.ranges?.length > 0) {
66320
+ if (eventManager._enableTableScroll &&
66321
+ eventManager.isDraging &&
66322
+ isSelecting &&
66323
+ table.stateManager.select.ranges?.length > 0) {
66123
66324
  const drawRange = table.getDrawRange();
66124
66325
  const topFrozenRowHeight = table.getFrozenRowsHeight();
66125
66326
  const bottomFrozenRowHeight = table.getBottomFrozenRowsHeight();
@@ -66257,16 +66458,18 @@
66257
66458
  y: e.changedTouches[0].pageY,
66258
66459
  timestamp: Date.now()
66259
66460
  });
66260
- const deltaX = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x +
66261
- eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x;
66262
- const deltaY = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y +
66263
- eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;
66264
- handleWhell({ deltaX, deltaY }, stateManager);
66265
- if (e.cancelable &&
66266
- (table.internalProps.overscrollBehavior === 'none' ||
66267
- (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManager)) ||
66268
- (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManager)))) {
66269
- e.preventDefault();
66461
+ if (eventManager._enableTableScroll) {
66462
+ const deltaX = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x +
66463
+ eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x;
66464
+ const deltaY = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y +
66465
+ eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;
66466
+ handleWhell({ deltaX, deltaY }, stateManager);
66467
+ if (e.cancelable &&
66468
+ (table.internalProps.overscrollBehavior === 'none' ||
66469
+ (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManager)) ||
66470
+ (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManager)))) {
66471
+ e.preventDefault();
66472
+ }
66270
66473
  }
66271
66474
  }
66272
66475
  };
@@ -66295,14 +66498,16 @@
66295
66498
  y: e.changedTouches[0].pageY,
66296
66499
  timestamp: Date.now()
66297
66500
  });
66298
- const firstPoint = eventManager.touchMovePoints[0];
66299
- const lastPoint = eventManager.touchMovePoints[eventManager.touchMovePoints?.length - 1];
66300
- const vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp);
66301
- const vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);
66302
- eventManager.inertiaScroll.startInertia(vX, vY, 0.95);
66303
- table.eventManager.inertiaScroll.setScrollHandle((dx, dy) => {
66304
- handleWhell({ deltaX: -dx, deltaY: -dy }, table.stateManager);
66305
- });
66501
+ if (eventManager._enableTableScroll) {
66502
+ const firstPoint = eventManager.touchMovePoints[0];
66503
+ const lastPoint = eventManager.touchMovePoints[eventManager.touchMovePoints?.length - 1];
66504
+ const vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp);
66505
+ const vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);
66506
+ eventManager.inertiaScroll.startInertia(vX, vY, 0.95);
66507
+ table.eventManager.inertiaScroll.setScrollHandle((dx, dy) => {
66508
+ handleWhell({ deltaX: -dx, deltaY: -dy }, table.stateManager);
66509
+ });
66510
+ }
66306
66511
  }
66307
66512
  }
66308
66513
  eventManager.isTouchdown = false;
@@ -66478,6 +66683,7 @@
66478
66683
  globalEventListeners = [];
66479
66684
  inertiaScroll;
66480
66685
  bindSparklineHoverEvent;
66686
+ _enableTableScroll = true;
66481
66687
  constructor(table) {
66482
66688
  this.table = table;
66483
66689
  this.handleTextStickBindId = [];
@@ -66829,6 +67035,12 @@
66829
67035
  });
66830
67036
  this.globalEventListeners = [];
66831
67037
  }
67038
+ enableScroll() {
67039
+ this._enableTableScroll = true;
67040
+ }
67041
+ disableScroll() {
67042
+ this._enableTableScroll = false;
67043
+ }
66832
67044
  }
66833
67045
 
66834
67046
  let defaultStyle$1;
@@ -68435,14 +68647,14 @@
68435
68647
  }
68436
68648
  const spec = layout.getRawChartSpec(col + 1, row);
68437
68649
  return merge({
68438
- domain: chartType === 'scatter' ? undefined : Array.from(domain),
68439
- range: chartType === 'scatter' ? domain : undefined,
68650
+ domain: axisOption?.type === 'linear' ? undefined : Array.from(domain),
68651
+ range: axisOption?.type === 'linear' ? domain : undefined,
68440
68652
  title: {
68441
68653
  autoRotate: true
68442
68654
  }
68443
68655
  }, axisOption, {
68444
68656
  orient: 'left',
68445
- type: chartType === 'scatter' ? axisOption?.type ?? 'linear' : 'band',
68657
+ type: axisOption?.type ?? 'band',
68446
68658
  __vtableChartTheme: theme,
68447
68659
  inverse: transformInverse(axisOption, (spec?.direction ?? (chartType === 'scatter' ? 'vertical' : 'horizontal')) === "horizontal")
68448
68660
  });
@@ -68566,11 +68778,11 @@
68566
68778
  return;
68567
68779
  }
68568
68780
  return merge({
68569
- domain: chartType === 'scatter' ? undefined : Array.from(domain),
68570
- range: chartType === 'scatter' ? domain : undefined
68781
+ domain: axisOption?.type === 'linear' ? undefined : Array.from(domain),
68782
+ range: axisOption?.type === 'linear' ? domain : undefined
68571
68783
  }, axisOption, {
68572
68784
  orient: 'bottom',
68573
- type: chartType === 'scatter' ? axisOption?.type ?? 'linear' : 'band',
68785
+ type: axisOption?.type ?? 'band',
68574
68786
  __vtableChartTheme: theme
68575
68787
  });
68576
68788
  }
@@ -68817,6 +69029,44 @@
68817
69029
  function isXAxis$1(orient) {
68818
69030
  return orient === 'bottom' || orient === 'top';
68819
69031
  }
69032
+ function hasLinearAxis(spec, tableAxesConfig, isHorizontal, isThisXAxis) {
69033
+ if (!isArray$1(spec.axes) || spec.axes.length === 0) {
69034
+ return (isHorizontal && isThisXAxis) || (!isHorizontal && !isThisXAxis);
69035
+ }
69036
+ for (let i = 0; i < spec.axes.length; i++) {
69037
+ const axisSpec = spec.axes[i];
69038
+ if (!isHorizontal && isThisXAxis && axisSpec.orient === 'bottom' && axisSpec.type === 'linear') {
69039
+ return true;
69040
+ }
69041
+ if (isHorizontal && isThisXAxis && axisSpec.orient === 'bottom' && axisSpec.type !== 'linear') {
69042
+ return true;
69043
+ }
69044
+ if (!isHorizontal && !isThisXAxis && axisSpec.orient === 'left' && axisSpec.type !== 'linear') {
69045
+ return true;
69046
+ }
69047
+ if (isHorizontal && !isThisXAxis && axisSpec.orient === 'left' && axisSpec.type === 'linear') {
69048
+ return true;
69049
+ }
69050
+ }
69051
+ if (isArray$1(tableAxesConfig) && tableAxesConfig.length > 0) {
69052
+ for (let i = 0; i < tableAxesConfig.length; i++) {
69053
+ const axisSpec = tableAxesConfig[i];
69054
+ if (!isHorizontal && isThisXAxis && axisSpec.orient === 'bottom' && axisSpec.type === 'linear') {
69055
+ return true;
69056
+ }
69057
+ if (isHorizontal && isThisXAxis && axisSpec.orient === 'bottom' && axisSpec.type !== 'linear') {
69058
+ return true;
69059
+ }
69060
+ if (!isHorizontal && !isThisXAxis && axisSpec.orient === 'left' && axisSpec.type !== 'linear') {
69061
+ return true;
69062
+ }
69063
+ if (isHorizontal && !isThisXAxis && axisSpec.orient === 'left' && axisSpec.type === 'linear') {
69064
+ return true;
69065
+ }
69066
+ }
69067
+ }
69068
+ return (isHorizontal && isThisXAxis) || (!isHorizontal && !isThisXAxis);
69069
+ }
68820
69070
 
68821
69071
  class NumberRangeMap {
68822
69072
  data;
@@ -69586,10 +69836,10 @@
69586
69836
  }
69587
69837
  results[id] = cell;
69588
69838
  layoutMap._headerObjects[id] = cell;
69589
- _headerCellIds[row][layoutMap.colIndex] = id;
69590
69839
  for (let r = row - 1; r >= 0; r--) {
69591
69840
  _headerCellIds[r][layoutMap.colIndex] = roots[r];
69592
69841
  }
69842
+ _headerCellIds[row][layoutMap.colIndex] = id;
69593
69843
  if (hd.levelSpan > 1) {
69594
69844
  for (let i = 1; i < hd.levelSpan; i++) {
69595
69845
  if (!_headerCellIds[row + i]) {
@@ -70222,7 +70472,7 @@
70222
70472
  return TABLE_EVENT_TYPE;
70223
70473
  }
70224
70474
  options;
70225
- version = "1.5.2-alpha.0";
70475
+ version = "1.5.2";
70226
70476
  pagination;
70227
70477
  id = `VTable${Date.now()}`;
70228
70478
  headerStyleCache;
@@ -72925,6 +73175,12 @@
72925
73175
  this.scenegraph.component.hideMoveCol();
72926
73176
  this.scenegraph.renderSceneGraph();
72927
73177
  }
73178
+ disableScroll() {
73179
+ this.eventManager.disableScroll();
73180
+ }
73181
+ enableScroll() {
73182
+ this.eventManager.enableScroll();
73183
+ }
72928
73184
  }
72929
73185
 
72930
73186
  var core = /*#__PURE__*/Object.freeze({
@@ -73818,11 +74074,11 @@
73818
74074
  const domain = data[rowPath ?? ''];
73819
74075
  const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'left', layout);
73820
74076
  axes.push(merge({
73821
- domain: chartType === 'scatter' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),
73822
- range: chartType === 'scatter' && !Array.isArray(domain) ? domain : undefined,
74077
+ domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),
74078
+ range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,
73823
74079
  label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }
73824
74080
  }, axisOption, {
73825
- type: chartType === 'scatter' && !Array.isArray(domain) ? axisOption?.type ?? 'linear' : 'band',
74081
+ type: axisOption?.type ?? 'band',
73826
74082
  orient: 'left',
73827
74083
  label: { visible: false },
73828
74084
  domainLine: { visible: false },
@@ -73877,11 +74133,11 @@
73877
74133
  const domain = data?.[colPath ?? ''] ?? [];
73878
74134
  const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'bottom', layout);
73879
74135
  axes.push(merge({
73880
- domain: chartType === 'scatter' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),
73881
- range: chartType === 'scatter' && !Array.isArray(domain) ? domain : undefined,
74136
+ domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),
74137
+ range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,
73882
74138
  label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }
73883
74139
  }, axisOption, {
73884
- type: chartType === 'scatter' && !Array.isArray(domain) ? axisOption?.type ?? 'linear' : 'band',
74140
+ type: axisOption?.type ?? 'band',
73885
74141
  orient: 'bottom',
73886
74142
  visible: true,
73887
74143
  label: { visible: false },
@@ -81199,14 +81455,16 @@
81199
81455
  _chartPaddingOuter;
81200
81456
  _chartItemBandSize;
81201
81457
  _chartPadding;
81202
- _lastCellCol;
81203
- _lastCellRow;
81204
- _lastCellHeaderPath;
81205
81458
  rowSeriesNumberColumn;
81206
81459
  leftRowSeriesNumberColumn;
81207
81460
  leftRowSeriesNumberColumnCount = 0;
81208
81461
  rightRowSeriesNumberColumn;
81209
81462
  rightRowSeriesNumberColumnCount = 0;
81463
+ _useGetBodyCache = false;
81464
+ _getBodyCache = new Map();
81465
+ _useHeaderPathCache = false;
81466
+ _colHeaderPathCache = new Map();
81467
+ _rowHeaderPathCache = new Map();
81210
81468
  constructor(table, dataset, columnDimensionTree, rowDimensionTree) {
81211
81469
  this.sharedVar = table.layoutNodeId;
81212
81470
  this._table = table;
@@ -82457,13 +82715,19 @@
82457
82715
  return this.getHeaderCellAdressById(hd.id);
82458
82716
  }
82459
82717
  getBody(_col, _row) {
82718
+ const cache = this.getBodyWidthCache(_col, _row);
82719
+ if (cache) {
82720
+ return cache;
82721
+ }
82460
82722
  if (this.isSeriesNumber(_col, _row)) {
82461
- return this.getSeriesNumberBody(_col, _row);
82723
+ const body = this.getSeriesNumberBody(_col, _row);
82724
+ this.setBodyWidthCache(_col, _row, body);
82725
+ return body;
82462
82726
  }
82463
82727
  const paths = this.getCellHeaderPaths(_col, _row);
82464
82728
  if (this.indicatorsAsCol) {
82465
82729
  const indicatorKey = paths.colHeaderPaths?.find(colPath => colPath.indicatorKey)?.indicatorKey;
82466
- return isValid$1(indicatorKey)
82730
+ const body = isValid$1(indicatorKey)
82467
82731
  ? this._indicators?.find(indicator => indicator.indicatorKey === indicatorKey) ??
82468
82732
  this._indicators[0] ?? {
82469
82733
  id: '',
@@ -82479,9 +82743,11 @@
82479
82743
  cellType: 'text',
82480
82744
  define: undefined
82481
82745
  };
82746
+ this.setBodyWidthCache(_col, _row, body);
82747
+ return body;
82482
82748
  }
82483
82749
  const indicatorKey = paths.rowHeaderPaths?.find(rowPath => rowPath.indicatorKey)?.indicatorKey;
82484
- return isValid$1(indicatorKey)
82750
+ const body = isValid$1(indicatorKey)
82485
82751
  ? this._indicators?.find(indicator => indicator.indicatorKey === indicatorKey) ??
82486
82752
  this._indicators[0] ?? {
82487
82753
  id: '',
@@ -82497,6 +82763,8 @@
82497
82763
  cellType: 'text',
82498
82764
  define: undefined
82499
82765
  };
82766
+ this.setBodyWidthCache(_col, _row, body);
82767
+ return body;
82500
82768
  }
82501
82769
  getCellRange(col, row) {
82502
82770
  const result = { start: { col, row }, end: { col, row } };
@@ -82628,25 +82896,24 @@
82628
82896
  return undefined;
82629
82897
  }
82630
82898
  getCellHeaderPathsWithTreeNode(col, row) {
82631
- if (col === this._lastCellCol && row === this._lastCellRow) {
82632
- return this._lastCellHeaderPath;
82633
- }
82634
82899
  for (let i = 0; i < this._largeCellRangeCache.length; i++) {
82635
82900
  const range = this._largeCellRangeCache[i];
82636
82901
  if (col >= range.start.col && col <= range.end.col && row >= range.start.row && row <= range.end.row) {
82637
82902
  break;
82638
82903
  }
82639
82904
  }
82905
+ let colPath = this.getColHeaderPathCache(col, row);
82906
+ let rowPath = this.getRowHeaderPathCache(col, row);
82640
82907
  const recordCol = this.getBodyIndexByCol(col);
82641
82908
  const recordRow = this.getBodyIndexByRow(row) + this.currentPageStartIndex;
82642
- let colPath = [];
82643
- let rowPath = [];
82644
- if (row >= 0 && recordCol >= 0) {
82909
+ if (!colPath && row >= 0 && recordCol >= 0) {
82645
82910
  colPath = this.columnDimensionTree.getTreePath(recordCol, this.showHeader && this.showColumnHeader
82646
82911
  ? row - (this.columnHeaderTitle ? 1 : 0)
82647
82912
  : this.columnDimensionTree.totalLevel);
82913
+ this.setColHeaderPathCache(col, row, colPath);
82648
82914
  }
82649
- if (col >= 0 && recordRow >= 0) {
82915
+ if (!rowPath && col >= 0 && recordRow >= 0) {
82916
+ rowPath = [];
82650
82917
  if (this.rowHierarchyType === 'tree') {
82651
82918
  const row_pathIds = this._rowHeaderCellFullPathIds[recordRow];
82652
82919
  let findTree = this.rowDimensionTree;
@@ -82666,7 +82933,7 @@
82666
82933
  }
82667
82934
  }
82668
82935
  const findedRowPath = findTree.getTreePathByCellIds(pathIds);
82669
- rowPath = rowPath.concat(findedRowPath);
82936
+ rowPath.push(...findedRowPath);
82670
82937
  findTree = this._rowHeaderExtensionTree[row_pathIds[level]];
82671
82938
  level++;
82672
82939
  }
@@ -82676,11 +82943,9 @@
82676
82943
  ? col - (this.rowHeaderTitle ? 1 : 0) - this.leftRowSeriesNumberColumnCount
82677
82944
  : this.rowDimensionTree.totalLevel);
82678
82945
  }
82946
+ this.setRowHeaderPathCache(col, row, rowPath);
82679
82947
  }
82680
82948
  const p = { colHeaderPaths: colPath, rowHeaderPaths: rowPath, cellLocation: this.getCellLocation(col, row) };
82681
- this._lastCellHeaderPath = p;
82682
- this._lastCellCol = col;
82683
- this._lastCellRow = row;
82684
82949
  return p;
82685
82950
  }
82686
82951
  getCellHeaderPaths(col, row) {
@@ -83963,6 +84228,75 @@
83963
84228
  }
83964
84229
  }
83965
84230
  }
84231
+ enableUseGetBodyCache() {
84232
+ this._useGetBodyCache = true;
84233
+ this._getBodyCache.clear();
84234
+ }
84235
+ disableUseGetBodyCache() {
84236
+ this._useGetBodyCache = false;
84237
+ this._getBodyCache.clear();
84238
+ }
84239
+ enableUseHeaderPathCache() {
84240
+ this._useHeaderPathCache = true;
84241
+ this._colHeaderPathCache.clear();
84242
+ this._rowHeaderPathCache.clear();
84243
+ }
84244
+ disableUseHeaderPathCache() {
84245
+ this._useHeaderPathCache = false;
84246
+ this._colHeaderPathCache.clear();
84247
+ this._rowHeaderPathCache.clear();
84248
+ }
84249
+ getBodyWidthCache(col, row) {
84250
+ if (!this._useGetBodyCache || this.isHeader(col, row) || this.isSeriesNumber(col, row)) {
84251
+ return undefined;
84252
+ }
84253
+ if (this.indicatorsAsCol && this._getBodyCache.has(col)) {
84254
+ return this._getBodyCache.get(col);
84255
+ }
84256
+ else if (!this.indicatorsAsCol && this._getBodyCache.has(row)) {
84257
+ return this._getBodyCache.get(row);
84258
+ }
84259
+ return undefined;
84260
+ }
84261
+ setBodyWidthCache(col, row, cache) {
84262
+ if (!this._useGetBodyCache || this.isHeader(col, row) || this.isSeriesNumber(col, row)) {
84263
+ return;
84264
+ }
84265
+ if (this.indicatorsAsCol) {
84266
+ this._getBodyCache.set(col, cache);
84267
+ }
84268
+ else {
84269
+ this._getBodyCache.set(row, cache);
84270
+ }
84271
+ }
84272
+ getColHeaderPathCache(col, row) {
84273
+ if (this._useHeaderPathCache &&
84274
+ !this.isHeader(col, row) &&
84275
+ !this.isSeriesNumber(col, row) &&
84276
+ this._colHeaderPathCache.has(col)) {
84277
+ return this._colHeaderPathCache.get(col);
84278
+ }
84279
+ return undefined;
84280
+ }
84281
+ setColHeaderPathCache(col, row, cache) {
84282
+ if (this._useHeaderPathCache && !this.isHeader(col, row) && !this.isSeriesNumber(col, row)) {
84283
+ this._colHeaderPathCache.set(col, cache);
84284
+ }
84285
+ }
84286
+ getRowHeaderPathCache(col, row) {
84287
+ if (this._useHeaderPathCache &&
84288
+ !this.isHeader(col, row) &&
84289
+ !this.isSeriesNumber(col, row) &&
84290
+ this._rowHeaderPathCache.has(row)) {
84291
+ return this._rowHeaderPathCache.get(row);
84292
+ }
84293
+ return undefined;
84294
+ }
84295
+ setRowHeaderPathCache(col, row, cache) {
84296
+ if (this._useHeaderPathCache && !this.isHeader(col, row) && !this.isSeriesNumber(col, row)) {
84297
+ this._rowHeaderPathCache.set(row, cache);
84298
+ }
84299
+ }
83966
84300
  }
83967
84301
  function scaleWholeRangeSize(count, bandwidth, paddingInner, paddingOuter) {
83968
84302
  if (paddingInner === 1) {
@@ -84216,6 +84550,17 @@
84216
84550
  }
84217
84551
  }
84218
84552
 
84553
+ function join(strArr, joinChar) {
84554
+ let str = '';
84555
+ for (let i = 0; i < strArr.length; i++) {
84556
+ str += strArr[i];
84557
+ if (i !== strArr.length - 1) {
84558
+ str += joinChar;
84559
+ }
84560
+ }
84561
+ return str;
84562
+ }
84563
+
84219
84564
  class Dataset {
84220
84565
  dataConfig;
84221
84566
  records;
@@ -84848,7 +85193,7 @@
84848
85193
  }
84849
85194
  });
84850
85195
  }
84851
- flatRowKey = rowKey.join(this.stringJoinChar);
85196
+ flatRowKey = join(rowKey, this.stringJoinChar);
84852
85197
  }
84853
85198
  if (typeof colKey === 'string') {
84854
85199
  flatColKey = colKey;
@@ -84861,7 +85206,7 @@
84861
85206
  }
84862
85207
  });
84863
85208
  }
84864
- flatColKey = colKey.join(this.stringJoinChar);
85209
+ flatColKey = join(colKey, this.stringJoinChar);
84865
85210
  }
84866
85211
  const agg = this.tree[flatRowKey]?.[flatColKey]?.[indicatorIndex];
84867
85212
  if (considerChangedValue && isValid$1(this.changedTree[flatRowKey]?.[flatColKey]?.[indicatorIndex])) {
@@ -87633,7 +87978,7 @@
87633
87978
  collectValuesBy[xField] = {
87634
87979
  by: columnKeys,
87635
87980
  type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,
87636
- range: chartSeries.type === 'scatter' ? true : chartSeries.direction === 'horizontal',
87981
+ range: hasLinearAxis(chartSeries, this._axes, chartSeries.direction === 'horizontal', true),
87637
87982
  sortBy: chartSeries.direction !== 'horizontal'
87638
87983
  ? chartSeries?.data?.fields?.[xField]?.domain ?? indicatorSpec?.data?.fields?.[xField]?.domain
87639
87984
  : undefined
@@ -87644,7 +87989,7 @@
87644
87989
  (chartSeries.stack = true);
87645
87990
  collectValuesBy[yField] = {
87646
87991
  by: rowKeys,
87647
- range: chartSeries.type === 'scatter' ? true : chartSeries.direction !== 'horizontal',
87992
+ range: hasLinearAxis(chartSeries, this._axes, chartSeries.direction === 'horizontal', false),
87648
87993
  sumBy: chartSeries.stack && columnKeys.concat(chartSeries?.xField),
87649
87994
  sortBy: chartSeries.direction === 'horizontal'
87650
87995
  ? chartSeries?.data?.fields?.[yField]?.domain ?? indicatorSpec?.data?.fields?.[yField]?.domain
@@ -87658,7 +88003,7 @@
87658
88003
  collectValuesBy[xField] = {
87659
88004
  by: columnKeys,
87660
88005
  type: indicatorSpec.direction !== 'horizontal' ? 'xField' : undefined,
87661
- range: indicatorSpec.type === 'scatter' ? true : indicatorSpec.direction === 'horizontal',
88006
+ range: hasLinearAxis(indicatorSpec, this._axes, indicatorSpec.direction === 'horizontal', true),
87662
88007
  sortBy: indicatorSpec.direction !== 'horizontal' ? indicatorSpec?.data?.fields?.[xField]?.domain : undefined
87663
88008
  };
87664
88009
  indicatorSpec?.stack !== false &&
@@ -87690,7 +88035,7 @@
87690
88035
  collectValuesBy[yField] = {
87691
88036
  by: rowKeys,
87692
88037
  type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,
87693
- range: chartSeries.type === 'scatter' ? true : chartSeries.direction !== 'horizontal',
88038
+ range: hasLinearAxis(chartSeries, this._axes, chartSeries.direction === 'horizontal', false),
87694
88039
  sortBy: chartSeries.direction === 'horizontal'
87695
88040
  ? chartSeries?.data?.fields?.[yField]?.domain ?? indicatorSpec?.data?.fields?.[yField]?.domain
87696
88041
  : undefined
@@ -87701,7 +88046,7 @@
87701
88046
  (chartSeries.stack = true);
87702
88047
  collectValuesBy[xField] = {
87703
88048
  by: columnKeys,
87704
- range: chartSeries.type === 'scatter' ? true : chartSeries.direction === 'horizontal',
88049
+ range: hasLinearAxis(chartSeries, this._axes, chartSeries.direction === 'horizontal', true),
87705
88050
  sumBy: chartSeries.stack && rowKeys.concat(chartSeries?.yField),
87706
88051
  sortBy: chartSeries.direction !== 'horizontal'
87707
88052
  ? chartSeries?.data?.fields?.[xField]?.domain ?? indicatorSpec?.data?.fields?.[xField]?.domain
@@ -87715,7 +88060,7 @@
87715
88060
  collectValuesBy[yField] = {
87716
88061
  by: rowKeys,
87717
88062
  type: indicatorSpec.direction === 'horizontal' ? 'yField' : undefined,
87718
- range: indicatorSpec.type === 'scatter' ? true : indicatorSpec.direction !== 'horizontal',
88063
+ range: hasLinearAxis(indicatorSpec, this._axes, indicatorSpec.direction === 'horizontal', false),
87719
88064
  sortBy: indicatorSpec.direction === 'horizontal' ? indicatorSpec?.data?.fields?.[yField]?.domain : undefined
87720
88065
  };
87721
88066
  indicatorSpec?.stack !== false &&
@@ -87724,7 +88069,7 @@
87724
88069
  const xField = indicatorSpec.xField;
87725
88070
  collectValuesBy[xField] = {
87726
88071
  by: columnKeys,
87727
- range: indicatorSpec.type === 'scatter' ? true : indicatorSpec.direction === 'horizontal',
88072
+ range: hasLinearAxis(indicatorSpec, this._axes, indicatorSpec.direction === 'horizontal', true),
87728
88073
  sumBy: indicatorSpec.stack && rowKeys.concat(indicatorSpec?.yField),
87729
88074
  sortBy: indicatorSpec.direction !== 'horizontal' ? indicatorSpec?.data?.fields?.[xField]?.domain : undefined,
87730
88075
  extendRange: parseMarkLineGetExtendRange(indicatorSpec.markLine)
@@ -88615,7 +88960,7 @@
88615
88960
  }
88616
88961
 
88617
88962
  registerForVrender();
88618
- const version = "1.5.2-alpha.0";
88963
+ const version = "1.5.2";
88619
88964
  function getIcons() {
88620
88965
  return get$2();
88621
88966
  }