acud 1.0.21 → 1.0.23

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 (171) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/dist/acud.css +543 -246
  3. package/dist/acud.css.map +1 -1
  4. package/dist/acud.js +18653 -17994
  5. package/dist/acud.js.map +1 -1
  6. package/dist/acud.min.css +1 -1
  7. package/dist/acud.min.css.map +1 -1
  8. package/dist/acud.min.js +11 -11
  9. package/dist/acud.min.js.map +1 -1
  10. package/es/avatar/SizeContext.d.ts +10 -0
  11. package/es/avatar/SizeContext.js +12 -0
  12. package/es/avatar/avatar.d.ts +25 -0
  13. package/es/avatar/avatar.js +206 -0
  14. package/es/avatar/group.d.ts +15 -0
  15. package/es/avatar/group.js +64 -0
  16. package/es/avatar/index.d.ts +11 -0
  17. package/es/avatar/index.js +6 -0
  18. package/es/avatar/style/css.js +5 -0
  19. package/es/avatar/style/group.less +17 -0
  20. package/es/avatar/style/index.css +108 -0
  21. package/es/avatar/style/index.d.ts +3 -0
  22. package/es/avatar/style/index.js +5 -0
  23. package/es/avatar/style/index.less +68 -0
  24. package/es/avatar/style/rtl.less +15 -0
  25. package/es/divider/index.d.ts +14 -0
  26. package/es/divider/index.js +63 -0
  27. package/es/divider/style/css.js +2 -0
  28. package/es/divider/style/index.css +126 -0
  29. package/es/divider/style/index.d.ts +2 -0
  30. package/es/divider/style/index.js +2 -0
  31. package/es/divider/style/index.less +137 -0
  32. package/es/divider/style/rtl.less +38 -0
  33. package/es/dropdown/style/index.css +4 -4
  34. package/es/dropdown/style/index.less +5 -5
  35. package/es/grid/hooks/useBreakpoint.d.ts +1 -1
  36. package/es/grid/hooks/useBreakpoint.js +11 -9
  37. package/es/index.d.ts +2 -0
  38. package/es/index.js +2 -0
  39. package/es/menu/style/index.css +16 -12
  40. package/es/menu/style/index.less +5 -3
  41. package/es/menu/style/sider.less +2 -0
  42. package/es/modal/DialogBox.d.ts +2 -2
  43. package/es/modal/DialogBox.js +3 -2
  44. package/es/pagination/rc-pagination/Pagination.js +0 -1
  45. package/es/style/themes/default/components/avatar.less +13 -0
  46. package/es/style/themes/default/components/divider.less +6 -0
  47. package/es/style/themes/default/components/index.less +2 -0
  48. package/es/table/style/index.css +4 -3
  49. package/es/table/style/index.less +4 -0
  50. package/es/tag/style/index.css +46 -0
  51. package/es/tag/style/index.less +37 -0
  52. package/es/tree-select/index.d.ts +4 -4
  53. package/es/tree-select/index.js +1 -1
  54. package/es/tree-select/src/LegacyContext.d.ts +24 -0
  55. package/es/tree-select/src/LegacyContext.js +3 -0
  56. package/es/tree-select/src/OptionList.d.ts +8 -0
  57. package/es/tree-select/src/OptionList.js +338 -0
  58. package/es/tree-select/src/TreeNode.d.ts +9 -0
  59. package/es/tree-select/src/TreeNode.js +6 -0
  60. package/es/tree-select/src/TreeSelect.d.ts +122 -0
  61. package/es/tree-select/src/TreeSelect.js +534 -0
  62. package/es/tree-select/src/TreeSelectContext.d.ts +16 -0
  63. package/es/tree-select/src/TreeSelectContext.js +3 -0
  64. package/es/tree-select/src/hooks/useCache.d.ts +7 -0
  65. package/es/tree-select/src/hooks/useCache.js +29 -0
  66. package/es/tree-select/src/hooks/useCheckedKeys.d.ts +5 -0
  67. package/es/tree-select/src/hooks/useCheckedKeys.js +29 -0
  68. package/es/tree-select/src/hooks/useDataEntities.d.ts +7 -0
  69. package/es/tree-select/src/hooks/useDataEntities.js +30 -0
  70. package/es/tree-select/src/hooks/useFilterTreeData.d.ts +7 -0
  71. package/es/tree-select/src/hooks/useFilterTreeData.js +49 -0
  72. package/es/tree-select/src/hooks/useRefFunc.d.ts +5 -0
  73. package/es/tree-select/src/hooks/useRefFunc.js +14 -0
  74. package/es/tree-select/src/hooks/useTreeData.d.ts +8 -0
  75. package/es/tree-select/src/hooks/useTreeData.js +55 -0
  76. package/es/tree-select/src/index.d.ts +7 -0
  77. package/es/tree-select/src/index.js +9 -0
  78. package/es/tree-select/src/interface.d.ts +77 -0
  79. package/es/tree-select/src/interface.js +1 -0
  80. package/es/tree-select/src/utils/legacyUtil.d.ts +6 -0
  81. package/es/tree-select/src/utils/legacyUtil.js +144 -0
  82. package/es/tree-select/src/utils/strategyUtil.d.ts +9 -0
  83. package/es/tree-select/src/utils/strategyUtil.js +40 -0
  84. package/es/tree-select/src/utils/valueUtil.d.ts +14 -0
  85. package/es/tree-select/src/utils/valueUtil.js +46 -0
  86. package/es/tree-select/src/utils/warningPropsUtil.d.ts +5 -0
  87. package/es/tree-select/src/utils/warningPropsUtil.js +31 -0
  88. package/es/tree-select/style/index.css +10 -0
  89. package/es/tree-select/style/index.less +11 -0
  90. package/lib/avatar/SizeContext.d.ts +10 -0
  91. package/lib/avatar/SizeContext.js +26 -0
  92. package/lib/avatar/avatar.d.ts +25 -0
  93. package/lib/avatar/avatar.js +233 -0
  94. package/lib/avatar/group.d.ts +15 -0
  95. package/lib/avatar/group.js +88 -0
  96. package/lib/avatar/index.d.ts +11 -0
  97. package/lib/avatar/index.js +23 -0
  98. package/lib/avatar/style/css.js +7 -0
  99. package/lib/avatar/style/group.less +17 -0
  100. package/lib/avatar/style/index.css +108 -0
  101. package/lib/avatar/style/index.d.ts +3 -0
  102. package/lib/avatar/style/index.js +7 -0
  103. package/lib/avatar/style/index.less +68 -0
  104. package/lib/avatar/style/rtl.less +15 -0
  105. package/lib/divider/index.d.ts +14 -0
  106. package/lib/divider/index.js +74 -0
  107. package/lib/divider/style/css.js +5 -0
  108. package/lib/divider/style/index.css +126 -0
  109. package/lib/divider/style/index.d.ts +2 -0
  110. package/lib/divider/style/index.js +5 -0
  111. package/lib/divider/style/index.less +137 -0
  112. package/lib/divider/style/rtl.less +38 -0
  113. package/lib/dropdown/style/index.css +4 -4
  114. package/lib/dropdown/style/index.less +5 -5
  115. package/lib/grid/hooks/useBreakpoint.d.ts +1 -1
  116. package/lib/grid/hooks/useBreakpoint.js +11 -9
  117. package/lib/index.d.ts +2 -0
  118. package/lib/index.js +16 -0
  119. package/lib/menu/style/index.css +16 -12
  120. package/lib/menu/style/index.less +5 -3
  121. package/lib/menu/style/sider.less +2 -0
  122. package/lib/modal/DialogBox.d.ts +2 -2
  123. package/lib/modal/DialogBox.js +3 -2
  124. package/lib/pagination/rc-pagination/Pagination.js +0 -1
  125. package/lib/style/components.less +2 -0
  126. package/lib/style/themes/default/components/avatar.less +13 -0
  127. package/lib/style/themes/default/components/divider.less +6 -0
  128. package/lib/style/themes/default/components/index.less +2 -0
  129. package/lib/table/style/index.css +4 -3
  130. package/lib/table/style/index.less +4 -0
  131. package/lib/tag/style/index.css +46 -0
  132. package/lib/tag/style/index.less +37 -0
  133. package/lib/tree-select/index.d.ts +4 -4
  134. package/lib/tree-select/index.js +7 -7
  135. package/lib/tree-select/src/LegacyContext.d.ts +24 -0
  136. package/lib/tree-select/src/LegacyContext.js +18 -0
  137. package/lib/tree-select/src/OptionList.d.ts +8 -0
  138. package/lib/tree-select/src/OptionList.js +366 -0
  139. package/lib/tree-select/src/TreeNode.d.ts +9 -0
  140. package/lib/tree-select/src/TreeNode.js +14 -0
  141. package/lib/tree-select/src/TreeSelect.d.ts +122 -0
  142. package/lib/tree-select/src/TreeSelect.js +572 -0
  143. package/lib/tree-select/src/TreeSelectContext.d.ts +16 -0
  144. package/lib/tree-select/src/TreeSelectContext.js +18 -0
  145. package/lib/tree-select/src/hooks/useCache.d.ts +7 -0
  146. package/lib/tree-select/src/hooks/useCache.js +47 -0
  147. package/lib/tree-select/src/hooks/useCheckedKeys.d.ts +5 -0
  148. package/lib/tree-select/src/hooks/useCheckedKeys.js +49 -0
  149. package/lib/tree-select/src/hooks/useDataEntities.d.ts +7 -0
  150. package/lib/tree-select/src/hooks/useDataEntities.js +52 -0
  151. package/lib/tree-select/src/hooks/useFilterTreeData.d.ts +7 -0
  152. package/lib/tree-select/src/hooks/useFilterTreeData.js +70 -0
  153. package/lib/tree-select/src/hooks/useRefFunc.d.ts +5 -0
  154. package/lib/tree-select/src/hooks/useRefFunc.js +27 -0
  155. package/lib/tree-select/src/hooks/useTreeData.d.ts +8 -0
  156. package/lib/tree-select/src/hooks/useTreeData.js +71 -0
  157. package/lib/tree-select/src/index.d.ts +7 -0
  158. package/lib/tree-select/src/index.js +45 -0
  159. package/lib/tree-select/src/interface.d.ts +77 -0
  160. package/lib/tree-select/src/interface.js +5 -0
  161. package/lib/tree-select/src/utils/legacyUtil.d.ts +6 -0
  162. package/lib/tree-select/src/utils/legacyUtil.js +166 -0
  163. package/lib/tree-select/src/utils/strategyUtil.d.ts +9 -0
  164. package/lib/tree-select/src/utils/strategyUtil.js +53 -0
  165. package/lib/tree-select/src/utils/valueUtil.d.ts +14 -0
  166. package/lib/tree-select/src/utils/valueUtil.js +61 -0
  167. package/lib/tree-select/src/utils/warningPropsUtil.d.ts +5 -0
  168. package/lib/tree-select/src/utils/warningPropsUtil.js +43 -0
  169. package/lib/tree-select/style/index.css +10 -0
  170. package/lib/tree-select/style/index.less +11 -0
  171. package/package.json +1 -1
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var React = _interopRequireWildcard(require("react"));
19
+
20
+ var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
21
+
22
+ var _useMemo = _interopRequireDefault(require("rc-util/lib/hooks/useMemo"));
23
+
24
+ var _rcSelect = require("rc-select");
25
+
26
+ var _rcTree = _interopRequireDefault(require("rc-tree"));
27
+
28
+ var _checkbox = _interopRequireDefault(require("../../checkbox"));
29
+
30
+ var _LegacyContext = _interopRequireDefault(require("./LegacyContext"));
31
+
32
+ var _TreeSelectContext = _interopRequireDefault(require("./TreeSelectContext"));
33
+
34
+ var _valueUtil = require("./utils/valueUtil");
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var HIDDEN_STYLE = {
41
+ width: 0,
42
+ height: 0,
43
+ display: 'flex',
44
+ overflow: 'hidden',
45
+ opacity: 0,
46
+ border: 0,
47
+ padding: 0,
48
+ margin: 0
49
+ };
50
+
51
+ var OptionList = function OptionList(_, ref) {
52
+ var _useBaseProps = (0, _rcSelect.useBaseProps)(),
53
+ prefixCls = _useBaseProps.prefixCls,
54
+ multiple = _useBaseProps.multiple,
55
+ searchValue = _useBaseProps.searchValue,
56
+ toggleOpen = _useBaseProps.toggleOpen,
57
+ open = _useBaseProps.open,
58
+ notFoundContent = _useBaseProps.notFoundContent;
59
+
60
+ var _React$useContext = React.useContext(_TreeSelectContext["default"]),
61
+ virtual = _React$useContext.virtual,
62
+ listHeight = _React$useContext.listHeight,
63
+ listItemHeight = _React$useContext.listItemHeight,
64
+ treeData = _React$useContext.treeData,
65
+ fieldNames = _React$useContext.fieldNames,
66
+ onSelect = _React$useContext.onSelect,
67
+ triggerChange = _React$useContext.triggerChange,
68
+ dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth,
69
+ treeExpandAction = _React$useContext.treeExpandAction;
70
+
71
+ var _React$useContext2 = React.useContext(_LegacyContext["default"]),
72
+ checkable = _React$useContext2.checkable,
73
+ checkedKeys = _React$useContext2.checkedKeys,
74
+ halfCheckedKeys = _React$useContext2.halfCheckedKeys,
75
+ treeExpandedKeys = _React$useContext2.treeExpandedKeys,
76
+ treeDefaultExpandAll = _React$useContext2.treeDefaultExpandAll,
77
+ treeDefaultExpandedKeys = _React$useContext2.treeDefaultExpandedKeys,
78
+ onTreeExpand = _React$useContext2.onTreeExpand,
79
+ treeIcon = _React$useContext2.treeIcon,
80
+ showTreeIcon = _React$useContext2.showTreeIcon,
81
+ switcherIcon = _React$useContext2.switcherIcon,
82
+ treeLine = _React$useContext2.treeLine,
83
+ treeNodeFilterProp = _React$useContext2.treeNodeFilterProp,
84
+ loadData = _React$useContext2.loadData,
85
+ treeLoadedKeys = _React$useContext2.treeLoadedKeys,
86
+ treeMotion = _React$useContext2.treeMotion,
87
+ onTreeLoad = _React$useContext2.onTreeLoad,
88
+ keyEntities = _React$useContext2.keyEntities;
89
+
90
+ var treeRef = React.useRef();
91
+ var memoTreeData = (0, _useMemo["default"])(function () {
92
+ return treeData;
93
+ }, [open, treeData], function (prev, next) {
94
+ return next[0] && prev[1] !== next[1];
95
+ }); // ========================== Values ==========================
96
+
97
+ var mergedCheckedKeys = React.useMemo(function () {
98
+ if (!checkable) {
99
+ return null;
100
+ }
101
+
102
+ return {
103
+ checked: checkedKeys,
104
+ halfChecked: halfCheckedKeys
105
+ };
106
+ }, [checkable, checkedKeys, halfCheckedKeys]); // ========================== Scroll ==========================
107
+
108
+ React.useEffect(function () {
109
+ var _a; // Single mode should scroll to current key
110
+
111
+
112
+ if (open && !multiple && checkedKeys.length) {
113
+ (_a = treeRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
114
+ key: checkedKeys[0]
115
+ });
116
+ }
117
+ }, [open]); // ========================== Search ==========================
118
+
119
+ var lowerSearchValue = String(searchValue).toLowerCase();
120
+
121
+ var filterTreeNode = function filterTreeNode(treeNode) {
122
+ if (!lowerSearchValue) {
123
+ return false;
124
+ }
125
+
126
+ return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);
127
+ }; // =========================== Keys ===========================
128
+
129
+
130
+ var _React$useState = React.useState(treeDefaultExpandedKeys),
131
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
132
+ expandedKeys = _React$useState2[0],
133
+ setExpandedKeys = _React$useState2[1];
134
+
135
+ var _React$useState3 = React.useState(null),
136
+ _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
137
+ searchExpandedKeys = _React$useState4[0],
138
+ setSearchExpandedKeys = _React$useState4[1];
139
+
140
+ var mergedExpandedKeys = React.useMemo(function () {
141
+ if (treeExpandedKeys) {
142
+ return (0, _toConsumableArray2["default"])(treeExpandedKeys);
143
+ }
144
+
145
+ return searchValue ? searchExpandedKeys : expandedKeys;
146
+ }, [expandedKeys, searchExpandedKeys, treeExpandedKeys, searchValue]);
147
+ var allKeys = React.useMemo(function () {
148
+ return (0, _valueUtil.getAllKeys)(treeData, fieldNames);
149
+ }, [treeData, fieldNames]);
150
+ React.useEffect(function () {
151
+ if (searchValue) {
152
+ setSearchExpandedKeys(allKeys);
153
+ }
154
+ }, [searchValue]);
155
+
156
+ var onInternalExpand = function onInternalExpand(keys) {
157
+ setExpandedKeys(keys);
158
+ setSearchExpandedKeys(keys);
159
+
160
+ if (onTreeExpand) {
161
+ onTreeExpand(keys);
162
+ }
163
+ }; // ========================== Events ==========================
164
+
165
+
166
+ var onListMouseDown = function onListMouseDown(event) {
167
+ event.preventDefault();
168
+ };
169
+
170
+ var onInternalSelect = function onInternalSelect(__, info) {
171
+ var node = info.node;
172
+
173
+ if (checkable && (0, _valueUtil.isCheckDisabled)(node)) {
174
+ return;
175
+ }
176
+
177
+ onSelect(node.key, {
178
+ selected: !checkedKeys.includes(node.key)
179
+ });
180
+
181
+ if (!multiple) {
182
+ toggleOpen(false);
183
+ }
184
+ }; // ========================= Keyboard =========================
185
+
186
+
187
+ var _React$useState5 = React.useState(null),
188
+ _React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 2),
189
+ activeKey = _React$useState6[0],
190
+ setActiveKey = _React$useState6[1];
191
+
192
+ var activeEntity = keyEntities[activeKey];
193
+ React.useImperativeHandle(ref, function () {
194
+ var _a;
195
+
196
+ return {
197
+ scrollTo: (_a = treeRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo,
198
+ onKeyDown: function onKeyDown(event) {
199
+ var _a;
200
+
201
+ var which = event.which;
202
+
203
+ switch (which) {
204
+ // >>> Arrow keys
205
+ case _KeyCode["default"].UP:
206
+ case _KeyCode["default"].DOWN:
207
+ case _KeyCode["default"].LEFT:
208
+ case _KeyCode["default"].RIGHT:
209
+ (_a = treeRef.current) === null || _a === void 0 ? void 0 : _a.onKeyDown(event);
210
+ break;
211
+ // >>> Select item
212
+
213
+ case _KeyCode["default"].ENTER:
214
+ {
215
+ if (activeEntity) {
216
+ var _ref = (activeEntity === null || activeEntity === void 0 ? void 0 : activeEntity.node) || {},
217
+ selectable = _ref.selectable,
218
+ value = _ref.value;
219
+
220
+ if (selectable !== false) {
221
+ onInternalSelect(null, {
222
+ node: {
223
+ key: activeKey
224
+ },
225
+ selected: !checkedKeys.includes(value)
226
+ });
227
+ }
228
+ }
229
+
230
+ break;
231
+ }
232
+ // >>> Close
233
+
234
+ case _KeyCode["default"].ESC:
235
+ {
236
+ toggleOpen(false);
237
+ }
238
+ }
239
+ },
240
+ onKeyUp: function onKeyUp() {}
241
+ };
242
+ });
243
+ var treeProps = {
244
+ fieldNames: fieldNames
245
+ };
246
+
247
+ if (treeLoadedKeys) {
248
+ treeProps.loadedKeys = treeLoadedKeys;
249
+ }
250
+
251
+ if (mergedExpandedKeys) {
252
+ treeProps.expandedKeys = mergedExpandedKeys;
253
+ }
254
+
255
+ var allDisabledCheckedKeys = React.useMemo(function () {
256
+ var adcKeys = [];
257
+
258
+ var loopTreeData = function loopTreeData(arr) {
259
+ arr.forEach(function (data) {
260
+ if (data.disabled && checkedKeys.includes(data.key)) {
261
+ adcKeys.push(data.key);
262
+ }
263
+
264
+ if (data.children && Array.isArray(data.children)) {
265
+ loopTreeData(data.children);
266
+ }
267
+ });
268
+ };
269
+
270
+ loopTreeData(treeData);
271
+ return adcKeys;
272
+ }, [treeData, checkedKeys]);
273
+ var allAbleKeys = React.useMemo(function () {
274
+ var abKeys = [];
275
+
276
+ var loopTreeData = function loopTreeData(arr) {
277
+ arr.forEach(function (data) {
278
+ if (!data.disabled) {
279
+ abKeys.push(data.key);
280
+ }
281
+
282
+ if (data.children && Array.isArray(data.children)) {
283
+ loopTreeData(data.children);
284
+ }
285
+ });
286
+ };
287
+
288
+ loopTreeData(treeData);
289
+ return abKeys;
290
+ }, [treeData]);
291
+ var allAbleCheckedKeys = React.useMemo(function () {
292
+ return checkedKeys.filter(function (key) {
293
+ return allAbleKeys.includes(key);
294
+ });
295
+ }, [allAbleKeys, checkedKeys]);
296
+ var selectAllStatus = React.useMemo(function () {
297
+ return {
298
+ all: allAbleKeys.length === allAbleCheckedKeys.length,
299
+ indeterminate: allAbleCheckedKeys.length > 0 && allAbleCheckedKeys.length !== allAbleKeys.length
300
+ };
301
+ }, [allAbleCheckedKeys, allAbleKeys]);
302
+ var hanldeCheckAll = React.useCallback(function () {
303
+ if (selectAllStatus.all) {
304
+ triggerChange((0, _toConsumableArray2["default"])(allDisabledCheckedKeys));
305
+ } else {
306
+ triggerChange([].concat((0, _toConsumableArray2["default"])(allDisabledCheckedKeys), (0, _toConsumableArray2["default"])(allAbleKeys)));
307
+ }
308
+ }, [selectAllStatus, allAbleKeys, allDisabledCheckedKeys]); // ========================== Render ==========================
309
+
310
+ if (memoTreeData.length === 0) {
311
+ return /*#__PURE__*/React.createElement("div", {
312
+ role: "listbox",
313
+ className: "".concat(prefixCls, "-empty"),
314
+ onMouseDown: onListMouseDown
315
+ }, notFoundContent);
316
+ }
317
+
318
+ return /*#__PURE__*/React.createElement("div", {
319
+ onMouseDown: onListMouseDown
320
+ }, activeEntity && open && /*#__PURE__*/React.createElement("span", {
321
+ style: HIDDEN_STYLE,
322
+ "aria-live": "assertive"
323
+ }, activeEntity.node.value), multiple && /*#__PURE__*/React.createElement("div", {
324
+ className: "".concat(prefixCls, "-tree-select-all")
325
+ }, /*#__PURE__*/React.createElement(_checkbox["default"], {
326
+ checked: selectAllStatus.all,
327
+ indeterminate: selectAllStatus.indeterminate,
328
+ onClick: hanldeCheckAll
329
+ }, "\u5168\u9009")), /*#__PURE__*/React.createElement(_rcTree["default"], (0, _extends2["default"])({
330
+ ref: treeRef,
331
+ focusable: false,
332
+ prefixCls: "".concat(prefixCls, "-tree"),
333
+ treeData: memoTreeData,
334
+ height: listHeight,
335
+ itemHeight: listItemHeight,
336
+ virtual: virtual !== false && dropdownMatchSelectWidth !== false,
337
+ multiple: multiple,
338
+ icon: treeIcon,
339
+ showIcon: showTreeIcon,
340
+ switcherIcon: switcherIcon,
341
+ showLine: treeLine,
342
+ loadData: searchValue ? null : loadData,
343
+ motion: treeMotion,
344
+ activeKey: activeKey // We handle keys by out instead tree self
345
+ ,
346
+ checkable: checkable,
347
+ checkStrictly: true,
348
+ checkedKeys: mergedCheckedKeys,
349
+ selectedKeys: !checkable ? checkedKeys : [],
350
+ defaultExpandAll: treeDefaultExpandAll
351
+ }, treeProps, {
352
+ // Proxy event out
353
+ onActiveChange: setActiveKey,
354
+ onSelect: onInternalSelect,
355
+ onCheck: onInternalSelect,
356
+ onExpand: onInternalExpand,
357
+ onLoad: onTreeLoad,
358
+ filterTreeNode: filterTreeNode,
359
+ expandAction: treeExpandAction
360
+ })));
361
+ };
362
+
363
+ var RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);
364
+ RefOptionList.displayName = 'OptionList';
365
+ var _default = RefOptionList;
366
+ exports["default"] = _default;
@@ -0,0 +1,9 @@
1
+ import type * as React from 'react';
2
+ import type { DataNode, Key } from './interface';
3
+ export interface TreeNodeProps extends Omit<DataNode, 'children'> {
4
+ value: Key;
5
+ children?: React.ReactNode;
6
+ }
7
+ /** This is a placeholder, not real render in dom */
8
+ declare const TreeNode: React.FC<TreeNodeProps>;
9
+ export default TreeNode;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ /** This is a placeholder, not real render in dom */
9
+ var TreeNode = function TreeNode() {
10
+ return null;
11
+ };
12
+
13
+ var _default = TreeNode;
14
+ exports["default"] = _default;
@@ -0,0 +1,122 @@
1
+ import * as React from 'react';
2
+ import type { IconType } from 'rc-tree/lib/interface';
3
+ import type { ExpandAction } from 'rc-tree/lib/Tree';
4
+ import type { BaseSelectRef, BaseSelectPropsWithoutPrivate, SelectProps } from 'rc-select';
5
+ import TreeNode from './TreeNode';
6
+ import { SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './utils/strategyUtil';
7
+ import type { CheckedStrategy } from './utils/strategyUtil';
8
+ export declare type OnInternalSelect = (value: RawValueType, info: {
9
+ selected: boolean;
10
+ }) => void;
11
+ export declare type RawValueType = string | number;
12
+ export interface LabeledValueType {
13
+ key?: React.Key;
14
+ value?: RawValueType;
15
+ label?: React.ReactNode;
16
+ /** Only works on `treeCheckStrictly` */
17
+ halfChecked?: boolean;
18
+ }
19
+ export declare type SelectSource = 'option' | 'selection' | 'input' | 'clear';
20
+ export declare type DraftValueType = RawValueType | LabeledValueType | (RawValueType | LabeledValueType)[];
21
+ /** @deprecated This is only used for legacy compatible. Not works on new code. */
22
+ export interface LegacyCheckedNode {
23
+ pos: string;
24
+ node: React.ReactElement;
25
+ children?: LegacyCheckedNode[];
26
+ }
27
+ export interface ChangeEventExtra {
28
+ /** @deprecated Please save prev value by control logic instead */
29
+ preValue: LabeledValueType[];
30
+ triggerValue: RawValueType;
31
+ /** @deprecated Use `onSelect` or `onDeselect` instead. */
32
+ selected?: boolean;
33
+ /** @deprecated Use `onSelect` or `onDeselect` instead. */
34
+ checked?: boolean;
35
+ /** @deprecated This prop not work as react node anymore. */
36
+ triggerNode: React.ReactElement;
37
+ /** @deprecated This prop not work as react node anymore. */
38
+ allCheckedNodes: LegacyCheckedNode[];
39
+ }
40
+ export interface FieldNames {
41
+ value?: string;
42
+ label?: string;
43
+ children?: string;
44
+ }
45
+ export interface InternalFieldName extends Omit<FieldNames, 'label'> {
46
+ _title: string[];
47
+ }
48
+ export interface SimpleModeConfig {
49
+ id?: React.Key;
50
+ pId?: React.Key;
51
+ rootPId?: React.Key;
52
+ }
53
+ export interface BaseOptionType {
54
+ disabled?: boolean;
55
+ checkable?: boolean;
56
+ disableCheckbox?: boolean;
57
+ children?: BaseOptionType[];
58
+ [name: string]: any;
59
+ }
60
+ export interface DefaultOptionType extends BaseOptionType {
61
+ value?: RawValueType;
62
+ title?: React.ReactNode;
63
+ label?: React.ReactNode;
64
+ key?: React.Key;
65
+ children?: DefaultOptionType[];
66
+ }
67
+ export interface LegacyDataNode extends DefaultOptionType {
68
+ props: any;
69
+ }
70
+ export interface TreeSelectProps<ValueType = any, OptionType extends BaseOptionType = DefaultOptionType> extends Omit<BaseSelectPropsWithoutPrivate, 'mode'> {
71
+ prefixCls?: string;
72
+ id?: string;
73
+ value?: ValueType;
74
+ defaultValue?: ValueType;
75
+ onChange?: (value: ValueType, labelList: React.ReactNode[], extra: ChangeEventExtra) => void;
76
+ searchValue?: string;
77
+ /** @deprecated Use `searchValue` instead */
78
+ inputValue?: string;
79
+ onSearch?: (value: string) => void;
80
+ autoClearSearchValue?: boolean;
81
+ filterTreeNode?: boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean);
82
+ treeNodeFilterProp?: string;
83
+ onSelect?: SelectProps<ValueType, OptionType>['onSelect'];
84
+ onDeselect?: SelectProps<ValueType, OptionType>['onDeselect'];
85
+ showCheckedStrategy?: CheckedStrategy;
86
+ treeNodeLabelProp?: string;
87
+ fieldNames?: FieldNames;
88
+ multiple?: boolean;
89
+ treeCheckable?: boolean | React.ReactNode;
90
+ treeCheckStrictly?: boolean;
91
+ labelInValue?: boolean;
92
+ treeData?: OptionType[];
93
+ treeDataSimpleMode?: boolean | SimpleModeConfig;
94
+ loadData?: (dataNode: LegacyDataNode) => Promise<unknown>;
95
+ treeLoadedKeys?: React.Key[];
96
+ onTreeLoad?: (loadedKeys: React.Key[]) => void;
97
+ treeDefaultExpandAll?: boolean;
98
+ treeExpandedKeys?: React.Key[];
99
+ treeDefaultExpandedKeys?: React.Key[];
100
+ onTreeExpand?: (expandedKeys: React.Key[]) => void;
101
+ treeExpandAction?: ExpandAction;
102
+ virtual?: boolean;
103
+ listHeight?: number;
104
+ listItemHeight?: number;
105
+ onDropdownVisibleChange?: (open: boolean) => void;
106
+ treeLine?: boolean;
107
+ treeIcon?: IconType;
108
+ showTreeIcon?: boolean;
109
+ switcherIcon?: IconType;
110
+ treeMotion?: any;
111
+ }
112
+ declare const GenericTreeSelect: (<ValueType = any, OptionType extends DefaultOptionType | BaseOptionType = DefaultOptionType>(props: TreeSelectProps<ValueType, OptionType> & {
113
+ children?: React.ReactNode;
114
+ } & {
115
+ ref?: React.Ref<BaseSelectRef>;
116
+ }) => React.ReactElement) & {
117
+ TreeNode: typeof TreeNode;
118
+ SHOW_ALL: typeof SHOW_ALL;
119
+ SHOW_PARENT: typeof SHOW_PARENT;
120
+ SHOW_CHILD: typeof SHOW_CHILD;
121
+ };
122
+ export default GenericTreeSelect;