@kdcloudjs/table 1.2.0-canary.1 → 1.2.0-canary.11

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 (53) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +528 -51
  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 +10 -4
  17. package/es/table/pipeline/features/columnDrag.js +6 -1
  18. package/es/table/pipeline/features/columnFilter.js +17 -5
  19. package/es/table/pipeline/features/columnResizeWidth.js +3 -1
  20. package/es/table/pipeline/features/filter/DefaultFilterContent.d.ts +1 -1
  21. package/es/table/pipeline/features/filter/DefaultFilterContent.js +11 -5
  22. package/es/table/pipeline/features/filter/Filter.d.ts +4 -1
  23. package/es/table/pipeline/features/filter/Filter.js +4 -2
  24. package/es/table/pipeline/features/index.d.ts +1 -0
  25. package/es/table/pipeline/features/index.js +2 -1
  26. package/es/table/pipeline/features/multiSelect.js +31 -12
  27. package/es/table/pipeline/features/rowDrag.d.ts +30 -0
  28. package/es/table/pipeline/features/rowDrag.js +327 -0
  29. package/es/table/pipeline/features/sort.js +22 -3
  30. package/lib/locale/locale.d.ts +8 -4
  31. package/lib/locale/zh-CN.d.ts +8 -4
  32. package/lib/locale/zh-CN.js +10 -4
  33. package/lib/table/base/helpers/TableDOMUtils.js +17 -14
  34. package/lib/table/base/styles.d.ts +10 -0
  35. package/lib/table/base/styles.js +12 -2
  36. package/lib/table/base/table.js +38 -7
  37. package/lib/table/common-views.js +3 -1
  38. package/lib/table/interfaces.d.ts +5 -0
  39. package/lib/table/pipeline/features/autoFill.js +10 -4
  40. package/lib/table/pipeline/features/columnDrag.js +6 -1
  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/rowDrag.d.ts +30 -0
  51. package/lib/table/pipeline/features/rowDrag.js +349 -0
  52. package/lib/table/pipeline/features/sort.js +22 -3
  53. package/package.json +1 -1
@@ -60,6 +60,9 @@ var Classes = {
60
60
  stickyScrollItem: "".concat(prefix, "sticky-scroll-item"),
61
61
  horizontalScrollContainer: "".concat(prefix, "horizontal-scroll-container"),
62
62
  verticalScrollPlaceholder: "".concat(prefix, "vertical-scroll-placeholder"),
63
+ horizontalStickyScrollContainer: "".concat(prefix, "horizontal-sticky-scroll-container"),
64
+ horizontalScrollLeftSpacer: "".concat(prefix, "horizontal-scroll-left-spacer"),
65
+ horizontalScrollRightSpacer: "".concat(prefix, "horizontal-scroll-right-spacer"),
63
66
  lockShadowMask: "".concat(prefix, "lock-shadow-mask"),
64
67
  lockShadow: "".concat(prefix, "lock-shadow"),
65
68
  leftLockShadow: "".concat(prefix, "left-lock-shadow"),
@@ -102,7 +105,14 @@ var Classes = {
102
105
  collapsed: "".concat(prefix, "collapsed"),
103
106
  popup: "".concat(prefix, "popup"),
104
107
  popupHeader: "".concat(prefix, "popup-header"),
105
- popupBody: "".concat(prefix, "popup-body")
108
+ popupBody: "".concat(prefix, "popup-body"),
109
+ rowDragging: "".concat(prefix, "row-dragging"),
110
+ rowDragStart: "".concat(prefix, "row-drag-start"),
111
+ rowDragEnd: "".concat(prefix, "row-drag-end"),
112
+ rowDragEndToTop: "".concat(prefix, "row-drag-end-to-top"),
113
+ rowDragEndToBottom: "".concat(prefix, "row-drag-end-to-bottom"),
114
+ rowDragElement: "".concat(prefix, "row-drag-element"),
115
+ rowDragCell: "".concat(prefix, "row-drag-cell")
106
116
  };
107
117
  exports.Classes = Classes;
108
118
  var MenuClasses = {
@@ -159,7 +169,7 @@ exports.variableConst = variableConst;
159
169
  var notBorderedStyleMixin = (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
160
170
  var borderedStyleMixin = (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.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);
161
171
 
162
- var StyledArtTableWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.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);
172
+ var StyledArtTableWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.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);
163
173
 
164
174
  exports.StyledArtTableWrapper = StyledArtTableWrapper;
165
175
  var ButtonCSS = (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.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);
@@ -311,10 +311,14 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
311
311
 
312
312
  if (_lastHasScrollY !== this.hasScrollY) {
313
313
  (_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
314
- } // 设置子节点宽度
314
+ }
315
315
 
316
+ var _this$lastInfo = this.lastInfo,
317
+ leftLockTotalWidth = _this$lastInfo.leftLockTotalWidth,
318
+ rightLockTotalWidth = _this$lastInfo.rightLockTotalWidth;
319
+ var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth; // 设置子节点宽度
316
320
 
317
- stickyScrollItem.style.width = "".concat(innerTableWidth, "px");
321
+ stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth, "px");
318
322
  }
