@kdcloudjs/table 1.1.6 → 1.2.0-canary.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +835 -187
  3. package/dist/@kdcloudjs/table.js.map +1 -1
  4. package/dist/@kdcloudjs/table.min.css +1 -1
  5. package/dist/@kdcloudjs/table.min.js +8 -8
  6. package/dist/@kdcloudjs/table.min.js.map +1 -1
  7. package/es/locale/locale.d.ts +8 -4
  8. package/es/locale/zh-CN.d.ts +8 -4
  9. package/es/locale/zh-CN.js +10 -4
  10. package/es/table/base/helpers/TableDOMUtils.js +17 -14
  11. package/es/table/base/styles.d.ts +10 -0
  12. package/es/table/base/styles.js +12 -2
  13. package/es/table/base/table.js +38 -7
  14. package/es/table/common-views.js +3 -1
  15. package/es/table/interfaces.d.ts +5 -0
  16. package/es/table/pipeline/features/autoFill.js +7 -3
  17. package/es/table/pipeline/features/columnFilter.js +17 -5
  18. package/es/table/pipeline/features/columnResizeWidth.js +3 -1
  19. package/es/table/pipeline/features/filter/DefaultFilterContent.d.ts +1 -1
  20. package/es/table/pipeline/features/filter/DefaultFilterContent.js +11 -5
  21. package/es/table/pipeline/features/filter/Filter.d.ts +4 -1
  22. package/es/table/pipeline/features/filter/Filter.js +4 -2
  23. package/es/table/pipeline/features/index.d.ts +1 -0
  24. package/es/table/pipeline/features/index.js +2 -1
  25. package/es/table/pipeline/features/multiSelect.js +31 -12
  26. package/es/table/pipeline/features/rangeSelection.d.ts +22 -1
  27. package/es/table/pipeline/features/rangeSelection.js +274 -100
  28. package/es/table/pipeline/features/rowDrag.d.ts +28 -0
  29. package/es/table/pipeline/features/rowDrag.js +325 -0
  30. package/es/table/pipeline/features/sort.js +22 -3
  31. package/lib/locale/locale.d.ts +8 -4
  32. package/lib/locale/zh-CN.d.ts +8 -4
  33. package/lib/locale/zh-CN.js +10 -4
  34. package/lib/table/base/helpers/TableDOMUtils.js +17 -14
  35. package/lib/table/base/styles.d.ts +10 -0
  36. package/lib/table/base/styles.js +12 -2
  37. package/lib/table/base/table.js +38 -7
  38. package/lib/table/common-views.js +3 -1
  39. package/lib/table/interfaces.d.ts +5 -0
  40. package/lib/table/pipeline/features/autoFill.js +7 -3
  41. package/lib/table/pipeline/features/columnFilter.js +18 -6
  42. package/lib/table/pipeline/features/columnResizeWidth.js +3 -1
  43. package/lib/table/pipeline/features/filter/DefaultFilterContent.d.ts +1 -1
  44. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +11 -5
  45. package/lib/table/pipeline/features/filter/Filter.d.ts +4 -1
  46. package/lib/table/pipeline/features/filter/Filter.js +4 -2
  47. package/lib/table/pipeline/features/index.d.ts +1 -0
  48. package/lib/table/pipeline/features/index.js +9 -1
  49. package/lib/table/pipeline/features/multiSelect.js +33 -12
  50. package/lib/table/pipeline/features/rangeSelection.d.ts +22 -1
  51. package/lib/table/pipeline/features/rangeSelection.js +282 -104
  52. package/lib/table/pipeline/features/rowDrag.d.ts +28 -0
  53. package/lib/table/pipeline/features/rowDrag.js +347 -0
  54. package/lib/table/pipeline/features/sort.js +22 -3
  55. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.5
3
+ * @kdcloudjs/table v1.2.0-canary.9
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -813,10 +813,16 @@ var getCompLangMsg = function getCompLangMsg(compLangMsgParams, customGetLangMsg
813
813
  __webpack_require__.r(__webpack_exports__);
814
814
  var locale = {
815
815
  locale: 'zh-CN',
816
- 'global.selectholder': '请选择',
817
- 'global.placeholder': '请输入...',
818
- 'global.cancel': '取消',
819
- 'global.confirm': '确定'
816
+ // Text Filter
817
+ contain: '包含',
818
+ notContain: '不包含',
819
+ equal: '等于',
820
+ notEqual: '不等于',
821
+ isNull: '为空',
822
+ notIsNull: '不为空',
823
+ // filter button
824
+ resetFilter: '重置',
825
+ confirmFilter: '确定'
820
826
  };
821
827
  /* harmony default export */ __webpack_exports__["default"] = (locale);
822
828
 
@@ -1984,7 +1990,7 @@ var TableDOMHelper = /*#__PURE__*/function () {
1984
1990
  this.tableElement = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableBody, " table"));
1985
1991
  this.tableFooter = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableFooter));
1986
1992
  this.tableFooterMain = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableFooterMain));
1987
- var stickyScrollSelector = ".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].artTable, " + .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].stickyScroll);
1993
+ var stickyScrollSelector = ".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].artTable, " + .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].horizontalStickyScrollContainer, " .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].stickyScroll);
1988
1994
  this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
1989
1995
  this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].stickyScrollItem));
1990
1996
  }
@@ -2009,13 +2015,15 @@ var TableDOMHelper = /*#__PURE__*/function () {
2009
2015
  key: "getLeftLockShadow",
2010
2016
  value: function getLeftLockShadow() {
2011
2017
  var selector = ".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].lockShadowMask, " .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].leftLockShadow);
2012
- return this.artTable.querySelector(selector);
2018
+ var allLeftLockShadow = this.artTable.querySelectorAll(selector);
2019
+ return allLeftLockShadow[allLeftLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
2013
2020
  }
2014
2021
  }, {
2015
2022
  key: "getRightLockShadow",
2016
2023
  value: function getRightLockShadow() {
2017
2024
  var selector = ".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].lockShadowMask, " .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rightLockShadow);
2018
- return this.artTable.querySelector(selector);
2025
+ var allRightLockShadow = this.artTable.querySelectorAll(selector);
2026
+ return allRightLockShadow[allRightLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
2019
2027
  }
2020
2028
  }, {
2021
2029
  key: "getLoadingIndicator",
@@ -3273,6 +3281,9 @@ var Classes = {
3273
3281
  stickyScrollItem: "".concat(prefix, "sticky-scroll-item"),
3274
3282
  horizontalScrollContainer: "".concat(prefix, "horizontal-scroll-container"),
3275
3283
  verticalScrollPlaceholder: "".concat(prefix, "vertical-scroll-placeholder"),
3284
+ horizontalStickyScrollContainer: "".concat(prefix, "horizontal-sticky-scroll-container"),
3285
+ horizontalScrollLeftSpacer: "".concat(prefix, "horizontal-scroll-left-spacer"),
3286
+ horizontalScrollRightSpacer: "".concat(prefix, "horizontal-scroll-right-spacer"),
3276
3287
  lockShadowMask: "".concat(prefix, "lock-shadow-mask"),
3277
3288
  lockShadow: "".concat(prefix, "lock-shadow"),
3278
3289
  leftLockShadow: "".concat(prefix, "left-lock-shadow"),
@@ -3315,7 +3326,14 @@ var Classes = {
3315
3326
  collapsed: "".concat(prefix, "collapsed"),
3316
3327
  popup: "".concat(prefix, "popup"),
3317
3328
  popupHeader: "".concat(prefix, "popup-header"),
3318
- popupBody: "".concat(prefix, "popup-body")
3329
+ popupBody: "".concat(prefix, "popup-body"),
3330
+ rowDragging: "".concat(prefix, "row-dragging"),
3331
+ rowDragStart: "".concat(prefix, "row-drag-start"),
3332
+ rowDragEnd: "".concat(prefix, "row-drag-end"),
3333
+ rowDragEndToTop: "".concat(prefix, "row-drag-end-to-top"),
3334
+ rowDragEndToBottom: "".concat(prefix, "row-drag-end-to-bottom"),
3335
+ rowDragElement: "".concat(prefix, "row-drag-element"),
3336
+ rowDragCell: "".concat(prefix, "row-drag-cell")
3319
3337
  };
3320
3338
  var MenuClasses = {
3321
3339
  menu: "".concat(prefix, "table-menu"),
@@ -3367,7 +3385,7 @@ var defaultCSSVariables = {
3367
3385
  var variableConst = getCssVariableText(defaultCSSVariables);
3368
3386
  var notBorderedStyleMixin = Object(styled_components__WEBPACK_IMPORTED_MODULE_4__["css"])(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
3369
3387
  var borderedStyleMixin = Object(styled_components__WEBPACK_IMPORTED_MODULE_4__["css"])(_templateObject3 || (_templateObject3 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n //th\u9690\u85CF\u5217\u5BBD\u62D6\u62FD\u7684\u80CC\u666F\u8272\uFF0C\u4F7F\u7528th\u7684\u53F3\u8FB9\u6846\u4EE3\u66FF\n .", "::after{\n background-color: inherit;\n }\n"])), Classes.tableHeaderCellResize);
3370
- var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_4__["default"].div(_templateObject4 || (_templateObject4 = _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 // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\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 }\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 user-select:none;\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 // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-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: var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-right: var(--header-cell-border-vertical);\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: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\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 padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\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 .", " {\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\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n right: 0;\n width: 5px;\n &::after{\n left: 4px;\n }\n }\n //#endregion\n\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.rangeSelection, 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.tableExtendIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder, Classes.tableHeaderCellResize, Classes.tableHeaderRow, Classes.last, Classes.tableHeaderCellResize);
3388
+ var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_4__["default"].div(_templateObject4 || (_templateObject4 = _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 // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\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 }\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 user-select:none;\n }\n\n .", " {\n user-select:none;\n .", " .", " >td{\n cursor:move;\n }\n\n .", " .", " >td{\n cursor:no-drop;\n }\n \n }\n\n .", "{\n opacity: 0.5;\n }\n\n\n .", "::after{\n content: \"\";\n position: absolute;\n display: block;\n left: 0px;\n width: 100%;\n height: 1px;\n top:0px;\n z-index:20;\n background-color:var(--primary-color);\n }\n\n .", "::after{\n content: \"\";\n position: absolute;\n display: block;\n left: 0px;\n width: 100%;\n height: 1px;\n bottom:0px;\n z-index:20;\n background-color:var(--primary-color);\n }\n\n .", " {\n cursor:pointer;\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 // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-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: var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-right: var(--header-cell-border-vertical);\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 display:flex;\n background: var(--bgcolor);\n }\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 1;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\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: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\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 padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\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 .", " {\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\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n right: 0;\n width: 5px;\n &::after{\n left: 4px;\n }\n }\n //#endregion\n\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.rangeSelection, Classes.rowDragging, Classes.tableBody, Classes.tableRow, Classes.tableFooter, Classes.tableRow, Classes.rowDragStart, Classes.rowDragEndToTop, Classes.rowDragEndToBottom, Classes.rowDragCell, 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.horizontalStickyScrollContainer, Classes.horizontalScrollLeftSpacer, Classes.horizontalScrollRightSpacer, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.tableExtendIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder, Classes.tableHeaderCellResize, Classes.tableHeaderRow, Classes.last, Classes.tableHeaderCellResize);
3371
3389
  var ButtonCSS = Object(styled_components__WEBPACK_IMPORTED_MODULE_4__["css"])(_templateObject5 || (_templateObject5 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n ", "\n //#region \u6309\u94AE\n .", "{\n color: var(--color);\n background:#ffffff;\n border:1px solid var(--strong-border-color);\n border-radius: 2px;\n cursor: pointer;\n &:hover{\n color: var(--primary-color);\n border:1px solid var(--primary-color);\n }\n }\n .", " {\n color:#ffffff;\n background-color: var(--primary-color);\n border:none;\n &:hover{\n color:#ffffff;\n background-color: var(--primary-color-level2);\n border:none;\n }\n }\n//#endregion\n"])), variableConst, Classes.button, Classes.buttonPrimary);
3372
3390
 
3373
3391
  function getCssVariableText(obj) {
@@ -3747,10 +3765,14 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3747
3765
  var _this$props$setTableW, _this$props3;
3748
3766
 
3749
3767
  (_this$props$setTableW = (_this$props3 = this.props).setTableWidth) === null || _this$props$setTableW === void 0 ? void 0 : _this$props$setTableW.call(_this$props3, this.domHelper.tableBody.clientWidth);
3750
- } // 设置子节点宽度
3768
+ }
3751
3769
 
3770
+ var _this$lastInfo = this.lastInfo,
3771
+ leftLockTotalWidth = _this$lastInfo.leftLockTotalWidth,
3772
+ rightLockTotalWidth = _this$lastInfo.rightLockTotalWidth;
3773
+ var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth; // 设置子节点宽度
3752
3774
 
3753
- stickyScrollItem.style.width = "".concat(innerTableWidth, "px");
3775
+ stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth, "px");
3754
3776
  }
3755
3777
  }, {
3756
3778
  key: "renderTableHeader",
@@ -3918,13 +3940,25 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3918
3940
  stickyBottom = _this$props6.stickyBottom;
3919
3941
  var hasScroll = this.state.hasScroll;
3920
3942
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3921
- className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(_styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].stickyScroll, _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].horizontalScrollContainer),
3943
+ className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(_styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].horizontalScrollContainer, _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].horizontalStickyScrollContainer)
3944
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3945
+ className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(_styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].horizontalScrollLeftSpacer),
3946
+ style: {
3947
+ width: info.leftLockTotalWidth
3948
+ }
3949
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3950
+ className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(_styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].stickyScroll),
3922
3951
  style: {
3923
3952
  display: hasStickyScroll && hasScroll ? 'block' : 'none',
3924
3953
  bottom: stickyBottom
3925
3954
  }
3926
3955
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3927
3956
  className: _styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].stickyScrollItem
3957
+ })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_27___default.a.createElement("div", {
3958
+ className: classnames__WEBPACK_IMPORTED_MODULE_26___default()(_styles__WEBPACK_IMPORTED_MODULE_38__["Classes"].horizontalScrollRightSpacer),
3959
+ style: {
3960
+ width: info.rightLockTotalWidth
3961
+ }
3928
3962
  }));
