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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12229,10 +12229,7 @@
12229
12229
  const {
12230
12230
  context: context
12231
12231
  } = drawContext;
12232
- context.highPerformanceSave();
12233
- const t1 = graphic.parent.globalTransMatrix,
12234
- t2 = graphic.stage.window.getViewBoxTransform().clone().multiply(t1.a, t1.b, t1.c, t1.d, t1.e, t1.f);
12235
- if (graphic.parent && context.setTransformFromMatrix(t2, !0), drawContribution.dirtyBounds && drawContribution.backupDirtyBounds) {
12232
+ if (context.highPerformanceSave(), context.transformFromMatrix(graphic.transMatrix, !0), drawContribution.dirtyBounds && drawContribution.backupDirtyBounds) {
12236
12233
  tempDirtyBounds.copy(drawContribution.dirtyBounds), tempBackupDirtyBounds.copy(drawContribution.backupDirtyBounds);
12237
12234
  const m = graphic.globalTransMatrix.getInverse();
12238
12235
  drawContribution.dirtyBounds.copy(drawContribution.backupDirtyBounds).transformWithMatrix(m), drawContribution.backupDirtyBounds.copy(drawContribution.dirtyBounds);
@@ -31797,7 +31794,7 @@
31797
31794
  const range = getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout);
31798
31795
  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
31796
  }
31800
- "autoWidth" === table.widthMode && table.scenegraph.recalculateColWidths(), "autoHeight" === table.heightMode && table.scenegraph.recalculateRowHeights(), table.scenegraph.renderSceneGraph();
31797
+ "autoWidth" === table.widthMode && table.scenegraph.recalculateColWidths(), table.isAutoRowHeight() && table.scenegraph.recalculateRowHeights(), table.scenegraph.renderSceneGraph();
31801
31798
  }
31802
31799
  getCustomLayoutFunc(col, row) {
31803
31800
  var _a;
@@ -33626,7 +33623,7 @@
33626
33623
  col: col,
33627
33624
  row: row
33628
33625
  } = reactGroup;
33629
- table.reactCustomLayout.removeCustomCell(col, row);
33626
+ isNumber$2(col) && isNumber$2(row) && table.reactCustomLayout.removeCustomCell(col, row);
33630
33627
  }
33631
33628
  }
33632
33629
  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 +33993,7 @@
33996
33993
  const layoutMap = table.internalProps.layoutMap;
33997
33994
  table.isPivotTable() && (layoutMap.enableUseGetBodyCache(), layoutMap.enableUseHeaderPathCache()), table.defaultHeaderRowHeight, table.defaultHeaderColWidth;
33998
33995
  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,
33996
+ isAllRowsAuto = table.isAutoRowHeight() || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode,
34000
33997
  isDefaultRowHeightIsAuto = "auto" === table.options.defaultRowHeight;
34001
33998
  if (isAllRowsAuto || isDefaultHeaderHasAuto || isDefaultRowHeightIsAuto) {
34002
33999
  rowStart = null != rowStart ? rowStart : 0, rowEnd = null != rowEnd ? rowEnd : table.rowCount - 1, (0 === rowStart && rowEnd === table.rowCount - 1 || isClearRowRangeHeightsMap) && table._clearRowRangeHeightsMap();
@@ -34088,12 +34085,16 @@
34088
34085
  }
34089
34086
  function computeRowHeight(row, startCol, endCol, table) {
34090
34087
  var _a;
34091
- if (!("autoHeight" === table.heightMode || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode) && "auto" !== table.getDefaultRowHeight(row)) return table.getDefaultRowHeight(row);
34088
+ if (!(table.isAutoRowHeight() || "adaptive" === table.heightMode && !1 !== table.options.autoHeightInAdaptiveMode) && "auto" !== table.getDefaultRowHeight(row)) return table.getDefaultRowHeight(row);
34092
34089
  let maxHeight;
34093
- if (table.options.customComputeRowHeight) return table.options.customComputeRowHeight({
34094
- row: row,
34095
- table: table
34096
- });
34090
+ if (table.options.customComputeRowHeight) {
34091
+ const customRowHeight = table.options.customComputeRowHeight({
34092
+ row: row,
34093
+ table: table
34094
+ });
34095
+ if ("number" == typeof customRowHeight) return customRowHeight;
34096
+ if ("auto" !== customRowHeight) return table.getDefaultRowHeight(row);
34097
+ }
34097
34098
  if (table.isPivotChart() && row >= table.columnHeaderLevelCount && row < table.rowCount - table.bottomFrozenRowCount) if (table.internalProps.layoutMap.indicatorsAsCol) {
34098
34099
  const optimunHeight = table.internalProps.layoutMap.getOptimunHeightForChart(row);
34099
34100
  if (optimunHeight > 0) return optimunHeight;
@@ -34128,7 +34129,7 @@
34128
34129
  layoutMap: layoutMap
34129
34130
  } = table.internalProps,
34130
34131
  row = table.columnHeaderLevelCount;
34131
- if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34132
+ if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak || table.isPivotChart()) && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34132
34133
  for (let col = 0; col < table.colCount; col++) {
34133
34134
  const cellDefine = layoutMap.getBody(col, row);
34134
34135
  if ("radio" === cellDefine.cellType) return !1;
@@ -34143,7 +34144,7 @@
34143
34144
  const {
34144
34145
  layoutMap: layoutMap
34145
34146
  } = table.internalProps;
34146
- if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak) && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34147
+ if ((table.internalProps.autoWrapText || table.internalProps.enableLineBreak) && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34147
34148
  const cellDefine = layoutMap.getBody(table.rowHeaderLevelCount, row);
34148
34149
  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
34150
  const cellStyle = table._getCellStyle(table.rowHeaderLevelCount, row);
@@ -34154,7 +34155,7 @@
34154
34155
  const {
34155
34156
  layoutMap: layoutMap
34156
34157
  } = table.internalProps;
34157
- if (table.internalProps.autoWrapText && ("autoHeight" === table.options.heightMode || "adaptive" === table.options.heightMode)) return !1;
34158
+ if (table.internalProps.autoWrapText && (table.isAutoRowHeight() || "adaptive" === table.options.heightMode)) return !1;
34158
34159
  const headerDefine = layoutMap.getHeader(table.rowHeaderLevelCount, row);
34159
34160
  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
34161
  const headerStyle = table._getCellStyle(table.rowHeaderLevelCount, row);
@@ -34206,7 +34207,7 @@
34206
34207
  }
34207
34208
  }
34208
34209
  function computeTextHeight(col, row, cellType, table) {
34209
- var _a, _b, _c;
34210
+ var _a, _b, _c, _d;
34210
34211
  let maxHeight = 0;
34211
34212
  const cellValue = table.getCellValue(col, row),
34212
34213
  actStyle = table._getCellStyle(col, row);
@@ -34241,7 +34242,9 @@
34241
34242
  lineHeight = null !== (_b = getProp("lineHeight", actStyle, col, row, table)) && void 0 !== _b ? _b : fontSize,
34242
34243
  fontFamily = getProp("fontFamily", actStyle, col, row, table),
34243
34244
  autoWrapText = getProp("autoWrapText", actStyle, col, row, table),
34244
- lineClamp = getProp("lineClamp", actStyle, col, row, table);
34245
+ lineClamp = getProp("lineClamp", actStyle, col, row, table),
34246
+ underline = getProp("underline", actStyle, col, row, table),
34247
+ underlineOffset = null !== (_c = getProp("underlineOffset", actStyle, col, row, table)) && void 0 !== _c ? _c : 0;
34245
34248
  let text;
34246
34249
  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
34250
  text = cellValue;
@@ -34283,8 +34286,8 @@
34283
34286
  whiteSpace: 1 !== lines.length || autoWrapText ? "normal" : "no-wrap",
34284
34287
  lineClamp: lineClamp
34285
34288
  });
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;
34289
+ maxHeight = (bounds.height() || ("number" == typeof lineHeight ? lineHeight : fontSize)) + (underline ? underlineOffset : 0);
34290
+ } else maxHeight = (null === (_d = table.options.customConfig) || void 0 === _d ? void 0 : _d.multilinesForXTable) ? lineHeight : lines.length * lineHeight;
34288
34291
  }
34289
34292
  return (Math.max(maxHeight, iconHeight) + padding[0] + padding[2]) / spanRow;
34290
34293
  }
@@ -35998,7 +36001,7 @@
35998
36001
  }
35999
36002
  }
