@kdcloudjs/table 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.0
3
+ * @kdcloudjs/table v1.1.2
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.0
3
+ * @kdcloudjs/table v1.1.2
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1955,8 +1955,8 @@ var TableDOMHelper = /*#__PURE__*/function () {
1955
1955
  }, {
1956
1956
  key: "getTableRows",
1957
1957
  value: function getTableRows() {
1958
- var htmlTable = this.getTableBodyHtmlTable();
1959
- return htmlTable.querySelectorAll("tbody > .".concat(_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].tableRow));
1958
+ var tbody = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].tableBody, " .").concat(_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].virtual, " table tbody"));
1959
+ return tbody.childNodes;
1960
1960
  }
1961
1961
  }, {
1962
1962
  key: "getTableBodyHtmlTable",
@@ -2489,7 +2489,6 @@ __webpack_require__.r(__webpack_exports__);
2489
2489
  /* harmony import */ var _colgroup__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./colgroup */ "./components/table/base/colgroup.tsx");
2490
2490
  /* harmony import */ var _helpers_SpanManager__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./helpers/SpanManager */ "./components/table/base/helpers/SpanManager.ts");
2491
2491
  /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./styles */ "./components/table/base/styles.ts");
2492
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils */ "./components/table/base/utils.tsx");
2493
2492
 
2494
2493
 
2495
2494
 
@@ -2514,12 +2513,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
2514
2513
 
2515
2514
 
2516
2515
 