3929
3963
  }
3930
3964
  }, {
@@ -4007,7 +4041,22 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
4007
4041
  }, {
4008
4042
  key: "componentDidUpdate",
4009
4043
  value: function componentDidUpdate(prevProps, prevState) {
4044
+ var _this$props13;
4045
+
4010
4046
  // console.log('did update start')
4047
+ var _this$props12 = this.props,
4048
+ cssVariables = _this$props12.cssVariables,
4049
+ enableCSSVariables = _this$props12.enableCSSVariables,
4050
+ bordered = _this$props12.bordered;
4051
+
4052
+ if (!Object(_utils__WEBPACK_IMPORTED_MODULE_39__["shallowEqual"])(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_this$props13 = this.props) === null || _this$props13 === void 0 ? void 0 : _this$props13.cssVariables)) {
4053
+ Object(_utils__WEBPACK_IMPORTED_MODULE_39__["cssPolifill"])({
4054
+ variables: cssVariables || {},
4055
+ enableCSSVariables: enableCSSVariables,
4056
+ bordered: bordered
4057
+ });
4058
+ }
4059
+
4011
4060
  this.updateDOMHelper();
4012
4061
  this.props$.next(this.props);
4013
4062
  this.didMountOrUpdate(prevProps, prevState); // console.log('did update end')
@@ -4237,9 +4286,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
4237
4286
  key: "adjustNeedRenderLock",
4238
4287
  value: function adjustNeedRenderLock() {
4239
4288
  var needRenderLock = this.state.needRenderLock;
4240
- var _this$lastInfo = this.lastInfo,
4241
- flat = _this$lastInfo.flat,
4242
- hasLockColumn = _this$lastInfo.hasLockColumn;
4289
+ var _this$lastInfo2 = this.lastInfo,
4290
+ flat = _this$lastInfo2.flat,
4291
+ hasLockColumn = _this$lastInfo2.hasLockColumn;
4243
4292
 
4244
4293
  if (hasLockColumn) {
4245
4294
  var sumOfColWidth = Object(_utils__WEBPACK_IMPORTED_MODULE_39__["sum"])(flat.full.map(function (col) {
@@ -4640,7 +4689,9 @@ var _templateObject, _templateObject2, _templateObject3;
4640
4689
 
4641
4690
 
4642
4691
  var InlineFlexCell = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].div(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_1___default()(["\n display: inline-flex;\n align-items: center;\n"])));
4643
- var ExpansionCell = Object(styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])(InlineFlexCell)(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_1___default()(["\n &.", " {\n cursor: default;\n }\n\n .expansion-icon {\n fill: #999;\n flex: 0 0 16px;\n transition: transform 200ms;\n\n &.", " {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])), _base_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].leaf, _base_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].expanded);
4692
+ var ExpansionCell = Object(styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])(function (props) {
4693
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(InlineFlexCell, props);
4694
+ })(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_1___default()(["\n &.", " {\n cursor: default;\n }\n\n .expansion-icon {\n fill: #999;\n flex: 0 0 16px;\n transition: transform 200ms;\n\n &.", " {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])), _base_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].leaf, _base_styles__WEBPACK_IMPORTED_MODULE_4__["Classes"].expanded);
4644
4695
 
4645
4696
  function CaretDownIcon(props) {
4646
4697
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("svg", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({
@@ -5010,7 +5061,8 @@ var autoFillTableWidth = function autoFillTableWidth() {
5010
5061
  // 保存剩余的flex总和和剩余宽度总和宽度
5011
5062
  var residualFlexCount = flexCount;
5012
5063
  var residualFlexWidth = remainingWidth;
5013
- var columnSize = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_17__["COLUMN_SIZE_KEY"]) || {};
5064
+ var columnSize = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_17__["COLUMN_SIZE_KEY"]);
5065
+ var enableColumnResizeWidthFeature = !!columnSize;
5014
5066
  pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_15__["makeRecursiveMapper"])(function (col, recursiveFlatMapInfo) {
5015
5067
  var isLeaf = recursiveFlatMapInfo.isLeaf;
5016
5068
 
@@ -5029,12 +5081,15 @@ var autoFillTableWidth = function autoFillTableWidth() {
5029
5081
  col.width = clamp(minWidth, preColWidth + (residualFlexCount === flex ? residualFlexWidth : usedRemainingWidth), maxWidth);
5030
5082
  residualFlexCount -= flex;
5031
5083
  residualFlexWidth -= col.width - preColWidth;
5032
- columnSize[code] = col.width;
5084
+
5085
+ if (enableColumnResizeWidthFeature) {
5086
+ columnSize[code] = col.width;
5087
+ }
5033
5088
  }
5034
5089
 
5035
5090
  return col;
5036
5091
  }));
5037
- pipeline.setFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_17__["COLUMN_SIZE_KEY"], columnSize);
5092
+ enableColumnResizeWidthFeature && pipeline.setFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_17__["COLUMN_SIZE_KEY"], columnSize);
5038
5093
  }
5039
5094
  } else {
5040
5095
  // 未设置了flex宽度,创建占位列
@@ -5970,6 +6025,7 @@ function filter() {
5970
6025
  var inputFiltersMap = new Map(inputFilters.map(function (filterItem) {
5971
6026
  return [filterItem.code, _objectSpread({}, filterItem)];
5972
6027
  }));
6028
+ var localeText = pipeline.ctx.localeText;
5973
6029
 
5974
6030
  function processColumns(columns) {
5975
6031
  return columns.map(dfs);
@@ -5983,7 +6039,7 @@ function filter() {
5983
6039
  var filterActive = filterable && (inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : (_inputFiltersMap$get = inputFiltersMap.get(col.code)) === null || _inputFiltersMap$get === void 0 ? void 0 : (_inputFiltersMap$get$ = _inputFiltersMap$get.filter) === null || _inputFiltersMap$get$ === void 0 ? void 0 : _inputFiltersMap$get$.length) > 0;
5984
6040
 
5985
6041
  if (filterable) {
5986
- var _col$features2, _col$features$filterI, _col$features3, _result$title, _cx;
6042
+ var _col$features2, _col$features$filterI, _col$features3, _cx;
5987
6043
 
5988
6044
  var handleFilterChanged = function handleFilterChanged(filterItem) {
5989
6045
  var nextFiltersMap = new Map(inputFiltersMap);
@@ -6017,7 +6073,8 @@ function filter() {
6017
6073
 
6018
6074
  var filterPanel = (_col$features2 = col.features) === null || _col$features2 === void 0 ? void 0 : _col$features2.filterPanel;
6019
6075
  var colFilterIcon = (_col$features$filterI = (_col$features3 = col.features) === null || _col$features3 === void 0 ? void 0 : _col$features3.filterIcon) !== null && _col$features$filterI !== void 0 ? _col$features$filterI : filterIcon;
6020
- result.title = [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_4___default()([].concat((_result$title = result.title) !== null && _result$title !== void 0 ? _result$title : [_internals__WEBPACK_IMPORTED_MODULE_19__["internals"].safeRenderHeader(_objectSpread({}, col))])), [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_17___default.a.createElement(_filter__WEBPACK_IMPORTED_MODULE_21__["Filter"], {
6076
+
6077
+ var _Filter = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_17___default.a.createElement(_filter__WEBPACK_IMPORTED_MODULE_21__["Filter"], {
6021
6078
  key: "filter",
6022
6079
  FilterPanelContent: filterPanel,
6023
6080
  filterIcon: colFilterIcon,
@@ -6029,12 +6086,22 @@ function filter() {
6029
6086
  stopClickEventPropagation: stopClickEventPropagation,
6030
6087
  stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
6031
6088
  hideFilterPopupHeader: hideFilterPopupHeader,
6032
- getPopupParent: getPopupParent
6033
- })]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
6089
+ getPopupParent: getPopupParent,
6090
+ localeText: localeText
6091
+ });
6092
+
6093
+ if (col.renderHeader) {
6094
+ result.title = col.renderHeader(result.title, _Filter);
6095
+ } else {
6096
+ var _result$title;
6097
+
6098
+ result.title = [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_4___default()([].concat((_result$title = result.title) !== null && _result$title !== void 0 ? _result$title : [_internals__WEBPACK_IMPORTED_MODULE_19__["internals"].safeRenderHeader(_objectSpread({}, col))])), [_Filter]);
6099
+ } // result.headerCellProps = mergeCellProps(col.headerCellProps, {
6034
6100
  // style: {
6035
6101
  // paddingRight: '18px'
6036
6102
  // }
6037
6103
  // })
6104
+
6038
6105
  }
6039
6106
 
6040
6107
  if (!Object(_utils__WEBPACK_IMPORTED_MODULE_20__["isLeafNode"])(col)) {
@@ -6419,7 +6486,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
6419
6486
 
6420
6487
 
6421
6488
  var TableHeaderCellResize = styled_components__WEBPACK_IMPORTED_MODULE_15__["default"].div(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()(["\n position: absolute;\n top: 0;\n right: -5px;\n height: 100%;\n width: 10px;\n cursor: ew-resize;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index:1;\n\n &:after {\n content: \"\";\n position: absolute;\n display: block;\n left: calc(50% - 1px);\n width: 1px;\n height: calc(100% - 14px);\n top: 7px;\n }\n"])));
6422
- var TableHeaderGroupCellResize = Object(styled_components__WEBPACK_IMPORTED_MODULE_15__["default"])(TableHeaderCellResize)(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
6489
+ var TableHeaderGroupCellResize = Object(styled_components__WEBPACK_IMPORTED_MODULE_15__["default"])(function (props) {
6490
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement(TableHeaderCellResize, props);
6491
+ })(_templateObject2 || (_templateObject2 = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___default()(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
6423
6492
 
6424
6493
  function clamp(min, x, max) {
6425
6494
  return Math.max(min, Math.min(max, x));
@@ -7088,11 +7157,13 @@ var _templateObject;
7088
7157
  var DefaultFilterContentStyle = styled_components__WEBPACK_IMPORTED_MODULE_7__["default"].div(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_2___default()(["\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n border-radius: 2px;\n width: 100%;\n\n ", "\n .filter-option-list {\n display: flex;\n flex-direction: column;\n margin-top: 8px;\n ul {\n margin: 0;\n padding: 0;\n li {\n display: flex;\n position: relative;\n flex-shrink: 0;\n height: 32px;\n align-items: center;\n border-radius: 2px;\n font-size: 12px;\n color: var(--color);\n padding: 0 12px;\n overflow: hidden;\n cursor: pointer;\n &:hover{\n background-color: var(--primary-color-level1);\n }\n }\n li.active{\n background-color: var(--primary-color-level1);\n }\n }\n }\n\n .filter-search {\n display: flex;\n padding: 6px 12px;\n\n .filter-search-inner {\n width: 100%;\n font-size: 12px;\n color: #333333;\n height: 28px;\n line-height: 28px;\n padding: 0 8px;\n outline: none;\n background-color: #FAFAFA;\n border-radius: 2px;\n border: 1px solid var(--strong-border-color);\n &:hover{\n border-color: var(--primary-color)\n } \n &:focus{\n border-color: var(--primary-color)\n } \n }\n }\n\n .filter-footer {\n display: flex;\n flex-direction: row;\n padding: 8px 12px;\n justify-content: space-between;\n\n .filter-btn {\n text-align: center;\n font-size: 12px;\n width: 60px;\n height: 24px;\n line-height: 24px;\n }\n \n }\n"])), _base_styles__WEBPACK_IMPORTED_MODULE_10__["ButtonCSS"]);
7089
7158
 
7090
7159
  function DefaultFilterContent(_ref) {
7091
- var _cx2;
7160
+ var _localeText$resetFilt, _cx2, _localeText$confirmFi;
7092
7161
 
7093
7162
  var setFilterModel = _ref.setFilterModel,
7094
7163
  filterModel = _ref.filterModel,
7095
- hidePanel = _ref.hidePanel;
7164
+ hidePanel = _ref.hidePanel,
7165
+ _ref$localeText = _ref.localeText,
7166
+ localeText = _ref$localeText === void 0 ? {} : _ref$localeText;
7096
7167
 
7097
7168
  var _React$useState = react__WEBPACK_IMPORTED_MODULE_6___default.a.useState((filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterCondition) || 'contain'),
7098
7169
  _React$useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_React$useState, 2),
@@ -7145,16 +7216,18 @@ function DefaultFilterContent(_ref) {
7145
7216
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(DefaultFilterContentStyle, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("div", {
7146
7217
  className: "filter-option-list"
7147
7218
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("ul", null, _util__WEBPACK_IMPORTED_MODULE_9__["DEFAULT_FILTER_OPTIONS"].map(function (option, index) {
7219
+ var _localeText$option$ke;
7220
+
7148
7221
  return (
7149
7222
  /*#__PURE__*/
7150
7223
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
7151
7224
  react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("li", {
7152
- key: index,
7225
+ key: option.key,
7153
7226
  className: option.key === selectedValue ? 'active' : '',
7154
7227
  onClick: function onClick() {
7155
7228
  return handleClick(option);
7156
7229
  }
7157
- }, option.title)
7230
+ }, (_localeText$option$ke = localeText[option.key]) !== null && _localeText$option$ke !== void 0 ? _localeText$option$ke : option.title)
7158
7231
  );
7159
7232
  }))), selectedValue !== 'notIsNull' && selectedValue !== 'isNull' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("div", {
7160
7233
  className: "filter-search"
@@ -7173,12 +7246,12 @@ function DefaultFilterContent(_ref) {
7173
7246
  'filter-btn': true
7174
7247
  }, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].button, true)),
7175
7248
  onClick: reset
7176
- }, "\u91CD\u7F6E"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("button", {
7249
+ }, (_localeText$resetFilt = localeText.resetFilter) !== null && _localeText$resetFilt !== void 0 ? _localeText$resetFilt : '重置'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("button", {
7177
7250
  className: classnames__WEBPACK_IMPORTED_MODULE_8___default()((_cx2 = {
7178
7251
  'filter-btn': true
7179
7252
  }, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx2, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].button, true), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx2, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].buttonPrimary, true), _cx2)),
7180
7253
  onClick: confirm
7181
- }, "\u786E\u5B9A")));
7254
+ }, (_localeText$confirmFi = localeText.confirmFilter) !== null && _localeText$confirmFi !== void 0 ? _localeText$confirmFi : '确定')));
7182
7255
  }
7183
7256
 
7184
7257
  /* harmony default export */ __webpack_exports__["default"] = (DefaultFilterContent);
@@ -7328,7 +7401,8 @@ function Filter(_ref2) {
7328
7401
  stopClickEventPropagation = _ref2.stopClickEventPropagation,
7329
7402
  stopESCKeyDownEventPropagation = _ref2.stopESCKeyDownEventPropagation,
7330
7403
  hideFilterPopupHeader = _ref2.hideFilterPopupHeader,
7331
- getPopupParent = _ref2.getPopupParent;
7404
+ getPopupParent = _ref2.getPopupParent,
7405
+ localeText = _ref2.localeText;
7332
7406
 
7333
7407
  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_3___default.a.useState(false),
7334
7408
  _React$useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_React$useState3, 2),
@@ -7355,7 +7429,8 @@ function Filter(_ref2) {
7355
7429
  setFilterModel: setFilterModel,
7356
7430
  filterModel: filterModel,
7357
7431
  isFilterActive: isFilterActive,
7358
- hidePanel: hidePanel
7432
+ hidePanel: hidePanel,
7433
+ localeText: localeText
7359
7434
  });
7360
7435
  }
7361
7436
  };
@@ -7765,7 +7840,7 @@ function footerDataSource() {
7765
7840
  /*!*****************************************************!*\
7766
7841
  !*** ./components/table/pipeline/features/index.ts ***!
7767
7842
  \*****************************************************/
7768
- /*! exports provided: autoRowSpan, buildTree, columnHover, ColumnHoverFeatureOptions, columnRangeHover, ColumnRangeHoverFeatureOptions, multiSelect, MultiSelectFeatureOptions, rowDetail, RowDetailFeatureOptions, rowGrouping, RowGroupingFeatureOptions, singleSelect, SingleSelectFeatureOptions, sort, SortFeatureOptions, tips, treeMode, TreeModeFeatureOptions, treeMetaSymbol, treeSelect, TreeSelectFeatureOptions, columnDrag, ColumnDragOptions, columnResize, ColumnResizeOptions, contextMenu, ContextMenuFeatureOptions, filter, FilterFeatureOptions, rangeSelection, RangeSelectionFeatureOptions, mergeCellHover, footerDataSource, FooterDataSourceFeatureOptions, footerRowMetaSymbol, colGroupExtendable, colGroupExtendOption */
7843
+ /*! exports provided: autoRowSpan, buildTree, columnHover, ColumnHoverFeatureOptions, columnRangeHover, ColumnRangeHoverFeatureOptions, multiSelect, MultiSelectFeatureOptions, rowDetail, RowDetailFeatureOptions, rowGrouping, RowGroupingFeatureOptions, singleSelect, SingleSelectFeatureOptions, sort, SortFeatureOptions, tips, treeMode, TreeModeFeatureOptions, treeMetaSymbol, treeSelect, TreeSelectFeatureOptions, columnDrag, ColumnDragOptions, columnResize, ColumnResizeOptions, contextMenu, ContextMenuFeatureOptions, filter, FilterFeatureOptions, rangeSelection, RangeSelectionFeatureOptions, mergeCellHover, footerDataSource, FooterDataSourceFeatureOptions, footerRowMetaSymbol, colGroupExtendable, colGroupExtendOption, rowDrag, RowDragFeatureOptions */
7769
7844
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7770
7845
 
7771
7846
  "use strict";
@@ -7866,6 +7941,12 @@ __webpack_require__.r(__webpack_exports__);
7866
7941
 
7867
7942
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "colGroupExtendOption", function() { return _colGroupExtendable__WEBPACK_IMPORTED_MODULE_19__["colGroupExtendOption"]; });
7868
7943
 
7944
+ /* harmony import */ var _rowDrag__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./rowDrag */ "./components/table/pipeline/features/rowDrag.tsx");
7945
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rowDrag", function() { return _rowDrag__WEBPACK_IMPORTED_MODULE_20__["rowDrag"]; });
7946
+
7947
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowDragFeatureOptions", function() { return _rowDrag__WEBPACK_IMPORTED_MODULE_20__["RowDragFeatureOptions"]; });
7948
+
7949
+
7869
7950
 
7870
7951
 
7871
7952
 
@@ -8029,6 +8110,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8029
8110
 
8030
8111
 
8031
8112
 
8113
+ var fullRowsSetKey = 'fullRowsSetKey';
8114
+ var allEnableKeys = 'allEnableKeys';
8115
+ var selectValueSetKey = 'selectValueSetKey';
8032
8116
  function multiSelect() {
8033
8117
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8034
8118
  return function multiSelectStep(pipeline) {
@@ -8059,10 +8143,9 @@ function multiSelect() {
8059
8143
  action: action
8060
8144
  });
8061
8145
  };
8062
-
8063
- var dataSource = pipeline.getDataSource();
8064
8146
  /** dataSource 中包含的所有 keys */
8065
8147
 
8148
+
8066
8149
  var fullKeySet = new Set();
8067
8150
  /** 所有有效的 keys(disable 状态为 false) */
8068
8151
 
@@ -8071,7 +8154,7 @@ function multiSelect() {
8071
8154
  var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
8072
8155
 
8073
8156
  var isAnyChecked = false;
8074
- var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(dataSource);
8157
+ var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(pipeline.getDataSource());
8075
8158
  flatDataSource.forEach(function (row, rowIndex) {
8076
8159
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8077
8160
  fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
@@ -8099,6 +8182,8 @@ function multiSelect() {
8099
8182
  checked: isAllChecked,
8100
8183
  indeterminate: !isAllChecked && isAnyChecked,
8101
8184
  onChange: function onChange(_) {
8185
+ var allKeys = pipeline.getFeatureOptions(allEnableKeys);
8186
+
8102
8187
  if (isAllChecked) {
8103
8188
  _onChange(_utils_others__WEBPACK_IMPORTED_MODULE_16__["arrayUtils"].diff(value, allKeys), '', allKeys, 'uncheck-all');
8104
8189
  } else {
@@ -8119,9 +8204,11 @@ function multiSelect() {
8119
8204
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8120
8205
  var checkboxCellProps = {};
8121
8206
  var preCellProps = (_opts$checkboxColumn = opts.checkboxColumn) === null || _opts$checkboxColumn === void 0 ? void 0 : (_opts$checkboxColumn$ = _opts$checkboxColumn.getCellProps) === null || _opts$checkboxColumn$ === void 0 ? void 0 : _opts$checkboxColumn$.call(_opts$checkboxColumn, value, row, rowIndex);
8207
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8208
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8122
8209
 
8123
- if (fullKeySet.has(rowKey) && clickArea === 'cell') {
8124
- var prevChecked = set.has(rowKey);
8210
+ if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
8211
+ var prevChecked = selectValueSet.has(rowKey);
8125
8212
  var disabled = isDisabled(row, rowIndex);
8126
8213
  checkboxCellProps = {
8127
8214
  style: {
@@ -8145,7 +8232,8 @@ function multiSelect() {
8145
8232
  }
8146
8233
 
8147
8234
  var key = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8148
- var checked = set.has(key);
8235
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8236
+ var checked = selectValueSet.has(key);
8149
8237
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement(Checkbox, {
8150
8238
  checked: checked,
8151
8239
  disabled: isDisabled(row, rowIndex),
@@ -8183,8 +8271,9 @@ function multiSelect() {
8183
8271
 
8184
8272
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
8185
8273
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8274
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8186
8275
 
8187
- if (!fullKeySet.has(rowKey)) {
8276
+ if (!fullRowsSet.has(rowKey)) {
8188
8277
  // rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
8189
8278
  return;
8190
8279
  }
@@ -8192,7 +8281,8 @@ function multiSelect() {
8192
8281
  var style = {};
8193
8282
  var className;
8194
8283
  var onClick;
8195
- var checked = set.has(rowKey);
8284
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8285
+ var checked = selectValueSet.has(rowKey);
8196
8286
 
8197
8287
  if (opts.highlightRowWhenSelected && checked) {
8198
8288
  className = 'highlight';
@@ -8219,22 +8309,32 @@ function multiSelect() {
8219
8309
  style: style,
8220
8310
  onClick: onClick
8221
8311
  };
8222
- });
8312
+ }); // 只保留一份到pipeline, 避免行数据过多时内容被握住
8313
+
8314
+ pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
8315
+ pipeline.setFeatureOptions(allEnableKeys, allKeys);
8316
+ pipeline.setFeatureOptions(selectValueSetKey, set);
8317
+ fullKeySet = null;
8318
+ allKeys = null;
8319
+ set = null;
8223
8320
  return pipeline;
8224
8321
 
8225
8322
  function onCheckboxChange(prevChecked, key, batch) {
8226
8323
  var batchKeys = [key];
8227
8324
 
8228
8325
  if (batch && lastKey) {
8229
- var lastIdx = allKeys.indexOf(lastKey);
8230
- var cntIdx = allKeys.indexOf(key);
8326
+ var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
8327
+
8328
+ var lastIdx = _allKeys.indexOf(lastKey);
8329
+
8330
+ var cntIdx = _allKeys.indexOf(key);
8231
8331
 
8232
8332
  var _ref5 = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
8233
8333
  _ref6 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_5___default()(_ref5, 2),
8234
8334
  start = _ref6[0],
8235
8335
  end = _ref6[1];
8236
8336
 
8237
- batchKeys = allKeys.slice(start, end + 1);
8337
+ batchKeys = _allKeys.slice(start, end + 1);
8238
8338
  }
8239
8339
 
8240
8340
  if (prevChecked) {
@@ -8252,7 +8352,7 @@ function multiSelect() {
8252
8352
  /*!***************************************************************!*\
8253
8353
  !*** ./components/table/pipeline/features/rangeSelection.tsx ***!
8254
8354
  \***************************************************************/
8255
- /*! exports provided: rangeSelectionKey, lastClickCellKey, rangeSelection */
8355
+ /*! exports provided: rangeSelectionKey, lastClickCellKey, rangeSelection, getCellRangeId */
8256
8356
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8257
8357
 
8258
8358
  "use strict";
@@ -8260,38 +8360,40 @@ __webpack_require__.r(__webpack_exports__);
8260
8360
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rangeSelectionKey", function() { return rangeSelectionKey; });
8261
8361
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lastClickCellKey", function() { return lastClickCellKey; });
8262
8362
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rangeSelection", function() { return rangeSelection; });
8363
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCellRangeId", function() { return getCellRangeId; });
8263
8364
  /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ "./node_modules/core-js/modules/es.object.keys.js");
8264
8365
  /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_0__);
8265
8366
  /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
8266
8367
  /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__);
8267
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
8268
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__);
8269
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
8270
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
8271
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
8272
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__);
8273
- /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
8274
- /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5__);
8275
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
8276
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6__);
8277
- /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
8278
- /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_7__);
8279
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
8280
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__);
8281
- /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.array.find-index.js */ "./node_modules/core-js/modules/es.array.find-index.js");
8282
- /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_9__);
8283
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
8284
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_10__);
8285
- /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
8286
- /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_11__);
8287
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../utils */ "./components/table/utils/index.tsx");
8288
- /* harmony import */ var _utils_others__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../utils/others */ "./components/table/utils/others.ts");
8289
- /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
8290
- /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
8291
- /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../base/styles */ "./components/table/base/styles.ts");
8292
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
8293
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_17__);
8294
-
8368
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
8369
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2__);
8370
+ /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
8371
+ /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);
8372
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
8373
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_4__);
8374
+ /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
8375
+ /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_5__);
8376
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
8377
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__);
8378
+ /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js");
8379
+ /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_7__);
8380
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
8381
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_8__);
8382
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
8383
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_9__);
8384
+ /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.find-index.js */ "./node_modules/core-js/modules/es.array.find-index.js");
8385
+ /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_10__);
8386
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
8387
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_11__);
8388
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
8389
+ /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_12__);
8390
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../utils */ "./components/table/utils/index.tsx");
8391
+ /* harmony import */ var _utils_others__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../utils/others */ "./components/table/utils/others.ts");
8392
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
8393
+ /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
8394
+ /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../base/styles */ "./components/table/base/styles.ts");
8395
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
8396
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_18__);
8295
8397
 
