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

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.
@@ -25,8 +25,6 @@ var env = require('@hi-ui/env');
25
25
 
26
26
  var Input = require('@hi-ui/input');
27
27
 
28
- var useToggle = require('@hi-ui/use-toggle');
29
-
30
28
  var useCheckSelect = require('./use-check-select.js');
31
29
 
32
30
  var Popper = require('@hi-ui/popper');
@@ -41,6 +39,10 @@ var Checkbox = require('@hi-ui/checkbox');
41
39
 
42
40
  var tagInput = require('@hi-ui/tag-input');
43
41
 
42
+ var index = require('./utils/type-assertion/lib/esm/index.js');
43
+
44
+ var VirtualList = require('rc-virtual-list');
45
+
44
46
  function _interopDefaultLegacy(e) {
45
47
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
46
48
  'default': e
@@ -55,6 +57,8 @@ var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
55
57
 
56
58
  var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
57
59
 
60
+ var VirtualList__default = /*#__PURE__*/_interopDefaultLegacy(VirtualList);
61
+
58
62
  var _role = 'check-select';
59
63
 
60
64
  var _prefix = classname.getPrefixCls(_role);
@@ -76,36 +80,53 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
76
80
  clearable = _a$clearable === void 0 ? false : _a$clearable,
77
81
  _a$searchable = _a.searchable,
78
82
  searchable = _a$searchable === void 0 ? false : _a$searchable,
83
+ _a$wrap = _a.wrap,
84
+ wrap = _a$wrap === void 0 ? true : _a$wrap,
79
85
  placeholder = _a.placeholder,
80
86
  displayRenderProp = _a.displayRender,
81
87
  onSelectProp = _a.onSelect,
88
+ height = _a.height,
89
+ _a$itemHeight = _a.itemHeight,
90
+ itemHeight = _a$itemHeight === void 0 ? 40 : _a$itemHeight,
91
+ _a$virtual = _a.virtual,
92
+ virtual = _a$virtual === void 0 ? true : _a$virtual,
82
93
  popper = _a.popper,
83
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "searchable", "placeholder", "displayRender", "onSelect", "popper"]);
84
-
85
- var _useToggle = useToggle.useToggle(),
86
- menuVisible = _useToggle[0],
87
- menuVisibleAction = _useToggle[1];
94
+ onOpen = _a.onOpen,
95
+ onClose = _a.onClose,
96
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "disabled", "clearable", "searchable", "invalid", "wrap", "placeholder", "displayRender", "onSelect", "height", "itemHeight", "virtual", "popper", "onOpen", "onClose"]);
88
97
 
89
98
  var _useState = React.useState(null),
90
99
  targetElRef = _useState[0],
91
100
  setTargetElRef = _useState[1];
92
101
 
102
+ var _useState2 = React.useState(false),
103
+ menuVisible = _useState2[0],
104
+ setMenuVisible = _useState2[1];
105
+
106
+ var onOpenLatest = useLatest.useLatestCallback(onOpen);
107
+ var onCloseLatest = useLatest.useLatestCallback(onClose);
108
+ var closeMenu = React.useCallback(function () {
109
+ if (disabled) return;
110
+ setMenuVisible(false);
111
+ onOpenLatest();
112
+ }, [disabled, onOpenLatest]);
93
113
  var openMenu = React.useCallback(function () {
94
114
  if (disabled) return;
95
- menuVisibleAction.on();
96
- }, [disabled, menuVisibleAction]);
97
- var onSelectLatest = useLatest.useLatestCallback(onSelectProp);
115
+ setMenuVisible(true);
116
+ onCloseLatest();
117
+ }, [disabled, onCloseLatest]);
98
118
  var displayRender = React.useCallback(function (item) {
99
- if (displayRenderProp) {
119
+ if (index.isFunction(displayRenderProp)) {
100
120
  return displayRenderProp(item);
101
121
  }
102
122
 
103
123
  return item.title;
104
- }, [displayRenderProp]); // @ts-ignore
124
+ }, [displayRenderProp]);
125
+ var onSelectLatest = useLatest.useLatestCallback(onSelectProp);
105
126
 
106
127
  var _b = useCheckSelect.useCheckSelect(Object.assign(Object.assign({}, rest), {
107
- onSelect: onSelectLatest,
108
- children: children
128
+ children: children,
129
+ onSelect: onSelectLatest
109
130
  })),
