@visactor/vtable-calendar 1.13.3-alpha.5 → 1.13.3-alpha.6

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.
@@ -31797,7 +31797,7 @@
31797
31797
  const range = getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout);
31798
31798
  for (let col = range.start.col; col <= range.end.col; col++) for (let row = range.start.row; row <= range.end.row; row++) table.scenegraph.updateCellContent(col, row);
31799
31799
  }
31800
- "autoWidth" === table.widthMode && table.scenegraph.recalculateColWidths(), "autoHeight" === table.heightMode && table.scenegraph.recalculateRowHeights(), table.scenegraph.renderSceneGraph();
31800
+ "autoWidth" === table.widthMode && table.scenegraph.recalculateColWidths(), table.isAutoRowHeight() && table.scenegraph.recalculateRowHeights(), table.scenegraph.renderSceneGraph();
31801
31801
  }
31802
31802
  getCustomLayoutFunc(col, row) {
31803
31803
  var _a;
@@ -33626,7 +33626,7 @@
33626
33626
  col: col,
33627
33627
  row: row
33628
33628
  } = reactGroup;
33629
- table.reactCustomLayout.removeCustomCell(col, row);
33629
+ isNumber$2(col) && isNumber$2(row) && table.reactCustomLayout.removeCustomCell(col, row);
33630
33630
  }
33631
33631
  }
33632
33632
  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);
@@ -33996,7 +33996,7 @@
33996
33996
  const layoutMap = table.internalProps.layoutMap;
33997
33997
  table.isPivotTable() && (layoutMap.enableUseGetBodyCache(), layoutMap.enableUseHeaderPathCache()), table.defaultHeaderRowHeight, table.defaultHeaderColWidth;
33998
33998
  const isDefaultHeaderHasAuto = "auto" === table.defaultHeaderRowHeight || isArray$1(table.defaultHeaderRowHeight) && table.defaultHeaderRowHeight.some(item => "auto" === item),
33999
- isAllRowsAuto = "autoHeight" === table.heightMode || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode,
33999
+ isAllRowsAuto = table.isAutoRowHeight() || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode,
34000
34000
  isDefaultRowHeightIsAuto = "auto" === table.options.defaultRowHeight;
34001
34001
  if (isAllRowsAuto || isDefaultHeaderHasAuto || isDefaultRowHeightIsAuto) {
34002
34002
  rowStart = null != rowStart ? rowStart : 0, rowEnd = null != rowEnd ? rowEnd : table.rowCount - 1, (0 === rowStart && rowEnd === table.rowCount - 1 || isClearRowRangeHeightsMap) && table._clearRowRangeHeightsMap();
@@ -34088,12 +34088,16 @@
34088
34088
  }
34089
34089
  function computeRowHeight(row, startCol, endCol, table) {
34090
34090
  var _a;
34091
- if (!("autoHeight" === table.heightMode || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode) && "auto" !== table.getDefaultRowHeight(row)) return table.getDefaultRowHeight(row);
34091
+ if (!(table.isAutoRowHeight() || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode) && "auto" !== table.getDefaultRowHeight(row)) return table.getDefaultRowHeight(row);
34092
34092
  let maxHeight;
34093
- if (table.options.customComputeRowHeight) return table.options.customComputeRowHeight({
34094
- row: row,
34095
- table: table
34096
- });
34093
+ if (table.options.customComputeRowHeight) {
34094
+ const customRowHeight = table.options.customComputeRowHeight({
34095
+ row: row,
34096
+ table: table
34097
+ });
34098
+ if ("number" == typeof customRowHeight) return customRowHeight;
34099
+ if ("auto" !== customRowHeight) return table.getDefaultRowHeight(row);
34100
+ }
34097
34101
  if (table.isPivotChart() && row >= table.columnHeaderLevelCount && row < table.rowCount - table.bottomFrozenRowCount) if (table.internalProps.layoutMap.indicatorsAsCol) {
34098
34102
  const optimunHeight = table.internalProps.layoutMap.getOptimunHeightForChart(row);
34099
34103
  if (optimunHeight > 0) return optimunHeight;
@@ -34128,7 +34132,7 @@
34128
34132
  layoutMap: layoutMap
34129
34133
  } = table.internalProps,
34130
34134
  row = table.columnHeaderLevelCount;
34131
- if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34135
+ if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34132
34136
  for (let col = 0; col < table.colCount; col++) {
34133
34137
  const cellDefine = layoutMap.getBody(col, row);
34134
34138
  if ("radio" === cellDefine.cellType) return !1;
@@ -34143,7 +34147,7 @@
34143
34147
  const {
34144
34148
  layoutMap: layoutMap
34145
34149
  } = table.internalProps;
34146
- if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak) && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34150
+ if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak) && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34147
34151
  const cellDefine = layoutMap.getBody(table.rowHeaderLevelCount, row);
34148
34152
  if ("function" == typeof cellDefine.style || "function" == typeof cellDefine.icon || (null === (_a = cellDefine.define) || void 0 === _a ? void 0 : _a.customRender) || (null === (_b = cellDefine.define) || void 0 === _b ? void 0 : _b.customLayout) || "function" == typeof (null === (_c = cellDefine.define) || void 0 === _c ? void 0 : _c.icon)) return !1;
34149
34153
  const cellStyle = table._getCellStyle(table.rowHeaderLevelCount, row);
@@ -34154,7 +34158,7 @@
34154
34158
  const {
34155
34159
  layoutMap: layoutMap
34156
34160
  } = table.internalProps;
34157
- if (table.internalProps.autoWrapText && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34161
+ if (table.internalProps.autoWrapText && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34158
34162
  const headerDefine = layoutMap.getHeader(table.rowHeaderLevelCount, row);
34159
34163
  if ("function" == typeof headerDefine.style || "function" == typeof headerDefine.icons || (null === (_a = headerDefine.define) || void 0 === _a ? void 0 : _a.headerCustomRender) || (null === (_b = headerDefine.define) || void 0 === _b ? void 0 : _b.headerCustomLayout) || "function" == typeof (null === (_c = headerDefine.define) || void 0 === _c ? void 0 : _c.icon)) return !1;
34160
34164
  const headerStyle = table._getCellStyle(table.rowHeaderLevelCount, row);
@@ -34206,7 +34210,7 @@
34206
34210
  }
34207
34211
  }
34208
34212
  function computeTextHeight(col, row, cellType, table) {
34209
- var _a, _b, _c;
34213
+ var _a, _b, _c, _d;
34210
34214
  let maxHeight = 0;
34211
34215
  const cellValue = table.getCellValue(col, row),
34212
34216
  actStyle = table._getCellStyle(col, row);
@@ -34241,7 +34245,9 @@
34241
34245
  lineHeight = null !== (_b = getProp("lineHeight", actStyle, col, row, table)) && void 0 !== _b ? _b : fontSize,
34242
34246
  fontFamily = getProp("fontFamily", actStyle, col, row, table),
34243
34247
  autoWrapText = getProp("autoWrapText", actStyle, col, row, table),
34244
- lineClamp = getProp("lineClamp", actStyle, col, row, table);
34248
+ lineClamp = getProp("lineClamp", actStyle, col, row, table),
34249
+ underline = getProp("underline", actStyle, col, row, table),
34250
+ underlineOffset = null !== (_c = getProp("underlineOffset", actStyle, col, row, table)) && void 0 !== _c ? _c : 0;
34245
34251
  let text;
34246
34252
  if ("text" !== cellType && "link" !== cellType && "progressbar" !== cellType && "checkbox" !== cellType && "radio" !== cellType) maxHeight = lineHeight;else if ("checkbox" === cellType) maxHeight = computeCheckboxCellHeight(cellValue, col, row, endCol, actStyle, autoWrapText, iconWidth, fontSize, fontStyle, fontWeight, fontFamily, lineHeight, lineClamp, padding, table);else if ("radio" === cellType) maxHeight = computeRadioCellHeight(cellValue, col, row, endCol, actStyle, autoWrapText, iconWidth, fontSize, fontStyle, fontWeight, fontFamily, lineHeight, lineClamp, padding, table);else {
34247
34253
  text = cellValue;
@@ -34283,8 +34289,8 @@
34283
34289
  whiteSpace: 1 !== lines.length || autoWrapText ? "normal" : "no-wrap",
34284
34290
  lineClamp: lineClamp
34285
34291
  });
34286
- maxHeight = bounds.height() || ("number" == typeof lineHeight ? lineHeight : fontSize);
34287
- } else maxHeight = (null === (_c = table.options.customConfig) || void 0 === _c ? void 0 : _c.multilinesForXTable) ? lineHeight : lines.length * lineHeight;
34292
+ maxHeight = (bounds.height() || ("number" == typeof lineHeight ? lineHeight : fontSize)) + (underline ? underlineOffset : 0);
34293
+ } else maxHeight = (null === (_d = table.options.customConfig) || void 0 === _d ? void 0 : _d.multilinesForXTable) ? lineHeight : lines.length * lineHeight;
34288
34294
  }
34289
34295
  return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;
34290
34296
  }
@@ -35998,7 +36004,7 @@
35998
36004
  }
35999
36005
  }
36000
36006
  if (!updateSpec) if (null == axes || axes.forEach((axis, index) => {
36001
- var _a, _b, _c, _d;
36007
+ var _a, _b, _c, _d, _e;
36002
36008
  "band" === axis.type ? chartInstance.updateModelSpec({
36003
36009
  type: "axes",
36004
36010
  index: index
@@ -36009,7 +36015,10 @@
36009
36015
  index: index
36010
36016
  }, {
36011
36017
  min: null !== (_b = null === (_a = axis.range) || void 0 === _a ? void 0 : _a.min) && void 0 !== _b ? _b : 0,
36012
- max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0
36018
+ max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0,
36019
+ tick: {
36020
+ tickMode: null === (_e = axis.tick) || void 0 === _e ? void 0 : _e.tickMode
36021
+ }
36013
36022
  }, !0);
36014
36023
  }), null === (_b = null === (_a = table.internalProps.layoutMap) || void 0 === _a ? void 0 : _a.updateDataStateToActiveChartInstance) || void 0 === _b || _b.call(_a, chartInstance), "string" == typeof dataId) chartInstance.updateDataSync(dataId, null != data ? data : []);else {
36015
36024
  const dataBatch = [];
@@ -37430,7 +37439,7 @@
37430
37439
  rightBottomCornerGroup: rightBottomCornerGroup
37431
37440
  } = table.scenegraph;
37432
37441
  let distCol, distRow, distColForCompute, distRowForCompute;
