@visactor/vtable-sheet 1.24.0 → 1.25.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.
@@ -43643,12 +43643,14 @@
43643
43643
  return limits ? limits.min && limits.min > orgWidth ? limits.min : limits.max && limits.max < orgWidth ? limits.max : orgWidth : orgWidth;
43644
43644
  }
43645
43645
  function _getScrollableVisibleRect(table) {
43646
+ var _a, _b;
43646
43647
  let frozenColsWidth = 0,
43648
+ frozenColsContentWidth = 0,
43647
43649
  rightFrozenColsWidth = 0;
43648
- table.frozenColCount > 0 && (frozenColsWidth = table.getFrozenColsWidth()), table.rightFrozenColCount > 0 && (rightFrozenColsWidth = table.getRightFrozenColsWidth());
43650
+ table.frozenColCount > 0 && (frozenColsWidth = table.getFrozenColsWidth(), frozenColsContentWidth = null !== (_b = null === (_a = table.getFrozenColsContentWidth) || void 0 === _a ? void 0 : _a.call(table)) && void 0 !== _b ? _b : frozenColsWidth), table.rightFrozenColCount > 0 && (rightFrozenColsWidth = table.getRightFrozenColsWidth());
43649
43651
  let frozenRowsHeight = 0,
43650
43652
  bottomFrozenRowsHeight = 0;
43651
- return table.frozenRowCount > 0 && (frozenRowsHeight = table.getFrozenRowsHeight()), table.bottomFrozenRowCount > 0 && (bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight()), new Rect$1(table.scrollLeft + frozenColsWidth, table.scrollTop + frozenRowsHeight, table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth, table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight);
43653
+ return table.frozenRowCount > 0 && (frozenRowsHeight = table.getFrozenRowsHeight()), table.bottomFrozenRowCount > 0 && (bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight()), new Rect$1(table.scrollLeft + frozenColsContentWidth, table.scrollTop + frozenRowsHeight, table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth, table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight);
43652
43654
  }
43653
43655
  function getStyleTheme(headerStyle, table, col, row, getProp, needGetTheme = !0) {
43654
43656
  const padding = getQuadProps(getProp("padding", headerStyle, col, row, table)),
@@ -44299,6 +44301,32 @@
44299
44301
  target: e.target
44300
44302
  }), tableEvent;
44301
44303
  }
44304
+ function getCellEventArgsSetWithTable(e, table) {
44305
+ var _a;
44306
+ const eventArgsSet = getCellEventArgsSet(e);
44307
+ if (!eventArgsSet.eventArgs) return eventArgsSet;
44308
+ if (!table.options.scrollFrozenCols || 0 === (null === (_a = table.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(table))) return eventArgsSet;
44309
+ const xInTable = e.x - table.tableX,
44310
+ yInTable = e.y - table.tableY;
44311
+ if (xInTable < 0 || yInTable < 0 || xInTable > table.tableNoFrameWidth || yInTable > table.tableNoFrameHeight) return eventArgsSet;
44312
+ const frozenViewportWidth = table.getFrozenColsWidth(),
44313
+ pickedCol = eventArgsSet.eventArgs.col,
44314
+ pickedRow = eventArgsSet.eventArgs.row;
44315
+ if (pickedCol >= 0 && pickedCol < table.frozenColCount && !table.isRightFrozenColumn(pickedCol, pickedRow) && xInTable >= frozenViewportWidth) {
44316
+ const cell = table.getCellAtRelativePosition(e.x, e.y);
44317
+ if (-1 === cell.col || -1 === cell.row) return eventArgsSet;
44318
+ const targetCell = table.scenegraph.getCell(cell.col, cell.row);
44319
+ eventArgsSet.eventArgs = {
44320
+ col: cell.col,
44321
+ row: cell.row,
44322
+ event: e,
44323
+ targetCell: targetCell,
44324
+ mergeInfo: getMergeCellInfo(targetCell),
44325
+ target: targetCell
44326
+ };
44327
+ }
44328
+ return eventArgsSet;
44329
+ }
44302
44330
  function getTargetCell(target) {
44303
44331
  for (; target && target.parent;) {
44304
44332
  if ("cell" === target.role) return target;
@@ -47264,9 +47292,12 @@
47264
47292
  }
47265
47293
 
47266
47294
  function getColX(col, table, isRightFrozen) {
47267
- if (isRightFrozen) return Math.min(table.tableNoFrameWidth, table.getAllColsWidth()) - table.getColsWidth(col, table.colCount - 1);
47295
+ var _a, _b, _c, _d, _e, _f;
47296
+ if (isRightFrozen) return Math.min(table.tableNoFrameWidth, table.getAllColsWidth()) - table.getColsWidth(col, table.colCount - 1) + (null !== (_b = null === (_a = table.getRightFrozenColsScrollLeft) || void 0 === _a ? void 0 : _a.call(table)) && void 0 !== _b ? _b : 0);
47297
+ const frozenOffset = null !== (_d = null === (_c = table.getFrozenColsOffset) || void 0 === _c ? void 0 : _c.call(table)) && void 0 !== _d ? _d : 0,
47298
+ frozenScrollLeft = null !== (_f = null === (_e = table.getFrozenColsScrollLeft) || void 0 === _e ? void 0 : _e.call(table)) && void 0 !== _f ? _f : 0;
47268
47299
  let colX = table.getColsWidth(0, col);
47269
- return col >= table.frozenColCount && (colX -= table.scrollLeft), colX;
47300
+ return col >= table.frozenColCount ? colX -= table.scrollLeft + frozenOffset : colX -= frozenScrollLeft, colX;
47270
47301
  }
47271
47302
  function getRowY(row, table, isBottomFrozen) {
47272
47303
  if (isBottomFrozen) return Math.min(table.tableNoFrameWidth, table.getAllRowsHeight()) - table.getRowsHeight(row, table.rowCount - 1);
@@ -47459,7 +47490,7 @@
47459
47490
  }
47460
47491
  addToGroup(componentGroup) {
47461
47492
  componentGroup.addChild(this.frozenShadowLine), componentGroup.addChild(this.rightFrozenShadowLine), componentGroup.addChild(this.columnResizeBgLine), componentGroup.addChild(this.columnResizeLine), componentGroup.addChild(this.columnResizeLabel), componentGroup.addChild(this.rowResizeBgLine), componentGroup.addChild(this.rowResizeLine), componentGroup.addChild(this.rowResizeLabel);
47462
- this.table.theme.scrollStyle.hoverOn && !this.table.theme.scrollStyle.barToSide ? (componentGroup.addChild(this.hScrollBar), componentGroup.addChild(this.vScrollBar)) : (componentGroup.stage.defaultLayer.addChild(this.hScrollBar), componentGroup.stage.defaultLayer.addChild(this.vScrollBar)), this.menu.bindTableComponent(componentGroup), this.drillIcon.appand(componentGroup), this.cellMover.appand(componentGroup);
47493
+ this.table.theme.scrollStyle.hoverOn && !this.table.theme.scrollStyle.barToSide ? (componentGroup.addChild(this.hScrollBar), componentGroup.addChild(this.frozenHScrollBar), componentGroup.addChild(this.rightFrozenHScrollBar), componentGroup.addChild(this.vScrollBar)) : (componentGroup.stage.defaultLayer.addChild(this.hScrollBar), componentGroup.stage.defaultLayer.addChild(this.frozenHScrollBar), componentGroup.stage.defaultLayer.addChild(this.rightFrozenHScrollBar), componentGroup.stage.defaultLayer.addChild(this.vScrollBar)), this.menu.bindTableComponent(componentGroup), this.drillIcon.appand(componentGroup), this.cellMover.appand(componentGroup);
47463
47494
  }
47464
47495
  createScrollBar() {
47465
47496
  var _a, _b, _c, _d, _e, _f;
@@ -47489,7 +47520,33 @@
47489
47520
  sliderStyle: sliderStyle,
47490
47521
  range: [0, .1],
47491
47522
  visible: !1
47492
- }), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.vScrollBar = new ScrollBar({
47523
+ }), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.frozenHScrollBar = new ScrollBar({
47524
+ direction: "horizontal",
47525
+ x: 2 * -this.table.tableNoFrameWidth,
47526
+ y: 2 * -this.table.tableNoFrameHeight,
47527
+ width: this.table.tableNoFrameWidth,
47528
+ height: width,
47529
+ padding: horizontalPadding,
47530
+ railStyle: {
47531
+ fill: scrollRailColor
47532
+ },
47533
+ sliderStyle: sliderStyle,
47534
+ range: [0, .1],
47535
+ visible: !1
47536
+ }), this.frozenHScrollBar.render(), this.frozenHScrollBar.hideAll(), this.rightFrozenHScrollBar = new ScrollBar({
47537
+ direction: "horizontal",
47538
+ x: 2 * -this.table.tableNoFrameWidth,
47539
+ y: 2 * -this.table.tableNoFrameHeight,
47540
+ width: this.table.tableNoFrameWidth,
47541
+ height: width,
47542
+ padding: horizontalPadding,
47543
+ railStyle: {
47544
+ fill: scrollRailColor
47545
+ },
47546
+ sliderStyle: sliderStyle,
47547
+ range: [0, .1],
47548
+ visible: !1
47549
+ }), this.rightFrozenHScrollBar.render(), this.rightFrozenHScrollBar.hideAll(), this.vScrollBar = new ScrollBar({
47493
47550
  direction: "vertical",
47494
47551
  x: 2 * -this.table.tableNoFrameWidth,
47495
47552
  y: 2 * -this.table.tableNoFrameHeight,
@@ -47505,9 +47562,11 @@
47505
47562
  }), this.vScrollBar.render(), this.vScrollBar.hideAll();
47506
47563
  }
47507
47564
  updateScrollBar() {
47508
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
47565
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
47509
47566
  const oldHorizontalBarPos = this.table.stateManager.scroll.horizontalBarPos,
47510
47567
  oldVerticalBarPos = this.table.stateManager.scroll.verticalBarPos,
47568
+ oldFrozenHorizontalBarPos = this.table.stateManager.scroll.frozenHorizontalBarPos,
47569
+ oldRightFrozenHorizontalBarPos = this.table.stateManager.scroll.rightFrozenHorizontalBarPos,
47511
47570
  theme = this.table.theme,
47512
47571
  width = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
47513
47572
  visible1 = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.visible,
@@ -47519,18 +47578,23 @@
47519
47578
  totalWidth = this.table.getAllColsWidth(),
47520
47579
  frozenRowsHeight = this.table.getFrozenRowsHeight(),
47521
47580
  frozenColsWidth = this.table.getFrozenColsWidth(),
47581
+ frozenColsContentWidth = null !== (_j = null === (_h = (_g = this.table).getFrozenColsContentWidth) || void 0 === _h ? void 0 : _h.call(_g)) && void 0 !== _j ? _j : frozenColsWidth,
47522
47582
  bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(),
47523
47583
  rightFrozenColsWidth = this.table.getRightFrozenColsWidth(),
47584
+ rightFrozenColsContentWidth = null !== (_m = null === (_l = (_k = this.table).getRightFrozenColsContentWidth) || void 0 === _l ? void 0 : _l.call(_k)) && void 0 !== _m ? _m : rightFrozenColsWidth,
47524
47585
  hoverOn = this.table.theme.scrollStyle.hoverOn,
47525
- sizeTolerance = (null === (_g = this.table.options.customConfig) || void 0 === _g ? void 0 : _g._disableColumnAndRowSizeRound) ? 1 : 0;
47586
+ sizeTolerance = (null === (_o = this.table.options.customConfig) || void 0 === _o ? void 0 : _o._disableColumnAndRowSizeRound) ? 1 : 0;
47526
47587
  if (totalWidth > tableWidth + sizeTolerance) {
47527
47588
  const y = Math.min(tableHeight, totalHeight),
47528
- rangeEnd = Math.max(.05, (tableWidth - frozenColsWidth) / (totalWidth - frozenColsWidth));
47589
+ bodyViewportWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth,
47590
+ bodyContentWidth = totalWidth - frozenColsContentWidth - rightFrozenColsContentWidth,
47591
+ rangeEnd = bodyContentWidth > 0 ? Math.max(.05, bodyViewportWidth / bodyContentWidth) : 1;
47529
47592
  let attrY = 0;
47530
47593
  attrY = this.table.theme.scrollStyle.barToSide ? this.table.tableNoFrameHeight - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y) + this.table.tableY : y - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y);
47531
47594
  let hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x),
47532
47595
  hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth;
47533
- null !== (_j = null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.ignoreFrozenCols) && void 0 !== _j && _j ? (hScrollBarx = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x, hScrollBarWidth = tableWidth) : (hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x), hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth), this.hScrollBar.setAttributes({
47596
+ const ignoreFrozenCols = null !== (_q = null === (_p = this.table.theme.scrollStyle) || void 0 === _p ? void 0 : _p.ignoreFrozenCols) && void 0 !== _q && _q;
47597
+ ignoreFrozenCols ? (hScrollBarx = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x, hScrollBarWidth = tableWidth) : (hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x), hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth), this.hScrollBar.setAttributes({
47534
47598
  x: hScrollBarx,
47535
47599
  y: attrY,
47536
47600
  width: hScrollBarWidth,
@@ -47542,11 +47606,65 @@
47542
47606
  x: bounds.x1,
47543
47607
  y: bounds.y1
47544
47608
  }, "always" === horizontalVisible && this.hScrollBar.showAll();
47609
+ const frozenScrollable = this.table.options.scrollFrozenCols && this.table.getFrozenColsOffset() > 0;
47610
+ if (!ignoreFrozenCols && frozenScrollable) {
47611
+ const frozenRangeEnd = Math.max(.05, frozenColsWidth / frozenColsContentWidth),
47612
+ x = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x;
47613
+ this.frozenHScrollBar.setAttributes({
47614
+ x: x,
47615
+ y: attrY,
47616
+ width: frozenColsWidth,
47617
+ range: [0, frozenRangeEnd],
47618
+ visible: "always" === horizontalVisible
47619
+ });
47620
+ const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
47621
+ this.frozenHScrollBar._viewPosition = {
47622
+ x: bounds.x1,
47623
+ y: bounds.y1
47624
+ }, "always" === horizontalVisible && this.frozenHScrollBar.showAll();
47625
+ } else this.frozenHScrollBar.setAttributes({
47626
+ x: 2 * -this.table.tableNoFrameWidth,
47627
+ y: 2 * -this.table.tableNoFrameHeight,
47628
+ width: 0,
47629
+ visible: !1
47630
+ });
47631
+ const rightFrozenScrollable = this.table.options.scrollRightFrozenCols && this.table.getRightFrozenColsOffset() > 0;
47632
+ if (!ignoreFrozenCols && rightFrozenScrollable) {
47633
+ const rightFrozenRangeEnd = Math.max(.05, rightFrozenColsWidth / rightFrozenColsContentWidth),
47634
+ x = tableWidth - rightFrozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x);
47635
+ this.rightFrozenHScrollBar.setAttributes({
47636
+ x: x,
47637
+ y: attrY,
47638
+ width: rightFrozenColsWidth,
47639
+ range: [0, rightFrozenRangeEnd],
47640
+ visible: "always" === horizontalVisible
47641
+ });
47642
+ const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
47643
+ this.rightFrozenHScrollBar._viewPosition = {
47644
+ x: bounds.x1,
47645
+ y: bounds.y1
47646
+ }, "always" === horizontalVisible && this.rightFrozenHScrollBar.showAll();
47647
+ } else this.rightFrozenHScrollBar.setAttributes({
47648
+ x: 2 * -this.table.tableNoFrameWidth,
47649
+ y: 2 * -this.table.tableNoFrameHeight,
47650
+ width: 0,
47651
+ visible: !1
47652
+ });
47545
47653
  } else this.hScrollBar.setAttributes({
47546
47654
  x: 2 * -this.table.tableNoFrameWidth,
47547
47655
  y: 2 * -this.table.tableNoFrameHeight,
47548
47656
  width: 0,
47549
47657
  visible: !1
47658
+ }), this.frozenHScrollBar.setAttributes({
47659
+ x: 2 * -this.table.tableNoFrameWidth,
47660
+ y: 2 * -this.table.tableNoFrameHeight,
47661
+ width: 0,
47662
+ visible: !1
47663
+ }), this.rightFrozenHScrollBar.setAttributes({
47664
+ x: 2 * -this.table.tableNoFrameWidth,
47665
+ y: 2 * -this.table.tableNoFrameHeight,
47666
+ width: 0,
47667
+ visible: !1
47550
47668
  });
47551
47669
  if (totalHeight > tableHeight + sizeTolerance) {
47552
47670
  const x = Math.min(tableWidth, totalWidth),
@@ -47570,7 +47688,7 @@
47570
47688
  height: 0,
47571
47689
  visible: !1
47572
47690
  });
47573
- this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.setScrollTop(oldVerticalBarPos);
47691
+ this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.setFrozenColsScrollLeft(oldFrozenHorizontalBarPos, !1), this.table.stateManager.setRightFrozenColsScrollLeft(oldRightFrozenHorizontalBarPos, !1), this.table.stateManager.setScrollTop(oldVerticalBarPos);
47574
47692
  }
47575
47693
  hideResizeCol() {
47576
47694
  this.columnResizeLine.setAttribute("visible", !1), this.columnResizeBgLine.setAttribute("visible", !1), this.columnResizeLabel.setAttribute("visible", !1), this.columnResizeLabel.hideAll();
@@ -47694,9 +47812,9 @@
47694
47812
  this.cellMover.update(backX, lineX, backY, lineY);
47695
47813
  }