8296
8398
 
8297
8399
 
@@ -8303,7 +8405,9 @@ __webpack_require__.r(__webpack_exports__);
8303
8405
 
8304
8406
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8305
8407
 
8306
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8408
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8409
+
8410
+
8307
8411
 
8308
8412
 
8309
8413
 
@@ -8316,9 +8420,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8316
8420
 
8317
8421
  var rangeSelectionKey = 'rangeSelection';
8318
8422
  var lastClickCellKey = 'lastClickCell';
8423
+ var startSelectedCellRangesKey = 'startSelectedCellRanges';
8424
+ var SCROLL_OFFSET = 30;
8319
8425
  function rangeSelection(opts) {
8320
8426
  return function step(pipeline) {
8321
- var SCROLL_SIZE = 30;
8322
8427
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
8323
8428
  var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
8324
8429
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
@@ -8330,14 +8435,18 @@ function rangeSelection(opts) {
8330
8435
  var columns = pipeline.getColumns();
8331
8436
  var dataSource = pipeline.getDataSource();
8332
8437
 
8333
- var rangeSelectedChange = function rangeSelectedChange(rangeSelection) {
8438
+ var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
8334
8439
  var _opts$rangeSelectedCh;
8335
8440
 
8441
+ if (isFinished) {
8442
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
8443
+ }
8444
+
8336
8445
  pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
8337
- opts === null || opts === void 0 ? void 0 : (_opts$rangeSelectedCh = opts.rangeSelectedChange) === null || _opts$rangeSelectedCh === void 0 ? void 0 : _opts$rangeSelectedCh.call(opts, rangeSelection);
8446
+ opts === null || opts === void 0 ? void 0 : (_opts$rangeSelectedCh = opts.rangeSelectedChange) === null || _opts$rangeSelectedCh === void 0 ? void 0 : _opts$rangeSelectedCh.call(opts, rangeSelection, isFinished);
8338
8447
  };
8339
8448
 
8340
- var setRangeSelection = function setRangeSelection(startDragCell, draggingCell) {
8449
+ var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
8341
8450
  if (!startDragCell || !draggingCell) return;
8342
8451
  var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
8343
8452
 
@@ -8346,21 +8455,31 @@ function rangeSelection(opts) {
8346
8455
  endRow = _getRangeSelectionRow.endRow,
8347
8456
  footerRowRange = _getRangeSelectionRow.footerRowRange;
8348
8457
 
8349
- var rangeSelection = {
8458
+ var cellRange = {
8350
8459
  startRow: startRow,
8351
8460
  endRow: endRow,
8352
8461
  columns: rangeColumns,
8353
8462
  startColumn: startDragCell.column,
8354
8463
  footerRowRange: footerRowRange
8355
8464
  };
8465
+ var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_7___default()(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
8466
+
8467
+ if (isCellRangeSingleCell([cellRange])) {
8468
+ var singleCellRangeId = getCellRangeId(cellRange);
8469
+ cellRanges = cellRanges.filter(function (item) {
8470
+ return getCellRangeId(item) !== singleCellRangeId;
8471
+ });
8472
+ }
8473
+
8474
+ cellRanges.push(cellRange);
8356
8475
 
8357
- if (isCellRangeSingleCell(rangeSelection)) {
8358
- artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_17___default()(_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].rangeSelection));
8476
+ if (isCellRangeSingleCell(cellRanges)) {
8477
+ artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_18___default()(_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].rangeSelection));
8359
8478
  } else {
8360
- artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_17___default()(_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].rangeSelection));
8479
+ artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_18___default()(_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].rangeSelection));
8361
8480
  }
