@hi-ui/check-select 4.3.1 → 4.3.3

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.
@@ -31,104 +31,95 @@ import '@hi-ui/use-children';
31
31
  import { flattenData } from './hooks/use-flatten-data.js';
32
32
  import { getAllCheckedStatus, isCheckableOption, isOption } from './utils/index.js';
33
33
  var _role = 'check-select';
34
-
35
34
  var _prefix = getPrefixCls(_role);
36
-
37
35
  var DEFAULT_FIELD_NAMES = {};
38
36
  /**
39
37
  * 多项选择器
40
38
  */
41
-
42
39
  var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
43
40
  // ************************** 国际化 ************************* //
44
41
  var _a$prefixCls = _a.prefixCls,
45
- prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
46
- className = _a.className,
47
- children = _a.children,
48
- _a$disabled = _a.disabled,
49
- disabled = _a$disabled === void 0 ? false : _a$disabled,
50
- _a$clearable = _a.clearable,
51
- clearable = _a$clearable === void 0 ? true : _a$clearable,
52
- _a$showCheckAll = _a.showCheckAll,
53
- showCheckAll = _a$showCheckAll === void 0 ? false : _a$showCheckAll,
54
- _a$showOnlyShowChecke = _a.showOnlyShowChecked,
55
- showOnlyShowChecked = _a$showOnlyShowChecke === void 0 ? false : _a$showOnlyShowChecke,
56
- placeholderProp = _a.placeholder,
57
- displayRenderProp = _a.displayRender,
58
- onSelectProp = _a.onSelect,
59
- height = _a.height,
60
- _a$itemHeight = _a.itemHeight,
61
- itemHeight = _a$itemHeight === void 0 ? 40 : _a$itemHeight,
62
- _a$virtual = _a.virtual,
63
- virtual = _a$virtual === void 0 ? true : _a$virtual,
64
- visible = _a.visible,
65
- onOpen = _a.onOpen,
66
- onClose = _a.onClose,
67
- appearance = _a.appearance,
68
- invalid = _a.invalid,
69
- dataSource = _a.dataSource,
70
- filterOption = _a.filterOption,
71
- searchableProp = _a.searchable,
72
- titleRender = _a.render,
73
- renderExtraFooter = _a.renderExtraFooter,
74
- onSearchProp = _a.onSearch,
75
- _a$fieldNames = _a.fieldNames,
76
- fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
77
- customRender = _a.customRender,
78
- tagInputProps = _a.tagInputProps,
79
- _a$size = _a.size,
80
- size = _a$size === void 0 ? 'md' : _a$size,
81
- onKeyDownProp = _a.onKeyDown,
82
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "showCheckAll", "showOnlyShowChecked", "placeholder", "displayRender", "onSelect", "height", "itemHeight", "virtual", "visible", "onOpen", "onClose", "appearance", "invalid", "dataSource", "filterOption", "searchable", "render", "renderExtraFooter", "onSearch", "fieldNames", "customRender", "tagInputProps", "size", "onKeyDown"]);
83
-
42
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
43
+ className = _a.className,
44
+ children = _a.children,
45
+ _a$disabled = _a.disabled,
46
+ disabled = _a$disabled === void 0 ? false : _a$disabled,
47
+ _a$clearable = _a.clearable,
48
+ clearable = _a$clearable === void 0 ? true : _a$clearable,
49
+ _a$showCheckAll = _a.showCheckAll,
50
+ showCheckAll = _a$showCheckAll === void 0 ? false : _a$showCheckAll,
51
+ _a$showOnlyShowChecke = _a.showOnlyShowChecked,
52
+ showOnlyShowChecked = _a$showOnlyShowChecke === void 0 ? false : _a$showOnlyShowChecke,
53
+ placeholderProp = _a.placeholder,
54
+ displayRenderProp = _a.displayRender,
55
+ onSelectProp = _a.onSelect,
56
+ height = _a.height,
57
+ _a$itemHeight = _a.itemHeight,
58
+ itemHeight = _a$itemHeight === void 0 ? 40 : _a$itemHeight,
59
+ _a$virtual = _a.virtual,
60
+ virtual = _a$virtual === void 0 ? true : _a$virtual,
61
+ visible = _a.visible,
62
+ onOpen = _a.onOpen,
63
+ onClose = _a.onClose,
64
+ appearance = _a.appearance,
65
+ invalid = _a.invalid,
66
+ dataSource = _a.dataSource,
67
+ filterOption = _a.filterOption,
68
+ searchableProp = _a.searchable,
69
+ titleRender = _a.render,
70
+ renderExtraFooter = _a.renderExtraFooter,
71
+ onSearchProp = _a.onSearch,
72
+ _a$fieldNames = _a.fieldNames,
73
+ fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
74
+ customRender = _a.customRender,
75
+ tagInputProps = _a.tagInputProps,
76
+ _a$size = _a.size,
77
+ size = _a$size === void 0 ? 'md' : _a$size,
78
+ onKeyDownProp = _a.onKeyDown,
79
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "showCheckAll", "showOnlyShowChecked", "placeholder", "displayRender", "onSelect", "height", "itemHeight", "virtual", "visible", "onOpen", "onClose", "appearance", "invalid", "dataSource", "filterOption", "searchable", "render", "renderExtraFooter", "onSearch", "fieldNames", "customRender", "tagInputProps", "size", "onKeyDown"]);
84
80
  var i18n = useLocaleContext();
