@kdcloudjs/table 1.2.0-canary.1 → 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 (51) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +517 -49
  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/rowDrag.d.ts +28 -0
  27. package/es/table/pipeline/features/rowDrag.js +325 -0
  28. package/es/table/pipeline/features/sort.js +22 -3
  29. package/lib/locale/locale.d.ts +8 -4
  30. package/lib/locale/zh-CN.d.ts +8 -4
  31. package/lib/locale/zh-CN.js +10 -4
  32. package/lib/table/base/helpers/TableDOMUtils.js +17 -14
  33. package/lib/table/base/styles.d.ts +10 -0
  34. package/lib/table/base/styles.js +12 -2
  35. package/lib/table/base/table.js +38 -7
  36. package/lib/table/common-views.js +3 -1
  37. package/lib/table/interfaces.d.ts +5 -0
  38. package/lib/table/pipeline/features/autoFill.js +7 -3
  39. package/lib/table/pipeline/features/columnFilter.js +18 -6
  40. package/lib/table/pipeline/features/columnResizeWidth.js +3 -1
  41. package/lib/table/pipeline/features/filter/DefaultFilterContent.d.ts +1 -1
  42. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +11 -5
  43. package/lib/table/pipeline/features/filter/Filter.d.ts +4 -1
  44. package/lib/table/pipeline/features/filter/Filter.js +4 -2
  45. package/lib/table/pipeline/features/index.d.ts +1 -0
  46. package/lib/table/pipeline/features/index.js +9 -1
  47. package/lib/table/pipeline/features/multiSelect.js +33 -12
  48. package/lib/table/pipeline/features/rowDrag.d.ts +28 -0
  49. package/lib/table/pipeline/features/rowDrag.js +347 -0
  50. package/lib/table/pipeline/features/sort.js +22 -3
  51. package/package.json +1 -1
