@hi-ui/check-tree-select 4.3.0 → 4.3.2

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.
@@ -12,10 +12,9 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
-
16
15
  var treeUtils = require('@hi-ui/tree-utils');
17
-
18
16
  var typeAssertion = require('@hi-ui/type-assertion');
17
+
19
18
  /**
20
19
  * 处理选中的回显数据
21
20
  *
@@ -23,19 +22,14 @@ var typeAssertion = require('@hi-ui/type-assertion');
23
22
  * @param nodeEntries 所有数据的Map 集合
24
23
  * @param type 数据回显方式
25
24
  */
26
-
27
-
28
25
  var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData, allowCheck) {
29
26
  var keySet = new Set(checkedIds);
30
-
31
27
  switch (type) {
32
28
  case 'CHILD':
33
29
  return checkedIds.filter(function (id) {
34
30
  var node = treeUtils.fFindNodeById(flattenData, id);
35
-
36
31
  if (node) {
37
32
  var children = node.children;
38
-
39
33
  if (typeAssertion.isArrayNonEmpty(children)) {
40
34
  if (children.filter(allowCheck).every(function (node) {
41
35
  return keySet.has(node.id);
@@ -43,48 +37,38 @@ var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData
43
37
  return false;
44
38
  }
45
39
  }
46
- } // 没有孩子节点,保留
47
-
48
-
40
+ }
41
+ // 没有孩子节点,保留
49
42
  return true;
50
43
  });
51
-
52
44
  case 'PARENT':
53
45
  return checkedIds.filter(function (id) {
54
46
  var node = treeUtils.fFindNodeById(flattenData, id);
55
-
56
47
  if (node) {
57
48
  // 向上递归遍历是否被勾选
58
49
  var ancestors = treeUtils.getNodeAncestors(node);
59
-
60
50
  if (ancestors.some(function (parent) {
61
51
  return keySet.has(parent.id);
62
52
  })) {
63
53
  return false;
64
54
  }
65
55
  }
66
-
67
56
  return true;
68
57
  });
69
58
  }
70
-
71
59
  return checkedIds;
72
60
  };
73
61
  /**
74
62
  * 根据传入的 checkedIds 解析全选/半选数据
75
63
  */
76
-
77
-
78
64
  var parseCheckDataDirty = function parseCheckDataDirty(type, checkedIds, flattenData, allowCheck) {
79
65
  switch (type) {
80
66
  case 'CHILD':
81
67
  case 'PARENT':
82
68
  return dirtyCheck(checkedIds, flattenData, allowCheck);
83
69
  }
84
-
85
70
  return checkedIds;
86
71
  };
87
-
88
72
  function dirtyCheck(checkedIds, flattenData, allowCheck) {
89
73
  var nodeEntities = flattenData.reduce(function (prev, cur) {
90
74
  prev[cur.id] = cur;
@@ -94,18 +78,16 @@ function dirtyCheck(checkedIds, flattenData, allowCheck) {
94
78
  return !!nodeEntities[id];
95
79
  }));
96
80
  var depthEntities = new Map();
97
- var maxDepth = 0; // Convert entities by depth for calculation
98
-
81
+ var maxDepth = 0;
82
+ // Convert entities by depth for calculation
99
83
  Object.keys(nodeEntities).forEach(function (id) {
100
84
  var entity = nodeEntities[id];
101
85
  var depth = entity.depth;
102
86
  var depthSet = depthEntities.get(depth);
103
-
104
87
  if (!depthSet) {
105
88
  depthSet = new Set();
106
89
  depthEntities.set(depth, depthSet);
107
90
  }
108
-
109
91
  depthSet.add(entity);
110
92
  maxDepth = Math.max(maxDepth, depth);
111
93
  });
@@ -117,8 +99,6 @@ function dirtyCheck(checkedIds, flattenData, allowCheck) {
117
99
  * 1. 把所有嵌套孩子节点 allowCheck 的都标记为 checked
118
100
  * 2. 祖先节点从下至上维护 checked 状态
119
101
  */
120
-
121
-
122
102
  function fillCheck(checkedIds, depthEntities, nodeEntities, maxDepth, allowCheck) {
123
103
  var checkedIdsSet = new Set(checkedIds);
124
104
  checkedIdsSet.forEach(function (id) {
@@ -127,37 +107,31 @@ function fillCheck(checkedIds, depthEntities, nodeEntities, maxDepth, allowCheck
127
107
  nestedChildren.forEach(function (child) {
128
108
  checkedIdsSet.add(child.id);
129
109
  });
130
- }); // 缓存中间结果,优化查询
131
-
110
+ });
111
+ // 缓存中间结果,优化查询
132
112
  var visitedIds = new Map();
133
-
134
113
  for (var depth = maxDepth - 1; depth >= 0; --depth) {
135
114
  var entities = depthEntities.get(depth);
136
115
  entities === null || entities === void 0 ? void 0 : entities.forEach(function (entity) {
137
116
  var id = entity.id,
138
- children = entity.children;
117
+ children = entity.children;
139
118
  if (visitedIds.has(id)) return;
140
-
141
119
  if (typeAssertion.isArrayNonEmpty(children)) {
142
120
  var shouldChecked = !children.some(function (child) {
143
121
  if (visitedIds.has(child.id)) {
144
122
  return !visitedIds.get(child.id);
145
123
  }
146
-
147
124
  return !checkedIdsSet.has(child.id);
148
125
  });
149
126
  visitedIds.set(id, shouldChecked);
150
-
151
127
  if (shouldChecked && allowCheck(entity)) {
152
128
  checkedIdsSet.add(id);
153
129
  }
154
130
  }
155
131
  });
156
132
  }
157
-
158
133
  return Array.from(checkedIdsSet);
159
134
  }
160
-
161
135
  var getAllCheckedStatus = function getAllCheckedStatus(flattedData, values) {
162
136
  var treeIds = flattedData.map(function (_ref) {
163
137
  var id = _ref.id;
@@ -171,13 +145,13 @@ var getAllCheckedStatus = function getAllCheckedStatus(flattedData, values) {
171
145
  treeIdsSet["delete"](id);
172
146
  }
173
147
  });
174
- return [hasValue && treeIdsSet.size === 0, hasValue && treeIdsSet.size > 0, // 该值用来判断剩余未选中的节点是否都是 disabled 的
148
+ return [hasValue && treeIdsSet.size === 0, hasValue && treeIdsSet.size > 0,
149
+ // 该值用来判断剩余未选中的节点是否都是 disabled 的
175
150
  // 如果为 true 则表示可选值都已选中
176
151
  treeIdsSet.size === flattedData.filter(function (item) {
177
152
  return item.disabled;
178
153
  }).length];
179
154
  };
180
-
181
155
  exports.getAllCheckedStatus = getAllCheckedStatus;
182
156
  exports.parseCheckDataDirty = parseCheckDataDirty;
183
157
  exports.processCheckedIds = processCheckedIds;
@@ -35,69 +35,64 @@ var DEFAULT_EXPANDED_IDS = [];
35
35
  /**
36
36
  * 多项树形选择器
37
37
  */
38
-
39
38
  var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
40
39
  var _a$prefixCls = _a.prefixCls,
41
- prefixCls = _a$prefixCls === void 0 ? TREE_SELECT_PREFIX : _a$prefixCls,
42
- className = _a.className,
43
- _a$data = _a.data,
44
- data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
45
- dataSource = _a.dataSource,
46
- _a$disabled = _a.disabled,
47
- disabled = _a$disabled === void 0 ? false : _a$disabled,
48
- visible = _a.visible,
49
- onOpen = _a.onOpen,
50
- onClose = _a.onClose,
51
- _a$fieldNames = _a.fieldNames,
52
- fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
53
- _a$checkedMode = _a.checkedMode,
54
- checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
55
- _a$defaultExpandAll = _a.defaultExpandAll,
56
- defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
57
- expandedIdsProp = _a.expandedIds,
58
- _a$defaultExpandedIds = _a.defaultExpandedIds,
59
- defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
60
- onExpand = _a.onExpand,
61
- _a$defaultValue = _a.defaultValue,
62
- defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
63
- valueProp = _a.value,
64
- onChange = _a.onChange,
65
- searchableProp = _a.searchable,
66
- searchModeProp = _a.searchMode,
67
- onLoadChildren = _a.onLoadChildren,
68
- titleRender = _a.render,
69
- filterOption = _a.filterOption,
70
- onSearchProp = _a.onSearch,
71
- clearable = _a.clearable,
72
- invalid = _a.invalid,
73
- displayRender = _a.displayRender,
74
- placeholderProp = _a.placeholder,
75
- appearance = _a.appearance,
76
- virtual = _a.virtual,
77
- itemHeight = _a.itemHeight,
78
- height = _a.height,
79
- showCheckAll = _a.showCheckAll,
80
- tagInputProps = _a.tagInputProps,
81
- _a$size = _a.size,
82
- size = _a$size === void 0 ? 'md' : _a$size,
83
- rest = __rest(_a, ["prefixCls", "role", "className", "data", "dataSource", "disabled", "visible", "onOpen", "onClose", "fieldNames", "checkedMode", "defaultExpandAll", "expandedIds", "defaultExpandedIds", "onExpand", "defaultValue", "value", "onChange", "searchable", "searchMode", "onLoadChildren", "render", "filterOption", "onSearch", "clearable", "invalid", "displayRender", "placeholder", "appearance", "virtual", "itemHeight", "height", "showCheckAll", "tagInputProps", "size"]);
84
-
40
+ prefixCls = _a$prefixCls === void 0 ? TREE_SELECT_PREFIX : _a$prefixCls,
41
+ className = _a.className,
42
+ _a$data = _a.data,
43
+ data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
44
+ dataSource = _a.dataSource,
45
+ _a$disabled = _a.disabled,
46
+ disabled = _a$disabled === void 0 ? false : _a$disabled,
47
+ visible = _a.visible,
48
+ onOpen = _a.onOpen,
49
+ onClose = _a.onClose,
50
+ _a$fieldNames = _a.fieldNames,
51
+ fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
52
+ _a$checkedMode = _a.checkedMode,
53
+ checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
54
+ _a$defaultExpandAll = _a.defaultExpandAll,
55
+ defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
56
+ expandedIdsProp = _a.expandedIds,
57
+ _a$defaultExpandedIds = _a.defaultExpandedIds,
58
+ defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
59
+ onExpand = _a.onExpand,
60
+ _a$defaultValue = _a.defaultValue,
61
+ defaultValue = _a$defaultValue === void 0 ? DEFAULT_VALUE : _a$defaultValue,
62
+ valueProp = _a.value,
63
+ onChange = _a.onChange,
64
+ searchableProp = _a.searchable,
65
+ searchModeProp = _a.searchMode,
66
+ onLoadChildren = _a.onLoadChildren,
67
+ titleRender = _a.render,
68
+ filterOption = _a.filterOption,
69
+ onSearchProp = _a.onSearch,
70
+ clearable = _a.clearable,
71
+ invalid = _a.invalid,
72
+ displayRender = _a.displayRender,
73
+ placeholderProp = _a.placeholder,
74
+ appearance = _a.appearance,
75
+ virtual = _a.virtual,
76
+ itemHeight = _a.itemHeight,
77
+ height = _a.height,
78
+ showCheckAll = _a.showCheckAll,
79
+ tagInputProps = _a.tagInputProps,
80
+ _a$size = _a.size,
81
+ size = _a$size === void 0 ? 'md' : _a$size,
82
+ rest = __rest(_a, ["prefixCls", "role", "className", "data", "dataSource", "disabled", "visible", "onOpen", "onClose", "fieldNames", "checkedMode", "defaultExpandAll", "expandedIds", "defaultExpandedIds", "onExpand", "defaultValue", "value", "onChange", "searchable", "searchMode", "onLoadChildren", "render", "filterOption", "onSearch", "clearable", "invalid", "displayRender", "placeholder", "appearance", "virtual", "itemHeight", "height", "showCheckAll", "tagInputProps", "size"]);
85
83
  var i18n = useLocaleContext();
86
84
  var placeholder = isUndef(placeholderProp) ? i18n.get('checkTreeSelect.placeholder') : placeholderProp;
87
-
88
85
  var _useUncontrolledToggl = useUncontrolledToggle({
89
- visible: visible,
90
- disabled: disabled,
91
- onOpen: onOpen,
92
- onClose: onClose
93
- }),
94
- menuVisible = _useUncontrolledToggl[0],
95
- menuVisibleAction = _useUncontrolledToggl[1];
86
+ visible: visible,
87
+ disabled: disabled,
88
+ onOpen: onOpen,
89
+ onClose: onClose
90
+ }),
91
+ menuVisible = _useUncontrolledToggl[0],
92
+ menuVisibleAction = _useUncontrolledToggl[1];
96
93
  /**
97
94
  * 转换对象
98
95
  */
99
-
100
-
101
96
  var getKeyFields = useCallback(function (node, key) {
102
97
  return node[fieldNames[key] || key];
103
98
  }, [fieldNames]);
@@ -109,7 +104,6 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
109
104
  },