8362
8481
 
8363
- rangeSelectedChange(rangeSelection);
8482
+ rangeSelectedChange(cellRanges, isFinished);
8364
8483
  };
8365
8484
 
8366
8485
  var shiftKeySelect = function shiftKeySelect(event) {
@@ -8368,81 +8487,117 @@ function rangeSelection(opts) {
8368
8487
  var clickCell = getTargetCell(target, columns);
8369
8488
 
8370
8489
  if (clickCell) {
8371
- if (event.shiftKey) {
8372
- var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
8490
+ var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
8373
8491
 
8374
- if (_lastClickCell) {
8375
- setRangeSelection(_lastClickCell, clickCell);
8376
- } else {
8377
- // 第一次进来就按住shift键,这时候要记住点击的单元格
8378
- pipeline.setFeatureOptions(lastClickCellKey, clickCell);
8379
- }
8492
+ if (_lastClickCell) {
8493
+ setRangeSelection(_lastClickCell, clickCell, true);
8380
8494
  } else {
8495
+ // 第一次进来就按住shift键,这时候要记住点击的单元格
8381
8496
  pipeline.setFeatureOptions(lastClickCellKey, clickCell);
8382
- setRangeSelection(clickCell, clickCell);
8383
8497
  }
8384
8498
  }
8385
8499
  };
8386
8500
 
8387
- var onMouseDown = function onMouseDown(mouseDownEvent) {
8388
- if (mouseDownEvent.button !== 0 || !(Object(_utils__WEBPACK_IMPORTED_MODULE_12__["isElementInEventPath"])(tableBody, mouseDownEvent.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_12__["isElementInEventPath"])(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
8389
- // shift + 点击选中
8390
-
8391
- shiftKeySelect(mouseDownEvent);
8392
- if (mouseDownEvent.shiftKey) return;
8393
- var target = mouseDownEvent.target;
8394
- var startDragCell = getTargetCell(target, columns);
8395
- var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_14__["fromEvent"])(window, 'mousemove');
8396
- var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_14__["fromEvent"])(window, 'mouseup');
8501
+ var updateScrollPosition = function updateScrollPosition(client) {
8502
+ var clientX = client.clientX,
8503
+ clientY = client.clientY;
8397
8504
  var tableBodyClientRect = tableBody.getBoundingClientRect();
8505
+ var left = tableBodyClientRect.left,
8506
+ top = tableBodyClientRect.top,
8507
+ height = tableBodyClientRect.height,
8508
+ width = tableBodyClientRect.width;
8398
8509
 
8399
- var updateScrollPosition = function updateScrollPosition(client) {
8400
- var clientX = client.clientX,
8401
- clientY = client.clientY;
8402
- var left = tableBodyClientRect.left,
8403
- top = tableBodyClientRect.top,
8404
- height = tableBodyClientRect.height,
8405
- width = tableBodyClientRect.width;
8510
+ if (clientX + SCROLL_OFFSET >= left + width) {
8511
+ pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
8512
+ }
8406
8513
 
8407
- if (clientX + SCROLL_SIZE >= left + width) {
8408
- pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
8409
- }
8514
+ if (clientX - SCROLL_OFFSET <= left) {
8515
+ pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
8516
+ }
8410
8517
 
8411
- if (clientX - SCROLL_SIZE <= left) {
8412
- pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
8413
- }
8518
+ if (clientY + SCROLL_OFFSET >= top + height) {
8519
+ pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
8520
+ }
8414
8521
 
8415
- if (clientY + SCROLL_SIZE >= top + height) {
8416
- pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_SIZE;
8417
- }
8522
+ if (clientY + SCROLL_OFFSET <= top) {
8523
+ pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
8524
+ }
8525
+ };
8418
8526
 
8419
- if (clientY + SCROLL_SIZE <= top) {
8420
- pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_SIZE;
8421
- }
8422
- };
8527
+ var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
8528
+ if (opts !== null && opts !== void 0 && opts.suppressMultiRangeSelection) {
8529
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
8530
+ return;
8531
+ } // ctrl 和shift 同时按时,优先生效shift
8532
+ // 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
8533
+
8534
+
8535
+ if (!isCtrlKey && !isShiftKey) {
8536
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
8537
+ } // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
8538
+
8539
+
8540
+ if (isShiftKey) {
8541
+ var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_7___default()(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
8542
+
8543
+ _startDragCellRanges.pop();
8544
+
8545
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
8546
+ }
8547
+ };
8548
+
8549
+ var onMouseDown = function onMouseDown(mouseDownEvent) {
8550
+ if (mouseDownEvent.button !== 0 || !(Object(_utils__WEBPACK_IMPORTED_MODULE_13__["isElementInEventPath"])(tableBody, mouseDownEvent.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_13__["isElementInEventPath"])(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
8551
+
8552
+ var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
8553
+ var isShiftKey = mouseDownEvent.shiftKey;
8554
+ var target = mouseDownEvent.target; // 每次点击时先确认初始生效的框选范围
8555
+
8556
+ setStartSelectedCellRanges(isCtrlKey, isShiftKey);
8557
+
8558
+ if (isShiftKey) {
8559
+ shiftKeySelect(mouseDownEvent);
8560
+ return;
8561
+ }
8562
+
8563
+ var startDragCell = getTargetCell(target, columns);
8564
+ pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
8565
+ var draggingCell = startDragCell;
8566
+ var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_15__["fromEvent"])(window, 'mousemove');
8567
+ var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_15__["fromEvent"])(window, 'mouseup');
8568
+ var rangeSelected$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_16__["map"])(function (mouseMoveEvent) {
8569
+ var _draggingCell;
8423
8570
 
8424
- var rangeSelected$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_15__["map"])(function (mouseMoveEvent) {
8425
8571
  var target = mouseMoveEvent.target || mouseMoveEvent.srcElement;
8426
- var draggingCell = getTargetCell(target, columns);
8572
+ draggingCell = getTargetCell(target, columns);
8427
8573
  var client = {
8428
8574
  clientX: mouseMoveEvent.clientX,
8429
8575
  clientY: mouseMoveEvent.clientY
8430
8576
  };
8431
- updateScrollPosition(client);
8577
+
8578
+ if (!((_draggingCell = draggingCell) !== null && _draggingCell !== void 0 && _draggingCell.isFooterCell)) {
8579
+ updateScrollPosition(client);
8580
+ }
8581
+
8432
8582
  return {
8433
8583
  startDragCell: startDragCell,
8434
8584
  draggingCell: draggingCell
8435
8585
  };
8436
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_15__["takeUntil"])(mouseup$));
8437
- rangeSelected$.subscribe(function (_ref) {
8438
- var startDragCell = _ref.startDragCell,
8439
- draggingCell = _ref.draggingCell;
8440
- setRangeSelection(startDragCell, draggingCell);
8586
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_16__["takeUntil"])(mouseup$));
8587
+ rangeSelected$.subscribe({
8588
+ next: function next(_ref) {
8589
+ var startDragCell = _ref.startDragCell,
8590
+ draggingCell = _ref.draggingCell;
8591
+ setRangeSelection(startDragCell, draggingCell, false);
8592
+ },
8593
+ complete: function complete() {
8594
+ setRangeSelection(startDragCell, draggingCell, true);
8595
+ }
8441
8596
  });
8442
8597
  };
8443
8598
 
8444
8599
  var onKeyDown = function onKeyDown(e) {
8445
- if (!(Object(_utils__WEBPACK_IMPORTED_MODULE_12__["isElementInEventPath"])(tableBody, e.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_12__["isElementInEventPath"])(tableFooter, e.nativeEvent))) return;
8600
+ if (!(Object(_utils__WEBPACK_IMPORTED_MODULE_13__["isElementInEventPath"])(tableBody, e.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_13__["isElementInEventPath"])(tableFooter, e.nativeEvent))) return;
8446
8601
 
8447
8602
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
8448
8603
  var rowLen = pipeline.getDataSource().length;
@@ -8450,17 +8605,17 @@ function rangeSelection(opts) {
8450
8605
 
8451
8606
  if (columns.length && rowLen && !getElementEditable(e.target)) {
8452
8607
  opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
8453
- artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_17___default()(_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].rangeSelection));
8454
- rangeSelectedChange({
8608
+ artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_18___default()(_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].rangeSelection));
8609
+ rangeSelectedChange([{
8455
8610
  startRow: 0,
8456
8611
  endRow: rowLen - 1,
8457
- columns: Object(_utils__WEBPACK_IMPORTED_MODULE_12__["collectNodes"])(columns, 'leaf-only'),
8612
+ columns: Object(_utils__WEBPACK_IMPORTED_MODULE_13__["collectNodes"])(columns, 'leaf-only'),
8458
8613
  startColumn: columns[0],
8459
8614
  footerRowRange: footerDataSource.length > 0 ? {
8460
8615
  startRow: 0,
8461
8616
  endRow: footerDataSource.length - 1
8462
8617
  } : null
8463
- });
8618
+ }], true);
8464
8619
  }
8465
8620
  }
8466
8621
  };
@@ -8469,44 +8624,26 @@ function rangeSelection(opts) {
8469
8624
  onMouseDown: onMouseDown,
8470
8625
  onKeyDown: onKeyDown,
8471
8626
  tabIndex: -1,
8472
- className: classnames__WEBPACK_IMPORTED_MODULE_17___default()([_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].rangeSelection])
8627
+ className: classnames__WEBPACK_IMPORTED_MODULE_18___default()([_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].rangeSelection])
8473
8628
  }); // todo: 后面可以把mousedown放到一个流里面