2517
-
2518
2516
  function HtmlTable(_ref) {
2519
2517
  var tbodyHtmlTag = _ref.tbodyHtmlTag,
2520
2518
  getRowProps = _ref.getRowProps,
2521
2519
  primaryKey = _ref.primaryKey,
2522
- hasScrollY = _ref.hasScrollY,
2520
+ stickyRightOffset = _ref.stickyRightOffset,
2523
2521
  data = _ref.data,
2524
2522
  verInfo = _ref.verticalRenderInfo,
2525
2523
  hozInfo = _ref.horizontalRenderInfo,
@@ -2618,14 +2616,13 @@ function HtmlTable(_ref) {
2618
2616
  rowSpan = Math.max(rowSpan, 1);
2619
2617
  colSpan = Math.max(colSpan, 1);
2620
2618
  var positionStyle = {};
2621
- var scrollbarWidth = hasScrollY ? Object(_utils__WEBPACK_IMPORTED_MODULE_19__["getScrollbarSize"])().width : 0;
2622
2619
 
2623
2620
  if (colIndex < leftFlatCount) {
2624
2621
  positionStyle.position = 'sticky';
2625
2622
  positionStyle.left = hozInfo.stickyLeftMap.get(colIndex);
2626
2623
  } else if (colIndex >= fullFlatCount - rightFlatCount) {
2627
2624
  positionStyle.position = 'sticky';
2628
- positionStyle.right = hozInfo.stickyRightMap.get(colIndex) - scrollbarWidth;
2625
+ positionStyle.right = hozInfo.stickyRightMap.get(colIndex) - stickyRightOffset;
2629
2626
  }
2630
2627
 
2631
2628
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement('td', _objectSpread(_objectSpread(_objectSpread({
@@ -2954,14 +2951,14 @@ function renderTableBodyInIE(info, props, extra) {
2954
2951
  primaryKey: primaryKey,
2955
2952
  data: dataSource.slice(topIndex, bottomIndex)
2956
2953
  };
2957
- var scrollbarWidth = extra.hasScrollY ? Object(_utils__WEBPACK_IMPORTED_MODULE_22__["getScrollbarSize"])().width : 0;
2958
2954
  var fixedRightTableStyle = {
2959
- right: -scrollbarWidth
2955
+ right: -extra.stickyRightOffset
2960
2956
  };
2961
2957
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_17___default.a.createElement("div", {
2962
2958
  className: classnames__WEBPACK_IMPORTED_MODULE_19___default()(_styles__WEBPACK_IMPORTED_MODULE_21__["Classes"].tableBody, _styles__WEBPACK_IMPORTED_MODULE_21__["Classes"].horizontalScrollContainer)
2963
2959
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_17___default.a.createElement("div", {
2964
- className: _styles__WEBPACK_IMPORTED_MODULE_21__["Classes"].virtual
2960
+ className: _styles__WEBPACK_IMPORTED_MODULE_21__["Classes"].virtual,
2961
+ tabIndex: -1
2965
2962
  }, topBlank > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_17___default.a.createElement("div", {
2966
2963
  key: "top-blank",
2967
2964
  className: classnames__WEBPACK_IMPORTED_MODULE_19___default()(_styles__WEBPACK_IMPORTED_MODULE_21__["Classes"].virtualBlank, 'top'),
@@ -3021,7 +3018,7 @@ function renderTableBodyInIE(info, props, extra) {
3021
3018
  tbodyHtmlTag: "tbody"
3022
3019
  }, commonProps, {
3023
3020
  tbodyPosition: "right",
3024
- hasScrollY: extra.hasScrollY,
3021
+ stickyRightOffset: extra.stickyRightOffset,
3025
3022
  horizontalRenderInfo: _objectSpread(_objectSpread({}, info), {}, {
3026
3023
  flat: {
3027
3024
  center: right,
@@ -3314,8 +3311,7 @@ var defaultCSSVariables = {
3314
3311
  '--cell-border-horizontal': '1px solid #dfe3e8',
3315
3312
  '---cell-border-vertical': '1px solid #dfe3e8',
3316
3313
  '--header-cell-border': '1px solid #dfe3e8',
3317
- '--header-cell-border-horizontal': '1px solid #dfe3e8',
3318
- '--header-cell-border-vertical': '1px solid #dfe3e8'
3314
+ '--header-cell-border-horizontal': '1px solid #dfe3e8'
3319
3315
  };
3320
3316
  var variableConst = getCssVariableText(defaultCSSVariables);
3321
3317
  var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_4__["default"].div(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n user-select:none;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-left: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-right: 1px solid #0E5FD8 !important;\n }\n }\n \n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: left;\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-right: var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-right:none\n }\n\n th.", " {\n border-right: none;\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-left: var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region IE\u517C\u5BB9\n &.ie-polyfill-wrapper {\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n left:0;\n }\n .", "{\n right:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 0;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\n background: var(--bgcolor);\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n \n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u6EDA\u52A8\u6761\u5360\u4F4D\n .", " {\n visibility: hidden;\n flex-shrink: 0;\n }\n .", " .", " {\n border-top: var(--cell-border-horizontal);\n }\n //#endregion\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.leaf, Classes.first, Classes.first, Classes.first, Classes.first, Classes.first, Classes.last, Classes.lockLeft, Classes.lockRight, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.virtual, Classes.tableBody, Classes.tableFooter, Classes.tableHeaderMain, Classes.tableHeader, Classes.tableFooterMain, Classes.fixedLeft, Classes.fixedRight, Z.lock, Classes.fixedLeft, Classes.fixedRight, Classes.rowDetailContainer, Classes.rowDetailItem, Z.rowDetail, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder);
@@ -3531,6 +3527,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3531
3527
 
3532
3528
  _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_17___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_13___default()(_this), "resizeSubject", new rxjs__WEBPACK_IMPORTED_MODULE_28__["Subject"]());
3533
3529
 
3530
+ _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_17___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_13___default()(_this), "offsetY", 0);
3531
+
3534
3532
  _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_17___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_13___default()(_this), "getRowNodeListByEvent", function (e) {
3535
3533
  var nodeList = null;
3536
3534
  var rowIndex = e.currentTarget.dataset.rowindex;
@@ -3595,6 +3593,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3595
3593
  className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(tableBodyClassName, 'empty')
3596
3594
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3597
3595
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].virtual,
3596
+ tabIndex: -1,
3598
3597
  style: virtualStyle
3599
3598
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement(_empty__WEBPACK_IMPORTED_MODULE_31__["EmptyHtmlTable"], {
3600
3599
  descriptors: info.visible,
@@ -3609,6 +3608,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3609
3608
  bottomBlank = _info$verticalRenderR.bottomBlank,
3610
3609
  topBlank = _info$verticalRenderR.topBlank,
3611
3610
  bottomIndex = _info$verticalRenderR.bottomIndex;
3611
+ var stickyRightOffset = _this.hasScrollY ? _this.getScrollBarWidth() : 0;
3612
3612
  var renderBody = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_42__["default"])('body');
3613
3613
 
3614
3614
  if (typeof renderBody === 'function') {
@@ -3617,7 +3617,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3617
3617
  onMouseEnter: _this.handleRowMouseEnter,
3618
3618
  onMouseLeave: _this.handleRowMouseLeave
3619
3619
  },
3620
- hasScrollY: _this.hasScrollY
3620
+ stickyRightOffset: stickyRightOffset
3621
3621
  });
3622
3622
  }
3623
3623
 
@@ -3625,6 +3625,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3625
3625
  className: tableBodyClassName
3626
3626
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3627
3627
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].virtual,
3628
+ tabIndex: -1,
3628
3629
  style: virtualStyle
3629
3630
  }, topBlank > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3630
3631
  key: "top-blank",
@@ -3637,7 +3638,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3637
3638
  getRowProps: getRowProps,
3638
3639
  primaryKey: primaryKey,
3639
3640
  data: dataSource.slice(topIndex, bottomIndex),
3640
- hasScrollY: _this.hasScrollY,
3641
+ stickyRightOffset: stickyRightOffset,
3641
3642
  horizontalRenderInfo: info,
3642
3643
  verticalRenderInfo: {
3643
3644
  first: 0,
@@ -3697,7 +3698,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3697
3698
  var innerTableWidth = tableBodyHtmlTable.offsetWidth;
3698
3699
  var artTableWidth = artTable.offsetWidth;
3699
3700
  var stickyScrollHeightProp = this.props.stickyScrollHeight;
3700
- var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? Object(_utils__WEBPACK_IMPORTED_MODULE_39__["getScrollbarSize"])().height : stickyScrollHeightProp; // stickyScroll.style.marginTop = `-${stickyScrollHeight + 1}px`
3701
+ var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? this.getScrollBarWidth() : stickyScrollHeightProp; // stickyScroll.style.marginTop = `-${stickyScrollHeight + 1}px`
3701
3702
  // 设置滚动条高度
3702
3703
 
3703
3704
  stickyScroll.style.height = "".concat(stickyScrollHeight, "px");
@@ -3764,7 +3765,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3764
3765
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3765
3766
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].verticalScrollPlaceholder,
3766
3767
  style: this.hasScrollY ? {
3767
- width: Object(_utils__WEBPACK_IMPORTED_MODULE_39__["getScrollbarSize"])().width
3768
+ width: this.getScrollBarWidth()
3768
3769
  } : undefined
3769
3770
  }));
3770
3771
  }
@@ -3871,7 +3872,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3871
3872
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3872
3873
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].verticalScrollPlaceholder,
3873
3874
  style: this.hasScrollY ? {
3874
- width: Object(_utils__WEBPACK_IMPORTED_MODULE_39__["getScrollbarSize"])().width,
3875
+ width: this.getScrollBarWidth(),
3875
3876
  visibility: 'initial'
3876
3877
  } : undefined
3877
3878
  }));
@@ -3916,6 +3917,11 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3916
3917
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].stickyScrollItem
3917
3918
  }));