36000
36003
  if (!updateSpec) if (null == axes || axes.forEach((axis, index) => {
36001
- var _a, _b, _c, _d;
36004
+ var _a, _b, _c, _d, _e;
36002
36005
  "band" === axis.type ? chartInstance.updateModelSpec({
36003
36006
  type: "axes",
36004
36007
  index: index
@@ -36009,7 +36012,10 @@
36009
36012
  index: index
36010
36013
  }, {
36011
36014
  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
36015
+ max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0,
36016
+ tick: {
36017
+ tickMode: null === (_e = axis.tick) || void 0 === _e ? void 0 : _e.tickMode
36018
+ }
36013
36019
  }, !0);
36014
36020
  }), 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
36021
  const dataBatch = [];
@@ -37430,7 +37436,7 @@
37430
37436
  rightBottomCornerGroup: rightBottomCornerGroup
37431
37437
  } = table.scenegraph;
37432
37438
  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({
37439
+ 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
37440
  x: table.getFrozenColsWidth(),
37435
37441
  y: table.getFrozenRowsHeight()
37436
37442
  }), 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 +37708,20 @@
37702
37708
  distStartRow = "up" === direction ? proxy.rowEnd + 1 : proxy.rowStart - count,
37703
37709
  distEndRow = "up" === direction ? proxy.rowEnd + count : proxy.rowStart - 1;
37704
37710
  let syncTopRow, syncBottomRow;
37705
- if ("autoHeight" === proxy.table.heightMode) syncTopRow = distStartRow, syncBottomRow = distEndRow;else {
37711
+ if (proxy.table.isAutoRowHeight()) syncTopRow = distStartRow, syncBottomRow = distEndRow;else {
37706
37712
  syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - 1 * proxy.screenRowCount), syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + 2 * proxy.screenRowCount, proxy.table.rowCount - 1);
37707
37713
  }
37708
37714
  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
37715
  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();
37716
+ 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
37717
  } else {
37712
37718
  const distStartRow = "up" === direction ? proxy.rowStart + count : proxy.rowStart - count,
37713
37719
  distEndRow = Math.min(proxy.table.rowCount - 1, "up" === direction ? proxy.rowEnd + count : proxy.rowEnd - count),
37714
37720
  distStartRowY = proxy.table.getRowsHeight(proxy.bodyTopRow, distStartRow - 1);
37715
37721
  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;
37722
+ 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
37723
  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();
37724
+ 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
37725
  }
37720
37726
  });
37721
37727
  }
@@ -37819,7 +37825,7 @@
37819
37825
  "group" === colGroup.type && (colGroup.needUpdate = !0, null == colGroup || colGroup.forEachChildren(cellGroup => {
37820
37826
  cellGroup.needUpdate = !0;
37821
37827
  }));
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));
37828
+ }), 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
37829
  const oldBodyHeight = proxy.table.getAllRowsHeight();
37824
37830
  computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);
37825
37831
  const newBodyHeight = proxy.table.getAllRowsHeight();
@@ -37841,7 +37847,7 @@
37841
37847
  for (let row = proxy.rowStart; row <= proxy.rowEnd; row++) proxy.table.scenegraph.updateCellContent(col, row);
37842
37848
  for (let row = proxy.table.rowCount - proxy.table.bottomFrozenRowCount; row < proxy.table.rowCount; row++) proxy.table.scenegraph.updateCellContent(col, row);
37843
37849
  }
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());
37850
+ 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
37851
  });
37846
37852
  }
37847
37853
 
@@ -38134,7 +38140,7 @@
38134
38140
  };
38135
38141
  class SceneProxy {
38136
38142
  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);
38143
+ 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
38144
  }
38139
38145
  get bodyLeftCol() {
38140
38146
  return this.table.frozenColCount;
@@ -38270,7 +38276,7 @@
38270
38276
  const yLimitTop = this.table.getRowsHeight(this.bodyTopRow, this.bodyTopRow + (this.rowEnd - this.rowStart + 1)) / 2,
38271
38277
  yLimitBottom = this.table.getAllRowsHeight() - yLimitTop,
38272
38278
  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));
38279
+ 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
38280
  });
38275
38281
  }
38276
38282
  setX(x) {
@@ -38279,7 +38285,7 @@
38279
38285
  const xLimitLeft = this.table.getColsWidth(this.bodyLeftCol, this.bodyLeftCol + (this.colEnd - this.colStart + 1)) / 2,
38280
38286
  xLimitRight = this.table.getAllColsWidth() - xLimitLeft,
38281
38287
  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);
38288
+ 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
38289
  });
38284
38290
  }
38285
38291
  dynamicSetY(y, screenTop) {
@@ -38304,17 +38310,17 @@
38304
38310
  }
38305
38311
  updateCellGroups(count) {
38306
38312
  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;
38313
+ 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
38314
  }
38309
38315
  updateBottomFrozenCellGroups() {
38310
38316
  const startRow = this.table.rowCount - this.table.bottomFrozenRowCount,
38311
38317
  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));
38318
+ 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
38319
  }
38314
38320
  updateRightFrozenCellGroups() {
38315
38321
  const startCol = this.table.colCount - this.table.rightFrozenColCount,
38316
38322
  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);
38323
+ "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
38324
  }
38319
38325
  updateColCellGroupsAsync() {
38320
38326
  return __awaiter$1(this, void 0, void 0, function* () {
@@ -39023,22 +39029,22 @@
39023
39029
  beforeCell.mergeStartRow && beforeCell.mergeEndRow && beforeCell.mergeEndRow > beforeRow && (addNeedUpdateTag({
39024
39030
  start: {
39025
39031
  row: beforeCell.mergeStartRow,
39026
- col: "autoHeight" === scene.table.heightMode ? 0 : beforeCell.mergeStartCol
39032
+ col: scene.table.isAutoRowHeight() ? 0 : beforeCell.mergeStartCol
39027
39033
  },
39028
39034
  end: {
39029
39035
  row: beforeCell.mergeEndRow,
39030
- col: "autoHeight" === scene.table.heightMode ? scene.table.colCount - 1 : beforeCell.mergeEndCol
39036
+ col: scene.table.isAutoRowHeight() ? scene.table.colCount - 1 : beforeCell.mergeEndCol
39031
39037
  }
39032
39038
  }, scene), row = beforeCell.mergeStartRow);
39033
39039
  const afterCell = scene.highPerformanceGetCell(col, afterRow);
39034
39040
  afterCell.mergeStartRow && afterCell.mergeEndRow && afterCell.mergeStartRow < afterRow && (addNeedUpdateTag({
39035
39041
  start: {
39036
39042
  row: afterCell.mergeStartRow,
39037
- col: "autoHeight" === scene.table.heightMode ? 0 : afterCell.mergeStartCol
39043
+ col: scene.table.isAutoRowHeight() ? 0 : afterCell.mergeStartCol
39038
39044
  },
39039
39045
  end: {
39040
39046
  row: afterCell.mergeEndRow,
39041
- col: "autoHeight" === scene.table.heightMode ? scene.table.colCount - 1 : afterCell.mergeEndCol
39047
+ col: scene.table.isAutoRowHeight() ? scene.table.colCount - 1 : afterCell.mergeEndCol
39042
39048
  }
39043
39049
  }, scene), row = afterCell.mergeStartRow), isValid$1(row) && (updateRow = isValid$1(updateRow) ? Math.min(updateRow, row) : row);
39044
39050
  }
@@ -40642,7 +40648,7 @@
40642
40648
  const addRows = deduplication$1(addCells.map(cell => cell.row)).sort((a, b) => a - b),
40643
40649
  updateRows = deduplication$1(updateCells.map(cell => cell.row)).sort((a, b) => a - b),
40644
40650
  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++) {
40651
+ 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
40652
  const row = updateRows[i],
40647
40653
  oldHeight = this.table.getRowHeight(row),
40648
40654
  newHeight = computeRowHeight(row, 0, this.table.colCount - 1, this.table);
@@ -41544,8 +41550,10 @@
41544
41550
  function setCheckedState(col, row, field, checked, state) {
41545
41551
  const recordIndex = state.table.getRecordShowIndexByCell(col, row);
41546
41552
  if (recordIndex >= 0) {
41547
- const dataIndex = state.table.dataSource.getIndexKey(recordIndex);
41548
- state.checkedState[dataIndex] || (state.checkedState[dataIndex] = {}), state.checkedState[dataIndex][field] = checked;
41553
+ const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
41554
+ state.checkedState.has(dataIndex) ? state.checkedState.get(dataIndex)[field] = checked : state.checkedState.set(dataIndex, {
41555
+ [field]: checked
41556
+ });
41549
41557
  }
41550
41558
  }
41551
41559
  function setHeaderCheckedState(field, checked, state) {
@@ -41559,21 +41567,23 @@
41559
41567
  if (state.table.isHeader(col, row)) {
41560
41568
  if (isValid$1(state.headerCheckedState[field])) return state.headerCheckedState[field];
41561
41569
  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) {
41570
+ if (isValid$1(checked)) state.headerCheckedState[field] = checked;else if ((null === (_a = state.checkedState) || void 0 === _a ? void 0 : _a.size) > 0) {
41563
41571
  return state.updateHeaderCheckedState(field, col, row);
41564
41572
  }
41565
41573
  return state.headerCheckedState[field];
41566
41574
  }
41567
41575
  const recordIndex = state.table.getRecordShowIndexByCell(col, row);
41568
41576
  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;
41577
+ const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
41578
+ if (isValid$1(null === (_b = state.checkedState.get(dataIndex)) || void 0 === _b ? void 0 : _b[field])) return state.checkedState.get(dataIndex)[field];
41579
+ state.checkedState.has(dataIndex) ? state.checkedState.get(dataIndex)[field] = checked : state.checkedState.set(dataIndex, {
41580
+ [field]: checked
41581
+ });
41572
41582
  }
41573
41583
  return checked;
41574
41584
  }
41575
41585
  function initCheckedState(records, state) {
41576
- state.checkedState = [], state.headerCheckedState = {}, state.radioState = {};
41586
+ state.checkedState.clear(), state.headerCheckedState = {}, state.radioState = {};
41577
41587
  let isNeedInitHeaderCheckedStateFromRecord = !1;
41578
41588
  if (state._checkboxCellTypeFields = [], state._headerCheckFuncs = {}, state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {
41579
41589
  if ("checkbox" === hd.headerType) {
@@ -41584,46 +41594,30 @@
41584
41594
  for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = !1, state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);
41585
41595
  isNeedInitHeaderCheckedStateFromRecord = !0;
41586
41596
  }
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
- }));
41597
+ isNeedInitHeaderCheckedStateFromRecord && initRecordCheckState(records, state);
41607
41598
  }