85
- var placeholder = isUndef(placeholderProp) ? i18n.get('checkSelect.placeholder') : placeholderProp; // ************************** Picker ************************* //
86
-
81
+ var placeholder = isUndef(placeholderProp) ? i18n.get('checkSelect.placeholder') : placeholderProp;
82
+ // ************************** Picker ************************* //
87
83
  var _useUncontrolledToggl = useUncontrolledToggle({
88
- visible: visible,
89
- disabled: disabled,
90
- onOpen: onOpen,
91
- onClose: onClose
92
- }),
93
- menuVisible = _useUncontrolledToggl[0],
94
- menuVisibleAction = _useUncontrolledToggl[1];
95
-
84
+ visible: visible,
85
+ disabled: disabled,
86
+ onOpen: onOpen,
87
+ onClose: onClose
88
+ }),
89
+ menuVisible = _useUncontrolledToggl[0],
90
+ menuVisibleAction = _useUncontrolledToggl[1];
96
91
  var displayRender = useCallback(function (item) {
97
92
  if (isFunction(displayRenderProp)) {
98
93
  return displayRenderProp(item);
99
94
  }
100
-
101
95
  return item.title;
102
96
  }, [displayRenderProp]);
103
-
104
97
  var _b = useCheckSelect(Object.assign(Object.assign({}, rest), {
105
- children: children,
106
- fieldNames: fieldNames,
107
- onSelect: onSelectProp
108
- })),
109
- rootProps = _b.rootProps,
110
- context = __rest(_b, ["rootProps"]);
111
-
98
+ children: children,
99
+ fieldNames: fieldNames,
100
+ onSelect: onSelectProp
101
+ })),
102
+ rootProps = _b.rootProps,
103
+ context = __rest(_b, ["rootProps"]);
112
104
  var value = context.value,
113
- tryChangeValue = context.tryChangeValue,
114
- flattedData = context.flattedData,
115
- checkedItems = context.checkedItems,
116
- onSelect = context.onSelect,
117
- isCheckedId = context.isCheckedId; // ************************** 搜索 ************************* //
118
-
105
+ tryChangeValue = context.tryChangeValue,
106
+ flattedData = context.flattedData,
107
+ checkedItems = context.checkedItems,
108
+ onSelect = context.onSelect,
109
+ isCheckedId = context.isCheckedId;
110
+ // ************************** 搜索 ************************* //
119
111
  var _c = useAsyncSearch({
120
- dataSource: dataSource,
121
- dataTransform: function dataTransform(data) {
122
- return flattenData({
123
- data: data,
124
- fieldNames: fieldNames
125
- });
126
- }
127
- }),
128
- loading = _c.loading,
129
- hasError = _c.hasError,
130
- dataSourceStrategy = __rest(_c, ["loading", "hasError"]);
131
-
112
+ dataSource: dataSource,
113
+ dataTransform: function dataTransform(data) {
114
+ return flattenData({
115
+ data: data,
116
+ fieldNames: fieldNames
117
+ });
118
+ }
119
+ }),
120
+ loading = _c.loading,
121
+ hasError = _c.hasError,
122
+ dataSourceStrategy = __rest(_c, ["loading", "hasError"]);
132
123
  var customSearchStrategy = useTreeCustomSearch({
133
124
  data: flattedData,
134
125
  filterOption: filterOption
@@ -138,26 +129,22 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
138
129
  flattedData: flattedData,
139
130
  enabled: searchableProp
140
131
  });