47696
47814
  setFrozenColumnShadow(col, isRightFrozen) {
47697
- var _a, _b;
47698
- const colX = getColX(col, this.table, isRightFrozen);
47699
- col < 0 || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.frozenShadowLine.setAttributes({
47815
+ var _a, _b, _c, _d, _e;
47816
+ const colX = !isRightFrozen && col === this.table.frozenColCount - 1 && (null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.getFrozenColsWidth() : getColX(col, this.table, isRightFrozen);
47817
+ col < 0 || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.frozenShadowLine.setAttributes({
47700
47818
  visible: !1,
47701
47819
  x: colX,
47702
47820
  height: this.table.getDrawRange().height
@@ -47707,9 +47825,9 @@
47707
47825
  });
47708
47826
  }
47709
47827
  setRightFrozenColumnShadow(col) {
47710
- var _a, _b;
47711
- const colX = getColX(col, this.table, !0);
47712
- col >= this.table.colCount || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.rightFrozenShadowLine.setAttributes({
47828
+ var _a, _b, _c, _d, _e;
47829
+ const colX = this.table.options.scrollRightFrozenCols && (null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.tableNoFrameWidth - this.table.getRightFrozenColsWidth() : getColX(col, this.table, !0);
47830
+ col >= this.table.colCount || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.rightFrozenShadowLine.setAttributes({
47713
47831
  visible: !1,
47714
47832
  x: colX - this.rightFrozenShadowLine.attribute.width,
47715
47833
  height: this.table.getDrawRange().height
@@ -47745,13 +47863,23 @@
47745
47863
  var _a;
47746
47864
  const visible1 = this.table.theme.scrollStyle.visible,
47747
47865
  horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
47748
- "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !1), this.hScrollBar.hideAll(), this.table.scenegraph.updateNextFrame());
47866
+ "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !1), this.hScrollBar.hideAll(), this.frozenHScrollBar.setAttribute("visible", !1), this.frozenHScrollBar.hideAll(), this.rightFrozenHScrollBar.setAttribute("visible", !1), this.rightFrozenHScrollBar.hideAll(), this._horizontalScrollBarTarget = void 0, this.table.scenegraph.updateNextFrame());
47749
47867
  }
47750
- showHorizontalScrollBar() {
47868
+ showHorizontalScrollBar(target = "all") {
47751
47869
  var _a;
47752
47870
  const visible1 = this.table.theme.scrollStyle.visible,
47753
47871
  horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
47754
- "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !0), this.hScrollBar.showAll(), this.table.scenegraph.updateNextFrame());
47872
+ if ("focus" !== horizontalVisible && "scrolling" !== horizontalVisible) return;
47873
+ if (this._horizontalScrollBarTarget === target) return;
47874
+ this._horizontalScrollBarTarget = target;
47875
+ const showFrozen = "all" === target || "frozen" === target,
47876
+ showRightFrozen = "all" === target || "rightFrozen" === target,
47877
+ bodyVisible = ("all" === target || "body" === target) && this.hScrollBar.attribute.width > 0;
47878
+ this.hScrollBar.setAttribute("visible", bodyVisible), bodyVisible ? this.hScrollBar.showAll() : this.hScrollBar.hideAll();
47879
+ const frozenVisible = showFrozen && this.frozenHScrollBar.attribute.width > 0;
47880
+ this.frozenHScrollBar.setAttribute("visible", frozenVisible), frozenVisible ? this.frozenHScrollBar.showAll() : this.frozenHScrollBar.hideAll();
47881
+ const rightFrozenVisible = showRightFrozen && this.rightFrozenHScrollBar.attribute.width > 0;
47882
+ this.rightFrozenHScrollBar.setAttribute("visible", rightFrozenVisible), rightFrozenVisible ? this.rightFrozenHScrollBar.showAll() : this.rightFrozenHScrollBar.hideAll(), this.table.scenegraph.updateNextFrame();
47755
47883
  }
47756
47884
  updateVerticalScrollBarPos(topRatio) {
47757
47885
  const range = this.vScrollBar.attribute.range,
@@ -47775,6 +47903,28 @@
47775
47903
  y: bounds.y1
47776
47904
  };
47777
47905
  }
47906
+ updateFrozenHorizontalScrollBarPos(leftRatio) {
47907
+ const range = this.frozenHScrollBar.attribute.range,
47908
+ size = range[1] - range[0],
47909
+ range0 = leftRatio * (1 - size);
47910
+ this.frozenHScrollBar.setAttribute("range", [range0, range0 + size]);
47911
+ const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
47912
+ this.frozenHScrollBar._viewPosition = {
47913
+ x: bounds.x1,
47914
+ y: bounds.y1
47915
+ };
47916
+ }
47917
+ updateRightFrozenHorizontalScrollBarPos(leftRatio) {
47918
+ const range = this.rightFrozenHScrollBar.attribute.range,
47919
+ size = range[1] - range[0],
47920
+ range0 = leftRatio * (1 - size);
47921
+ this.rightFrozenHScrollBar.setAttribute("range", [range0, range0 + size]);
47922
+ const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
47923
+ this.rightFrozenHScrollBar._viewPosition = {
47924
+ x: bounds.x1,
47925
+ y: bounds.y1
47926
+ };
47927
+ }
47778
47928
  updateStyle() {
47779
47929
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
47780
47930
  const theme = this.table.theme,
@@ -47804,6 +47954,20 @@
47804
47954
  fill: scrollRailColor
47805
47955
  },
47806
47956
  sliderStyle: sliderStyle
47957
+ }), this.frozenHScrollBar.setAttributes({
47958
+ height: width,
47959
+ padding: horizontalPadding,
47960
+ railStyle: {
47961
+ fill: scrollRailColor
47962
+ },
47963
+ sliderStyle: sliderStyle
47964
+ }), this.rightFrozenHScrollBar.setAttributes({
47965
+ height: width,
47966
+ padding: horizontalPadding,
47967
+ railStyle: {
47968
+ fill: scrollRailColor
47969
+ },
47970
+ sliderStyle: sliderStyle
47807
47971
  });
47808
47972
  const columnResizeColor = null === (_g = theme.columnResize) || void 0 === _g ? void 0 : _g.lineColor,
47809
47973
  columnResizeWidth = null === (_h = theme.columnResize) || void 0 === _h ? void 0 : _h.lineWidth,
@@ -49917,29 +50081,50 @@
49917
50081
  drawShape(group, context, xOrigin, yOrigin, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb, doFillOrStroke) {
49918
50082
  var _a, _b, _c, _d, _e, _f;
49919
50083
  const table = group.stage.table;
49920
- if (table) if ("body" === group.role) {
49921
- drawClipRect(context, -(null !== (_a = group.attribute.x) && void 0 !== _a ? _a : 0) + table.getFrozenColsWidth(), -(null !== (_b = group.attribute.y) && void 0 !== _b ? _b : 0) + table.getFrozenRowsHeight(), group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth(), group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight());
50084
+ if (!table) return;
50085
+ const clipInflate = getSelectOverlayClipInflate(group, table);
50086
+ if ("body" === group.role) {
50087
+ drawClipRect(context, -(null !== (_a = group.attribute.x) && void 0 !== _a ? _a : 0) + table.getFrozenColsWidth() - clipInflate.left, -(null !== (_b = group.attribute.y) && void 0 !== _b ? _b : 0) + table.getFrozenRowsHeight() - clipInflate.top, group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49922
50088
  } else if ("row-header" === group.role) {
49923
- drawClipRect(context, 0, -(null !== (_c = group.attribute.y) && void 0 !== _c ? _c : 0) + table.getFrozenRowsHeight(), table.getFrozenColsWidth(), group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight());
50089
+ drawClipRect(context, 0 - clipInflate.left, -(null !== (_c = group.attribute.y) && void 0 !== _c ? _c : 0) + table.getFrozenRowsHeight() - clipInflate.top, table.getFrozenColsWidth() + clipInflate.left + clipInflate.right, group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49924
50090
  } else if ("col-header" === group.role) {
49925
- drawClipRect(context, -(null !== (_d = group.attribute.x) && void 0 !== _d ? _d : 0) + table.getFrozenColsWidth(), 0, group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth(), table.getFrozenRowsHeight());
50091
+ drawClipRect(context, -(null !== (_d = group.attribute.x) && void 0 !== _d ? _d : 0) + table.getFrozenColsWidth() - clipInflate.left, 0 - clipInflate.top, group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49926
50092
  } else if ("right-frozen" === group.role) {
49927
- drawClipRect(context, 0, -(null !== (_e = group.attribute.y) && void 0 !== _e ? _e : 0) + table.getFrozenRowsHeight(), table.getRightFrozenColsWidth(), group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight());
50093
+ drawClipRect(context, 0 - clipInflate.left, -(null !== (_e = group.attribute.y) && void 0 !== _e ? _e : 0) + table.getFrozenRowsHeight() - clipInflate.top, table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, group.parent.attribute.height - table.getFrozenRowsHeight() - table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49928
50094
  } else if ("bottom-frozen" === group.role) {
49929
- drawClipRect(context, -(null !== (_f = group.attribute.x) && void 0 !== _f ? _f : 0) + table.getFrozenColsWidth(), 0, group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth(), table.getBottomFrozenRowsHeight());
50095
+ drawClipRect(context, -(null !== (_f = group.attribute.x) && void 0 !== _f ? _f : 0) + table.getFrozenColsWidth() - clipInflate.left, 0 - clipInflate.top, group.parent.attribute.width - table.getFrozenColsWidth() - table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49930
50096
  } else if ("corner-header" === group.role) {
49931
- drawClipRect(context, 0, 0, table.getFrozenColsWidth(), table.getFrozenRowsHeight());
50097
+ drawClipRect(context, 0 - clipInflate.left, 0 - clipInflate.top, table.getFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49932
50098
  } else if ("corner-right-top-header" === group.role) {
49933
- drawClipRect(context, 0, 0, table.getRightFrozenColsWidth(), table.getFrozenRowsHeight());
50099
+ drawClipRect(context, 0 - clipInflate.left, 0 - clipInflate.top, table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49934
50100
  } else if ("corner-right-bottom-header" === group.role) {
49935
- drawClipRect(context, 0, 0, table.getRightFrozenColsWidth(), table.getBottomFrozenRowsHeight());
50101
+ drawClipRect(context, 0 - clipInflate.left, 0 - clipInflate.top, table.getRightFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49936
50102
  } else if ("corner-left-bottom-header" === group.role) {
49937
- drawClipRect(context, 0, 0, table.getFrozenColsWidth(), table.getBottomFrozenRowsHeight());
50103
+ drawClipRect(context, 0 - clipInflate.left, 0 - clipInflate.top, table.getFrozenColsWidth() + clipInflate.left + clipInflate.right, table.getBottomFrozenRowsHeight() + clipInflate.top + clipInflate.bottom);
49938
50104
  }
49939
50105
  }
49940
50106
  };
49941
50107
  ClipBodyGroupBeforeRenderContribution = __decorate$4([injectable()], ClipBodyGroupBeforeRenderContribution);
49942
50108
  const precision = Math.pow(2, 24);
50109
+ function getSelectOverlayClipInflate(group, table) {
50110
+ var _a, _b, _c;
50111
+ if (!("select-overlay" === group.name)) return {
50112
+ left: 0,
50113
+ top: 0,
50114
+ right: 0,
50115
+ bottom: 0
50116
+ };
50117
+ const lineWidth = null === (_a = table.theme.selectionStyle) || void 0 === _a ? void 0 : _a.cellBorderLineWidth,
50118
+ maxLineWidth = Array.isArray(lineWidth) ? Math.max(...lineWidth.filter(v => "number" == typeof v)) : "number" == typeof lineWidth ? lineWidth : 0,
50119
+ baseInflate = Math.max(1, Math.ceil(maxLineWidth / 2) + 1),
50120
+ handleInflate = !!(null === (_b = table.options.excelOptions) || void 0 === _b ? void 0 : _b.fillHandle) && 1 === (null === (_c = table.stateManager.select.ranges) || void 0 === _c ? void 0 : _c.length) ? 3 : 0;
50121
+ return {
50122
+ left: baseInflate,
50123
+ top: baseInflate,
50124
+ right: Math.max(baseInflate, handleInflate),
50125
+ bottom: Math.max(baseInflate, handleInflate)
50126
+ };
50127
+ }
49943
50128
  function drawClipRect(context, x, y, width, height) {
49944
50129
  context.beginPath();
49945
50130
  const matrix = context.applyedMatrix;
@@ -51664,10 +51849,11 @@
51664
51849
  });
51665
51850
  }
51666
51851
  setX(x, isEnd = !1) {
51852
+ var _a, _b, _c;
51667
51853
  return __awaiter$3(this, void 0, void 0, function* () {
51668
51854
  const xLimitLeft = this.table.getColsWidth(this.bodyLeftCol, this.bodyLeftCol + (this.colEnd - this.colStart + 1)) / 2,
51669
51855
  xLimitRight = this.table.getAllColsWidth() - xLimitLeft,
51670
- screenLeft = this.table.getTargetColAt(x + this.table.scenegraph.rowHeaderGroup.attribute.width);
51856
+ screenLeft = this.table.getTargetColAt(x + this.table.scenegraph.rowHeaderGroup.attribute.width + (null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0));
51671
51857
  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);
51672
51858
  });
51673
51859
  }
@@ -51769,6 +51955,7 @@
51769
51955
  }
51770
51956
  }
51771
51957
  updateDeltaX(x, screenLeftX, screenLeftCol) {
51958
+ var _a, _b, _c, _d, _e, _f;
51772
51959
  if (this.colStart === this.bodyLeftCol) {
51773
51960
  const colGroup = this.table.scenegraph.getColGroup(this.colStart);
51774
51961
  if (colGroup) {
@@ -51778,7 +51965,7 @@
51778
51965
  } else if (this.colEnd === this.bodyRightCol) {
51779
51966
  const colGroup = this.table.scenegraph.getColGroup(this.colEnd);
51780
51967
  if (colGroup) {
51781
- const deltaX = colGroup.attribute.x + colGroup.attribute.width - (this.table.getAllColsWidth() - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth());
51968
+ const deltaX = colGroup.attribute.x + colGroup.attribute.width - (this.table.getAllColsWidth() - (null !== (_c = null === (_b = (_a = this.table).getFrozenColsContentWidth) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : this.table.getFrozenColsWidth()) - (null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsContentWidth) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : this.table.getRightFrozenColsWidth()));
51782
51969
  this.deltaX = -deltaX;
51783
51970
  }
51784
51971
  } else if (isValid$2(screenLeftX) && isValid$2(screenLeftCol)) {
@@ -51857,7 +52044,7 @@
51857
52044
  });
51858
52045
  }
51859
52046
  function updateComponent(selectComp, key, scene) {
51860
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
52047
+ var _a, _b, _c, _d, _e, _f, _g, _h;
51861
52048
  const table = scene.table,
51862
52049
  [startColStr, startRowStr, endColStr, endRowStr] = key.split("-"),
51863
52050
  startCol = parseInt(startColStr, 10),
@@ -51890,10 +52077,13 @@
51890
52077
  }
51891
52078
  const colsWidth = table.getColsWidth(computeRectCellRangeStartCol, computeRectCellRangeEndCol),
51892
52079
  rowsHeight = table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow),
52080
+ overlayGroup = scene.getSelectOverlayGroup(selectComp.role),
52081
+ offsetX = scene.tableGroup.attribute.x + (null !== (_a = overlayGroup.attribute.x) && void 0 !== _a ? _a : 0),
52082
+ offsetY = scene.tableGroup.attribute.y + (null !== (_b = overlayGroup.attribute.y) && void 0 !== _b ? _b : 0),
51893
52083
  firstCellBound = scene.highPerformanceGetCell(computeRectCellRangeStartCol, computeRectCellRangeStartRow).globalAABBBounds;
51894
52084
  if (selectComp.rect.setAttributes({
51895
- x: firstCellBound.x1 - scene.tableGroup.attribute.x,
51896
- y: firstCellBound.y1 - scene.tableGroup.attribute.y,
52085
+ x: firstCellBound.x1 - offsetX,
52086
+ y: firstCellBound.y1 - offsetY,
51897
52087
  width: colsWidth,
51898
52088
  height: rowsHeight,
51899
52089
  visible: !0
@@ -51903,16 +52093,16 @@
51903
52093
  currentHeight: rowsHeight,
51904
52094
  selectComp: selectComp
51905
52095
  }), selectComp.fillhandle) {
51906
- const fillHandle = null === (_a = scene.table.options.excelOptions) || void 0 === _a ? void 0 : _a.fillHandle;
52096
+ const fillHandle = null === (_c = scene.table.options.excelOptions) || void 0 === _c ? void 0 : _c.fillHandle;
51907
52097
  let lastCellBound,
51908
52098
  handlerX,
51909
52099
  visible = !0;
51910
52100
  "function" == typeof fillHandle && (visible = fillHandle({
51911
52101
  selectRanges: scene.table.stateManager.select.ranges,
51912
52102
  table: scene.table
51913
- })), endCol < table.colCount - 1 ? (lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds, handlerX = lastCellBound.x2 - scene.tableGroup.attribute.x - 3) : 0 === startCol ? (lastCellBound = scene.highPerformanceGetCell(0, endRow).globalAABBBounds, handlerX = lastCellBound.x1 - scene.tableGroup.attribute.x) : (lastCellBound = scene.highPerformanceGetCell(startCol - 1, endRow).globalAABBBounds, handlerX = lastCellBound.x2 - scene.tableGroup.attribute.x - 3), lastCellBound = endRow < table.rowCount - 1 ? scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds : scene.highPerformanceGetCell(endCol, startRow - 1).globalAABBBounds;
51914
- const handlerY = lastCellBound.y2 - scene.tableGroup.attribute.y - 3;
51915
- null === (_b = selectComp.fillhandle) || void 0 === _b || _b.setAttributes({
52103
+ })), endCol < table.colCount - 1 ? (lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds, handlerX = lastCellBound.x2 - offsetX - 3) : 0 === startCol ? (lastCellBound = scene.highPerformanceGetCell(0, endRow).globalAABBBounds, handlerX = lastCellBound.x1 - offsetX) : (lastCellBound = scene.highPerformanceGetCell(startCol - 1, endRow).globalAABBBounds, handlerX = lastCellBound.x2 - offsetX - 3), lastCellBound = endRow < table.rowCount - 1 ? scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds : scene.highPerformanceGetCell(endCol, startRow - 1).globalAABBBounds;
52104
+ const handlerY = lastCellBound.y2 - offsetY - 3;
52105
+ null === (_d = selectComp.fillhandle) || void 0 === _d || _d.setAttributes({
51916
52106
  x: handlerX,
51917
52107
  y: handlerY,
51918
52108
  width: 6,
@@ -51920,72 +52110,15 @@
51920
52110
  visible: visible
51921
52111
  });
51922
52112
  }
51923
- let isNearRowHeader = !!table.frozenColCount && startCol === table.frozenColCount;
51924
- if (!isNearRowHeader && table.frozenColCount && table.scrollLeft > 0 && startCol >= table.frozenColCount) {
51925
- table.getColsWidth(0, startCol - 1) - table.scrollLeft < table.getFrozenColsWidth() && (isNearRowHeader = !0);
51926
- }
51927
- let isNearRightRowHeader = !!table.rightFrozenColCount && table.rightFrozenColCount > 0 && endCol === table.colCount - table.rightFrozenColCount - 1;
51928
- if (!isNearRightRowHeader && table.rightFrozenColCount && endCol < table.colCount - table.rightFrozenColCount) {
51929
- table.getColsWidth(0, endCol) - table.scrollLeft > table.tableNoFrameWidth - table.getRightFrozenColsWidth() && (isNearRightRowHeader = !0);
51930
- }
51931
- let isNearColHeader = !table.frozenRowCount || startRow === table.frozenRowCount;
51932
- if (!isNearColHeader && table.frozenRowCount && table.scrollTop > 0 && startRow >= table.frozenRowCount) {
51933
- table.getRowsHeight(0, startRow - 1) - table.scrollTop < table.getFrozenRowsHeight() && (isNearColHeader = !0);
51934
- }
51935
- let isNearBottomColHeader = !!table.bottomFrozenRowCount && endRow === table.rowCount - table.bottomFrozenRowCount - 1;
51936
- if (!isNearBottomColHeader && table.bottomFrozenRowCount && endRow < table.rowCount - table.bottomFrozenRowCount) {
51937
- table.getRowsHeight(0, endRow) - table.scrollTop > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() && (isNearBottomColHeader = !0);
51938
- }
51939
- const {
51940
- dynamicUpdateSelectionSize: dynamicUpdateSelectionSize
51941
- } = table.theme.selectionStyle;
51942
- if (isNearRowHeader && (selectComp.rect.attribute.stroke[3] || dynamicUpdateSelectionSize) || isNearRightRowHeader && (selectComp.rect.attribute.stroke[1] || dynamicUpdateSelectionSize) || isNearColHeader && (selectComp.rect.attribute.stroke[0] || dynamicUpdateSelectionSize) || isNearBottomColHeader && (selectComp.rect.attribute.stroke[2] || dynamicUpdateSelectionSize)) {
51943
- if (isNearRowHeader && selectComp.rect.attribute.stroke[3] && scene.tableGroup.insertAfter(selectComp.rect, "columnHeader" === selectComp.role ? scene.cornerHeaderGroup : "bottomFrozen" === selectComp.role ? scene.leftBottomCornerGroup : scene.rowHeaderGroup), isNearBottomColHeader && selectComp.rect.attribute.stroke[2] && scene.tableGroup.insertAfter(selectComp.rect, "rowHeader" === selectComp.role ? scene.leftBottomCornerGroup : "rightFrozen" === selectComp.role ? scene.rightBottomCornerGroup : scene.bottomFrozenGroup), isNearColHeader && selectComp.rect.attribute.stroke[0] && scene.tableGroup.insertAfter(selectComp.rect, "rowHeader" === selectComp.role ? scene.cornerHeaderGroup : "rightFrozen" === selectComp.role ? scene.rightTopCornerGroup : scene.colHeaderGroup), isNearRightRowHeader && selectComp.rect.attribute.stroke[1] && scene.tableGroup.insertAfter(selectComp.rect, "columnHeader" === selectComp.role ? scene.rightTopCornerGroup : "bottomFrozen" === selectComp.role ? scene.rightBottomCornerGroup : scene.rightFrozenGroup), selectComp.rect.attribute.x < table.getFrozenColsWidth() && table.scrollLeft > 0 && ("body" === selectComp.role || "columnHeader" === selectComp.role || "bottomFrozen" === selectComp.role)) {
51944
- const width = selectComp.rect.attribute.width - (table.getFrozenColsWidth() - selectComp.rect.attribute.x);
51945
- selectComp.rect.setAttributes({
51946
- x: selectComp.rect.attribute.x + (table.getFrozenColsWidth() - selectComp.rect.attribute.x),
51947
- width: width > 0 ? width : 0
51948
- }), null === (_c = selectComp.fillhandle) || void 0 === _c || _c.setAttributes({
51949
- visible: width > 0
51950
- });
51951
- }
51952
- if (table.getRightFrozenColsWidth() > 0 && scene.rightFrozenGroup.attribute.height > 0 && selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rightFrozenGroup.attribute.x && ("body" === selectComp.role || "columnHeader" === selectComp.role || "bottomFrozen" === selectComp.role)) {
51953
- const width = scene.rightFrozenGroup.attribute.x - selectComp.rect.attribute.x;
51954
- selectComp.rect.setAttributes({
51955
- x: selectComp.rect.attribute.x,
51956
- width: width > 0 ? width : 0
51957
- }), null === (_d = selectComp.fillhandle) || void 0 === _d || _d.setAttributes({
51958
- visible: width - colsWidth > 0
51959
- });
51960
- }
51961
- if (selectComp.rect.attribute.y < scene.colHeaderGroup.attribute.height && table.scrollTop > 0 && ("body" === selectComp.role || "rowHeader" === selectComp.role || "rightFrozen" === selectComp.role)) {
51962
- const height = selectComp.rect.attribute.height - (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y);
51963
- selectComp.rect.setAttributes({
51964
- y: selectComp.rect.attribute.y + (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),
51965
- height: height > 0 ? height : 0
51966
- }), null === (_e = selectComp.fillhandle) || void 0 === _e || _e.setAttributes({
51967
- visible: height > 0
51968
- });
51969
- }
51970
- if (scene.bottomFrozenGroup.attribute.width > 0 && scene.bottomFrozenGroup.attribute.height > 0 && selectComp.rect.attribute.y + selectComp.rect.attribute.height > scene.bottomFrozenGroup.attribute.y && ("body" === selectComp.role || "rowHeader" === selectComp.role || "rightFrozen" === selectComp.role)) {
51971
- const height = scene.bottomFrozenGroup.attribute.y - selectComp.rect.attribute.y;
51972
- selectComp.rect.setAttributes({
51973
- y: selectComp.rect.attribute.y,
51974
- height: height > 0 ? height : 0
51975
- }), null === (_f = selectComp.fillhandle) || void 0 === _f || _f.setAttributes({
51976
- visible: height - rowsHeight > 0
51977
- });
51978
- }
51979
- } else scene.tableGroup.insertAfter(selectComp.rect, "body" === selectComp.role ? scene.bodyGroup : "columnHeader" === selectComp.role ? scene.colHeaderGroup : "rowHeader" === selectComp.role ? scene.rowHeaderGroup : "cornerHeader" === selectComp.role ? scene.cornerHeaderGroup : "rightTopCorner" === selectComp.role ? scene.rightTopCornerGroup : "rightFrozen" === selectComp.role ? scene.rightFrozenGroup : "leftBottomCorner" === selectComp.role ? scene.leftBottomCornerGroup : "bottomFrozen" === selectComp.role ? scene.bottomFrozenGroup : scene.rightBottomCornerGroup);
51980
52113
  let diffSize = 0;
51981
- "number" == typeof selectComp.rect.attribute.lineWidth && (diffSize = Math.ceil(selectComp.rect.attribute.lineWidth / 2)), endCol === table.colCount - 1 && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_g = selectComp.rect.attribute.lineWidth[1]) && void 0 !== _g ? _g : 0) / 2)), selectComp.rect.setAttributes({
52114
+ "number" == typeof selectComp.rect.attribute.lineWidth && (diffSize = Math.ceil(selectComp.rect.attribute.lineWidth / 2)), endCol === table.colCount - 1 && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_e = selectComp.rect.attribute.lineWidth[1]) && void 0 !== _e ? _e : 0) / 2)), selectComp.rect.setAttributes({
51982
52115
  width: selectComp.rect.attribute.width - diffSize
51983
- })), 0 === startCol && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_h = selectComp.rect.attribute.lineWidth[3]) && void 0 !== _h ? _h : 0) / 2)), selectComp.rect.setAttributes({
52116
+ })), 0 === startCol && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_f = selectComp.rect.attribute.lineWidth[3]) && void 0 !== _f ? _f : 0) / 2)), selectComp.rect.setAttributes({
51984
52117
  x: selectComp.rect.attribute.x + diffSize,
51985
52118
  width: selectComp.rect.attribute.width - diffSize
51986
- })), endRow === table.rowCount - 1 && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_j = selectComp.rect.attribute.lineWidth[2]) && void 0 !== _j ? _j : 0) / 2)), selectComp.rect.setAttributes({
52119
+ })), endRow === table.rowCount - 1 && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_g = selectComp.rect.attribute.lineWidth[2]) && void 0 !== _g ? _g : 0) / 2)), selectComp.rect.setAttributes({
51987
52120
  height: selectComp.rect.attribute.height - diffSize
51988
- })), 0 === startRow && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_k = selectComp.rect.attribute.lineWidth[0]) && void 0 !== _k ? _k : 0) / 2)), selectComp.rect.setAttributes({
52121
+ })), 0 === startRow && (Array.isArray(selectComp.rect.attribute.lineWidth) && (diffSize = Math.ceil((null !== (_h = selectComp.rect.attribute.lineWidth[0]) && void 0 !== _h ? _h : 0) / 2)), selectComp.rect.setAttributes({
51989
52122
  y: selectComp.rect.attribute.y + diffSize,
51990
52123
  height: selectComp.rect.attribute.height - diffSize
51991
52124
  }));