110
105
  transform: function transform(node) {
111
106
  var _a, _b;
112
-
113
107
  var flattedNode = node;
114
108
  var raw = node.raw;
115
109
  flattedNode.id = getKeyFields(raw, 'id');
@@ -119,32 +113,29 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
119
113
  return flattedNode;
120
114
  }
121
115
  });
122
- }, [data, getKeyFields]); // TODO: 抽离展开hook
116
+ }, [data, getKeyFields]);
117
+ // TODO: 抽离展开hook
123
118
  // TODO: onLoadChildren 和 defaultExpandAll 共存时
124
-
125
119
  var _useUncontrolledState = useUncontrolledState(function getDefaultExpandedIds() {
126
- // 开启默认展开全部
127
- if (defaultExpandAll) {
128
- return flattedData.map(function (node) {
129
- return node.id;
130
- });
131
- }
132
-
133
- return defaultExpandedIds;
134
- }, expandedIdsProp, onExpand),
135
- expandedIds = _useUncontrolledState[0],
136
- tryChangeExpandedIds = _useUncontrolledState[1];
137
-
120
+ // 开启默认展开全部
121
+ if (defaultExpandAll) {
122
+ return flattedData.map(function (node) {
123
+ return node.id;
124
+ });
125
+ }
126
+ return defaultExpandedIds;
127
+ }, expandedIdsProp, onExpand),
128
+ expandedIds = _useUncontrolledState[0],
129
+ tryChangeExpandedIds = _useUncontrolledState[1];
138
130
  var _useCheck = useCheck(checkedMode, disabled, flattedData, defaultValue, valueProp, onChange),