319
323
  }, {
320
324
  key: "renderTableHeader",
@@ -482,13 +486,25 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
482
486
  stickyBottom = _this$props5.stickyBottom;
483
487
  var hasScroll = this.state.hasScroll;
484
488
  return /*#__PURE__*/_react.default.createElement("div", {
485
- className: (0, _classnames.default)(_styles.Classes.stickyScroll, _styles.Classes.horizontalScrollContainer),
489
+ className: (0, _classnames.default)(_styles.Classes.horizontalScrollContainer, _styles.Classes.horizontalStickyScrollContainer)
490
+ }, /*#__PURE__*/_react.default.createElement("div", {
491
+ className: (0, _classnames.default)(_styles.Classes.horizontalScrollLeftSpacer),
492
+ style: {
493
+ width: info.leftLockTotalWidth
494
+ }
495
+ }), /*#__PURE__*/_react.default.createElement("div", {
496
+ className: (0, _classnames.default)(_styles.Classes.stickyScroll),
486
497
  style: {
487
498
  display: hasStickyScroll && hasScroll ? 'block' : 'none',
488
499
  bottom: stickyBottom
489
500
  }
490
501
  }, /*#__PURE__*/_react.default.createElement("div", {
491
502
  className: _styles.Classes.stickyScrollItem
503
+ })), /*#__PURE__*/_react.default.createElement("div", {
504
+ className: (0, _classnames.default)(_styles.Classes.horizontalScrollRightSpacer),
505
+ style: {
506
+ width: info.rightLockTotalWidth
507
+ }
492
508
  }));
493
509
  }