41608
41599
  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");
41600
+ let allChecked = !0,
41601
+ allUnChecked = !0,
41602
+ hasChecked = !1;
41603
+ return state.checkedState.forEach((check_state, index) => {
41604
+ var _a;
41605
+ index = index.includes(",") ? index.split(",").map(item => Number(item)) : Number(index);
41606
+ const tableIndex = state.table.getTableIndexByRecordIndex(index),
41607
+ mergeCell = state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex),
41608
+ data = null === (_a = state.table.dataSource) || void 0 === _a ? void 0 : _a.get(index);
41609
+ mergeCell || data.vtableMerge || (!0 !== (null == check_state ? void 0 : check_state[field]) ? allChecked = !1 : (allUnChecked = !1, hasChecked = !0));
41610
+ }), allChecked ? (state.headerCheckedState[field] = !0, allChecked) : allUnChecked ? (state.headerCheckedState[field] = !1, !1) : !!hasChecked && (state.headerCheckedState[field] = "indeterminate", "indeterminate");
41619
41611
  }
41620
41612
  function initLeftRecordsCheckState(records, state) {
41621
- for (let index = state.checkedState.length; index < records.length; index++) {
41613
+ for (let index = state.checkedState.size; index < records.length; index++) {
41622
41614
  const record = records[index];
41623
41615
  state._checkboxCellTypeFields.forEach(field => {
41624
41616
  const value = record[field];
41625
41617
  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;
41618
+ isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value);
41619
+ const dataIndex = index.toString();
41620
+ state.checkedState.get(dataIndex) || state.checkedState.set(dataIndex, {}), state.checkedState.get(dataIndex)[field] = isChecked;
41627
41621
  });
41628
41622
  }
41629
41623
  }
@@ -41656,14 +41650,35 @@
41656
41650
  checkedState: checkedState,
41657
41651
  table: table
41658
41652
  } = 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;
41653
+ let source, target;
41654
+ 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)) {
41655
+ if (sourceIndex > targetIndex) {
41656
+ const sourceRecord = checkedState.get(sourceIndex.toString());
41657
+ for (let i = sourceIndex; i > targetIndex; i--) checkedState.set(i.toString(), checkedState.get((i - 1).toString()));
41658
+ checkedState.set(targetIndex.toString(), sourceRecord);
41659
+ } else if (sourceIndex < targetIndex) {
41660
+ const sourceRecord = checkedState.get(sourceIndex.toString());
41661
+ for (let i = sourceIndex; i < targetIndex; i++) checkedState.set(i.toString(), checkedState.get((i + 1).toString()));
41662
+ checkedState.set(targetIndex.toString(), sourceRecord);
41663
+ }
41664
+ } else if (isArray$1(source) && isArray$1(target)) if ((sourceIndex = source[source.length - 1]) > (targetIndex = target[target.length - 1])) {
41665
+ const sourceRecord = checkedState.get(source.toString());
41666
+ for (let i = sourceIndex; i > targetIndex; i--) {
41667
+ const now = [...source];
41668
+ now[now.length - 1] = i;
41669
+ const last = [...source];
41670
+ last[last.length - 1] = i - 1, checkedState.set(now.toString(), checkedState.get(last.toString()));
41671
+ }
41672
+ checkedState.set(target.toString(), sourceRecord);
41663
41673
  } 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;
41674
+ const sourceRecord = checkedState.get(source.toString());
41675
+ for (let i = sourceIndex; i < targetIndex; i++) {
41676
+ const now = [...source];
41677
+ now[now.length - 1] = i;
41678
+ const next = [...source];
41679
+ next[next.length - 1] = i + 1, checkedState.set(now.toString(), checkedState.get(next.toString()));
41680
+ }
41681
+ checkedState.set(target.toString(), sourceRecord);
41667
41682
  }
41668
41683
  }
41669
41684
  function getGroupCheckboxState(table) {
@@ -41675,10 +41690,37 @@
41675
41690
  const {
41676
41691
  vtableOriginIndex: vtableOriginIndex
41677
41692
  } = dataSource.getRawRecord(indexArr);
41678
- result[vtableOriginIndex] = table.stateManager.checkedState[indexArr];
41693
+ result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());
41679
41694
  }
41680
41695
  }), result;
41681
41696
  }
41697
+ function initRecordCheckState(records, state) {
41698
+ const table = state.table,
41699
+ start = table.isPivotTable() ? 0 : table.internalProps.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount,
41700
+ end = table.isPivotTable() ? isArray$1(records) ? records.length : 0 : table.internalProps.transpose ? table.colCount : table.rowCount;
41701
+ for (let index = 0; index + start < end; index++) {
41702
+ const record = table.isPivotTable() ? records[index] : table.dataSource.get(index);
41703
+ state._checkboxCellTypeFields.forEach(field => {
41704
+ const value = record && record[field];
41705
+ let isChecked;
41706
+ if (isObject$4(value) ? isChecked = value.checked : "boolean" == typeof value && (isChecked = value), null == isChecked) {
41707
+ const headerCheckFunc = state._headerCheckFuncs[field];
41708
+ if (headerCheckFunc) {
41709
+ const cellAddr = state.table.getCellAddrByFieldRecord(field, index);
41710
+ isChecked = getOrApply(headerCheckFunc, {
41711
+ col: cellAddr.col,
41712
+ row: cellAddr.row,
41713
+ table: state.table,
41714
+ context: null,
41715
+ value: value
41716
+ });
41717
+ }
41718
+ }
41719
+ const dataIndex = table.isPivotTable() ? index.toString() : state.table.dataSource.getIndexKey(index).toString();
41720
+ state.checkedState.get(dataIndex) || state.checkedState.set(dataIndex, {}), state.checkedState.get(dataIndex)[field] = isChecked;
41721
+ });
41722
+ }
41723
+ }
41682
41724
 
