@hi-ui/check-select 4.0.0-alpha.9 → 4.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +116 -7
  2. package/lib/cjs/CheckSelect.js +315 -144
  3. package/lib/cjs/CheckSelect.js.map +1 -1
  4. package/lib/cjs/hooks/use-data.js +104 -0
  5. package/lib/cjs/hooks/use-data.js.map +1 -0
  6. package/lib/cjs/hooks/use-flatten-data.js +78 -0
  7. package/lib/cjs/hooks/use-flatten-data.js.map +1 -0
  8. package/lib/cjs/index.js +0 -1
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/cjs/styles/index.scss.js +1 -1
  11. package/lib/cjs/use-check-select.js +50 -96
  12. package/lib/cjs/use-check-select.js.map +1 -1
  13. package/lib/esm/CheckSelect.js +309 -141
  14. package/lib/esm/CheckSelect.js.map +1 -1
  15. package/lib/esm/hooks/use-data.js +94 -0
  16. package/lib/esm/hooks/use-data.js.map +1 -0
  17. package/lib/esm/hooks/use-flatten-data.js +69 -0
  18. package/lib/esm/hooks/use-flatten-data.js.map +1 -0
  19. package/lib/esm/index.js +1 -1
  20. package/lib/esm/styles/index.scss.js +1 -1
  21. package/lib/esm/use-check-select.js +49 -88
  22. package/lib/esm/use-check-select.js.map +1 -1
  23. package/lib/types/CheckSelect.d.ts +57 -21
  24. package/lib/types/context.d.ts +8 -30
  25. package/lib/types/hooks/index.d.ts +2 -0
  26. package/lib/types/hooks/use-data.d.ts +4 -0
  27. package/lib/types/hooks/use-flatten-data.d.ts +2 -0
  28. package/lib/types/hooks/use-search.d.ts +2 -2
  29. package/lib/types/types.d.ts +29 -5
  30. package/lib/types/use-check-select.d.ts +20 -52
  31. package/package.json +29 -19
  32. package/lib/cjs/hooks/use-search.js +0 -154
  33. package/lib/cjs/hooks/use-search.js.map +0 -1
  34. package/lib/cjs/utils/type-assertion/lib/esm/index.js +0 -42
  35. package/lib/cjs/utils/type-assertion/lib/esm/index.js.map +0 -1
  36. package/lib/esm/hooks/use-search.js +0 -144
  37. package/lib/esm/hooks/use-search.js.map +0 -1
  38. package/lib/esm/utils/type-assertion/lib/esm/index.js +0 -33
  39. package/lib/esm/utils/type-assertion/lib/esm/index.js.map +0 -1
@@ -8,43 +8,51 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import React, { forwardRef, useState, useCallback, useMemo } from 'react';
11
+ import React, { forwardRef, useCallback, useState, useMemo, useRef } from 'react';
12
12
  import { getPrefixCls, cx } from '@hi-ui/classname';
13
13
  import { __DEV__ } from '@hi-ui/env';
14
- import Input from '@hi-ui/input';
15
14
  import { useCheckSelect } from './use-check-select.js';
16
- import Popper from '@hi-ui/popper';
17
- import { DownOutlined, SearchOutlined } from '@hi-ui/icons';
15
+ import { UpOutlined, DownOutlined } from '@hi-ui/icons';
18
16
  import { CheckSelectProvider, useCheckSelectContext } from './context.js';
19
- import { useLatestCallback } from '@hi-ui/use-latest';
17
+ import { useLatestCallback, useLatestRef } from '@hi-ui/use-latest';
20
18
  import Checkbox from '@hi-ui/checkbox';
21
- import { TagInput, TagInputMock } from '@hi-ui/tag-input';
22
- import { isFunction } from './utils/type-assertion/lib/esm/index.js';
19
+ import { TagInputMock } from '@hi-ui/tag-input';
20
+ import { isUndef, isFunction, isArrayNonEmpty } from '@hi-ui/type-assertion';
23
21
  import VirtualList from 'rc-virtual-list';