139
- value = _useCheck[0],
140
- tryChangeValue = _useCheck[1],
141
- onNodeCheck = _useCheck[2],
142
- checkedNodes = _useCheck[3],
143
- parsedCheckedIds = _useCheck[4];
144
-
131
+ value = _useCheck[0],
132
+ tryChangeValue = _useCheck[1],
133
+ onNodeCheck = _useCheck[2],
134
+ checkedNodes = _useCheck[3],
135
+ parsedCheckedIds = _useCheck[4];
145
136
  var onCheck = useCallback(function (checkedIds, option) {
146
137
  var targetNode = option.targetNode,
147
- checked = option.checked;
138
+ checked = option.checked;
148
139
  onNodeCheck(targetNode, checked);
149
140
  }, [onNodeCheck]);
150
141
  var onValueChange = useCallback(function (values, targetItem, shouldChecked) {
@@ -155,16 +146,15 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
155
146
  // 操作单个
156
147
  onNodeCheck(targetItem[0], shouldChecked);
157
148
  }
158
- }, [tryChangeValue, onNodeCheck]); // ************************** 异步搜索 ************************* //
149
+ }, [tryChangeValue, onNodeCheck]);
150
+ // ************************** 异步搜索 ************************* //
159
151
  // const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
160
-
161
152
  var _b = useAsyncSearch({
162
- dataSource: dataSource
163
- }),
164
- loading = _b.loading,
165
- hasError = _b.hasError,
166
- dataSourceStrategy = __rest(_b, ["loading", "hasError"]);
167
-
153
+ dataSource: dataSource
154
+ }),
155
+ loading = _b.loading,
156
+ hasError = _b.hasError,
157
+ dataSourceStrategy = __rest(_b, ["loading", "hasError"]);
168
158
  var customSearchStrategy = useTreeCustomSearch({
169
159
  data: data,
170
160
  filterOption: filterOption
@@ -180,27 +170,23 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
180
170
  flattedData: flattedData,
181
171
  searchMode: searchModeProp
182
172
  });