37433
- proxy.setParamsForRow(), proxy.setParamsForColumn(), "adaptive" === table.widthMode || table.options.autoWrapText && ("adaptive" === table.heightMode || "autoHeight" === table.heightMode) ? (distColForCompute = table.colCount - 1, distCol = Math.min(proxy.firstScreenColLimit, table.colCount - 1)) : distCol = Math.min(proxy.firstScreenColLimit, table.colCount - 1), "adaptive" === table.heightMode ? (distRowForCompute = table.rowCount - 1, distRow = Math.min(proxy.firstScreenRowLimit, table.rowCount - 1)) : distRow = Math.min(proxy.firstScreenRowLimit, table.rowCount - 1), 0 === table.internalProps._widthResizedColMap.size && computeColsWidth(table, 0, null != distColForCompute ? distColForCompute : distCol), 0 === table.internalProps._heightResizedRowMap.size && computeRowsHeight(table, 0, null != distRowForCompute ? distRowForCompute : distRow), distCol < table.colCount - table.rightFrozenColCount && computeColsWidth(table, table.colCount - table.rightFrozenColCount, table.colCount - 1), distRow < table.rowCount - table.bottomFrozenRowCount && computeRowsHeight(table, table.rowCount - table.bottomFrozenRowCount, table.rowCount - 1), table.scenegraph.colHeaderGroup.setAttribute("x", table.getFrozenColsWidth()), table.scenegraph.rowHeaderGroup.setAttribute("y", table.getFrozenRowsHeight()), table.scenegraph.bottomFrozenGroup.setAttribute("x", table.getFrozenColsWidth()), table.scenegraph.rightFrozenGroup.setAttribute("y", table.getFrozenRowsHeight()), table.scenegraph.bodyGroup.setAttributes({
37442
+ proxy.setParamsForRow(), proxy.setParamsForColumn(), "adaptive" === table.widthMode || table.options.autoWrapText && ("adaptive" === table.heightMode || table.isAutoRowHeight()) ? (distColForCompute = table.colCount - 1, distCol = Math.min(proxy.firstScreenColLimit, table.colCount - 1)) : distCol = Math.min(proxy.firstScreenColLimit, table.colCount - 1), "adaptive" === table.heightMode ? (distRowForCompute = table.rowCount - 1, distRow = Math.min(proxy.firstScreenRowLimit, table.rowCount - 1)) : distRow = Math.min(proxy.firstScreenRowLimit, table.rowCount - 1), 0 === table.internalProps._widthResizedColMap.size && computeColsWidth(table, 0, null != distColForCompute ? distColForCompute : distCol), 0 === table.internalProps._heightResizedRowMap.size && computeRowsHeight(table, 0, null != distRowForCompute ? distRowForCompute : distRow), distCol < table.colCount - table.rightFrozenColCount && computeColsWidth(table, table.colCount - table.rightFrozenColCount, table.colCount - 1), distRow < table.rowCount - table.bottomFrozenRowCount && computeRowsHeight(table, table.rowCount - table.bottomFrozenRowCount, table.rowCount - 1), table.scenegraph.colHeaderGroup.setAttribute("x", table.getFrozenColsWidth()), table.scenegraph.rowHeaderGroup.setAttribute("y", table.getFrozenRowsHeight()), table.scenegraph.bottomFrozenGroup.setAttribute("x", table.getFrozenColsWidth()), table.scenegraph.rightFrozenGroup.setAttribute("y", table.getFrozenRowsHeight()), table.scenegraph.bodyGroup.setAttributes({
37434
37443
  x: table.getFrozenColsWidth(),
37435
37444
  y: table.getFrozenRowsHeight()
37436
37445
  }), createColGroup(cornerHeaderGroup, xOrigin, yOrigin, 0, table.frozenColCount - 1, 0, table.frozenRowCount - 1, table.isListTable() ? "columnHeader" : "cornerHeader", table), distCol - table.rightFrozenColCount >= table.frozenColCount && createColGroup(colHeaderGroup, xOrigin, yOrigin, table.frozenColCount, distCol - table.rightFrozenColCount, 0, table.frozenRowCount - 1, "columnHeader", table), table.frozenColCount > 0 && (table.leftRowSeriesNumberCount > 0 && createColGroup(rowHeaderGroup, xOrigin, yOrigin, 0, table.leftRowSeriesNumberCount - 1, table.frozenRowCount, distRow - table.bottomFrozenRowCount, "rowHeader", table), table.rowHeaderLevelCount > 0 && createColGroup(rowHeaderGroup, xOrigin, yOrigin, table.leftRowSeriesNumberCount, table.leftRowSeriesNumberCount + table.rowHeaderLevelCount - 1, table.frozenRowCount, distRow - table.bottomFrozenRowCount, "rowHeader", table), table.frozenColCount > table.rowHeaderLevelCount + table.leftRowSeriesNumberCount && createColGroup(rowHeaderGroup, xOrigin, yOrigin, table.rowHeaderLevelCount + table.leftRowSeriesNumberCount, table.frozenColCount - 1, table.frozenRowCount, distRow - table.bottomFrozenRowCount, "body", table)), table.bottomFrozenRowCount > 0 && (table.frozenColCount > 0 && (table.leftRowSeriesNumberCount > 0 && createColGroup(leftBottomCornerGroup, xOrigin, yOrigin, 0, table.leftRowSeriesNumberCount - 1, table.rowCount - 1 - table.bottomFrozenRowCount + 1, table.rowCount - 1, "rowHeader", table), table.rowHeaderLevelCount > 0 && createColGroup(leftBottomCornerGroup, xOrigin, yOrigin, table.leftRowSeriesNumberCount, table.leftRowSeriesNumberCount + table.rowHeaderLevelCount - 1, table.rowCount - 1 - table.bottomFrozenRowCount + 1, table.rowCount - 1, "rowHeader", table), table.frozenColCount > table.rowHeaderLevelCount + table.leftRowSeriesNumberCount && createColGroup(leftBottomCornerGroup, xOrigin, yOrigin, table.rowHeaderLevelCount + table.leftRowSeriesNumberCount, table.frozenColCount - 1, table.rowCount - 1 - table.bottomFrozenRowCount + 1, table.rowCount - 1, "body", table)), distCol - table.rightFrozenColCount >= table.frozenColCount && createColGroup(bottomFrozenGroup, xOrigin, yOrigin, table.frozenColCount, distCol - table.rightFrozenColCount, table.rowCount - 1 - table.bottomFrozenRowCount + 1, table.rowCount - 1, table.isPivotChart() ? "rowHeader" : "body", table)), table.rightFrozenColCount > 0 && (createColGroup(rightTopCornerGroup, xOrigin, yOrigin, table.colCount - 1 - table.rightFrozenColCount + 1, table.colCount - 1, 0, table.frozenRowCount - 1, "columnHeader", table), createColGroup(rightFrozenGroup, xOrigin, yOrigin, table.colCount - 1 - table.rightFrozenColCount + 1, table.colCount - 1, table.frozenRowCount, distRow - table.bottomFrozenRowCount, table.isPivotChart() ? "rowHeader" : "body", table)), table.bottomFrozenRowCount > 0 && table.rightFrozenColCount > 0 && createColGroup(rightBottomCornerGroup, xOrigin, yOrigin, table.colCount - 1 - table.rightFrozenColCount + 1, table.colCount - 1, table.rowCount - 1 - table.bottomFrozenRowCount + 1, table.rowCount - 1, "body", table), distCol - table.rightFrozenColCount >= table.frozenColCount && createColGroup(bodyGroup, xOrigin, yOrigin, table.frozenColCount, distCol - table.rightFrozenColCount, table.frozenRowCount, distRow - table.bottomFrozenRowCount, "body", table), bodyGroup.firstChild || colHeaderGroup.firstChild || cornerHeaderGroup.firstChild || rowHeaderGroup.firstChild ? (proxy.currentRow = null !== (_d = null !== (_b = null === (_a = bodyGroup.firstChild) || void 0 === _a ? void 0 : _a.rowNumber) && void 0 !== _b ? _b : null === (_c = rowHeaderGroup.firstChild) || void 0 === _c ? void 0 : _c.rowNumber) && void 0 !== _d ? _d : proxy.totalRow, proxy.rowEnd = proxy.currentRow, proxy.rowUpdatePos = proxy.rowEnd + 1, proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), proxy.currentCol = null !== (_m = null !== (_k = null !== (_h = null !== (_f = null === (_e = bodyGroup.lastChild) || void 0 === _e ? void 0 : _e.col) && void 0 !== _f ? _f : null === (_g = colHeaderGroup.lastChild) || void 0 === _g ? void 0 : _g.col) && void 0 !== _h ? _h : null === (_j = rowHeaderGroup.lastChild) || void 0 === _j ? void 0 : _j.col) && void 0 !== _k ? _k : null === (_l = cornerHeaderGroup.lastChild) || void 0 === _l ? void 0 : _l.col) && void 0 !== _m ? _m : proxy.totalCol, proxy.colEnd = proxy.currentCol, proxy.colUpdatePos = proxy.colEnd + 1, proxy.referenceCol = proxy.colStart + Math.floor((proxy.colEnd - proxy.colStart) / 2), proxy.progress()) : (proxy.currentRow = proxy.totalRow, proxy.rowEnd = proxy.currentRow, proxy.rowUpdatePos = proxy.rowEnd + 1, proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), proxy.currentCol = proxy.totalCol, proxy.colEnd = proxy.currentCol, proxy.colUpdatePos = proxy.colEnd + 1, proxy.referenceCol = proxy.colStart + Math.floor((proxy.colEnd - proxy.colStart) / 2));
@@ -37702,20 +37711,20 @@
37702
37711
  distStartRow = "up" === direction ? proxy.rowEnd + 1 : proxy.rowStart - count,
37703
37712
  distEndRow = "up" === direction ? proxy.rowEnd + count : proxy.rowStart - 1;
37704
37713
  let syncTopRow, syncBottomRow;
37705
- if ("autoHeight" === proxy.table.heightMode) syncTopRow = distStartRow, syncBottomRow = distEndRow;else {
37714
+ if (proxy.table.isAutoRowHeight()) syncTopRow = distStartRow, syncBottomRow = distEndRow;else {
37706
37715
  syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1);
37707
37716
  }
37708
37717
  computeRowsHeight(proxy.table, syncTopRow, syncBottomRow, !1), updatePartRowPosition(startRow, endRow, direction, proxy), proxy.rowStart = "up" === direction ? proxy.rowStart + count : proxy.rowStart - count, proxy.rowEnd = "up" === direction ? proxy.rowEnd + count : proxy.rowEnd - count;
37709
37718
  const sync = updateRowContent(syncTopRow, syncBottomRow, proxy, !0);
37710
- "autoHeight" === proxy.table.heightMode && (updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0), updateAutoRow(0, proxy.table.frozenColCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0), updateAutoRow(proxy.table.colCount - proxy.table.rightFrozenColCount, proxy.table.colCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0)), proxy.currentRow = "up" === direction ? proxy.currentRow + count : proxy.currentRow - count, proxy.totalRow = Math.max(0, Math.min(proxy.bodyBottomRow, "up" === direction ? proxy.totalRow + count : proxy.totalRow - count, proxy.table.rowCount - 1)), proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), "autoHeight" === proxy.table.heightMode && sync ? proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, proxy.rowEnd + 1) : proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, distStartRow), proxy.rowUpdateDirection = direction, proxy.table.scenegraph.updateNextFrame(), yield proxy.progress();
37719
+ proxy.table.isAutoRowHeight() && (updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0), updateAutoRow(0, proxy.table.frozenColCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0), updateAutoRow(proxy.table.colCount - proxy.table.rightFrozenColCount, proxy.table.colCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", !0)), proxy.currentRow = "up" === direction ? proxy.currentRow + count : proxy.currentRow - count, proxy.totalRow = Math.max(0, Math.min(proxy.bodyBottomRow, "up" === direction ? proxy.totalRow + count : proxy.totalRow - count, proxy.table.rowCount - 1)), proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), proxy.table.isAutoRowHeight() && sync ? proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, proxy.rowEnd + 1) : proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, distStartRow), proxy.rowUpdateDirection = direction, proxy.table.scenegraph.updateNextFrame(), yield proxy.progress();
37711
37720
  } else {
37712
37721
  const distStartRow = "up" === direction ? proxy.rowStart + count : proxy.rowStart - count,
37713
37722
  distEndRow = Math.min(proxy.table.rowCount - 1, "up" === direction ? proxy.rowEnd + count : proxy.rowEnd - count),
37714
37723
  distStartRowY = proxy.table.getRowsHeight(proxy.bodyTopRow, distStartRow - 1);
37715
37724
  let syncTopRow, syncBottomRow;
37716
- "autoHeight" === proxy.table.heightMode ? (syncTopRow = distStartRow, syncBottomRow = distEndRow) : (syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1)), computeRowsHeight(proxy.table, syncTopRow, syncBottomRow, !1), updateAllRowPosition(distStartRowY, count, direction, proxy), proxy.rowStart = distStartRow, proxy.rowEnd = distEndRow;
37725
+ proxy.table.isAutoRowHeight() ? (syncTopRow = distStartRow, syncBottomRow = distEndRow) : (syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1)), computeRowsHeight(proxy.table, syncTopRow, syncBottomRow, !1), updateAllRowPosition(distStartRowY, count, direction, proxy), proxy.rowStart = distStartRow, proxy.rowEnd = distEndRow;
37717
37726
  const sync = updateRowContent(syncTopRow, syncBottomRow, proxy, !0);
37718
- "autoHeight" === proxy.table.heightMode && (updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), updateAutoRow(0, proxy.table.frozenColCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), updateAutoRow(proxy.table.colCount - proxy.table.rightFrozenColCount, proxy.table.colCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up")), proxy.currentRow = "up" === direction ? proxy.currentRow + count : proxy.currentRow - count, proxy.totalRow = Math.max(0, Math.min(proxy.bodyBottomRow, "up" === direction ? proxy.totalRow + count : proxy.totalRow - count, proxy.table.rowCount - 1)), proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), "autoHeight" === proxy.table.heightMode && sync ? proxy.rowUpdatePos = proxy.rowEnd + 1 : proxy.rowUpdatePos = proxy.rowStart, proxy.rowUpdateDirection = distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", proxy.table.scenegraph.updateNextFrame(), yield proxy.progress();
37727
+ proxy.table.isAutoRowHeight() && (updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), updateAutoRow(0, proxy.table.frozenColCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), updateAutoRow(proxy.table.colCount - proxy.table.rightFrozenColCount, proxy.table.colCount - 1, syncTopRow, syncBottomRow, proxy.table, distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up")), proxy.currentRow = "up" === direction ? proxy.currentRow + count : proxy.currentRow - count, proxy.totalRow = Math.max(0, Math.min(proxy.bodyBottomRow, "up" === direction ? proxy.totalRow + count : proxy.totalRow - count, proxy.table.rowCount - 1)), proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2), proxy.table.isAutoRowHeight() && sync ? proxy.rowUpdatePos = proxy.rowEnd + 1 : proxy.rowUpdatePos = proxy.rowStart, proxy.rowUpdateDirection = distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", proxy.table.scenegraph.updateNextFrame(), yield proxy.progress();
37719
37728
  }
37720
37729
  });
37721
37730
  }
@@ -37819,7 +37828,7 @@
37819
37828
  "group" === colGroup.type && (colGroup.needUpdate = !0, null == colGroup || colGroup.forEachChildren(cellGroup => {
37820
37829
  cellGroup.needUpdate = !0;
37821
37830
  }));
37822
- }), "autoHeight" === proxy.table.heightMode ? (syncTopRow = proxy.rowStart, syncBottomRow = proxy.rowEnd) : (syncTopRow = Math.max(proxy.bodyTopRow, proxy.screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, proxy.screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1));
37831
+ }), proxy.table.isAutoRowHeight() ? (syncTopRow = proxy.rowStart, syncBottomRow = proxy.rowEnd) : (syncTopRow = Math.max(proxy.bodyTopRow, proxy.screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, proxy.screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1));
37823
37832
  const oldBodyHeight = proxy.table.getAllRowsHeight();