22
+ import { Picker } from '@hi-ui/picker';
23
+ import { uniqBy } from '@hi-ui/array-utils';
24
+ import { Highlighter } from '@hi-ui/highlighter';
25
+ import { useToggle } from '@hi-ui/use-toggle';
26
+ import { times } from '@hi-ui/times';
27
+ import { callAllFuncs } from '@hi-ui/func-utils';
28
+ import { useLocaleContext } from '@hi-ui/locale-context';
29
+ import { useAsyncSearch, useTreeCustomSearch, useFilterSearch, useSearchMode } from '@hi-ui/use-search-mode';
30
+ import '@hi-ui/use-children';
31
+ import { flattenData } from './hooks/use-flatten-data.js';
24
32
  var _role = 'check-select';
25
33
 
26
34
  var _prefix = getPrefixCls(_role);
35
+
36
+ var DEFAULT_FIELD_NAMES = {};
27
37
  /**
28
38
  * TODO: What is CheckSelect
29
39
  */
30
40
 
31
-
32
41
  var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
42
+ // ************************** 国际化 ************************* //
33
43
  var _a$prefixCls = _a.prefixCls,
34
44
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
35
- _a$role = _a.role,
36
- role = _a$role === void 0 ? _role : _a$role,
37
45
  className = _a.className,
38
46
  children = _a.children,
39
47
  _a$disabled = _a.disabled,
40
48
  disabled = _a$disabled === void 0 ? false : _a$disabled,
41
49
  _a$clearable = _a.clearable,
42
- clearable = _a$clearable === void 0 ? false : _a$clearable,
43
- _a$searchable = _a.searchable,
44
- searchable = _a$searchable === void 0 ? false : _a$searchable,
45
- _a$wrap = _a.wrap,
46
- wrap = _a$wrap === void 0 ? true : _a$wrap,
47
- placeholder = _a.placeholder,
50
+ clearable = _a$clearable === void 0 ? true : _a$clearable,
51
+ _a$showCheckAll = _a.showCheckAll,
52
+ showCheckAll = _a$showCheckAll === void 0 ? false : _a$showCheckAll,
53
+ _a$showOnlyShowChecke = _a.showOnlyShowChecked,
54
+ showOnlyShowChecked = _a$showOnlyShowChecke === void 0 ? false : _a$showOnlyShowChecke,
55
+ placeholderProp = _a.placeholder,
48
56
  displayRenderProp = _a.displayRender,
49
57
  onSelectProp = _a.onSelect,
50
58
  height = _a.height,
@@ -52,107 +60,271 @@ var CheckSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
52
60
  itemHeight = _a$itemHeight === void 0 ? 40 : _a$itemHeight,
53
61
  _a$virtual = _a.virtual,
54
62
  virtual = _a$virtual === void 0 ? true : _a$virtual,