110
131
  rootProps = _b.rootProps,
111
132
  context$1 = tslib.__rest(_b, ["rootProps"]);
@@ -113,14 +134,31 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
113
134
  var value = context$1.value,
114
135
  tryChangeValue = context$1.tryChangeValue,
115
136
  selectData = context$1.data;
116
- var cls = classname.cx(prefixCls, className);
117
- return /*#__PURE__*/React__default['default'].createElement(context.SelectProvider, {
137
+ var virtualData = React.useMemo(function () {
138
+ return selectData.reduce(function (acc, cur, index) {
139
+ if ('groupTitle' in cur) {
140
+ acc.push({
141
+ id: "group-" + index,
142
+ groupTitle: cur.groupTitle,
143
+ rootProps: cur.rootProps
144
+ });
145
+ return acc.concat(cur.children);
146
+ }
147
+
148
+ acc.push(cur);
149
+ return acc;
150
+ }, []);
151
+ }, [selectData]);
152
+ var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed')); // TODO: tagInput 内部支持支持多种模式切换
153
+
154
+ var TagInput = wrap ? tagInput.TagInput : tagInput.TagInputMock;
155
+ return /*#__PURE__*/React__default['default'].createElement(context.CheckSelectProvider, {
118
156
  value: context$1
119
157
  }, /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
120
158
  ref: ref,
121
159
  role: role,
122
160
  className: cls
123
- }, rootProps), /*#__PURE__*/React__default['default'].createElement(tagInput.TagInput, {
161
+ }, rootProps), /*#__PURE__*/React__default['default'].createElement(TagInput, {
124
162
  ref: setTargetElRef,
125
163
  onClick: openMenu,
126
164
  disabled: disabled,
@@ -128,20 +166,30 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
128
166
  placeholder: placeholder,
129
167
  data: selectData,
130
168
  value: value,
169
+ wrap: wrap,
131
170
  onChange: tryChangeValue,
132
171
  displayRender: displayRender,
133
172
  suffix: /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null)
134
173
  }), /*#__PURE__*/React__default['default'].createElement(Popper__default['default'], Object.assign({}, popper, {
135
174
  attachEl: targetElRef,
136
175
  visible: menuVisible,
137
- onClose: menuVisibleAction.off
176
+ onClose: closeMenu
138
177
  }), /*#__PURE__*/React__default['default'].createElement("div", {
139
178
  className: prefixCls + "-panel"
140
- }, searchable ? /*#__PURE__*/React__default['default'].createElement(SelectSearch, null) : null, selectData.map(function (item) {
141
- return /*#__PURE__*/React__default['default'].createElement(CheckSelectOption, {
142
- key: item.id,
143
- option: item
144
- });
179
+ }, searchable ? /*#__PURE__*/React__default['default'].createElement(CheckSelectSearch, null) : null, /*#__PURE__*/React__default['default'].createElement(VirtualList__default['default'], {
180
+ itemKey: "id",
181
+ fullHeight: false,
182
+ height: height,
183
+ itemHeight: itemHeight,
184
+ virtual: virtual,
185
+ data: virtualData
186
+ }, function (node) {
187
+ /* 反向 map,搜索删选数据时会对数据进行处理 */
188
+ return 'groupTitle' in node ? /*#__PURE__*/React__default['default'].createElement(CheckSelectOptionGroup, Object.assign({
189
+ label: node.groupTitle
190
+ }, node.rootProps)) : /*#__PURE__*/React__default['default'].createElement(CheckSelectOption, Object.assign({
191
+ option: node
192
+ }, node.rootProps));
145
193
  })))));
146
194
  }); // @ts-ignore
147
195
 
@@ -152,33 +200,41 @@ if (env.__DEV__) {
152
200
  }
153
201
 
154
202
  var searchPrefix = classname.getPrefixCls('check-select-search');