3918
3919
  }
3920
+ }, {
3921
+ key: "getScrollBarWidth",
3922
+ value: function getScrollBarWidth() {
3923
+ return this.props.scrollbarWidth || Object(_utils__WEBPACK_IMPORTED_MODULE_39__["getScrollbarSize"])().width;
3924
+ }
3919
3925
  }, {
3920
3926
  key: "render",
3921
3927
  value: function render() {
@@ -4090,6 +4096,47 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
4090
4096
  })).subscribe(function (sizeAndOffset) {
4091
4097
  _this2.setState(sizeAndOffset);
4092
4098
  }));
4099
+ this.rootSubscription.add(richVisibleRects$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["map"](function (_ref7) {
4100
+ var clipRect = _ref7.clipRect,
4101
+ offsetY = _ref7.offsetY;
4102
+ return {
4103
+ maxRenderHeight: clipRect.bottom - clipRect.top,
4104
+ maxRenderWidth: clipRect.right - clipRect.left,
4105
+ offsetY: offsetY
4106
+ };
4107
+ }), rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["distinctUntilChanged"](function (x, y) {
4108
+ return x.offsetY - y.offsetY === 0;
4109
+ }), // 计算得到当前行索引对应的数据块,blocks改成数组的形式,兼容快速拖动可视区域出现两个数据块的情况
4110
+ rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["map"](function (sizeAndOffset) {
4111
+ var _this2$props$scrollLo;
4112
+
4113
+ var offsetY = sizeAndOffset.offsetY,
4114
+ maxRenderHeight = sizeAndOffset.maxRenderHeight;
4115
+ var scrollDirection = offsetY - _this2.offsetY >= 0 ? 'down' : 'up';
4116
+ _this2.offsetY = offsetY;
4117
+ var rowCount = _this2.props.dataSource.length;
4118
+
4119
+ var vertical = _this2.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
4120
+
4121
+ var topIndex = vertical.topIndex,
4122
+ bottomIndex = vertical.bottomIndex;
4123
+ var blockSize = ((_this2$props$scrollLo = _this2.props.scrollLoad) === null || _this2$props$scrollLo === void 0 ? void 0 : _this2$props$scrollLo.blockSize) || 200;
4124
+ var topBlockStartIndex = Math.floor(Math.max(topIndex - 1, 0) / blockSize) * blockSize;
4125
+ var bottomBlockStartIndex = Math.floor((bottomIndex + 1) / blockSize) * blockSize;
4126
+ return scrollDirection === 'down' ? [topBlockStartIndex, bottomBlockStartIndex] : [bottomBlockStartIndex, topBlockStartIndex];
4127
+ }), rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["distinctUntilChanged"](function (x, y) {
4128
+ return x[0] === y[0] && x[1] === y[1];
4129
+ }), rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["switchMap"](function (startIndexs) {
4130
+ var event$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_28__["from"])(startIndexs);
4131
+ return event$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["map"](function (startIndex) {
4132
+ return startIndex;
4133
+ }));
4134
+ }), // 过滤掉重复掉值
4135
+ rxjs_operators__WEBPACK_IMPORTED_MODULE_29__["distinctUntilChanged"]()).subscribe(function (startIndex) {
4136
+ var _this2$props$scrollLo2;
4137
+
4138
+ (_this2$props$scrollLo2 = _this2.props.scrollLoad) === null || _this2$props$scrollLo2 === void 0 ? void 0 : _this2$props$scrollLo2.callback(startIndex);
4139
+ }));
4093
4140
  }