41683
41725
  function updateResizeRow(xInTable, yInTable, state) {
41684
41726
  xInTable = Math.ceil(xInTable), yInTable = Math.ceil(yInTable);
@@ -41766,7 +41808,7 @@
41766
41808
 
41767
41809
  class StateManager {
41768
41810
  constructor(table) {
41769
- this.fastScrolling = !1, this.checkedState = [], this.headerCheckedState = {}, this._checkboxCellTypeFields = [], this._headerCheckFuncs = {}, this.radioState = {}, this.resetInteractionState = debounce(state => {
41811
+ this.fastScrolling = !1, this.checkedState = new Map(), this.headerCheckedState = {}, this._checkboxCellTypeFields = [], this._headerCheckFuncs = {}, this.radioState = {}, this.resetInteractionState = debounce(state => {
41770
41812
  this.updateInteractionState(null != state ? state : InteractionState.default);
41771
41813
  }, 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this);
41772
41814
  }
@@ -42446,7 +42488,7 @@
42446
42488
  return syncRadioState(col, row, field, radioType, indexInCell, isChecked, this);
42447
42489
  }
42448
42490
  changeCheckboxAndRadioOrder(sourceIndex, targetIndex) {
42449
- this.checkedState.length && changeCheckboxOrder(sourceIndex, targetIndex, this), this.radioState.length && changeRadioOrder(sourceIndex, targetIndex, this);
42491
+ this.checkedState.size && changeCheckboxOrder(sourceIndex, targetIndex, this), this.radioState.length && changeRadioOrder(sourceIndex, targetIndex, this);
42450
42492
  }
42451
42493
  setCustomSelectRanges(customSelectRanges) {
42452
42494
  deletaCustomSelectRanges(this), addCustomSelectRanges(customSelectRanges, this);
@@ -42471,11 +42513,12 @@
42471
42513
  linkDetect = !1 !== columnDefine.linkDetect;
42472
42514
  let url;
42473
42515
  if (templateLink) {
42474
- const rowData = table.getCellOriginRecord(col, row),
42475
- data = Object.assign({
42476
- __value: cellValue,
42477
- __dataValue: cellOriginValue
42478
- }, rowData);
42516
+ const rowData = table.getCellOriginRecord(col, row);
42517
+ if (rowData.vtableMerge) return;
42518
+ const data = Object.assign({
42519
+ __value: cellValue,
42520
+ __dataValue: cellOriginValue
42521
+ }, rowData);
42479
42522
  if (isFunction$1(templateLink)) url = templateLink(data, col, row, table);else {
42480
42523
  const re = /\{\s*(\S+?)\s*\}/g;
42481
42524
  url = templateLink.replace(re, (matchs, key) => data[key]);
@@ -42484,6 +42527,7 @@
42484
42527
  if (!regUrl.test(cellValue)) return;
42485
42528
  url = cellValue;
42486
42529
  } else url = cellValue;
42530
+ if (!url) return;
42487
42531
  const linkTarget = columnDefine.linkTarget,
42488
42532
  linkWindowFeatures = columnDefine.linkWindowFeatures;
42489
42533
  window.open(url, linkTarget, linkWindowFeatures);
@@ -43079,7 +43123,7 @@
43079
43123
  table.fireListeners(TABLE_EVENT_TYPE.RADIO_STATE_CHANGE, cellsEvent), table.scenegraph.updateNextFrame();
43080
43124
  }), table.scenegraph.stage.addEventListener("wheel", e => {
43081
43125
  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));
43126
+ e.path.find(node => "legend" === node.name) || (null === (_a = table.editorManager) || void 0 === _a || _a.completeEdit(), table.eventManager._enableTableScroll && handleWhell(e, stateManager));
43083
43127
  });
43084
43128
  }
43085
43129
  function bindGesture(eventManager) {
@@ -45790,6 +45834,25 @@
45790
45834
  };
45791
45835
  }
45792
45836
 
45837
+ function getZeroAlignTickAlignTicks(targetRange, col, row, index, position, layout) {
45838
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
45839
+ {
45840
+ axisOption: axisOption,
45841
+ isZeroAlign: isZeroAlign
45842
+ } = getAxisOption(col, row, 0 === index ? "right" : "left", layout),
45843
+ {
45844
+ ticks: ticks
45845
+ } = 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);
45846
+ return ticks;
45847
+ }
45848
+ function getTickModeFunction(targetTicks, targetRange, range, indicatorIndex) {
45849
+ return 0 !== indicatorIndex && targetTicks ? () => targetTicks.map(value => {
45850
+ const percent = (value - targetRange.min) / (targetRange.max - targetRange.min),
45851
+ tick = (range.max - range.min) * percent + range.min;
45852
+ return Math.round(100 * tick) / 100;
45853
+ }) : void 0;
45854
+ }
45855
+
45793
45856
  function getAxisConfigInPivotChart(col, row, layout) {
45794
45857
  var _a, _b, _c, _d, _e, _f, _g;
45795
45858
  if (layout._table.isPivotChart()) if (layout.indicatorsAsCol) {
@@ -45802,19 +45865,11 @@
45802
45865
  range: range,
45803
45866
  ticks: ticks,
45804
45867
  axisOption: axisOption,
45805
- isZeroAlign: isZeroAlign,
45868
+ targetTicks: targetTicks,
45869
+ targetRange: targetRange,
45870
+ index: index,
45806
45871
  theme: theme
45807
45872
  } = 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
45873
  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
45874
  range: range
45820
45875
  }, axisOption, {
@@ -45823,13 +45878,16 @@
45823
45878
  label: {
45824
45879
  flush: !0
45825
45880
  },
45881
+ tick: {
45882
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45883
+ },
45826
45884
  __ticksForVTable: ticks,
45827
45885
  __vtableChartTheme: theme,
45828
45886
  __vtablePadding: padding
45829
45887
  });
45830
45888
  }