183
-
184
173
  var _useSearchMode = useSearchMode({
185
- searchable: searchableProp,
186
- strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
187
- }),
188
- stateInSearch = _useSearchMode.state,
189
- setStateInSearch = _useSearchMode.setStateInSearch,
190
- searchable = _useSearchMode.searchable,
191
- searchMode = _useSearchMode.searchMode,
192
- onSearch = _useSearchMode.onSearch,
193
- searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
194
-
195
-
174
+ searchable: searchableProp,
175
+ strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
176
+ }),
177
+ stateInSearch = _useSearchMode.state,
178
+ setStateInSearch = _useSearchMode.setStateInSearch,
179
+ searchable = _useSearchMode.searchable,
180
+ searchMode = _useSearchMode.searchMode,
181
+ onSearch = _useSearchMode.onSearch,
182
+ searchValue = _useSearchMode.keyword;
183
+ // 拦截 titleRender,自定义高亮展示
196
184
  var proxyTitleRender = useCallback(function (node) {
197
185
  if (titleRender) {
198
186
  var _ret = titleRender(node);
199
-
200
187
  if (_ret && _ret !== true) return _ret;
201
- } // 本地搜索执行默认高亮规则
202
-
203
-
188
+ }
189
+ // 本地搜索执行默认高亮规则
204
190
  var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
205
191
  var ret = highlight ? /*#__PURE__*/React.createElement(Highlighter, {
206
192
  keyword: searchValue
@@ -219,19 +205,18 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
219
205
  });
220
206
  } : tryChangeExpandedIds,