141
-
142
132
  var _useSearchMode = useSearchMode({
143
- searchable: searchableProp,
144
- strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy]
145
- }),
146
- stateInSearch = _useSearchMode.state,
147
- searchable = _useSearchMode.searchable,
148
- searchMode = _useSearchMode.searchMode,
149
- onSearch = _useSearchMode.onSearch,
150
- searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
151
-
152
-
133
+ searchable: searchableProp,
134
+ strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy]
135
+ }),
136
+ stateInSearch = _useSearchMode.state,
137
+ searchable = _useSearchMode.searchable,
138
+ searchMode = _useSearchMode.searchMode,
139
+ onSearch = _useSearchMode.onSearch,
140
+ searchValue = _useSearchMode.keyword;
141
+ // 拦截 titleRender,自定义高亮展示
153
142
  var proxyTitleRender = useCallback(function (node) {
154
143
  if (titleRender) {
155
144
  var _ret = titleRender(node);
156
-
157
145
  if (_ret && _ret !== true) return _ret;
158
- } // 本地搜索执行默认高亮规则
159
-
160
-
146
+ }
147
+ // 本地搜索执行默认高亮规则
161
148
  var highlight = !!searchValue && searchMode === 'filter';
162
149
  var ret = highlight ? /*#__PURE__*/React.createElement(Checkbox, {
163
150
  checked: node.checked,
@@ -170,42 +157,35 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
170
157
  var shouldUseSearch = !!searchValue && !hasError;
171
158
  var showData = useMemo(function () {
172
159
  return shouldUseSearch ? stateInSearch.data : flattedData;
173
- }, [shouldUseSearch, flattedData, stateInSearch.data]); // 根据 id 进行合并,注意必须是扁平数据
174
-
160
+ }, [shouldUseSearch, flattedData, stateInSearch.data]);
161
+ // 根据 id 进行合并,注意必须是扁平数据
175
162
  var mergedData = useMemo(function () {
176
163
  var nextData = checkedItems.concat(flattedData);
177
164
  return uniqBy(nextData, 'id');
178
165
  }, [checkedItems, flattedData]);
179
-
180
166
  var _useState = useState(null),
181
- filterItems = _useState[0],
182
- setFilterItems = _useState[1];
183
-
167
+ filterItems = _useState[0],
168
+ setFilterItems = _useState[1];
184
169
  var dropdownItems = filterItems || showData;
185
170
  var activeExpandable = showOnlyShowChecked && !!filterItems && menuVisible;
186
-
187
171
  var _useMemo = useMemo(function () {
188
- return getAllCheckedStatus(dropdownItems, value, isOption);
189
- }, [dropdownItems, value]),
190
- showAllChecked = _useMemo[0],
191
- showIndeterminate = _useMemo[1];
192
-
172
+ return getAllCheckedStatus(dropdownItems, value, isOption);
173
+ }, [dropdownItems, value]),
174
+ showAllChecked = _useMemo[0],
175
+ showIndeterminate = _useMemo[1];
193
176
  var valueLatestRef = useLatestRef(value);