494
510
  }, {
@@ -569,7 +585,22 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
569
585
  }, {
570
586
  key: "componentDidUpdate",
571
587
  value: function componentDidUpdate(prevProps, prevState) {
572
- // console.log('did update start')
588
+ var _a; // console.log('did update start')
589
+
590
+
591
+ var _this$props8 = this.props,
592
+ cssVariables = _this$props8.cssVariables,
593
+ enableCSSVariables = _this$props8.enableCSSVariables,
594
+ bordered = _this$props8.bordered;
595
+
596
+ if (!(0, _utils.shallowEqual)(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
597
+ (0, _utils.cssPolifill)({
598
+ variables: cssVariables || {},
599
+ enableCSSVariables: enableCSSVariables,
600
+ bordered: bordered
601
+ });
602
+ }
603
+
573
604
  this.updateDOMHelper();
574
605
  this.props$.next(this.props);
575
606
  this.didMountOrUpdate(prevProps, prevState); // console.log('did update end')
@@ -798,9 +829,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
798
829
  key: "adjustNeedRenderLock",
799
830
  value: function adjustNeedRenderLock() {
800
831
  var needRenderLock = this.state.needRenderLock;
801
- var _this$lastInfo = this.lastInfo,
802
- flat = (0, _flat.default)(_this$lastInfo),
803
- hasLockColumn = _this$lastInfo.hasLockColumn;
832
+ var _this$lastInfo2 = this.lastInfo,
833
+ flat = (0, _flat.default)(_this$lastInfo2),
834
+ hasLockColumn = _this$lastInfo2.hasLockColumn;
804
835
 
805
836
  if (hasLockColumn) {
806
837
  var _context;
@@ -22,7 +22,9 @@ var _templateObject, _templateObject2, _templateObject3;
22
22
  var InlineFlexCell = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n"])));
23
23
 
24
24
  exports.InlineFlexCell = InlineFlexCell;
25
- var ExpansionCell = (0, _styledComponents.default)(InlineFlexCell)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.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"])), _styles.Classes.leaf, _styles.Classes.expanded);
25
+ var ExpansionCell = (0, _styledComponents.default)(function (props) {
26
+ return /*#__PURE__*/_react.default.createElement(InlineFlexCell, (0, _extends2.default)({}, props));
27
+ })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.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"])), _styles.Classes.leaf, _styles.Classes.expanded);
26
28
  exports.ExpansionCell = ExpansionCell;
27
29
 
28
30
  function CaretDownIcon(props) {
@@ -27,6 +27,8 @@ export interface ArtColumnStaticPart {
27
27
  features?: {
28
28
  [key: string]: any;
29
29
  };
30
+ /** 表头设置操作项到自定义操作区 */
31
+ renderHeader?: (title: ReactNode, opr: ReactNode) => ReactNode;
30
32
  }
31
33
  export interface Features {
32
34
  /** 是否开启排序功能 */
@@ -90,6 +92,9 @@ export interface FilterPanelProps {
90
92
  export interface DefaultFilterPanelProps extends FilterPanelProps {
91
93
  setFilterModel(filterItem?: Pick<FilterItem, 'filter' | 'filterCondition'>): void;
92
94
  filterModel: FilterItem;
95
+ localeText: {
96
+ [key: string]: string;
97
+ };
93
98
  }
94
99
  export interface CustomeFilterPanelProps extends FilterPanelProps {
95
100
  setFilter(filter?: any[]): void;
@@ -48,7 +48,8 @@ var autoFillTableWidth = function autoFillTableWidth() {
48
48
  // 保存剩余的flex总和和剩余宽度总和宽度
49
49
  var residualFlexCount = flexCount;
50
50
  var residualFlexWidth = remainingWidth;
51
- var columnSize = pipeline.getFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY) || {};
51
+ var columnSize = pipeline.getFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY);
52
+ var enableColumnResizeWidthFeature = !!columnSize;
52
53
  pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col, recursiveFlatMapInfo) {
53
54
  var isLeaf = recursiveFlatMapInfo.isLeaf;
54
55
 
@@ -67,12 +68,15 @@ var autoFillTableWidth = function autoFillTableWidth() {
67
68
  col.width = clamp(minWidth, preColWidth + (residualFlexCount === flex ? residualFlexWidth : usedRemainingWidth), maxWidth);
68
69
  residualFlexCount -= flex;
69
70
  residualFlexWidth -= col.width - preColWidth;
70
- columnSize[code] = col.width;
71
+
72
+ if (enableColumnResizeWidthFeature) {
73
+ columnSize[code] = col.width;
74
+ }
71
75
  }
72
76
 
73
77
  return col;
74
78
  }));
75
- pipeline.setFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY, columnSize);
79
+ enableColumnResizeWidthFeature && pipeline.setFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY, columnSize);
76
80
  }
77
81
  } else {
78
82
  // 未设置了flex宽度,创建占位列
@@ -149,7 +153,9 @@ function getColumnWidthSum(pipeline) {
149
153
  }
150
154
 
151
155
  function getTableRemainingWidth(pipeline) {
152
- var tableWidth = pipeline.getStateAtKey(tableWidthKey);
156
+ var _a, _b;
157
+
158
+ var tableWidth = ((_b = (_a = pipeline.ref.current.domHelper) === null || _a === void 0 ? void 0 : _a.tableBody) === null || _b === void 0 ? void 0 : _b.clientWidth) || pipeline.getStateAtKey(tableWidthKey);
153
159
  if (!tableWidth) return;
154
160
  var remainingWidth = Math.floor(tableWidth - getColumnWidthSum(pipeline));
155
161
  return remainingWidth > 0 ? remainingWidth : 0;
@@ -329,9 +329,14 @@ function columnDrag() {
329
329
  if (onColumnDragStopped) {
330
330
  var _context;
331
331
 
332
+ var isRowDragColumn = function isRowDragColumn(code) {
333
+ var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
334
+ return code === rowDragColumnKey;
335
+ };
336
+
332
337
  var newColumns = (0, _filter.default)(_context = sortColumns(columns, cloumnsSortData)).call(_context, function (_ref) {
333
338
  var code = _ref.code;
334
- return code !== _autoFill.FILL_COLUMN_CODE;
339
+ return code !== _autoFill.FILL_COLUMN_CODE && !isRowDragColumn(code);
335
340
  }); // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
336
341
 
337
342
  onColumnDragStopped(columnMoved, newColumns);
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.filter = filter;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
11
-
12
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
13
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
+
14
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
15
 
16
16
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
@@ -63,6 +63,7 @@ function filter() {
63
63
  var inputFiltersMap = new _map.default((0, _map2.default)(inputFilters).call(inputFilters, function (filterItem) {
64
64
  return [filterItem.code, (0, _extends2.default)({}, filterItem)];
65
65
  }));
66
+ var localeText = pipeline.ctx.localeText;
66
67
 
67
68
  function processColumns(columns) {
68
69
  return (0, _map2.default)(columns).call(columns, dfs);
@@ -75,7 +76,7 @@ function filter() {
75
76
  var filterActive = filterable && ((_c = (_b = inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : inputFiltersMap.get(col.code)) === null || _b === void 0 ? void 0 : (0, _filter.default)(_b)) === null || _c === void 0 ? void 0 : _c.length) > 0;
76
77
 
77
78
  if (filterable) {
78
- var _context, _context2, _cx;
79
+ var _cx;
79
80
 
80
81
  var handleFilterChanged = function handleFilterChanged(filterItem) {
81
82
  var nextFiltersMap = new _map.default(inputFiltersMap);
@@ -108,7 +109,8 @@ function filter() {
108
109
 
109
110
  var filterPanel = (_d = col.features) === null || _d === void 0 ? void 0 : _d.filterPanel;
110
111
  var colFilterIcon = (_f = (_e = col.features) === null || _e === void 0 ? void 0 : _e.filterIcon) !== null && _f !== void 0 ? _f : filterIcon;
111
- result.title = (0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)((0, _concat.default)(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [_internals.internals.safeRenderHeader((0, _extends2.default)({}, col))])), [/*#__PURE__*/_react.default.createElement(_filter2.Filter, {
112
+
113
+ var _Filter = /*#__PURE__*/_react.default.createElement(_filter2.Filter, {
112
114
  key: "filter",
113
115
  FilterPanelContent: filterPanel,
114
116
  filterIcon: colFilterIcon,
@@ -120,12 +122,22 @@ function filter() {
120
122
  stopClickEventPropagation: stopClickEventPropagation,
121
123
  stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
122
124
  hideFilterPopupHeader: hideFilterPopupHeader,
123
- getPopupParent: getPopupParent
124
- })]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
125
+ getPopupParent: getPopupParent,
126
+ localeText: localeText
127
+ });
128
+
129
+ if (col.renderHeader) {
130
+ result.title = col.renderHeader(result.title, _Filter);
131
+ } else {
132
+ var _context, _context2;
133
+
134
+ result.title = (0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)((0, _concat.default)(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [_internals.internals.safeRenderHeader((0, _extends2.default)({}, col))])), [_Filter]);
135
+ } // result.headerCellProps = mergeCellProps(col.headerCellProps, {
125
136
  // style: {
126
137
  // paddingRight: '18px'
127
138
  // }
128
139
  // })
140
+
129
141
  }
130
142
 
131
143
  if (!(0, _utils.isLeafNode)(col)) {
@@ -46,7 +46,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
46
46
 
47
47
  var TableHeaderCellResize = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.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"])));
48
48
 
49
- var TableHeaderGroupCellResize = (0, _styledComponents.default)(TableHeaderCellResize)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
49
+ var TableHeaderGroupCellResize = (0, _styledComponents.default)(function (props) {
50
+ return /*#__PURE__*/_react.default.createElement(TableHeaderCellResize, (0, _extends2.default)({}, props));
51
+ })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
50
52
 
51
53
  function clamp(min, x, max) {
52
54
  return Math.max(min, Math.min(max, x));
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { DefaultFilterPanelProps } from '../../../interfaces';
3
- declare function DefaultFilterContent({ setFilterModel, filterModel, hidePanel }: DefaultFilterPanelProps): JSX.Element;
3
+ declare function DefaultFilterContent({ setFilterModel, filterModel, hidePanel, localeText }: DefaultFilterPanelProps): JSX.Element;
4
4
  export default DefaultFilterContent;
@@ -48,7 +48,11 @@ function DefaultFilterContent(_ref) {
48
48
 
49
49
  var setFilterModel = _ref.setFilterModel,
50
50
  filterModel = _ref.filterModel,
51
- hidePanel = _ref.hidePanel;
51
+ hidePanel = _ref.hidePanel,
52
+ _ref$localeText = _ref.localeText,
53
+ localeText = _ref$localeText === void 0 ? {} : _ref$localeText;
54
+
55
+ var _a, _b;
52
56
 
53
57
  var _React$useState = _react.default.useState((filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterCondition) || 'contain'),
54
58
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
@@ -102,16 +106,18 @@ function DefaultFilterContent(_ref) {
102
106
  return /*#__PURE__*/_react.default.createElement(DefaultFilterContentStyle, null, /*#__PURE__*/_react.default.createElement("div", {
103
107
  className: 'filter-option-list'
104
108
  }, /*#__PURE__*/_react.default.createElement("ul", null, (0, _map.default)(_util.DEFAULT_FILTER_OPTIONS).call(_util.DEFAULT_FILTER_OPTIONS, function (option, index) {
109
+ var _a;
110
+
105
111
  return (
106
112
  /*#__PURE__*/
107
113
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
108
114
  _react.default.createElement("li", {
109
- key: index,
115
+ key: option.key,
110
116
  className: option.key === selectedValue ? 'active' : '',
111
117
  onClick: function onClick() {
112
118
  return handleClick(option);
113
119
  }
114
- }, option.title)
120
+ }, (_a = localeText[option.key]) !== null && _a !== void 0 ? _a : option.title)
115
121
  );
116
122
  }))), selectedValue !== 'notIsNull' && selectedValue !== 'isNull' && /*#__PURE__*/_react.default.createElement("div", {
117
123
  className: 'filter-search'
@@ -130,12 +136,12 @@ function DefaultFilterContent(_ref) {
130
136
  'filter-btn': true
131
137
  }, _styles.Classes.button, true)),
132
138
  onClick: reset
133
- }, "\u91CD\u7F6E"), /*#__PURE__*/_react.default.createElement("button", {
139
+ }, (_a = localeText.resetFilter) !== null && _a !== void 0 ? _a : '重置'), /*#__PURE__*/_react.default.createElement("button", {
134
140
  className: (0, _classnames.default)((_cx2 = {
135
141
  'filter-btn': true
136
142
  }, (0, _defineProperty2.default)(_cx2, _styles.Classes.button, true), (0, _defineProperty2.default)(_cx2, _styles.Classes.buttonPrimary, true), _cx2)),
137
143
  onClick: confirm
138
- }, "\u786E\u5B9A")));
144
+ }, (_b = localeText.confirmFilter) !== null && _b !== void 0 ? _b : '确定')));
139
145
  }
140
146
 
141
147
  var _default = DefaultFilterContent;
@@ -15,6 +15,9 @@ interface FilterProps {
15
15
  stopESCKeyDownEventPropagation?: boolean;
16
16
  hideFilterPopupHeader?: boolean;
17
17
  getPopupParent?: (triggerElement: HTMLElement) => HTMLElement;
18
+ localeText?: {
19
+ [key: string]: string;
20
+ };
18
21
  }
19
- declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, stopESCKeyDownEventPropagation, hideFilterPopupHeader, getPopupParent }: FilterProps): JSX.Element;
22
+ declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, stopESCKeyDownEventPropagation, hideFilterPopupHeader, getPopupParent, localeText }: FilterProps): JSX.Element;
20
23
  export default Filter;
