es-grid-template 1.8.64 → 1.8.66

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 (222) hide show
  1. package/es/grid-component/TempTable.d.ts +2 -2
  2. package/es/grid-component/TempTable.js +5 -5
  3. package/es/grid-component/hooks/index.js +0 -1
  4. package/es/grid-component/hooks/useLazyKVMap.d.ts +1 -1
  5. package/es/grid-component/hooks/useLazyKVMap.js +0 -4
  6. package/es/grid-component/hooks/utils.d.ts +1 -8
  7. package/es/grid-component/hooks/utils.js +176 -144
  8. package/es/grid-component/index.d.ts +1 -1
  9. package/es/grid-component/index.js +0 -4
  10. package/es/grid-component/styles.scss +1394 -1394
  11. package/es/grid-component/type.d.ts +0 -407
  12. package/es/grid-component/type.js +490 -1
  13. package/es/table-component/type.d.ts +10 -0
  14. package/es/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.js +4 -3
  15. package/es/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  16. package/es/table-virtuoso/InternalTable.js +391 -0
  17. package/es/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  18. package/es/table-virtuoso/body/TableBodyCell.js +457 -0
  19. package/es/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  20. package/es/table-virtuoso/body/TableBodyRow.js +112 -0
  21. package/es/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  22. package/es/table-virtuoso/footer/TableFooterCell.js +54 -0
  23. package/es/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  24. package/es/table-virtuoso/header/TableHeadCell.js +265 -0
  25. package/es/table-virtuoso/header/renderFilter.d.ts +20 -0
  26. package/es/table-virtuoso/header/renderFilter.js +289 -0
  27. package/es/table-virtuoso/hook/constant.d.ts +73 -0
  28. package/es/table-virtuoso/hook/constant.js +240 -0
  29. package/es/table-virtuoso/hook/convert.d.ts +1 -0
  30. package/es/table-virtuoso/hook/convert.js +28 -0
  31. package/es/table-virtuoso/hook/useColumns.d.ts +28 -0
  32. package/es/table-virtuoso/hook/useColumns.js +302 -0
  33. package/es/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  34. package/es/table-virtuoso/hook/useFilterOperator.js +33 -0
  35. package/es/table-virtuoso/hook/utils.d.ts +159 -0
  36. package/es/table-virtuoso/hook/utils.js +2263 -0
  37. package/es/table-virtuoso/index.d.ts +2 -0
  38. package/es/table-virtuoso/index.js +2 -0
  39. package/es/table-virtuoso/style.d.ts +22 -0
  40. package/es/table-virtuoso/style.js +12 -0
  41. package/es/table-virtuoso/style.scss +1441 -0
  42. package/es/table-virtuoso/table/Grid.d.ts +37 -0
  43. package/es/table-virtuoso/table/Grid.js +298 -0
  44. package/es/table-virtuoso/table/TableContainer.d.ts +49 -0
  45. package/es/table-virtuoso/table/TableContainer.js +292 -0
  46. package/es/table-virtuoso/table/TableWrapper.d.ts +22 -0
  47. package/es/table-virtuoso/table/TableWrapper.js +161 -0
  48. package/es/table-virtuoso/type.d.ts +0 -0
  49. package/es/table-virtuoso/type.js +785 -0
  50. package/es/table-virtuoso/useContext.d.ts +97 -0
  51. package/es/table-virtuoso/useContext.js +21 -0
  52. package/lib/grid-component/TempTable.d.ts +2 -2
  53. package/lib/grid-component/TempTable.js +5 -7
  54. package/lib/grid-component/hooks/useLazyKVMap.d.ts +1 -1
  55. package/lib/grid-component/hooks/useLazyKVMap.js +0 -3
  56. package/lib/grid-component/hooks/utils.d.ts +1 -8
  57. package/lib/grid-component/hooks/utils.js +179 -152
  58. package/lib/grid-component/index.d.ts +1 -1
  59. package/lib/grid-component/index.js +0 -3
  60. package/lib/grid-component/styles.scss +1394 -1394
  61. package/lib/grid-component/type.d.ts +0 -407
  62. package/lib/grid-component/type.js +490 -4
  63. package/lib/table-component/type.d.ts +10 -0
  64. package/lib/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.js +4 -3
  65. package/lib/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  66. package/lib/table-virtuoso/InternalTable.js +400 -0
  67. package/lib/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  68. package/lib/table-virtuoso/body/TableBodyCell.js +464 -0
  69. package/lib/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  70. package/lib/table-virtuoso/body/TableBodyRow.js +119 -0
  71. package/lib/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  72. package/lib/table-virtuoso/footer/TableFooterCell.js +63 -0
  73. package/lib/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  74. package/lib/table-virtuoso/header/TableHeadCell.js +274 -0
  75. package/lib/table-virtuoso/header/renderFilter.d.ts +20 -0
  76. package/lib/table-virtuoso/header/renderFilter.js +299 -0
  77. package/lib/table-virtuoso/hook/constant.d.ts +73 -0
  78. package/lib/table-virtuoso/hook/constant.js +247 -0
  79. package/lib/table-virtuoso/hook/convert.d.ts +1 -0
  80. package/lib/table-virtuoso/hook/convert.js +34 -0
  81. package/lib/table-virtuoso/hook/useColumns.d.ts +28 -0
  82. package/lib/table-virtuoso/hook/useColumns.js +315 -0
  83. package/lib/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  84. package/lib/table-virtuoso/hook/useFilterOperator.js +40 -0
  85. package/lib/table-virtuoso/hook/utils.d.ts +159 -0
  86. package/lib/table-virtuoso/hook/utils.js +2389 -0
  87. package/lib/table-virtuoso/index.d.ts +2 -0
  88. package/lib/table-virtuoso/index.js +9 -0
  89. package/lib/table-virtuoso/style.d.ts +22 -0
  90. package/lib/table-virtuoso/style.js +19 -0
  91. package/lib/table-virtuoso/style.scss +1441 -0
  92. package/lib/table-virtuoso/table/Grid.d.ts +37 -0
  93. package/lib/table-virtuoso/table/Grid.js +307 -0
  94. package/lib/table-virtuoso/table/TableContainer.d.ts +49 -0
  95. package/lib/table-virtuoso/table/TableContainer.js +300 -0
  96. package/lib/table-virtuoso/table/TableWrapper.d.ts +22 -0
  97. package/lib/table-virtuoso/table/TableWrapper.js +166 -0
  98. package/lib/table-virtuoso/type.d.ts +0 -0
  99. package/lib/table-virtuoso/type.js +786 -0
  100. package/lib/table-virtuoso/useContext.d.ts +97 -0
  101. package/lib/table-virtuoso/useContext.js +27 -0
  102. package/package.json +2 -1
  103. package/es/grid-component/AdvanceFilter.d.ts +0 -14
  104. package/es/grid-component/AdvanceFilter.js +0 -454
  105. package/es/grid-component/CheckboxFilter.d.ts +0 -20
  106. package/es/grid-component/CheckboxFilter.js +0 -244
  107. package/es/grid-component/CheckboxFilter2.d.ts +0 -20
  108. package/es/grid-component/CheckboxFilter2.js +0 -244
  109. package/es/grid-component/ColumnsChoose.d.ts +0 -10
  110. package/es/grid-component/ColumnsChoose.js +0 -230
  111. package/es/grid-component/Command.d.ts +0 -8
  112. package/es/grid-component/Command.js +0 -80
  113. package/es/grid-component/ContextMenu.d.ts +0 -20
  114. package/es/grid-component/ContextMenu.js +0 -130
  115. package/es/grid-component/ConvertColumnTable.d.ts +0 -7
  116. package/es/grid-component/ConvertColumnTable.js +0 -144
  117. package/es/grid-component/EditForm/EditForm.d.ts +0 -27
  118. package/es/grid-component/EditForm/EditForm.js +0 -394
  119. package/es/grid-component/EditForm/index.d.ts +0 -1
  120. package/es/grid-component/EditForm/index.js +0 -1
  121. package/es/grid-component/EditableCell.d.ts +0 -20
  122. package/es/grid-component/EditableCell.js +0 -1030
  123. package/es/grid-component/FilterSearch.d.ts +0 -12
  124. package/es/grid-component/FilterSearch.js +0 -33
  125. package/es/grid-component/GridStyle.d.ts +0 -8
  126. package/es/grid-component/GridStyle.js +0 -5
  127. package/es/grid-component/InternalTable.js +0 -1170
  128. package/es/grid-component/TableGrid.d.ts +0 -21
  129. package/es/grid-component/TableGrid.js +0 -493
  130. package/es/grid-component/async-select/index.d.ts +0 -11
  131. package/es/grid-component/async-select/index.js +0 -38
  132. package/es/grid-component/async-table-select/index.d.ts +0 -11
  133. package/es/grid-component/async-table-select/index.js +0 -40
  134. package/es/grid-component/checkbox-control/index.d.ts +0 -13
  135. package/es/grid-component/checkbox-control/index.js +0 -40
  136. package/es/grid-component/hooks/columns/index.d.ts +0 -10
  137. package/es/grid-component/hooks/columns/index.js +0 -503
  138. package/es/grid-component/hooks/content/ControlCheckbox.d.ts +0 -13
  139. package/es/grid-component/hooks/content/ControlCheckbox.js +0 -87
  140. package/es/grid-component/hooks/content/HeaderContent.d.ts +0 -14
  141. package/es/grid-component/hooks/content/HeaderContent.js +0 -44
  142. package/es/grid-component/hooks/content/TooltipContent.d.ts +0 -13
  143. package/es/grid-component/hooks/content/TooltipContent.js +0 -74
  144. package/es/grid-component/hooks/useColumns.d.ts +0 -19
  145. package/es/grid-component/hooks/useColumns.js +0 -317
  146. package/es/grid-component/number/index.d.ts +0 -10
  147. package/es/grid-component/number/index.js +0 -39
  148. package/es/grid-component/number-range/index.d.ts +0 -11
  149. package/es/grid-component/number-range/index.js +0 -63
  150. package/es/grid-component/table/Grid.d.ts +0 -23
  151. package/es/grid-component/table/Grid.js +0 -49
  152. package/es/grid-component/table/GridEdit.d.ts +0 -23
  153. package/es/grid-component/table/GridEdit.js +0 -2726
  154. package/es/grid-component/table/Group.d.ts +0 -21
  155. package/es/grid-component/table/Group.js +0 -195
  156. package/es/grid-component/table/InfiniteTable.d.ts +0 -23
  157. package/es/grid-component/table/InfiniteTable.js +0 -101
  158. package/es/grid-component/useContext.d.ts +0 -34
  159. package/es/grid-component/useContext.js +0 -8
  160. package/lib/grid-component/AdvanceFilter.d.ts +0 -14
  161. package/lib/grid-component/AdvanceFilter.js +0 -463
  162. package/lib/grid-component/CheckboxFilter.d.ts +0 -20
  163. package/lib/grid-component/CheckboxFilter.js +0 -253
  164. package/lib/grid-component/CheckboxFilter2.d.ts +0 -20
  165. package/lib/grid-component/CheckboxFilter2.js +0 -253
  166. package/lib/grid-component/ColumnsChoose.d.ts +0 -10
  167. package/lib/grid-component/ColumnsChoose.js +0 -240
  168. package/lib/grid-component/Command.d.ts +0 -8
  169. package/lib/grid-component/Command.js +0 -88
  170. package/lib/grid-component/ContextMenu.d.ts +0 -20
  171. package/lib/grid-component/ContextMenu.js +0 -140
  172. package/lib/grid-component/ConvertColumnTable.d.ts +0 -7
  173. package/lib/grid-component/ConvertColumnTable.js +0 -153
  174. package/lib/grid-component/EditForm/EditForm.d.ts +0 -27
  175. package/lib/grid-component/EditForm/EditForm.js +0 -404
  176. package/lib/grid-component/EditForm/index.d.ts +0 -1
  177. package/lib/grid-component/EditForm/index.js +0 -16
  178. package/lib/grid-component/EditableCell.d.ts +0 -20
  179. package/lib/grid-component/EditableCell.js +0 -1032
  180. package/lib/grid-component/FilterSearch.d.ts +0 -12
  181. package/lib/grid-component/FilterSearch.js +0 -42
  182. package/lib/grid-component/GridStyle.d.ts +0 -8
  183. package/lib/grid-component/GridStyle.js +0 -12
  184. package/lib/grid-component/InternalTable.js +0 -1178
  185. package/lib/grid-component/TableGrid.d.ts +0 -21
  186. package/lib/grid-component/TableGrid.js +0 -493
  187. package/lib/grid-component/async-select/index.d.ts +0 -11
  188. package/lib/grid-component/async-select/index.js +0 -47
  189. package/lib/grid-component/async-table-select/index.d.ts +0 -11
  190. package/lib/grid-component/async-table-select/index.js +0 -49
  191. package/lib/grid-component/checkbox-control/index.d.ts +0 -13
  192. package/lib/grid-component/checkbox-control/index.js +0 -48
  193. package/lib/grid-component/hooks/columns/index.d.ts +0 -10
  194. package/lib/grid-component/hooks/columns/index.js +0 -518
  195. package/lib/grid-component/hooks/content/ControlCheckbox.d.ts +0 -13
  196. package/lib/grid-component/hooks/content/ControlCheckbox.js +0 -95
  197. package/lib/grid-component/hooks/content/HeaderContent.d.ts +0 -14
  198. package/lib/grid-component/hooks/content/HeaderContent.js +0 -53
  199. package/lib/grid-component/hooks/content/TooltipContent.d.ts +0 -13
  200. package/lib/grid-component/hooks/content/TooltipContent.js +0 -81
  201. package/lib/grid-component/hooks/useColumns.d.ts +0 -19
  202. package/lib/grid-component/hooks/useColumns.js +0 -328
  203. package/lib/grid-component/number/index.d.ts +0 -10
  204. package/lib/grid-component/number/index.js +0 -47
  205. package/lib/grid-component/number-range/index.d.ts +0 -11
  206. package/lib/grid-component/number-range/index.js +0 -71
  207. package/lib/grid-component/table/Grid.d.ts +0 -23
  208. package/lib/grid-component/table/Grid.js +0 -58
  209. package/lib/grid-component/table/GridEdit.d.ts +0 -23
  210. package/lib/grid-component/table/GridEdit.js +0 -2723
  211. package/lib/grid-component/table/Group.d.ts +0 -21
  212. package/lib/grid-component/table/Group.js +0 -204
  213. package/lib/grid-component/table/InfiniteTable.d.ts +0 -23
  214. package/lib/grid-component/table/InfiniteTable.js +0 -109
  215. package/lib/grid-component/useContext.d.ts +0 -34
  216. package/lib/grid-component/useContext.js +0 -13
  217. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.d.ts +0 -0
  218. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/index.d.ts +0 -0
  219. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/index.js +0 -0
  220. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.d.ts +0 -0
  221. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/index.d.ts +0 -0
  222. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/index.js +0 -0