155
- var SelectSearch = /*#__PURE__*/React.forwardRef(function (_a, ref) {
203
+ /**
204
+ * TODO: What is CheckSelectSearch
205
+ */
206
+
207
+ var CheckSelectSearch = /*#__PURE__*/React.forwardRef(function (_a, ref) {
156
208
  var _a$prefixCls2 = _a.prefixCls,
157
209
  prefixCls = _a$prefixCls2 === void 0 ? searchPrefix : _a$prefixCls2,
158
210
  className = _a.className,
159
211
  rest = tslib.__rest(_a, ["prefixCls", "className"]);
160
212
 
161
- var _useSelectContext = context.useSelectContext(),
162
- isEmpty = _useSelectContext.isEmpty,
163
- emptyContent = _useSelectContext.emptyContent,
164
- getSearchInputProps = _useSelectContext.getSearchInputProps;
213
+ var _useCheckSelectContex = context.useCheckSelectContext(),
214
+ isEmpty = _useCheckSelectContex.isEmpty,
215
+ emptyContent = _useCheckSelectContex.emptyContent,
216
+ getSearchInputProps = _useCheckSelectContex.getSearchInputProps;
165
217
 
166
218
  return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
167
219
  ref: ref,
168
220
  className: classname.cx(prefixCls, className)
169
- }, rest), /*#__PURE__*/React__default['default'].createElement(Input__default['default'], Object.assign({
221
+ }, rest), /*#__PURE__*/React__default['default'].createElement(Input__default['default'], Object.assign({}, getSearchInputProps(), {
170
222
  appearance: "underline",
171
223
  prefix: /*#__PURE__*/React__default['default'].createElement(icons.SearchOutlined, null)
172
- }, getSearchInputProps())), isEmpty ? /*#__PURE__*/React__default['default'].createElement("span", {
224
+ })), isEmpty ? /*#__PURE__*/React__default['default'].createElement("span", {
173
225
  className: prefixCls + "__empty"
174
226
  }, emptyContent) : null);
175
227
  });
176
228
 
177
229
  if (env.__DEV__) {
178
- SelectSearch.displayName = 'SelectSearch';
230
+ CheckSelectSearch.displayName = 'CheckSelectSearch';
179
231
  }
180
232
 
181
233
  var optionPrefix = classname.getPrefixCls('check-select-option');
234
+ /**
235
+ * TODO: What is CheckSelectOption
236
+ */
237
+
182
238
  var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
183
239
  var _a$prefixCls3 = _a.prefixCls,
184
240
  prefixCls = _a$prefixCls3 === void 0 ? optionPrefix : _a$prefixCls3,
@@ -188,13 +244,15 @@ var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
188
244
  onClick = _a.onClick,
189
245
  rest = tslib.__rest(_a, ["prefixCls", "className", "children", "option", "onClick"]);
190
246
 
191
- var _useSelectContext2 = context.useSelectContext(),
192
- isSelectedId = _useSelectContext2.isSelectedId,
193
- onSelect = _useSelectContext2.onSelect,
194
- titleRender = _useSelectContext2.titleRender;
247
+ var _useCheckSelectContex2 = context.useCheckSelectContext(),
248
+ isSelectedId = _useCheckSelectContex2.isSelectedId,
249
+ onSelect = _useCheckSelectContex2.onSelect,
250
+ titleRender = _useCheckSelectContex2.titleRender;
195
251
 
196
252
  var checked = isSelectedId(option.id);
197
- var cls = classname.cx(prefixCls, className, checked && prefixCls + "--selected");
253
+ var _option$disabled = option.disabled,
254
+ disabled = _option$disabled === void 0 ? false : _option$disabled;
255
+ var cls = classname.cx(prefixCls, className, checked && prefixCls + "--selected", disabled && prefixCls + "--disabled");
198
256
  var handleOptionCheck = React.useCallback(function (evt) {
199
257
  onSelect(option, !checked);
200
258
  onClick === null || onClick === void 0 ? void 0 : onClick(evt);
@@ -209,7 +267,8 @@ var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
209
267
  }, rest, {
210
268
  onClick: handleOptionCheck
211
269
  }), title === true ? /*#__PURE__*/React__default['default'].createElement(Checkbox__default['default'], {
212
- checked: checked
270
+ checked: checked,
271
+ disabled: option.disabled
213
272
  }, option.title) : title);
214
273
  }); // @ts-ignore
215
274
 
@@ -218,8 +277,33 @@ CheckSelectOption.HiName = 'CheckSelectOption';
218
277
  if (env.__DEV__) {
219
278
  CheckSelectOption.displayName = 'CheckSelectOption';
220
279
  }