8474
8629
 
8475
- return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_12__["makeRecursiveMapper"])(function (col) {
8476
- var rangeSelection = pipeline.getStateAtKey(rangeSelectionKey);
8477
- if (!rangeSelection || rangeSelection.columns.findIndex(function (selectedCol) {
8478
- return selectedCol.code === col.code;
8479
- }) === -1) return col;
8630
+ return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_13__["makeRecursiveMapper"])(function (col) {
8631
+ var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
8480
8632
  var prevGetCellProps = col.getCellProps;
8481
8633
  return _objectSpread(_objectSpread({}, col), {}, {
8482
8634
  getCellProps: function getCellProps(value, record, rowIndex) {
8483
- var _cx;
8484
-
8485
8635
  var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
8486
- var isInFooter = record[pipeline.getFeatureOptions('footerRowMetaKey')];
8487
- var startRow = rangeSelection.startRow,
8488
- endRow = rangeSelection.endRow,
8489
- columns = rangeSelection.columns,
8490
- footerRowRange = rangeSelection.footerRowRange;
8491
-
8492
- var _getRowIndex = getRowIndex(startRow, endRow),
8493
- startRowIndex = _getRowIndex.startRowIndex,
8494
- endRowIndex = _getRowIndex.endRowIndex;
8495
-
8496
- var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
8497
- footerStartRowIndex = _getFooterRowIndex.startRowIndex,
8498
- footerEndRowIndex = _getFooterRowIndex.endRowIndex;
8499
-
8500
- var startCol = columns[0];
8501
- var endCol = columns[columns.length - 1];
8502
- var bodyMatch = !isInFooter && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
8503
- var footerMatch = isInFooter && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
8504
- var match = footerMatch || bodyMatch;
8505
- var matchSingleCell = match && isCellRangeSingleCell(rangeSelection); // 单个范围选中单元格不显示样式
8506
-
8507
- var showCellRangeStyle = match && !matchSingleCell;
8508
- var className = classnames__WEBPACK_IMPORTED_MODULE_17___default()((_cx = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeSingleCell, matchSingleCell), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeSelected, showCellRangeStyle), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeTop, showCellRangeStyle && (isInFooter ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex)), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeLeft, showCellRangeStyle && col.code === startCol.code), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeBottom, showCellRangeStyle && (isInFooter ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex)), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableCellRangeRight, showCellRangeStyle && col.code === endCol.code), _cx));
8509
- return Object(_utils__WEBPACK_IMPORTED_MODULE_12__["mergeCellProps"])(prevCellProps, {
8636
+ var isFooterCell = record[pipeline.getFeatureOptions('footerRowMetaKey')];
8637
+ if (!cellRanges.some(function (cellRange) {
8638
+ return isCellInRange(cellRange, rowIndex, col, isFooterCell);
8639
+ })) return prevCellProps;
8640
+ var className = getCellRangesClassName(cellRanges, {
8641
+ isFooterCell: isFooterCell,
8642
+ rowIndex: rowIndex,
8643
+ col: col,
8644
+ record: record
8645
+ });
8646
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_13__["mergeCellProps"])(prevCellProps, {
8510
8647
  className: className
8511
8648
  });
8512
8649
  }