194
177
  var toggleCheckAll = useCallback(function () {
195
178
  var value = valueLatestRef.current;
196
-
197
179
  var _getAllCheckedStatus = getAllCheckedStatus(dropdownItems, value, isCheckableOption),
198
- currentAllChecked = _getAllCheckedStatus[0];
199
-
200
- var shouldChecked = !currentAllChecked; // 当前页的数据选项
201
-
180
+ currentAllChecked = _getAllCheckedStatus[0];
181
+ var shouldChecked = !currentAllChecked;
182
+ // 当前页的数据选项
202
183
  var items = dropdownItems.filter(isCheckableOption);
203
184
  var targetIds = items.map(function (_ref) {
204
185
  var id = _ref.id;
205
186
  return id;
206
187
  });
207
188
  var allData = uniqBy(items.concat(mergedData), 'id');
208
-
209
189
  if (shouldChecked) {
210
190
  var nextCheckedIds = Array.from(new Set(value.concat(targetIds)));
211
191
  var changedIds = nextCheckedIds.filter(function (id) {
@@ -220,48 +200,38 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
220
200
  var _nextCheckedIds = value.filter(function (id) {
221
201
  return !targetIds.includes(id);
222
202
  });
223
-
224
203
  var _changedIds = value.filter(function (id) {
225
204
  return !_nextCheckedIds.includes(id);
226
205
  });
227
-
228
206
  var _changedItems = allData.filter(function (_ref3) {
229
207
  var id = _ref3.id;
230
208
  return _changedIds.includes(id);
231
209
  }); // items
232
-
233
-
234
210
  tryChangeValue(_nextCheckedIds, _changedItems, shouldChecked);
235
211
  }
236
- }, [dropdownItems, mergedData, valueLatestRef, tryChangeValue]); // ************************** 回车选中处理 ************************* //
237
-
212
+ }, [dropdownItems, mergedData, valueLatestRef, tryChangeValue]);
213
+ // ************************** 回车选中处理 ************************* //
238
214
  var defaultIndex = showData.findIndex(function (item) {
239
215
  return !item.disabled;
240
216
  });
241
-
242
217
  var _useState2 = useState(defaultIndex),
243
- focusedIndex = _useState2[0],
244
- setFocusedIndex = _useState2[1];
245
-
218
+ focusedIndex = _useState2[0],
219
+ setFocusedIndex = _useState2[1];
246
220
  var handleKeyDown = useLatestCallback(function (evt) {
247
221
  var key = evt.key;
248
-
249
222
  if (key === 'Enter') {
250
223
  var focusedItem = showData[focusedIndex];
251
-
252
224
  if (focusedItem) {
253
225
  onSelect(focusedItem, !isCheckedId(focusedItem.id));
254
226
  }
255
227
  }
256
- }); // 更新 focused 索引
257
-
228
+ });
229
+ // 更新 focused 索引
258
230
  useEffect(function () {
259
231
  setFocusedIndex(defaultIndex);
260
232
  }, [defaultIndex, menuVisible]);
261
-
262
233
  var renderDefaultFooter = function renderDefaultFooter() {
263
234
  var extra = renderExtraFooter ? renderExtraFooter() : null;
264
-
265
235
  if (showCheckAll) {
266
236
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
267
237
  indeterminate: showIndeterminate,
@@ -269,10 +239,8 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
269
239
  onChange: toggleCheckAll
270
240
  }, i18n.get('checkSelect.checkAll')), extra);
271
241
  }
272
-
273
242
  return extra;
274
243
  };
275
-
276
244
  var expandedViewRef = useRef('normal');
277
245
  var virtualListProps = {
278
246
  height: height,
@@ -280,16 +248,13 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
280
248
  virtual: virtual,
281
249
  data: dropdownItems
282
250
  };
283
-
284
251
  var _useCheckInVirtual = useCheckInVirtual(virtualListProps),
285
- inVirtual = _useCheckInVirtual.inVirtual;
286
-
252
+ inVirtual = _useCheckInVirtual.inVirtual;
287
253
  var cls = cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
288
254
  var listRef = useRef(null);