45831
45889
  if (row === layout.rowCount - layout.bottomFrozenRowCount && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
45832
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
45890
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
45833
45891
  let indicatorInfo = null;
45834
45892
  null == indicatorKeys || indicatorKeys.forEach(key => {
45835
45893
  const info = layout.getIndicatorInfo(key);
@@ -45843,19 +45901,11 @@
45843
45901
  range: range,
45844
45902
  ticks: ticks,
45845
45903
  axisOption: axisOption,
45846
- isZeroAlign: isZeroAlign,
45904
+ index: index,
45905
+ targetTicks: targetTicks,
45906
+ targetRange: targetRange,
45847
45907
  theme: theme
45848
45908
  } = 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
45909
  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
45910
  title: {
45861
45911
  visible: !0,
@@ -45868,6 +45918,9 @@
45868
45918
  label: {
45869
45919
  flush: !0
45870
45920
  },
45921
+ tick: {
45922
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45923
+ },
45871
45924
  __ticksForVTable: ticks,
45872
45925
  __vtableChartTheme: theme,
45873
45926
  __vtablePadding: padding
@@ -45904,7 +45957,7 @@
45904
45957
  }
45905
45958
  } else {
45906
45959
  if (col === layout.rowHeaderLevelCount - 1 && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
45907
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
45960
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
45908
45961
  let indicatorInfo = null;
45909
45962
  null == indicatorKeys || indicatorKeys.forEach(key => {
45910
45963
  const info = layout.getIndicatorInfo(key);
@@ -45918,19 +45971,11 @@
45918
45971
  range: range,
45919
45972
  ticks: ticks,
45920
45973
  axisOption: axisOption,
45921
- isZeroAlign: isZeroAlign,
45974
+ index: index,
45975
+ targetTicks: targetTicks,
45976
+ targetRange: targetRange,
45922
45977
  theme: theme
45923
45978
  } = 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
45979
  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
45980
  title: {
45936
45981
  visible: !0,
@@ -45944,6 +45989,9 @@
45944
45989
  label: {
45945
45990
  flush: !0
45946
45991
  },
45992
+ tick: {
45993
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
45994
+ },
45947
45995
  __ticksForVTable: ticks,
45948
45996
  __vtableChartTheme: theme,
45949
45997
  __vtablePadding: padding
@@ -45958,19 +46006,11 @@
45958
46006
  range: range,
45959
46007
  ticks: ticks,
45960
46008
  axisOption: axisOption,
45961
- isZeroAlign: isZeroAlign,
46009
+ index: index,
46010
+ targetTicks: targetTicks,
46011
+ targetRange: targetRange,
45962
46012
  theme: theme
45963
46013
  } = 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
46014
  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
46015
  range: range,
45976
46016
  title: {
@@ -45982,6 +46022,9 @@
45982
46022
  label: {
45983
46023
  flush: !0
45984
46024
  },
46025
+ tick: {
46026
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
46027
+ },
45985
46028
  __ticksForVTable: ticks,
45986
46029
  __vtableChartTheme: theme,
45987
46030
  __vtablePadding: padding
@@ -46028,23 +46071,35 @@
46028
46071
  seriesId: seriesId
46029
46072
  } = axisOption;
46030
46073
  let seriesIndice, seriesSpec;
46031
- return isValid$1(seriesId) && isArray$1(spec.series) ? seriesIndice = (isArray$1(seriesId) ? seriesId : [seriesId]).map(id => {
46074
+ isValid$1(seriesId) && isArray$1(spec.series) ? seriesIndice = (isArray$1(seriesId) ? seriesId : [seriesId]).map(id => {
46032
46075
  const index = spec.series.findIndex(s => s.id === id);
46033
46076
  return index >= 0 && (seriesSpec = spec.series[index]), index;
46034
- }) : isValid$1(seriesIndex) && isArray$1(spec.series) && (seriesIndice = seriesIndex), {
46077
+ }) : isValid$1(seriesIndex) && isArray$1(spec.series) && (seriesIndice = seriesIndex);
46078
+ const {
46079
+ isZeroAlign: isZeroAlign,
46080
+ isTickAlign: isTickAlign
46081
+ } = checkZeroAlign(spec, orient, layout);
46082
+ return {
46035
46083
  axisOption: axisOption,
46036
46084
  isPercent: spec.percent,
46037
- isZeroAlign: checkZeroAlign(spec, orient, layout),
46085
+ isZeroAlign: isZeroAlign,
46086
+ isTickAlign: isTickAlign,
46038
46087
  seriesIndice: seriesIndice,
46039
46088
  theme: spec.theme,
46040
46089
  chartType: null !== (_b = null == seriesSpec ? void 0 : seriesSpec.type) && void 0 !== _b ? _b : spec.type
46041
46090
  };
46042
46091
  }
46043
46092
  }
46093
+ const axisOption = layout._table.pivotChartAxes.find(axisOption => axisOption.orient === orient),
46094
+ {
46095
+ isZeroAlign: isZeroAlign,
46096
+ isTickAlign: isTickAlign
46097
+ } = checkZeroAlign(spec, orient, layout);
46044
46098
  return {
46045
- axisOption: layout._table.pivotChartAxes.find(axisOption => axisOption.orient === orient),
46099
+ axisOption: axisOption,
46046
46100
  isPercent: !1,
46047
- isZeroAlign: checkZeroAlign(spec, orient, layout),
46101
+ isZeroAlign: isZeroAlign,
46102
+ isTickAlign: isTickAlign,
46048
46103
  theme: spec.theme,
46049
46104
  chartType: spec.type
46050
46105
  };
@@ -46052,17 +46107,23 @@
46052
46107
  function checkZeroAlign(spec, orient, layout) {
46053
46108
  const orients = [];
46054
46109
  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)) {
46110
+ "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;
46111
+ let isZeroAlign = !1,
46112
+ isTickAlign = !1;
46113
+ if (isArray$1(axesSpec)) {
46056
46114
  const axes = [];
46057
46115
  axesSpec.forEach(axis => {
46058
46116
  orients.includes(axis.orient) && axes.push(axis);
46059
46117
  });
46060
46118
  for (let i = 0; i < axes.length; i++) {
46061
46119
  const axis = axes[i];
46062
- if (axis.sync && axis.sync.zeroAlign && axis.sync.axisId && axes.find(axisSync => axisSync.id === axis.sync.axisId)) return !0;
46120
+ axis.sync && axis.sync.axisId && axes.find(axisSync => axisSync.id === axis.sync.axisId) && (isZeroAlign = isZeroAlign || axis.sync.zeroAlign, isTickAlign = isTickAlign || axis.sync.tickAlign);
46063
46121
  }
46064
46122
  }
46065
- return !1;
46123
+ return {
46124
+ isZeroAlign: isZeroAlign,
46125
+ isTickAlign: isTickAlign
46126
+ };
46066
46127
  }
46067
46128
  function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seriesId) {
46068
46129
  var _a;
@@ -46086,36 +46147,6 @@
46086
46147
  });
46087
46148
  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
46149
  }
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
46150
  function isTopOrBottomAxis(col, row, layout) {
46120
46151
  if (!layout._table.isPivotChart()) return !1;
46121
46152
  if (layout.indicatorsAsCol) {
@@ -46145,6 +46176,85 @@
46145
46176
  !function (Direction) {
46146
46177
  Direction.vertical = "vertical", Direction.horizontal = "horizontal";
46147
46178
  }(Direction || (Direction = {}));
46179
+ function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
46180
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);
46181
+ let path;
46182
+ path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
46183
+ const rangeConfig = getChartAxisRange(colForAxisOption, rowForAxisOption, defaultSeriesIndice, position, indicatorKeys, path, layout);
46184
+ if (!rangeConfig) return;
46185
+ const subAxisPosition = "bottom" === position ? "top" : "top" === position ? "bottom" : "left" === position ? "right" : "left",
46186
+ {
46187
+ targetRange: targetRange,
46188
+ targetTicks: targetTicks
46189
+ } = getTargetRangeAndTicks(colForAxisOption, rowForAxisOption, rangeConfig.index, rangeConfig.isZeroAlign, rangeConfig.isTickAlign, rangeConfig.range, indicatorKeys, subAxisPosition, path, layout);
46190
+ if (0 !== rangeConfig.index && targetTicks) {
46191
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
46192
+ {
46193
+ range: newRange,
46194
+ ticks: newTicks
46195
+ } = 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, {
46196
+ targetTicks: targetTicks,
46197
+ targetRange: targetRange
46198
+ });
46199
+ rangeConfig.range.min = newRange[0], rangeConfig.range.max = newRange[1], rangeConfig.ticks = newTicks;
46200
+ }
46201
+ return rangeConfig.targetRange = targetRange, rangeConfig.targetTicks = targetTicks, rangeConfig;
46202
+ }
46203
+ function getChartAxisRange(col, row, index, position, indicatorKeys, path, layout) {
46204
+ const {
46205
+ axisOption: axisOption,
46206
+ isPercent: isPercent,
46207
+ isZeroAlign: isZeroAlign,
46208
+ isTickAlign: isTickAlign,
46209
+ seriesIndice: seriesIndice,
46210
+ theme: theme,
46211
+ chartType: chartType
46212
+ } = getAxisOption(col, row, position, layout),
46213
+ range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : index);
46214
+ if (!range) return;
46215
+ let ticks;
46216
+ 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) {
46217
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"),
46218
+ {
46219
+ range: axisRange,
46220
+ ticks: selfTicks
46221
+ } = 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);
46222
+ (null == axisOption ? void 0 : axisOption.nice) && (range.min = axisRange[0], range.max = axisRange[1]), ticks = selfTicks;
46223
+ }
46224
+ 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), {
46225
+ index: null != seriesIndice ? seriesIndice : index,
46226
+ range: range,
46227
+ ticks: ticks,
46228
+ isZeroAlign: isZeroAlign,
46229
+ isTickAlign: isTickAlign,
46230
+ axisOption: axisOption,
46231
+ theme: theme,
46232
+ chartType: chartType
46233
+ };
46234
+ }
46235
+ function getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout) {
46236
+ let targetTicks, targetRange;
46237
+ if (!isZeroAlign && !isTickAlign) return {
46238
+ targetTicks: targetTicks,
46239
+ targetRange: targetRange
46240
+ };
46241
+ const subAxisRange = getChartAxisRange(col, row, indicatorKeys.length - 1 - index, subAxisPosition, indicatorKeys, path, layout);
46242
+ if (subAxisRange) {
46243
+ const {
46244
+ range: subRange,
46245
+ ticks: subTicks
46246
+ } = subAxisRange;
46247
+ if (targetRange = subRange, isZeroAlign) {
46248
+ const align = getNewRangeToAlign(range, subRange);
46249
+ align && (range.min = align.range1[0], range.max = align.range1[1], targetRange.min = align.range2[0], targetRange.max = align.range2[1]);
46250
+ }
46251
+ isTickAlign && (targetTicks = isZeroAlign ? getZeroAlignTickAlignTicks(targetRange, col, row, index, subAxisPosition, layout) : subTicks);
46252
+ }
46253
+ return {
46254
+ targetTicks: targetTicks,
46255
+ targetRange: targetRange
46256
+ };
46257
+ }
46148
46258
 