@@ -52135,7 +52268,7 @@
52135
52268
  }
52136
52269
 
52137
52270
  function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, selectRangeType, selectId, strokes) {
52138
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
52271
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
52139
52272
  let isHasFillHandleRect = !!(null === (_a = scene.table.options.excelOptions) || void 0 === _a ? void 0 : _a.fillHandle);
52140
52273
  if ((null === (_b = scene.table.stateManager.select.ranges) || void 0 === _b ? void 0 : _b.length) > 1) isHasFillHandleRect = !1, scene.removeFillHandleFromSelectComponents();else if (1 === (null === (_c = scene.table.stateManager.select.ranges) || void 0 === _c ? void 0 : _c.length)) {
52141
52274
  const maxRow = Math.max(scene.table.stateManager.select.ranges[0].start.row, scene.table.stateManager.select.ranges[0].end.row),
@@ -52147,30 +52280,33 @@
52147
52280
  startRow = Math.min(start_Row, end_Row),
52148
52281
  endCol = Math.max(start_Col, end_Col),
52149
52282
  endRow = Math.max(start_Row, end_Row),
52283
+ overlayGroup = scene.getSelectOverlayGroup(selectRangeType),
52284
+ offsetX = scene.tableGroup.attribute.x + (null !== (_d = overlayGroup.attribute.x) && void 0 !== _d ? _d : 0),
52285
+ offsetY = scene.tableGroup.attribute.y + (null !== (_e = overlayGroup.attribute.y) && void 0 !== _e ? _e : 0),
52150
52286
  firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds,
52151
52287
  lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds,
52152
52288
  theme = scene.table.theme,
52153
- bodyClickBorderColor = null === (_d = theme.selectionStyle) || void 0 === _d ? void 0 : _d.cellBorderColor,
52154
- bodyClickLineWidth = null === (_e = theme.selectionStyle) || void 0 === _e ? void 0 : _e.cellBorderLineWidth,
52289
+ bodyClickBorderColor = null === (_f = theme.selectionStyle) || void 0 === _f ? void 0 : _f.cellBorderColor,
52290
+ bodyClickLineWidth = null === (_g = theme.selectionStyle) || void 0 === _g ? void 0 : _g.cellBorderLineWidth,
52155
52291
  rect = createRect({
52156
52292
  pickable: !1,
52157
- fill: "replace" !== (null === (_f = theme.selectionStyle) || void 0 === _f ? void 0 : _f.selectionFillMode) && (null !== (_h = null === (_g = theme.selectionStyle) || void 0 === _g ? void 0 : _g.cellBgColor) && void 0 !== _h ? _h : "rgba(0, 0, 255,0.1)"),
52293
+ fill: "replace" !== (null === (_h = theme.selectionStyle) || void 0 === _h ? void 0 : _h.selectionFillMode) && (null !== (_k = null === (_j = theme.selectionStyle) || void 0 === _j ? void 0 : _j.cellBgColor) && void 0 !== _k ? _k : "rgba(0, 0, 255,0.1)"),
52158
52294
  lineWidth: bodyClickLineWidth,
52159
52295
  stroke: strokes.map(stroke => !!stroke && bodyClickBorderColor),
52160
- x: firstCellBound.x1 - scene.tableGroup.attribute.x,
52161
- y: firstCellBound.y1 - scene.tableGroup.attribute.y,
52296
+ x: firstCellBound.x1 - offsetX,
52297
+ y: firstCellBound.y1 - offsetY,
52162
52298
  width: 0,
52163
52299
  height: 0,
52164
52300
  visible: !0,
52165
- cornerRadius: getCornerRadius(selectRangeType, null === (_j = scene.table.theme.frameStyle) || void 0 === _j ? void 0 : _j.cornerRadius, start_Col, start_Row, end_Col, end_Row, scene.table)
52301
+ cornerRadius: getCornerRadius(selectRangeType, null === (_l = scene.table.theme.frameStyle) || void 0 === _l ? void 0 : _l.cornerRadius, start_Col, start_Row, end_Col, end_Row, scene.table)
52166
52302
  });
52167
52303
  let fillhandle;
52168
52304
  isHasFillHandleRect && (fillhandle = createRect({
52169
52305
  pickable: !1,
52170
52306
  fill: bodyClickBorderColor,
52171
52307
  stroke: bodyClickBorderColor,
52172
- x: lastCellBound.x2 - 3,
52173
- y: lastCellBound.y2 - 3,
52308
+ x: lastCellBound.x2 - offsetX - 3,
52309
+ y: lastCellBound.y2 - offsetY - 3,
52174
52310
  width: 6,
52175
52311
  height: 6,
52176
52312
  visible: !0
@@ -52178,7 +52314,7 @@
52178
52314
  rect: rect,
52179
52315
  fillhandle: fillhandle,
52180
52316
  role: selectRangeType
52181
- }), scene.tableGroup.insertAfter(rect, "body" === selectRangeType ? scene.bodyGroup : "columnHeader" === selectRangeType ? scene.colHeaderGroup : "rowHeader" === selectRangeType ? scene.rowHeaderGroup : "cornerHeader" === selectRangeType ? scene.cornerHeaderGroup : "rightTopCorner" === selectRangeType ? scene.rightTopCornerGroup : "rightFrozen" === selectRangeType ? scene.rightFrozenGroup : "leftBottomCorner" === selectRangeType ? scene.leftBottomCornerGroup : "bottomFrozen" === selectRangeType ? scene.bottomFrozenGroup : scene.rightBottomCornerGroup), isHasFillHandleRect && scene.tableGroup.insertAfter(fillhandle, "body" === selectRangeType ? scene.bodyGroup : "columnHeader" === selectRangeType ? scene.colHeaderGroup : "rowHeader" === selectRangeType ? scene.rowHeaderGroup : "cornerHeader" === selectRangeType ? scene.cornerHeaderGroup : "rightTopCorner" === selectRangeType ? scene.rightTopCornerGroup : "rightFrozen" === selectRangeType ? scene.rightFrozenGroup : "leftBottomCorner" === selectRangeType ? scene.leftBottomCornerGroup : "bottomFrozen" === selectRangeType ? scene.bottomFrozenGroup : scene.rightBottomCornerGroup);
52317
+ }), overlayGroup.addChild(rect), isHasFillHandleRect && overlayGroup.addChild(fillhandle);
52182
52318
  }
52183
52319
  function getCornerRadius(selectRangeType, cornerRadius, start_Col, start_Row, end_Col, end_Row, table) {
52184
52320
  if (!cornerRadius) return;
@@ -53059,7 +53195,25 @@
53059
53195
  const rightBottomCornerGroup = createContainerGroup(0, 0, !0);
53060
53196
  rightBottomCornerGroup.role = "corner-right-bottom-header", scene.rightBottomCornerGroup = rightBottomCornerGroup;
53061
53197
  const leftBottomCornerGroup = createContainerGroup(0, 0, !0);
53062
- leftBottomCornerGroup.role = "corner-left-bottom-header", scene.leftBottomCornerGroup = leftBottomCornerGroup, scene.tableGroup.addChild(bodyGroup), scene.tableGroup.addChild(rowHeaderGroup), scene.tableGroup.addChild(bottomFrozenGroup), scene.tableGroup.addChild(colHeaderGroup), scene.tableGroup.addChild(rightFrozenGroup), scene.tableGroup.addChild(rightBottomCornerGroup), scene.tableGroup.addChild(rightTopCornerGroup), scene.tableGroup.addChild(leftBottomCornerGroup), scene.tableGroup.addChild(cornerHeaderGroup), scene.tableGroup.addChild(componentGroup);
53198
+ leftBottomCornerGroup.role = "corner-left-bottom-header", scene.leftBottomCornerGroup = leftBottomCornerGroup;
53199
+ const bodySelectGroup = createContainerGroup(width, 0, !0);
53200
+ bodySelectGroup.role = "body", bodySelectGroup.name = "select-overlay", scene.bodySelectGroup = bodySelectGroup;
53201
+ const rowHeaderSelectGroup = createContainerGroup(0, 0, !0);
53202
+ rowHeaderSelectGroup.role = "row-header", rowHeaderSelectGroup.name = "select-overlay", scene.rowHeaderSelectGroup = rowHeaderSelectGroup;
53203
+ const bottomFrozenSelectGroup = createContainerGroup(0, 0, !0);
53204
+ bottomFrozenSelectGroup.role = "bottom-frozen", bottomFrozenSelectGroup.name = "select-overlay", scene.bottomFrozenSelectGroup = bottomFrozenSelectGroup;
53205
+ const colHeaderSelectGroup = createContainerGroup(0, 0, !0);
53206
+ colHeaderSelectGroup.role = "col-header", colHeaderSelectGroup.name = "select-overlay", scene.colHeaderSelectGroup = colHeaderSelectGroup;
53207
+ const rightFrozenSelectGroup = createContainerGroup(0, 0, !0);
53208
+ rightFrozenSelectGroup.role = "right-frozen", rightFrozenSelectGroup.name = "select-overlay", scene.rightFrozenSelectGroup = rightFrozenSelectGroup;
53209
+ const rightTopCornerSelectGroup = createContainerGroup(0, 0, !0);
53210
+ rightTopCornerSelectGroup.role = "corner-right-top-header", rightTopCornerSelectGroup.name = "select-overlay", scene.rightTopCornerSelectGroup = rightTopCornerSelectGroup;
53211
+ const rightBottomCornerSelectGroup = createContainerGroup(0, 0, !0);
53212
+ rightBottomCornerSelectGroup.role = "corner-right-bottom-header", rightBottomCornerSelectGroup.name = "select-overlay", scene.rightBottomCornerSelectGroup = rightBottomCornerSelectGroup;
53213
+ const leftBottomCornerSelectGroup = createContainerGroup(0, 0, !0);
53214
+ leftBottomCornerSelectGroup.role = "corner-left-bottom-header", leftBottomCornerSelectGroup.name = "select-overlay", scene.leftBottomCornerSelectGroup = leftBottomCornerSelectGroup;
53215
+ const cornerHeaderSelectGroup = createContainerGroup(0, 0, !0);
53216
+ cornerHeaderSelectGroup.role = "corner-header", cornerHeaderSelectGroup.name = "select-overlay", scene.cornerHeaderSelectGroup = cornerHeaderSelectGroup, scene.tableGroup.addChild(bodyGroup), scene.tableGroup.addChild(rowHeaderGroup), scene.tableGroup.addChild(bottomFrozenGroup), scene.tableGroup.addChild(colHeaderGroup), scene.tableGroup.addChild(rightFrozenGroup), scene.tableGroup.addChild(rightBottomCornerGroup), scene.tableGroup.addChild(rightTopCornerGroup), scene.tableGroup.addChild(leftBottomCornerGroup), scene.tableGroup.addChild(cornerHeaderGroup), scene.tableGroup.addChild(bodySelectGroup), scene.tableGroup.addChild(rowHeaderSelectGroup), scene.tableGroup.addChild(bottomFrozenSelectGroup), scene.tableGroup.addChild(colHeaderSelectGroup), scene.tableGroup.addChild(rightFrozenSelectGroup), scene.tableGroup.addChild(rightBottomCornerSelectGroup), scene.tableGroup.addChild(rightTopCornerSelectGroup), scene.tableGroup.addChild(leftBottomCornerSelectGroup), scene.tableGroup.addChild(cornerHeaderSelectGroup), scene.tableGroup.addChild(componentGroup);
53063
53217
  }
53064
53218
  function createContainerGroup(width, height, clip) {
53065
53219
  return new Group$1({
@@ -53574,10 +53728,10 @@
53574
53728
  });
53575
53729
  }
53576
53730
  clearCells() {
53577
- var _a, _b;
53731
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
53578
53732
  this.table.animationManager.clear(), (this.table.isPivotChart() || this.table._hasCustomRenderOrLayout()) && this.stage.pluginService.findPluginsByName("poptipForText").forEach(plugin => {
53579
53733
  plugin.deactivate(this.stage.pluginService);
53580
- }), this.clear = !0, this.hasFrozen = !1, this.mergeMap.clear(), this.colHeaderGroup.clear(), delete this.colHeaderGroup.border, this.rowHeaderGroup.clear(), delete this.rowHeaderGroup.border, this.cornerHeaderGroup.clear(), delete this.cornerHeaderGroup.border, this.bodyGroup.clear(), delete this.bodyGroup.border, this.bottomFrozenGroup.clear(), delete this.bottomFrozenGroup.border, this.rightFrozenGroup.clear(), delete this.rightFrozenGroup.border, this.rightTopCornerGroup.clear(), delete this.rightTopCornerGroup.border, this.rightBottomCornerGroup.clear(), delete this.rightBottomCornerGroup.border, this.leftBottomCornerGroup.clear(), delete this.leftBottomCornerGroup.border, this.colHeaderGroup.setAttributes({
53734
+ }), this.clear = !0, this.hasFrozen = !1, this.mergeMap.clear(), this.colHeaderGroup.clear(), delete this.colHeaderGroup.border, this.rowHeaderGroup.clear(), delete this.rowHeaderGroup.border, this.cornerHeaderGroup.clear(), delete this.cornerHeaderGroup.border, this.bodyGroup.clear(), delete this.bodyGroup.border, this.bottomFrozenGroup.clear(), delete this.bottomFrozenGroup.border, this.rightFrozenGroup.clear(), delete this.rightFrozenGroup.border, this.rightTopCornerGroup.clear(), delete this.rightTopCornerGroup.border, this.rightBottomCornerGroup.clear(), delete this.rightBottomCornerGroup.border, this.leftBottomCornerGroup.clear(), delete this.leftBottomCornerGroup.border, null === (_a = this.bodySelectGroup) || void 0 === _a || _a.clear(), null === (_b = this.rowHeaderSelectGroup) || void 0 === _b || _b.clear(), null === (_c = this.bottomFrozenSelectGroup) || void 0 === _c || _c.clear(), null === (_d = this.colHeaderSelectGroup) || void 0 === _d || _d.clear(), null === (_e = this.rightFrozenSelectGroup) || void 0 === _e || _e.clear(), null === (_f = this.rightTopCornerSelectGroup) || void 0 === _f || _f.clear(), null === (_g = this.leftBottomCornerSelectGroup) || void 0 === _g || _g.clear(), null === (_h = this.rightBottomCornerSelectGroup) || void 0 === _h || _h.clear(), null === (_j = this.cornerHeaderSelectGroup) || void 0 === _j || _j.clear(), this.colHeaderGroup.setAttributes({
53581
53735
  x: 0,
53582
53736
  y: 0,
53583
53737
  width: 0,
@@ -53625,12 +53779,62 @@
53625
53779
  width: 0,
53626
53780
  height: 0,
53627
53781
  visible: !1
53782
+ }), null === (_k = this.bodySelectGroup) || void 0 === _k || _k.setAttributes({
53783
+ x: 0,
53784
+ y: 0,
53785
+ width: 0,
53786
+ height: 0
53787
+ }), null === (_l = this.rowHeaderSelectGroup) || void 0 === _l || _l.setAttributes({
53788
+ x: 0,
53789
+ y: 0,
53790
+ width: 0,
53791
+ height: 0
53792
+ }), null === (_m = this.bottomFrozenSelectGroup) || void 0 === _m || _m.setAttributes({
53793
+ x: 0,
53794
+ y: 0,
53795
+ width: 0,
53796
+ height: 0,
53797
+ visible: !1
53798
+ }), null === (_o = this.colHeaderSelectGroup) || void 0 === _o || _o.setAttributes({
53799
+ x: 0,
53800
+ y: 0,
53801
+ width: 0,
53802
+ height: 0
53803
+ }), null === (_p = this.rightFrozenSelectGroup) || void 0 === _p || _p.setAttributes({
53804
+ x: 0,
53805
+ y: 0,
53806
+ width: 0,
53807
+ height: 0,
53808
+ visible: !1
53809
+ }), null === (_q = this.rightTopCornerSelectGroup) || void 0 === _q || _q.setAttributes({
53810
+ x: 0,
53811
+ y: 0,
53812
+ width: 0,
53813
+ height: 0,
53814
+ visible: !1
53815
+ }), null === (_r = this.leftBottomCornerSelectGroup) || void 0 === _r || _r.setAttributes({
53816
+ x: 0,
53817
+ y: 0,
53818
+ width: 0,
53819
+ height: 0,
53820
+ visible: !1
53821
+ }), null === (_s = this.rightBottomCornerSelectGroup) || void 0 === _s || _s.setAttributes({
53822
+ x: 0,
53823
+ y: 0,
53824
+ width: 0,
53825
+ height: 0,
53826
+ visible: !1
53827
+ }), null === (_t = this.cornerHeaderSelectGroup) || void 0 === _t || _t.setAttributes({
53828
+ x: 0,
53829
+ y: 0,
53830
+ width: 0,
53831
+ height: 0
53628
53832
  }), this.tableGroup.setAttributes({
53629
53833
  x: this.table.tableX,
53630
53834
  y: this.table.tableY,
53631
53835
  width: 0,
53632
53836
  height: 0
53633
- }), this.tableGroup.border && (this.tableGroup.parent.removeChild(this.tableGroup.border), delete this.tableGroup.border), null === (_a = this.proxy) || void 0 === _a || _a.release(), null === (_b = this.table.reactCustomLayout) || void 0 === _b || _b.clearCache();
53837
+ }), this.tableGroup.border && (this.tableGroup.parent.removeChild(this.tableGroup.border), delete this.tableGroup.border), null === (_u = this.proxy) || void 0 === _u || _u.release(), null === (_v = this.table.reactCustomLayout) || void 0 === _v || _v.clearCache();
53634
53838
  }