@@ -110,7 +110,8 @@ function Filter(_ref2) {
110
110
  stopClickEventPropagation = _ref2.stopClickEventPropagation,
111
111
  stopESCKeyDownEventPropagation = _ref2.stopESCKeyDownEventPropagation,
112
112
  hideFilterPopupHeader = _ref2.hideFilterPopupHeader,
113
- getPopupParent = _ref2.getPopupParent;
113
+ getPopupParent = _ref2.getPopupParent,
114
+ localeText = _ref2.localeText;
114
115
 
115
116
  var _React$useState3 = _react.default.useState(false),
116
117
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
@@ -138,7 +139,8 @@ function Filter(_ref2) {
138
139
  setFilterModel: setFilterModel,
139
140
  filterModel: filterModel,
140
141
  isFilterActive: isFilterActive,
141
- hidePanel: hidePanel
142
+ hidePanel: hidePanel,
143
+ localeText: localeText
142
144
  });
143
145
  }
144
146
  };
@@ -18,3 +18,4 @@ export { rangeSelection, RangeSelectionFeatureOptions } from './rangeSelection';
18
18
  export { mergeCellHover } from './mergeCellHover';
19
19
  export { footerDataSource, FooterDataSourceFeatureOptions, footerRowMetaSymbol } from './footerDataSource';