37824
37833
  computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);
37825
37834
  const newBodyHeight = proxy.table.getAllRowsHeight();
@@ -37841,7 +37850,7 @@
37841
37850
  for (let row = proxy.rowStart; row <= proxy.rowEnd; row++) proxy.table.scenegraph.updateCellContent(col, row);
37842
37851
  for (let row = proxy.table.rowCount - proxy.table.bottomFrozenRowCount; row < proxy.table.rowCount; row++) proxy.table.scenegraph.updateCellContent(col, row);
37843
37852
  }
37844
- updateRowContent(syncTopRow, syncBottomRow, proxy), "autoHeight" === proxy.table.heightMode && updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, proxy.rowEnd > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), proxy.rowUpdatePos = proxy.rowStart, proxy.rowUpdateDirection = proxy.rowEnd > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", proxy.table.scenegraph.updateNextFrame(), "autoHeight" !== proxy.table.heightMode && (yield proxy.progress());
37853
+ updateRowContent(syncTopRow, syncBottomRow, proxy), proxy.table.isAutoRowHeight() && updateAutoRow(proxy.bodyLeftCol, proxy.bodyRightCol, syncTopRow, syncBottomRow, proxy.table, proxy.rowEnd > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up"), proxy.rowUpdatePos = proxy.rowStart, proxy.rowUpdateDirection = proxy.rowEnd > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? "down" : "up", proxy.table.scenegraph.updateNextFrame(), proxy.table.isAutoRowHeight() || (yield proxy.progress());
37845
37854
  });
37846
37855
  }
37847
37856
 
@@ -38134,7 +38143,7 @@
38134
38143
  };
38135
38144
  class SceneProxy {
38136
38145
  constructor(table) {
38137
- this.isRelease = !1, this.mode = "column", this.rowLimit = 200, this.currentRow = 0, this.rowStart = 0, this.rowEnd = 0, this.referenceRow = 0, this.screenTopRow = 0, this.deltaY = 0, this.deltaHeight = 0, this.colLimit = 100, this.screenLeftCol = 0, this.deltaX = 0, this.deltaWidth = 0, this.cellCache = new Map(), this.table = table, this.table.isPivotChart() ? (this.rowLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight)), this.colLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameWidth / table.defaultColWidth))) : "autoHeight" === this.table.heightMode ? this.rowLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight)) : ("autoWidth" === this.table.widthMode || (this.rowLimit = Math.max(200, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight))), this.colLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameWidth / table.defaultColWidth))), this.table.internalProps.transpose ? this.mode = "row" : this.table.isPivotTable() && (this.mode = "pivot"), this.table.options.maintainedDataCount && (this.rowLimit = this.table.options.maintainedDataCount);
38146
+ this.isRelease = !1, this.mode = "column", this.rowLimit = 200, this.currentRow = 0, this.rowStart = 0, this.rowEnd = 0, this.referenceRow = 0, this.screenTopRow = 0, this.deltaY = 0, this.deltaHeight = 0, this.colLimit = 100, this.screenLeftCol = 0, this.deltaX = 0, this.deltaWidth = 0, this.cellCache = new Map(), this.table = table, this.table.isPivotChart() ? (this.rowLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight)), this.colLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameWidth / table.defaultColWidth))) : this.table.isAutoRowHeight() ? this.rowLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight)) : ("autoWidth" === this.table.widthMode || (this.rowLimit = Math.max(200, Math.ceil(2 * table.tableNoFrameHeight / table.defaultRowHeight))), this.colLimit = Math.max(100, Math.ceil(2 * table.tableNoFrameWidth / table.defaultColWidth))), this.table.internalProps.transpose ? this.mode = "row" : this.table.isPivotTable() && (this.mode = "pivot"), this.table.options.maintainedDataCount && (this.rowLimit = this.table.options.maintainedDataCount);
38138
38147
  }
38139
38148
  get bodyLeftCol() {
38140
38149
  return this.table.frozenColCount;
@@ -38270,7 +38279,7 @@
38270
38279
  const yLimitTop = this.table.getRowsHeight(this.bodyTopRow, this.bodyTopRow + (this.rowEnd - this.rowStart + 1)) / 2,
38271
38280
  yLimitBottom = this.table.getAllRowsHeight() - yLimitTop,
38272
38281
  screenTop = this.table.getTargetRowAt(y + this.table.scenegraph.colHeaderGroup.attribute.height);
38273
- screenTop && (this.screenTopRow = screenTop.row), y < yLimitTop && this.rowStart === this.bodyTopRow || y > yLimitBottom && this.rowEnd === this.bodyBottomRow ? (this.updateDeltaY(y), this.updateBody(y - this.deltaY)) : this.table.scenegraph.bodyGroup.firstChild && 0 !== this.table.scenegraph.bodyGroup.firstChild.childrenCount || this.table.scenegraph.rowHeaderGroup.firstChild && 0 !== this.table.scenegraph.rowHeaderGroup.firstChild.childrenCount ? this.dynamicSetY(y, screenTop, isEnd) : (this.updateDeltaY(y), this.updateBody(y - this.deltaY));
38282
+ screenTop && (this.screenTopRow = screenTop.row), y < yLimitTop && this.rowStart === this.bodyTopRow || y > yLimitBottom && this.rowEnd === this.bodyBottomRow ? (this.updateDeltaY(y), this.updateBody(y - this.deltaY)) : this.table.scenegraph.bodyGroup.firstChild && "group" === this.table.scenegraph.bodyGroup.firstChild.type && 0 !== this.table.scenegraph.bodyGroup.firstChild.childrenCount || this.table.scenegraph.rowHeaderGroup.firstChild && "group" === this.table.scenegraph.rowHeaderGroup.firstChild.type && 0 !== this.table.scenegraph.rowHeaderGroup.firstChild.childrenCount ? this.dynamicSetY(y, screenTop, isEnd) : (this.updateDeltaY(y), this.updateBody(y - this.deltaY));
38274
38283
  });
38275
38284
  }
38276
38285
  setX(x) {
@@ -38279,7 +38288,7 @@
38279
38288
  const xLimitLeft = this.table.getColsWidth(this.bodyLeftCol, this.bodyLeftCol + (this.colEnd - this.colStart + 1)) / 2,
38280
38289
  xLimitRight = this.table.getAllColsWidth() - xLimitLeft,
38281
38290
  screenLeft = this.table.getTargetColAt(x + this.table.scenegraph.rowHeaderGroup.attribute.width);
38282
- screenLeft && (this.screenLeftCol = screenLeft.col), x < xLimitLeft && this.colStart === this.bodyLeftCol || x > xLimitRight && this.colEnd === this.bodyRightCol || this.table.scenegraph.bodyGroup.firstChild && 0 === this.table.scenegraph.bodyGroup.firstChild.childrenCount ? (this.updateDeltaX(x), this.table.scenegraph.setBodyAndColHeaderX(-x + this.deltaX)) : this.dynamicSetX(x, screenLeft, isEnd);
38291
+ screenLeft && (this.screenLeftCol = screenLeft.col), x < xLimitLeft && this.colStart === this.bodyLeftCol || x > xLimitRight && this.colEnd === this.bodyRightCol || this.table.scenegraph.bodyGroup.firstChild && "group" === this.table.scenegraph.bodyGroup.firstChild.type && 0 === this.table.scenegraph.bodyGroup.firstChild.childrenCount ? (this.updateDeltaX(x), this.table.scenegraph.setBodyAndColHeaderX(-x + this.deltaX)) : this.dynamicSetX(x, screenLeft, isEnd);
38283
38292
  });
38284
38293
  }
38285
38294
  dynamicSetY(y, screenTop) {
@@ -38304,17 +38313,17 @@
38304
38313
  }
38305
38314
  updateCellGroups(count) {
38306
38315
  const distRow = Math.min(this.bodyBottomRow, this.rowUpdatePos + count);
38307
- "autoHeight" === this.table.heightMode && computeRowsHeight(this.table, this.rowUpdatePos, distRow, !1), updateRowContent(this.rowUpdatePos, distRow, this), "autoHeight" === this.table.heightMode && (updateAutoRow(this.bodyLeftCol, this.bodyRightCol, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0), updateAutoRow(0, this.table.frozenColCount - 1, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0), updateAutoRow(this.table.colCount - this.table.rightFrozenColCount, this.table.colCount - 1, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0)), this.rowUpdatePos = distRow + 1;
38316
+ this.table.isAutoRowHeight() && computeRowsHeight(this.table, this.rowUpdatePos, distRow, !1), updateRowContent(this.rowUpdatePos, distRow, this), this.table.isAutoRowHeight() && (updateAutoRow(this.bodyLeftCol, this.bodyRightCol, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0), updateAutoRow(0, this.table.frozenColCount - 1, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0), updateAutoRow(this.table.colCount - this.table.rightFrozenColCount, this.table.colCount - 1, this.rowUpdatePos, distRow, this.table, this.rowUpdateDirection, !0)), this.rowUpdatePos = distRow + 1;
38308
38317
  }
38309
38318
  updateBottomFrozenCellGroups() {
38310
38319
  const startRow = this.table.rowCount - this.table.bottomFrozenRowCount,
38311
38320
  endRow = this.table.rowCount - 1;
38312
- "autoHeight" === this.table.heightMode && computeRowsHeight(this.table, startRow, endRow, !1), updateRowContent(startRow, endRow, this), "autoHeight" === this.table.heightMode && (updateAutoRow(this.bodyLeftCol, this.bodyRightCol, startRow, endRow, this.table, this.rowUpdateDirection), updateAutoRow(0, this.table.frozenColCount - 1, startRow, endRow, this.table, this.rowUpdateDirection), updateAutoRow(this.table.colCount - this.table.rightFrozenColCount, this.table.colCount - 1, startRow, endRow, this.table, this.rowUpdateDirection));
38321
+ this.table.isAutoRowHeight() && computeRowsHeight(this.table, startRow, endRow, !1), updateRowContent(startRow, endRow, this), this.table.isAutoRowHeight() && (updateAutoRow(this.bodyLeftCol, this.bodyRightCol, startRow, endRow, this.table, this.rowUpdateDirection), updateAutoRow(0, this.table.frozenColCount - 1, startRow, endRow, this.table, this.rowUpdateDirection), updateAutoRow(this.table.colCount - this.table.rightFrozenColCount, this.table.colCount - 1, startRow, endRow, this.table, this.rowUpdateDirection));
38313
38322
  }
38314
38323
  updateRightFrozenCellGroups() {
38315
38324
  const startCol = this.table.colCount - this.table.rightFrozenColCount,
38316
38325
  endCol = this.table.colCount - 1;
38317
- "autoWidth" === this.table.widthMode && computeColsWidth(this.table, startCol, endCol, !1), updateColContent(startCol, endCol, this), "autoHeight" === this.table.heightMode && updateAutoColumn(startCol, endCol, this.table, this.colUpdateDirection);
38326
+ "autoWidth" === this.table.widthMode && computeColsWidth(this.table, startCol, endCol, !1), updateColContent(startCol, endCol, this), this.table.isAutoRowHeight() && updateAutoColumn(startCol, endCol, this.table, this.colUpdateDirection);
38318
38327
  }