55
- popper = _a.popper,
56
- onOpen = _a.onOpen,
57
- onClose = _a.onClose,
58
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "searchable", "invalid", "wrap", "placeholder", "displayRender", "onSelect", "height", "itemHeight", "virtual", "popper", "onOpen", "onClose"]);
59
-
60
- var _useState = useState(null),
61
- targetElRef = _useState[0],
62
- setTargetElRef = _useState[1];
63
-
64
- var _useState2 = useState(false),
65
- menuVisible = _useState2[0],
66
- setMenuVisible = _useState2[1];
67
-
68
- var onOpenLatest = useLatestCallback(onOpen);
69
- var onCloseLatest = useLatestCallback(onClose);
70
- var closeMenu = useCallback(function () {
71
- if (disabled) return;
72
- setMenuVisible(false);
73
- onOpenLatest();
74
- }, [disabled, onOpenLatest]);
75
- var openMenu = useCallback(function () {
76
- if (disabled) return;
77
- setMenuVisible(true);
78
- onCloseLatest();
79
- }, [disabled, onCloseLatest]);
63
+ appearance = _a.appearance,
64
+ invalid = _a.invalid,
65
+ dataSource = _a.dataSource,
66
+ filterOption = _a.filterOption,
67
+ searchableProp = _a.searchable,
68
+ titleRender = _a.render,
69
+ renderExtraFooter = _a.renderExtraFooter,
70
+ onSearchProp = _a.onSearch,
71
+ _a$fieldNames = _a.fieldNames,
72
+ fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
73
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "wrap", "showCheckAll", "showOnlyShowChecked", "placeholder", "displayRender", "onSelect", "height", "itemHeight", "virtual", "onOpen", "onClose", "appearance", "invalid", "dataSource", "filterOption", "searchable", "render", "renderExtraFooter", "onSearch", "fieldNames"]);
74
+
75
+ var i18n = useLocaleContext();
76
+ var placeholder = isUndef(placeholderProp) ? i18n.get('checkSelect.placeholder') : placeholderProp; // ************************** Picker ************************* //
77
+
78
+ var _useToggle = useToggle(),
79
+ menuVisible = _useToggle[0],
80
+ menuVisibleAction = _useToggle[1];
81
+
80
82
  var displayRender = useCallback(function (item) {
81
83
  if (isFunction(displayRenderProp)) {
82
84
  return displayRenderProp(item);
83
85
  }
84
86
 
85
87
  return item.title;
86
- }, [displayRenderProp]);
87
- var onSelectLatest = useLatestCallback(onSelectProp);
88
+ }, [displayRenderProp]); // 搜索时临时选中缓存数据
89
+
90
+ var _useState = useState([]),
91
+ selectedItems = _useState[0],
92
+ setSelectedItems = _useState[1];
93
+
94
+ var onSelect = useLatestCallback(function (value, item, shouldChecked) {
95
+ onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(value, item, shouldChecked);
96
+
97
+ if (shouldChecked) {
98
+ // TODO:as useCheckList
99
+ setSelectedItems(function (prev) {
100
+ return [].concat(prev, [item]);
101
+ });
102
+ }
103
+ });
88
104
 
89
105
  var _b = useCheckSelect(Object.assign(Object.assign({}, rest), {
90
106
  children: children,
91
- onSelect: onSelectLatest
107
+ fieldNames: fieldNames,
108
+ onSelect: onSelect
92
109
  })),
93
110
  rootProps = _b.rootProps,
94
111
  context = __rest(_b, ["rootProps"]);
95
112
 
96
113
  var value = context.value,
97
114
  tryChangeValue = context.tryChangeValue,