53635
53839
  updateStageBackground() {
53636
53840
  this.stage.background = this.table.theme.underlayBackgroundColor, this.stage.renderNextFrame();
@@ -53986,16 +54190,16 @@
53986
54190
  var _a, _b, _c, _d, _e, _f;
53987
54191
  const firstBodyCell = null !== (_b = null === (_a = this.bodyGroup.firstChild) || void 0 === _a ? void 0 : _a.firstChild) && void 0 !== _b ? _b : null === (_c = this.rowHeaderGroup.firstChild) || void 0 === _c ? void 0 : _c.firstChild,
53988
54192
  lastBodyCell = null !== (_e = null === (_d = this.bodyGroup.firstChild) || void 0 === _d ? void 0 : _d.lastChild) && void 0 !== _e ? _e : null === (_f = this.rowHeaderGroup.firstChild) || void 0 === _f ? void 0 : _f.lastChild;
53989
- 0 === y && firstBodyCell && firstBodyCell.row === this.table.frozenRowCount && firstBodyCell.attribute.y + y < 0 ? y = -firstBodyCell.attribute.y : lastBodyCell && this.table.tableNoFrameHeight < this.table.getAllRowsHeight() && lastBodyCell.row === this.table.rowCount - this.table.bottomFrozenRowCount - 1 && lastBodyCell.attribute.y + this.table.getRowHeight(lastBodyCell.row) + y < this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight() - this.table.getBottomFrozenRowsHeight() && (y = this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight() - this.table.getBottomFrozenRowsHeight() - lastBodyCell.attribute.y - this.table.getRowHeight(lastBodyCell.row)), this.colHeaderGroup.attribute.height + y !== this.bodyGroup.attribute.y && (this.bodyGroup.setAttribute("y", this.colHeaderGroup.attribute.height + y), this.rowHeaderGroup.setAttribute("y", this.cornerHeaderGroup.attribute.height + y), this.table.rightFrozenColCount > 0 && this.rightFrozenGroup.setAttribute("y", this.rightTopCornerGroup.attribute.height + y), this.updateNextFrame());
54193
+ 0 === y && firstBodyCell && firstBodyCell.row === this.table.frozenRowCount && firstBodyCell.attribute.y + y < 0 ? y = -firstBodyCell.attribute.y : lastBodyCell && this.table.tableNoFrameHeight < this.table.getAllRowsHeight() && lastBodyCell.row === this.table.rowCount - this.table.bottomFrozenRowCount - 1 && lastBodyCell.attribute.y + this.table.getRowHeight(lastBodyCell.row) + y < this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight() - this.table.getBottomFrozenRowsHeight() && (y = this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight() - this.table.getBottomFrozenRowsHeight() - lastBodyCell.attribute.y - this.table.getRowHeight(lastBodyCell.row)), this.colHeaderGroup.attribute.height + y !== this.bodyGroup.attribute.y && (this.bodyGroup.setAttribute("y", this.colHeaderGroup.attribute.height + y), this.rowHeaderGroup.setAttribute("y", this.cornerHeaderGroup.attribute.height + y), this.bodySelectGroup.setAttribute("y", this.bodyGroup.attribute.y), this.rowHeaderSelectGroup.setAttribute("y", this.rowHeaderGroup.attribute.y), this.colHeaderSelectGroup.setAttribute("y", this.colHeaderGroup.attribute.y), this.cornerHeaderSelectGroup.setAttribute("y", this.cornerHeaderGroup.attribute.y), this.table.rightFrozenColCount > 0 && (this.rightFrozenGroup.setAttribute("y", this.rightTopCornerGroup.attribute.height + y), this.rightFrozenSelectGroup.setAttribute("y", this.rightFrozenGroup.attribute.y), this.rightTopCornerSelectGroup.setAttribute("y", this.rightTopCornerGroup.attribute.y)), this.table.bottomFrozenRowCount > 0 && (this.bottomFrozenSelectGroup.setAttribute("y", this.bottomFrozenGroup.attribute.y), this.leftBottomCornerSelectGroup.setAttribute("y", this.leftBottomCornerGroup.attribute.y)), this.table.rightFrozenColCount > 0 && this.table.bottomFrozenRowCount > 0 && this.rightBottomCornerSelectGroup.setAttribute("y", this.rightBottomCornerGroup.attribute.y), this.updateNextFrame());
53990
54194
  }
53991
54195
  setBodyAndColHeaderX(x) {
53992
54196
  const firstBodyCol = this.bodyGroup.firstChild,
53993
54197
  lastBodyCol = this.bodyGroup.lastChild;
53994
- 0 === x && firstBodyCol && firstBodyCol.col === this.table.frozenColCount && firstBodyCol.attribute.x + x < 0 ? x = -firstBodyCol.attribute.x : lastBodyCol && this.table.tableNoFrameWidth < this.table.getAllColsWidth() && lastBodyCol.col === this.table.colCount - this.table.rightFrozenColCount - 1 && lastBodyCol.attribute.x + lastBodyCol.attribute.width + x < this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() && (x = this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() - lastBodyCol.attribute.x - lastBodyCol.attribute.width), this.table.getFrozenColsWidth() + x !== this.bodyGroup.attribute.x && (this.bodyGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.colHeaderGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.table.bottomFrozenRowCount > 0 && this.bottomFrozenGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.updateNextFrame());
54198
+ 0 === x && firstBodyCol && firstBodyCol.col === this.table.frozenColCount && firstBodyCol.attribute.x + x < 0 ? x = -firstBodyCol.attribute.x : lastBodyCol && this.table.tableNoFrameWidth < this.table.getAllColsWidth() && lastBodyCol.col === this.table.colCount - this.table.rightFrozenColCount - 1 && lastBodyCol.attribute.x + lastBodyCol.attribute.width + x < this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() && (x = this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() - lastBodyCol.attribute.x - lastBodyCol.attribute.width), this.table.getFrozenColsWidth() + x !== this.bodyGroup.attribute.x && (this.bodyGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.colHeaderGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.bodySelectGroup.setAttribute("x", this.bodyGroup.attribute.x), this.colHeaderSelectGroup.setAttribute("x", this.colHeaderGroup.attribute.x), this.rowHeaderSelectGroup.setAttribute("x", this.rowHeaderGroup.attribute.x), this.cornerHeaderSelectGroup.setAttribute("x", this.cornerHeaderGroup.attribute.x), this.table.bottomFrozenRowCount > 0 && (this.bottomFrozenGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.bottomFrozenSelectGroup.setAttribute("x", this.bottomFrozenGroup.attribute.x), this.leftBottomCornerSelectGroup.setAttribute("x", this.leftBottomCornerGroup.attribute.x)), this.table.rightFrozenColCount > 0 && (this.rightFrozenSelectGroup.setAttribute("x", this.rightFrozenGroup.attribute.x), this.rightTopCornerSelectGroup.setAttribute("x", this.rightTopCornerGroup.attribute.x)), this.table.rightFrozenColCount > 0 && this.table.bottomFrozenRowCount > 0 && this.rightBottomCornerSelectGroup.setAttribute("x", this.rightBottomCornerGroup.attribute.x), this.updateNextFrame());
53995
54199
  }
53996
54200
  afterScenegraphCreated() {
53997
- var _a;
53998
- this.isPivot || this.table.transpose ? this.table.options.frozenColCount ? this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.table.options.rightFrozenColCount ? this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount) : this.component.setFrozenColumnShadow(-1) : (this.component.setFrozenColumnShadow(this.table.frozenColCount - 1), this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount)), this.table.stateManager.checkFrozen(), this.updateContainer(), this.createFrameBorder(), this.updateBorderSizeAndPosition(), this.component.updateScrollBar(), handleTextStick(this.table), this.table.options.animationAppear && dealWithAnimationAppear(this.table), !1 === (null === (_a = this.table.options.menu) || void 0 === _a ? void 0 : _a.contextMenuWorkOnlyCell) && this.canvasShowMenu(), this.updateNextFrame();
54201
+ var _a, _b;
54202
+ this.isPivot || this.table.transpose ? this.table.options.frozenColCount ? this.component.setFrozenColumnShadow(this.table.frozenColCount - 1) : this.table.options.rightFrozenColCount ? this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount) : this.component.setFrozenColumnShadow(-1) : (this.component.setFrozenColumnShadow(this.table.frozenColCount - 1), this.component.setRightFrozenColumnShadow(this.table.colCount - this.table.rightFrozenColCount)), this.table.stateManager.checkFrozen(), this.updateContainer(), this.createFrameBorder(), this.updateBorderSizeAndPosition(), this.component.updateScrollBar(), handleTextStick(this.table), this.table.options.animationAppear && dealWithAnimationAppear(this.table), !1 === (null === (_a = this.table.options.menu) || void 0 === _a ? void 0 : _a.contextMenuWorkOnlyCell) && this.canvasShowMenu(), (null === (_b = this.table.stateManager.select.ranges) || void 0 === _b ? void 0 : _b.length) && this.recreateAllSelectRangeComponents(), this.updateNextFrame();
53999
54203
  }
54000
54204
  dealWidthMode() {
54001
54205
  const table = this.table;
@@ -54117,13 +54321,23 @@
54117
54321
  moveHeaderPosition(updateColStart, updateColEnd, updateRowStart, updateRowEnd, moveType, this.table);
54118
54322
  }
54119
54323
  updateContainerAttrWidthAndX() {
54120
- var _a, _b, _c;
54121
- const cornerX = updateContainerChildrenX(this.cornerHeaderGroup, 0),
54122
- rowHeaderX = updateContainerChildrenX(this.rowHeaderGroup, 0),
54123
- colHeaderX = this.colHeaderGroup.hasChildNodes() && this.colHeaderGroup.firstChild ? updateContainerChildrenX(this.colHeaderGroup, this.colHeaderGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_a = this.table.frozenColCount) && void 0 !== _a ? _a : 0, this.colHeaderGroup.firstChild.col - 1) : 0) : 0,
54124
- bodyX = this.bodyGroup.hasChildNodes() && this.bodyGroup.firstChild ? updateContainerChildrenX(this.bodyGroup, this.bodyGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_b = this.table.frozenColCount) && void 0 !== _b ? _b : 0, this.bodyGroup.firstChild.col - 1) : 0) : 0,
54125
- rightX = updateContainerChildrenX(this.rightFrozenGroup.childrenCount > 0 ? this.rightFrozenGroup : this.rightTopCornerGroup, 0);
54126
- this.bottomFrozenGroup.hasChildNodes() && this.bottomFrozenGroup.firstChild && updateContainerChildrenX(this.bottomFrozenGroup, this.bottomFrozenGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_c = this.table.frozenColCount) && void 0 !== _c ? _c : 0, this.bottomFrozenGroup.firstChild.col - 1) : 0), updateContainerChildrenX(this.leftBottomCornerGroup, 0), updateContainerChildrenX(this.rightTopCornerGroup, 0), updateContainerChildrenX(this.rightBottomCornerGroup, 0), this.cornerHeaderGroup.setDeltaWidth(cornerX - this.cornerHeaderGroup.attribute.width), this.leftBottomCornerGroup.setDeltaWidth(cornerX - this.leftBottomCornerGroup.attribute.width), this.colHeaderGroup.setDeltaWidth(colHeaderX - this.colHeaderGroup.attribute.width), this.rowHeaderGroup.setDeltaWidth(rowHeaderX - this.rowHeaderGroup.attribute.width), this.bottomFrozenGroup.setDeltaWidth(colHeaderX - this.bottomFrozenGroup.attribute.width), this.rightFrozenGroup.setDeltaWidth(rightX - this.rightFrozenGroup.attribute.width), this.rightTopCornerGroup.setDeltaWidth(rightX - this.rightTopCornerGroup.attribute.width), this.rightBottomCornerGroup.setDeltaWidth(rightX - this.rightBottomCornerGroup.attribute.width), this.bodyGroup.setDeltaWidth(bodyX - this.bodyGroup.attribute.width), this.colHeaderGroup.setAttribute("x", this.cornerHeaderGroup.attribute.width), this.bottomFrozenGroup.setAttribute("x", this.table.getFrozenColsWidth()), this.bodyGroup.setAttribute("x", this.rowHeaderGroup.attribute.width);
54324
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
54325
+ const frozenStartX = -(null !== (_c = null === (_b = (_a = this.table).getFrozenColsScrollLeft) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0),
54326
+ frozenViewportWidth = this.table.getFrozenColsWidth(),
54327
+ rightFrozenStartX = -this.table.getRightFrozenColsOffset() + (null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsScrollLeft) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0),
54328
+ rightFrozenContentWidth = this.table.getRightFrozenColsContentWidth();
54329
+ updateContainerChildrenX(this.cornerHeaderGroup, frozenStartX), updateContainerChildrenX(this.rowHeaderGroup, frozenStartX);
54330
+ const colHeaderX = this.colHeaderGroup.hasChildNodes() && this.colHeaderGroup.firstChild ? updateContainerChildrenX(this.colHeaderGroup, this.colHeaderGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_g = this.table.frozenColCount) && void 0 !== _g ? _g : 0, this.colHeaderGroup.firstChild.col - 1) : 0) : 0,
54331
+ bodyX = this.bodyGroup.hasChildNodes() && this.bodyGroup.firstChild ? updateContainerChildrenX(this.bodyGroup, this.bodyGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_h = this.table.frozenColCount) && void 0 !== _h ? _h : 0, this.bodyGroup.firstChild.col - 1) : 0) : 0;
54332
+ this.rightFrozenGroup.childrenCount > 0 && updateContainerChildrenX(this.rightFrozenGroup, rightFrozenStartX), this.bottomFrozenGroup.hasChildNodes() && this.bottomFrozenGroup.firstChild && updateContainerChildrenX(this.bottomFrozenGroup, this.bottomFrozenGroup.firstChild.col > 0 ? this.table.getColsWidth(null !== (_j = this.table.frozenColCount) && void 0 !== _j ? _j : 0, this.bottomFrozenGroup.firstChild.col - 1) : 0), updateContainerChildrenX(this.leftBottomCornerGroup, frozenStartX), updateContainerChildrenX(this.rightTopCornerGroup, rightFrozenStartX), updateContainerChildrenX(this.rightBottomCornerGroup, rightFrozenStartX), this.cornerHeaderGroup.setDeltaWidth(frozenViewportWidth - this.cornerHeaderGroup.attribute.width), this.leftBottomCornerGroup.setDeltaWidth(frozenViewportWidth - this.leftBottomCornerGroup.attribute.width), this.colHeaderGroup.setDeltaWidth(colHeaderX - this.colHeaderGroup.attribute.width), this.rowHeaderGroup.setDeltaWidth(frozenViewportWidth - this.rowHeaderGroup.attribute.width), this.bottomFrozenGroup.setDeltaWidth(colHeaderX - this.bottomFrozenGroup.attribute.width), this.rightFrozenGroup.setDeltaWidth(rightFrozenContentWidth - this.rightFrozenGroup.attribute.width), this.rightTopCornerGroup.setDeltaWidth(rightFrozenContentWidth - this.rightTopCornerGroup.attribute.width), this.rightBottomCornerGroup.setDeltaWidth(rightFrozenContentWidth - this.rightBottomCornerGroup.attribute.width), this.bodyGroup.setDeltaWidth(bodyX - this.bodyGroup.attribute.width), this.colHeaderGroup.setAttribute("x", this.cornerHeaderGroup.attribute.width), this.bottomFrozenGroup.setAttribute("x", this.table.getFrozenColsWidth()), this.bodyGroup.setAttribute("x", this.rowHeaderGroup.attribute.width);
54333
+ }
54334
+ setFrozenColsScrollLeft(left) {
54335
+ const frozenStartX = -left;
54336
+ updateContainerChildrenX(this.cornerHeaderGroup, frozenStartX), updateContainerChildrenX(this.rowHeaderGroup, frozenStartX), updateContainerChildrenX(this.leftBottomCornerGroup, frozenStartX), this.updateNextFrame();
54337
+ }
54338
+ setRightFrozenColsScrollLeft(left) {
54339
+ const rightStartX = -this.table.getRightFrozenColsOffset() + left;
54340
+ updateContainerChildrenX(this.rightFrozenGroup, rightStartX), updateContainerChildrenX(this.rightTopCornerGroup, rightStartX), updateContainerChildrenX(this.rightBottomCornerGroup, rightStartX), this.updateNextFrame();
54127
54341
  }
54128
54342
  updateContainerAttrHeightAndY() {
54129
54343
  var _a, _b, _c;
@@ -54148,7 +54362,82 @@
54148
54362
  }, 0)) : (this._needUpdateContainer = !0, this.updateContainerSync(null !== (_a = updateConfig.needUpdateCellY) && void 0 !== _a && _a));
54149
54363
  }