38319
38328
  updateColCellGroupsAsync() {
38320
38329
  return __awaiter$1(this, void 0, void 0, function* () {
@@ -39023,22 +39032,22 @@
39023
39032
  beforeCell.mergeStartRow && beforeCell.mergeEndRow && beforeCell.mergeEndRow > beforeRow && (addNeedUpdateTag({
39024
39033
  start: {
39025
39034
  row: beforeCell.mergeStartRow,
39026
- col: "autoHeight" === scene.table.heightMode ? 0 : beforeCell.mergeStartCol
39035
+ col: scene.table.isAutoRowHeight() ? 0 : beforeCell.mergeStartCol
39027
39036
  },
39028
39037
  end: {
39029
39038
  row: beforeCell.mergeEndRow,
39030
- col: "autoHeight" === scene.table.heightMode ? scene.table.colCount - 1 : beforeCell.mergeEndCol
39039
+ col: scene.table.isAutoRowHeight() ? scene.table.colCount - 1 : beforeCell.mergeEndCol
39031
39040
  }
39032
39041
  }, scene), row = beforeCell.mergeStartRow);
39033
39042
  const afterCell = scene.highPerformanceGetCell(col, afterRow);
39034
39043
  afterCell.mergeStartRow && afterCell.mergeEndRow && afterCell.mergeStartRow < afterRow && (addNeedUpdateTag({
39035
39044
  start: {
39036
39045
  row: afterCell.mergeStartRow,
39037
- col: "autoHeight" === scene.table.heightMode ? 0 : afterCell.mergeStartCol
39046
+ col: scene.table.isAutoRowHeight() ? 0 : afterCell.mergeStartCol
39038
39047
  },
39039
39048
  end: {
39040
39049
  row: afterCell.mergeEndRow,
39041
- col: "autoHeight" === scene.table.heightMode ? scene.table.colCount - 1 : afterCell.mergeEndCol
39050
+ col: scene.table.isAutoRowHeight() ? scene.table.colCount - 1 : afterCell.mergeEndCol
39042
39051
  }
39043
39052
  }, scene), row = afterCell.mergeStartRow), isValid$1(row) && (updateRow = isValid$1(updateRow) ? Math.min(updateRow, row) : row);
39044
39053
  }
@@ -40642,7 +40651,7 @@
40642
40651
  const addRows = deduplication$1(addCells.map(cell => cell.row)).sort((a, b) => a - b),
40643
40652
  updateRows = deduplication$1(updateCells.map(cell => cell.row)).sort((a, b) => a - b),
40644
40653
  isNotFillHeight = this.table.getAllRowsHeight() - [...addRows, ...updateRows].reduce((tolHeight, rowNumber) => tolHeight + this.table.getRowHeight(rowNumber), 0) <= this.table.tableNoFrameHeight;
40645
- if (updateRow(removeCells, addCells, updateCells, this.table, skipUpdateProxy), recalculateColWidths && this.recalculateColWidths(), "adaptive" === this.table.heightMode || this.table.autoFillHeight && (this.table.getAllRowsHeight() <= this.table.tableNoFrameHeight || isNotFillHeight)) this.table.scenegraph.recalculateRowHeights();else if ("autoHeight" === this.table.heightMode) for (let i = 0; i < updateRows.length; i++) {
40654
+ if (updateRow(removeCells, addCells, updateCells, this.table, skipUpdateProxy), recalculateColWidths && this.recalculateColWidths(), "adaptive" === this.table.heightMode || this.table.autoFillHeight && (this.table.getAllRowsHeight() <= this.table.tableNoFrameHeight || isNotFillHeight)) this.table.scenegraph.recalculateRowHeights();else if (this.table.isAutoRowHeight()) for (let i = 0; i < updateRows.length; i++) {
40646
40655
  const row = updateRows[i],
40647
40656
  oldHeight = this.table.getRowHeight(row),
40648
40657
  newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
@@ -41544,8 +41553,10 @@
41544
41553
  function setCheckedState(col, row, field, checked, state) {
41545
41554
  const recordIndex = state.table.getRecordShowIndexByCell(col, row);
41546
41555
  if (recordIndex >= 0) {
41547
- const dataIndex = state.table.dataSource.getIndexKey(recordIndex);
41548
- state.checkedState[dataIndex] || (state.checkedState[dataIndex] = {}), state.checkedState[dataIndex][field] = checked;
41556
+ const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
41557
+ state.checkedState.has(dataIndex) ? state.checkedState.get(dataIndex)[field] = checked : state.checkedState.set(dataIndex, {
41558
+ [field]: checked
41559
+ });
41549
41560
  }
41550
41561
  }
41551
41562
  function setHeaderCheckedState(field, checked, state) {
@@ -41559,21 +41570,23 @@
41559
41570
  if (state.table.isHeader(col, row)) {
41560
41571
  if (isValid$1(state.headerCheckedState[field])) return state.headerCheckedState[field];
41561
41572
  if ("function" == typeof checked) return;
41562
- if (isValid$1(checked)) state.headerCheckedState[field] = checked;else if ((null === (_a = state.checkedState) || void 0 === _a ? void 0 : _a.length) > 0) {
41573
+ if (isValid$1(checked)) state.headerCheckedState[field] = checked;else if ((null === (_a = state.checkedState) || void 0 === _a ? void 0 : _a.size) > 0) {
41563
41574
  return state.updateHeaderCheckedState(field, col, row);
41564
41575
  }
41565
41576
  return state.headerCheckedState[field];
41566
41577
  }
41567
41578
  const recordIndex = state.table.getRecordShowIndexByCell(col, row);
41568
41579
  if (recordIndex >= 0) {
41569
- const dataIndex = state.table.dataSource.getIndexKey(recordIndex);
41570
- if (isValid$1(null === (_b = state.checkedState[dataIndex]) || void 0 === _b ? void 0 : _b[field])) return state.checkedState[dataIndex][field];
41571
- state.checkedState[dataIndex] || (state.checkedState[dataIndex] = {}), state.checkedState[dataIndex][field] = checked;
41580
+ const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
41581
+ if (isValid$1(null === (_b = state.checkedState.get(dataIndex)) || void 0 === _b ? void 0 : _b[field])) return state.checkedState.get(dataIndex)[field];
41582
+ state.checkedState.has(dataIndex) ? state.checkedState.get(dataIndex)[field] = checked : state.checkedState.set(dataIndex, {
41583
+ [field]: checked
41584
+ });
41572
41585
  }
41573
41586
  return checked;
41574
41587
  }
41575
41588
  function initCheckedState(records, state) {
41576
- state.checkedState = [], state.headerCheckedState = {}, state.radioState = {};
41589
+ state.checkedState.clear(), state.headerCheckedState = {}, state.radioState = {};
41577
41590
  let isNeedInitHeaderCheckedStateFromRecord = !1;
41578
41591
  if (state._checkboxCellTypeFields = [], state._headerCheckFuncs = {}, state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {
41579
41592
  if ("checkbox" === hd.headerType) {
@@ -41584,46 +41597,29 @@
41584
41597
  for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = !1, state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);
41585
41598
  isNeedInitHeaderCheckedStateFromRecord = !0;
41586
41599
  }
41587
- isNeedInitHeaderCheckedStateFromRecord && (null == records || records.forEach((record, index) => {
41588
- state._checkboxCellTypeFields.forEach(field => {
41589
- const value = record[field];
41590
- let isChecked;
41591
- if (isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value), null == isChecked) {
41592
- const headerCheckFunc = state._headerCheckFuncs[field];
41593
- if (headerCheckFunc) {
41594
- const cellAddr = state.table.getCellAddrByFieldRecord(field, index);
41595
- isChecked = getOrApply(headerCheckFunc, {
41596
- col: cellAddr.col,
41597
- row: cellAddr.row,
41598
- table: state.table,
41599
- context: null,
41600
- value: value
41601
- });
41602
- }
41603
- }
41604
- state.checkedState[index] || (state.checkedState[index] = {}), state.checkedState[index][field] = isChecked;
41605
- });
41606
- }));
41600
+ isNeedInitHeaderCheckedStateFromRecord && initRecordCheckState(state);
41607
41601
  }
41608
41602
  function updateHeaderCheckedState(field, state, col, row) {
41609
- const allChecked = state.checkedState.every((check_state, index) => {
41610
- const tableIndex = state.table.getTableIndexByRecordIndex(index);
41611
- return !!(state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex)) || !0 === (null == check_state ? void 0 : check_state[field]);
41612
- });
41613
- if (allChecked) return state.headerCheckedState[field] = !0, allChecked;
41614
- if (state.checkedState.every((check_state, index) => {
41615
- const tableIndex = state.table.getTableIndexByRecordIndex(index);
41616
- return !!(state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex)) || !1 === (null == check_state ? void 0 : check_state[field]);
41617
- })) return state.headerCheckedState[field] = !1, !1;
41618
- return !!state.checkedState.find(check_state => !0 === (null == check_state ? void 0 : check_state[field])) && (state.headerCheckedState[field] = "indeterminate", "indeterminate");
41603
+ let allChecked = !0,
41604
+ allUnChecked = !0,
41605
+ hasChecked = !1;
41606
+ return state.checkedState.forEach((check_state, index) => {
41607
+ index = index.includes(",") ? index.split(",").map(item => Number(item)) : Number(index);
41608
+ const tableIndex = state.table.getTableIndexByRecordIndex(index),
41609
+ mergeCell = state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex),
41610
+ data = state.table.dataSource.get(index);
41611
+ mergeCell || data.vtableMerge || (!0 !== (null == check_state ? void 0 : check_state[field]) ? allChecked = !1 : (allUnChecked = !1, hasChecked = !0));
41612
+ }), allChecked ? (state.headerCheckedState[field] = !0, allChecked) : allUnChecked ? (state.headerCheckedState[field] = !1, !1) : !!hasChecked && (state.headerCheckedState[field] = "indeterminate", "indeterminate");
41619
41613
  }
41620
41614
  function initLeftRecordsCheckState(records, state) {
41621
- for (let index = state.checkedState.length; index < records.length; index++) {
41615
+ for (let index = state.checkedState.size; index < records.length; index++) {
41622
41616
  const record = records[index];
41623
41617
  state._checkboxCellTypeFields.forEach(field => {
41624
41618
  const value = record[field];
41625
41619
  let isChecked;
41626
- isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value), state.checkedState[index] || (state.checkedState[index] = {}), state.checkedState[index][field] = isChecked;
41620
+ isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value);
41621
+ const dataIndex = index.toString();
41622
+ state.checkedState.get(dataIndex) || state.checkedState.set(dataIndex, {}), state.checkedState.get(dataIndex)[field] = isChecked;
41627
41623
  });
41628
41624
  }
41629
41625
  }
@@ -41656,14 +41652,35 @@
41656
41652
  checkedState: checkedState,
41657
41653
  table: table
41658
41654
  } = state;
41659
- if (table.internalProps.transpose ? (sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0), targetIndex = table.getRecordShowIndexByCell(targetIndex, 0)) : (sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex), targetIndex = table.getRecordShowIndexByCell(0, targetIndex)), sourceIndex > targetIndex) {
41660
- const sourceRecord = checkedState[sourceIndex];
41661
- for (let i = sourceIndex; i > targetIndex; i--) checkedState[i] = checkedState[i - 1];
41662
- checkedState[targetIndex] = sourceRecord;
41655
+ let source, target;
41656
+ if (table.internalProps.transpose ? (sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0), targetIndex = table.getRecordShowIndexByCell(targetIndex, 0)) : (source = table.getRecordIndexByCell(0, sourceIndex), target = table.getRecordIndexByCell(0, targetIndex)), isNumber$2(source) && isNumber$2(target)) {
41657
+ if (sourceIndex > targetIndex) {
41658
+ const sourceRecord = checkedState.get(sourceIndex.toString());
41659
+ for (let i = sourceIndex; i > targetIndex; i--) checkedState.set(i.toString(), checkedState.get((i - 1).toString()));
41660
+ checkedState.set(targetIndex.toString(), sourceRecord);
41661
+ } else if (sourceIndex < targetIndex) {
41662
+ const sourceRecord = checkedState.get(sourceIndex.toString());
41663
+ for (let i = sourceIndex; i < targetIndex; i++) checkedState.set(i.toString(), checkedState.get((i + 1).toString()));
41664
+ checkedState.set(targetIndex.toString(), sourceRecord);
41665
+ }
41666
+ } else if (isArray$1(source) && isArray$1(target)) if ((sourceIndex = source[source.length - 1]) > (targetIndex = target[target.length - 1])) {
41667
+ const sourceRecord = checkedState.get(source.toString());
41668
+ for (let i = sourceIndex; i > targetIndex; i--) {
41669
+ const now = [...source];
41670
+ now[now.length - 1] = i;
41671
+ const last = [...source];
41672
+ last[last.length - 1] = i - 1, checkedState.set(now.toString(), checkedState.get(last.toString()));
41673
+ }
41674
+ checkedState.set(target.toString(), sourceRecord);
41663
41675
  } else if (sourceIndex < targetIndex) {
41664
- const sourceRecord = checkedState[sourceIndex];
41665
- for (let i = sourceIndex; i < targetIndex; i++) checkedState[i] = checkedState[i + 1];
41666
- checkedState[targetIndex] = sourceRecord;
41676
+ const sourceRecord = checkedState.get(source.toString());
41677
+ for (let i = sourceIndex; i < targetIndex; i++) {
41678
+ const now = [...source];
41679
+ now[now.length - 1] = i;
41680
+ const next = [...source];
41681
+ next[next.length - 1] = i + 1, checkedState.set(now.toString(), checkedState.get(next.toString()));
41682
+ }
41683
+ checkedState.set(target.toString(), sourceRecord);
41667
41684
  }
41668
41685
  }
41669
41686
  function getGroupCheckboxState(table) {
@@ -41675,10 +41692,37 @@
41675
41692
  const {
41676
41693
  vtableOriginIndex: vtableOriginIndex
41677
41694
  } = dataSource.getRawRecord(indexArr);
41678
- result[vtableOriginIndex] = table.stateManager.checkedState[indexArr];
41695
+ result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());
41679
41696
  }
41680
41697
  }), result;
41681
41698
  }
41699
+ function initRecordCheckState(state) {
41700
+ const table = state.table,
41701
+ start = table.internalProps.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount,
41702
+ end = table.internalProps.transpose ? table.colCount : table.rowCount;
41703
+ for (let index = 0; index + start < end; index++) {
41704
+ const record = table.dataSource.get(index);
41705
+ state._checkboxCellTypeFields.forEach(field => {
41706
+ const value = record[field];
41707
+ let isChecked;
41708
+ if (isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value), null == isChecked) {
41709
+ const headerCheckFunc = state._headerCheckFuncs[field];
41710
+ if (headerCheckFunc) {
41711
+ const cellAddr = state.table.getCellAddrByFieldRecord(field, index);
41712
+ isChecked = getOrApply(headerCheckFunc, {
41713
+ col: cellAddr.col,
41714
+ row: cellAddr.row,
41715
+ table: state.table,
41716
+ context: null,
41717
+ value: value
41718
+ });
41719
+ }
41720
+ }
41721
+ const dataIndex = state.table.dataSource.getIndexKey(index).toString();
41722
+ state.checkedState.get(dataIndex) || state.checkedState.set(dataIndex, {}), state.checkedState.get(dataIndex)[field] = isChecked;
41723
+ });
41724
+ }
41725
+ }
41682
41726
 