46149
46259
  class CustomCellStylePlugin {
46150
46260
  constructor(table, customCellStyle, customCellStyleArrangement) {
@@ -46184,7 +46294,7 @@
46184
46294
  if (cellStyle.customStyleId === customStyleId) if (cellPos.range) for (let col = Math.max(0, cellPos.range.start.col); col <= Math.min(this.table.colCount - 1, cellPos.range.end.col); col++) for (let row = Math.max(0, cellPos.range.start.row); row <= Math.min(this.table.rowCount - 1, cellPos.range.end.row); row++) this.table.scenegraph.updateCellContent(col, row);else this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row);
46185
46295
  }), this.table.scenegraph.updateNextFrame();
46186
46296
  }
46187
- arrangeCustomCellStyle(cellPos, customStyleId) {
46297
+ arrangeCustomCellStyle(cellPos, customStyleId, forceFastUpdate) {
46188
46298
  var _a;
46189
46299
  const index = this.customCellStyleArrangement.findIndex(style => style.cellPosition.range && cellPos.range ? style.cellPosition.range.start.col === cellPos.range.start.col && style.cellPosition.range.start.row === cellPos.range.start.row && style.cellPosition.range.end.col === cellPos.range.end.col && style.cellPosition.range.end.row === cellPos.range.end.row : style.cellPosition.col === cellPos.col && style.cellPosition.row === cellPos.row);
46190
46300
  if (-1 === index && !customStyleId) return;
@@ -46200,7 +46310,6 @@
46200
46310
  customStyleId ? this.customCellStyleArrangement[index].customStyleId = customStyleId : this.customCellStyleArrangement.splice(index, 1);
46201
46311
  }
46202
46312
  const style = null === (_a = this.getCustomCellStyleOption(customStyleId)) || void 0 === _a ? void 0 : _a.style;
46203
- let forceFastUpdate;
46204
46313
  if (style) {
46205
46314
  forceFastUpdate = !0;
46206
46315
  for (const key in style) if (-1 === cellStyleKeys.indexOf(key)) {
@@ -46229,7 +46338,7 @@
46229
46338
  cacheStyle = cacheStyle.clone();
46230
46339
  for (const key in customCellStyle) {
46231
46340
  const value = customCellStyle[key];
46232
- value && (cacheStyle[`_${key}`] = value);
46341
+ isValid$1(value) && (cacheStyle[`_${key}`] = value);
46233
46342
  }
46234
46343
  return cacheStyle;
46235
46344
  }
@@ -46372,7 +46481,7 @@
46372
46481
  constructor(container) {
46373
46482
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46374
46483
  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");
46484
+ if (super(), this.showFrozenIcon = !0, this.version = "1.14.0", 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
46485
  const {
46377
46486
  frozenColCount = 0,
46378
46487
  frozenRowCount: frozenRowCount,
@@ -46758,7 +46867,7 @@
46758
46867
  startRow = Math.max(startRow, 0), endRow = Math.min(endRow, (null !== (_a = this.rowCount) && void 0 !== _a ? _a : 1 / 0) - 1);
46759
46868
  let h = 0;
46760
46869
  const isDefaultRowHeightIsAuto = "auto" === this.options.defaultRowHeight;
46761
- if ("standard" !== this.heightMode || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || isDefaultRowHeightIsAuto || 0 !== this.internalProps._heightResizedRowMap.size) {
46870
+ if ("standard" !== this.heightMode || this.options.customComputeRowHeight || this.autoFillHeight || !this.internalProps.layoutMap || this.hasAutoImageColumn() || isDefaultRowHeightIsAuto || 0 !== this.internalProps._heightResizedRowMap.size) {
46762
46871
  if (null === (_b = this.options.customConfig) || void 0 === _b ? void 0 : _b._disableColumnAndRowSizeRound) {
46763
46872
  const tempH = this.rowHeightsMap.getSumInRange(startRow, endRow);
46764
46873
  let heightRange;
@@ -46788,7 +46897,7 @@
46788
46897
  return this._adjustColWidth(col, this._colWidthDefineToPxWidth(width));
46789
46898
  }
46790
46899
  isAutoRowHeight(row) {
46791
- return "autoHeight" === this.heightMode || row >= 0 && row < this.columnHeaderLevelCount && "auto" === this.getDefaultRowHeight(row);
46900
+ return "autoHeight" === this.heightMode || !!this.options.customComputeRowHeight || row >= 0 && row < this.columnHeaderLevelCount && "auto" === this.getDefaultRowHeight(row);
46792
46901
  }
46793
46902
  getColWidth(col) {
46794
46903
  var _a;
@@ -48067,9 +48176,9 @@
48067
48176
  var _a;
48068
48177
  null === (_a = this.customCellStylePlugin) || void 0 === _a || _a.registerCustomCellStyle(customStyleId, customStyle);
48069
48178
  }
48070
- arrangeCustomCellStyle(cellPos, customStyleId) {
48179
+ arrangeCustomCellStyle(cellPos, customStyleId, forceFastUpdate) {
48071
48180
  var _a;
48072
- null === (_a = this.customCellStylePlugin) || void 0 === _a || _a.arrangeCustomCellStyle(cellPos, customStyleId);
48181
+ null === (_a = this.customCellStylePlugin) || void 0 === _a || _a.arrangeCustomCellStyle(cellPos, customStyleId, forceFastUpdate);
48073
48182
  }
48074
48183
  isSeriesNumber(col, row) {
48075
48184
  return this.internalProps.layoutMap.isSeriesNumber(col, row);
@@ -48747,14 +48856,34 @@
48747
48856
  const last_Value = layout._table.getCellValue(col, r);
48748
48857
  if ("boolean" == typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell) {
48749
48858
  if (value !== last_Value) break;
48750
- } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, last_Value)) break;
48859
+ } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, last_Value, {
48860
+ source: {
48861
+ col: col,
48862
+ row: row
48863
+ },
48864
+ target: {
48865
+ col: col,
48866
+ row: r
48867
+ },
48868
+ table: layout._table
48869
+ })) break;
48751
48870
  cellRange.start.row = r;
48752
48871
  }
48753
48872
  for (let r = row + 1; r < layout.rowCount; r++) {
48754
48873
  const next_Value = layout._table.getCellValue(col, r);
48755
48874
  if ("boolean" == typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell) {
48756
48875
  if (value !== next_Value) break;
48757
- } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, next_Value)) break;
48876
+ } else if (!layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell(value, next_Value, {
48877
+ source: {
48878
+ col: col,
48879
+ row: row
48880
+ },
48881
+ target: {
48882
+ col: col,
48883
+ row: r
48884
+ },
48885
+ table: layout._table
48886
+ })) break;
48758
48887
  cellRange.end.row = r;
48759
48888
  }
48760
48889
  }
@@ -48792,14 +48921,34 @@
48792
48921
  const last_Value = layout._table.getCellValue(c, row);
48793
48922
  if ("boolean" == typeof layout.columnObjects[row].define.mergeCell) {
48794
48923
  if (value !== last_Value) break;
48795
- } else if (!layout.columnObjects[row].define.mergeCell(value, last_Value)) break;
48924
+ } else if (!layout.columnObjects[row].define.mergeCell(value, last_Value, {
48925
+ source: {
48926
+ col: col,
48927
+ row: row
48928
+ },
48929
+ target: {
48930
+ col: c,
48931
+ row: row
48932
+ },
48933
+ table: layout._table
48934
+ })) break;
48796
48935
  result.start.col = c;
48797
48936
  }
48798
48937
  for (let c = col + 1; c < (null !== (_c = layout.colCount) && void 0 !== _c ? _c : 0); c++) {
48799
48938
  const next_Value = layout._table.getCellValue(c, row);
48800
48939
  if ("boolean" == typeof layout.columnObjects[row].define.mergeCell) {
48801
48940
  if (value !== next_Value) break;
48802
- } else if (!layout.columnObjects[row].define.mergeCell(value, next_Value)) break;
48941
+ } else if (!layout.columnObjects[row].define.mergeCell(value, next_Value, {
48942
+ source: {
48943
+ col: col,
48944
+ row: row
48945
+ },
48946
+ target: {
48947
+ col: c,
48948
+ row: row
48949
+ },
48950
+ table: layout._table
48951
+ })) break;
48803
48952
  result.end.col = c;
48804
48953
  }
48805
48954
  }
@@ -49556,7 +49705,7 @@
49556
49705
  }
49557
49706
  }
49558
49707
 