@@ -26,10 +26,14 @@ declare class LocaleCache {
26
26
  */
27
27
  setLocalesData(locale: string, localeData?: LocaleDataType): {
28
28
  locale: string;
29
- 'global.selectholder': string;
30
- 'global.placeholder': string;
31
- 'global.cancel': string;
32
- 'global.confirm': string;
29
+ contain: string;
30
+ notContain: string;
31
+ equal: string;
32
+ notEqual: string;
33
+ isNull: string;
34
+ notIsNull: string;
35
+ resetFilter: string;
36
+ confirmFilter: string;
33
37
  };
34
38
  /**
35
39
  * 获取当前语言包数据
@@ -1,8 +1,12 @@
1
1
  declare const locale: {
2
2
  locale: string;
3
- 'global.selectholder': string;
4
- 'global.placeholder': string;
5
- 'global.cancel': string;
6
- 'global.confirm': string;
3
+ contain: string;
4
+ notContain: string;
5
+ equal: string;
6
+ notEqual: string;
7
+ isNull: string;
8
+ notIsNull: string;
9
+ resetFilter: string;
10
+ confirmFilter: string;
7
11
  };
8
12
  export default locale;
@@ -1,8 +1,14 @@
1
1
  var locale = {
2
2
  locale: 'zh-CN',
3
- 'global.selectholder': '请选择',
4
- 'global.placeholder': '请输入...',
5
- 'global.cancel': '取消',
6
- 'global.confirm': '确定'
3
+ // Text Filter
4
+ contain: '包含',
5
+ notContain: '不包含',
6
+ equal: '等于',
7
+ notEqual: '不等于',
8
+ isNull: '为空',
9
+ notIsNull: '不为空',
10
+ // filter button
11
+ resetFilter: '重置',
12
+ confirmFilter: '确定'
7
13
  };
8
14
  export default locale;
@@ -44,7 +44,8 @@ import { Classes } from '../styles'; // 表格 DOM 结构
44
44
  export var TableDOMHelper = /*#__PURE__*/function () {
45
45
  function TableDOMHelper(artTableWrapper) {
46
46
  var _this = this,
47
- _context2;
47
+ _context2,
48
+ _context3;
48
49
 
49
50
  _classCallCheck(this, TableDOMHelper);
50
51
 
@@ -91,7 +92,7 @@ export var TableDOMHelper = /*#__PURE__*/function () {
91
92
  this.tableFooter = this.artTable.querySelector(".".concat(Classes.tableFooter));
92
93
  this.tableFooterMain = this.artTable.querySelector(".".concat(Classes.tableFooterMain));
93
94
 
94
- var stickyScrollSelector = _concatInstanceProperty(_context2 = ".".concat(Classes.artTable, " + .")).call(_context2, Classes.stickyScroll);
95
+ var stickyScrollSelector = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = ".".concat(Classes.artTable, " + .")).call(_context3, Classes.horizontalStickyScrollContainer, " .")).call(_context2, Classes.stickyScroll);
95
96
 
96
97
  this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
97
98
  this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(Classes.stickyScrollItem));
@@ -105,35 +106,37 @@ export var TableDOMHelper = /*#__PURE__*/function () {
105
106
  }, {
106
107
  key: "getTableRows",
107
108
  value: function getTableRows() {
108
- var _context3;
109
+ var _context4;
109
110
 
110
- var tbody = this.artTable.querySelector(_concatInstanceProperty(_context3 = ".".concat(Classes.tableBody, " .")).call(_context3, Classes.virtual, " table tbody"));
111
+ var tbody = this.artTable.querySelector(_concatInstanceProperty(_context4 = ".".concat(Classes.tableBody, " .")).call(_context4, Classes.virtual, " table tbody"));
111
112
  return tbody.childNodes;
112
113
  }
113
114
  }, {
114
115
  key: "getTableBodyHtmlTable",
115
116
  value: function getTableBodyHtmlTable() {
116
- var _context4;
117
+ var _context5;
117
118
 
118
- return this.artTable.querySelector(_concatInstanceProperty(_context4 = ".".concat(Classes.tableBody, " .")).call(_context4, Classes.virtual, " table"));
119
+ return this.artTable.querySelector(_concatInstanceProperty(_context5 = ".".concat(Classes.tableBody, " .")).call(_context5, Classes.virtual, " table"));
119
120
  }
120
121
  }, {
121
122
  key: "getLeftLockShadow",
122
123
  value: function getLeftLockShadow() {
123
- var _context5;
124
+ var _context6;
124
125
 
125
- var selector = _concatInstanceProperty(_context5 = ".".concat(Classes.lockShadowMask, " .")).call(_context5, Classes.leftLockShadow);
126
+ var selector = _concatInstanceProperty(_context6 = ".".concat(Classes.lockShadowMask, " .")).call(_context6, Classes.leftLockShadow);
126
127
 
127
- return this.artTable.querySelector(selector);
128
+ var allLeftLockShadow = this.artTable.querySelectorAll(selector);
129
+ return allLeftLockShadow[allLeftLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
128
130
  }
129
131
  }, {
130
132
  key: "getRightLockShadow",
131
133
  value: function getRightLockShadow() {
132
- var _context6;
134
+ var _context7;
133
135
 
134
- var selector = _concatInstanceProperty(_context6 = ".".concat(Classes.lockShadowMask, " .")).call(_context6, Classes.rightLockShadow);
136
+ var selector = _concatInstanceProperty(_context7 = ".".concat(Classes.lockShadowMask, " .")).call(_context7, Classes.rightLockShadow);
135
137
 
136
- return this.artTable.querySelector(selector);
138
+ var allRightLockShadow = this.artTable.querySelectorAll(selector);
139
+ return allRightLockShadow[allRightLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
137
140
  }
138
141
  }, {
139
142
  key: "getLoadingIndicator",
@@ -143,11 +146,11 @@ export var TableDOMHelper = /*#__PURE__*/function () {
143
146
  }, {
144
147
  key: "getRowTop",
145
148
  value: function getRowTop(rowIndex) {
146
- var _context7, _context8;
149
+ var _context8, _context9;
147
150
 
148
151
  if (rowIndex === 0) return 0;
149
152
 
150
- var selector = _concatInstanceProperty(_context7 = _concatInstanceProperty(_context8 = ".".concat(Classes.tableBody, " .")).call(_context8, Classes.tableRow, "[data-rowindex=\"")).call(_context7, rowIndex, "\"]");
153
+ var selector = _concatInstanceProperty(_context8 = _concatInstanceProperty(_context9 = ".".concat(Classes.tableBody, " .")).call(_context9, Classes.tableRow, "[data-rowindex=\"")).call(_context8, rowIndex, "\"]");
151
154
 
152
155
  var row = this.artTable.querySelector(selector);
153
156
  var rowOffsetTop = row && row.offsetTop || 0;
@@ -25,6 +25,9 @@ export declare const Classes: {
25
25
  readonly stickyScrollItem: string;
26
26
  readonly horizontalScrollContainer: string;
27
27
  readonly verticalScrollPlaceholder: string;
28
+ readonly horizontalStickyScrollContainer: string;
29
+ readonly horizontalScrollLeftSpacer: string;
30
+ readonly horizontalScrollRightSpacer: string;
28
31
  readonly lockShadowMask: string;
29
32
  readonly lockShadow: string;
30
33
  readonly leftLockShadow: string;
@@ -67,6 +70,13 @@ export declare const Classes: {
67
70
  readonly popup: string;
68
71
  readonly popupHeader: string;
69
72
  readonly popupBody: string;
73
+ readonly rowDragging: string;
74
+ readonly rowDragStart: string;
75
+ readonly rowDragEnd: string;
76
+ readonly rowDragEndToTop: string;
77
+ readonly rowDragEndToBottom: string;
78
+ readonly rowDragElement: string;
79
+ readonly rowDragCell: string;
70
80
  };
71
81
  export declare const MenuClasses: {
72
82
  menu: string;
@@ -37,6 +37,9 @@ export var Classes = {
37
37
  stickyScrollItem: "".concat(prefix, "sticky-scroll-item"),
38
38
  horizontalScrollContainer: "".concat(prefix, "horizontal-scroll-container"),
39
39
  verticalScrollPlaceholder: "".concat(prefix, "vertical-scroll-placeholder"),
40
+ horizontalStickyScrollContainer: "".concat(prefix, "horizontal-sticky-scroll-container"),
41
+ horizontalScrollLeftSpacer: "".concat(prefix, "horizontal-scroll-left-spacer"),
42
+ horizontalScrollRightSpacer: "".concat(prefix, "horizontal-scroll-right-spacer"),
40
43
  lockShadowMask: "".concat(prefix, "lock-shadow-mask"),
41
44
  lockShadow: "".concat(prefix, "lock-shadow"),
42
45
  leftLockShadow: "".concat(prefix, "left-lock-shadow"),
@@ -79,7 +82,14 @@ export var Classes = {
79
82
  collapsed: "".concat(prefix, "collapsed"),
80
83
  popup: "".concat(prefix, "popup"),
81
84
  popupHeader: "".concat(prefix, "popup-header"),
82
- popupBody: "".concat(prefix, "popup-body")
85
+ popupBody: "".concat(prefix, "popup-body"),
86
+ rowDragging: "".concat(prefix, "row-dragging"),
87
+ rowDragStart: "".concat(prefix, "row-drag-start"),
88
+ rowDragEnd: "".concat(prefix, "row-drag-end"),
89
+ rowDragEndToTop: "".concat(prefix, "row-drag-end-to-top"),
90
+ rowDragEndToBottom: "".concat(prefix, "row-drag-end-to-bottom"),
91
+ rowDragElement: "".concat(prefix, "row-drag-element"),
92
+ rowDragCell: "".concat(prefix, "row-drag-cell")
83
93
  };
84
94
  export var MenuClasses = {
85
95
  menu: "".concat(prefix, "table-menu"),
@@ -131,7 +141,7 @@ export var defaultCSSVariables = {
131
141
  export var variableConst = getCssVariableText(defaultCSSVariables);
132
142
  var notBorderedStyleMixin = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
133
143
  var borderedStyleMixin = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\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);
134
- export var StyledArtTableWrapper = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\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);
144
+ export var StyledArtTableWrapper = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\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);
135
145
  export var ButtonCSS = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\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);
136
146
 
137
147
  function getCssVariableText(obj) {
@@ -260,10 +260,14 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
260
260
 
261
261
  if (_lastHasScrollY !== this.hasScrollY) {
262
262
  (_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
263
- } // 设置子节点宽度
263
+ }
264
264
 
265
+ var _this$lastInfo = this.lastInfo,
266
+ leftLockTotalWidth = _this$lastInfo.leftLockTotalWidth,
267
+ rightLockTotalWidth = _this$lastInfo.rightLockTotalWidth;
268
+ var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth; // 设置子节点宽度
265
269
 
266
- stickyScrollItem.style.width = "".concat(innerTableWidth, "px");
270
+ stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth, "px");
267
271
  }
268
272
  }, {
269
273
  key: "renderTableHeader",
@@ -433,13 +437,25 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
433
437
  stickyBottom = _this$props5.stickyBottom;
434
438
  var hasScroll = this.state.hasScroll;
435
439
  return /*#__PURE__*/React.createElement("div", {
436
- className: cx(Classes.stickyScroll, Classes.horizontalScrollContainer),
440
+ className: cx(Classes.horizontalScrollContainer, Classes.horizontalStickyScrollContainer)
441
+ }, /*#__PURE__*/React.createElement("div", {
442
+ className: cx(Classes.horizontalScrollLeftSpacer),
443
+ style: {
444
+ width: info.leftLockTotalWidth
445
+ }
446
+ }), /*#__PURE__*/React.createElement("div", {
447
+ className: cx(Classes.stickyScroll),
437
448
  style: {
438
449
  display: hasStickyScroll && hasScroll ? 'block' : 'none',
439
450
  bottom: stickyBottom
440
451
  }
441
452
  }, /*#__PURE__*/React.createElement("div", {
442
453
  className: Classes.stickyScrollItem
454
+ })), /*#__PURE__*/React.createElement("div", {
455
+ className: cx(Classes.horizontalScrollRightSpacer),
456
+ style: {
457
+ width: info.rightLockTotalWidth
458
+ }
443
459
  }));
444
460
  }
445
461
  }, {
@@ -522,7 +538,22 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
522
538
  }, {
523
539
  key: "componentDidUpdate",
524
540
  value: function componentDidUpdate(prevProps, prevState) {
525
- // console.log('did update start')
541
+ var _a; // console.log('did update start')
542
+
543
+
544
+ var _this$props8 = this.props,
545
+ cssVariables = _this$props8.cssVariables,
546
+ enableCSSVariables = _this$props8.enableCSSVariables,
547
+ bordered = _this$props8.bordered;
548
+
549
+ if (!shallowEqual(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
550
+ cssPolifill({
551
+ variables: cssVariables || {},
552
+ enableCSSVariables: enableCSSVariables,
553
+ bordered: bordered
554
+ });
555
+ }
556
+
526
557
  this.updateDOMHelper();
527
558
  this.props$.next(this.props);
528
559
  this.didMountOrUpdate(prevProps, prevState); // console.log('did update end')
@@ -752,9 +783,9 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
752
783
  value: function adjustNeedRenderLock() {
753
784
  var needRenderLock = this.state.needRenderLock;
754
785
 
755
- var _this$lastInfo = this.lastInfo,
756
- flat = _flatInstanceProperty(_this$lastInfo),
757
- hasLockColumn = _this$lastInfo.hasLockColumn;
786
+ var _this$lastInfo2 = this.lastInfo,
787
+ flat = _flatInstanceProperty(_this$lastInfo2),
788
+ hasLockColumn = _this$lastInfo2.hasLockColumn;
758
789
 
759
790
  if (hasLockColumn) {
760
791
  var _context;
@@ -7,7 +7,9 @@ import React from 'react';
7
7
  import styled from 'styled-components';
8
8
  import { MenuClasses, Classes } from './base/styles';
9
9
  export var InlineFlexCell = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n"])));
10
- export var ExpansionCell = styled(InlineFlexCell)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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"])), Classes.leaf, Classes.expanded);
10
+ export var ExpansionCell = styled(function (props) {
11
+ return /*#__PURE__*/React.createElement(InlineFlexCell, _extends({}, props));
12
+ })(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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"])), Classes.leaf, Classes.expanded);
11
13
 
12
14
  function CaretDownIcon(props) {
13
15
  return /*#__PURE__*/React.createElement("svg", _extends({
@@ -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;
@@ -27,7 +27,8 @@ export var autoFillTableWidth = function autoFillTableWidth() {
27
27
  // 保存剩余的flex总和和剩余宽度总和宽度
28
28
  var residualFlexCount = flexCount;
29
29
  var residualFlexWidth = remainingWidth;
30
- var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY) || {};
30
+ var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
31
+ var enableColumnResizeWidthFeature = !!columnSize;
31
32
  pipeline.mapColumns(makeRecursiveMapper(function (col, recursiveFlatMapInfo) {
32
33
  var isLeaf = recursiveFlatMapInfo.isLeaf;
33
34
 
@@ -46,12 +47,15 @@ export var autoFillTableWidth = function autoFillTableWidth() {
46
47
  col.width = clamp(minWidth, preColWidth + (residualFlexCount === flex ? residualFlexWidth : usedRemainingWidth), maxWidth);
47
48
  residualFlexCount -= flex;
48
49
  residualFlexWidth -= col.width - preColWidth;
49
- columnSize[code] = col.width;
50
+
51
+ if (enableColumnResizeWidthFeature) {
52
+ columnSize[code] = col.width;
53
+ }
50
54
  }
51
55
 
52
56
  return col;
53
57
  }));
54
- pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
58
+ enableColumnResizeWidthFeature && pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
55
59
  }
56
60
  } else {
57
61
  // 未设置了flex宽度,创建占位列
@@ -1,5 +1,5 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
1
  import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
3
  import _extends from "@babel/runtime-corejs3/helpers/extends";
4
4
  import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
5
5
  import _Map from "@babel/runtime-corejs3/core-js-stable/map";
@@ -37,6 +37,7 @@ export function filter() {
37
37
  var inputFiltersMap = new _Map(_mapInstanceProperty(inputFilters).call(inputFilters, function (filterItem) {
38
38
  return [filterItem.code, _extends({}, filterItem)];
39
39
  }));
40
+ var localeText = pipeline.ctx.localeText;
40
41
 
41
42
  function processColumns(columns) {
42
43
  return _mapInstanceProperty(columns).call(columns, dfs);
@@ -50,7 +51,7 @@ export function filter() {
50
51
  var filterActive = filterable && ((_c = (_b = inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : inputFiltersMap.get(col.code)) === null || _b === void 0 ? void 0 : _filterInstanceProperty(_b)) === null || _c === void 0 ? void 0 : _c.length) > 0;
51
52
 
52
53
  if (filterable) {
53
- var _context, _context2, _cx;
54
+ var _cx;
54
55
 
55
56
  var handleFilterChanged = function handleFilterChanged(filterItem) {
56
57
  var nextFiltersMap = new _Map(inputFiltersMap);
@@ -85,7 +86,8 @@ export function filter() {
85
86
 
86
87
  var filterPanel = (_d = col.features) === null || _d === void 0 ? void 0 : _d.filterPanel;
87
88
  var colFilterIcon = (_f = (_e = col.features) === null || _e === void 0 ? void 0 : _e.filterIcon) !== null && _f !== void 0 ? _f : filterIcon;
88
- result.title = _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(_concatInstanceProperty(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [internals.safeRenderHeader(_extends({}, col))])), [/*#__PURE__*/React.createElement(Filter, {
89
+
90
+ var _Filter = /*#__PURE__*/React.createElement(Filter, {
89
91
  key: "filter",
90
92
  FilterPanelContent: filterPanel,
91
93
  filterIcon: colFilterIcon,
@@ -97,12 +99,22 @@ export function filter() {
97
99
  stopClickEventPropagation: stopClickEventPropagation,
98
100
  stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
99
101
  hideFilterPopupHeader: hideFilterPopupHeader,
100
- getPopupParent: getPopupParent
101
- })]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
102
+ getPopupParent: getPopupParent,
103
+ localeText: localeText
104
+ });
105
+
106
+ if (col.renderHeader) {
107
+ result.title = col.renderHeader(result.title, _Filter);
108
+ } else {
109
+ var _context, _context2;
110
+
111
+ result.title = _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(_concatInstanceProperty(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [internals.safeRenderHeader(_extends({}, col))])), [_Filter]);
112
+ } // result.headerCellProps = mergeCellProps(col.headerCellProps, {
102
113
  // style: {
103
114
  // paddingRight: '18px'
104
115
  // }
105
116
  // })
117
+
106
118
  }
107
119
 
108
120
  if (!isLeafNode(col)) {
@@ -14,7 +14,9 @@ import { mergeCellProps, collectNodes, makeRecursiveMapper, isGroupColumn } from
14
14
  import { internals } from '../../internals';
15
15
  import { Classes } from '../../base/styles';
16
16
  var TableHeaderCellResize = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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"])));
17
- var TableHeaderGroupCellResize = styled(TableHeaderCellResize)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
17
+ var TableHeaderGroupCellResize = styled(function (props) {
18
+ return /*#__PURE__*/React.createElement(TableHeaderCellResize, _extends({}, props));
19
+ })(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
18
20
 
19
21
  function clamp(min, x, max) {
20
22
  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;
@@ -19,7 +19,11 @@ function DefaultFilterContent(_ref) {
19
19
 
20
20
  var setFilterModel = _ref.setFilterModel,
21
21
  filterModel = _ref.filterModel,
22
- hidePanel = _ref.hidePanel;
22
+ hidePanel = _ref.hidePanel,
23
+ _ref$localeText = _ref.localeText,
24
+ localeText = _ref$localeText === void 0 ? {} : _ref$localeText;
25
+
26
+ var _a, _b;
23
27
 
24
28
  var _React$useState = React.useState((filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterCondition) || 'contain'),
25
29
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -72,16 +76,18 @@ function DefaultFilterContent(_ref) {
72
76
  return /*#__PURE__*/React.createElement(DefaultFilterContentStyle, null, /*#__PURE__*/React.createElement("div", {
73
77
  className: 'filter-option-list'
74
78
  }, /*#__PURE__*/React.createElement("ul", null, _mapInstanceProperty(DEFAULT_FILTER_OPTIONS).call(DEFAULT_FILTER_OPTIONS, function (option, index) {
79
+ var _a;
80
+
75
81
  return (
76
82
  /*#__PURE__*/
77
83
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
78
84
  React.createElement("li", {
79
- key: index,
85
+ key: option.key,
80
86
  className: option.key === selectedValue ? 'active' : '',
81
87
  onClick: function onClick() {
82
88
  return handleClick(option);
83
89
  }
84
- }, option.title)
90
+ }, (_a = localeText[option.key]) !== null && _a !== void 0 ? _a : option.title)
85
91
  );
86
92
  }))), selectedValue !== 'notIsNull' && selectedValue !== 'isNull' && /*#__PURE__*/React.createElement("div", {
87
93
  className: 'filter-search'
@@ -100,12 +106,12 @@ function DefaultFilterContent(_ref) {
100
106
  'filter-btn': true
101
107
  }, Classes.button, true)),
102
108
  onClick: reset
103
- }, "\u91CD\u7F6E"), /*#__PURE__*/React.createElement("button", {
109
+ }, (_a = localeText.resetFilter) !== null && _a !== void 0 ? _a : '重置'), /*#__PURE__*/React.createElement("button", {
104
110
  className: cx((_cx2 = {
105
111
  'filter-btn': true
106
112
  }, _defineProperty(_cx2, Classes.button, true), _defineProperty(_cx2, Classes.buttonPrimary, true), _cx2)),
107
113
  onClick: confirm
108
- }, "\u786E\u5B9A")));
114
+ }, (_b = localeText.confirmFilter) !== null && _b !== void 0 ? _b : '确定')));
109
115
  }
110
116
 
111
117
  export 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;
@@ -77,7 +77,8 @@ function Filter(_ref2) {
77
77
  stopClickEventPropagation = _ref2.stopClickEventPropagation,
78
78
  stopESCKeyDownEventPropagation = _ref2.stopESCKeyDownEventPropagation,
79
79
  hideFilterPopupHeader = _ref2.hideFilterPopupHeader,
80
- getPopupParent = _ref2.getPopupParent;
80
+ getPopupParent = _ref2.getPopupParent,
81
+ localeText = _ref2.localeText;
81
82
 
82
83
  var _React$useState3 = React.useState(false),
83
84
  _React$useState4 = _slicedToArray(_React$useState3, 2),
@@ -104,7 +105,8 @@ function Filter(_ref2) {
104
105
  setFilterModel: setFilterModel,
105
106
  filterModel: filterModel,
106
107
  isFilterActive: isFilterActive,
107
- hidePanel: hidePanel
108
+ hidePanel: hidePanel,
109
+ localeText: localeText
108
110
  });
109
111
  }
110
112
  };
@@ -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';
@@ -17,4 +17,5 @@ export { filter } from './columnFilter';
17
17
  export { rangeSelection } from './rangeSelection';
18
18
  export { mergeCellHover } from './mergeCellHover';
19
19
  export { footerDataSource, footerRowMetaSymbol } from './footerDataSource';
20
- export { colGroupExtendable } from './colGroupExtendable';
20
+ export { colGroupExtendable } from './colGroupExtendable';
21
+ export { rowDrag } from './rowDrag';