41683
41727
  function updateResizeRow(xInTable, yInTable, state) {
41684
41728
  xInTable = Math.ceil(xInTable), yInTable = Math.ceil(yInTable);
@@ -41766,7 +41810,7 @@
41766
41810
 
41767
41811
  class StateManager {
41768
41812
  constructor(table) {
41769
- this.fastScrolling = !1, this.checkedState = [], this.headerCheckedState = {}, this._checkboxCellTypeFields = [], this._headerCheckFuncs = {}, this.radioState = {}, this.resetInteractionState = debounce(state => {
41813
+ this.fastScrolling = !1, this.checkedState = new Map(), this.headerCheckedState = {}, this._checkboxCellTypeFields = [], this._headerCheckFuncs = {}, this.radioState = {}, this.resetInteractionState = debounce(state => {
41770
41814
  this.updateInteractionState(null != state ? state : InteractionState.default);
41771
41815
  }, 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this);
41772
41816
  }
@@ -42446,7 +42490,7 @@
42446
42490
  return syncRadioState(col, row, field, radioType, indexInCell, isChecked, this);
42447
42491
  }
42448
42492
  changeCheckboxAndRadioOrder(sourceIndex, targetIndex) {
42449
- this.checkedState.length && changeCheckboxOrder(sourceIndex, targetIndex, this), this.radioState.length && changeRadioOrder(sourceIndex, targetIndex, this);
42493
+ this.checkedState.size && changeCheckboxOrder(sourceIndex, targetIndex, this), this.radioState.length && changeRadioOrder(sourceIndex, targetIndex, this);
42450
42494
  }
42451
42495
  setCustomSelectRanges(customSelectRanges) {
42452
42496
  deletaCustomSelectRanges(this), addCustomSelectRanges(customSelectRanges, this);
@@ -42471,11 +42515,12 @@
42471
42515
  linkDetect = !1 !== columnDefine.linkDetect;
42472
42516
  let url;
42473
42517
  if (templateLink) {
42474
- const rowData = table.getCellOriginRecord(col, row),
42475
- data = Object.assign({
42476
- __value: cellValue,
42477
- __dataValue: cellOriginValue
42478
- }, rowData);
42518
+ const rowData = table.getCellOriginRecord(col, row);
42519
+ if (rowData.vtableMerge) return;
42520
+ const data = Object.assign({
42521
+ __value: cellValue,
42522
+ __dataValue: cellOriginValue
42523
+ }, rowData);
42479
42524
  if (isFunction$1(templateLink)) url = templateLink(data, col, row, table);else {
42480
42525
  const re = /\{\s*(\S+?)\s*\}/g;
42481
42526
  url = templateLink.replace(re, (matchs, key) => data[key]);
@@ -42484,6 +42529,7 @@
42484
42529
  if (!regUrl.test(cellValue)) return;
42485
42530
  url = cellValue;
42486
42531
  } else url = cellValue;
42532
+ if (!url) return;
42487
42533
  const linkTarget = columnDefine.linkTarget,
42488
42534
  linkWindowFeatures = columnDefine.linkWindowFeatures;
42489
42535
  window.open(url, linkTarget, linkWindowFeatures);
@@ -43079,7 +43125,7 @@
43079
43125
  table.fireListeners(TABLE_EVENT_TYPE.RADIO_STATE_CHANGE, cellsEvent), table.scenegraph.updateNextFrame();
43080
43126
  }), table.scenegraph.stage.addEventListener("wheel", e => {
43081
43127
  var _a;
43082
- e.path.find(node => "table" === node.role) && (null === (_a = table.editorManager) || void 0 === _a || _a.completeEdit(), table.eventManager._enableTableScroll && handleWhell(e, stateManager));
43128
+ e.path.find(node => "legend" === node.name) || (null === (_a = table.editorManager) || void 0 === _a || _a.completeEdit(), table.eventManager._enableTableScroll && handleWhell(e, stateManager));
43083
43129
  });
43084
43130
  }
43085
43131
  function bindGesture(eventManager) {
@@ -45790,6 +45836,25 @@
45790
45836
  };
45791
45837
  }
45792
45838
 
45839
+ function getZeroAlignTickAlignTicks(targetRange, col, row, index, position, layout) {
45840
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
45841
+ {
45842
+ axisOption: axisOption,
45843
+ isZeroAlign: isZeroAlign
45844
+ } = getAxisOption(col, row, 0 === index ? "right" : "left", layout),
45845
+ {
45846
+ ticks: ticks
45847
+ } = getAxisDomainRangeAndLabels(targetRange.min, targetRange.max, axisOption, isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight);
45848
+ return ticks;
45849
+ }
45850
+ function getTickModeFunction(targetTicks, targetRange, range, indicatorIndex) {
45851
+ return 0 !== indicatorIndex && targetTicks ? () => targetTicks.map(value => {
45852
+ const percent = (value - targetRange.min) / (targetRange.max - targetRange.min),
45853
+ tick = (range.max - range.min) * percent + range.min;
45854
+ return Math.round(100 * tick) / 100;
45855
+ }) : void 0;
45856
+ }
45857
+
45793
45858
  function getAxisConfigInPivotChart(col, row, layout) {
45794
45859
  var _a, _b, _c, _d, _e, _f, _g;
45795
45860
  if (layout._table.isPivotChart()) if (layout.indicatorsAsCol) {
@@ -45802,19 +45867,11 @@
45802
45867
  range: range,
45803
45868
  ticks: ticks,
45804
45869
  axisOption: axisOption,
45805
- isZeroAlign: isZeroAlign,
45870
+ targetTicks: targetTicks,
45871
+ targetRange: targetRange,
45872
+ index: index,
45806
45873
  theme: theme
45807
45874
  } = axisRange;
45808
- if (isZeroAlign) {
45809
- const subAxisRange = getRange("bottom", col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 0, layout);
45810
- if (subAxisRange) {
45811
- const {
45812
- range: subRange
45813
- } = subAxisRange,
45814
- align = getNewRangeToAlign(range, subRange);
45815
- align && (range.min = align.range1[0], range.max = align.range1[1]);
45816
- }
45817
- }
45818
45875
  return isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min, range.min > 0 && (axisOption.zero = !1)), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max, range.max < 0 && (axisOption.zero = !1)), merge({
45819
45876
  range: range
45820
45877
  }, axisOption, {
@@ -45823,13 +45880,16 @@
45823
45880
  label: {
45824
45881
  flush: !0
45825
45882
  },
45883
+ tick: {
45884
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45885
+ },
45826
45886
  __ticksForVTable: ticks,
45827
45887
  __vtableChartTheme: theme,
45828
45888
  __vtablePadding: padding
45829
45889
  });
45830
45890
  }