221
207
  render: proxyTitleRender
222
- }; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
223
-
208
+ };
209
+ // 下拉菜单不能合并(因为树形数据,不知道是第几级)
224
210
  var mergedData = useMemo(function () {
225
211
  var nextData = checkedNodes.concat(flattedData);
226
212
  return uniqBy(nextData, 'id');
227
213
  }, [checkedNodes, flattedData]);
228
214
  var toggleCheckAll = useCallback(function () {
229
215
  var _getAllCheckedStatus = getAllCheckedStatus(flattedData, parsedCheckedIds),
230
- currentAllChecked = _getAllCheckedStatus[0],
231
- hasCheckedAll = _getAllCheckedStatus[2];
232
-
233
- var shouldChecked = !currentAllChecked; // 全选操作
234
-
216
+ currentAllChecked = _getAllCheckedStatus[0],
217
+ hasCheckedAll = _getAllCheckedStatus[2];
218
+ var shouldChecked = !currentAllChecked;
219
+ // 全选操作
235
220
  if (!currentAllChecked && !hasCheckedAll) {
236
221
  tryChangeValue(flattedData.filter(function (item) {
237
222
  if (!item.disabled) {
@@ -239,14 +224,11 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
239
224
  if (checkedMode === 'CHILD') {
240
225
  return !item.children;
241
226
  }
242
-
243
227
  if (checkedMode === 'PARENT') {
244
228
  return item.depth === 0;
245
229
  }
246
-
247
230
  return true;
248
231
  }
249
-
250
232
  return false;
251
233
  }).map(function (_ref) {
252
234
  var id = _ref.id;
@@ -256,13 +238,11 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
256
238
  tryChangeValue([], null, shouldChecked, []);
257
239
  }
258
240
  }, [checkedMode, flattedData, parsedCheckedIds, tryChangeValue]);
259
-
260
241
  var _useMemo = useMemo(function () {
261
- return getAllCheckedStatus(flattedData, parsedCheckedIds);
262
- }, [flattedData, parsedCheckedIds]),
263
- showAllChecked = _useMemo[0],
264
- showIndeterminate = _useMemo[1];
265
-
242
+ return getAllCheckedStatus(flattedData, parsedCheckedIds);
243
+ }, [flattedData, parsedCheckedIds]),
244
+ showAllChecked = _useMemo[0],
245
+ showIndeterminate = _useMemo[1];
266
246
  var renderDefaultFooter = function renderDefaultFooter() {
267
247
  if (showCheckAll) {
268
248
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
@@ -272,15 +252,14 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
272
252
  }, i18n.get('checkSelect.checkAll')));
273
253
  }
274
254
  };
275
-
276
- var cls = cx(prefixCls, className); // 过滤掉未选中的数据
255
+ var cls = cx(prefixCls, className);
256
+ // 过滤掉未选中的数据
277
257
  // const tagList = useMemo(() => {
278
258
  // // @ts-ignore
279
259
  // const [semiCheckedIds] = getSemiCheckedIdsWithSet(flattedData, (id) => value.includes(id))
280
260
  // const ids = Array.from(new Set([...semiCheckedIds, ...value]))