54150
54364
  updateContainerSync(needUpdateCellY = !1) {
54151
- this._needUpdateContainer && (this._needUpdateContainer = !1, this.updateContainerAttrWidthAndX(), needUpdateCellY && this.updateContainerAttrHeightAndY(), this.updateTableSize(), this.component.updateScrollBar(), this.updateNextFrame());
54365
+ this._needUpdateContainer && (this._needUpdateContainer = !1, this.updateContainerAttrWidthAndX(), needUpdateCellY && this.updateContainerAttrHeightAndY(), this.updateTableSize(), this.syncSelectOverlayGroups(), this.component.updateScrollBar(), this.updateNextFrame());
54366
+ }
54367
+ syncSelectOverlayGroups() {
54368
+ this.bodySelectGroup.setAttributes({
54369
+ x: this.bodyGroup.attribute.x,
54370
+ y: this.bodyGroup.attribute.y,
54371
+ width: this.bodyGroup.attribute.width,
54372
+ height: this.bodyGroup.attribute.height
54373
+ }), this.rowHeaderSelectGroup.setAttributes({
54374
+ x: this.rowHeaderGroup.attribute.x,
54375
+ y: this.rowHeaderGroup.attribute.y,
54376
+ width: this.rowHeaderGroup.attribute.width,
54377
+ height: this.rowHeaderGroup.attribute.height
54378
+ }), this.colHeaderSelectGroup.setAttributes({
54379
+ x: this.colHeaderGroup.attribute.x,
54380
+ y: this.colHeaderGroup.attribute.y,
54381
+ width: this.colHeaderGroup.attribute.width,
54382
+ height: this.colHeaderGroup.attribute.height
54383
+ }), this.cornerHeaderSelectGroup.setAttributes({
54384
+ x: this.cornerHeaderGroup.attribute.x,
54385
+ y: this.cornerHeaderGroup.attribute.y,
54386
+ width: this.cornerHeaderGroup.attribute.width,
54387
+ height: this.cornerHeaderGroup.attribute.height
54388
+ }), this.rightFrozenSelectGroup.setAttributes({
54389
+ x: this.rightFrozenGroup.attribute.x,
54390
+ y: this.rightFrozenGroup.attribute.y,
54391
+ width: this.rightFrozenGroup.attribute.width,
54392
+ height: this.rightFrozenGroup.attribute.height,
54393
+ visible: this.rightFrozenGroup.attribute.visible
54394
+ }), this.bottomFrozenSelectGroup.setAttributes({
54395
+ x: this.bottomFrozenGroup.attribute.x,
54396
+ y: this.bottomFrozenGroup.attribute.y,
54397
+ width: this.bottomFrozenGroup.attribute.width,
54398
+ height: this.bottomFrozenGroup.attribute.height,
54399
+ visible: this.bottomFrozenGroup.attribute.visible
54400
+ }), this.rightTopCornerSelectGroup.setAttributes({
54401
+ x: this.rightTopCornerGroup.attribute.x,
54402
+ y: this.rightTopCornerGroup.attribute.y,
54403
+ width: this.rightTopCornerGroup.attribute.width,
54404
+ height: this.rightTopCornerGroup.attribute.height,
54405
+ visible: this.rightTopCornerGroup.attribute.visible
54406
+ }), this.leftBottomCornerSelectGroup.setAttributes({
54407
+ x: this.leftBottomCornerGroup.attribute.x,
54408
+ y: this.leftBottomCornerGroup.attribute.y,
54409
+ width: this.leftBottomCornerGroup.attribute.width,
54410
+ height: this.leftBottomCornerGroup.attribute.height,
54411
+ visible: this.leftBottomCornerGroup.attribute.visible
54412
+ }), this.rightBottomCornerSelectGroup.setAttributes({
54413
+ x: this.rightBottomCornerGroup.attribute.x,
54414
+ y: this.rightBottomCornerGroup.attribute.y,
54415
+ width: this.rightBottomCornerGroup.attribute.width,
54416
+ height: this.rightBottomCornerGroup.attribute.height,
54417
+ visible: this.rightBottomCornerGroup.attribute.visible
54418
+ });
54419
+ }
54420
+ getSelectOverlayGroup(selectRangeType) {
54421
+ switch (selectRangeType) {
54422
+ case "body":
54423
+ return this.bodySelectGroup;
54424
+ case "rowHeader":
54425
+ return this.rowHeaderSelectGroup;
54426
+ case "bottomFrozen":
54427
+ return this.bottomFrozenSelectGroup;
54428
+ case "columnHeader":
54429
+ return this.colHeaderSelectGroup;
54430
+ case "rightFrozen":
54431
+ return this.rightFrozenSelectGroup;
54432
+ case "rightTopCorner":
54433
+ return this.rightTopCornerSelectGroup;
54434
+ case "leftBottomCorner":
54435
+ return this.leftBottomCornerSelectGroup;
54436
+ case "rightBottomCorner":
54437
+ return this.rightBottomCornerSelectGroup;
54438
+ default:
54439
+ return this.cornerHeaderSelectGroup;
54440
+ }
54152
54441
  }
54153
54442
  updateCellContentWhileResize(col, row) {
54154
54443
  var _a;
@@ -55627,29 +55916,32 @@
55627
55916
  }
55628
55917
  }
55629
55918
  function createCustomCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, selectRangeType, selectId, strokes, style) {
55630
- var _a, _b, _c, _d;
55919
+ var _a, _b, _c, _d, _e, _f;
55631
55920
  const startCol = Math.min(start_Col, end_Col),
55632
55921
  startRow = Math.min(start_Row, end_Row),
55633
55922
  endCol = Math.max(start_Col, end_Col),
55634
55923
  endRow = Math.max(start_Row, end_Row),
55924
+ overlayGroup = scene.getSelectOverlayGroup(selectRangeType),
55925
+ offsetX = scene.tableGroup.attribute.x + (null !== (_a = overlayGroup.attribute.x) && void 0 !== _a ? _a : 0),
55926
+ offsetY = scene.tableGroup.attribute.y + (null !== (_b = overlayGroup.attribute.y) && void 0 !== _b ? _b : 0),
55635
55927
  firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds,
55636
55928
  rect = createRect({
55637
55929
  pickable: !1,
55638
- fill: null !== (_a = style.cellBgColor) && void 0 !== _a && _a,
55639
- lineWidth: null !== (_b = style.cellBorderLineWidth) && void 0 !== _b ? _b : 0,
55640
- lineDash: null !== (_c = style.cellBorderLineDash) && void 0 !== _c ? _c : [],
55930
+ fill: null !== (_c = style.cellBgColor) && void 0 !== _c && _c,
55931
+ lineWidth: null !== (_d = style.cellBorderLineWidth) && void 0 !== _d ? _d : 0,
55932
+ lineDash: null !== (_e = style.cellBorderLineDash) && void 0 !== _e ? _e : [],
55641
55933
  stroke: strokes.map(stroke => !!stroke && style.cellBorderColor),
55642
- x: firstCellBound.x1 - scene.tableGroup.attribute.x,
55643
- y: firstCellBound.y1 - scene.tableGroup.attribute.y,
55934
+ x: firstCellBound.x1 - offsetX,
55935
+ y: firstCellBound.y1 - offsetY,
55644
55936
  width: 0,
55645
55937
  height: 0,
55646
55938
  visible: !0,
55647
- cornerRadius: getCornerRadius(selectRangeType, null === (_d = scene.table.theme.frameStyle) || void 0 === _d ? void 0 : _d.cornerRadius, start_Col, start_Row, end_Col, end_Row, scene.table)
55939
+ cornerRadius: getCornerRadius(selectRangeType, null === (_f = scene.table.theme.frameStyle) || void 0 === _f ? void 0 : _f.cornerRadius, start_Col, start_Row, end_Col, end_Row, scene.table)
55648
55940
  });
55649
55941
  scene.customSelectedRangeComponents.set(`${startCol}-${startRow}-${endCol}-${endRow}-${selectId}`, {
55650
55942
  rect: rect,
55651
55943
  role: selectRangeType
55652
- }), scene.tableGroup.insertAfter(rect, "body" === selectRangeType ? scene.bodyGroup : "columnHeader" === selectRangeType ? scene.colHeaderGroup : "rowHeader" === selectRangeType ? scene.rowHeaderGroup : "cornerHeader" === selectRangeType ? scene.cornerHeaderGroup : "rightTopCorner" === selectRangeType ? scene.rightTopCornerGroup : "rightFrozen" === selectRangeType ? scene.rightFrozenGroup : "leftBottomCorner" === selectRangeType ? scene.leftBottomCornerGroup : "bottomFrozen" === selectRangeType ? scene.bottomFrozenGroup : scene.rightBottomCornerGroup);
55944
+ }), overlayGroup.addChild(rect);
55653
55945
  }
55654
55946
 
55655
55947
  function deletaCustomSelectRanges(state) {
@@ -55670,7 +55962,7 @@
55670
55962
  constructor(table) {
55671
55963
  this.fastScrolling = !1, this.checkedState = new Map(), this.headerCheckedState = {}, this._checkboxCellTypeFields = [], this._headerCheckFuncs = {}, this.radioState = {}, this.resetInteractionState = debounce(state => {
55672
55964
  this.updateInteractionState(null != state ? state : InteractionState.default);
55673
- }, 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this);
55965
+ }, 100), this.table = table, this.initState(), this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this), this.updateFrozenHorizontalScrollBar = this.updateFrozenHorizontalScrollBar.bind(this), this.updateRightFrozenHorizontalScrollBar = this.updateRightFrozenHorizontalScrollBar.bind(this);
55674
55966
  }
55675
55967
  initState() {
55676
55968
  this._initState(), this.setHoverState(), this.setSelectState(), this.setFrozenState();
@@ -55787,7 +56079,9 @@
55787
56079
  row: -1
55788
56080
  }, this.scroll = {
55789
56081
  horizontalBarPos: 0,
55790
- verticalBarPos: 0
56082
+ verticalBarPos: 0,
56083
+ frozenHorizontalBarPos: 0,
56084
+ rightFrozenHorizontalBarPos: 0
55791
56085
  }, this.tablePosition = {
55792
56086
  absoluteX: 0,
55793
56087
  absoluteY: 0
@@ -56019,13 +56313,42 @@
56019
56313
  }), void this._frozenObserver.observe(container);
56020
56314
  }
56021
56315
  if (this.table.getColsWidth(0, originalFrozenColCount - 1) > this.table._getMaxFrozenWidth()) {
56022
- if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0), this.setFrozenCol(-1);else {
56316
+ if (this.table.options.scrollFrozenCols) this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount), this.setFrozenCol(originalFrozenColCount));else if (this.table.internalProps.unfreezeAllOnExceedsMaxWidth) this.table._setFrozenColCount(0), this.setFrozenCol(-1);else {
56023
56317
  const computedFrozenColCount = this.table._getComputedFrozenColCount(originalFrozenColCount);
56024
56318
  this.table._setFrozenColCount(computedFrozenColCount), this.setFrozenCol(computedFrozenColCount);
56025
56319
  }
56026
56320
  } else this.table.frozenColCount !== originalFrozenColCount && (this.table._setFrozenColCount(originalFrozenColCount), this.setFrozenCol(originalFrozenColCount));
56321
+ this.table.options.scrollFrozenCols && 0 !== this.table.getFrozenColsOffset() ? this.setFrozenColsScrollLeft(this.scroll.frozenHorizontalBarPos, !1) : this.setFrozenColsScrollLeft(0, !1), this.table.options.scrollRightFrozenCols && 0 !== this.table.getRightFrozenColsOffset() ? this.setRightFrozenColsScrollLeft(this.scroll.rightFrozenHorizontalBarPos, !1) : this.setRightFrozenColsScrollLeft(0, !1);
56027
56322
  } else this.clearFrozenObserver();
56028
56323
  }
56324
+ setFrozenColsScrollLeft(left, triggerRender = !0) {
56325
+ if (!this.table || !this.table.scenegraph) return;
56326
+ const maxScrollLeft = this.table.getFrozenColsOffset();
56327
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.frozenHorizontalBarPos === left) return;
56328
+ this.scroll.frozenHorizontalBarPos = left;
56329
+ const ratio = maxScrollLeft ? left / maxScrollLeft : 0;
56330
+ this.table.scenegraph.component.updateFrozenHorizontalScrollBarPos(ratio), triggerRender && this.table.scenegraph.setFrozenColsScrollLeft(left);
56331
+ }
56332
+ setRightFrozenColsScrollLeft(left, triggerRender = !0) {
56333
+ if (!this.table || !this.table.scenegraph) return;
56334
+ const maxScrollLeft = this.table.getRightFrozenColsOffset();
56335
+ if (left = Math.max(0, Math.min(left, maxScrollLeft)), left = Math.ceil(left), this.scroll.rightFrozenHorizontalBarPos === left) return;
56336
+ this.scroll.rightFrozenHorizontalBarPos = left;
56337
+ const ratio = maxScrollLeft ? 1 - left / maxScrollLeft : 1;
56338
+ this.table.scenegraph.component.updateRightFrozenHorizontalScrollBarPos(ratio), triggerRender && this.table.scenegraph.setRightFrozenColsScrollLeft(left);
56339
+ }
56340
+ updateFrozenHorizontalScrollBar(xRatio) {
56341
+ var _a, _b, _c;
56342
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
56343
+ let left = Math.ceil(xRatio * maxScrollLeft);
56344
+ isValid$2(left) && !isNaN(left) || (left = 0), this.setFrozenColsScrollLeft(left, !0);
56345
+ }
56346
+ updateRightFrozenHorizontalScrollBar(xRatio) {
56347
+ var _a, _b, _c;
56348
+ const maxScrollLeft = null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0;
56349
+ let left = Math.ceil((1 - xRatio) * maxScrollLeft);
56350
+ isValid$2(left) && !isNaN(left) || (left = 0), this.setRightFrozenColsScrollLeft(left, !0);
56351
+ }
56029
56352
  clearFrozenObserver() {
56030
56353
  this._frozenObserver && (this._frozenObserver.disconnect(), this._frozenObserver = null);
56031
56354
  }
@@ -56098,32 +56421,35 @@
56098
56421
  }), oldVerticalBarPos !== this.scroll.verticalBarPos && this.checkVerticalScrollBarEnd();
56099
56422
  }