@@ -8520,7 +8657,7 @@ function getTargetCell(target, columns) {
8520
8657
  if (target.getAttribute('data-role') === 'table-cell') {
8521
8658
  var _ret = function () {
8522
8659
  var columnCode = target.getAttribute('data-code');
8523
- var column = Object(_utils_others__WEBPACK_IMPORTED_MODULE_13__["findByTree"])(columns, function (item, index) {
8660
+ var column = Object(_utils_others__WEBPACK_IMPORTED_MODULE_14__["findByTree"])(columns, function (item, index) {
8524
8661
  return item.code === columnCode;
8525
8662
  });
8526
8663
  if (!column) return {
@@ -8532,12 +8669,12 @@ function getTargetCell(target, columns) {
8532
8669
  rowSpan: parseInt(target.getAttribute('rowspan') || 1),
8533
8670
  code: columnCode,
8534
8671
  column: column,
8535
- isInFooter: isEleInFooter(target)
8672
+ isFooterCell: isEleInFooter(target)
8536
8673
  }
8537
8674
  };
8538
8675
  }();
8539
8676
 
8540
- if (_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_7___default()(_ret) === "object") return _ret.v;
8677
+ if (_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_5___default()(_ret) === "object") return _ret.v;
8541
8678
  }
8542
8679
 
8543
8680
  target = target.parentElement;
@@ -8547,12 +8684,12 @@ function getTargetCell(target, columns) {
8547
8684
  }
8548
8685
 
8549
8686
  function isSameCell(cell1, cell2) {
8550
- return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isInFooter === cell2.isInFooter;
8687
+ return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
8551
8688
  }
8552
8689
 
8553
8690
  function isEleInFooter(target) {
8554
- while (target && !target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].artTable)) {
8555
- if (target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_16__["Classes"].tableFooter)) {
8691
+ while (target && !target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].artTable)) {
8692
+ if (target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableFooter)) {
8556
8693
  return true;
8557
8694
  }
8558
8695
 
@@ -8563,7 +8700,7 @@ function isEleInFooter(target) {
8563
8700
  }
8564
8701
 
8565
8702
  function getRangeColumns(startCell, endCell, columns) {
8566
- var flatColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_12__["collectNodes"])(columns, 'leaf-only');
8703
+ var flatColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_13__["collectNodes"])(columns, 'leaf-only');
8567
8704
  var startIndex = flatColumns.findIndex(function (col) {
8568
8705
  return col.code === startCell.code;
8569
8706
  });
@@ -8588,10 +8725,10 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
8588
8725
  _endRow = _getCellRangeRow.endRow; // 两个单元格都在表体
8589
8726
 
8590
8727
 