281
261
  // return flattedData.filter((item) => ids.includes(item.id))
282
262
  // }, [value, flattedData])
283
-
284
263
  return /*#__PURE__*/React.createElement(Picker, Object.assign({
285
264
  ref: ref,
286
265
  className: cls
@@ -317,8 +296,7 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
317
296
  // @ts-ignore
318
297
  invalid: invalid
319
298
  }))
320
- }), isArrayNonEmpty(treeProps.data) ?
321
- /*#__PURE__*/
299
+ }), isArrayNonEmpty(treeProps.data) ? ( /*#__PURE__*/
322
300
  // 只做渲染,不做逻辑处理(比如搜索过滤后,check操作的是对过滤后的data操作,这是不符合预期的)
323
301
  React.createElement(Tree, Object.assign({
324
302
  size: 'md',
@@ -335,13 +313,11 @@ var CheckTreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
335
313
  virtual: virtual,
336
314
  itemHeight: itemHeight,
337
315
  height: height
338
- }, treeProps)) : null);
316
+ }, treeProps))) : null);
339
317
  });
340
-
341
318
  if (__DEV__) {
342
319
  CheckTreeSelect.displayName = 'CheckTreeSelect';
343
320
  }
344
-
345
321
  var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
346
322
  return true;
347
323
  };
@@ -352,39 +328,34 @@ var ALWAYS_ALLOW = function ALWAYS_ALLOW() {
352
328
  * @param flattedData
353
329
  * @returns
354
330
  */
355
-
356
-
357
331
  var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, isChecked, allowCheck) {
358
332
  if (allowCheck === void 0) {
359
333
  allowCheck = ALWAYS_ALLOW;
360
334
  }
361
-
362
335
  var semiCheckedNodes = [];
363
336
  var semiCheckedIdsSet = new Set();
364
337
  var parentId;
365
338
  var parent;
366
339
  flattedData.forEach(function (node) {
367
340
  parent = node.parent;
368
-
369
341
  if (parent && parent.id !== undefined) {
370
342
  if (!allowCheck(parent)) return;
371
343
  parentId = parent.id;
372
- if (semiCheckedIdsSet.has(parentId)) return; // 父节点没选中,但是当前节点被选中,则视为半选
373
-
344
+ if (semiCheckedIdsSet.has(parentId)) return;
345
+ // 父节点没选中,但是当前节点被选中,则视为半选
374
346
  if (!isChecked(parentId) && isChecked(node.id)) {
375
347
  semiCheckedIdsSet.add(parentId);
376
348
  semiCheckedNodes.push(parent);
377
349
  }
378
350
  }
379
- }); // 自下而上设置半选态
380
-
351
+ });
352
+ // 自下而上设置半选态
381
353
  semiCheckedNodes.forEach(function (node) {
382
354
  parent = node.parent;
383
-
384
355
  while (parent && parent.id !== undefined) {
385
356
  if (!allowCheck(parent)) return;
386
- parentId = parent.id; // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
387
-
357
+ parentId = parent.id;
358
+ // 可能存在兄弟节点,共同祖先需要去重,避免重复计算
388
359
  if (semiCheckedIdsSet.has(parentId)) return;
389
360
  semiCheckedIdsSet.add(parentId);
390
361
  parent = parent.parent;
@@ -393,5 +364,4 @@ var getSemiCheckedIdsWithSet = function getSemiCheckedIdsWithSet(flattedData, is
393
364
  var semiCheckedIds = Array.from(semiCheckedIdsSet);
394
365
  return [semiCheckedIds, semiCheckedIdsSet];
395
366
  };
396
-
397
367
  export { CheckTreeSelect, getSemiCheckedIdsWithSet };
@@ -11,72 +11,64 @@ import { useState, useMemo, useCallback } from 'react';
11
11
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
12
12
  import { useCascadeCheck } from '@hi-ui/use-check';
13
13
  import { parseCheckDataDirty, processCheckedIds } from '../utils/index.js';
14
+
14
15
  /**
15
16
  * 用于 tree 组件复选的 hook
16
17
  */
17
-
18
18
  var useCheck = function useCheck(checkedMode, disabled, flattedData, defaultCheckedIds, checkedIdsProp, onCheck) {
19
19
  // 搜索时临时选中缓存数据
20
20
  var _useState = useState([]),
21
- checkedNodes = _useState[0],
22
- setCheckedNodes = _useState[1];
23
-
21
+ checkedNodes = _useState[0],
22
+ setCheckedNodes = _useState[1];
24
23
  var _useUncontrolledState = useUncontrolledState(defaultCheckedIds, checkedIdsProp, function (checkedIds, checkedNode, checked, semiCheckedIds) {
25
- var nextCheckedNodes = flattedData.filter(function (item) {
26
- return checkedIds.includes(item.id);
27
- });
28
- setCheckedNodes(nextCheckedNodes);
29
- onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedIds, {
30
- checkedNodes: nextCheckedNodes.map(function (item) {
31
- return item.raw;
32
- }),
33
- targetNode: checkedNode,
34
- semiCheckedIds: semiCheckedIds,
35
- checked: checked
36
- });
37
- }),
38
- checkedIds = _useUncontrolledState[0],
39
- trySetCheckedIds = _useUncontrolledState[1]; // 入口数据处理
40
-
41
-
24
+ var nextCheckedNodes = flattedData.filter(function (item) {
25
+ return checkedIds.includes(item.id);
26
+ });
27
+ setCheckedNodes(nextCheckedNodes);
28
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedIds, {
29
+ checkedNodes: nextCheckedNodes.map(function (item) {
30
+ return item.raw;
31
+ }),
32
+ targetNode: checkedNode,
33
+ semiCheckedIds: semiCheckedIds,
34
+ checked: checked
35
+ });
36
+ }),
37
+ checkedIds = _useUncontrolledState[0],
38
+ trySetCheckedIds = _useUncontrolledState[1];
39
+ // 入口数据处理
42
40
  var parsedCheckedIds = useMemo(function () {
43
41
  return parseCheckDataDirty(checkedMode, checkedIds, flattedData, allowCheck);
44
42
  }, [checkedMode, checkedIds, flattedData]);