49559
- class EditManeger {
49708
+ class EditManager {
49560
49709
  constructor(table) {
49561
49710
  this.isValidatingValue = !1, this.table = table, this.bindEvent();
49562
49711
  }
@@ -49632,14 +49781,16 @@
49632
49781
  } else if (!editor.isEditorElement || editor.isEditorElement(target)) return !1;
49633
49782
  if (this.editingEditor.getValue, this.editingEditor.validateValue) {
49634
49783
  this.isValidatingValue = !0;
49635
- const maybePromiseOrValue = null === (_b = (_a = this.editingEditor).validateValue) || void 0 === _b ? void 0 : _b.call(_a);
49636
- return isPromise(maybePromiseOrValue) ? new Promise((resolve, reject) => {
49784
+ const newValue = this.editingEditor.getValue(),
49785
+ oldValue = this.table.getCellOriginValue(this.editCell.col, this.editCell.row),
49786
+ maybePromiseOrValue = null === (_b = (_a = this.editingEditor).validateValue) || void 0 === _b ? void 0 : _b.call(_a, newValue, oldValue, this.editCell, this.table);
49787
+ return isPromise(maybePromiseOrValue) ? (this.isValidatingValue = !0, new Promise((resolve, reject) => {
49637
49788
  maybePromiseOrValue.then(result => {
49638
- result ? (this.doExit(), resolve(!0)) : (this.isValidatingValue = !1, resolve(!1));
49789
+ dealWithValidateValue(result, this, oldValue, resolve);
49639
49790
  }).catch(err => {
49640
49791
  this.isValidatingValue = !1, reject(err);
49641
49792
  });
49642
- }) : !!maybePromiseOrValue && (this.doExit(), !0);
49793
+ })) : dealWithValidateValue(maybePromiseOrValue, this, oldValue);
49643
49794
  }
49644
49795
  return this.doExit(), !0;
49645
49796
  }
@@ -49660,6 +49811,9 @@
49660
49811
  this.editingEditor && (null === (_b = (_a = this.editingEditor).exit) || void 0 === _b || _b.call(_a), null === (_d = (_c = this.editingEditor).onEnd) || void 0 === _d || _d.call(_c), this.editingEditor = null);
49661
49812
  }
49662
49813
  }
49814
+ function dealWithValidateValue(validateValue, editManager, oldValue, resolve) {
49815
+ return editManager.isValidatingValue = !1, "validate-exit" === validateValue ? (editManager.doExit(), null == resolve || resolve(!0), !0) : "invalidate-exit" === validateValue ? (editManager.editingEditor.setValue(oldValue), editManager.doExit(), null == resolve || resolve(!0), !0) : "validate-not-exit" === validateValue || "invalidate-not-exit" === validateValue ? (null == resolve || resolve(!1), !1) : !0 === validateValue ? (editManager.doExit(), null == resolve || resolve(!0), !0) : (null == resolve || resolve(!1), !1);
49816
+ }
49663
49817
 
49664
49818
  function getGroupByDataConfig(groupByOption) {
49665
49819
  if (isString$2(groupByOption)) return {
@@ -49698,7 +49852,7 @@
49698
49852
  newWidth = computeColWidth(col, 0, table.rowCount - 1, table, !1);
49699
49853
  newWidth !== oldWidth && table.scenegraph.updateColWidth(col, newWidth - oldWidth);
49700
49854
  }
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)) {
49855
+ 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
49856
  const oldHeight = table.getRowHeight(row),
49703
49857
  newHeight = computeRowHeight(row, 0, table.colCount - 1, table);
49704
49858
  table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
@@ -49744,7 +49898,7 @@
49744
49898
  oldValue = oldValues[i][j],
49745
49899
  value = rowValues[j],
49746
49900
  maybePromiseOrValue = null === (_b = null === (_a = null == editor ? void 0 : editor.validateValue) || void 0 === _a ? void 0 : _a.call(editor, value, oldValue)) || void 0 === _b || _b;
49747
- isCanChange = !!isPromise(maybePromiseOrValue) || maybePromiseOrValue;
49901
+ isCanChange = !!isPromise(maybePromiseOrValue) || !0 === maybePromiseOrValue || "validate-exit" === maybePromiseOrValue || "invalidate-exit" === maybePromiseOrValue;
49748
49902
  }
49749
49903
  if (isCanChange) {
49750
49904
  const value = rowValues[j],
@@ -49785,7 +49939,7 @@
49785
49939
  newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, !1);
49786
49940
  newWidth !== oldWidth && table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
49787
49941
  }
49788
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if ("autoHeight" === table.heightMode) {
49942
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights();else if (table.isAutoRowHeight()) {
49789
49943
  const rows = [],
49790
49944
  deltaYs = [];
49791
49945
  for (let sRow = startRow; sRow <= range.end.row; sRow++) if (table.rowHeightsMap.get(sRow)) {
@@ -50120,8 +50274,7 @@
50120
50274
  proxy = table.scenegraph.proxy,
50121
50275
  {
50122
50276
  rowStart: rowStart,
50123
- rowLimit: rowLimit,
50124
- bodyBottomRow: bodyBottomRow
50277
+ rowLimit: rowLimit
50125
50278
  } = proxy;
50126
50279
  let {
50127
50280
  rowEnd: rowEnd
@@ -50136,14 +50289,15 @@
50136
50289
  row: cellRow
50137
50290
  }), rowEnd++);
50138
50291
  }
50292
+ const newRowEnd = Math.min(rowStart + rowLimit, table.rowCount - 1 - table.bottomFrozenRowCount);
50139
50293
  for (let i = 0; i < removeCellPositions.length; i++) {
50140
50294
  const {
50141
50295
  row: cellRow
50142
- } = removeCellPositions[i];
50143
- cellRow < rowStart || cellRow > rowEnd || (rowEnd === bodyBottomRow ? removeCells.push({
50296
+ } = removeCellPositions[removeCellPositions.length - i - 1];
50297
+ cellRow < rowStart || cellRow > rowEnd || (cellRow > newRowEnd ? (removeCells.push({
50144
50298
  col: col,
50145
50299
  row: cellRow
50146
- }) : updateRow = Math.min(updateRow, cellRow));
50300
+ }), updateRow--) : updateRow = Math.min(updateRow, cellRow));
50147
50301
  }
50148
50302
  if (updateRow !== 1 / 0) for (let i = updateRow; i <= rowEnd; i++) updateCells.push({
50149
50303
  col: col,
@@ -50161,7 +50315,7 @@
50161
50315
  var _a, _b, _c, _d, _e, _f;
50162
50316
  "node" === Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container, container = container.container ? container.container : null), super(container, options), this.showHeader = !0;
50163
50317
  const internalProps = this.internalProps;
50164
- if (internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode, this.pagination = options.pagination, internalProps.sortState = options.sortState, internalProps.multipleSort = !!options.multipleSort, internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {}, internalProps.columns = options.columns ? cloneDeepSpec(options.columns, ["children"]) : options.header ? cloneDeepSpec(options.header, ["children"]) : [], generateAggregationForColumn(this), internalProps.enableTreeNodeMerge = null !== (_b = null !== (_a = options.enableTreeNodeMerge) && void 0 !== _a ? _a : isValid$1(options.groupBy)) && void 0 !== _b && _b, this.internalProps.headerHelper.setTableColumnsEditor(), this.showHeader = null === (_c = options.showHeader) || void 0 === _c || _c, this.transpose = null !== (_d = options.transpose) && void 0 !== _d && _d, "node" !== Env.mode && (this.editorManager = new EditManeger(this)), this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1, options.dataSource ? _setDataSource(this, options.dataSource) : options.records ? this.setRecords(options.records, {
50318
+ if (internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode, this.pagination = options.pagination, internalProps.sortState = options.sortState, internalProps.multipleSort = !!options.multipleSort, internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {}, internalProps.columns = options.columns ? cloneDeepSpec(options.columns, ["children"]) : options.header ? cloneDeepSpec(options.header, ["children"]) : [], generateAggregationForColumn(this), internalProps.enableTreeNodeMerge = null !== (_b = null !== (_a = options.enableTreeNodeMerge) && void 0 !== _a ? _a : isValid$1(options.groupBy)) && void 0 !== _b && _b, this.internalProps.headerHelper.setTableColumnsEditor(), this.showHeader = null === (_c = options.showHeader) || void 0 === _c || _c, this.transpose = null !== (_d = options.transpose) && void 0 !== _d && _d, "node" !== Env.mode && (this.editorManager = new EditManager(this)), this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1, options.dataSource ? _setDataSource(this, options.dataSource) : options.records ? this.setRecords(options.records, {
50165
50319
  sortState: internalProps.sortState
50166
50320
  }) : this.setRecords([]), options.title) {
50167
50321
  const Title = Factory.getComponent("title");
@@ -50237,10 +50391,8 @@
50237
50391
  return title;
50238
50392
  }
50239
50393
  if (this.options.groupBy) {
50240
- const {
50241
- vtableMerge: vtableMerge
50242
- } = table.getCellRawRecord(col, row);
50243
- if (vtableMerge) return "";
50394
+ const record = table.getCellRawRecord(col, row);
50395
+ if (null == record ? void 0 : record.vtableMerge) return "";
50244
50396
  const indexs = this.dataSource.currentIndexedData[row - this.columnHeaderLevelCount];
50245
50397
  return indexs[indexs.length - 1] + 1;
50246
50398
  }
@@ -50574,11 +50726,11 @@
50574
50726
  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
50727
  }
50576
50728
  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;
50729
+ if (this.stateManager.checkedState.size < this.rowCount - this.columnHeaderLevelCount && this.stateManager.initLeftRecordsCheckState(this.records), isValid$1(field)) {
50730
+ let stateArr = this.stateManager.checkedState.values();
50579
50731
  return this.options.groupBy && (stateArr = getGroupCheckboxState(this)), stateArr.map(state => state[field]);
50580
50732
  }
50581
- return this.stateManager.checkedState;
50733
+ return new Array(...this.stateManager.checkedState.values());
50582
50734
  }
50583
50735
  getCellCheckboxState(col, row) {
50584
50736
  var _a;
@@ -50586,8 +50738,8 @@
50586
50738
  field = null == define ? void 0 : define.field,
50587
50739
  cellType = this.getCellType(col, row);
50588
50740
  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];
50741
+ const dataIndex = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row)).toString();
50742
+ return null === (_a = this.stateManager.checkedState.get(dataIndex)) || void 0 === _a ? void 0 : _a[field];
50591
50743
  }