8591
- if (!startCell.isInFooter && !endCell.isInFooter) {
8728
+ if (!startCell.isFooterCell && !endCell.isFooterCell) {
8592
8729
  startRow = _startRow;
8593
8730
  endRow = _endRow;
8594
- } else if (startCell.isInFooter && endCell.isInFooter) {
8731
+ } else if (startCell.isFooterCell && endCell.isFooterCell) {
8595
8732
  // 两个单元格都在表底
8596
8733
  footerRowRange = {
8597
8734
  startRow: _startRow,
@@ -8599,7 +8736,7 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
8599
8736
  };
8600
8737
  } else {
8601
8738
  // 一个单元格在表体,一个在表底
8602
- if (startCell.isInFooter) {
8739
+ if (startCell.isFooterCell) {
8603
8740
  startRow = dataSource.length - 1;
8604
8741
  endRow = endCell.rowIndex;
8605
8742
  footerRowRange = {
@@ -8622,6 +8759,13 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
8622
8759
  footerRowRange: footerRowRange
8623
8760
  };
8624
8761
  }
8762
+ /**
8763
+ * 获取框选范围的起始结束行
8764
+ * @param startCell 起始单元格
8765
+ * @param endCell 结束单元格
8766
+ * @returns
8767
+ */
8768
+
8625
8769
 
8626
8770
  function getCellRangeRow(startCell, endCell) {
8627
8771
  if (isSameCell(startCell, endCell)) {
@@ -8639,12 +8783,20 @@ function getCellRangeRow(startCell, endCell) {
8639
8783
  endRow: endRow
8640
8784
  };
8641
8785
  }
8786
+ /**
8787
+ * 框选范围是否只包含单个单元格
8788
+ * @param cellRanges
8789
+ * @returns
8790
+ */
8791
+
8642
8792
 
8643
- function isCellRangeSingleCell(rangeSelection) {
8644
- var startRow = rangeSelection.startRow,
8645
- endRow = rangeSelection.endRow,
8646
- columns = rangeSelection.columns,
8647
- footerRowRange = rangeSelection.footerRowRange;
8793
+ function isCellRangeSingleCell(cellRanges) {
8794
+ if (cellRanges.length !== 1) return false;
8795
+ var _cellRanges$ = cellRanges[0],
8796
+ startRow = _cellRanges$.startRow,
8797
+ endRow = _cellRanges$.endRow,
8798
+ columns = _cellRanges$.columns,
8799
+ footerRowRange = _cellRanges$.footerRowRange;
8648
8800
  var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
8649
8801
  var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
8650
8802
  return isBodySingleCell || isFooterSingleCell;
@@ -8679,6 +8831,134 @@ function getElementEditable(target) {
8679
8831
  return !target.disabled && !target.readOnly;
8680
8832
  }
8681
8833
  }
8834
+ /**
8835
+ * 判断单元格是否在框选范围内
8836
+ * @param cellRange
8837
+ * @param rowIndex
8838
+ * @param col
8839
+ * @param isFooterCell
8840
+ * @returns
8841
+ */
8842
+
8843
+
8844
+ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
8845
+ var startRow = cellRange.startRow,
8846
+ endRow = cellRange.endRow,
8847
+ columns = cellRange.columns,
8848
+ footerRowRange = cellRange.footerRowRange;
8849
+ var isColInRanges = columns.findIndex(function (item) {
8850
+ return item.code === col.code;
8851
+ }) !== -1;
8852
+ if (!isColInRanges) return false;
8853
+
8854
+ var _getRowIndex = getRowIndex(startRow, endRow),
8855
+ startRowIndex = _getRowIndex.startRowIndex,
8856
+ endRowIndex = _getRowIndex.endRowIndex;
8857
+
8858
+ var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
8859
+ footerStartRowIndex = _getFooterRowIndex.startRowIndex,
8860
+ footerEndRowIndex = _getFooterRowIndex.endRowIndex;
8861
+
8862
+ var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
8863
+ var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
8864
+ var isRowInRange = footerMatch || bodyMatch;
8865
+ return isRowInRange;
8866
+ }
8867
+ /**
8868
+ * 获取框选范围唯一标识
8869
+ * @param {*} cellRange
8870
+ * @returns
8871
+ */
8872
+
8873
+
8874
+ function getCellRangeId(cellRange) {
8875
+ var startRow = cellRange.startRow,
8876
+ endRow = cellRange.endRow,
8877
+ footerRowRange = cellRange.footerRowRange,
8878
+ columns = cellRange.columns;
8879
+
8880
+ var _getRowIndex2 = getRowIndex(startRow, endRow),
8881
+ startRowIndex = _getRowIndex2.startRowIndex,
8882
+ endRowIndex = _getRowIndex2.endRowIndex;
8883
+
8884
+ var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
8885
+ footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
8886
+ footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
8887
+
8888
+ var firstColId = columns[0].code;
8889
+ var endColId = columns[columns.length - 1].code;
8890
+ return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
8891
+ }
8892
+ /**
8893
+ * 获取框选范围中单元格的样式
8894
+ * @param cellRanges
8895
+ * @param param1
8896
+ * @returns
8897
+ */
8898
+
8899
+ function getCellRangesClassName(cellRanges, _ref2) {
8900
+ var _cx;
8901
+
8902
+ var isFooterCell = _ref2.isFooterCell,
8903
+ rowIndex = _ref2.rowIndex,
8904
+ col = _ref2.col,
8905
+ record = _ref2.record;
8906
+
8907
+ var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
8908
+ isFooterCell: isFooterCell,
8909
+ rowIndex: rowIndex,
8910
+ col: col,
8911
+ record: record
8912
+ }),
8913
+ matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
8914
+ matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
8915
+ matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
8916
+ matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
8917
+
8918
+ var isSingleCell = isCellRangeSingleCell(cellRanges);
8919
+ var className = classnames__WEBPACK_IMPORTED_MODULE_18___default()((_cx = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeSingleCell, isSingleCell), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeSelected, !isSingleCell), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeTop, !isSingleCell && matchCellRangeTop), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_17__["Classes"].tableCellRangeRight, !isSingleCell && matchCellRangeRight), _cx));
8920
+ return className;
8921
+ }
8922
+
8923
+ function getMatchBorderStyle(cellRanges, _ref3) {
8924
+ var isFooterCell = _ref3.isFooterCell,
8925
+ rowIndex = _ref3.rowIndex,
8926
+ col = _ref3.col,
8927
+ record = _ref3.record;
8928
+ return cellRanges.reduce(function (obj, cellRange) {
8929
+ if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
8930
+ var startRow = cellRange.startRow,
8931
+ endRow = cellRange.endRow,
8932
+ columns = cellRange.columns,
8933
+ footerRowRange = cellRange.footerRowRange;
8934
+
8935
+ var _getRowIndex3 = getRowIndex(startRow, endRow),
8936
+ startRowIndex = _getRowIndex3.startRowIndex,
8937
+ endRowIndex = _getRowIndex3.endRowIndex;
8938
+
8939
+ var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
8940
+ footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
8941
+ footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
8942
+
8943
+ var startCol = columns[0];
8944
+ var endCol = columns[columns.length - 1];
8945
+ var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
8946
+ var matchCellRangeLeft = col.code === startCol.code;
8947
+ var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
8948
+ var matchCellRangeRight = col.code === endCol.code; // 如果样式已经匹配上了,就不需要再取计算的样式
8949
+
8950
+ obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
8951
+ obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
8952
+ obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;
8953
+ obj.matchCellRangeRight = obj.matchCellRangeRight || matchCellRangeRight;
8954
+ return obj;
8955
+ }, {
8956
+ matchCellRangeTop: false,
8957
+ matchCellRangeLeft: false,
8958
+ matchCellRangeBottom: false,
8959
+ matchCellRangeRight: false
8960
+ });
8961
+ }
8682
8962
 
8683
8963
  /***/ }),
8684
8964
 
@@ -9032,6 +9312,355 @@ function rowDetail() {
9032
9312
 
9033
9313
  /***/ }),
9034
9314
 