20
20
  export { colGroupExtendable, colGroupExtendOption } from './colGroupExtendable';
21
+ export { rowDrag, RowDragFeatureOptions } from './rowDrag';
@@ -97,6 +97,12 @@ Object.defineProperty(exports, "rowDetail", {
97
97
  return _rowDetail.rowDetail;
98
98
  }
99
99
  });
100
+ Object.defineProperty(exports, "rowDrag", {
101
+ enumerable: true,
102
+ get: function get() {
103
+ return _rowDrag.rowDrag;
104
+ }
105
+ });
100
106
  Object.defineProperty(exports, "rowGrouping", {
101
107
  enumerable: true,
102
108
  get: function get() {
@@ -178,4 +184,6 @@ var _mergeCellHover = require("./mergeCellHover");
178
184
 
179
185
  var _footerDataSource = require("./footerDataSource");
180
186
 
181
- var _colGroupExtendable = require("./colGroupExtendable");
187
+ var _colGroupExtendable = require("./colGroupExtendable");
188
+
189
+ var _rowDrag = require("./rowDrag");
@@ -23,6 +23,10 @@ var _others = require("../../utils/others");
23
23
 
24
24
  var _utils = require("../../utils");
25
25
 
26
+ var fullRowsSetKey = 'fullRowsSetKey';
27
+ var allEnableKeys = 'allEnableKeys';
28
+ var selectValueSetKey = 'selectValueSetKey';
29
+
26
30
  function multiSelect() {
27
31
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28
32
  return function multiSelectStep(pipeline) {
@@ -53,10 +57,9 @@ function multiSelect() {
53
57
  action: action
54
58
  });
55
59
  };
56
-
57
- var dataSource = pipeline.getDataSource();
58
60
  /** dataSource 中包含的所有 keys */
59
61
 
62
+
60
63
  var fullKeySet = new _set.default();
61
64
  /** 所有有效的 keys(disable 状态为 false) */
62
65
 
@@ -65,7 +68,7 @@ function multiSelect() {
65
68
  var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
66
69
 
67
70
  var isAnyChecked = false;
68
- var flatDataSource = (0, _utils.collectNodes)(dataSource);
71
+ var flatDataSource = (0, _utils.collectNodes)(pipeline.getDataSource());
69
72
  flatDataSource.forEach(function (row, rowIndex) {
70
73
  var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
71
74
 
@@ -94,6 +97,8 @@ function multiSelect() {
94
97
  checked: isAllChecked,
95
98
  indeterminate: !isAllChecked && isAnyChecked,
96
99
  onChange: function onChange(_) {
100
+ var allKeys = pipeline.getFeatureOptions(allEnableKeys);
101
+
97
102
  if (isAllChecked) {
98
103
  _onChange(_others.arrayUtils.diff(value, allKeys), '', allKeys, 'uncheck-all');
99
104
  } else {
@@ -115,9 +120,11 @@ function multiSelect() {
115
120
 
116
121
  var checkboxCellProps = {};
117
122
  var preCellProps = (_b = (_a = opts.checkboxColumn) === null || _a === void 0 ? void 0 : _a.getCellProps) === null || _b === void 0 ? void 0 : _b.call(_a, value, row, rowIndex);
123
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _set.default();
124
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
118
125
 
119
- if (fullKeySet.has(rowKey) && clickArea === 'cell') {
120
- var prevChecked = set.has(rowKey);
126
+ if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
127
+ var prevChecked = selectValueSet.has(rowKey);
121
128
  var disabled = isDisabled(row, rowIndex);
122
129
  checkboxCellProps = {
123
130
  style: {
@@ -142,7 +149,8 @@ function multiSelect() {
142
149
 
143
150
  var key = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
144
151
 
145
- var checked = set.has(key);
152
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
153
+ var checked = selectValueSet.has(key);
146
154
  return /*#__PURE__*/_react.default.createElement(Checkbox, {
147
155
  checked: checked,
148
156
  disabled: isDisabled(row, rowIndex),
@@ -180,7 +188,9 @@ function multiSelect() {
180
188
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
181
189
  var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
182
190
 
183
- if (!fullKeySet.has(rowKey)) {
191
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _set.default();
192
+
193
+ if (!fullRowsSet.has(rowKey)) {
184
194
  // rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
185
195
  return;
186
196
  }
@@ -188,7 +198,8 @@ function multiSelect() {
188
198
  var style = {};
189
199
  var className;
190
200
  var onClick;
191
- var checked = set.has(rowKey);
201
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
202
+ var checked = selectValueSet.has(rowKey);
192
203
 
193
204
  if (opts.highlightRowWhenSelected && checked) {
194
205
  className = 'highlight';
@@ -215,22 +226,32 @@ function multiSelect() {
215
226
  style: style,
216
227
  onClick: onClick
217
228
  };
218
- });
229
+ }); // 只保留一份到pipeline, 避免行数据过多时内容被握住
230
+
231
+ pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
232
+ pipeline.setFeatureOptions(allEnableKeys, allKeys);
233
+ pipeline.setFeatureOptions(selectValueSetKey, set);
234
+ fullKeySet = null;
235
+ allKeys = null;
236
+ set = null;
219
237
  return pipeline;
220
238
 
221
239
  function onCheckboxChange(prevChecked, key, batch) {
222
240
  var batchKeys = [key];
223
241
 
224
242
  if (batch && lastKey) {
225
- var lastIdx = allKeys.indexOf(lastKey);
226
- var cntIdx = allKeys.indexOf(key);
243
+ var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
244
+
245
+ var lastIdx = _allKeys.indexOf(lastKey);
246
+
247
+ var cntIdx = _allKeys.indexOf(key);
227
248
 
228
249
  var _ref = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
229
250
  _ref2 = (0, _slicedToArray2.default)(_ref, 2),
230
251
  start = _ref2[0],
231
252
  end = _ref2[1];
232
253
 
233
- batchKeys = (0, _slice.default)(allKeys).call(allKeys, start, end + 1);
254
+ batchKeys = (0, _slice.default)(_allKeys).call(_allKeys, start, end + 1);
234
255
  }
235
256
 
236
257
  if (prevChecked) {
@@ -0,0 +1,30 @@
1
+ import { TablePipeline } from '../pipeline';
2
+ import { ArtColumn } from '../../interfaces';
3
+ interface RowDragEvent {
4
+ startRowIndex: number;
5
+ startRow: any;
6
+ endRowIndex: number;
7
+ endRow: any;
8
+ isFinished: boolean;
9
+ dragPosition: string;
10
+ }
11
+ export interface RowDragFeatureOptions {
12
+ /** 拖拽开始事件 */
13
+ onDragStart?: (event: RowDragEvent) => void;
14
+ /** 拖拽移动事件 */
15
+ onDragMove?: (event: RowDragEvent) => void;
16
+ /** 拖拽结束事件 */
17
+ onDragEnd?: (event: RowDragEvent) => void;
18
+ /** 判断一行是否要禁用拖拽 */
19
+ isDisabled?: (row: any, rowIndex: number) => boolean;
20
+ /** 拖拽列定义 */
21
+ rowDragColumn?: ArtColumn;
22
+ /** 行高 */
23
+ rowHeight?: number;
24
+ /** 拖拽过程中是否禁止滚动条滚动 */
25
+ suppressScrollMove?: boolean;
26
+ }
27
+ export declare const ROW_DRAG_COLUMN_CODE = "$_row_drag_column_&";
28
+ export declare const rowDragKey = "rowDragKey";
29
+ export declare function rowDrag(opt: RowDragFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
30
+ export {};