56100
56423
  updateHorizontalScrollBar(xRatio) {
56101
- var _a, _b, _c, _d;
56424
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
56102
56425
  const totalWidth = this.table.getAllColsWidth(),
56103
- oldHorizontalBarPos = this.scroll.horizontalBarPos;
56104
- let horizontalBarPos = Math.ceil(xRatio * (totalWidth - this.table.scenegraph.width));
56426
+ oldHorizontalBarPos = this.scroll.horizontalBarPos,
56427
+ frozenOffset = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0,
56428
+ rightFrozenOffset = null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0,
56429
+ scrollRange = Math.max(0, totalWidth - this.table.scenegraph.width - frozenOffset - rightFrozenOffset);
56430
+ let horizontalBarPos = Math.ceil(xRatio * scrollRange);
56105
56431
  isValid$2(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
56106
56432
  const dx = horizontalBarPos - this.table.scenegraph.proxy.deltaX - oldHorizontalBarPos;
56107
56433
  if (this.table.fireListeners(TABLE_EVENT_TYPE.CAN_SCROLL, {
56108
56434
  event: void 0,
56109
56435
  scrollTop: this.scroll.verticalBarPos,
56110
56436
  scrollLeft: horizontalBarPos - this.table.scenegraph.proxy.deltaX,
56111
- scrollHeight: null === (_a = this.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
56112
- scrollWidth: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
56437
+ scrollHeight: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
56438
+ scrollWidth: null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.width,
56113
56439
  viewHeight: this.table.tableNoFrameHeight,
56114
56440
  viewWidth: this.table.tableNoFrameWidth,
56115
56441
  scrollDirection: "horizontal",
56116
56442
  scrollRatioX: xRatio,
56117
56443
  dx: dx
56118
56444
  }).some(value => !1 === value)) {
56119
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
56445
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
56120
56446
  this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
56121
56447
  } else this.scroll.horizontalBarPos = horizontalBarPos, this.table.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio), this.scroll.horizontalBarPos -= this.table.scenegraph.proxy.deltaX, this.table.scenegraph.proxy.deltaX = 0, this.updateHoverPos(-1, -1), this.table.fireListeners(TABLE_EVENT_TYPE.SCROLL, {
56122
56448
  event: void 0,
56123
56449
  scrollTop: this.scroll.verticalBarPos,
56124
56450
  scrollLeft: this.scroll.horizontalBarPos,
56125
- scrollHeight: null === (_c = this.table.theme.scrollStyle) || void 0 === _c ? void 0 : _c.width,
56126
- scrollWidth: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
56451
+ scrollHeight: null === (_j = this.table.theme.scrollStyle) || void 0 === _j ? void 0 : _j.width,
56452
+ scrollWidth: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
56127
56453
  viewHeight: this.table.tableNoFrameHeight,
56128
56454
  viewWidth: this.table.tableNoFrameWidth,
56129
56455
  scrollDirection: "horizontal",
@@ -56175,15 +56501,18 @@
56175
56501
  }), oldVerticalBarPos !== top && triggerEvent && this.checkVerticalScrollBarEnd();
56176
56502
  }
56177
56503
  setScrollLeft(left, event, triggerEvent = !0) {
56178
- var _a, _b, _c, _d, _e, _f, _g;
56504
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
56179
56505
  if (!this.table || !this.table.scenegraph) return;
56180
56506
  this.table.scrollLeft;
56181
56507
  const totalWidth = this.table.getAllColsWidth(),
56182
- sizeTolerance = (this.table.getFrozenColsWidth(), (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0);
56183
- left = Math.max(0, Math.min(left, totalWidth - this.table.scenegraph.width - sizeTolerance)), left = Math.ceil(left);
56508
+ frozenOffset = null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0,
56509
+ rightFrozenOffset = null !== (_f = null === (_e = (_d = this.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0,
56510
+ scrollRange = Math.max(0, totalWidth - this.table.scenegraph.width - frozenOffset - rightFrozenOffset),
56511
+ sizeTolerance = (null === (_g = this.table.options.customConfig) || void 0 === _g ? void 0 : _g._disableColumnAndRowSizeRound) ? 1 : 0;
56512
+ left = Math.max(0, Math.min(left, scrollRange - sizeTolerance)), left = Math.ceil(left);
56184
56513
  const oldHorizontalBarPos = this.scroll.horizontalBarPos,
56185
- xRatio = left / (totalWidth - this.table.scenegraph.width);
56186
- if ((oldHorizontalBarPos !== left || !0 === (null === (_c = null === (_b = this.table.options) || void 0 === _b ? void 0 : _b.customConfig) || void 0 === _c ? void 0 : _c.scrollEventAlwaysTrigger)) && triggerEvent) {
56514
+ xRatio = scrollRange ? left / scrollRange : 0;
56515
+ if ((oldHorizontalBarPos !== left || !0 === (null === (_j = null === (_h = this.table.options) || void 0 === _h ? void 0 : _h.customConfig) || void 0 === _j ? void 0 : _j.scrollEventAlwaysTrigger)) && triggerEvent) {
56187
56516
  let horizontalBarPos = left;
56188
56517
  isValid$2(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
56189
56518
  const dx = horizontalBarPos - oldHorizontalBarPos;
@@ -56191,15 +56520,15 @@
56191
56520
  event: null == event ? void 0 : event.nativeEvent,
56192
56521
  scrollTop: this.scroll.verticalBarPos,
56193
56522
  scrollLeft: horizontalBarPos,
56194
- scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
56195
- scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
56523
+ scrollHeight: null === (_k = this.table.theme.scrollStyle) || void 0 === _k ? void 0 : _k.width,
56524
+ scrollWidth: null === (_l = this.table.theme.scrollStyle) || void 0 === _l ? void 0 : _l.width,
56196
56525
  viewHeight: this.table.tableNoFrameHeight,
56197
56526
  viewWidth: this.table.tableNoFrameWidth,
56198
56527
  scrollDirection: "horizontal",
56199
56528
  scrollRatioX: xRatio,
56200
56529
  dx: dx
56201
56530
  }).some(value => !1 === value)) {
56202
- const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
56531
+ const xRatio = scrollRange ? this.scroll.horizontalBarPos / scrollRange : 0;
56203
56532
  return void this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
56204
56533
  }
56205
56534
  }
@@ -56209,8 +56538,8 @@
56209
56538
  event: null == event ? void 0 : event.nativeEvent,
56210
56539
  scrollTop: this.scroll.verticalBarPos,
56211
56540
  scrollLeft: this.scroll.horizontalBarPos,
56212
- scrollHeight: null === (_f = this.table.theme.scrollStyle) || void 0 === _f ? void 0 : _f.width,
56213
- scrollWidth: null === (_g = this.table.theme.scrollStyle) || void 0 === _g ? void 0 : _g.width,
56541
+ scrollHeight: null === (_m = this.table.theme.scrollStyle) || void 0 === _m ? void 0 : _m.width,
56542
+ scrollWidth: null === (_o = this.table.theme.scrollStyle) || void 0 === _o ? void 0 : _o.width,
56214
56543
  viewHeight: this.table.tableNoFrameHeight,
56215
56544
  viewWidth: this.table.tableNoFrameWidth,
56216
56545
  scrollDirection: "horizontal",
@@ -56222,7 +56551,7 @@
56222
56551
  this.table.scenegraph.component.hideVerticalScrollBar();
56223
56552
  }
56224
56553
  showVerticalScrollBar(autoHide) {
56225
- this.table.scenegraph.component.showVerticalScrollBar(), autoHide && (clearTimeout(this._clearVerticalScrollBar), this._clearVerticalScrollBar = setTimeout(() => {
56554
+ this.table.scenegraph.component.showVerticalScrollBar(), clearTimeout(this._clearVerticalScrollBar), autoHide && (this._clearVerticalScrollBar = setTimeout(() => {
56226
56555
  var _a;
56227
56556
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideVerticalScrollBar();
56228
56557
  }, 1e3));
@@ -56230,9 +56559,9 @@
56230
56559
  hideHorizontalScrollBar() {
56231
56560
  this.table.scenegraph.component.hideHorizontalScrollBar();
56232
56561
  }
56233
- showHorizontalScrollBar(autoHide) {
56562
+ showHorizontalScrollBar(autoHide, target = "all") {
56234
56563
  var _a;
56235
- this.table.scenegraph.component.showHorizontalScrollBar(), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(), autoHide && (clearTimeout(this._clearHorizontalScrollBar), this._clearHorizontalScrollBar = setTimeout(() => {
56564
+ this.table.scenegraph.component.showHorizontalScrollBar(target), null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.showFrozenColumnShadow(), clearTimeout(this._clearHorizontalScrollBar), autoHide && (this._clearHorizontalScrollBar = setTimeout(() => {
56236
56565
  var _a, _b;
56237
56566
  null === (_a = this.table.scenegraph) || void 0 === _a || _a.component.hideFrozenColumnShadow(), null === (_b = this.table.scenegraph) || void 0 === _b || _b.component.hideHorizontalScrollBar();
56238
56567
  }, 1e3));
@@ -56603,7 +56932,7 @@
56603
56932
  }
56604
56933
 
56605
56934
  function handleWhell(event, state, isWheelEvent = !0) {
56606
- var _a, _b, _c;
56935
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
56607
56936
  let {
56608
56937
  deltaX: deltaX,
56609
56938
  deltaY: deltaY
@@ -56614,8 +56943,39 @@
56614
56943
  vertical: 1
56615
56944
  });
56616
56945
  (optimizedDeltaX || optimizedDeltaY) && state.interactionState !== InteractionState.scrolling && state.updateInteractionState(InteractionState.scrolling);
56617
- const autoHide = "scrolling" === (null === (_b = null === (_a = state.table.options.theme) || void 0 === _a ? void 0 : _a.scrollStyle) || void 0 === _b ? void 0 : _b.visible);
56618
- optimizedDeltaX && (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event), state.showHorizontalScrollBar(autoHide)), optimizedDeltaY && (state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event), state.showVerticalScrollBar(autoHide)), isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll), (null === (_c = event.nativeEvent) || void 0 === _c ? void 0 : _c.cancelable) && ("none" === state.table.internalProps.overscrollBehavior && (deltaY && isVerticalExistScrollBar(state) || deltaX && isHorizontalExistScrollBar(state)) || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, state) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && isHorizontalScrollable(deltaX, state)) && event.nativeEvent.preventDefault();
56946
+ const visible1 = null === (_a = state.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.visible,
56947
+ horizontalAutoHide = "scrolling" === (null !== (_c = null === (_b = state.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.horizontalVisible) && void 0 !== _c ? _c : visible1),
56948
+ verticalAutoHide = "scrolling" === (null !== (_e = null === (_d = state.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.verticalVisible) && void 0 !== _e ? _e : visible1);
56949
+ let usedFrozenHorizontal = !1,
56950
+ usedRightFrozenHorizontal = !1,
56951
+ blockedFrozenHorizontal = !1,
56952
+ blockedRightFrozenHorizontal = !1;
56953
+ if (optimizedDeltaX) {
56954
+ const pxEvent = event.x,
56955
+ pyEvent = event.y,
56956
+ pxFallback = null === (_g = null === (_f = state.table.eventManager) || void 0 === _f ? void 0 : _f.LastBodyPointerXY) || void 0 === _g ? void 0 : _g.x,
56957
+ pyFallback = null === (_j = null === (_h = state.table.eventManager) || void 0 === _h ? void 0 : _h.LastBodyPointerXY) || void 0 === _j ? void 0 : _j.y,
56958
+ px = "number" == typeof pxEvent ? pxEvent : pxFallback,
56959
+ py = "number" == typeof pyEvent ? pyEvent : pyFallback,
56960
+ relativeX = "number" == typeof px ? px - state.table.tableX : NaN,
56961
+ relativeY = "number" == typeof py ? py - state.table.tableY : NaN,
56962
+ isInTable = isFinite(relativeX) && isFinite(relativeY) && relativeX >= 0 && relativeY >= 0 && relativeX <= state.table.tableNoFrameWidth && relativeY <= state.table.tableNoFrameHeight,
56963
+ frozenColsScrollable = state.table.options.scrollFrozenCols && state.table.getFrozenColsOffset() > 0,
56964
+ rightFrozenColsScrollable = state.table.options.scrollRightFrozenCols && state.table.getRightFrozenColsOffset() > 0,
56965
+ isInFrozenViewport = isInTable && relativeX > 0 && relativeX < state.table.getFrozenColsWidth(),
56966
+ isInRightFrozenViewport = isInTable && relativeX > state.table.tableNoFrameWidth - state.table.getRightFrozenColsWidth();
56967
+ if (frozenColsScrollable && isInFrozenViewport) {
56968
+ const maxFrozenScrollLeft = state.table.getFrozenColsOffset(),
56969
+ nextFrozenScrollLeft = state.scroll.frozenHorizontalBarPos + optimizedDeltaX;
56970
+ optimizedDeltaX < 0 && state.scroll.frozenHorizontalBarPos > 0 || optimizedDeltaX > 0 && state.scroll.frozenHorizontalBarPos < maxFrozenScrollLeft ? (state.setFrozenColsScrollLeft(nextFrozenScrollLeft), usedFrozenHorizontal = !0, state.showHorizontalScrollBar(horizontalAutoHide, "frozen")) : state.table.options.scrollFrozenColsPassThroughToBody ? (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event), state.showHorizontalScrollBar(horizontalAutoHide, "body")) : (blockedFrozenHorizontal = !0, state.showHorizontalScrollBar(horizontalAutoHide, "frozen"));
56971
+ } else if (rightFrozenColsScrollable && isInRightFrozenViewport) {
56972
+ const maxRightFrozenScrollLeft = state.table.getRightFrozenColsOffset(),
56973
+ rightFrozenDelta = -optimizedDeltaX,
56974
+ nextRightFrozenScrollLeft = state.scroll.rightFrozenHorizontalBarPos + rightFrozenDelta;
56975
+ rightFrozenDelta < 0 && state.scroll.rightFrozenHorizontalBarPos > 0 || rightFrozenDelta > 0 && state.scroll.rightFrozenHorizontalBarPos < maxRightFrozenScrollLeft ? (state.setRightFrozenColsScrollLeft(nextRightFrozenScrollLeft), usedRightFrozenHorizontal = !0, state.showHorizontalScrollBar(horizontalAutoHide, "rightFrozen")) : state.table.options.scrollFrozenColsPassThroughToBody ? (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event), state.showHorizontalScrollBar(horizontalAutoHide, "body")) : (blockedRightFrozenHorizontal = !0, state.showHorizontalScrollBar(horizontalAutoHide, "rightFrozen"));
56976
+ } else state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event), state.showHorizontalScrollBar(horizontalAutoHide, "body");
56977
+ }
56978
+ optimizedDeltaY && (state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event), state.showVerticalScrollBar(verticalAutoHide)), isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll), (null === (_k = event.nativeEvent) || void 0 === _k ? void 0 : _k.cancelable) && ("none" === state.table.internalProps.overscrollBehavior && (deltaY && isVerticalExistScrollBar(state) || deltaX && isHorizontalExistScrollBar(state)) || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, state) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && !blockedFrozenHorizontal && !blockedRightFrozenHorizontal && (usedFrozenHorizontal ? state.table.getFrozenColsOffset() > 0 : usedRightFrozenHorizontal ? state.table.getRightFrozenColsOffset() > 0 : isHorizontalScrollable(deltaX, state))) && event.nativeEvent.preventDefault();
56619
56979
  }
56620
56980
  function optimizeScrollXY(x, y, ratio) {
56621
56981
  var _a, _b;
@@ -56628,13 +56988,19 @@
56628
56988
  return 0 != state.table.getAllRowsHeight() - state.table.scenegraph.height && !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);
56629
56989
  }
56630
56990
  function isHorizontalScrollable(deltaX, state) {
56631
- return 0 != state.table.getAllColsWidth() - state.table.scenegraph.width && !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);
56991
+ var _a, _b, _c, _d, _e, _f;
56992
+ const frozenOffset = null !== (_c = null === (_b = (_a = state.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0,
56993
+ rightFrozenOffset = null !== (_f = null === (_e = (_d = state.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0;
56994
+ return 0 != state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset && !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);
56632
56995
  }
56633
56996
  function isVerticalExistScrollBar(state) {
56634
56997
  return !(state.table.getAllRowsHeight() - state.table.scenegraph.height <= 0);
56635
56998
  }
56636
56999
  function isHorizontalExistScrollBar(state) {
56637
- return !(state.table.getAllColsWidth() - state.table.scenegraph.width <= 0);
57000
+ var _a, _b, _c, _d, _e, _f;
57001
+ const frozenOffset = null !== (_c = null === (_b = (_a = state.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0,
57002
+ rightFrozenOffset = null !== (_f = null === (_e = (_d = state.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0;
57003
+ return !(state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset <= 0);
56638
57004
  }
56639
57005
  function isScrollToTop(deltaY, state) {
56640
57006
  return 0 !== state.table.getAllRowsHeight() - state.table.scenegraph.height && deltaY <= 0 && state.scroll.verticalBarPos < 1;
@@ -56646,12 +57012,17 @@
56646
57012
  return 0 !== totalHeight && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1 + sizeTolerance;
56647
57013
  }
56648
57014
  function isScrollToLeft(deltaX, state) {
56649
- return 0 !== state.table.getAllColsWidth() - state.table.scenegraph.width && deltaX <= 0 && state.scroll.horizontalBarPos < 1;
57015
+ var _a, _b, _c, _d, _e, _f;
57016
+ const frozenOffset = null !== (_c = null === (_b = (_a = state.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0,
57017
+ rightFrozenOffset = null !== (_f = null === (_e = (_d = state.table).getRightFrozenColsOffset) || void 0 === _e ? void 0 : _e.call(_d)) && void 0 !== _f ? _f : 0;
57018
+ return 0 !== state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset && deltaX <= 0 && state.scroll.horizontalBarPos < 1;
56650
57019
  }
56651
57020
  function isScrollToRight(deltaX, state) {
56652
- var _a;
57021
+ var _a, _b, _c, _d, _e, _f, _g;
56653
57022
  const sizeTolerance = (null === (_a = state.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0,
56654
- totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;
57023
+ frozenOffset = null !== (_d = null === (_c = (_b = state.table).getFrozenColsOffset) || void 0 === _c ? void 0 : _c.call(_b)) && void 0 !== _d ? _d : 0,
57024
+ rightFrozenOffset = null !== (_g = null === (_f = (_e = state.table).getRightFrozenColsOffset) || void 0 === _f ? void 0 : _f.call(_e)) && void 0 !== _g ? _g : 0,
57025
+ totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset;
56655
57026
  return 0 !== totalWidth && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1 + sizeTolerance;
56656
57027
  }
56657
57028
  class InertiaScroll {
@@ -56730,16 +57101,17 @@
56730
57101
 
56731
57102
  function bindTableGroupListener(eventManager) {
56732
57103
  const table = eventManager.table,
56733
- stateManager = table.stateManager;
57104
+ stateManager = table.stateManager,
57105
+ getEventArgsSet = e => getCellEventArgsSetWithTable(e, table);
56734
57106
  table.scenegraph.tableGroup.addEventListener("pointermove", e => {
56735
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
57107
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
56736
57108
  const lastX = null !== (_b = null === (_a = table.eventManager.LastPointerXY) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : e.x,
56737
57109
  lastY = null !== (_d = null === (_c = table.eventManager.LastPointerXY) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : e.y;
56738
57110
  table.eventManager.LastPointerXY = {
56739
57111
  x: e.x,
56740
57112
  y: e.y
56741
57113
  }, eventManager.touchSetTimeout && (clearTimeout(eventManager.touchSetTimeout), eventManager.touchSetTimeout = void 0);
56742
- const eventArgsSet = getCellEventArgsSet(e);
57114
+ const eventArgsSet = getEventArgsSet(e);
56743
57115
  if (eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE.MOUSEMOVE_TABLE) && table.fireListeners(TABLE_EVENT_TYPE.MOUSEMOVE_TABLE, {
56744
57116
  col: eventArgsSet.eventArgs.col,
56745
57117
  row: eventArgsSet.eventArgs.row,
@@ -56793,14 +57165,19 @@
56793
57165
  mergeCellInfo: null === (_t = eventArgsSet.eventArgs) || void 0 === _t ? void 0 : _t.mergeInfo
56794
57166
  });
56795
57167
  }
57168
+ if (table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.horizontalVisible || !table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.visible) {
57169
+ const relativeX = e.x - table.tableX,
57170
+ target = table.options.scrollFrozenCols && (null === (_u = table.getFrozenColsOffset) || void 0 === _u ? void 0 : _u.call(table)) > 0 && relativeX >= 0 && relativeX < table.getFrozenColsWidth() ? "frozen" : table.options.scrollRightFrozenCols && (null === (_v = table.getRightFrozenColsOffset) || void 0 === _v ? void 0 : _v.call(table)) > 0 && relativeX > table.tableNoFrameWidth - table.getRightFrozenColsWidth() ? "rightFrozen" : "body";
57171
+ stateManager.showHorizontalScrollBar(!1, target);
57172
+ }
56796
57173
  }), table.scenegraph.tableGroup.addEventListener("pointerout", e => {
56797
57174
  var _a;
56798
- const eventArgsSet = getCellEventArgsSet(e),
57175
+ const eventArgsSet = getEventArgsSet(e),
56799
57176
  cellGoup = null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target;
56800
57177
  "table" === (null == cellGoup ? void 0 : cellGoup.role) && eventManager.dealTableHover();
56801
57178
  }), table.scenegraph.tableGroup.addEventListener("pointerover", e => {
56802
57179
  var _a, _b;
56803
- const eventArgsSet = getCellEventArgsSet(e),
57180
+ const eventArgsSet = getEventArgsSet(e),
56804
57181
  cellGoup = null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target;
56805
57182
  if (cellGoup && table.hasListeners(TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL) && "symbol" === cellGoup.type) {
56806
57183
  const cellGroup = e.composedPath().find(p => "cell" === p.roll);
@@ -56829,7 +57206,13 @@
56829
57206
  }
56830
57207
  }
56831
57208
  }), table.scenegraph.tableGroup.addEventListener("pointerenter", e => {
56832
- (table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.horizontalVisible || !table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.visible) && stateManager.showHorizontalScrollBar(), (table.theme.scrollStyle.verticalVisible && "focus" === table.theme.scrollStyle.verticalVisible || !table.theme.scrollStyle.verticalVisible && "focus" === table.theme.scrollStyle.visible) && stateManager.showVerticalScrollBar(), table.hasListeners(TABLE_EVENT_TYPE.MOUSEENTER_TABLE) && table.fireListeners(TABLE_EVENT_TYPE.MOUSEENTER_TABLE, {
57209
+ var _a, _b;
57210
+ if (table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.horizontalVisible || !table.theme.scrollStyle.horizontalVisible && "focus" === table.theme.scrollStyle.visible) {
57211
+ const relativeX = e.x - table.tableX,
57212
+ target = table.options.scrollFrozenCols && (null === (_a = table.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(table)) > 0 && relativeX >= 0 && relativeX < table.getFrozenColsWidth() ? "frozen" : table.options.scrollRightFrozenCols && (null === (_b = table.getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(table)) > 0 && relativeX > table.tableNoFrameWidth - table.getRightFrozenColsWidth() ? "rightFrozen" : "body";
57213
+ stateManager.showHorizontalScrollBar(!1, target);
57214
+ }
57215
+ (table.theme.scrollStyle.verticalVisible && "focus" === table.theme.scrollStyle.verticalVisible || !table.theme.scrollStyle.verticalVisible && "focus" === table.theme.scrollStyle.visible) && stateManager.showVerticalScrollBar(), table.hasListeners(TABLE_EVENT_TYPE.MOUSEENTER_TABLE) && table.fireListeners(TABLE_EVENT_TYPE.MOUSEENTER_TABLE, {
56833
57216
  event: e.nativeEvent
56834
57217
  });
56835
57218
  }), table.scenegraph.tableGroup.addEventListener("pointerleave", e => {
@@ -56859,7 +57242,7 @@
56859
57242
  x: e.x,
56860
57243
  y: e.y
56861
57244
  }, 0 !== e.button) return;
56862
- const eventArgsSet = getCellEventArgsSet(e);
57245
+ const eventArgsSet = getEventArgsSet(e);
56863
57246
  if (eventManager.downIcon = void 0, stateManager.interactionState !== InteractionState.default) return;
56864
57247
  if (table.isPivotChart() && "chart" !== (null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target.type) && (table.scenegraph.updateChartState(null, void 0), table.scenegraph.deactivateChart(-1, -1, !0)), (null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target) !== (null === (_c = stateManager.residentHoverIcon) || void 0 === _c ? void 0 : _c.icon) && stateManager.hideMenu(), "chart" === (null === (_d = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.target.type)) return;
56865
57248
  const isCompleteEdit = null === (_e = table.editorManager) || void 0 === _e ? void 0 : _e.completeEdit(e.nativeEvent);
@@ -56896,7 +57279,7 @@
56896
57279
  }
56897
57280
  }
56898
57281
  if (table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_CELL)) {
56899
- const eventArgsSet = getCellEventArgsSet(e);
57282
+ const eventArgsSet = getEventArgsSet(e);
56900
57283
  eventArgsSet.eventArgs && table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_CELL, {
56901
57284
  col: eventArgsSet.eventArgs.col,
56902
57285
  row: eventArgsSet.eventArgs.row,
@@ -56915,7 +57298,7 @@
56915
57298
  fireMoveColEventListeners(table, endMoveColSuccess, e.nativeEvent);
56916
57299
  } else if (stateManager.isSelecting()) {
56917
57300
  table.stateManager.endSelectCells(), table.stateManager.isFillHandle() && table.stateManager.endFillSelect();
56918
- const eventArgsSet = getCellEventArgsSet(e);
57301
+ const eventArgsSet = getEventArgsSet(e);
56919
57302
  if (table.eventManager.isDraging && eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END)) {
56920
57303
  const cellsEvent = {
56921
57304
  event: e.nativeEvent,
@@ -56931,7 +57314,7 @@
56931
57314
  }
56932
57315
  } else stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
56933
57316
  if (!table.eventManager.isDraging) {
56934
- const eventArgsSet = getCellEventArgsSet(e);
57317
+ const eventArgsSet = getEventArgsSet(e);
56935
57318
  if (!eventManager.isTouchMove && 0 === e.button && eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE.CLICK_CELL)) {
56936
57319
  const {
56937
57320
  col: col,
@@ -56959,7 +57342,7 @@
56959
57342
  }
56960
57343
  }
56961
57344
  if (table.hasListeners(TABLE_EVENT_TYPE.MOUSEUP_CELL)) {
56962
- const eventArgsSet = getCellEventArgsSet(e);
57345
+ const eventArgsSet = getEventArgsSet(e);
56963
57346
  eventArgsSet.eventArgs && table.fireListeners(TABLE_EVENT_TYPE.MOUSEUP_CELL, {
56964
57347
  col: eventArgsSet.eventArgs.col,
56965
57348
  row: eventArgsSet.eventArgs.row,
@@ -56974,7 +57357,7 @@
56974
57357
  }
56975
57358
  }), table.scenegraph.tableGroup.addEventListener("rightdown", e => {
56976
57359
  var _a, _b, _c, _d, _e, _f, _g, _h;
56977
- const eventArgsSet = getCellEventArgsSet(e);
57360
+ const eventArgsSet = getEventArgsSet(e);
56978
57361
  if (eventArgsSet.eventArgs) {
56979
57362
  stateManager.triggerContextMenu(eventArgsSet.eventArgs.col, eventArgsSet.eventArgs.row, eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y);
56980
57363
  const {
@@ -57021,9 +57404,9 @@
57021
57404
  }), table.scenegraph.tableGroup.addEventListener("pointertap", e => {
57022
57405
  var _a;
57023
57406
  if (table.stateManager.columnResize.resizing) return;
57024
- const eventArgsSet = getCellEventArgsSet(e);
57407
+ const eventArgsSet = getEventArgsSet(e);
57025
57408
  if (!table.stateManager.columnResize.resizing && !table.stateManager.columnMove.moving && (eventManager.dealIconClick(e, eventArgsSet), (null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) && eventManager.touchSetTimeout && "touch" === e.pointerType)) {
57026
- const eventArgsSet = getCellEventArgsSet(e);
57409
+ const eventArgsSet = getEventArgsSet(e);
57027
57410
  if (eventManager.touchSetTimeout) {
57028
57411
  clearTimeout(eventManager.touchSetTimeout);
57029
57412
  const isHasSelected = !!(null === (_a = stateManager.select.ranges) || void 0 === _a ? void 0 : _a.length);
@@ -57032,7 +57415,7 @@
57032
57415
  }
57033
57416
  }), table.scenegraph.stage.addEventListener("pointerdown", e => {
57034
57417
  var _a, _b, _c, _d;
57035
- const eventArgsSet = getCellEventArgsSet(e);
57418
+ const eventArgsSet = getCellEventArgsSetWithTable(e, table);
57036
57419
  (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) && (null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target) === (null === (_c = stateManager.residentHoverIcon) || void 0 === _c ? void 0 : _c.icon) || stateManager.hideMenu();
57037
57420
  let isCompleteEdit = !1;
57038
57421
  const target = e.target;
@@ -57064,11 +57447,11 @@
57064
57447
  }
57065
57448
  }), table.scenegraph.stage.addEventListener("pointermove", e => {
57066
57449
  var _a, _b, _c;
57067
- const eventArgsSet = getCellEventArgsSet(e);
57450
+ const eventArgsSet = getCellEventArgsSetWithTable(e, table);
57068
57451
  null !== (_c = null === (_b = null === (_a = e.target) || void 0 === _a ? void 0 : _a.isDescendantsOf) || void 0 === _b ? void 0 : _b.call(_a, table.scenegraph.tableGroup)) && void 0 !== _c && _c && (stateManager.isResizeCol() || eventManager.checkColumnResize(eventArgsSet) ? table.stateManager.select && eventManager.checkCellFillhandle(eventArgsSet) ? stateManager.updateCursor("crosshair") : stateManager.updateCursor("col-resize") : stateManager.isResizeRow() || eventManager.checkRowResize(eventArgsSet) ? table.stateManager.select && eventManager.checkCellFillhandle(eventArgsSet) ? stateManager.updateCursor("crosshair") : stateManager.updateCursor("row-resize") : stateManager.isMoveCol() || stateManager.updateCursor());
57069
57452
  }), table.scenegraph.tableGroup.addEventListener("checkbox_state_change", e => {
57070
57453
  var _a, _b;
57071
- const eventArgsSet = getCellEventArgsSet(e),
57454
+ const eventArgsSet = getEventArgsSet(e),
57072
57455
  {
57073
57456
  col: col,
57074
57457
  row: row
@@ -57103,7 +57486,7 @@
57103
57486
  table.fireListeners(TABLE_EVENT_TYPE.CHECKBOX_STATE_CHANGE, cellsEvent), table.scenegraph.updateNextFrame();
57104
57487
  }), table.scenegraph.tableGroup.addEventListener("radio_checked", e => {
57105
57488
  var _a, _b, _c;
57106
- const eventArgsSet = getCellEventArgsSet(e),
57489
+ const eventArgsSet = getEventArgsSet(e),
57107
57490
  {
57108
57491
  col: col,
57109
57492
  row: row,
@@ -57154,7 +57537,7 @@
57154
57537
  table.fireListeners(TABLE_EVENT_TYPE.RADIO_STATE_CHANGE, cellsEvent), table.scenegraph.updateNextFrame();
57155
57538
  }), table.scenegraph.tableGroup.addEventListener("switch_state_change", e => {
57156
57539
  var _a, _b;
57157
- const eventArgsSet = getCellEventArgsSet(e),
57540
+ const eventArgsSet = getEventArgsSet(e),
57158
57541
  {
57159
57542
  col: col,
57160
57543
  row: row,
@@ -57216,7 +57599,7 @@
57216
57599
  }
57217
57600
  function dblclickHandler(e, table) {
57218
57601
  var _a, _b, _c, _d, _e, _f;
57219
- const eventArgsSet = getCellEventArgsSet(e);
57602
+ const eventArgsSet = getCellEventArgsSetWithTable(e, table);
57220
57603
  let col = -1,
57221
57604
  row = -1;
57222
57605
  eventArgsSet.eventArgs && (col = eventArgsSet.eventArgs.col, row = eventArgsSet.eventArgs.row);
@@ -57246,17 +57629,29 @@
57246
57629
  }
57247
57630
 
57248
57631
  function bindScrollBarListener(eventManager) {
57632
+ var _a, _b, _c, _d, _e;
57249
57633
  const table = eventManager.table,
57250
57634
  stateManager = table.stateManager,
57251
- scenegraph = table.scenegraph;
57635
+ scenegraph = table.scenegraph,
57636
+ visible1 = null === (_a = table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.visible,
57637
+ horizontalVisible = null !== (_c = null === (_b = table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.horizontalVisible) && void 0 !== _c ? _c : visible1,
57638
+ verticalVisible = null !== (_e = null === (_d = table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.verticalVisible) && void 0 !== _e ? _e : visible1;
57252
57639
  scenegraph.component.vScrollBar.addEventListener("pointerover", e => {
57253
- stateManager.showVerticalScrollBar();
57640
+ "focus" !== verticalVisible && "scrolling" !== verticalVisible || stateManager.showVerticalScrollBar();
57254
57641
  }), scenegraph.component.hScrollBar.addEventListener("pointerover", e => {
57255
- stateManager.showHorizontalScrollBar();
57642
+ "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || stateManager.showHorizontalScrollBar(!1, "body");
57643
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointerover", e => {
57644
+ "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || stateManager.showHorizontalScrollBar(!1, "frozen");
57645
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointerover", e => {
57646
+ "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || stateManager.showHorizontalScrollBar(!1, "rightFrozen");
57256
57647
  }), scenegraph.component.vScrollBar.addEventListener("pointerout", e => {
57257
- stateManager.interactionState !== InteractionState.scrolling && stateManager.hideVerticalScrollBar();
57648
+ stateManager.interactionState !== InteractionState.scrolling && ("focus" === verticalVisible ? stateManager.hideVerticalScrollBar() : "scrolling" === verticalVisible && stateManager.showVerticalScrollBar(!0));
57258
57649
  }), scenegraph.component.hScrollBar.addEventListener("pointerout", e => {
57259
- stateManager.interactionState !== InteractionState.scrolling && stateManager.hideHorizontalScrollBar();
57650
+ stateManager.interactionState !== InteractionState.scrolling && ("focus" === horizontalVisible ? stateManager.hideHorizontalScrollBar() : "scrolling" === horizontalVisible && stateManager.showHorizontalScrollBar(!0, "body"));
57651
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointerout", e => {
57652
+ stateManager.interactionState !== InteractionState.scrolling && ("focus" === horizontalVisible ? stateManager.hideHorizontalScrollBar() : "scrolling" === horizontalVisible && stateManager.showHorizontalScrollBar(!0, "frozen"));
57653
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointerout", e => {
57654
+ stateManager.interactionState !== InteractionState.scrolling && ("focus" === horizontalVisible ? stateManager.hideHorizontalScrollBar() : "scrolling" === horizontalVisible && stateManager.showHorizontalScrollBar(!0, "rightFrozen"));
57260
57655
  }), scenegraph.component.vScrollBar.addEventListener("pointermove", e => {
57261
57656
  scenegraph.table.stateManager.updateCursor("default"), e.stopPropagation();
57262
57657
  }), scenegraph.component.vScrollBar.addEventListener("pointerdown", e => {
@@ -57279,10 +57674,22 @@
57279
57674
  scenegraph.table.eventManager.isDraging = !1;
57280
57675
  }), scenegraph.component.hScrollBar.addEventListener("pointermove", e => {
57281
57676
  scenegraph.table.stateManager.updateCursor(), e.stopPropagation();
57677
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointermove", e => {
57678
+ scenegraph.table.stateManager.updateCursor(), e.stopPropagation();
57679
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointermove", e => {
57680
+ scenegraph.table.stateManager.updateCursor(), e.stopPropagation();
57282
57681
  }), scenegraph.component.hScrollBar.addEventListener("pointerdown", e => {
57283
57682
  e.stopPropagation(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57284
57683
  event: e.nativeEvent
57285
57684
  });
57685
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointerdown", e => {
57686
+ e.stopPropagation(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57687
+ event: e.nativeEvent
57688
+ });
57689
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointerdown", e => {
57690
+ e.stopPropagation(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57691
+ event: e.nativeEvent
57692
+ });
57286
57693
  }), scenegraph.component.hScrollBar.addEventListener("scrollDown", e => {
57287
57694
  var _a;
57288
57695
  scenegraph.table.eventManager.LastBodyPointerXY = {
@@ -57291,15 +57698,45 @@
57291
57698
  }, scenegraph.table.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57292
57699
  event: e.nativeEvent
57293
57700
  });
57701
+ }), scenegraph.component.frozenHScrollBar.addEventListener("scrollDown", e => {
57702
+ var _a;
57703
+ scenegraph.table.eventManager.LastBodyPointerXY = {
57704
+ x: e.x,
57705
+ y: e.y
57706
+ }, scenegraph.table.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57707
+ event: e.nativeEvent
57708
+ });
57709
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("scrollDown", e => {
57710
+ var _a;
57711
+ scenegraph.table.eventManager.LastBodyPointerXY = {
57712
+ x: e.x,
57713
+ y: e.y
57714
+ }, scenegraph.table.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), scenegraph.table.hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE) && scenegraph.table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {
57715
+ event: e.nativeEvent
57716
+ });
57294
57717
  }), scenegraph.component.hScrollBar.addEventListener("pointerup", () => {
57295
57718
  stateManager.fastScrolling = !1, scenegraph.table.eventManager.isDraging = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57296
57719
  }), scenegraph.component.hScrollBar.addEventListener("pointerupoutside", () => {
57297
57720
  stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57298
57721
  }), scenegraph.component.hScrollBar.addEventListener("scrollUp", e => {
57299
57722
  scenegraph.table.eventManager.isDraging = !1;
57723
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointerup", () => {
57724
+ stateManager.fastScrolling = !1, scenegraph.table.eventManager.isDraging = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57725
+ }), scenegraph.component.frozenHScrollBar.addEventListener("pointerupoutside", () => {
57726
+ stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57727
+ }), scenegraph.component.frozenHScrollBar.addEventListener("scrollUp", e => {
57728
+ scenegraph.table.eventManager.isDraging = !1;
57729
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointerup", () => {
57730
+ stateManager.fastScrolling = !1, scenegraph.table.eventManager.isDraging = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57731
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("pointerupoutside", () => {
57732
+ stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
57733
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("scrollUp", e => {
57734
+ scenegraph.table.eventManager.isDraging = !1;
57300
57735
  });
57301
57736
  const throttleVerticalWheel = throttle(stateManager.updateVerticalScrollBar, 20),
57302
- throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20);
57737
+ throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20),
57738
+ throttleFrozenHorizontalWheel = throttle(stateManager.updateFrozenHorizontalScrollBar, 20),
57739
+ throttleRightFrozenHorizontalWheel = throttle(stateManager.updateRightFrozenHorizontalScrollBar, 20);
57303
57740
  scenegraph.component.vScrollBar.addEventListener("scrollDrag", e => {
57304
57741
  var _a;
57305
57742
  scenegraph.table.eventManager.isDown && (scenegraph.table.eventManager.isDraging = !0), stateManager.fastScrolling = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), table.scenegraph.deactivateChart(-1, -1, !0);
@@ -57310,6 +57747,16 @@
57310
57747
  scenegraph.table.eventManager.isDown && (scenegraph.table.eventManager.isDraging = !0), stateManager.fastScrolling = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), table.scenegraph.deactivateChart(-1, -1, !0);
57311
57748
  const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
57312
57749
  throttleHorizontalWheel(ratio);
57750
+ }), scenegraph.component.frozenHScrollBar.addEventListener("scrollDrag", e => {
57751
+ var _a;
57752
+ scenegraph.table.eventManager.isDown && (scenegraph.table.eventManager.isDraging = !0), stateManager.fastScrolling = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), table.scenegraph.deactivateChart(-1, -1, !0);
57753
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
57754
+ throttleFrozenHorizontalWheel(ratio);
57755
+ }), scenegraph.component.rightFrozenHScrollBar.addEventListener("scrollDrag", e => {
57756
+ var _a;
57757
+ scenegraph.table.eventManager.isDown && (scenegraph.table.eventManager.isDraging = !0), stateManager.fastScrolling = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling), scenegraph.table.stateManager.hideMenu(), null === (_a = scenegraph.table.editorManager) || void 0 === _a || _a.completeEdit(), table.scenegraph.deactivateChart(-1, -1, !0);
57758
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
57759
+ throttleRightFrozenHorizontalWheel(ratio);
57313
57760
  });
57314
57761
  }
57315
57762
 
@@ -57544,18 +57991,20 @@
57544
57991
  right = !1,
57545
57992
  left = !1;
57546
57993
  y > drawRange.bottom - bottomFrozenRowHeight && canScrollY && table.scrollTop + table.tableNoFrameHeight < table.getAllRowsHeight() ? (bottom = !0, table.eventManager.scrollYSpeed = -(y - drawRange.bottom + bottomFrozenRowHeight) / 50) : y < drawRange.top + topFrozenRowHeight && canScrollY && table.scrollTop > 0 && (top = !0, table.eventManager.scrollYSpeed = -(y - drawRange.top - topFrozenRowHeight) / 50), x > drawRange.right - rightFrozenColsWidth && canScrollX && table.scrollLeft + table.tableNoFrameWidth < table.getAllColsWidth() ? (right = !0, table.eventManager.scrollXSpeed = -(x - drawRange.right + rightFrozenColsWidth) / 50) : x < drawRange.left + leftFrozenColsWidth && canScrollX && table.scrollLeft > 0 && (left = !0, table.eventManager.scrollXSpeed = -(x - drawRange.left - leftFrozenColsWidth) / 50), table.eventManager.inertiaScroll.startInertia(table.eventManager.scrollXSpeed, table.eventManager.scrollYSpeed, 1), table.eventManager.inertiaScroll.setScrollHandle((dx, dy) => {
57547
- var _a;
57994
+ var _a, _b, _c;
57548
57995
  let selectX, selectY;
57549
57996
  handleWhell({
57550
57997
  deltaX: -dx,
57551
57998
  deltaY: -dy
57552
- }, table.stateManager, !1), bottom ? selectY = table.scrollTop + drawRange.height - bottomFrozenRowHeight - 20 : top && (selectY = table.scrollTop + topFrozenRowHeight + 20), right ? selectX = table.scrollLeft + drawRange.width - rightFrozenColsWidth - 20 : left && (selectX = table.scrollLeft + leftFrozenColsWidth + 20);
57999
+ }, table.stateManager, !1);
58000
+ const frozenOffset = null !== (_b = null === (_a = table.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(table)) && void 0 !== _b ? _b : 0;
58001
+ bottom ? selectY = table.scrollTop + drawRange.height - bottomFrozenRowHeight - 20 : top && (selectY = table.scrollTop + topFrozenRowHeight + 20), right ? selectX = table.scrollLeft + frozenOffset + drawRange.width - rightFrozenColsWidth - 20 : left && (selectX = table.scrollLeft + frozenOffset + leftFrozenColsWidth + 20);
57553
58002
  let considerFrozenY = !1,
57554
58003
  considerFrozenX = !1;
57555
- right || left || (x > table.tableNoFrameWidth - table.getRightFrozenColsWidth() && x < table.tableNoFrameWidth || x > 0 && x < table.getFrozenColsWidth() ? (selectX = x, considerFrozenX = !0) : selectX = table.scrollLeft + x), bottom || top || (y > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() && y < table.tableNoFrameHeight || y > 0 && y < table.getFrozenRowsHeight() ? (selectY = y, considerFrozenY = !0) : selectY = table.scrollTop + y), table.stateManager.updateInteractionState(InteractionState.grabing);
58004
+ right || left || (x > table.tableNoFrameWidth - table.getRightFrozenColsWidth() && x < table.tableNoFrameWidth || x > 0 && x < table.getFrozenColsWidth() ? (selectX = x, considerFrozenX = !0) : selectX = table.scrollLeft + frozenOffset + x), bottom || top || (y > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() && y < table.tableNoFrameHeight || y > 0 && y < table.getFrozenRowsHeight() ? (selectY = y, considerFrozenY = !0) : selectY = table.scrollTop + y), table.stateManager.updateInteractionState(InteractionState.grabing);
57556
58005
  const targetCol = table.getTargetColAtConsiderRightFrozen(selectX, considerFrozenX),
57557
58006
  targetRow = table.getTargetRowAtConsiderBottomFrozen(selectY, considerFrozenY);
57558
- !(null === (_a = table.options.select) || void 0 === _a ? void 0 : _a.disableDragSelect) && isValid$2(targetCol) && isValid$2(targetRow) && table.stateManager.updateSelectPos("row" === table.stateManager.select.selectInline ? table.colCount - 1 : targetCol.col, "col" === table.stateManager.select.selectInline ? table.rowCount - 1 : targetRow.row, !1, !1, !1, !1);
58007
+ !(null === (_c = table.options.select) || void 0 === _c ? void 0 : _c.disableDragSelect) && isValid$2(targetCol) && isValid$2(targetRow) && table.stateManager.updateSelectPos("row" === table.stateManager.select.selectInline ? table.colCount - 1 : targetCol.col, "col" === table.stateManager.select.selectInline ? table.rowCount - 1 : targetRow.row, !1, !1, !1, !1);
57559
58008
  });
57560
58009
  } else table.eventManager.inertiaScroll.isInertiaScrolling() ? table.eventManager.inertiaScroll.endInertia() : table.eventManager.scrollYSpeed = 0;
57561
58010
  }
@@ -60181,18 +60630,24 @@
60181
60630
  })(candRow, bottom);
60182
60631
  }
60183
60632
  function getTargetColAtConsiderRightFrozen(absoluteX, isConsider, _this) {
60633
+ var _a, _b;
60184
60634
  if (0 === absoluteX) return {
60185
60635
  left: 0,
60186
60636
  col: 0,
60187
60637
  right: 0,
60188
60638
  width: 0
60189
60639
  };
60190
- if (absoluteX -= _this.tableX, isConsider && absoluteX > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() && absoluteX < _this.tableNoFrameWidth && absoluteX <= _this.getAllColsWidth()) for (let i = 0; i < _this.rightFrozenColCount; i++) if (absoluteX > _this.tableNoFrameWidth - _this.getColsWidth(_this.colCount - i - 1, _this.colCount - 1)) return {
60191
- col: _this.colCount - i - 1,
60192
- left: void 0,
60193
- right: void 0,
60194
- width: void 0
60195
- };
60640
+ absoluteX -= _this.tableX;
60641
+ const rightFrozenScrollLeft = null !== (_b = null === (_a = _this.getRightFrozenColsScrollLeft) || void 0 === _a ? void 0 : _a.call(_this)) && void 0 !== _b ? _b : 0;
60642
+ if (isConsider && absoluteX > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() && absoluteX < _this.tableNoFrameWidth && absoluteX <= _this.getAllColsWidth()) {
60643
+ absoluteX -= rightFrozenScrollLeft;
60644
+ for (let i = 0; i < _this.rightFrozenColCount; i++) if (absoluteX > _this.tableNoFrameWidth - _this.getColsWidth(_this.colCount - i - 1, _this.colCount - 1)) return {
60645
+ col: _this.colCount - i - 1,
60646
+ left: void 0,
60647
+ right: void 0,
60648
+ width: void 0
60649
+ };
60650
+ }
60196
60651
  return getTargetColAt(absoluteX, _this);
60197
60652
  }
60198
60653
  function getTargetRowAtConsiderBottomFrozen(absoluteY, isConsider, _this) {
@@ -60230,16 +60685,20 @@
60230
60685
  return Math.min(Math.ceil(absoluteX / _this.internalProps.defaultColWidth), _this.colCount - 1);
60231
60686
  }
60232
60687
  function getCellAtRelativePosition(x, y, _this) {
60233
- x -= _this.tableX;
60688
+ var _a, _b, _c, _d;
60689
+ x -= _this.tableX, y -= _this.tableY;
60690
+ const frozenColsWidth = _this.getFrozenColsWidth(),
60691
+ frozenColsOffset = null !== (_b = null === (_a = _this.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(_this)) && void 0 !== _b ? _b : 0,
60692
+ frozenColsScrollLeft = null !== (_d = null === (_c = _this.getFrozenColsScrollLeft) || void 0 === _c ? void 0 : _c.call(_this)) && void 0 !== _d ? _d : 0;
60234
60693
  let topFrozen = !1;
60235
- (y -= _this.tableY) > 0 && y < _this.getFrozenRowsHeight() && (topFrozen = !0);
60694
+ y > 0 && y < _this.getFrozenRowsHeight() && (topFrozen = !0);
60236
60695
  let leftFrozen = !1;
60237
- x > 0 && x < _this.getFrozenColsWidth() && (leftFrozen = !0);
60696
+ x > 0 && x < frozenColsWidth && (leftFrozen = !0);
60238
60697
  let bottomFrozen = !1;
60239
60698
  y > _this.tableNoFrameHeight - _this.getBottomFrozenRowsHeight() && y < _this.tableNoFrameHeight && y <= _this.getAllRowsHeight() && (bottomFrozen = !0);
60240
60699
  let rightFrozen = !1;
60241
60700
  x > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() && x < _this.tableNoFrameWidth && x <= _this.getAllColsWidth() && (rightFrozen = !0);
60242
- const colInfo = getTargetColAtConsiderRightFrozen((leftFrozen || rightFrozen ? x : x + _this.scrollLeft) + _this.tableX, rightFrozen, _this),
60701
+ const colInfo = getTargetColAtConsiderRightFrozen((leftFrozen ? x + frozenColsScrollLeft : rightFrozen ? x : x + _this.scrollLeft + frozenColsOffset) + _this.tableX, rightFrozen, _this),
60243
60702
  rowInfo = getTargetRowAtConsiderBottomFrozen((topFrozen || bottomFrozen ? y : y + _this.scrollTop) + _this.tableY, bottomFrozen, _this);
60244
60703
  if (colInfo && rowInfo) {
60245
60704
  const {
@@ -60273,11 +60732,16 @@
60273
60732
  };
60274
60733
  }
60275
60734
  function getColAtRelativePosition(x, _this) {
60735
+ var _a, _b, _c, _d;
60736
+ x -= _this.tableX;
60737
+ const frozenColsWidth = _this.getFrozenColsWidth(),
60738
+ frozenColsOffset = null !== (_b = null === (_a = _this.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(_this)) && void 0 !== _b ? _b : 0,
60739
+ frozenColsScrollLeft = null !== (_d = null === (_c = _this.getFrozenColsScrollLeft) || void 0 === _c ? void 0 : _c.call(_this)) && void 0 !== _d ? _d : 0;
60276
60740
  let leftFrozen = !1;
60277
- (x -= _this.tableX) > 0 && x < _this.getFrozenColsWidth() && (leftFrozen = !0);
60741
+ x > 0 && x < frozenColsWidth && (leftFrozen = !0);
60278
60742
  let rightFrozen = !1;
60279
60743
  x > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() && x < _this.tableNoFrameWidth && x <= _this.getAllColsWidth() && (rightFrozen = !0);
60280
- const colInfo = getTargetColAtConsiderRightFrozen((leftFrozen || rightFrozen ? x : x + _this.scrollLeft) + _this.tableX, rightFrozen, _this);
60744
+ const colInfo = getTargetColAtConsiderRightFrozen((leftFrozen ? x + frozenColsScrollLeft : rightFrozen ? x : x + _this.scrollLeft + frozenColsOffset) + _this.tableX, rightFrozen, _this);
60281
60745
  if (colInfo) {
60282
60746
  const {
60283
60747
  col: col
@@ -60662,7 +61126,7 @@
60662
61126
  }
60663
61127
  constructor(container, options = {}) {
60664
61128
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
60665
- if (super(), this.showFrozenIcon = !0, this._scrollToRowCorrectTimer = null, this._tableBorderWidth_left = 0, this._tableBorderWidth_right = 0, this._tableBorderWidth_top = 0, this._tableBorderWidth_bottom = 0, this.version = "1.24.0", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), "node" === Env$1.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container, container = container.container ? container.container : null), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
61129
+ if (super(), this.showFrozenIcon = !0, this._scrollToRowCorrectTimer = null, this._tableBorderWidth_left = 0, this._tableBorderWidth_right = 0, this._tableBorderWidth_top = 0, this._tableBorderWidth_bottom = 0, this.version = "1.25.0", this.id = `VTable${Date.now()}`, this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200), "node" === Env$1.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container, container = container.container ? container.container : null), !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
60666
61130
  this.pluginManager = new PluginManager(this, options), this.fireListeners(TABLE_EVENT_TYPE.BEFORE_INIT, {
60667
61131
  options: options,
60668
61132
  container: container
@@ -60863,7 +61327,7 @@
60863
61327
  set frozenColCount(frozenColCount) {
60864
61328
  frozenColCount >= this.colCount && (frozenColCount = 0), this.internalProps.frozenColCount = frozenColCount, this.options.frozenColCount = frozenColCount;
60865
61329
  const maxFrozenWidth = this._getMaxFrozenWidth();
60866
- if (this.getColsWidth(0, frozenColCount - 1) > maxFrozenWidth) if (this.internalProps.unfreezeAllOnExceedsMaxWidth) this.internalProps.frozenColCount = 0;else {
61330
+ if (!this.options.scrollFrozenCols && this.getColsWidth(0, frozenColCount - 1) > maxFrozenWidth) if (this.internalProps.unfreezeAllOnExceedsMaxWidth) this.internalProps.frozenColCount = 0;else {
60867
61331
  const computedFrozenColCount = this._getComputedFrozenColCount(frozenColCount);
60868
61332
  this.internalProps.frozenColCount = computedFrozenColCount;
60869
61333
  }
@@ -60872,7 +61336,7 @@
60872
61336
  setFrozenColCount(frozenColCount) {
60873
61337
  frozenColCount >= this.colCount && (frozenColCount = 0), this.internalProps.frozenColCount = frozenColCount, this.options.frozenColCount = frozenColCount;
60874
61338
  const maxFrozenWidth = this._getMaxFrozenWidth();
60875
- if (this.getColsWidth(0, frozenColCount - 1) > maxFrozenWidth) if (this.internalProps.unfreezeAllOnExceedsMaxWidth) this.internalProps.frozenColCount = 0;else {
61339
+ if (!this.options.scrollFrozenCols && this.getColsWidth(0, frozenColCount - 1) > maxFrozenWidth) if (this.internalProps.unfreezeAllOnExceedsMaxWidth) this.internalProps.frozenColCount = 0;else {
60876
61340
  const computedFrozenColCount = this._getComputedFrozenColCount(frozenColCount);
60877
61341
  this.internalProps.frozenColCount = computedFrozenColCount;
60878
61342
  }
@@ -61026,6 +61490,11 @@
61026
61490
  const maxFrozenWidth = null !== (_a = this.options.maxFrozenWidth) && void 0 !== _a ? _a : "80%";
61027
61491
  return _toPxWidth(this, maxFrozenWidth);
61028
61492
  }
61493
+ _getMaxRightFrozenWidth() {
61494
+ var _a, _b;
61495
+ const maxRightFrozenWidth = null !== (_b = null !== (_a = this.options.maxRightFrozenWidth) && void 0 !== _a ? _a : this.options.maxFrozenWidth) && void 0 !== _b ? _b : "80%";
61496
+ return _toPxWidth(this, maxRightFrozenWidth);
61497
+ }
61029
61498
  _getComputedFrozenColCount(frozenColCount) {
61030
61499
  const maxFrozenWidth = this._getMaxFrozenWidth();
61031
61500
  let computedfrozenColCount = frozenColCount;
@@ -61344,21 +61813,26 @@
61344
61813
  let relativeX = !0,
61345
61814
  relativeY = !0;
61346
61815
  (null == isFrozenCell ? void 0 : isFrozenCell.col) && (null == isFrozenCell ? void 0 : isFrozenCell.row) ? (relativeX = !1, relativeY = !1) : (null == isFrozenCell ? void 0 : isFrozenCell.col) ? relativeX = !1 : (null == isFrozenCell ? void 0 : isFrozenCell.row) && (relativeY = !1);
61347
- const cellRect = this.getCellRect(col, row);
61348
- return this._toRelativeRect(cellRect, relativeX, relativeY);
61816
+ const cellRect = this.getCellRect(col, row),
61817
+ rect = this._toRelativeRect(cellRect, relativeX, relativeY);
61818
+ return (null == isFrozenCell ? void 0 : isFrozenCell.col) && !this.isRightFrozenColumn(col, row) && rect.offsetLeft(-this.getFrozenColsScrollLeft()), rect;
61349
61819
  }
61350
61820
  getCellRangeRelativeRect(range) {
61351
61821
  if (range.start) {
61352
61822
  const isFrozenCell = this.isFrozenCell(range.start.col, range.start.row);
61353
61823
  let relativeX = !0,
61354
61824
  relativeY = !0;
61355
- return (null == isFrozenCell ? void 0 : isFrozenCell.col) && (null == isFrozenCell ? void 0 : isFrozenCell.row) ? (relativeX = !1, relativeY = !1) : (null == isFrozenCell ? void 0 : isFrozenCell.col) ? relativeX = !1 : (null == isFrozenCell ? void 0 : isFrozenCell.row) && (relativeY = !1), this._toRelativeRect(this.getCellsRect(range.start.col, range.start.row, range.end.col, range.end.row), relativeX, relativeY);
61825
+ (null == isFrozenCell ? void 0 : isFrozenCell.col) && (null == isFrozenCell ? void 0 : isFrozenCell.row) ? (relativeX = !1, relativeY = !1) : (null == isFrozenCell ? void 0 : isFrozenCell.col) ? relativeX = !1 : (null == isFrozenCell ? void 0 : isFrozenCell.row) && (relativeY = !1);
61826
+ const rect = this._toRelativeRect(this.getCellsRect(range.start.col, range.start.row, range.end.col, range.end.row), relativeX, relativeY);
61827
+ return (null == isFrozenCell ? void 0 : isFrozenCell.col) && !this.isRightFrozenColumn(range.start.col, range.start.row) && rect.offsetLeft(-this.getFrozenColsScrollLeft()), rect;
61356
61828
  }
61357
61829
  const cellRange = this.getCellRange(range.col, range.row),
61358
61830
  isFrozenCell = this.isFrozenCell(range.col, range.row);
61359
61831
  let relativeX = !0,
61360
61832
  relativeY = !0;
61361
- return (null == isFrozenCell ? void 0 : isFrozenCell.col) && (null == isFrozenCell ? void 0 : isFrozenCell.row) ? (relativeX = !1, relativeY = !1) : (null == isFrozenCell ? void 0 : isFrozenCell.col) ? relativeX = !1 : (null == isFrozenCell ? void 0 : isFrozenCell.row) && (relativeY = !1), this._toRelativeRect(this.getCellsRect(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row), relativeX, relativeY);
61833
+ (null == isFrozenCell ? void 0 : isFrozenCell.col) && (null == isFrozenCell ? void 0 : isFrozenCell.row) ? (relativeX = !1, relativeY = !1) : (null == isFrozenCell ? void 0 : isFrozenCell.col) ? relativeX = !1 : (null == isFrozenCell ? void 0 : isFrozenCell.row) && (relativeY = !1);
61834
+ const rect = this._toRelativeRect(this.getCellsRect(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row), relativeX, relativeY);
61835
+ return (null == isFrozenCell ? void 0 : isFrozenCell.col) && !this.isRightFrozenColumn(range.col, range.row) && rect.offsetLeft(-this.getFrozenColsScrollLeft()), rect;
61362
61836
  }
61363
61837
  getVisibleCellRangeRelativeRect(range) {
61364
61838
  let cellRange;
@@ -61468,7 +61942,7 @@
61468
61942
  } = this,
61469
61943
  width = this.tableNoFrameWidth,
61470
61944
  height = this.tableNoFrameHeight;
61471
- return new Rect$1(scrollLeft, scrollTop, width, height);
61945
+ return new Rect$1(scrollLeft + this.getFrozenColsOffset(), scrollTop, width, height);
61472
61946
  }
61473
61947
  get visibleRowCount() {
61474
61948
  const {
@@ -61497,7 +61971,8 @@
61497
61971
  scrollLeft: scrollLeft
61498
61972
  } = this,
61499
61973
  frozenRowsHeight = this.getFrozenRowsHeight(),
61500
- frozenColsWidth = this.getFrozenColsWidth(),
61974
+ frozenColsContentWidth = this.getFrozenColsContentWidth(),
61975
+ frozenColsOffset = this.getFrozenColsOffset(),
61501
61976
  bottomFrozenRowsHeight = this.getBottomFrozenRowsHeight(),
61502
61977
  rightFrozenColsWidth = this.getRightFrozenColsWidth(),
61503
61978
  {
@@ -61505,9 +61980,9 @@
61505
61980
  } = this.getRowAt(scrollTop + frozenRowsHeight + 1),
61506
61981
  {
61507
61982
  col: colStart
61508
- } = this.getColAt(scrollLeft + frozenColsWidth + 1),
61983
+ } = this.getColAt(scrollLeft + frozenColsContentWidth + 1),
61509
61984
  rowEnd = this.getAllRowsHeight() > this.tableNoFrameHeight ? this.getRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight).row : this.rowCount - 1,
61510
- colEnd = this.getAllColsWidth() > this.tableNoFrameWidth ? this.getColAt(scrollLeft + this.tableNoFrameWidth - 1 - rightFrozenColsWidth).col : this.colCount - 1;
61985
+ colEnd = this.getAllColsWidth() > this.tableNoFrameWidth ? this.getColAt(scrollLeft + frozenColsOffset + this.tableNoFrameWidth - 1 - rightFrozenColsWidth).col : this.colCount - 1;
61511
61986
  return colEnd < 0 || rowEnd < 0 ? null : {
61512
61987
  rowStart: rowStart,
61513
61988
  colStart: colStart,
@@ -61534,12 +62009,13 @@
61534
62009
  const {
61535
62010
  scrollLeft: scrollLeft
61536
62011
  } = this,
61537
- frozenColsWidth = this.getFrozenColsWidth(),
62012
+ frozenColsContentWidth = this.getFrozenColsContentWidth(),
62013
+ frozenColsOffset = this.getFrozenColsOffset(),
61538
62014
  rightFrozenColsWidth = this.getRightFrozenColsWidth(),
61539
62015
  {
61540
62016
  col: colStart
61541
- } = this.getColAt(scrollLeft + frozenColsWidth + 1 + start_deltaX),
61542
- colEnd = this.getAllColsWidth() > this.tableNoFrameWidth ? this.getColAt(scrollLeft + this.tableNoFrameWidth - 1 - rightFrozenColsWidth + end_deltaX).col : this.colCount - 1;
62017
+ } = this.getColAt(scrollLeft + frozenColsContentWidth + 1 + start_deltaX),
62018
+ colEnd = this.getAllColsWidth() > this.tableNoFrameWidth ? this.getColAt(scrollLeft + frozenColsOffset + this.tableNoFrameWidth - 1 - rightFrozenColsWidth + end_deltaX).col : this.colCount - 1;
61543
62019
  return colEnd < 0 ? null : {
61544
62020
  colStart: colStart,
61545
62021
  colEnd: colEnd
@@ -61550,7 +62026,7 @@
61550
62026
  frozenColCount: frozenColCount
61551
62027
  } = this,
61552
62028
  visibleRect = this.getVisibleRect(),
61553
- visibleLeft = frozenColCount > 0 ? visibleRect.left + this.getColsWidth(0, frozenColCount - 1) : visibleRect.left,
62029
+ visibleLeft = frozenColCount > 0 ? visibleRect.left + this.getFrozenColsWidth() : visibleRect.left,
61554
62030
  initCol = this.getTargetColAt(visibleLeft);
61555
62031
  if (!initCol) return 0;
61556
62032
  const startCol = Math.max(initCol.left >= visibleLeft ? initCol.col : initCol.col + 1, frozenColCount);
@@ -61735,8 +62211,23 @@
61735
62211
  return this.getRowsHeight(0, this.frozenRowCount - 1);
61736
62212
  }
61737
62213
  getFrozenColsWidth() {
62214
+ const contentWidth = this.getFrozenColsContentWidth();
62215
+ if (!this.options.scrollFrozenCols) return contentWidth;
62216
+ const maxFrozenWidth = this._getMaxFrozenWidth();
62217
+ return Math.min(contentWidth, maxFrozenWidth);
62218
+ }
62219
+ getFrozenColsContentWidth() {
61738
62220
  return this.getColsWidth(0, this.frozenColCount - 1);
61739
62221
  }
62222
+ getFrozenColsOffset() {
62223
+ const contentWidth = this.getFrozenColsContentWidth(),
62224
+ viewportWidth = this.getFrozenColsWidth();
62225
+ return Math.max(0, contentWidth - viewportWidth);
62226
+ }
62227
+ getFrozenColsScrollLeft() {
62228
+ var _a;
62229
+ return null !== (_a = this.stateManager.scroll.frozenHorizontalBarPos) && void 0 !== _a ? _a : 0;
62230
+ }
61740
62231
  getBottomFrozenRowsHeight() {
61741
62232
  if (this.bottomFrozenRowCount > 0) {
61742
62233
  let height = 0;
@@ -61746,6 +62237,12 @@
61746
62237
  return 0;
61747
62238
  }
61748
62239
  getRightFrozenColsWidth() {
62240
+ const contentWidth = this.getRightFrozenColsContentWidth();
62241
+ if (!this.options.scrollRightFrozenCols) return contentWidth;
62242
+ const maxRightFrozenWidth = this._getMaxRightFrozenWidth();
62243
+ return Math.min(contentWidth, maxRightFrozenWidth);
62244
+ }
62245
+ getRightFrozenColsContentWidth() {
61749
62246
  if (this.rightFrozenColCount > 0) {
61750
62247
  let width = 0;
61751
62248
  for (let col = this.colCount - this.rightFrozenColCount; col <= this.colCount - 1; col++) width += this.getColWidth(col);
@@ -61753,6 +62250,15 @@
61753
62250
  }
61754
62251
  return 0;
61755
62252
  }
62253
+ getRightFrozenColsOffset() {
62254
+ const contentWidth = this.getRightFrozenColsContentWidth(),
62255
+ viewportWidth = this.getRightFrozenColsWidth();
62256
+ return Math.max(0, contentWidth - viewportWidth);
62257
+ }
62258
+ getRightFrozenColsScrollLeft() {
62259
+ var _a;
62260
+ return null !== (_a = this.stateManager.scroll.rightFrozenHorizontalBarPos) && void 0 !== _a ? _a : 0;
62261
+ }
61756
62262
  getDrawRange() {
61757
62263
  var _a, _b;
61758
62264
  const width = (null === (_a = this.containerFit) || void 0 === _a ? void 0 : _a.width) ? this.tableNoFrameWidth : Math.min(this.tableNoFrameWidth, this.getAllColsWidth()),
@@ -95188,7 +95694,7 @@
95188
95694
  importStyle();
95189
95695
  }
95190
95696
 
95191
- const version = "1.24.0";
95697
+ const version = "1.25.0";
95192
95698
  importStyles();
95193
95699
 
95194
95700
  exports.TYPES = index;