9315
+ /***/ "./components/table/pipeline/features/rowDrag.tsx":
9316
+ /*!********************************************************!*\
9317
+ !*** ./components/table/pipeline/features/rowDrag.tsx ***!
9318
+ \********************************************************/
9319
+ /*! exports provided: ROW_DRAG_COLUMN_CODE, rowDragKey, rowDrag */
9320
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9321
+
9322
+ "use strict";
9323
+ __webpack_require__.r(__webpack_exports__);
9324
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ROW_DRAG_COLUMN_CODE", function() { return ROW_DRAG_COLUMN_CODE; });
9325
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rowDragKey", function() { return rowDragKey; });
9326
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rowDrag", function() { return rowDrag; });
9327
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
9328
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
9329
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
9330
+ /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__);
9331
+ /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
9332
+ /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__);
9333
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
9334
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
9335
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
9336
+ /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
9337
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
9338
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_6__);
9339
+ /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../base/styles */ "./components/table/base/styles.ts");
9340
+
9341
+
9342
+
9343
+
9344
+
9345
+
9346
+
9347
+
9348
+ var ROW_DRAG_COLUMN_CODE = '$_row_drag_column_&';
9349
+ var rowDragKey = 'rowDragKey';
9350
+ var SCROLL_OFFSET = 30;
9351
+ var defaultRowDragColumn = {
9352
+ name: '拖拽列',
9353
+ code: ROW_DRAG_COLUMN_CODE,
9354
+ lock: true,
9355
+ title: '',
9356
+ width: 40,
9357
+ align: 'center',
9358
+ getCellProps: function getCellProps(value, row, rowIndex) {
9359
+ return {
9360
+ className: classnames__WEBPACK_IMPORTED_MODULE_6___default()(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragCell)
9361
+ };
9362
+ },
9363
+ render: function render(value, row, rowIndex) {
9364
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("svg", {
9365
+ viewBox: "0 0 1024 1024",
9366
+ version: "1.1",
9367
+ xmlns: "http://www.w3.org/1999/xlink",
9368
+ "data-icon": "drag",
9369
+ width: "16",
9370
+ height: "16"
9371
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("path", {
9372
+ d: "M298.688 192a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0zM298.688 512a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m-298.624 320a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z",
9373
+ "p-id": "4278"
9374
+ }));
9375
+ }
9376
+ };
9377
+ function rowDrag(opt) {
9378
+ return function rowDragStep(pipeline) {
9379
+ var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
9380
+ var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
9381
+ if (!tableBody) return pipeline;
9382
+ var dataSource = pipeline.getDataSource();
9383
+ var rowHeight = (opt === null || opt === void 0 ? void 0 : opt.rowHeight) || 48;
9384
+
9385
+ var handleDragStrat = function handleDragStrat(event) {
9386
+ var _opt$onDragStart;
9387
+
9388
+ // 开始拖拽
9389
+ artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_6___default()(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragging));
9390
+ opt === null || opt === void 0 ? void 0 : (_opt$onDragStart = opt.onDragStart) === null || _opt$onDragStart === void 0 ? void 0 : _opt$onDragStart.call(opt, event);
9391
+ };
9392
+
9393
+ var handleDragMove = function handleDragMove(event) {
9394
+ var _opt$onDragMove;
9395
+
9396
+ opt === null || opt === void 0 ? void 0 : (_opt$onDragMove = opt.onDragMove) === null || _opt$onDragMove === void 0 ? void 0 : _opt$onDragMove.call(opt, event);
9397
+ pipeline.setStateAtKey(rowDragKey, event);
9398
+ };
9399
+
9400
+ var handleDragEnd = function handleDragEnd(event, isOutOfRange) {
9401
+ artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_6___default()(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragging));
9402
+ pipeline.setStateAtKey(rowDragKey, event); // 超出拖拽范围不触发dragend事件
9403
+
9404
+ if (!isOutOfRange) {
9405
+ var _opt$onDragEnd;
9406
+
9407
+ opt === null || opt === void 0 ? void 0 : (_opt$onDragEnd = opt.onDragEnd) === null || _opt$onDragEnd === void 0 ? void 0 : _opt$onDragEnd.call(opt, event);
9408
+ }
9409
+ };
9410
+
9411
+ var getDragEvent = function getDragEvent(startRowInfo, endRowInfo, _ref) {
9412
+ var isFinished = _ref.isFinished,
9413
+ _ref$dragPosition = _ref.dragPosition,
9414
+ dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
9415
+ return {
9416
+ startRowIndex: startRowInfo.rowIndex,
9417
+ startRow: startRowInfo.row,
9418
+ endRowIndex: endRowInfo.rowIndex,
9419
+ endRow: endRowInfo.row,
9420
+ dragPosition: dragPosition,
9421
+ isFinished: isFinished
9422
+ };
9423
+ };
9424
+
9425
+ var updateScrollPosition = function updateScrollPosition(mouseMoveEvent) {
9426
+ var clientY = mouseMoveEvent.clientY;
9427
+ var tableBodyClientRect = tableBody.getBoundingClientRect();
9428
+ var top = tableBodyClientRect.top,
9429
+ height = tableBodyClientRect.height;
9430
+
9431
+ if (clientY + SCROLL_OFFSET >= top + height) {
9432
+ pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
9433
+ }
9434
+
9435
+ if (clientY + SCROLL_OFFSET <= top) {
9436
+ pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
9437
+ }
9438
+ };
9439
+
9440
+ var onMouseDown = function onMouseDown(mouseDownEvent) {
9441
+ var _opt$isDisabled;
9442
+
9443
+ var startRowInfo = getTargetRowInfo(mouseDownEvent.target, tableBody, dataSource);
9444
+ var endRowInfo = startRowInfo;
9445
+ if (!startRowInfo || startRowInfo.code !== rowDragColumn.code) return;
9446
+ if (opt !== null && opt !== void 0 && (_opt$isDisabled = opt.isDisabled) !== null && _opt$isDisabled !== void 0 && _opt$isDisabled.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return; // 默认拖拽插入的位置是向下
9447
+
9448
+ var dragPosition = 'bottom';
9449
+ var isOutOfRange = false;
9450
+ var dragStartEvent = getDragEvent(startRowInfo, endRowInfo, {
9451
+ isFinished: false,
9452
+ dragPosition: 'bottom'
9453
+ });
9454
+ handleDragStrat(dragStartEvent);
9455
+ var tableWidth = tableBody.clientWidth;
9456
+ var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
9457
+
9458
+ var startOffset = mouseDownEvent.clientY - startRowRects.y;
9459
+ var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
9460
+
9461
+ var dragRange = getDragRange(tableBody, {
9462
+ startOffset: startOffset,
9463
+ rowHeight: startRowRects.height
9464
+ });
9465
+ var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_4__["fromEvent"])(window, 'mousemove');
9466
+ var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_4__["fromEvent"])(window, 'mouseup');
9467
+ var rowDrag$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_5__["map"])(function (mouseMoveEvent) {
9468
+ var clientX = mouseMoveEvent.clientX,
9469
+ clientY = mouseMoveEvent.clientY;
9470
+ var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
9471
+
9472
+ if (tagretRow) {
9473
+ endRowInfo = tagretRow;
9474
+ }
9475
+
9476
+ var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
9477
+
9478
+ var isMoveToTop = clientY - startOffset < targetRowRects.y;
9479
+ dragPosition = isMoveToTop ? 'top' : 'bottom';
9480
+ isOutOfRange = isOutOfDragRange({
9481
+ x: clientX,
9482
+ y: clientY
9483
+ }, dragRange);
9484
+ updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
9485
+
9486
+ updateDragElementPosition(dragElement, dragRange, {
9487
+ x: clientX,
9488
+ y: clientY,
9489
+ startOffset: startOffset
9490
+ });
9491
+ updateCurSorStyle(isOutOfRange);
9492
+ return {
9493
+ startRowInfo: startRowInfo,
9494
+ endRowInfo: endRowInfo,
9495
+ dragPosition: dragPosition
9496
+ };
9497
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_5__["takeUntil"])(mouseup$));
9498
+ rowDrag$.subscribe({
9499
+ next: function next(_ref2) {
9500
+ var startRowInfo = _ref2.startRowInfo,
9501
+ endRowInfo = _ref2.endRowInfo,
9502
+ dragPosition = _ref2.dragPosition;
9503
+ var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
9504
+ isFinished: false,
9505
+ dragPosition: dragPosition
9506
+ });
9507
+ handleDragMove(dragMoveEvent);
9508
+ },
9509
+ complete: function complete() {
9510
+ var dragEndEvent = getDragEvent(startRowInfo, endRowInfo, {
9511
+ isFinished: true,
9512
+ dragPosition: dragPosition
9513
+ });
9514
+ handleDragEnd(dragEndEvent, isOutOfRange);
9515
+ removeDragElement(dragElement);
9516
+ removeCurSorStyle();
9517
+ }
9518
+ });
9519
+ };
9520
+
9521
+ var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
9522
+ var nextColumns = pipeline.getColumns().slice();
9523
+ nextColumns.unshift(rowDragColumn);
9524
+ pipeline.columns(nextColumns);
9525
+ pipeline.addTableProps({
9526
+ onMouseDown: onMouseDown
9527
+ });
9528
+ pipeline.appendRowPropsGetter(function (row, rowIndex) {
9529
+ var _cx;
9530
+
9531
+ var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
9532
+ var startRowIndex = rowDragEvent.startRowIndex,
9533
+ endRowIndex = rowDragEvent.endRowIndex,
9534
+ isFinished = rowDragEvent.isFinished,
9535
+ dragPosition = rowDragEvent.dragPosition;
9536
+ var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
9537
+ if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
9538
+ var className = classnames__WEBPACK_IMPORTED_MODULE_6___default()((_cx = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragStart, rowIndex === startRowIndex), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragEnd, rowIndex === endRowIndex), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'), _cx));
9539
+ return {
9540
+ className: className
9541
+ };
9542
+ });
9543
+ return pipeline;
9544
+ };
9545
+ }
9546
+
9547
+ function getTargetRowInfo(target, tableBody, record) {
9548
+ while (target && tableBody.contains(target)) {
9549
+ if (target.getAttribute('data-role') === 'table-cell') {
9550
+ var code = target.getAttribute('data-code');
9551
+
9552
+ var _rowIndex = parseInt(target.getAttribute('data-rowindex'));
9553
+
9554
+ var _row = record[_rowIndex];
9555
+ var isFooterCell = isEleInFooter(target);
9556
+ if (!_row || isFooterCell) return null;
9557
+ return {
9558
+ rowIndex: _rowIndex,
9559
+ row: _row,
9560
+ code: code,
9561
+ cell: target
9562
+ };
9563
+ }
9564
+
9565
+ target = target.parentElement;
9566
+ }
9567
+
9568
+ return null;
9569
+ }
9570
+
9571
+ function isEleInFooter(target) {
9572
+ while (target && !target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].artTable)) {
9573
+ if (target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableFooter)) {
9574
+ return true;
9575
+ }
9576
+
9577
+ target = target.parentElement;
9578
+ }
9579
+
9580
+ return false;
9581
+ }
9582
+
9583
+ function createDragElement(rects, tableWidth, rowHeight) {
9584
+ var x = rects.x,
9585
+ y = rects.y;
9586
+ var dragMoveElement = document.createElement('div');
9587
+ dragMoveElement.className = classnames__WEBPACK_IMPORTED_MODULE_6___default()(_base_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].rowDragElement);
9588
+ dragMoveElement.style.cssText = "position:fixed;z-index:9999;left:".concat(x, "px;top:").concat(y, "px;pointer-events:none;width:").concat(tableWidth, "px;height:").concat(rowHeight, "px;background:var(--primary-color);opacity: 0.1;");
9589
+ document.body.appendChild(dragMoveElement);
9590
+ return dragMoveElement;
9591
+ }
9592
+
9593
+ function updateDragElementPosition(element, dragRange, _ref3) {
9594
+ var x = _ref3.x,
9595
+ y = _ref3.y,
9596
+ startOffset = _ref3.startOffset;
9597
+ var validPosition = getValidPosition({
9598
+ x: x,
9599
+ y: y
9600
+ }, dragRange);
9601
+ element.style.top = validPosition.y - startOffset + 'px';
9602
+ return element;
9603
+ }
9604
+
9605
+ function removeDragElement(element) {
9606
+ document.body.removeChild(element);
9607
+ }
9608
+
9609
+ function updateCurSorStyle(isOutOfRange) {
9610
+ if (isOutOfRange) {
9611
+ document.body.style.cursor = 'no-drop';
9612
+ } else {
9613
+ document.body.style.cursor = 'move';
9614
+ }
9615
+ }
9616
+
9617
+ function removeCurSorStyle() {
9618
+ document.body.style.cursor = 'default';
9619
+ }
9620
+
9621
+ function getDragRange(tableBody, _ref4) {
9622
+ var startOffset = _ref4.startOffset,
9623
+ rowHeight = _ref4.rowHeight;
9624
+ var tableBodyClientRect = tableBody.getBoundingClientRect();
9625
+ var height = tableBodyClientRect.height,
9626
+ width = tableBodyClientRect.width,
9627
+ x = tableBodyClientRect.x,
9628
+ y = tableBodyClientRect.y;
9629
+ return {
9630
+ minX: x,
9631
+ maxX: x + width,
9632
+ minY: y - rowHeight + startOffset,
9633
+ maxY: y + height + startOffset
9634
+ };
9635
+ }
9636
+
9637
+ function getValidPosition(position, dragRange) {
9638
+ var x = position.x,
9639
+ y = position.y;
9640
+ var minX = dragRange.minX,
9641
+ maxX = dragRange.maxX,
9642
+ minY = dragRange.minY,
9643
+ maxY = dragRange.maxY;
9644
+ var newX = x < minX ? minX : x > maxX ? maxX : x;
9645
+ var newY = y < minY ? minY : y > maxY ? maxY : y;
9646
+ return {
9647
+ x: newX,
9648
+ y: newY
9649
+ };
9650
+ }
9651
+
9652
+ function isOutOfDragRange(position, dragRange) {
9653
+ var x = position.x,
9654
+ y = position.y;
9655
+ var minX = dragRange.minX,
9656
+ maxX = dragRange.maxX,
9657
+ minY = dragRange.minY,
9658
+ maxY = dragRange.maxY;
9659
+ return x > maxX || x < minX || y > maxY || y < minY;
9660
+ }
9661
+
9662
+ /***/ }),
9663
+
9035
9664
  /***/ "./components/table/pipeline/features/rowGrouping.tsx":
9036
9665
  /*!************************************************************!*\
9037
9666
  !*** ./components/table/pipeline/features/rowGrouping.tsx ***!
@@ -9860,10 +10489,29 @@ function sort() {
9860
10489
  title: col.title && col.title[0] ? col.title[0] : col.title
9861
10490
  })));
9862
10491
 
9863
- if (result.title && result.title[0]) {
9864
- result.title[0] = sortNode;
10492
+ var _sortNodeWithoutTitle = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_23___default.a.createElement(SortHeaderCell, {
10493
+ onToggle: function onToggle(e) {
10494
+ if (stopClickEventPropagation) {
10495
+ e.stopPropagation();
10496
+ }
10497
+
10498
+ toggle(col.code);
10499
+ },
10500
+ sortOrder: sortOrder,
10501
+ column: col,
10502
+ sortIndex: sortIndex,
10503
+ sortOptions: sortOptions
10504
+ }); // 开启标题行高自适应后,修改表头的渲染结构
10505
+
10506
+
10507
+ if (col.renderHeader) {
10508
+ result.title = col.renderHeader(result.title, _sortNodeWithoutTitle);
9865
10509
  } else {
9866
- result.title = sortNode;
10510
+ if (result.title && result.title[0]) {
10511
+ result.title[0] = sortNode;
10512
+ } else {
10513
+ result.title = sortNode;
10514
+ }
9867
10515
  }
9868
10516
  }
9869
10517