45831
45891
  if (row === layout.rowCount - layout.bottomFrozenRowCount && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
45832
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
45892
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
45833
45893
  let indicatorInfo = null;
45834
45894
  null == indicatorKeys || indicatorKeys.forEach(key => {
45835
45895
  const info = layout.getIndicatorInfo(key);
@@ -45843,19 +45903,11 @@
45843
45903
  range: range,
45844
45904
  ticks: ticks,
45845
45905
  axisOption: axisOption,
45846
- isZeroAlign: isZeroAlign,
45906
+ index: index,
45907
+ targetTicks: targetTicks,
45908
+ targetRange: targetRange,
45847
45909
  theme: theme
45848
45910
  } = axisRange;
45849
- if (isZeroAlign) {
45850
- const subAxisRange = getRange("top", col, row - 1, col, row, col, row, 1, layout);
45851
- if (subAxisRange) {
45852
- const {
45853
- range: subRange
45854
- } = subAxisRange,
45855
- align = getNewRangeToAlign(range, subRange);
45856
- align && (range.min = align.range1[0], range.max = align.range1[1]);
45857
- }
45858
- }
45859
45911
  return isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min, range.min > 0 && (axisOption.zero = !1)), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max, range.max < 0 && (axisOption.zero = !1)), merge({
45860
45912
  title: {
45861
45913
  visible: !0,
@@ -45868,6 +45920,9 @@
45868
45920
  label: {
45869
45921
  flush: !0
45870
45922
  },
45923
+ tick: {
45924
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45925
+ },
45871
45926
  __ticksForVTable: ticks,
45872
45927
  __vtableChartTheme: theme,
45873
45928
  __vtablePadding: padding
@@ -45904,7 +45959,7 @@
45904
45959
  }
45905
45960
  } else {
45906
45961
  if (col === layout.rowHeaderLevelCount - 1 && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
45907
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
45962
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
45908
45963
  let indicatorInfo = null;
45909
45964
  null == indicatorKeys || indicatorKeys.forEach(key => {
45910
45965
  const info = layout.getIndicatorInfo(key);
@@ -45918,19 +45973,11 @@
45918
45973
  range: range,
45919
45974
  ticks: ticks,
45920
45975
  axisOption: axisOption,
45921
- isZeroAlign: isZeroAlign,
45976
+ index: index,
45977
+ targetTicks: targetTicks,
45978
+ targetRange: targetRange,
45922
45979
  theme: theme
45923
45980
  } = axisRange;
45924
- if (isZeroAlign) {
45925
- const subAxisRange = getRange("right", col + 1, row, col, row, col, row, 1, layout);
45926
- if (subAxisRange) {
45927
- const {
45928
- range: subRange
45929
- } = subAxisRange,
45930
- align = getNewRangeToAlign(range, subRange);
45931
- align && (range.min = align.range1[0], range.max = align.range1[1]);
45932
- }
45933
- }
45934
45981
  return isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min, range.min > 0 && (axisOption.zero = !1)), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max, range.max < 0 && (axisOption.zero = !1)), merge({
45935
45982
  title: {
45936
45983
  visible: !0,
@@ -45944,6 +45991,9 @@
45944
45991
  label: {
45945
45992
  flush: !0
45946
45993
  },
45994
+ tick: {
45995
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45996
+ },
45947
45997
  __ticksForVTable: ticks,
45948
45998
  __vtableChartTheme: theme,
45949
45999
  __vtablePadding: padding
@@ -45958,19 +46008,11 @@
45958
46008
  range: range,
45959
46009
  ticks: ticks,
45960
46010
  axisOption: axisOption,
45961
- isZeroAlign: isZeroAlign,
46011
+ index: index,
46012
+ targetTicks: targetTicks,
46013
+ targetRange: targetRange,
45962
46014
  theme: theme
45963
46015
  } = axisRange;
45964
- if (isZeroAlign) {
45965
- const subAxisRange = getRange("left", col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 0, layout);
45966
- if (subAxisRange) {
45967
- const {
45968
- range: subRange
45969
- } = subAxisRange,
45970
- align = getNewRangeToAlign(range, subRange);
45971
- align && (range.min = align.range1[0], range.max = align.range1[1]);
45972
- }
45973
- }
45974
46016
  return isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min, range.min > 0 && (axisOption.zero = !1)), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max, range.max < 0 && (axisOption.zero = !1)), merge({
45975
46017
  range: range,
45976
46018
  title: {
@@ -45982,6 +46024,9 @@
45982
46024
  label: {
45983
46025
  flush: !0
45984
46026
  },
46027
+ tick: {
46028
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
46029
+ },
45985
46030
  __ticksForVTable: ticks,
45986
46031
  __vtableChartTheme: theme,
45987
46032
  __vtablePadding: padding
@@ -46028,23 +46073,35 @@
46028
46073
  seriesId: seriesId
46029
46074
  } = axisOption;
46030
46075
  let seriesIndice, seriesSpec;
46031
- return isValid$1(seriesId) && isArray$1(spec.series) ? seriesIndice = (isArray$1(seriesId) ? seriesId : [seriesId]).map(id => {
46076
+ isValid$1(seriesId) && isArray$1(spec.series) ? seriesIndice = (isArray$1(seriesId) ? seriesId : [seriesId]).map(id => {
46032
46077
  const index = spec.series.findIndex(s => s.id === id);
46033
46078
  return index >= 0 && (seriesSpec = spec.series[index]), index;
46034
- }) : isValid$1(seriesIndex) && isArray$1(spec.series) && (seriesIndice = seriesIndex), {
46079
+ }) : isValid$1(seriesIndex) && isArray$1(spec.series) && (seriesIndice = seriesIndex);
46080
+ const {
46081
+ isZeroAlign: isZeroAlign,
46082
+ isTickAlign: isTickAlign
46083
+ } = checkZeroAlign(spec, orient, layout);
46084
+ return {
46035
46085
  axisOption: axisOption,
46036
46086
  isPercent: spec.percent,
46037
- isZeroAlign: checkZeroAlign(spec, orient, layout),
46087
+ isZeroAlign: isZeroAlign,
46088
+ isTickAlign: isTickAlign,
46038
46089
  seriesIndice: seriesIndice,
46039
46090
  theme: spec.theme,
46040
46091
  chartType: null !== (_b = null == seriesSpec ? void 0 : seriesSpec.type) && void 0 !== _b ? _b : spec.type
46041
46092
  };
46042
46093
  }
46043
46094
  }
46095
+ const axisOption = layout._table.pivotChartAxes.find(axisOption => axisOption.orient === orient),
46096
+ {
46097
+ isZeroAlign: isZeroAlign,
46098
+ isTickAlign: isTickAlign
46099
+ } = checkZeroAlign(spec, orient, layout);
46044
46100
  return {
46045
- axisOption: layout._table.pivotChartAxes.find(axisOption => axisOption.orient === orient),
46101
+ axisOption: axisOption,
46046
46102
  isPercent: !1,
46047
- isZeroAlign: checkZeroAlign(spec, orient, layout),
46103
+ isZeroAlign: isZeroAlign,
46104
+ isTickAlign: isTickAlign,
46048
46105
  theme: spec.theme,
46049
46106
  chartType: spec.type
46050
46107
  };
@@ -46052,17 +46109,23 @@
46052
46109
  function checkZeroAlign(spec, orient, layout) {
46053
46110
  const orients = [];
46054
46111
  let axesSpec;
46055
- if ("left" === orient || "right" === orient ? orients.push("left", "right") : "top" !== orient && "bottom" !== orient || orients.push("top", "bottom"), axesSpec = spec && isArray$1(spec.axes) ? spec.axes : layout._table.pivotChartAxes, isArray$1(axesSpec)) {
46112
+ "left" === orient || "right" === orient ? orients.push("left", "right") : "top" !== orient && "bottom" !== orient || orients.push("top", "bottom"), axesSpec = spec && isArray$1(spec.axes) ? spec.axes : layout._table.pivotChartAxes;
46113
+ let isZeroAlign = !1,
46114
+ isTickAlign = !1;
46115
+ if (isArray$1(axesSpec)) {
46056
46116
  const axes = [];
46057
46117
  axesSpec.forEach(axis => {
46058
46118
  orients.includes(axis.orient) && axes.push(axis);
46059
46119
  });
46060
46120
  for (let i = 0; i < axes.length; i++) {
46061
46121
  const axis = axes[i];
46062
- if (axis.sync && axis.sync.zeroAlign && axis.sync.axisId && axes.find(axisSync => axisSync.id === axis.sync.axisId)) return !0;
46122
+ axis.sync && axis.sync.axisId && axes.find(axisSync => axisSync.id === axis.sync.axisId) && (isZeroAlign = isZeroAlign || axis.sync.zeroAlign, isTickAlign = isTickAlign || axis.sync.tickAlign);
46063
46123
  }
46064
46124
  }
46065
- return !1;
46125
+ return {
46126
+ isZeroAlign: isZeroAlign,
46127
+ isTickAlign: isTickAlign
46128
+ };
46066
46129
  }
46067
46130
  function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seriesId) {
46068
46131
  var _a;
@@ -46086,36 +46149,6 @@
46086
46149
  });
46087
46150
  return range.positiveMax && range.positiveMax > range.max && (range.max = range.positiveMax), range.negativeMin && range.negativeMin < range.min && (range.min = range.negativeMin), range.min === range.max && (range.min > 0 ? range.min = 0 : range.max = 0), range;
46088
46151
  }
46089
- function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
46090
- const {
46091
- axisOption: axisOption,
46092
- isPercent: isPercent,
46093
- isZeroAlign: isZeroAlign,
46094
- seriesIndice: seriesIndice,
46095
- theme: theme,
46096
- chartType: chartType
46097
- } = getAxisOption(colForAxisOption, rowForAxisOption, position, layout);
46098
- if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
46099
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey).slice(0, 2);
46100
- let path;
46101
- path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
46102
- const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : defaultSeriesIndice);
46103
- if (!range) return;
46104
- isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0);
46105
- const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
46106
- {
46107
- range: niceRange,
46108
- ticks: ticks
46109
- } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight);
46110
- return range.min = isNaN(niceRange[0]) ? 0 : niceRange[0], range.max = isNaN(niceRange[1]) ? 1 : niceRange[1], isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min, range.min > 0 && (axisOption.zero = !1)), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max, range.max < 0 && (axisOption.zero = !1)), {
46111
- axisOption: axisOption,
46112
- isZeroAlign: isZeroAlign,
46113
- range: range,
46114
- ticks: ticks,
46115
- theme: theme,
46116
- chartType: chartType
46117
- };
46118
- }
46119
46152
  function isTopOrBottomAxis(col, row, layout) {
46120
46153
  if (!layout._table.isPivotChart()) return !1;
46121
46154
  if (layout.indicatorsAsCol) {
@@ -46145,6 +46178,85 @@
46145
46178
  !function (Direction) {
46146
46179
  Direction.vertical = "vertical", Direction.horizontal = "horizontal";
46147
46180
  }(Direction || (Direction = {}));
46181
+ function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
46182
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);
46183
+ let path;
46184
+ path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
46185
+ const rangeConfig = getChartAxisRange(colForAxisOption, rowForAxisOption, defaultSeriesIndice, position, indicatorKeys, path, layout);
46186
+ if (!rangeConfig) return;
46187
+ const subAxisPosition = "bottom" === position ? "top" : "top" === position ? "bottom" : "left" === position ? "right" : "left",
46188
+ {
46189
+ targetRange: targetRange,
46190
+ targetTicks: targetTicks
46191
+ } = getTargetRangeAndTicks(colForAxisOption, rowForAxisOption, rangeConfig.index, rangeConfig.isZeroAlign, rangeConfig.isTickAlign, rangeConfig.range, indicatorKeys, subAxisPosition, path, layout);
46192
+ if (0 !== rangeConfig.index && targetTicks) {
46193
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
46194
+ {
46195
+ range: newRange,
46196
+ ticks: newTicks
46197
+ } = getAxisDomainRangeAndLabels(rangeConfig.range.min, rangeConfig.range.max, rangeConfig.axisOption, rangeConfig.isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight, {
46198
+ targetTicks: targetTicks,
46199
+ targetRange: targetRange
46200
+ });
46201
+ rangeConfig.range.min = newRange[0], rangeConfig.range.max = newRange[1], rangeConfig.ticks = newTicks;
46202
+ }
46203
+ return rangeConfig.targetRange = targetRange, rangeConfig.targetTicks = targetTicks, rangeConfig;
46204
+ }
46205
+ function getChartAxisRange(col, row, index, position, indicatorKeys, path, layout) {
46206
+ const {
46207
+ axisOption: axisOption,
46208
+ isPercent: isPercent,
46209
+ isZeroAlign: isZeroAlign,
46210
+ isTickAlign: isTickAlign,
46211
+ seriesIndice: seriesIndice,
46212
+ theme: theme,
46213
+ chartType: chartType
46214
+ } = getAxisOption(col, row, position, layout),
46215
+ range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : index);
46216
+ if (!range) return;
46217
+ let ticks;
46218
+ if (isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0), ((null == axisOption ? void 0 : axisOption.zero) || range.min === range.max) && (range.min = Math.min(range.min, 0), range.max = Math.max(range.max, 0)), (null == axisOption ? void 0 : axisOption.nice) || isTickAlign) {
46219
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
46220
+ {
46221
+ range: axisRange,
46222
+ ticks: selfTicks
46223
+ } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight);
46224
+ (null == axisOption ? void 0 : axisOption.nice) && (range.min = axisRange[0], range.max = axisRange[1]), ticks = selfTicks;
46225
+ }
46226
+ return isNumber$2(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max), {
46227
+ index: null != seriesIndice ? seriesIndice : index,
46228
+ range: range,
46229
+ ticks: ticks,
46230
+ isZeroAlign: isZeroAlign,
46231
+ isTickAlign: isTickAlign,
46232
+ axisOption: axisOption,
46233
+ theme: theme,
46234
+ chartType: chartType
46235
+ };
46236
+ }
46237
+ function getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout) {
46238
+ let targetTicks, targetRange;
46239
+ if (!isZeroAlign && !isTickAlign) return {
46240
+ targetTicks: targetTicks,
46241
+ targetRange: targetRange
46242
+ };
46243
+ const subAxisRange = getChartAxisRange(col, row, indicatorKeys.length - 1 - index, subAxisPosition, indicatorKeys, path, layout);
46244
+ if (subAxisRange) {
46245
+ const {
46246
+ range: subRange,
46247
+ ticks: subTicks
46248
+ } = subAxisRange;
46249
+ if (targetRange = subRange, isZeroAlign) {
46250
+ const align = getNewRangeToAlign(range, subRange);
46251
+ align && (range.min = align.range1[0], range.max = align.range1[1], targetRange.min = align.range2[0], targetRange.max = align.range2[1]);
46252
+ }
46253
+ isTickAlign && (targetTicks = isZeroAlign ? getZeroAlignTickAlignTicks(targetRange, col, row, index, subAxisPosition, layout) : subTicks);
46254
+ }
46255
+ return {
46256
+ targetTicks: targetTicks,
46257
+ targetRange: targetRange
46258
+ };
46259
+ }
46148
46260
 
46149
46261
  class CustomCellStylePlugin {
46150
46262
  constructor(table, customCellStyle, customCellStyleArrangement) {
@@ -46229,7 +46341,7 @@
46229
46341
  cacheStyle = cacheStyle.clone();
46230
46342
  for (const key in customCellStyle) {
46231
46343
  const value = customCellStyle[key];
46232
- value && (cacheStyle[`_${key}`] = value);
46344
+ isValid$1(value) && (cacheStyle[`_${key}`] = value);
46233
46345
  }
46234
46346
  return cacheStyle;
46235
46347
  }
@@ -46372,7 +46484,7 @@
46372
46484
  constructor(container) {
46373
46485
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46374
46486
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
46375
- if (super(), this.showFrozenIcon = !0, this.version = "1.13.3-alpha.5", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
46487
+ if (super(), this.showFrozenIcon = !0, this.version = "1.13.3-alpha.6", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
46376
46488
  const {
46377
46489
  frozenColCount = 0,
46378
46490
  frozenRowCount: frozenRowCount,
@@ -46677,15 +46789,13 @@
46677
46789
  heightWithoutPadding = 0;
46678
46790
  if (this.canvasSizeSeted) widthWithoutPadding = this.canvasWidth, heightWithoutPadding = this.canvasHeight;else if (element.parentElement) {
46679
46791
  const computedStyle = element.parentElement.style || window.getComputedStyle(element.parentElement);
46680
- widthWithoutPadding = element.parentElement.offsetWidth - parseInt(computedStyle.paddingLeft || "0px", 10) - parseInt(computedStyle.paddingRight || "0px", 10), heightWithoutPadding = element.parentElement.offsetHeight - parseInt(computedStyle.paddingTop || "0px", 10) - parseInt(computedStyle.paddingBottom || "0px", 20);
46792
+ widthWithoutPadding = element.parentElement.offsetWidth - parseInt(computedStyle.paddingLeft || "0px", 10) - parseInt(computedStyle.paddingRight || "0px", 10), heightWithoutPadding = element.parentElement.offsetHeight - parseInt(computedStyle.paddingTop || "0px", 10) - parseInt(computedStyle.paddingBottom || "0px", 20), widthWithoutPadding = (null != widthWithoutPadding ? widthWithoutPadding : 1) - (this.options.tableSizeAntiJitter ? 1 : 0), heightWithoutPadding = (null != heightWithoutPadding ? heightWithoutPadding : 1) - (this.options.tableSizeAntiJitter ? 1 : 0);
46681
46793
  }
46682
- const width1 = null != widthWithoutPadding ? widthWithoutPadding : 0,
46683
- height1 = null != heightWithoutPadding ? heightWithoutPadding : 0;
46684
- element.style.width = width1 && width1 - padding.left - padding.right + "px" || "0px", element.style.height = height1 && height1 - padding.top - padding.bottom + "px" || "0px";
46794
+ element.style.width = widthWithoutPadding && widthWithoutPadding - padding.left - padding.right + "px" || "0px", element.style.height = heightWithoutPadding && heightWithoutPadding - padding.top - padding.bottom + "px" || "0px";
46685
46795
  const {
46686
46796
  canvas: canvas
46687
46797
  } = this.internalProps;
46688
- widthP = null !== (_c = null === (_b = canvas.parentElement) || void 0 === _b ? void 0 : _b.offsetWidth) && void 0 !== _c ? _c : 0, heightP = null !== (_e = null === (_d = canvas.parentElement) || void 0 === _d ? void 0 : _d.offsetHeight) && void 0 !== _e ? _e : 0, (null === (_f = null == this ? void 0 : this.scenegraph) || void 0 === _f ? void 0 : _f.stage) ? this.scenegraph.stage.resize(widthP, heightP) : (canvas.style.width = "", canvas.style.height = "", canvas.width = widthP, canvas.height = heightP, canvas.style.width = `${widthP}px`, canvas.style.height = `${heightP}px`);
46798
+ widthP = (null !== (_c = null === (_b = canvas.parentElement) || void 0 === _b ? void 0 : _b.offsetWidth) && void 0 !== _c ? _c : 1) - (this.options.tableSizeAntiJitter ? 1 : 0), heightP = (null !== (_e = null === (_d = canvas.parentElement) || void 0 === _d ? void 0 : _d.offsetHeight) && void 0 !== _e ? _e : 1) - (this.options.tableSizeAntiJitter ? 1 : 0), (null === (_f = null == this ? void 0 : this.scenegraph) || void 0 === _f ? void 0 : _f.stage) ? this.scenegraph.stage.resize(widthP, heightP) : (canvas.style.width = "", canvas.style.height = "", canvas.width = widthP, canvas.height = heightP, canvas.style.width = `${widthP}px`, canvas.style.height = `${heightP}px`);
46689
46799
  } else "node" === Env.mode && (widthP = this.canvasWidth - 1, heightP = this.canvasHeight - 1);
46690
46800
  const width = Math.floor(widthP - getVerticalScrollBarSize(this.getTheme().scrollStyle)),
46691
46801
  height = Math.floor(heightP - getHorizontalScrollBarSize(this.getTheme().scrollStyle));
@@ -46758,7 +46868,7 @@
46758
46868
  startRow = Math.max(startRow, 0), endRow = Math.min(endRow, (null !== (_a = this.rowCount) && void 0 !== _a ? _a : 1 / 0) - 1);
46759
46869
  let h = 0;
46760
46870
  const isDefaultRowHeightIsAuto = "auto" === this.options.defaultRowHeight;
46761
- if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || isDefaultRowHeightIsAuto || 0 !== this.internalProps._heightResizedRowMap.size) {
46871
+ if ("standard" !== this.heightMode || this.options.customComputeRowHeight || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || isDefaultRowHeightIsAuto || 0 !== this.internalProps._heightResizedRowMap.size) {
46762
46872
  if (null === (_b = this.options.customConfig) || void 0 === _b ? void 0 : _b._disableColumnAndRowSizeRound) {
46763
46873
  const tempH = this.rowHeightsMap.getSumInRange(startRow, endRow);
46764
46874
  let heightRange;
@@ -46788,7 +46898,7 @@
46788
46898
  return this._adjustColWidth(col, this._colWidthDefineToPxWidth(width));
46789
46899
  }
46790
46900
  isAutoRowHeight(row) {
46791
- return "autoHeight" === this.heightMode || row >= 0 && row < this.columnHeaderLevelCount && "auto" === this.getDefaultRowHeight(row);
46901
+ return "autoHeight" === this.heightMode || !!this.options.customComputeRowHeight || row >= 0 && row < this.columnHeaderLevelCount && "auto" === this.getDefaultRowHeight(row);
46792
46902
  }
46793
46903
  getColWidth(col) {
46794
46904
  var _a;
@@ -48747,14 +48857,34 @@
48747
48857
  const last_Value = layout._table.getCellValue(col, r);
48748
48858
  if ("boolean" == typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell) {
48749
48859
  if (value !== last_Value) break;
48750
- } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, last_Value)) break;
48860
+ } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, last_Value, {
48861
+ source: {
48862
+ col: col,
48863
+ row: row
48864
+ },
48865
+ target: {
48866
+ col: col,
48867
+ row: r
48868
+ },
48869
+ table: layout._table
48870
+ })) break;
48751
48871
  cellRange.start.row = r;
48752
48872
  }