280
+ /**
281
+ * TODO: What is CheckSelectOptionGroup
282
+ */
283
+
284
+
285
+ var CheckSelectOptionGroup = /*#__PURE__*/React.forwardRef(function (_a, ref) {
286
+ var _a$prefixCls4 = _a.prefixCls,
287
+ prefixCls = _a$prefixCls4 === void 0 ? optionPrefix : _a$prefixCls4,
288
+ className = _a.className,
289
+ label = _a.label,
290
+ rest = tslib.__rest(_a, ["prefixCls", "className", "children", "label", "onClick"]);
291
+
292
+ var cls = classname.cx(prefixCls, className);
293
+ return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
294
+ ref: ref,
295
+ className: cls
296
+ }, rest), /*#__PURE__*/React__default['default'].createElement("span", null, label));
297
+ }); // @ts-ignore
298
+
299
+ CheckSelectOptionGroup.HiName = 'CheckSelectOptionGroup';
300
+
301
+ if (env.__DEV__) {
302
+ CheckSelectOptionGroup.displayName = 'CheckSelectOptionGroup';
303
+ }
221
304
 
222
305
  exports.CheckSelect = CheckSelect;
223
306
  exports.CheckSelectOption = CheckSelectOption;
224
- exports.SelectSearch = SelectSearch;
307
+ exports.CheckSelectOptionGroup = CheckSelectOptionGroup;
308
+ exports.CheckSelectSearch = CheckSelectSearch;
225
309
  //# 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","placeholder","displayRenderProp","displayRender","onSelectProp","onSelect","popper","rest","useToggle","menuVisible","menuVisibleAction","useState","targetElRef","setTargetElRef","openMenu","useCallback","on","onSelectLatest","useLatestCallback","item","title","_b","useCheckSelect","rootProps","context","value","tryChangeValue","selectData","data","cls","cx","React","SelectProvider","TagInput","onClick","onChange","suffix","DownOutlined","Popper","attachEl","visible","onClose","off","SelectSearch","map","CheckSelectOption","key","id","option","HiName","__DEV__","displayName","searchPrefix","useSelectContext","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","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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"}