98
- selectData = context.data;
99
- var virtualData = useMemo(function () {
100
- return selectData.reduce(function (acc, cur, index) {
101
- if ('groupTitle' in cur) {
102
- acc.push({
103
- id: "group-" + index,
104
- groupTitle: cur.groupTitle,
105
- rootProps: cur.rootProps
106
- });
107
- return acc.concat(cur.children);
115
+ flattedData = context.flattedData; // ************************** 搜索 ************************* //
116
+
117
+ var _c = useAsyncSearch({
118
+ dataSource: dataSource,
119
+ dataTransform: function dataTransform(data) {
120
+ return flattenData({
121
+ data: data,
122
+ fieldNames: fieldNames
123
+ });
124
+ }
125
+ }),
126
+ loading = _c.loading,
127
+ hasError = _c.hasError,
128
+ dataSourceStrategy = __rest(_c, ["loading", "hasError"]);
129
+
130
+ var customSearchStrategy = useTreeCustomSearch({
131
+ data: flattedData,
132
+ filterOption: filterOption
133
+ });
134
+ var filterSearchStrategy = useFilterSearch({
135
+ data: flattedData,
136
+ flattedData: flattedData,
137
+ enabled: searchableProp
138
+ });
139
+
140
+ var _useSearchMode = useSearchMode({
141
+ searchable: searchableProp,
142
+ strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy]
143
+ }),
144
+ stateInSearch = _useSearchMode.state,
145
+ searchable = _useSearchMode.searchable,
146
+ searchMode = _useSearchMode.searchMode,
147
+ onSearch = _useSearchMode.onSearch,
148
+ searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
149
+
150
+
151
+ var proxyTitleRender = useCallback(function (node) {
152
+ if (titleRender) {
153
+ var _ret = titleRender(node);
154
+
155
+ if (_ret && _ret !== true) return _ret;
156
+ } // 本地搜索执行默认高亮规则
157
+
158
+
159
+ var highlight = !!searchValue && searchMode === 'filter';
160
+ var ret = highlight ? /*#__PURE__*/React.createElement(Checkbox, {
161
+ checked: node.checked,
162
+ disabled: node.disabled
163
+ }, /*#__PURE__*/React.createElement(Highlighter, {
164
+ keyword: searchValue
165
+ }, node.title)) : true;
166
+ return ret;
167
+ }, [titleRender, searchValue, searchMode]);
168
+ var shouldUseSearch = !!searchValue && !hasError;
169
+ var showData = useMemo(function () {
170
+ return shouldUseSearch ? stateInSearch.data : flattedData;
171
+ }, [shouldUseSearch, flattedData, stateInSearch.data]); // 下拉菜单不能合并(因为树形数据,不知道是第几级)
172
+
173
+ var mergedData = useMemo(function () {
174
+ var nextData = selectedItems.concat(flattedData);
175
+ return uniqBy(nextData, 'id');
176
+ }, [selectedItems, flattedData]);
177
+
178
+ var _useState2 = useState(null),
179
+ filterItems = _useState2[0],
180
+ setFilterItems = _useState2[1];
181
+
182
+ var dropdownItems = filterItems || showData;
183
+
184
+ var _useMemo = useMemo(function () {
185
+ var dropdownIds = dropdownItems.filter(function (item) {
186
+ return !('groupTitle' in item);
187
+ }).map(function (_ref) {
188
+ var id = _ref.id;
189
+ return id;
190
+ });
191
+ var dropdownIdsSet = new Set(dropdownIds);
192
+ var hasValue = false;
193
+ value.forEach(function (id) {
194
+ if (dropdownIdsSet.has(id)) {
195
+ hasValue = true;
196
+ dropdownIdsSet["delete"](id);
108
197
  }
198
+ });
199
+ return [hasValue && dropdownIdsSet.size === 0, hasValue && dropdownIdsSet.size > 0];
200
+ }, [dropdownItems, value]),
201
+ allChecked = _useMemo[0],
202
+ indeterminate = _useMemo[1];
109
203
 
110
- acc.push(cur);
111
- return acc;
112
- }, []);
113
- }, [selectData]);
114
- var cls = cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed')); // TODO: tagInput 内部支持支持多种模式切换
204
+ var toggleCheckAll = useCallback(function (showChecked) {
205
+ var checkedItems = mergedData.filter(function (item) {
206
+ return value.includes(item.id);
207
+ });
208
+ var items = dropdownItems.filter(function (item) {
209
+ return !('groupTitle' in item);
210
+ });
115
211
 
116
- var TagInput$1 = wrap ? TagInput : TagInputMock;
212
+ if (showChecked) {
213
+ tryChangeValue(items.map(function (_ref2) {
214
+ var id = _ref2.id;
215
+ return id;
216
+ }), checkedItems, showChecked);
217
+ } else {
218
+ tryChangeValue([], checkedItems, showChecked);
219
+ }
220
+ }, [dropdownItems, mergedData, value, tryChangeValue]);
221
+
222
+ var renderDefaultFooter = function renderDefaultFooter() {
223
+ var extra = renderExtraFooter ? renderExtraFooter() : null;
224
+
225
+ if (showCheckAll) {
226
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
227
+ indeterminate: indeterminate,
228
+ checked: allChecked,
229
+ onChange: function onChange(evt) {
230
+ toggleCheckAll(evt.target.checked);
231
+ }
232
+ }, i18n.get('checkSelect.checkAll')), extra);
233
+ }
234
+
235
+ return extra;
236
+ };
237
+
238
+ var expandedViewRef = useRef('normal');
239
+ var cls = cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
117
240
  return /*#__PURE__*/React.createElement(CheckSelectProvider, {
118
241
  value: context
119
- }, /*#__PURE__*/React.createElement("div", Object.assign({
242
+ }, /*#__PURE__*/React.createElement(Picker, Object.assign({
120
243
  ref: ref,
121
- role: role,
122
244
  className: cls
123
- }, rootProps), /*#__PURE__*/React.createElement(TagInput$1, {
124
- ref: setTargetElRef,
125
- onClick: openMenu,
126
- disabled: disabled,
127
- clearable: clearable,
128
- placeholder: placeholder,
129
- data: selectData,
130
- value: value,
131
- wrap: wrap,
132
- onChange: tryChangeValue,
133
- displayRender: displayRender,
134
- suffix: /*#__PURE__*/React.createElement(DownOutlined, null)
135
- }), /*#__PURE__*/React.createElement(Popper, Object.assign({}, popper, {
136
- attachEl: targetElRef,
245
+ }, rootProps, {
137
246
  visible: menuVisible,
138
- onClose: closeMenu
139
- }), /*#__PURE__*/React.createElement("div", {
140
- className: prefixCls + "-panel"
141
- }, searchable ? /*#__PURE__*/React.createElement(CheckSelectSearch, null) : null, /*#__PURE__*/React.createElement(VirtualList, {
247
+ disabled: disabled,
248
+ onOpen: menuVisibleAction.on,
249
+ onClose: menuVisibleAction.off,
250
+ searchable: searchable,
251
+ onSearch: callAllFuncs(onSearchProp, onSearch),
252
+ loading: loading,
253
+ footer: renderDefaultFooter(),
254
+ trigger: /*#__PURE__*/React.createElement(TagInputMock, {
255
+ clearable: clearable,
256
+ placeholder: placeholder,
257
+ // @ts-ignore
258
+ displayRender: displayRender,
259
+ suffix: menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
260
+ focused: menuVisible,
261
+ appearance: appearance,
262
+ value: value,
263
+ // @ts-ignore
264
+ onChange: tryChangeValue,
265
+ data: mergedData,
266
+ invalid: invalid,
267
+ onClick: function onClick(evt) {
268
+ if (!showOnlyShowChecked) return;
269
+ if (disabled) return; // 阻止 Picker 调用 onOpen/onClose
270
+
271
+ evt.preventDefault();
272
+
273
+ if (filterItems) {
274
+ setFilterItems(null);
275
+ }
276
+
277
+ if (menuVisible) {
278
+ if (expandedViewRef.current === 'normal') {
279
+ menuVisibleAction.off();
280
+ }
281
+ } else {
282
+ menuVisibleAction.on();
283
+ }
284
+
285
+ expandedViewRef.current = 'normal';
286
+ },
287
+ expandable: showOnlyShowChecked,
288
+ onExpand: function onExpand(evt) {
289
+ if (!showOnlyShowChecked) return;
290
+ if (disabled) return; // 阻止冒泡触发外层 onClick
291
+
292
+ evt.stopPropagation();
293
+ evt.preventDefault();
294
+ setFilterItems(function () {
295
+ return mergedData.filter(function (item) {
296
+ return value.includes(item.id);
297
+ });
298
+ });
299
+
300
+ if (menuVisible) {
301
+ if (expandedViewRef.current !== 'normal') {
302
+ menuVisibleAction.off();
303
+ }
304
+ } else {
305
+ menuVisibleAction.on();
306
+ }
307
+
308
+ expandedViewRef.current = 'onlyChecked';
309
+ }
310
+ })
311
+ }), isArrayNonEmpty(dropdownItems) ? /*#__PURE__*/React.createElement(VirtualList, {
142
312
  itemKey: "id",
143
313
  fullHeight: false,
144
314
  height: height,
145
315
  itemHeight: itemHeight,
146
316
  virtual: virtual,
147
- data: virtualData
317
+ data: dropdownItems
148
318
  }, function (node) {
149
319
  /* 反向 map,搜索删选数据时会对数据进行处理 */
150
- return 'groupTitle' in node ? /*#__PURE__*/React.createElement(CheckSelectOptionGroup, Object.assign({
320
+ return 'groupTitle' in node ? /*#__PURE__*/React.createElement(CheckSelectOptionGroup, {
151
321
  label: node.groupTitle
152
- }, node.rootProps)) : /*#__PURE__*/React.createElement(CheckSelectOption, Object.assign({
153
- option: node
154
- }, node.rootProps));
155
- })))));
322
+ }) : /*#__PURE__*/React.createElement(CheckSelectOption, {
323
+ option: node,
324
+ depth: node.depth,
325
+ titleRender: proxyTitleRender
326
+ });
327
+ }) : null));
156
328
  }); // @ts-ignore