45
43
  var cascaded = checkedMode !== 'SEPARATE';
46
-
47
44
  var _useCascadeCheck = useCascadeCheck({
48
- cascaded: cascaded,
49
- disabled: disabled,
50
- flattedData: flattedData,
51
- checkedIds: parsedCheckedIds,
52
- onCheck: function onCheck(checkedIds, checkedNode, checked, semiCheckedIds) {
53
- // 出口数据处理
54
- var processedIds = processCheckedIds(checkedMode, checkedIds, flattedData, allowCheck);
55
- trySetCheckedIds(processedIds, checkedNode, checked, semiCheckedIds);
56
- },
57
- allowCheck: allowCheck
58
- }),
59
- onNodeCheck = _useCascadeCheck[0];
60
-
45
+ cascaded: cascaded,
46
+ disabled: disabled,
47
+ flattedData: flattedData,
48
+ checkedIds: parsedCheckedIds,
49
+ onCheck: function onCheck(checkedIds, checkedNode, checked, semiCheckedIds) {
50
+ // 出口数据处理
51
+ var processedIds = processCheckedIds(checkedMode, checkedIds, flattedData, allowCheck);
52
+ trySetCheckedIds(processedIds, checkedNode, checked, semiCheckedIds);
53
+ },
54
+ allowCheck: allowCheck
55
+ }),
56
+ onNodeCheck = _useCascadeCheck[0];
61
57
  var proxyOnNodeCheck = useCallback(function (target, shouldChecked) {
62
58
  // 保证 target 来源于原数据自身,而不是tree内部
63
59
  var targetNode = flattedData.find(function (item) {
64
60
  return item.id === target.id;
65
61
  });
66
-
67
62
  if (targetNode) {
68
63
  onNodeCheck(targetNode, shouldChecked);
69
64
  }
70
65
  }, [onNodeCheck, flattedData]);
71
66
  return [checkedIds, trySetCheckedIds, proxyOnNodeCheck, checkedNodes, parsedCheckedIds];
72
67
  };
73
-
74
68
  var allowCheck = function allowCheck(targetItem) {
75
69
  if (targetItem.disabled) {
76
70
  return false;
77
71
  }
78
-
79
72
  return true;
80
73
  };
81
-
82
74
  export { useCheck };
@@ -9,7 +9,5 @@
9
9
  */
10
10
  import __styleInject__ from 'style-inject';
11
11
  var css_248z = "";
12
-
13
12
  __styleInject__(css_248z);
14
-
15
13
  export { css_248z as default };