@@ -15,19 +15,19 @@ Object.defineProperty(exports, '__esModule', {
15
15
 
16
16
  var React = require('react');
17
17
 
18
- var selectContext = /*#__PURE__*/React.createContext(null);
19
- var SelectProvider = selectContext.Provider;
18
+ var checkSelectContext = /*#__PURE__*/React.createContext(null);
19
+ var CheckSelectProvider = checkSelectContext.Provider;
20
20
 
21
- var useSelectContext = function useSelectContext() {
22
- var context = React.useContext(selectContext);
21
+ var useCheckSelectContext = function useCheckSelectContext() {
22
+ var context = React.useContext(checkSelectContext);
23
23
 
24
24
  if (!context) {
25
- throw new Error('The selectContext context should using in Cascader.');
25
+ throw new Error('The checkSelectContext context should using in CheckSelect.');
26
26
  }
27
27
 
28
28
  return context;
29
29
  };
30
30
 
31
- exports.SelectProvider = SelectProvider;
32
- exports.useSelectContext = useSelectContext;
31
+ exports.CheckSelectProvider = CheckSelectProvider;
32
+ exports.useCheckSelectContext = useCheckSelectContext;
33
33
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../src/context.ts"],"sourcesContent":[null],"names":["selectContext","createContext","SelectProvider","Provider","useSelectContext","context","useContext","Error"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAMA,aAAa,gBAAGC,mBAAAA,CAAyD,IAAzDA,CAAtB;IAEaC,cAAc,GAAGF,aAAa,CAACG;;IAE/BC,gBAAgB,GAAG,SAAnBA,gBAAmB;MACxBC,OAAO,GAAGC,gBAAAA,CAAWN,aAAXM;;MAEZ,CAACD,SAAS;UACN,IAAIE,KAAJ,CAAU,qDAAV;;;SAGDF;;;;"}
1
+ {"version":3,"file":"context.js","sources":["../../src/context.ts"],"sourcesContent":[null],"names":["checkSelectContext","createContext","CheckSelectProvider","Provider","useCheckSelectContext","context","useContext","Error"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAMA,kBAAkB,gBAAGC,mBAAAA,CAAyD,IAAzDA,CAA3B;IAEaC,mBAAmB,GAAGF,kBAAkB,CAACG;;IAEzCC,qBAAqB,GAAG,SAAxBA,qBAAwB;MAC7BC,OAAO,GAAGC,gBAAAA,CAAWN,kBAAXM;;MAEZ,CAACD,SAAS;UACN,IAAIE,KAAJ,CAAU,6DAAV;;;SAGDF;;;;"}
@@ -18,6 +18,8 @@ var React = require('react');
18
18
  var useLatest = require('@hi-ui/use-latest');
19
19
 
20
20
  var env = require('@hi-ui/env');
21
+
22
+ var index = require('../utils/type-assertion/lib/esm/index.js');
21
23
  /**
22
24
  * 支持搜索功能的 hook
23
25
  */
@@ -39,7 +41,7 @@ var useSearch = function useSearch(flattedData, filter) {
39
41
 
40
42
  var matchedNodes = getMatchedNodes(flattedDataRef.current, nextSearchValue, filter);
41
43
  setMatchedNodes(matchedNodes);
42
- }, [flattedDataRef]);
44
+ }, [flattedDataRef, filter]);
43
45
  var inputProps = React.useMemo(function () {
44
46
  return {
45
47
  value: searchValue,
@@ -60,21 +62,92 @@ var useSearch = function useSearch(flattedData, filter) {
60
62
 
61
63
  var getMatchedNodes = function getMatchedNodes(flattedData, searchValue, filter) {
62
64
  if (!searchValue) return [];
63
- return flattedData.filter(function (node) {
64
- var _a, _b;
65
+ var matchedResult = [];
66
+ var shouldFilter = index.isFunction(filter); // 1. 先对于 groupTitle 匹配
67
+ // 2. 若未匹配到。再对其 children 进行 title 匹配
68
+
69
+ var _loop = function _loop(i) {
70
+ var optionOrGroup = flattedData[i];
71
+
72
+ if ('groupTitle' in optionOrGroup) {
73
+ // search for OptionGroup
74
+ // @ts-ignore
75
+ var shouldReserved = shouldFilter && filter(searchValue, optionOrGroup) === true;
76
+
77
+ if (shouldReserved) {
78
+ matchedResult.push(optionOrGroup);
79
+ return "continue";
80
+ }
65
81
 
66
- if (typeof node.title !== 'string') {
67
- if (env.__DEV__) {
68
- console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
82
+ if (typeof optionOrGroup.groupTitle === 'string') {
83
+ // 匹配策略:`String.include`
84
+ if (optionOrGroup.groupTitle.includes(searchValue)) {
85
+ matchedResult.push(optionOrGroup);
86
+ return "continue";
87
+ }
88
+ } else {
89
+ if (env.__DEV__) {
90
+ console.info('WARNING: The `optionGroup.groupTitle` should be `string` when searchable is enabled.');
91
+ }
69
92
  }
70
93
 
71
- return false;
94
+ if (index.isArrayNonEmpty(optionOrGroup.children)) {
95
+ var matchedChildren = optionOrGroup.children.filter(function (node) {
96
+ var _a, _b;
97
+
98
+ if (shouldFilter) {
99
+ // @ts-ignore
100
+ return filter(searchValue, optionOrGroup);
101
+ }
102
+
103
+ if (typeof node.title !== 'string') {
104
+ if (env.__DEV__) {
105
+ console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
106
+ }
107
+
108
+ return false;
109
+ }
110
+
111
+ return (_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue);
112
+ });
113
+
114
+ if (index.isArrayNonEmpty(matchedChildren)) {
115
+ var matchedOptionOrGroup = Object.assign(Object.assign({}, optionOrGroup), {
116
+ children: matchedChildren
117
+ });
118
+ matchedResult.push(matchedOptionOrGroup);
119
+ }
120
+ }
121
+ } else {
122
+ // search for Option
123
+ // @ts-ignore
124
+ var _shouldReserved = shouldFilter && filter(searchValue, optionOrGroup) === true;
125
+
126
+ if (_shouldReserved) {
127
+ matchedResult.push(optionOrGroup);
128
+ return "continue";
129
+ }
130
+
131
+ if (typeof optionOrGroup.title === 'string') {
132
+ // 匹配策略:`String.include`
133
+ if (optionOrGroup.title.includes(searchValue)) {
134
+ matchedResult.push(optionOrGroup);
135
+ }
136
+ } else {
137
+ if (env.__DEV__) {
138
+ console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
139
+ }
140
+ }
72
141
  }
142
+ };
143
+
144
+ for (var i = 0; i < flattedData.length; i++) {
145
+ var _ret = _loop(i);
73
146
 
74
- if (filter && filter(node)) return false; // 匹配策略:`String.include`
147
+ if (_ret === "continue") continue;
148
+ }
75
149
 
76
- return (_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue);
77
- });
150
+ return matchedResult;
78
151
  };
79
152
 
80
153
  exports.useSearch = useSearch;
@@ -1 +1 @@
1
- {"version":3,"file":"use-search.js","sources":["../../../src/hooks/use-search.ts"],"sourcesContent":[null],"names":["useSearch","flattedData","filter","useState","searchValue","setSearchValue","matchedNodes","setMatchedNodes","flattedDataRef","useLatestRef","handleChange","useCallback","evt","nextSearchValue","target","value","getMatchedNodes","current","inputProps","useMemo","onChange","resetSearch","isSearch","isEmpty","length","node","title","__DEV__","console","info","includes"],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA;;;;;IAGaA,SAAS,GAAG,SAAZA,SAAY,CACvBC,WADuB,EAEvBC,MAFuB;kBAIeC,cAAAA,CAAS,EAATA;MAA/BC,WAAP;MAAoBC,cAApB;;mBACwCF,cAAAA,CAA4B,EAA5BA;MAAjCG,YAAP;MAAqBC,eAArB;;MAEMC,cAAc,GAAGC,sBAAAA,CAAaR,WAAbQ;MAEjBC,YAAY,GAAGC,iBAAAA,CACnB,UAACC,GAAD;QACQC,eAAe,GAAGD,GAAG,CAACE,MAAJF,CAAWG;AAEnCV,IAAAA,cAAc,CAACQ,eAAD,CAAdR;;QAGMC,YAAY,GAAGU,eAAe,CAACR,cAAc,CAACS,OAAhB,EAAyBJ,eAAzB,EAA0CX,MAA1C;AAEpCK,IAAAA,eAAe,CAACD,YAAD,CAAfC;AAT4B,GAAXI,EAWnB,CAACH,cAAD,CAXmBG;MAcfO,UAAU,GAAGC,aAAAA,CACjB;WAAO;AACLJ,MAAAA,KAAK,EAAEX,WADF;AAELgB,MAAAA,QAAQ,EAAEV;AAFL;AADiB,GAAPS,EAKjB,CAACf,WAAD,EAAcM,YAAd,CALiBS;MAQbE,WAAW,GAAGV,iBAAAA,CAAY;AAC9BN,IAAAA,cAAc,CAAC,EAAD,CAAdA;AAD6B,GAAXM,EAEjB,EAFiBA;MAIdW,QAAQ,GAAG,CAAC,CAAClB;MACbmB,OAAO,GAAGD,QAAQ,IAAIhB,YAAY,CAACkB,MAAblB,KAAwB;SAE7C,CAACgB,QAAD,EAAWhB,YAAX,EAAyBY,UAAzB,EAAqCK,OAArC,EAA8CF,WAA9C;;AAGT;;;;;AAGA,IAAML,eAAe,GAAG,SAAlBA,eAAkB,CACtBf,WADsB,EAEtBG,WAFsB,EAGtBF,MAHsB;MAKlB,CAACE,aAAa,OAAO,EAAP;SAEXH,WAAW,CAACC,MAAZD,CAAmB,UAACwB,IAAD;;;QACpB,OAAOA,IAAI,CAACC,KAAZ,KAAsB,UAAU;UAC9BC,aAAS;AACXC,QAAAA,OAAO,CAACC,IAARD,CAAa,4EAAbA;;;aAEK;;;QAGL1B,MAAM,IAAIA,MAAM,CAACuB,IAAD,GAAQ,OAAO,KAAP;;WAGrB,MAAA,MAAAA,IAAI,CAACC,KAAL,EAAWI,QAAX,UAAA,iBAAA,SAAA,eAAsB1B;AAXxB,GAAAH;AAPT,CAAA;;"}
1
+ {"version":3,"file":"use-search.js","sources":["../../../src/hooks/use-search.ts"],"sourcesContent":[null],"names":["useSearch","flattedData","filter","useState","searchValue","setSearchValue","matchedNodes","setMatchedNodes","flattedDataRef","useLatestRef","handleChange","useCallback","evt","nextSearchValue","target","value","getMatchedNodes","current","inputProps","useMemo","onChange","resetSearch","isSearch","isEmpty","length","matchedResult","shouldFilter","isFunction","i","optionOrGroup","shouldReserved","push","groupTitle","includes","__DEV__","console","info","isArrayNonEmpty","children","matchedChildren","node","title","matchedOptionOrGroup"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -19,6 +19,7 @@ var CheckSelect = require('./CheckSelect.js');
19
19
 
20
20
  exports.CheckSelect = CheckSelect.CheckSelect;
21
21
  exports.CheckSelectOption = CheckSelect.CheckSelectOption;
22
- exports.SelectSearch = CheckSelect.SelectSearch;
22
+ exports.CheckSelectOptionGroup = CheckSelect.CheckSelectOptionGroup;
23
+ exports.CheckSelectSearch = CheckSelect.CheckSelectSearch;
23
24
  exports["default"] = CheckSelect.CheckSelect;
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,7 +12,7 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = ".hi-v4-check-select {\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n font-size: 14px;\n vertical-align: middle;\n list-style: none;\n width: auto;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n min-width: 160px;\n max-height: 260px;\n overflow: auto;\n padding-bottom: 10px; }\n .hi-v4-check-select--open .hi-v4-mock-input {\n border-color: var(--color-primary); }\n .hi-v4-check-select-item {\n width: 100%;\n padding: 4px 0;\n position: relative;\n cursor: pointer;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n .hi-v4-check-select-option {\n padding: 0 10px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n min-height: 32px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n .hi-v4-check-select-option:hover {\n background-color: var(--color-primary-20); }\n .hi-v4-check-select-option--selected {\n background-color: var(--color-primary-20);\n font-weight: 700;\n color: var(--color-primary); }\n .hi-v4-check-select-option--focused {\n background-color: var(--color-primary-10); }\n .hi-v4-check-select-option--disabled {\n cursor: not-allowed;\n color: var(--color-gray-50);\n font-weight: 400; }\n .hi-v4-check-select-option--disabled .hi-v4-check-select-menu-switcher {\n color: var(--color-gray-50); }\n .hi-v4-check-select .title__text {\n -webkit-box-flex: 1;\n -ms-flex: 1 1;\n flex: 1 1; }\n .hi-v4-check-select-panel {\n white-space: nowrap;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n .hi-v4-check-select-search {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 10px 10px;\n position: relative; }\n .hi-v4-check-select-search .hi-v4-input__prefix {\n font-size: 16px;\n padding-left: 0; }\n .hi-v4-check-select-search__empty {\n display: inline-block;\n margin-top: 20px;\n font-size: 14px;\n font-weight: 400;\n color: #999;\n line-height: 20px; }\n";
15
+ var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-check-select {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n vertical-align: middle;\n list-style: none;\n width: auto;\n box-sizing: border-box;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n min-width: 160px;\n max-height: 260px;\n overflow: auto;\n padding-bottom: 10px; }\n.hi-v4-check-select--open .hi-v4-tag-input,\n .hi-v4-check-select--open .hi-v4-tag-input-mock {\n border-color: #4387f4;\n border-color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-check-select-item {\n width: 100%;\n padding: 4px 0;\n padding: var(--hi-v4-spacing-2, 4px) 0;\n position: relative;\n cursor: pointer;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-check-select-option {\n padding: 0 8px2px;\n padding: 0 var(--hi-v4-spacing-4, 8px)2px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n min-height: 32px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between; }\n.hi-v4-check-select-option:hover {\n background-color: #f0f5fe;\n background-color: var(--hi-v4-color-brandblue-100, #f0f5fe); }\n.hi-v4-check-select-option--selected {\n background-color: #f0f5fe;\n background-color: var(--hi-v4-color-brandblue-100, #f0f5fe);\n font-weight: 700;\n color: #4387f4;\n color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-check-select-option--focused {\n background-color: #f7faff;\n background-color: var(--hi-v4-color-brandblue-50, #f7faff); }\n.hi-v4-check-select-option--disabled {\n cursor: not-allowed;\n color: #6b7280;\n color: var(--hi-v4-color-gray-500, #6b7280);\n font-weight: 400; }\n.hi-v4-check-select .title__text {\n -webkit-box-flex: 1;\n -ms-flex: 1 1;\n flex: 1 1; }\n.hi-v4-check-select-panel {\n white-space: nowrap;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n.hi-v4-check-select-search {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 10px 10px 6px;\n position: relative; }\n.hi-v4-check-select-search .hi-v4-input__prefix {\n font-size: 16px;\n padding-left: 0; }\n.hi-v4-check-select-search__empty {\n display: inline-block;\n margin-top: 20px;\n font-size: 14px;\n font-weight: 400;\n color: #999;\n line-height: 20px; }\n";
16
16
 
17
17
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
18
18
 
@@ -54,41 +54,58 @@ var useCheckSelect = function useCheckSelect(_a) {
54
54
  _a$emptyContent = _a.emptyContent,
55
55
  emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
56
56
  searchPlaceholder = _a.searchPlaceholder,
57
+ filter = _a.filter,
57
58
  titleRender = _a.titleRender,
58
- rest = tslib.__rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "emptyContent", "searchPlaceholder", "titleRender"]);
59
+ rest = tslib.__rest(_a, ["data", "children", "disabled", "value", "defaultValue", "onChange", "onSelect", "emptyContent", "searchPlaceholder", "filter", "titleRender"]);
59
60
 
60
61
  var data = React.useMemo(function () {
61
62
  if (children) {
62
- var list = useChildren.toArray(children);
63
- var arr = [];
64
-
65
- var dfs = function dfs(list) {
63
+ var dfs = function dfs(child) {
64
+ var list = useChildren.toArray(child);
65
+ var arr = [];
66
66
  list.forEach(function (item) {
67
67
  if (! /*#__PURE__*/React__default['default'].isValidElement(item)) return; // @ts-ignore
68
68
 
69
- if (item.type && item.type.HiName === 'CheckSelectOption') {
70
- arr.push(item); // @ts-ignore
71
- } else if (item.type && item.type.HiName === 'CheckSelectOptionGroup') {
72
- // @ts-ignore
73
- if (item.props && item.props.children) {
69
+ if (item.type.HiName === 'CheckSelectOption') {
70
+ var props = item.props;
71
+
72
+ var _value = props.value,
73
+ _children = props.children,
74
+ _disabled = props.disabled,
75
+ _rest = tslib.__rest(props, ["value", "children", "disabled", "groupTitle"]);
76
+
77
+ var option = {
78
+ id: _value,
79
+ title: _children,
80
+ disabled: _disabled,
81
+ rootProps: _rest
82
+ };
83
+ arr.push(option); // @ts-ignore
84
+ } else if (item.type.HiName === 'CheckSelectOptionGroup') {
85
+ var _props = item.props;
86
+
87
+ var label = _props.label,
88
+ _children2 = _props.children,
89
+ _rest2 = tslib.__rest(_props, ["label", "children"]);
90
+
91
+ var optGroup = {
92
+ groupTitle: label,
93
+ children: [],
94
+ rootProps: _rest2
95
+ }; // @ts-ignore
96
+
97
+ if (_children2) {
74
98
  // @ts-ignore
75
- var _list = useChildren.toArray(item.props.children);
76
-
77
- dfs(_list);
99
+ optGroup.children = dfs(_children2);
78
100
  }
101
+
102
+ arr.push(optGroup);
79
103
  }
80
104
  });
105
+ return arr;
81
106
  };
82
107
 
83
- dfs(list);
84
- return arr.map(function (_ref) {
85
- var props = _ref.props;
86
- return {
87
- id: props.value,
88
- title: props.children,
89
- disabled: props.disabled || false
90
- };
91
- });
108
+ return dfs(children);
92
109
  }
93
110
 
94
111
  return dataProp;
@@ -113,7 +130,7 @@ var useCheckSelect = function useCheckSelect(_a) {
113
130
  onOptionCheck = _useCheckDefault[0],
114
131
  isSelectedId = _useCheckDefault[1];
115
132
 
116
- var _useSearch = useSearch.useSearch(data),
133
+ var _useSearch = useSearch.useSearch(data, filter),
117
134
  inSearch = _useSearch[0],
118
135
  matchedItems = _useSearch[1],
119
136
  inputProps = _useSearch[2],