50592
50744
  }
50593
50745
  getRadioState(field) {
@@ -52137,7 +52289,7 @@
52137
52289
  }
52138
52290
 
52139
52291
  function computeAxisComponentWidth(config, table) {
52140
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
52292
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
52141
52293
  const attribute = merge({}, commonAxis, config);
52142
52294
  let tickWidth = 0;
52143
52295
  !1 !== attribute.tick.visible && (tickWidth = null !== (_a = attribute.tick.width) && void 0 !== _a ? _a : 4);
@@ -52161,7 +52313,7 @@
52161
52313
  });
52162
52314
  } else {
52163
52315
  let ticks;
52164
- if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52316
+ 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
52317
  const range = attribute.range,
52166
52318
  minNumber = Math.abs(range.min) > 1 ? Math.round(range.min) : range.min,
52167
52319
  maxNumber = Math.abs(range.max) > 1 ? Math.round(range.max) : range.max;
@@ -52183,7 +52335,7 @@
52183
52335
  labelWidth = Math.max(labelWidth, getSizeAfterResize(Math.min(width, widthLimit), height, angle).width);
52184
52336
  });
52185
52337
  }
52186
- labelWidth += null !== (_b = attribute.label.space) && void 0 !== _b ? _b : 4;
52338
+ labelWidth += null !== (_d = attribute.label.space) && void 0 !== _d ? _d : 4;
52187
52339
  }
52188
52340
  let titleWidth = 0;
52189
52341
  if (attribute.title.visible && isString$2(attribute.title.text)) {
@@ -52191,18 +52343,18 @@
52191
52343
  width: width,
52192
52344
  height: height
52193
52345
  } = 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
52346
+ 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,
52347
+ 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",
52348
+ 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
52349
  }),
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;
52350
+ widthLimit = (null === (_q = null === (_p = attribute.label) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.maxLineWidth) || 1 / 0,
52351
+ 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);
52352
+ 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
52353
  }
52202
52354
  return tickWidth + labelWidth + titleWidth + 1;
52203
52355
  }
52204
52356
  function computeAxisComponentHeight(config, table) {
52205
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
52357
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
52206
52358
  const attribute = merge({}, commonAxis, config);
52207
52359
  let tickHeight = 0;
52208
52360
  !1 !== attribute.tick.visible && (tickHeight = null !== (_a = attribute.tick.width) && void 0 !== _a ? _a : 4);
@@ -52226,7 +52378,7 @@
52226
52378
  });
52227
52379
  } else {
52228
52380
  let ticks;
52229
- if (isArray$1(config.__ticksForVTable)) ticks = config.__ticksForVTable;else {
52381
+ 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
52382
  const range = attribute.range,
52231
52383
  minNumber = Math.abs(range.min) > 1 ? Math.round(range.min) : range.min,
52232
52384
  maxNumber = Math.abs(range.max) > 1 ? Math.round(range.max) : range.max;
@@ -52248,7 +52400,7 @@
52248
52400
  labelHeight = Math.max(labelHeight, getSizeAfterResize(Math.min(width, widthLimit), height, angle).height);
52249
52401
  });
52250
52402
  }
52251
- labelHeight += null !== (_b = attribute.label.space) && void 0 !== _b ? _b : 4;
52403
+ labelHeight += null !== (_d = attribute.label.space) && void 0 !== _d ? _d : 4;
52252
52404
  }
52253
52405
  let titleHeight = 0;
52254
52406
  if (attribute.title.visible && attribute.title.text) {
@@ -52256,13 +52408,13 @@
52256
52408
  width: width,
52257
52409
  height: height
52258
52410
  } = 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
52411
+ 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,
52412
+ 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",
52413
+ 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
52414
  }),
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;
52415
+ widthLimit = (null === (_q = null === (_p = attribute.label) || void 0 === _p ? void 0 : _p.style) || void 0 === _q ? void 0 : _q.maxLineWidth) || 1 / 0,
52416
+ 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);
52417
+ 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
52418
  }
52267
52419
  return tickHeight + labelHeight + titleHeight + 1;
52268
52420
  }
@@ -54014,7 +54166,7 @@
54014
54166
  lineClamp: lineClamp
54015
54167
  } = cellStyle,
54016
54168
  autoColWidth = "auto" === colWidth,
54017
- autoRowHeight = "autoHeight" === table.heightMode,
54169
+ autoRowHeight = table.isAutoRowHeight(),
54018
54170
  attribute = {
54019
54171
  maxLineWidth: autoColWidth ? 1 / 0 : cellWidth - (padding[1] + padding[3] + hierarchyOffset) - size - spaceBetweenTextAndIcon,
54020
54172
  textAlign: "left",
@@ -54891,15 +55043,15 @@
54891
55043
  return percentCompleteBarGroup;
54892
55044
  }
54893
55045
 
54894
- function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, axisLength, skipTick) {
54895
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
55046
+ function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, axisLength, target) {
55047
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
54896
55048
  if ((null == axisOption ? void 0 : axisOption.zero) && (min = Math.min(min, 0), max = Math.max(max, 0)), null == axisOption ? void 0 : axisOption.expand) {
54897
55049
  const domainMin = min,
54898
55050
  domainMax = max;
54899
55051
  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
55052
  }
54901
55053
  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) {
55054
+ 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
55055
  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
55056
  isFunction$1(tickCount) && (tickCount = tickCount({
54905
55057
  axisLength: axisLength,
@@ -54908,13 +55060,16 @@
54908
55060
  }
54909
55061
  })), "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
55062
  }
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
- })), {
55063
+ 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(isNumber$2(null === (_q = null == axisOption ? void 0 : axisOption.tick) || void 0 === _q ? void 0 : _q.tickCount) ? axisOption.tick.tickCount : 5, {
55064
+ noDecimals: null === (_r = null == axisOption ? void 0 : axisOption.tick) || void 0 === _r ? void 0 : _r.noDecimals
55065
+ }), {
54914
55066
  range: scale.domain(),
54915
55067
  ticks: scaleTicks
54916
55068
  };
54917
55069
  }
55070
+ function forceTickCountNice(scale, target) {
55071
+ scale.niceMax(target.targetTicks.length);
55072
+ }
54918
55073
 
54919
55074
  const registerChartCell = () => {
54920
55075
  Factory.registerFunction("createChartCellGroup", createChartCellGroup), Factory.registerFunction("getAxisDomainRangeAndLabels", getAxisDomainRangeAndLabels);