289
255
  useEffect(function () {
290
- var _a; // 每次打开或数据改变时触发一次滚动条显示
291
-
292
-
256
+ var _a;
257
+ // 每次打开或数据改变时触发一次滚动条显示
293
258
  if (menuVisible && isArrayNonEmpty(showData)) {
294
259
  (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(undefined);
295
260
  }
@@ -326,14 +291,12 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
326
291
  invalid: invalid,
327
292
  onClick: function onClick(evt) {
328
293
  if (!showOnlyShowChecked) return;
329
- if (disabled) return; // 阻止 Picker 调用 onOpen/onClose
330
-
294
+ if (disabled) return;
295
+ // 阻止 Picker 调用 onOpen/onClose
331
296
  evt.preventDefault();
332
-
333
297
  if (filterItems) {
334
298
  setFilterItems(null);
335
299
  }
336
-
337
300
  if (menuVisible) {
338
301
  if (expandedViewRef.current === 'normal') {
339
302
  menuVisibleAction.off();
@@ -341,15 +304,14 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
341
304
  } else {
342
305
  menuVisibleAction.on();
343
306
  }
344
-
345
307
  expandedViewRef.current = 'normal';
346
308
  },
347
309
  expandable: showOnlyShowChecked,
348
310
  activeExpandable: activeExpandable,
349
311
  onExpand: function onExpand(evt) {
350
312
  if (!showOnlyShowChecked) return;
351
- if (disabled) return; // 阻止冒泡触发外层 onClick
352
-
313
+ if (disabled) return;
314
+ // 阻止冒泡触发外层 onClick
353
315
  evt.stopPropagation();
354
316
  evt.preventDefault();
355
317
  setFilterItems(function () {
@@ -357,7 +319,6 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
357
319
  return value.includes(item.id);
358
320
  });
359
321
  });
360
-
361
322
  if (menuVisible) {
362
323
  if (expandedViewRef.current !== 'normal') {
363
324
  menuVisibleAction.off();
@@ -365,7 +326,6 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
365
326
  } else {
366
327
  menuVisibleAction.on();
367
328
  }
368
-
369
329
  expandedViewRef.current = 'onlyChecked';
370
330
  }
371
331
  }))
@@ -387,34 +347,30 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
387
347
  focused: focusedIndex === index
388
348
  });
389
349
  }) : null));
390
- }); // @ts-ignore
391
-
350
+ });
351
+ // @ts-ignore
392
352
  CheckSelect.HiName = 'CheckSelect';
393
-
394
353
  if (__DEV__) {
395
354
  CheckSelect.displayName = 'CheckSelect';
396
355
  }
397
-
398
356
  var optionPrefix = getPrefixCls('check-select-option');
399
357
  var CheckSelectOption = /*#__PURE__*/forwardRef(function (_a, ref) {
400
358
  var _a$prefixCls2 = _a.prefixCls,
401
- prefixCls = _a$prefixCls2 === void 0 ? optionPrefix : _a$prefixCls2,
402
- className = _a.className,
403
- _a$option = _a.option,
404
- option = _a$option === void 0 ? {} : _a$option,
405
- onClick = _a.onClick,
406
- titleRender = _a.titleRender,
407
- depth = _a.depth,
408
- focused = _a.focused,
409
- rest = __rest(_a, ["prefixCls", "className", "children", "option", "onClick", "titleRender", "depth", "focused"]);
410
-
359
+ prefixCls = _a$prefixCls2 === void 0 ? optionPrefix : _a$prefixCls2,
360
+ className = _a.className,
361
+ _a$option = _a.option,
362
+ option = _a$option === void 0 ? {} : _a$option,
363
+ onClick = _a.onClick,
364
+ titleRender = _a.titleRender,
365
+ depth = _a.depth,
366
+ focused = _a.focused,
367
+ rest = __rest(_a, ["prefixCls", "className", "children", "option", "onClick", "titleRender", "depth", "focused"]);
411
368
  var _useCheckSelectContex = useCheckSelectContext(),
412
- isCheckedId = _useCheckSelectContex.isCheckedId,
413
- onSelect = _useCheckSelectContex.onSelect;
414
-
369
+ isCheckedId = _useCheckSelectContex.isCheckedId,
370
+ onSelect = _useCheckSelectContex.onSelect;
415
371
  var id = option.id,
416
- _option$disabled = option.disabled,
417
- disabled = _option$disabled === void 0 ? false : _option$disabled;
372
+ _option$disabled = option.disabled,
373
+ disabled = _option$disabled === void 0 ? false : _option$disabled;
418
374
  var checked = isCheckedId(id);
419
375
  var eventNodeRef = useLatestRef(Object.assign({}, option, {
420
376
  disabled: disabled,
@@ -441,39 +397,33 @@ var CheckSelectOption = /*#__PURE__*/forwardRef(function (_a, ref) {
441
397
  }, rest, {
442
398
  onClick: handleOptionCheck
443
399
  }), renderIndent(prefixCls, depth), renderTitle(eventNodeRef.current, titleRender));
444
- }); // @ts-ignore
445
-
400
+ });
401
+ // @ts-ignore
446
402
  CheckSelectOption.HiName = 'CheckSelectOption';