157
329
 
158
330
  CheckSelect.HiName = 'CheckSelect';
@@ -161,77 +333,55 @@ if (__DEV__) {
161
333
  CheckSelect.displayName = 'CheckSelect';
162
334
  }
163
335
 
164
- var searchPrefix = getPrefixCls('check-select-search');
165
- /**
166
- * TODO: What is CheckSelectSearch
167
- */
168
-
169
- var CheckSelectSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
170
- var _a$prefixCls2 = _a.prefixCls,
171
- prefixCls = _a$prefixCls2 === void 0 ? searchPrefix : _a$prefixCls2,
172
- className = _a.className,
173
- rest = __rest(_a, ["prefixCls", "className"]);
174
-
175
- var _useCheckSelectContex = useCheckSelectContext(),
176
- isEmpty = _useCheckSelectContex.isEmpty,
177
- emptyContent = _useCheckSelectContex.emptyContent,
178
- getSearchInputProps = _useCheckSelectContex.getSearchInputProps;
179
-
180
- return /*#__PURE__*/React.createElement("div", Object.assign({
181
- ref: ref,
182
- className: cx(prefixCls, className)
183
- }, rest), /*#__PURE__*/React.createElement(Input, Object.assign({}, getSearchInputProps(), {
184
- appearance: "underline",
185
- prefix: /*#__PURE__*/React.createElement(SearchOutlined, null)
186
- })), isEmpty ? /*#__PURE__*/React.createElement("span", {
187
- className: prefixCls + "__empty"
188
- }, emptyContent) : null);
189
- });
190
-
191
- if (__DEV__) {
192
- CheckSelectSearch.displayName = 'CheckSelectSearch';
193
- }
194
-
195
336
  var optionPrefix = getPrefixCls('check-select-option');