48753
48873
  for (let r = row + 1; r < layout.rowCount; r++) {
48754
48874
  const next_Value = layout._table.getCellValue(col, r);
48755
48875
  if ("boolean" == typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell) {
48756
48876
  if (value !== next_Value) break;
48757
- } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, next_Value)) break;
48877
+ } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, next_Value, {
48878
+ source: {
48879
+ col: col,
48880
+ row: row
48881
+ },
48882
+ target: {
48883
+ col: col,
48884
+ row: r
48885
+ },
48886
+ table: layout._table
48887
+ })) break;
48758
48888
  cellRange.end.row = r;
48759
48889
  }
48760
48890
  }
@@ -48792,14 +48922,34 @@
48792
48922
  const last_Value = layout._table.getCellValue(c, row);
48793
48923
  if ("boolean" == typeof layout.columnObjects[row].define.mergeCell) {
48794
48924
  if (value !== last_Value) break;
48795
- } else if (!layout.columnObjects[row].define.mergeCell(value, last_Value)) break;
48925
+ } else if (!layout.columnObjects[row].define.mergeCell(value, last_Value, {
48926
+ source: {
48927
+ col: col,
48928
+ row: row
48929
+ },
48930
+ target: {
48931
+ col: c,
48932
+ row: row
48933
+ },
48934
+ table: layout._table
48935
+ })) break;
48796
48936
  result.start.col = c;
48797
48937
  }
48798
48938
  for (let c = col + 1; c < (null !== (_c = layout.colCount) && void 0 !== _c ? _c : 0); c++) {
48799
48939
  const next_Value = layout._table.getCellValue(c, row);
48800
48940
  if ("boolean" == typeof layout.columnObjects[row].define.mergeCell) {
48801
48941
  if (value !== next_Value) break;
48802
- } else if (!layout.columnObjects[row].define.mergeCell(value, next_Value)) break;
48942
+ } else if (!layout.columnObjects[row].define.mergeCell(value, next_Value, {
48943
+ source: {
48944
+ col: col,
48945
+ row: row
48946
+ },
48947
+ target: {
48948
+ col: c,
48949
+ row: row
48950
+ },
48951
+ table: layout._table
48952
+ })) break;
48803
48953
  result.end.col = c;
48804
48954
  }
48805
48955
  }
@@ -49631,15 +49781,14 @@
49631
49781
  if (editor.targetIsOnEditor(target)) return !1;
49632
49782
  } else if (!editor.isEditorElement || editor.isEditorElement(target)) return !1;
49633
49783
  if (this.editingEditor.getValue, this.editingEditor.validateValue) {
49634
- this.isValidatingValue = !0;
49635
49784
  const maybePromiseOrValue = null === (_b = (_a = this.editingEditor).validateValue) || void 0 === _b ? void 0 : _b.call(_a);
49636
- return isPromise(maybePromiseOrValue) ? new Promise((resolve, reject) => {
49785
+ return isPromise(maybePromiseOrValue) ? (this.isValidatingValue = !0, new Promise((resolve, reject) => {
49637
49786
  maybePromiseOrValue.then(result => {
49638
49787
  result ? (this.doExit(), resolve(!0)) : (this.isValidatingValue = !1, resolve(!1));
49639
49788
  }).catch(err => {
49640
49789
  this.isValidatingValue = !1, reject(err);
49641
49790
  });
49642
- }) : !!maybePromiseOrValue && (this.doExit(), !0);
49791
+ })) : !!maybePromiseOrValue && (this.doExit(), !0);
49643
49792
  }
49644
49793
  return this.doExit(), !0;
49645
49794
  }
@@ -49698,7 +49847,7 @@
49698
49847
  newWidth = computeColWidth(col, 0, table.rowCount - 1, table, !1);
49699
49848
  newWidth !== oldWidth && table.scenegraph.updateColWidth(col, newWidth - oldWidth);
49700
49849
  }
49701
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) 0 === table.internalProps._heightResizedRowMap.size && table.scenegraph.recalculateRowHeights();else if ("autoHeight" === table.heightMode && !table.internalProps._heightResizedRowMap.has(row)) {
49850
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) 0 === table.internalProps._heightResizedRowMap.size && table.scenegraph.recalculateRowHeights();else if (table.isAutoRowHeight() && !table.internalProps._heightResizedRowMap.has(row)) {
49702
49851
  const oldHeight = table.getRowHeight(row),
49703
49852
  newHeight = computeRowHeight(row, 0, table.colCount - 1, table);
49704
49853
  table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
@@ -49785,7 +49934,7 @@
49785
49934
  newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, !1);
49786
49935
  newWidth !== oldWidth && table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
49787
49936
  }
49788
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if ("autoHeight" === table.heightMode) {
49937
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if (table.isAutoRowHeight()) {
49789
49938
  const rows = [],
49790
49939
  deltaYs = [];
49791
49940
  for (let sRow = startRow; sRow <= range.end.row; sRow++) if (table.rowHeightsMap.get(sRow)) {
@@ -50120,8 +50269,7 @@
50120
50269
  proxy = table.scenegraph.proxy,
50121
50270
  {
50122
50271
  rowStart: rowStart,
50123
- rowLimit: rowLimit,
50124
- bodyBottomRow: bodyBottomRow
50272
+ rowLimit: rowLimit
50125
50273
  } = proxy;
50126
50274
  let {
50127
50275
  rowEnd: rowEnd
@@ -50136,14 +50284,15 @@
50136
50284
  row: cellRow
50137
50285
  }), rowEnd++);
50138
50286
  }
50287
+ const newRowEnd = Math.min(rowStart + rowLimit, table.rowCount - 1 - table.bottomFrozenRowCount);
50139
50288
  for (let i = 0; i < removeCellPositions.length; i++) {
50140
50289
  const {
50141
50290
  row: cellRow
50142
- } = removeCellPositions[i];
50143
- cellRow < rowStart || cellRow > rowEnd || (rowEnd === bodyBottomRow ? removeCells.push({
50291
+ } = removeCellPositions[removeCellPositions.length - i - 1];
50292
+ cellRow < rowStart || cellRow > rowEnd || (cellRow > newRowEnd ? (removeCells.push({
50144
50293
  col: col,
50145
50294
  row: cellRow
50146
- }) : updateRow = Math.min(updateRow, cellRow));
50295
+ }), updateRow--) : updateRow = Math.min(updateRow, cellRow));
50147
50296
  }
50148
50297
  if (updateRow !== 1 / 0) for (let i = updateRow; i <= rowEnd; i++) updateCells.push({
50149
50298
  col: col,
@@ -50237,10 +50386,8 @@
50237
50386
  return title;
50238
50387
  }
50239
50388
  if (this.options.groupBy) {
50240
- const {
50241
- vtableMerge: vtableMerge
50242
- } = table.getCellRawRecord(col, row);
50243
- if (vtableMerge) return "";
50389
+ const record = table.getCellRawRecord(col, row);
50390
+ if (null == record ? void 0 : record.vtableMerge) return "";
50244
50391
  const indexs = this.dataSource.currentIndexedData[row - this.columnHeaderLevelCount];
50245
50392
  return indexs[indexs.length - 1] + 1;
50246
50393
  }
@@ -50574,11 +50721,11 @@
50574
50721
  this.scenegraph.clearCells(), this.sortState ? (this.dataSource.updateFilterRulesForSorted(filterRules), sortRecords(this)) : this.dataSource.updateFilterRules(filterRules), this.refreshRowColCount(), this.stateManager.initCheckedState(this.records), this.scenegraph.createSceneGraph();
50575
50722
  }
50576
50723
  getCheckboxState(field) {
50577
- if (this.stateManager.checkedState.length < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records), isValid$1(field)) {
50578
- let stateArr = this.stateManager.checkedState;
50724
+ if (this.stateManager.checkedState.size < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records), isValid$1(field)) {
50725
+ let stateArr = this.stateManager.checkedState.values();
50579
50726
  return this.options.groupBy && (stateArr = getGroupCheckboxState(this)), stateArr.map(state => state[field]);
50580
50727
  }
50581
- return this.stateManager.checkedState;
50728
+ return new Array(...this.stateManager.checkedState.values());
50582
50729
  }
50583
50730
  getCellCheckboxState(col, row) {
50584
50731
  var _a;
@@ -50586,8 +50733,8 @@
50586
50733
  field = null == define ? void 0 : define.field,
50587
50734
  cellType = this.getCellType(col, row);
50588
50735
  if (isValid$1(field) && "checkbox" === cellType) {
50589
- const dataIndex = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row));
50590
- return null === (_a = this.stateManager.checkedState[dataIndex]) || void 0 === _a ? void 0 : _a[field];
50736
+ const dataIndex = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row)).toString();
50737
+ return null === (_a = this.stateManager.checkedState.get(dataIndex)) || void 0 === _a ? void 0 : _a[field];
50591
50738
  }
50592
50739
  }
50593
50740
  getRadioState(field) {
@@ -52137,7 +52284,7 @@
52137
52284
  }
52138
52285
 
52139
52286
  function computeAxisComponentWidth(config, table) {
52140
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
52287
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
52141
52288
  const attribute = merge({}, commonAxis, config);
52142
52289
  let tickWidth = 0;
52143
52290
  !1 !== attribute.tick.visible && (tickWidth = null !== (_a = attribute.tick.width) && void 0 !== _a ? _a : 4);
@@ -52161,7 +52308,7 @@
52161
52308
  });
52162
52309
  } else {
52163
52310
  let ticks;
52164
- if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52311
+ if ((null === (_b = config.sync) || void 0 === _b ? void 0 : _b.tickAlign) && isFunction$1(null === (_c = config.tick) || void 0 === _c ? void 0 : _c.tickMode)) ticks = config.tick.tickMode();else if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52165
52312
  const range = attribute.range,
52166
52313
  minNumber = Math.abs(range.min) > 1 ? Math.round(range.min) : range.min,
52167
52314
  maxNumber = Math.abs(range.max) > 1 ? Math.round(range.max) : range.max;
@@ -52183,7 +52330,7 @@
52183
52330
  labelWidth = Math.max(labelWidth, getSizeAfterResize(Math.min(width, widthLimit), height, angle).width);
52184
52331
  });
52185
52332
  }
52186
- labelWidth += null !== (_b = attribute.label.space) && void 0 !== _b ? _b : 4;
52333
+ labelWidth += null !== (_d = attribute.label.space) && void 0 !== _d ? _d : 4;
52187
52334
  }
52188
52335
  let titleWidth = 0;