@@ -1,244 +0,0 @@
1
- import * as React from "react";
2
- import classNames from "classnames";
3
- import FilterSearch from "./FilterSearch";
4
- import { Checkbox, Menu, Radio, Empty } from "rc-master-ui";
5
- import { Tree } from "antd";
6
- import { flattenKeys } from "rc-master-ui/es/table/hooks/useFilter";
7
- // import Tree from "rc-master-ui/es/tree";
8
-
9
- function searchValueMatched(searchValue, text) {
10
- if (typeof text === 'string' || typeof text === 'number') {
11
- return text?.toString().toLowerCase().includes(searchValue.trim().toLowerCase());
12
- }
13
- return false;
14
- }
15
- function renderFilterItems({
16
- filters,
17
- prefixCls,
18
- filteredKeys,
19
- filterMultiple,
20
- searchValue,
21
- filterSearch
22
- }) {
23
- return filters.map((filter, index) => {
24
- const key = String(filter.value);
25
- if (filter.children) {
26
- return {
27
- key: key || index,
28
- label: filter.text,
29
- popupClassName: `${prefixCls}-dropdown-submenu`,
30
- children: renderFilterItems({
31
- filters: filter.children,
32
- prefixCls,
33
- filteredKeys,
34
- filterMultiple,
35
- searchValue,
36
- filterSearch
37
- })
38
- };
39
- }
40
- const Component = filterMultiple ? Checkbox : Radio;
41
- const item = {
42
- key: filter.value !== undefined ? key : index,
43
- label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {
44
- checked: filteredKeys.includes(key)
45
- }), /*#__PURE__*/React.createElement("span", null, filter.text))
46
- };
47
- if (searchValue.trim()) {
48
- if (typeof filterSearch === 'function') {
49
- return filterSearch(searchValue, filter) ? item : null;
50
- }
51
- return searchValueMatched(searchValue, filter.text) ? item : null;
52
- }
53
- return item;
54
- });
55
- }
56
- function hasSubMenu(filters) {
57
- return filters.some(({
58
- children
59
- }) => children);
60
- }
61
- const CheckboxFilter = props => {
62
- const {
63
- // column,
64
- filterSearch = true,
65
- tablePrefixCls = 'ui-rc-table',
66
- prefixCls = 'ui-rc-table-filter',
67
- dropdownPrefixCls = 'ui-rc-dropdown',
68
- filterMultiple,
69
- selectedKeys,
70
- locale,
71
- options,
72
- filterMode = 'tree',
73
- // open,
74
- searchValue,
75
- showFilter,
76
- setSearchValue,
77
- onSelect
78
- } = props;
79
-
80
- // const [searchValue, setSearchValue] = React.useState('');
81
-
82
- const [openKeys, setOpenKeys] = React.useState([]);
83
-
84
- // clear search value after close filter dropdown
85
- // React.useEffect(() => {
86
- // // if (visible) {
87
- // setSearchValue('');
88
- // // }
89
- // }, [open]);
90
-
91
- const onOpenChange = keys => {
92
- setOpenKeys(keys);
93
- };
94
- const items = renderFilterItems({
95
- // filters: column.filters || [],
96
- filters: options || [],
97
- filterSearch,
98
- prefixCls,
99
- filteredKeys: selectedKeys ?? [],
100
- filterMultiple,
101
- searchValue
102
- });
103
- const dropdownMenuClass = classNames({
104
- // [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || []),
105
- [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(options || [])
106
- });
107
- const empty = /*#__PURE__*/React.createElement(Empty, {
108
- image: Empty.PRESENTED_IMAGE_SIMPLE,
109
- description: locale?.filterEmptyText,
110
- imageStyle: {
111
- height: 24
112
- },
113
- style: {
114
- margin: 0,
115
- padding: '16px 0'
116
- }
117
- });
118
- const isEmpty = items.every(item => item === null);
119
- const onSearch = e => {
120
- const {
121
- value
122
- } = e.target;
123
- setSearchValue(value);
124
- };
125
-
126
- // if ((column.filters || []).length === 0) {
127
- // return empty;
128
- // }
129
-
130
- const getTreeData = ({
131
- filters
132
- }) => (filters || []).map((filter, index) => {
133
- const key = String(filter.value);
134
- const item = {
135
- title: filter.text,
136
- key: filter.value !== undefined ? key : String(index)
137
- };
138
- if (filter.children) {
139
- item.children = getTreeData({
140
- filters: filter.children
141
- });
142
- }
143
- return item;
144
- });
145
- const getFilterData = node => ({
146
- ...node,
147
- text: node.title,
148
- value: node.key,
149
- children: node.children?.map(item => getFilterData(item)) || []
150
- });
151
- const onCheckAll = e => {
152
- if (e.target.checked) {
153
- const allFilterKeys = flattenKeys(options).map(key => String(key));
154
-
155
- // setFilteredKeysSync(allFilterKeys);
156
- onSelect?.(allFilterKeys);
157
- } else {
158
- onSelect?.([]);
159
- // setFilteredKeysSync([]);
160
- }
161
- };
162
- const onCheck = (keys, {
163
- node,
164
- checked
165
- }) => {
166
- if (!filterMultiple) {
167
- // onSelectKeys({ selectedKeys: checked && node.key ? [node.key] : [] });
168
- onSelect?.(checked && node.key ? [node.key] : []);
169
- } else {
170
- // onSelectKeys({ selectedKeys: keys });
171
- onSelect?.(keys);
172
- }
173
- };
174
- if (filterMode === 'tree') {
175
- return /*#__PURE__*/React.createElement(React.Fragment, null, showFilter && /*#__PURE__*/React.createElement(FilterSearch, {
176
- filterSearch: filterSearch,
177
- value: searchValue,
178
- onChange: onSearch,
179
- tablePrefixCls: tablePrefixCls,
180
- locale: locale
181
- }), /*#__PURE__*/React.createElement("div", {
182
- className: `${tablePrefixCls}-filter-dropdown-tree`
183
- }, filterMultiple && options.length > 0 ? /*#__PURE__*/React.createElement(Checkbox
184
- // checked={selectedKeys.length === flattenKeys(column.filters).length}
185
- , {
186
- checked: selectedKeys.length === flattenKeys(options).length
187
- // indeterminate={
188
- // selectedKeys.length > 0 &&
189
- // selectedKeys.length < flattenKeys(column.filters).length
190
- // }
191
- ,
192
-
193
- indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(options).length,
194
- className: `${tablePrefixCls}-filter-dropdown-checkall`,
195
- onChange: onCheckAll
196
- }, locale?.filterCheckall) : /*#__PURE__*/React.createElement(Empty, null), /*#__PURE__*/React.createElement(Tree, {
197
- checkable: true,
198
- selectable: false,
199
- blockNode: true,
200
- multiple: filterMultiple,
201
- checkStrictly: !filterMultiple,
202
- className: `${dropdownPrefixCls}-menu`,
203
- onCheck: onCheck,
204
- checkedKeys: selectedKeys,
205
- selectedKeys: selectedKeys,
206
- showIcon: false
207
- // treeData={getTreeData({ filters: column.filters })}
208
- ,
209
- treeData: getTreeData({
210
- filters: options
211
- }),
212
- autoExpandParent: true,
213
- defaultExpandAll: true,
214
- filterTreeNode: searchValue.trim() ? node => {
215
- if (typeof filterSearch === 'function') {
216
- // @ts-ignore
217
- return filterSearch(searchValue, getFilterData(node));
218
- }
219
- return searchValueMatched(searchValue, node.title);
220
- } : undefined
221
- })));
222
- }
223
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {
224
- filterSearch: filterSearch,
225
- value: searchValue,
226
- onChange: onSearch,
227
- tablePrefixCls: tablePrefixCls,
228
- locale: locale
229
- }), isEmpty ? empty : /*#__PURE__*/React.createElement(Menu, {
230
- selectable: true,
231
- multiple: filterMultiple,
232
- prefixCls: `${dropdownPrefixCls}-menu`,
233
- className: dropdownMenuClass,
234
- onSelect: onSelect,
235
- onDeselect: onSelect,
236
- selectedKeys: selectedKeys
237
- // getPopupContainer={getPopupContainer}
238
- ,
239
- openKeys: openKeys,
240
- onOpenChange: onOpenChange,
241
- items: items
242
- }));
243
- };
244
- export default CheckboxFilter;
@@ -1,20 +0,0 @@
1
- import * as React from "react";
2
- import type { TableLocale } from "rc-master-ui/es/table/interface";
3
- type Props = {
4
- options: any[];
5
- filterSearch?: boolean;
6
- open?: boolean;
7
- tablePrefixCls?: string;
8
- prefixCls?: string;
9
- dropdownPrefixCls?: string;
10
- filterMultiple: boolean;
11
- showFilter?: boolean;
12
- onSelect?: (value: any) => void;
13
- selectedKeys: string[];
14
- locale?: TableLocale;
15
- filterMode?: 'menu' | 'tree';
16
- searchValue: string;
17
- setSearchValue: (value: any) => void;
18
- };
19
- declare const CheckboxFilter: (props: Props) => React.JSX.Element;
20
- export default CheckboxFilter;
@@ -1,244 +0,0 @@
1
- import * as React from "react";
2
- import classNames from "classnames";
3
- import FilterSearch from "./FilterSearch";
4
- import { Checkbox, Menu, Radio, Empty } from "rc-master-ui";
5
- import { Tree } from "antd";
6
- import { flattenKeys } from "rc-master-ui/es/table/hooks/useFilter";
7
- // import Tree from "rc-master-ui/es/tree";
8
-
9
- function searchValueMatched(searchValue, text) {
10
- if (typeof text === 'string' || typeof text === 'number') {
11
- return text?.toString().toLowerCase().includes(searchValue.trim().toLowerCase());
12
- }
13
- return false;
14
- }
15
- function renderFilterItems({
16
- filters,
17
- prefixCls,
18
- filteredKeys,
19
- filterMultiple,
20
- searchValue,
21
- filterSearch
22
- }) {
23
- return filters.map((filter, index) => {
24
- const key = String(filter.value);
25
- if (filter.children) {
26
- return {
27
- key: key || index,
28
- label: filter.text,
29
- popupClassName: `${prefixCls}-dropdown-submenu`,
30
- children: renderFilterItems({
31
- filters: filter.children,
32
- prefixCls,
33
- filteredKeys,
34
- filterMultiple,
35
- searchValue,
36
- filterSearch
37
- })
38
- };
39
- }
40
- const Component = filterMultiple ? Checkbox : Radio;
41
- const item = {
42
- key: filter.value !== undefined ? key : index,
43
- label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {
44
- checked: filteredKeys.includes(key)
45
- }), /*#__PURE__*/React.createElement("span", null, filter.text))
46
- };
47
- if (searchValue.trim()) {
48
- if (typeof filterSearch === 'function') {
49
- return filterSearch(searchValue, filter) ? item : null;
50
- }
51
- return searchValueMatched(searchValue, filter.text) ? item : null;
52
- }
53
- return item;
54
- });
55
- }
56
- function hasSubMenu(filters) {
57
- return filters.some(({
58
- children
59
- }) => children);
60
- }
61
- const CheckboxFilter = props => {
62
- const {
63
- // column,
64
- filterSearch = true,
65
- tablePrefixCls = 'ui-rc-table',
66
- prefixCls = 'ui-rc-table-filter',
67
- dropdownPrefixCls = 'ui-rc-dropdown',
68
- filterMultiple,
69
- selectedKeys,
70
- locale,
71
- options,
72
- filterMode = 'tree',
73
- // open,
74
- searchValue,
75
- showFilter,
76
- setSearchValue,
77
- onSelect
78
- } = props;
79
-
80
- // const [searchValue, setSearchValue] = React.useState('');
81
-
82
- const [openKeys, setOpenKeys] = React.useState([]);
83
-
84
- // clear search value after close filter dropdown
85
- // React.useEffect(() => {
86
- // // if (visible) {
87
- // setSearchValue('');
88
- // // }
89
- // }, [open]);
90
-
91
- const onOpenChange = keys => {
92
- setOpenKeys(keys);
93
- };
94
- const items = renderFilterItems({
95
- // filters: column.filters || [],
96
- filters: options || [],
97
- filterSearch,
98
- prefixCls,
99
- filteredKeys: selectedKeys ?? [],
100
- filterMultiple,
101
- searchValue
102
- });
103
- const dropdownMenuClass = classNames({
104
- // [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || []),
105
- [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(options || [])
106
- });
107
- const empty = /*#__PURE__*/React.createElement(Empty, {
108
- image: Empty.PRESENTED_IMAGE_SIMPLE,
109
- description: locale?.filterEmptyText,
110
- imageStyle: {
111
- height: 24
112
- },
113
- style: {
114
- margin: 0,
115
- padding: '16px 0'
116
- }
117
- });
118
- const isEmpty = items.every(item => item === null);
119
- const onSearch = e => {
120
- const {
121
- value
122
- } = e.target;
123
- setSearchValue(value);
124
- };
125
-
126
- // if ((column.filters || []).length === 0) {
127
- // return empty;
128
- // }
129
-
130
- const getTreeData = ({
131
- filters
132
- }) => (filters || []).map((filter, index) => {
133
- const key = String(filter.value);
134
- const item = {
135
- title: filter.text,
136
- key: filter.value !== undefined ? key : String(index)
137
- };
138
- if (filter.children) {
139
- item.children = getTreeData({
140
- filters: filter.children
141
- });
142
- }
143
- return item;
144
- });
145
- const getFilterData = node => ({
146
- ...node,
147
- text: node.title,
148
- value: node.key,
149
- children: node.children?.map(item => getFilterData(item)) || []
150
- });
151
- const onCheckAll = e => {
152
- if (e.target.checked) {
153
- const allFilterKeys = flattenKeys(options).map(key => String(key));
154
-
155
- // setFilteredKeysSync(allFilterKeys);
156
- onSelect?.(allFilterKeys);
157
- } else {
158
- onSelect?.([]);
159
- // setFilteredKeysSync([]);
160
- }
161
- };
162
- const onCheck = (keys, {
163
- node,
164
- checked
165
- }) => {
166
- if (!filterMultiple) {
167
- // onSelectKeys({ selectedKeys: checked && node.key ? [node.key] : [] });
168
- onSelect?.(checked && node.key ? [node.key] : []);
169
- } else {
170
- // onSelectKeys({ selectedKeys: keys });
171
- onSelect?.(keys);
172
- }
173
- };
174
- if (filterMode === 'tree') {
175
- return /*#__PURE__*/React.createElement(React.Fragment, null, showFilter && /*#__PURE__*/React.createElement(FilterSearch, {
176
- filterSearch: filterSearch,
177
- value: searchValue,
178
- onChange: onSearch,
179
- tablePrefixCls: tablePrefixCls,
180
- locale: locale
181
- }), /*#__PURE__*/React.createElement("div", {
182
- className: `${tablePrefixCls}-filter-dropdown-tree`
183
- }, filterMultiple && options.length > 0 ? /*#__PURE__*/React.createElement(Checkbox
184
- // checked={selectedKeys.length === flattenKeys(column.filters).length}
185
- , {
186
- checked: selectedKeys.length === flattenKeys(options).length
187
- // indeterminate={
188
- // selectedKeys.length > 0 &&
189
- // selectedKeys.length < flattenKeys(column.filters).length
190
- // }
191
- ,
192
-
193
- indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(options).length,
194
- className: `${tablePrefixCls}-filter-dropdown-checkall`,
195
- onChange: onCheckAll
196
- }, locale?.filterCheckall) : /*#__PURE__*/React.createElement(Empty, null), /*#__PURE__*/React.createElement(Tree, {
197
- checkable: true,
198
- selectable: false,
199
- blockNode: true,
200
- multiple: filterMultiple,
201
- checkStrictly: !filterMultiple,
202
- className: `${dropdownPrefixCls}-menu`,
203
- onCheck: onCheck,
204
- checkedKeys: selectedKeys,
205
- selectedKeys: selectedKeys,
206
- showIcon: false
207
- // treeData={getTreeData({ filters: column.filters })}
208
- ,
209
- treeData: getTreeData({
210
- filters: options
211
- }),
212
- autoExpandParent: true,
213
- defaultExpandAll: true,
214
- filterTreeNode: searchValue.trim() ? node => {
215
- if (typeof filterSearch === 'function') {
216
- // @ts-ignore
217
- return filterSearch(searchValue, getFilterData(node));
218
- }
219
- return searchValueMatched(searchValue, node.title);
220
- } : undefined
221
- })));
222
- }
223
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {
224
- filterSearch: filterSearch,
225
- value: searchValue,
226
- onChange: onSearch,
227
- tablePrefixCls: tablePrefixCls,
228
- locale: locale
229
- }), isEmpty ? empty : /*#__PURE__*/React.createElement(Menu, {
230
- selectable: true,
231
- multiple: filterMultiple,
232
- prefixCls: `${dropdownPrefixCls}-menu`,
233
- className: dropdownMenuClass,
234
- onSelect: onSelect,
235
- onDeselect: onSelect,
236
- selectedKeys: selectedKeys
237
- // getPopupContainer={getPopupContainer}
238
- ,
239
- openKeys: openKeys,
240
- onOpenChange: onOpenChange,
241
- items: items
242
- }));
243
- };
244
- export default CheckboxFilter;
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import type { ColumnsTable } from "./type";
3
- export type IColumnsChoose<RecordType> = {
4
- columns: ColumnsTable<RecordType>;
5
- columnsGroup?: string[];
6
- triggerChangeColumns?: (columns: ColumnsTable<RecordType>, type: string) => void;
7
- t?: any;
8
- triggerChangeKeys?: any;
9
- };
10
- export declare const ColumnsChoose: <RecordType extends object>(props: IColumnsChoose<RecordType>) => React.JSX.Element;