196
337
  /**
197
338
  * TODO: What is CheckSelectOption
198
339
  */
199
340
 
200
341
  var CheckSelectOption = /*#__PURE__*/forwardRef(function (_a, ref) {
201
- var _a$prefixCls3 = _a.prefixCls,
202
- prefixCls = _a$prefixCls3 === void 0 ? optionPrefix : _a$prefixCls3,
342
+ var _a$prefixCls2 = _a.prefixCls,
343
+ prefixCls = _a$prefixCls2 === void 0 ? optionPrefix : _a$prefixCls2,
203
344
  className = _a.className,
204
345
  _a$option = _a.option,
205
346
  option = _a$option === void 0 ? {} : _a$option,
206
347
  onClick = _a.onClick,
207
- rest = __rest(_a, ["prefixCls", "className", "children", "option", "onClick"]);
348
+ titleRender = _a.titleRender,
349
+ depth = _a.depth,
350
+ rest = __rest(_a, ["prefixCls", "className", "children", "option", "onClick", "titleRender", "depth"]);
208
351
 
209
- var _useCheckSelectContex2 = useCheckSelectContext(),
210
- isSelectedId = _useCheckSelectContex2.isSelectedId,
211
- onSelect = _useCheckSelectContex2.onSelect,
212
- titleRender = _useCheckSelectContex2.titleRender;
352
+ var _useCheckSelectContex = useCheckSelectContext(),
353
+ isCheckedId = _useCheckSelectContex.isCheckedId,
354
+ onSelect = _useCheckSelectContex.onSelect;
213
355
 
214
- var checked = isSelectedId(option.id);
215
- var _option$disabled = option.disabled,
356
+ var id = option.id,
357
+ _option$disabled = option.disabled,
216
358
  disabled = _option$disabled === void 0 ? false : _option$disabled;
217
- var cls = cx(prefixCls, className, checked && prefixCls + "--selected", disabled && prefixCls + "--disabled");
359
+ var checked = isCheckedId(id);
360
+ var eventNodeRef = useLatestRef(Object.assign({}, option, {
361
+ disabled: disabled,
362
+ checked: checked
363
+ }));
364
+ var cls = cx(prefixCls, className, checked && prefixCls + "--checked", disabled && prefixCls + "--disabled");
218
365
  var handleOptionCheck = useCallback(function (evt) {
219
366
  onSelect(option, !checked);
220
367
  onClick === null || onClick === void 0 ? void 0 : onClick(evt);
221
- }, [onSelect, option, checked, onClick]); // 如果 titleRender 返回 `true`,则使用默认 title
222
-
223
- var title = titleRender ? titleRender(Object.assign(Object.assign({}, option), {
224
- checked: checked
225
- })) : true;
368
+ }, [onSelect, option, checked, onClick]);
369
+ var renderTitle = useCallback(function (node, titleRender) {
370
+ // 如果 titleRender 返回 `true`,则使用默认 title
371
+ var title = titleRender ? titleRender(node) : true;
372
+ return /*#__PURE__*/React.createElement("div", {
373
+ className: prefixCls + "__title"
374
+ }, title === true ? /*#__PURE__*/React.createElement(Checkbox, {
375
+ checked: node.checked,
376
+ disabled: node.disabled
377
+ }, node.title) : title);
378
+ }, [prefixCls]);
226
379
  return /*#__PURE__*/React.createElement("div", Object.assign({
227
380
  ref: ref,
228
381
  className: cls
229
382
  }, rest, {
230
383
  onClick: handleOptionCheck
231
- }), title === true ? /*#__PURE__*/React.createElement(Checkbox, {
232
- checked: checked,
233
- disabled: option.disabled
234
- }, option.title) : title);
384
+ }), renderIndent(prefixCls, depth), renderTitle(eventNodeRef.current, titleRender));
235
385
  }); // @ts-ignore