4094
4141
  }, {
4095
4142
  key: "componentWillUnmount",
@@ -6990,8 +7037,8 @@ function FilterPanel(_ref) {
6990
7037
 
6991
7038
  var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_10__["useState"])(false),
6992
7039
  _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),
6993
- opaque = _useState4[0],
6994
- setOpaque = _useState4[1];
7040
+ visible = _useState4[0],
7041
+ setVisible = _useState4[1];
6995
7042
 
6996
7043
  var ref = react__WEBPACK_IMPORTED_MODULE_10___default.a.useRef(null);
6997
7044
 
@@ -7001,16 +7048,16 @@ function FilterPanel(_ref) {
7001
7048
 
7002
7049
  Object(react__WEBPACK_IMPORTED_MODULE_10__["useEffect"])(function () {
7003
7050
  setPerfectPosition(Object(_utils___WEBPACK_IMPORTED_MODULE_12__["keepWithinBounds"])(document.body, ref.current, position.x, position.y, true));
7004
- setOpaque(true);
7051
+ setVisible(true);
7005
7052
  }, [position]);
7006
7053
  useWindowEvents(function (e) {
7007
7054
  return !isContainPanel(e) && onClose();
7008
7055
  }, ['mousedown']);
7009
7056
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(FilterPanelStyle, {
7010
7057
  style: _objectSpread(_objectSpread({}, style), {}, {
7011
- left: perfectPosition.x,
7012
- top: perfectPosition.y,
7013
- opacity: opaque ? 1 : 0
7058
+ left: visible ? perfectPosition.x : 0,
7059
+ top: visible ? perfectPosition.y : 0,
7060
+ opacity: visible ? 1 : 0
7014
7061
  }),
7015
7062
  ref: ref
7016
7063
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement("div", {
@@ -7713,6 +7760,8 @@ function rangeSelection(opts) {
7713
7760
  };
7714
7761
 
7715
7762
  var onKeyDown = function onKeyDown(e) {
7763
+ if (!Object(_utils__WEBPACK_IMPORTED_MODULE_11__["isElementInEventPath"])(tableBody, e.nativeEvent)) return;
7764
+
7716
7765
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
7717
7766
  var rowLen = pipeline.getDataSource().length;
7718
7767