52189
52336
  if (attribute.title.visible && isString$2(attribute.title.text)) {
@@ -52191,18 +52338,18 @@
52191
52338
  width: width,
52192
52339
  height: height
52193
52340
  } = table.measureText(attribute.title.text, {
52194
- fontSize: null !== (_e = null === (_d = null === (_c = attribute.title) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fontSize) && void 0 !== _e ? _e : DEFAULT_TEXT_FONT_SIZE,
52195
- fontWeight: null !== (_h = null === (_g = null === (_f = attribute.title) || void 0 === _f ? void 0 : _f.style) || void 0 === _g ? void 0 : _g.fontWeight) && void 0 !== _h ? _h : "normal",
52196
- fontFamily: null !== (_l = null === (_k = null === (_j = attribute.title) || void 0 === _j ? void 0 : _j.style) || void 0 === _k ? void 0 : _k.fontFamily) && void 0 !== _l ? _l : DEFAULT_TEXT_FONT_FAMILY
52341
+ fontSize: null !== (_g = null === (_f = null === (_e = attribute.title) || void 0 === _e ? void 0 : _e.style) || void 0 === _f ? void 0 : _f.fontSize) && void 0 !== _g ? _g : DEFAULT_TEXT_FONT_SIZE,
52342
+ fontWeight: null !== (_k = null === (_j = null === (_h = attribute.title) || void 0 === _h ? void 0 : _h.style) || void 0 === _j ? void 0 : _j.fontWeight) && void 0 !== _k ? _k : "normal",
52343
+ fontFamily: null !== (_o = null === (_m = null === (_l = attribute.title) || void 0 === _l ? void 0 : _l.style) || void 0 === _m ? void 0 : _m.fontFamily) && void 0 !== _o ? _o : DEFAULT_TEXT_FONT_FAMILY
52197
52344
  }),
52198
- widthLimit = (null === (_o = null === (_m = attribute.label) || void 0 === _m ? void 0 : _m.style) || void 0 === _o ? void 0 : _o.maxLineWidth) || 1 / 0,
52199
- size = getSizeAfterResize(Math.min(width, widthLimit), height, null === (_q = null === (_p = attribute.title) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.angle);
52200
- titleWidth = "left" !== config.orient && "right" !== config.orient || !attribute.title.autoRotate ? size.width : size.height, titleWidth += null !== (_r = attribute.title.space) && void 0 !== _r ? _r : 4;
52345
+ widthLimit = (null === (_q = null === (_p = attribute.label) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.maxLineWidth) || 1 / 0,
52346
+ size = getSizeAfterResize(Math.min(width, widthLimit), height, null === (_s = null === (_r = attribute.title) || void 0 === _r ? void 0 : _r.style) || void 0 === _s ? void 0 : _s.angle);
52347
+ titleWidth = "left" !== config.orient && "right" !== config.orient || !attribute.title.autoRotate ? size.width : size.height, titleWidth += null !== (_t = attribute.title.space) && void 0 !== _t ? _t : 4;
52201
52348
  }
52202
52349
  return tickWidth + labelWidth + titleWidth + 1;
52203
52350
  }
52204
52351
  function computeAxisComponentHeight(config, table) {
52205
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
52352
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
52206
52353
  const attribute = merge({}, commonAxis, config);
52207
52354
  let tickHeight = 0;
52208
52355
  !1 !== attribute.tick.visible && (tickHeight = null !== (_a = attribute.tick.width) && void 0 !== _a ? _a : 4);
@@ -52226,7 +52373,7 @@
52226
52373
  });
52227
52374
  } else {
52228
52375
  let ticks;
52229
- if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52376
+ if ((null === (_b = config.sync) || void 0 === _b ? void 0 : _b.tickAlign) && isFunction$1(null === (_c = config.tick) || void 0 === _c ? void 0 : _c.tickMode)) ticks = config.tick.tickMode();else if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52230
52377
  const range = attribute.range,
52231
52378
  minNumber = Math.abs(range.min) > 1 ? Math.round(range.min) : range.min,
52232
52379
  maxNumber = Math.abs(range.max) > 1 ? Math.round(range.max) : range.max;
@@ -52248,7 +52395,7 @@
52248
52395
  labelHeight = Math.max(labelHeight, getSizeAfterResize(Math.min(width, widthLimit), height, angle).height);
52249
52396
  });
52250
52397
  }
52251
- labelHeight += null !== (_b = attribute.label.space) && void 0 !== _b ? _b : 4;
52398
+ labelHeight += null !== (_d = attribute.label.space) && void 0 !== _d ? _d : 4;
52252
52399
  }
52253
52400
  let titleHeight = 0;
52254
52401
  if (attribute.title.visible && attribute.title.text) {
@@ -52256,13 +52403,13 @@
52256
52403
  width: width,
52257
52404
  height: height
52258
52405
  } = table.measureText(attribute.title.text, {
52259
- fontSize: null !== (_e = null === (_d = null === (_c = attribute.title) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fontSize) && void 0 !== _e ? _e : DEFAULT_TEXT_FONT_SIZE,
52260
- fontWeight: null !== (_h = null === (_g = null === (_f = attribute.title) || void 0 === _f ? void 0 : _f.style) || void 0 === _g ? void 0 : _g.fontWeight) && void 0 !== _h ? _h : "normal",
52261
- fontFamily: null !== (_l = null === (_k = null === (_j = attribute.title) || void 0 === _j ? void 0 : _j.style) || void 0 === _k ? void 0 : _k.fontFamily) && void 0 !== _l ? _l : DEFAULT_TEXT_FONT_FAMILY
52406
+ fontSize: null !== (_g = null === (_f = null === (_e = attribute.title) || void 0 === _e ? void 0 : _e.style) || void 0 === _f ? void 0 : _f.fontSize) && void 0 !== _g ? _g : DEFAULT_TEXT_FONT_SIZE,
52407
+ fontWeight: null !== (_k = null === (_j = null === (_h = attribute.title) || void 0 === _h ? void 0 : _h.style) || void 0 === _j ? void 0 : _j.fontWeight) && void 0 !== _k ? _k : "normal",
52408
+ fontFamily: null !== (_o = null === (_m = null === (_l = attribute.title) || void 0 === _l ? void 0 : _l.style) || void 0 === _m ? void 0 : _m.fontFamily) && void 0 !== _o ? _o : DEFAULT_TEXT_FONT_FAMILY
52262
52409
  }),
52263
- widthLimit = (null === (_o = null === (_m = attribute.label) || void 0 === _m ? void 0 : _m.style) || void 0 === _o ? void 0 : _o.maxLineWidth) || 1 / 0,
52264
- size = getSizeAfterResize(Math.min(width, widthLimit), height, null === (_q = null === (_p = attribute.title) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.angle);
52265
- titleHeight = "bottom" !== config.orient && "top" !== config.orient || !attribute.title.autoRotate ? size.height : size.width, titleHeight += null !== (_r = attribute.title.space) && void 0 !== _r ? _r : 4;
52410
+ widthLimit = (null === (_q = null === (_p = attribute.label) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.maxLineWidth) || 1 / 0,
52411
+ size = getSizeAfterResize(Math.min(width, widthLimit), height, null === (_s = null === (_r = attribute.title) || void 0 === _r ? void 0 : _r.style) || void 0 === _s ? void 0 : _s.angle);
52412
+ titleHeight = "bottom" !== config.orient && "top" !== config.orient || !attribute.title.autoRotate ? size.height : size.width, titleHeight += null !== (_t = attribute.title.space) && void 0 !== _t ? _t : 4;
52266
52413
  }
52267
52414
  return tickHeight + labelHeight + titleHeight + 1;
52268
52415
  }
@@ -54014,7 +54161,7 @@
54014
54161
  lineClamp: lineClamp
54015
54162
  } = cellStyle,
54016
54163
  autoColWidth = "auto" === colWidth,
54017
- autoRowHeight = "autoHeight" === table.heightMode,
54164
+ autoRowHeight = table.isAutoRowHeight(),
54018
54165
  attribute = {
54019
54166
  maxLineWidth: autoColWidth ? 1 / 0 : cellWidth - (padding[1] + padding[3] + hierarchyOffset) - size - spaceBetweenTextAndIcon,
54020
54167
  textAlign: "left",
@@ -54891,15 +55038,15 @@
54891
55038
  return percentCompleteBarGroup;
54892
55039
  }
54893
55040
 
54894
- function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, axisLength, skipTick) {
54895
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
55041
+ function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, axisLength, target) {
55042
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
54896
55043
  if ((null == axisOption ? void 0 : axisOption.zero) && (min = Math.min(min, 0), max = Math.max(max, 0)), null == axisOption ? void 0 : axisOption.expand) {
54897
55044
  const domainMin = min,
54898
55045
  domainMax = max;
54899
55046
  isValid$1(axisOption.expand.min) && (min = domainMin - (domainMax - domainMin) * axisOption.expand.min), isValid$1(axisOption.expand.max) && (max = domainMax + (domainMax - domainMin) * axisOption.expand.max);
54900
55047
  }
54901
55048
  let scale, scaleTicks;
54902
- if (isNumber$2(null == axisOption ? void 0 : axisOption.min) && (min = axisOption.min), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (max = axisOption.max), "log" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new LogScale(), scale.base(null !== (_a = null == axisOption ? void 0 : axisOption.base) && void 0 !== _a ? _a : 10)) : "symlog" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new SymlogScale(), scale.constant(null !== (_b = null == axisOption ? void 0 : axisOption.constant) && void 0 !== _b ? _b : 10)) : scale = new LinearScale(), scale.domain([min, max], !!(null == axisOption ? void 0 : axisOption.nice)), null == axisOption ? void 0 : axisOption.nice) {
55049
+ if (isNumber$2(null == axisOption ? void 0 : axisOption.min) && (min = axisOption.min), isNumber$2(null == axisOption ? void 0 : axisOption.max) && (max = axisOption.max), "log" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new LogScale(), scale.base(null !== (_a = null == axisOption ? void 0 : axisOption.base) && void 0 !== _a ? _a : 10)) : "symlog" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new SymlogScale(), scale.constant(null !== (_b = null == axisOption ? void 0 : axisOption.constant) && void 0 !== _b ? _b : 10)) : scale = new LinearScale(), scale.domain([min, max], !!(null == axisOption ? void 0 : axisOption.nice)), target) forceTickCountNice(scale, target);else if (null == axisOption ? void 0 : axisOption.nice) {
54903
55050
  let tickCount = null !== (_f = null !== (_d = null === (_c = axisOption.tick) || void 0 === _c ? void 0 : _c.forceTickCount) && void 0 !== _d ? _d : null === (_e = axisOption.tick) || void 0 === _e ? void 0 : _e.tickCount) && void 0 !== _f ? _f : 10;
54904
55051
  isFunction$1(tickCount) && (tickCount = tickCount({
54905
55052
  axisLength: axisLength,
@@ -54908,13 +55055,16 @@
54908
55055
  }
54909
55056
  })), "accurateFirst" === axisOption.niceType && (tickCount = Math.max(10, tickCount)), isNil$1(axisOption.min) && isNil$1(axisOption.max) ? scale.nice(tickCount) : isValid$1(axisOption.min) && isNil$1(axisOption.max) ? scale.niceMax(tickCount) : isNil$1(axisOption.min) && isValid$1(axisOption.max) && scale.niceMin(tickCount);
54910
55057
  }
54911
- return delete scale._niceType, skipTick || (scaleTicks = scale.ticks(isNumber$2(null == axisOption ? void 0 : axisOption.tickCount) ? null == axisOption ? void 0 : axisOption.tickCount : 5, {
54912
- noDecimals: null === (_j = null == axisOption ? void 0 : axisOption.tick) || void 0 === _j ? void 0 : _j.noDecimals
54913
- })), {
55058
+ return delete scale._niceType, scaleTicks = (null !== (_k = null === (_j = null == target ? void 0 : target.targetTicks) || void 0 === _j ? void 0 : _j.length) && void 0 !== _k ? _k : null === (_l = null == axisOption ? void 0 : axisOption.tick) || void 0 === _l ? void 0 : _l.forceTickCount) ? scale.forceTicks(null !== (_o = null === (_m = null == target ? void 0 : target.targetTicks) || void 0 === _m ? void 0 : _m.length) && void 0 !== _o ? _o : null === (_p = null == axisOption ? void 0 : axisOption.tick) || void 0 === _p ? void 0 : _p.forceTickCount) : scale.ticks(null !== (_r = null === (_q = null == axisOption ? void 0 : axisOption.tick) || void 0 === _q ? void 0 : _q.tickCount) && void 0 !== _r ? _r : 5, {
55059
+ noDecimals: null === (_s = null == axisOption ? void 0 : axisOption.tick) || void 0 === _s ? void 0 : _s.noDecimals
55060
+ }), {
54914
55061
  range: scale.domain(),
54915
55062
  ticks: scaleTicks
54916
55063
  };
54917
55064
  }
55065
+ function forceTickCountNice(scale, target) {
55066
+ scale.niceMax(target.targetTicks.length);
55067
+ }
54918
55068
 
54919
55069
  const registerChartCell = () => {
54920
55070
  Factory.registerFunction("createChartCellGroup", createChartCellGroup), Factory.registerFunction("getAxisDomainRangeAndLabels", getAxisDomainRangeAndLabels);