236
386
 
237
387
  CheckSelectOption.HiName = 'CheckSelectOption';
@@ -239,17 +389,18 @@ CheckSelectOption.HiName = 'CheckSelectOption';
239
389
  if (__DEV__) {
240
390
  CheckSelectOption.displayName = 'CheckSelectOption';
241
391
  }
392
+
393
+ var optionGroupPrefix = getPrefixCls('select-option-group');
242
394
  /**
243
395
  * TODO: What is CheckSelectOptionGroup
244
396
  */
245
397
 
246
-
247
398
  var CheckSelectOptionGroup = /*#__PURE__*/forwardRef(function (_a, ref) {
248
- var _a$prefixCls4 = _a.prefixCls,
249
- prefixCls = _a$prefixCls4 === void 0 ? optionPrefix : _a$prefixCls4,
399
+ var _a$prefixCls3 = _a.prefixCls,
400
+ prefixCls = _a$prefixCls3 === void 0 ? optionGroupPrefix : _a$prefixCls3,
250
401
  className = _a.className,
251
402
  label = _a.label,
252
- rest = __rest(_a, ["prefixCls", "className", "children", "label", "onClick"]);
403
+ rest = __rest(_a, ["prefixCls", "className", "label"]);
253
404
 
254
405
  var cls = cx(prefixCls, className);
255
406
  return /*#__PURE__*/React.createElement("div", Object.assign({
@@ -263,6 +414,23 @@ CheckSelectOptionGroup.HiName = 'CheckSelectOptionGroup';
263
414
  if (__DEV__) {
264
415
  CheckSelectOptionGroup.displayName = 'CheckSelectOptionGroup';
265
416
  }
417
+ /**
418
+ * 渲染空白占位
419
+ */
420
+
421
+
422
+ var renderIndent = function renderIndent(prefixCls, depth) {
423
+ return times(depth, function (index) {
424
+ return /*#__PURE__*/React.createElement("span", {
425
+ key: index,
426
+ style: {
427
+ alignSelf: 'stretch'
428
+ }
429
+ }, /*#__PURE__*/React.createElement("span", {
430
+ className: cx(prefixCls + "__indent")
431
+ }));
432
+ });
433
+ };
266
434
 
267
- export { CheckSelect, CheckSelectOption, CheckSelectOptionGroup, CheckSelectSearch };
435
+ export { CheckSelect, CheckSelectOption, CheckSelectOptionGroup };
268
436
  //# sourceMappingURL=CheckSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckSelect.js","sources":["../../src/CheckSelect.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","CheckSelect","forwardRef","_a","ref","prefixCls","role","className","children","disabled","clearable","searchable","wrap","placeholder","displayRenderProp","displayRender","onSelectProp","onSelect","height","itemHeight","virtual","popper","onOpen","onClose","rest","useState","targetElRef","setTargetElRef","menuVisible","setMenuVisible","onOpenLatest","useLatestCallback","onCloseLatest","closeMenu","useCallback","openMenu","item","isFunction","title","onSelectLatest","_b","useCheckSelect","rootProps","context","value","tryChangeValue","selectData","data","virtualData","useMemo","reduce","acc","cur","index","push","id","groupTitle","concat","cls","cx","TagInput","TagInputDefault","TagInputMock","React","CheckSelectProvider","onClick","onChange","suffix","DownOutlined","Popper","attachEl","visible","CheckSelectSearch","VirtualList","itemKey","fullHeight","node","CheckSelectOptionGroup","label","CheckSelectOption","option","HiName","__DEV__","displayName","searchPrefix","useCheckSelectContext","isEmpty","emptyContent","getSearchInputProps","Input","appearance","prefix","SearchOutlined","optionPrefix","isSelectedId","titleRender","checked","handleOptionCheck","evt","Checkbox"],"mappings":"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"}
1
+ {"version":3,"file":"CheckSelect.js","sources":["../../src/CheckSelect.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_FIELD_NAMES","CheckSelect","forwardRef","_a","ref","prefixCls","className","children","disabled","clearable","showCheckAll","showOnlyShowChecked","placeholderProp","placeholder","displayRenderProp","displayRender","onSelectProp","onSelect","height","itemHeight","virtual","appearance","invalid","dataSource","filterOption","searchableProp","searchable","titleRender","render","renderExtraFooter","onSearchProp","onSearch","fieldNames","rest","i18n","useLocaleContext","isUndef","get","useToggle","menuVisible","menuVisibleAction","useCallback","item","isFunction","title","useState","selectedItems","setSelectedItems","useLatestCallback","value","shouldChecked","prev","_b","useCheckSelect","rootProps","context","tryChangeValue","flattedData","_c","useAsyncSearch","dataTransform","data","flattenData","loading","hasError","dataSourceStrategy","customSearchStrategy","useTreeCustomSearch","filterSearchStrategy","useFilterSearch","enabled","useSearchMode","strategies","stateInSearch","state","searchMode","searchValue","keyword","proxyTitleRender","node","ret","highlight","React","Checkbox","checked","Highlighter","shouldUseSearch","showData","useMemo","mergedData","nextData","concat","uniqBy","filterItems","setFilterItems","dropdownItems","dropdownIds","filter","map","id","dropdownIdsSet","Set","hasValue","forEach","has","size","allChecked","indeterminate","toggleCheckAll","showChecked","checkedItems","includes","items","renderDefaultFooter","extra","onChange","evt","target","expandedViewRef","useRef","cls","cx","CheckSelectProvider","Picker","visible","onOpen","on","onClose","off","callAllFuncs","footer","trigger","TagInputMock","suffix","UpOutlined","DownOutlined","focused","onClick","preventDefault","current","expandable","onExpand","stopPropagation","isArrayNonEmpty","VirtualList","itemKey","fullHeight","CheckSelectOptionGroup","label","groupTitle","CheckSelectOption","option","depth","HiName","__DEV__","displayName","optionPrefix","useCheckSelectContext","isCheckedId","eventNodeRef","useLatestRef","Object","assign","handleOptionCheck","renderTitle","renderIndent","optionGroupPrefix","times","index","key","style","alignSelf"],"mappings":"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"}