@hi-ui/check-select 4.3.2 → 4.3.4
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.
- package/CHANGELOG.md +63 -0
- package/lib/cjs/CheckSelect.js +143 -223
- package/lib/cjs/context.js +0 -6
- package/lib/cjs/hooks/use-cache/lib/esm/index.js +3 -7
- package/lib/cjs/hooks/use-data.js +12 -28
- package/lib/cjs/hooks/use-flatten-data.js +9 -19
- package/lib/cjs/index.js +0 -3
- package/lib/cjs/styles/index.scss.js +0 -3
- package/lib/cjs/use-check-select.js +32 -57
- package/lib/cjs/utils/index.js +1 -5
- package/lib/esm/CheckSelect.js +139 -190
- package/lib/esm/context.js +0 -4
- package/lib/esm/hooks/use-cache/lib/esm/index.js +3 -5
- package/lib/esm/hooks/use-data.js +12 -24
- package/lib/esm/hooks/use-flatten-data.js +9 -16
- package/lib/esm/styles/index.scss.js +0 -2
- package/lib/esm/use-check-select.js +32 -45
- package/lib/esm/utils/index.js +0 -5
- package/package.json +27 -27
package/lib/cjs/CheckSelect.js
CHANGED
@@ -10,168 +10,130 @@
|
|
10
10
|
'use strict';
|
11
11
|
|
12
12
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
-
|
14
13
|
Object.defineProperty(exports, '__esModule', {
|
15
14
|
value: true
|
16
15
|
});
|
17
|
-
|
18
16
|
var tslib = require('tslib');
|
19
|
-
|
20
17
|
var React = require('react');
|
21
|
-
|
22
18
|
var classname = require('@hi-ui/classname');
|
23
|
-
|
24
19
|
var env = require('@hi-ui/env');
|
25
|
-
|
26
20
|
var useCheckSelect = require('./use-check-select.js');
|
27
|
-
|
28
21
|
var icons = require('@hi-ui/icons');
|
29
|
-
|
30
22
|
var context = require('./context.js');
|
31
|
-
|
32
23
|
var useLatest = require('@hi-ui/use-latest');
|
33
|
-
|
34
24
|
var Checkbox = require('@hi-ui/checkbox');
|
35
|
-
|
36
25
|
var tagInput = require('@hi-ui/tag-input');
|
37
|
-
|
38
26
|
var typeAssertion = require('@hi-ui/type-assertion');
|
39
|
-
|
40
27
|
var VirtualList = require('@hi-ui/virtual-list');
|
41
|
-
|
42
28
|
var picker = require('@hi-ui/picker');
|
43
|
-
|
44
29
|
var domUtils = require('@hi-ui/dom-utils');
|
45
|
-
|
46
30
|
var arrayUtils = require('@hi-ui/array-utils');
|
47
|
-
|
48
31
|
var highlighter = require('@hi-ui/highlighter');
|
49
|
-
|
50
32
|
var useToggle = require('@hi-ui/use-toggle');
|
51
|
-
|
52
33
|
var funcUtils = require('@hi-ui/func-utils');
|
53
|
-
|
54
34
|
var core = require('@hi-ui/core');
|
55
|
-
|
56
35
|
var useSearchMode = require('@hi-ui/use-search-mode');
|
57
|
-
|
58
36
|
require('@hi-ui/use-children');
|
59
|
-
|
60
37
|
var useFlattenData = require('./hooks/use-flatten-data.js');
|
61
|
-
|
62
38
|
var index = require('./utils/index.js');
|
63
|
-
|
64
|
-
function _interopDefaultLegacy(e) {
|
39
|
+
function _interopDefaultCompat(e) {
|
65
40
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
66
41
|
'default': e
|
67
42
|
};
|
68
43
|
}
|
69
|
-
|
70
|
-
var
|
71
|
-
|
72
|
-
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
73
|
-
|
74
|
-
var VirtualList__default = /*#__PURE__*/_interopDefaultLegacy(VirtualList);
|
75
|
-
|
44
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
45
|
+
var Checkbox__default = /*#__PURE__*/_interopDefaultCompat(Checkbox);
|
46
|
+
var VirtualList__default = /*#__PURE__*/_interopDefaultCompat(VirtualList);
|
76
47
|
var _role = 'check-select';
|
77
|
-
|
78
48
|
var _prefix = classname.getPrefixCls(_role);
|
79
|
-
|
80
49
|
var DEFAULT_FIELD_NAMES = {};
|
81
50
|
/**
|
82
51
|
* 多项选择器
|
83
52
|
*/
|
84
|
-
|
85
53
|
var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
86
54
|
// ************************** 国际化 ************************* //
|
87
55
|
var _a$prefixCls = _a.prefixCls,
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
56
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
57
|
+
className = _a.className,
|
58
|
+
children = _a.children,
|
59
|
+
_a$disabled = _a.disabled,
|
60
|
+
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
61
|
+
_a$clearable = _a.clearable,
|
62
|
+
clearable = _a$clearable === void 0 ? true : _a$clearable,
|
63
|
+
_a$showCheckAll = _a.showCheckAll,
|
64
|
+
showCheckAll = _a$showCheckAll === void 0 ? false : _a$showCheckAll,
|
65
|
+
_a$showOnlyShowChecke = _a.showOnlyShowChecked,
|
66
|
+
showOnlyShowChecked = _a$showOnlyShowChecke === void 0 ? false : _a$showOnlyShowChecke,
|
67
|
+
placeholderProp = _a.placeholder,
|
68
|
+
displayRenderProp = _a.displayRender,
|
69
|
+
onSelectProp = _a.onSelect,
|
70
|
+
height = _a.height,
|
71
|
+
_a$itemHeight = _a.itemHeight,
|
72
|
+
itemHeight = _a$itemHeight === void 0 ? 40 : _a$itemHeight,
|
73
|
+
_a$virtual = _a.virtual,
|
74
|
+
virtual = _a$virtual === void 0 ? true : _a$virtual,
|
75
|
+
visible = _a.visible,
|
76
|
+
onOpen = _a.onOpen,
|
77
|
+
onClose = _a.onClose,
|
78
|
+
appearance = _a.appearance,
|
79
|
+
invalid = _a.invalid,
|
80
|
+
dataSource = _a.dataSource,
|
81
|
+
filterOption = _a.filterOption,
|
82
|
+
searchableProp = _a.searchable,
|
83
|
+
titleRender = _a.render,
|
84
|
+
renderExtraFooter = _a.renderExtraFooter,
|
85
|
+
onSearchProp = _a.onSearch,
|
86
|
+
_a$fieldNames = _a.fieldNames,
|
87
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
88
|
+
customRender = _a.customRender,
|
89
|
+
tagInputProps = _a.tagInputProps,
|
90
|
+
_a$size = _a.size,
|
91
|
+
size = _a$size === void 0 ? 'md' : _a$size,
|
92
|
+
onKeyDownProp = _a.onKeyDown,
|
93
|
+
rest = tslib.__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"]);
|
127
94
|
var i18n = core.useLocaleContext();
|
128
|
-
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkSelect.placeholder') : placeholderProp;
|
129
|
-
|
95
|
+
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkSelect.placeholder') : placeholderProp;
|
96
|
+
// ************************** Picker ************************* //
|
130
97
|
var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
98
|
+
visible: visible,
|
99
|
+
disabled: disabled,
|
100
|
+
onOpen: onOpen,
|
101
|
+
onClose: onClose
|
102
|
+
}),
|
103
|
+
menuVisible = _useUncontrolledToggl[0],
|
104
|
+
menuVisibleAction = _useUncontrolledToggl[1];
|
139
105
|
var displayRender = React.useCallback(function (item) {
|
140
106
|
if (typeAssertion.isFunction(displayRenderProp)) {
|
141
107
|
return displayRenderProp(item);
|
142
108
|
}
|
143
|
-
|
144
109
|
return item.title;
|
145
110
|
}, [displayRenderProp]);
|
146
|
-
|
147
111
|
var _b = useCheckSelect.useCheckSelect(Object.assign(Object.assign({}, rest), {
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
112
|
+
children: children,
|
113
|
+
fieldNames: fieldNames,
|
114
|
+
onSelect: onSelectProp
|
115
|
+
})),
|
116
|
+
rootProps = _b.rootProps,
|
117
|
+
context$1 = tslib.__rest(_b, ["rootProps"]);
|
155
118
|
var value = context$1.value,
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
119
|
+
tryChangeValue = context$1.tryChangeValue,
|
120
|
+
flattedData = context$1.flattedData,
|
121
|
+
checkedItems = context$1.checkedItems,
|
122
|
+
onSelect = context$1.onSelect,
|
123
|
+
isCheckedId = context$1.isCheckedId;
|
124
|
+
// ************************** 搜索 ************************* //
|
162
125
|
var _c = useSearchMode.useAsyncSearch({
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
126
|
+
dataSource: dataSource,
|
127
|
+
dataTransform: function dataTransform(data) {
|
128
|
+
return useFlattenData.flattenData({
|
129
|
+
data: data,
|
130
|
+
fieldNames: fieldNames
|
131
|
+
});
|
132
|
+
}
|
133
|
+
}),
|
134
|
+
loading = _c.loading,
|
135
|
+
hasError = _c.hasError,
|
136
|
+
dataSourceStrategy = tslib.__rest(_c, ["loading", "hasError"]);
|
175
137
|
var customSearchStrategy = useSearchMode.useTreeCustomSearch({
|
176
138
|
data: flattedData,
|
177
139
|
filterOption: filterOption
|
@@ -181,74 +143,63 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
181
143
|
flattedData: flattedData,
|
182
144
|
enabled: searchableProp
|
183
145
|
});
|
184
|
-
|
185
146
|
var _useSearchMode = useSearchMode.useSearchMode({
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
147
|
+
searchable: searchableProp,
|
148
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy]
|
149
|
+
}),
|
150
|
+
stateInSearch = _useSearchMode.state,
|
151
|
+
searchable = _useSearchMode.searchable,
|
152
|
+
searchMode = _useSearchMode.searchMode,
|
153
|
+
onSearch = _useSearchMode.onSearch,
|
154
|
+
searchValue = _useSearchMode.keyword;
|
155
|
+
// 拦截 titleRender,自定义高亮展示
|
196
156
|
var proxyTitleRender = React.useCallback(function (node) {
|
197
157
|
if (titleRender) {
|
198
158
|
var _ret = titleRender(node);
|
199
|
-
|
200
159
|
if (_ret && _ret !== true) return _ret;
|
201
|
-
}
|
202
|
-
|
203
|
-
|
160
|
+
}
|
161
|
+
// 本地搜索执行默认高亮规则
|
204
162
|
var highlight = !!searchValue && searchMode === 'filter';
|
205
|
-
var ret = highlight ? /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
163
|
+
var ret = highlight ? ( /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
206
164
|
checked: node.checked,
|
207
165
|
disabled: node.disabled
|
208
166
|
}, /*#__PURE__*/React__default["default"].createElement(highlighter.Highlighter, {
|
209
167
|
keyword: searchValue
|
210
|
-
}, node.title)) : true;
|
168
|
+
}, node.title))) : true;
|
211
169
|
return ret;
|
212
170
|
}, [titleRender, searchValue, searchMode]);
|
213
171
|
var shouldUseSearch = !!searchValue && !hasError;
|
214
172
|
var showData = React.useMemo(function () {
|
215
173
|
return shouldUseSearch ? stateInSearch.data : flattedData;
|
216
|
-
}, [shouldUseSearch, flattedData, stateInSearch.data]);
|
217
|
-
|
174
|
+
}, [shouldUseSearch, flattedData, stateInSearch.data]);
|
175
|
+
// 根据 id 进行合并,注意必须是扁平数据
|
218
176
|
var mergedData = React.useMemo(function () {
|
219
177
|
var nextData = checkedItems.concat(flattedData);
|
220
178
|
return arrayUtils.uniqBy(nextData, 'id');
|
221
179
|
}, [checkedItems, flattedData]);
|
222
|
-
|
223
180
|
var _useState = React.useState(null),
|
224
|
-
|
225
|
-
|
226
|
-
|
181
|
+
filterItems = _useState[0],
|
182
|
+
setFilterItems = _useState[1];
|
227
183
|
var dropdownItems = filterItems || showData;
|
228
184
|
var activeExpandable = showOnlyShowChecked && !!filterItems && menuVisible;
|
229
|
-
|
230
185
|
var _useMemo = React.useMemo(function () {
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
186
|
+
return index.getAllCheckedStatus(dropdownItems, value, index.isOption);
|
187
|
+
}, [dropdownItems, value]),
|
188
|
+
showAllChecked = _useMemo[0],
|
189
|
+
showIndeterminate = _useMemo[1];
|
236
190
|
var valueLatestRef = useLatest.useLatestRef(value);
|
237
191
|
var toggleCheckAll = React.useCallback(function () {
|
238
192
|
var value = valueLatestRef.current;
|
239
|
-
|
240
193
|
var _getAllCheckedStatus = index.getAllCheckedStatus(dropdownItems, value, index.isCheckableOption),
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
194
|
+
currentAllChecked = _getAllCheckedStatus[0];
|
195
|
+
var shouldChecked = !currentAllChecked;
|
196
|
+
// 当前页的数据选项
|
245
197
|
var items = dropdownItems.filter(index.isCheckableOption);
|
246
198
|
var targetIds = items.map(function (_ref) {
|
247
199
|
var id = _ref.id;
|
248
200
|
return id;
|
249
201
|
});
|
250
202
|
var allData = arrayUtils.uniqBy(items.concat(mergedData), 'id');
|
251
|
-
|
252
203
|
if (shouldChecked) {
|
253
204
|
var nextCheckedIds = Array.from(new Set(value.concat(targetIds)));
|
254
205
|
var changedIds = nextCheckedIds.filter(function (id) {
|
@@ -263,48 +214,38 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
263
214
|
var _nextCheckedIds = value.filter(function (id) {
|
264
215
|
return !targetIds.includes(id);
|
265
216
|
});
|
266
|
-
|
267
217
|
var _changedIds = value.filter(function (id) {
|
268
218
|
return !_nextCheckedIds.includes(id);
|
269
219
|
});
|
270
|
-
|
271
220
|
var _changedItems = allData.filter(function (_ref3) {
|
272
221
|
var id = _ref3.id;
|
273
222
|
return _changedIds.includes(id);
|
274
223
|
}); // items
|
275
|
-
|
276
|
-
|
277
224
|
tryChangeValue(_nextCheckedIds, _changedItems, shouldChecked);
|
278
225
|
}
|
279
|
-
}, [dropdownItems, mergedData, valueLatestRef, tryChangeValue]);
|
280
|
-
|
226
|
+
}, [dropdownItems, mergedData, valueLatestRef, tryChangeValue]);
|
227
|
+
// ************************** 回车选中处理 ************************* //
|
281
228
|
var defaultIndex = showData.findIndex(function (item) {
|
282
229
|
return !item.disabled;
|
283
230
|
});
|
284
|
-
|
285
231
|
var _useState2 = React.useState(defaultIndex),
|
286
|
-
|
287
|
-
|
288
|
-
|
232
|
+
focusedIndex = _useState2[0],
|
233
|
+
setFocusedIndex = _useState2[1];
|
289
234
|
var handleKeyDown = useLatest.useLatestCallback(function (evt) {
|
290
235
|
var key = evt.key;
|
291
|
-
|
292
236
|
if (key === 'Enter') {
|
293
237
|
var focusedItem = showData[focusedIndex];
|
294
|
-
|
295
238
|
if (focusedItem) {
|
296
239
|
onSelect(focusedItem, !isCheckedId(focusedItem.id));
|
297
240
|
}
|
298
241
|
}
|
299
|
-
});
|
300
|
-
|
242
|
+
});
|
243
|
+
// 更新 focused 索引
|
301
244
|
React.useEffect(function () {
|
302
245
|
setFocusedIndex(defaultIndex);
|
303
246
|
}, [defaultIndex, menuVisible]);
|
304
|
-
|
305
247
|
var renderDefaultFooter = function renderDefaultFooter() {
|
306
248
|
var extra = renderExtraFooter ? renderExtraFooter() : null;
|
307
|
-
|
308
249
|
if (showCheckAll) {
|
309
250
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
310
251
|
indeterminate: showIndeterminate,
|
@@ -312,10 +253,8 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
312
253
|
onChange: toggleCheckAll
|
313
254
|
}, i18n.get('checkSelect.checkAll')), extra);
|
314
255
|
}
|
315
|
-
|
316
256
|
return extra;
|
317
257
|
};
|
318
|
-
|
319
258
|
var expandedViewRef = React.useRef('normal');
|
320
259
|
var virtualListProps = {
|
321
260
|
height: height,
|
@@ -323,16 +262,13 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
323
262
|
virtual: virtual,
|
324
263
|
data: dropdownItems
|
325
264
|
};
|
326
|
-
|
327
265
|
var _useCheckInVirtual = VirtualList.useCheckInVirtual(virtualListProps),
|
328
|
-
|
329
|
-
|
266
|
+
inVirtual = _useCheckInVirtual.inVirtual;
|
330
267
|
var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
|
331
268
|
var listRef = React.useRef(null);
|
332
269
|
React.useEffect(function () {
|
333
|
-
var _a;
|
334
|
-
|
335
|
-
|
270
|
+
var _a;
|
271
|
+
// 每次打开或数据改变时触发一次滚动条显示
|
336
272
|
if (menuVisible && typeAssertion.isArrayNonEmpty(showData)) {
|
337
273
|
(_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(undefined);
|
338
274
|
}
|
@@ -353,7 +289,7 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
353
289
|
onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
|
354
290
|
loading: rest.loading !== undefined ? rest.loading : loading,
|
355
291
|
footer: renderDefaultFooter(),
|
356
|
-
trigger: customRender ? typeof customRender === 'function' ? customRender(checkedItems) : customRender : /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
|
292
|
+
trigger: customRender ? typeof customRender === 'function' ? customRender(checkedItems) : customRender : ( /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
|
357
293
|
size: size,
|
358
294
|
clearable: clearable,
|
359
295
|
placeholder: placeholder,
|
@@ -369,14 +305,12 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
369
305
|
invalid: invalid,
|
370
306
|
onClick: function onClick(evt) {
|
371
307
|
if (!showOnlyShowChecked) return;
|
372
|
-
if (disabled) return;
|
373
|
-
|
308
|
+
if (disabled) return;
|
309
|
+
// 阻止 Picker 调用 onOpen/onClose
|
374
310
|
evt.preventDefault();
|
375
|
-
|
376
311
|
if (filterItems) {
|
377
312
|
setFilterItems(null);
|
378
313
|
}
|
379
|
-
|
380
314
|
if (menuVisible) {
|
381
315
|
if (expandedViewRef.current === 'normal') {
|
382
316
|
menuVisibleAction.off();
|
@@ -384,15 +318,14 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
384
318
|
} else {
|
385
319
|
menuVisibleAction.on();
|
386
320
|
}
|
387
|
-
|
388
321
|
expandedViewRef.current = 'normal';
|
389
322
|
},
|
390
323
|
expandable: showOnlyShowChecked,
|
391
324
|
activeExpandable: activeExpandable,
|
392
325
|
onExpand: function onExpand(evt) {
|
393
326
|
if (!showOnlyShowChecked) return;
|
394
|
-
if (disabled) return;
|
395
|
-
|
327
|
+
if (disabled) return;
|
328
|
+
// 阻止冒泡触发外层 onClick
|
396
329
|
evt.stopPropagation();
|
397
330
|
evt.preventDefault();
|
398
331
|
setFilterItems(function () {
|
@@ -400,7 +333,6 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
400
333
|
return value.includes(item.id);
|
401
334
|
});
|
402
335
|
});
|
403
|
-
|
404
336
|
if (menuVisible) {
|
405
337
|
if (expandedViewRef.current !== 'normal') {
|
406
338
|
menuVisibleAction.off();
|
@@ -408,19 +340,18 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
408
340
|
} else {
|
409
341
|
menuVisibleAction.on();
|
410
342
|
}
|
411
|
-
|
412
343
|
expandedViewRef.current = 'onlyChecked';
|
413
344
|
}
|
414
|
-
}))
|
415
|
-
}), typeAssertion.isArrayNonEmpty(dropdownItems) ? /*#__PURE__*/React__default["default"].createElement(VirtualList__default["default"], Object.assign({
|
345
|
+
})))
|
346
|
+
}), typeAssertion.isArrayNonEmpty(dropdownItems) ? ( /*#__PURE__*/React__default["default"].createElement(VirtualList__default["default"], Object.assign({
|
416
347
|
ref: listRef,
|
417
348
|
itemKey: "id",
|
418
349
|
fullHeight: false
|
419
350
|
}, virtualListProps), function (node, index) {
|
420
351
|
/* 反向 map,搜索删选数据时会对数据进行处理 */
|
421
|
-
return 'groupTitle' in node ? /*#__PURE__*/React__default["default"].createElement(CheckSelectOptionGroup, {
|
352
|
+
return 'groupTitle' in node ? ( /*#__PURE__*/React__default["default"].createElement(CheckSelectOptionGroup, {
|
422
353
|
label: node.groupTitle
|
423
|
-
}) : /*#__PURE__*/React__default["default"].createElement(CheckSelectOption, {
|
354
|
+
})) : ( /*#__PURE__*/React__default["default"].createElement(CheckSelectOption, {
|
424
355
|
option: node,
|
425
356
|
depth: node.depth,
|
426
357
|
titleRender: proxyTitleRender,
|
@@ -428,36 +359,32 @@ var CheckSelect = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
428
359
|
!node.disabled && setFocusedIndex(index);
|
429
360
|
},
|
430
361
|
focused: focusedIndex === index
|
431
|
-
});
|
432
|
-
}) : null));
|
433
|
-
});
|
434
|
-
|
362
|
+
}));
|
363
|
+
})) : null));
|
364
|
+
});
|
365
|
+
// @ts-ignore
|
435
366
|
CheckSelect.HiName = 'CheckSelect';
|
436
|
-
|
437
367
|
if (env.__DEV__) {
|
438
368
|
CheckSelect.displayName = 'CheckSelect';
|
439
369
|
}
|
440
|
-
|
441
370
|
var optionPrefix = classname.getPrefixCls('check-select-option');
|
442
371
|
var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
443
372
|
var _a$prefixCls2 = _a.prefixCls,
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
373
|
+
prefixCls = _a$prefixCls2 === void 0 ? optionPrefix : _a$prefixCls2,
|
374
|
+
className = _a.className,
|
375
|
+
_a$option = _a.option,
|
376
|
+
option = _a$option === void 0 ? {} : _a$option,
|
377
|
+
onClick = _a.onClick,
|
378
|
+
titleRender = _a.titleRender,
|
379
|
+
depth = _a.depth,
|
380
|
+
focused = _a.focused,
|
381
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "children", "option", "onClick", "titleRender", "depth", "focused"]);
|
454
382
|
var _useCheckSelectContex = context.useCheckSelectContext(),
|
455
|
-
|
456
|
-
|
457
|
-
|
383
|
+
isCheckedId = _useCheckSelectContex.isCheckedId,
|
384
|
+
onSelect = _useCheckSelectContex.onSelect;
|
458
385
|
var id = option.id,
|
459
|
-
|
460
|
-
|
386
|
+
_option$disabled = option.disabled,
|
387
|
+
disabled = _option$disabled === void 0 ? false : _option$disabled;
|
461
388
|
var checked = isCheckedId(id);
|
462
389
|
var eventNodeRef = useLatest.useLatestRef(Object.assign({}, option, {
|
463
390
|
disabled: disabled,
|
@@ -473,10 +400,10 @@ var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
473
400
|
var title = titleRender ? titleRender(node) : true;
|
474
401
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
475
402
|
className: prefixCls + "__title"
|
476
|
-
}, title === true ? /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
403
|
+
}, title === true ? ( /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
477
404
|
checked: node.checked,
|
478
405
|
disabled: node.disabled
|
479
|
-
}, node.title) : title);
|
406
|
+
}, node.title)) : title);
|
480
407
|
}, [prefixCls]);
|
481
408
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
482
409
|
ref: ref,
|
@@ -484,39 +411,33 @@ var CheckSelectOption = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
484
411
|
}, rest, {
|
485
412
|
onClick: handleOptionCheck
|
486
413
|
}), renderIndent(prefixCls, depth), renderTitle(eventNodeRef.current, titleRender));
|
487
|
-
});
|
488
|
-
|
414
|
+
});
|
415
|
+
// @ts-ignore
|
489
416
|
CheckSelectOption.HiName = 'CheckSelectOption';
|
490
|
-
|
491
417
|
if (env.__DEV__) {
|
492
418
|
CheckSelectOption.displayName = 'CheckSelectOption';
|
493
419
|
}
|
494
|
-
|
495
420
|
var optionGroupPrefix = classname.getPrefixCls('select-option-group');
|
496
421
|
var CheckSelectOptionGroup = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
497
422
|
var _a$prefixCls3 = _a.prefixCls,
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
423
|
+
prefixCls = _a$prefixCls3 === void 0 ? optionGroupPrefix : _a$prefixCls3,
|
424
|
+
className = _a.className,
|
425
|
+
label = _a.label,
|
426
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "label"]);
|
503
427
|
var cls = classname.cx(prefixCls, className);
|
504
428
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
505
429
|
ref: ref,
|
506
430
|
className: cls
|
507
431
|
}, rest), /*#__PURE__*/React__default["default"].createElement("span", null, label));
|
508
|
-
});
|
509
|
-
|
432
|
+
});
|
433
|
+
// @ts-ignore
|
510
434
|
CheckSelectOptionGroup.HiName = 'CheckSelectOptionGroup';
|
511
|
-
|
512
435
|
if (env.__DEV__) {
|
513
436
|
CheckSelectOptionGroup.displayName = 'CheckSelectOptionGroup';
|
514
437
|
}
|
515
438
|
/**
|
516
439
|
* 渲染空白占位
|
517
440
|
*/
|
518
|
-
|
519
|
-
|
520
441
|
var renderIndent = function renderIndent(prefixCls, depth) {
|
521
442
|
return arrayUtils.times(depth, function (index) {
|
522
443
|
return /*#__PURE__*/React__default["default"].createElement("span", {
|
@@ -529,7 +450,6 @@ var renderIndent = function renderIndent(prefixCls, depth) {
|
|
529
450
|
}));
|
530
451
|
});
|
531
452
|
};
|
532
|
-
|
533
453
|
exports.CheckSelect = CheckSelect;
|
534
454
|
exports.CheckSelectOption = CheckSelectOption;
|
535
455
|
exports.CheckSelectOptionGroup = CheckSelectOptionGroup;
|
package/lib/cjs/context.js
CHANGED
@@ -12,21 +12,15 @@
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
13
13
|
value: true
|
14
14
|
});
|
15
|
-
|
16
15
|
var React = require('react');
|
17
|
-
|
18
16
|
var checkSelectContext = /*#__PURE__*/React.createContext(null);
|
19
17
|
var CheckSelectProvider = checkSelectContext.Provider;
|
20
|
-
|
21
18
|
var useCheckSelectContext = function useCheckSelectContext() {
|
22
19
|
var context = React.useContext(checkSelectContext);
|
23
|
-
|
24
20
|
if (!context) {
|
25
21
|
throw new Error('The checkSelectContext context should using in CheckSelect.');
|
26
22
|
}
|
27
|
-
|
28
23
|
return context;
|
29
24
|
};
|
30
|
-
|
31
25
|
exports.CheckSelectProvider = CheckSelectProvider;
|
32
26
|
exports.useCheckSelectContext = useCheckSelectContext;
|