447
-
448
403
  if (__DEV__) {
449
404
  CheckSelectOption.displayName = 'CheckSelectOption';
450
405
  }
451
-
452
406
  var optionGroupPrefix = getPrefixCls('select-option-group');
453
407
  var CheckSelectOptionGroup = /*#__PURE__*/forwardRef(function (_a, ref) {
454
408
  var _a$prefixCls3 = _a.prefixCls,
455
- prefixCls = _a$prefixCls3 === void 0 ? optionGroupPrefix : _a$prefixCls3,
456
- className = _a.className,
457
- label = _a.label,
458
- rest = __rest(_a, ["prefixCls", "className", "label"]);
459
-
409
+ prefixCls = _a$prefixCls3 === void 0 ? optionGroupPrefix : _a$prefixCls3,
410
+ className = _a.className,
411
+ label = _a.label,
412
+ rest = __rest(_a, ["prefixCls", "className", "label"]);
460
413
  var cls = cx(prefixCls, className);
461
414
  return /*#__PURE__*/React.createElement("div", Object.assign({
462
415
  ref: ref,
463
416
  className: cls
464
417
  }, rest), /*#__PURE__*/React.createElement("span", null, label));
465
- }); // @ts-ignore
466
-
418
+ });
419
+ // @ts-ignore
467
420
  CheckSelectOptionGroup.HiName = 'CheckSelectOptionGroup';
468
-
469
421
  if (__DEV__) {
470
422
  CheckSelectOptionGroup.displayName = 'CheckSelectOptionGroup';
471
423
  }
472
424
  /**
473
425
  * 渲染空白占位
474
426
  */
475
-
476
-
477
427
  var renderIndent = function renderIndent(prefixCls, depth) {
478
428
  return times(depth, function (index) {
479
429
  return /*#__PURE__*/React.createElement("span", {
@@ -486,5 +436,4 @@ var renderIndent = function renderIndent(prefixCls, depth) {
486
436
  }));
487
437
  });
488
438
  };
489
-
490
439
  export { CheckSelect, CheckSelectOption, CheckSelectOptionGroup };
@@ -10,15 +10,11 @@
10
10
  import { useContext, createContext } from 'react';
11
11
  var checkSelectContext = /*#__PURE__*/createContext(null);
12
12
  var CheckSelectProvider = checkSelectContext.Provider;
13
-
14
13
  var useCheckSelectContext = function useCheckSelectContext() {
15
14
  var context = useContext(checkSelectContext);
16
-
17
15
  if (!context) {
18
16
  throw new Error('The checkSelectContext context should using in CheckSelect.');
19
17
  }
20
-
21
18
  return context;
22
19
  };
23
-
24
20
  export { CheckSelectProvider, useCheckSelectContext };
@@ -8,6 +8,7 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { useState, useEffect } from 'react';
11
+
11
12
  /** @LICENSE
12
13
  * @hi-ui/use-cache
13
14
  * https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-cache#readme
@@ -21,16 +22,13 @@ import { useState, useEffect } from 'react';
21
22
  /**
22
23
  * A hook using for data cache that compatible with the controlled and uncontrolled modes coexist.
23
24
  */
24
-
25
25
  var useCache = function useCache(data) {
26
26
  var _useState = useState(data),
27
- internalData = _useState[0],
28
- setInternalData = _useState[1];
29
-
27
+ internalData = _useState[0],
28
+ setInternalData = _useState[1];
30
29
  useEffect(function () {
31
30
  setInternalData(data);
32
31
  }, [data]);
33
32
  return [internalData, setInternalData];
34
33
  };
35
-
36
34
  export { useCache };
@@ -11,23 +11,20 @@ import { __rest } from 'tslib';
11
11
  import { useMemo, isValidElement } from 'react';
12
12
  import { toArray } from '@hi-ui/use-children';
13
13
  var NOOP_ARRAY = [];
14
-
15
14
  var useData = function useData(_ref) {
16
15
  var data = _ref.data,
17
- children = _ref.children;
16
+ children = _ref.children;
18
17
  return useMemo(function () {
19
- var mergedData; // data 优先级大于内嵌式组合
20
-
18
+ var mergedData;
19
+ // data 优先级大于内嵌式组合
21
20
  if (Array.isArray(data)) {
22
21
  mergedData = data;
23
22
  } else if (children) {
24
23
  mergedData = parseChildren(children);
25
24
  }
26
-
27
25
  return mergedData || NOOP_ARRAY;
28
26
  }, [children, data]);
29
27
  };
30
-
31
28
  var parseChildren = function parseChildren(children) {
32
29
  var data = [];
33
30
  var list = toArray(children);
@@ -35,13 +32,11 @@ var parseChildren = function parseChildren(children) {
35
32
  if (! /*#__PURE__*/isValidElement(item)) return;
36
33
  if (!item.type) return;
37
34
  var HiName = item.type.HiName;
38
-
39
35
  switch (HiName) {
40
36
  case 'CheckSelectOption':
41
37
  var option = parseOption(item);
42
38
  data.push(option);
43
39
  break;
44
-
45
40
  case 'CheckSelectOptionGroup':
46
41
  var optGroup = parseOptionGroup(item);
47
42
  data.push(optGroup);
@@ -50,14 +45,12 @@ var parseChildren = function parseChildren(children) {
50
45
  });
51
46
  return data;
52
47
  };
53
-
54
48
  var parseOption = function parseOption(node) {
55
49
  var _a = node.props,
56
- value = _a.value,
57
- children = _a.children,
58
- disabled = _a.disabled,
59
- rest = __rest(_a, ["value", "children", "disabled", "groupTitle"]);
60
-
50
+ value = _a.value,
51
+ children = _a.children,
52
+ disabled = _a.disabled,
53
+ rest = __rest(_a, ["value", "children", "disabled", "groupTitle"]);
61
54
  var option = {
62
55
  id: value,
63
56
  title: children,
@@ -67,27 +60,22 @@ var parseOption = function parseOption(node) {
67
60
  };
68
61
  return option;
69
62
  };
70
-
71
63
  var parseOptionGroup = function parseOptionGroup(node) {
72
64
  var key = node.key,
73
- _a = node.props,
74
- groupId = _a.groupId,
75
- label = _a.label,
76
- children = _a.children,
77
- rest = __rest(_a, ["groupId", "label", "children"]);
78
-
65
+ _a = node.props,
66
+ groupId = _a.groupId,
67
+ label = _a.label,
68
+ children = _a.children,
69
+ rest = __rest(_a, ["groupId", "label", "children"]);
79
70
  var optGroup = {
80
71
  groupId: groupId !== null && groupId !== void 0 ? groupId : key,
81
72
  groupTitle: label,
82
73
  rootProps: rest,
83
74
  children: []
84
75
  };
85
-
86
76
  if (children) {
87
77
  optGroup.children = parseChildren(children);
88
78
  }
89
-
90
79
  return optGroup;
91
80
  };
92
-
93
81
  export { parseChildren, useData };