@hi-ui/check-cascader 4.0.0-beta.7 → 4.0.0
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/lib/cjs/CheckCascader.js +66 -67
- package/lib/cjs/CheckCascaderMenu.js +14 -13
- package/lib/cjs/{CheckCascaderMenus.js → CheckCascaderMenuList.js} +19 -25
- package/lib/cjs/context.js +1 -2
- package/lib/cjs/hooks/use-async-switch.js +5 -6
- package/lib/cjs/hooks/{use-cache.js → use-cache/lib/esm/index.js} +12 -6
- package/lib/cjs/hooks/use-check.js +16 -7
- package/lib/cjs/hooks/use-select.js +1 -2
- package/lib/cjs/icons/index.js +4 -5
- package/lib/cjs/index.js +1 -2
- package/lib/cjs/styles/index.scss.js +3 -4
- package/lib/cjs/utils/index.js +177 -68
- package/lib/esm/CheckCascader.js +54 -52
- package/lib/esm/CheckCascaderMenu.js +4 -4
- package/lib/esm/{CheckCascaderMenus.js → CheckCascaderMenuList.js} +16 -22
- package/lib/esm/context.js +1 -2
- package/lib/esm/hooks/use-async-switch.js +1 -2
- package/lib/esm/hooks/{use-cache.js → use-cache/lib/esm/index.js} +12 -6
- package/lib/esm/hooks/use-check.js +15 -7
- package/lib/esm/hooks/use-select.js +1 -2
- package/lib/esm/icons/index.js +1 -2
- package/lib/esm/index.js +1 -2
- package/lib/esm/styles/index.scss.js +4 -6
- package/lib/esm/utils/index.js +175 -70
- package/lib/types/CheckCascader.d.ts +14 -12
- package/lib/types/CheckCascaderMenu.d.ts +4 -4
- package/lib/types/{CheckCascaderMenus.d.ts → CheckCascaderMenuList.d.ts} +18 -10
- package/lib/types/context.d.ts +4 -4
- package/lib/types/hooks/index.d.ts +0 -2
- package/lib/types/hooks/use-async-switch.d.ts +2 -2
- package/lib/types/hooks/use-check.d.ts +2 -2
- package/lib/types/index.d.ts +1 -0
- package/lib/types/types.d.ts +13 -22
- package/lib/types/utils/index.d.ts +17 -10
- package/package.json +29 -27
- package/lib/cjs/CheckCascader.js.map +0 -1
- package/lib/cjs/CheckCascaderMenu.js.map +0 -1
- package/lib/cjs/CheckCascaderMenus.js.map +0 -1
- package/lib/cjs/context.js.map +0 -1
- package/lib/cjs/hooks/use-async-switch.js.map +0 -1
- package/lib/cjs/hooks/use-cache.js.map +0 -1
- package/lib/cjs/hooks/use-check.js.map +0 -1
- package/lib/cjs/hooks/use-search.js +0 -40
- package/lib/cjs/hooks/use-search.js.map +0 -1
- package/lib/cjs/hooks/use-select.js.map +0 -1
- package/lib/cjs/icons/index.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/styles/index.scss.js.map +0 -1
- package/lib/cjs/utils/index.js.map +0 -1
- package/lib/esm/CheckCascader.js.map +0 -1
- package/lib/esm/CheckCascaderMenu.js.map +0 -1
- package/lib/esm/CheckCascaderMenus.js.map +0 -1
- package/lib/esm/context.js.map +0 -1
- package/lib/esm/hooks/use-async-switch.js.map +0 -1
- package/lib/esm/hooks/use-cache.js.map +0 -1
- package/lib/esm/hooks/use-check.js.map +0 -1
- package/lib/esm/hooks/use-search.js +0 -31
- package/lib/esm/hooks/use-search.js.map +0 -1
- package/lib/esm/hooks/use-select.js.map +0 -1
- package/lib/esm/icons/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/styles/index.scss.js.map +0 -1
- package/lib/esm/utils/index.js.map +0 -1
- package/lib/types/hooks/use-cache.d.ts +0 -8
- package/lib/types/hooks/use-search.d.ts +0 -13
package/lib/cjs/CheckCascader.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -29,33 +29,27 @@ var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
29
29
|
|
30
30
|
var icons = require('@hi-ui/icons');
|
31
31
|
|
32
|
-
var
|
33
|
-
|
34
|
-
require('@hi-ui/use-check');
|
35
|
-
|
36
|
-
var useCache = require('./hooks/use-cache.js');
|
37
|
-
|
38
|
-
require('@babel/runtime/regenerator');
|
39
|
-
|
40
|
-
var useLatest = require('@hi-ui/use-latest');
|
41
|
-
|
42
|
-
var treeUtils = require('@hi-ui/tree-utils');
|
32
|
+
var index = require('./hooks/use-cache/lib/esm/index.js');
|
43
33
|
|
44
34
|
var picker = require('@hi-ui/picker');
|
45
35
|
|
46
36
|
var tagInput = require('@hi-ui/tag-input');
|
47
37
|
|
48
|
-
var
|
49
|
-
|
50
|
-
var CheckCascaderMenus = require('./CheckCascaderMenus.js');
|
38
|
+
var CheckCascaderMenuList = require('./CheckCascaderMenuList.js');
|
51
39
|
|
52
40
|
var useSearchMode = require('@hi-ui/use-search-mode');
|
53
41
|
|
54
|
-
var index = require('./utils/index.js');
|
42
|
+
var index$1 = require('./utils/index.js');
|
43
|
+
|
44
|
+
var treeUtils = require('@hi-ui/tree-utils');
|
45
|
+
|
46
|
+
var useLatest = require('@hi-ui/use-latest');
|
55
47
|
|
56
48
|
var typeAssertion = require('@hi-ui/type-assertion');
|
57
49
|
|
58
|
-
var
|
50
|
+
var core = require('@hi-ui/core');
|
51
|
+
|
52
|
+
var funcUtils = require('@hi-ui/func-utils');
|
59
53
|
|
60
54
|
function _interopDefaultLegacy(e) {
|
61
55
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
@@ -86,7 +80,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
86
80
|
clearable = _a.clearable,
|
87
81
|
onSelect = _a.onSelect,
|
88
82
|
expandTrigger = _a.expandTrigger,
|
89
|
-
disabled = _a.disabled,
|
83
|
+
_a$disabled = _a.disabled,
|
84
|
+
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
90
85
|
changeOnSelect = _a.changeOnSelect,
|
91
86
|
titleRender = _a.render,
|
92
87
|
displayRender = _a.displayRender,
|
@@ -96,56 +91,70 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
96
91
|
invalid = _a.invalid,
|
97
92
|
filterOption = _a.filterOption,
|
98
93
|
searchableProp = _a.searchable,
|
94
|
+
onSearchProp = _a.onSearch,
|
99
95
|
overlayClassName = _a.overlayClassName,
|
100
96
|
_a$type = _a.type,
|
101
97
|
type = _a$type === void 0 ? 'tree' : _a$type,
|
102
|
-
|
98
|
+
checkedMode = _a.checkedMode,
|
99
|
+
visible = _a.visible,
|
100
|
+
onOpen = _a.onOpen,
|
101
|
+
onClose = _a.onClose,
|
102
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "defaultValue", "value", "onChange", "data", "placeholder", "clearable", "onSelect", "expandTrigger", "disabled", "emptyContent", "changeOnSelect", "render", "displayRender", "checkCascaded", "searchPlaceholder", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "overlayClassName", "type", "checkedMode", "visible", "onOpen", "onClose"]);
|
103
103
|
|
104
|
-
var i18n =
|
104
|
+
var i18n = core.useLocaleContext();
|
105
105
|
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
|
106
106
|
var flatted = type === 'flatted';
|
107
107
|
|
108
|
-
var
|
109
|
-
|
110
|
-
|
108
|
+
var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
|
109
|
+
visible: visible,
|
110
|
+
disabled: disabled,
|
111
|
+
onOpen: onOpen,
|
112
|
+
onClose: onClose
|
113
|
+
}),
|
114
|
+
menuVisible = _useUncontrolledToggl[0],
|
115
|
+
menuVisibleAction = _useUncontrolledToggl[1];
|
111
116
|
|
112
|
-
var _useCache =
|
117
|
+
var _useCache = index.useCache(data),
|
113
118
|
cascaderData = _useCache[0],
|
114
119
|
setCascaderData = _useCache[1];
|
115
120
|
|
116
121
|
var flattedData = React.useMemo(function () {
|
117
|
-
return index.flattenTreeData(cascaderData);
|
122
|
+
return index$1.flattenTreeData(cascaderData);
|
118
123
|
}, [cascaderData]);
|
119
124
|
|
120
125
|
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChange),
|
121
126
|
_value = _useUncontrolledState[0],
|
122
|
-
tryChangeValue = _useUncontrolledState[1];
|
127
|
+
tryChangeValue = _useUncontrolledState[1]; // 内部实现使用尾部 id
|
128
|
+
|
123
129
|
|
124
130
|
var value = _value.map(function (path) {
|
125
131
|
return path[path.length - 1];
|
126
132
|
});
|
127
133
|
|
128
|
-
var flattedDataLatestRef = useLatest.useLatestRef(flattedData);
|
129
134
|
var proxyOnChange = useLatest.useLatestCallback(function (value, item, shouldChecked) {
|
130
|
-
var flattedItems =
|
131
|
-
var itemsPaths =
|
132
|
-
|
133
|
-
|
134
|
-
return treeUtils.getTopDownAncestors(item).map(function (_ref) {
|
135
|
-
var id = _ref.id;
|
136
|
-
return id;
|
135
|
+
var flattedItems = flattedData;
|
136
|
+
var itemsPaths = value.map(function (lastId) {
|
137
|
+
var item = flattedItems.find(function (item) {
|
138
|
+
return item.id === lastId;
|
137
139
|
});
|
138
|
-
}); // TODO: 找到所有 id 的祖先节点路径
|
139
140
|
|
140
|
-
|
141
|
+
if (item) {
|
142
|
+
return treeUtils.getTopDownAncestors(item).map(function (_ref) {
|
143
|
+
var id = _ref.id;
|
144
|
+
return id;
|
145
|
+
});
|
146
|
+
} // 对于传入的数据未匹配到,保持不变吐出去
|
147
|
+
|
141
148
|
|
142
|
-
|
143
|
-
|
144
|
-
setSelectedItems(function (prev) {
|
145
|
-
return [].concat(prev, [item]);
|
149
|
+
var idPaths = _value.find(function (item) {
|
150
|
+
return item[item.length - 1] === lastId;
|
146
151
|
});
|
147
|
-
|
148
|
-
|
152
|
+
|
153
|
+
return idPaths || [lastId];
|
154
|
+
});
|
155
|
+
tryChangeValue(itemsPaths);
|
156
|
+
}); // ************************** 搜索 ************************* //
|
157
|
+
// 无法做异步搜索,因为下拉菜单不能合并(因为树形数据,不知道是第几级)
|
149
158
|
|
150
159
|
var customSearchStrategy = useSearchMode.useTreeCustomSearch({
|
151
160
|
data: flattedData,
|
@@ -181,50 +190,40 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
181
190
|
|
182
191
|
var highlight = !!searchValue && searchMode === 'upMatch';
|
183
192
|
var found = false;
|
184
|
-
var ret = highlight ? /*#__PURE__*/React__default[
|
193
|
+
var ret = highlight ? /*#__PURE__*/React__default["default"].createElement("span", {
|
185
194
|
className: classname.cx("title__text", "title__text--cols")
|
186
195
|
}, treeUtils.getNodeAncestorsWithMe(node).map(function (item) {
|
187
196
|
var title = item.title,
|
188
197
|
id = item.id;
|
189
|
-
var raw = /*#__PURE__*/React__default[
|
198
|
+
var raw = /*#__PURE__*/React__default["default"].createElement("span", {
|
190
199
|
className: "title__text--col",
|
191
200
|
key: id
|
192
201
|
}, title);
|
193
202
|
if (typeof title !== 'string') return raw;
|
194
203
|
if (found) return raw;
|
195
|
-
var index =
|
204
|
+
var index = useSearchMode.matchStrategy(title, searchValue);
|
196
205
|
if (index === -1) return raw;
|
197
206
|
found = true;
|
198
207
|
var resultLength = searchValue.length;
|
199
208
|
var beforeStr = title.substr(0, index);
|
200
209
|
var resultStr = title.substr(index, searchValue.length);
|
201
210
|
var afterStr = title.substr(index + resultLength);
|
202
|
-
return /*#__PURE__*/React__default[
|
211
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
203
212
|
className: "title__text--col",
|
204
213
|
key: id
|
205
|
-
}, beforeStr, /*#__PURE__*/React__default[
|
214
|
+
}, beforeStr, /*#__PURE__*/React__default["default"].createElement("span", {
|
206
215
|
className: "title__text--matched"
|
207
216
|
}, resultStr), afterStr);
|
208
217
|
}).reverse()) : true;
|
209
218
|
return ret;
|
210
|
-
}, [titleRender, searchValue, searchMode]);
|
211
|
-
|
212
|
-
var _useState = React.useState([]),
|
213
|
-
selectedItems = _useState[0],
|
214
|
-
setSelectedItems = _useState[1];
|
215
|
-
|
219
|
+
}, [titleRender, searchValue, searchMode]);
|
216
220
|
var shouldUseSearch = !!searchValue;
|
217
221
|
var selectProps = {
|
218
222
|
data: shouldUseSearch ? stateInSearch.data : flattedData,
|
219
223
|
titleRender: proxyTitleRender
|
220
|
-
};
|
221
|
-
|
222
|
-
var mergedData = React.useMemo(function () {
|
223
|
-
var nextData = selectedItems.concat(flattedData);
|
224
|
-
return arrayUtils.uniqBy(nextData, 'id');
|
225
|
-
}, [selectedItems, flattedData]);
|
224
|
+
};
|
226
225
|
var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
|
227
|
-
return /*#__PURE__*/React__default[
|
226
|
+
return /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
|
228
227
|
ref: ref,
|
229
228
|
className: cls,
|
230
229
|
overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
|
@@ -241,22 +240,22 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
241
240
|
disabled: disabled,
|
242
241
|
onClose: menuVisibleAction.off,
|
243
242
|
searchable: searchable,
|
244
|
-
onSearch: onSearch,
|
245
|
-
trigger: /*#__PURE__*/React__default[
|
243
|
+
onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
|
244
|
+
trigger: /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, {
|
246
245
|
clearable: clearable,
|
247
246
|
placeholder: placeholder,
|
248
247
|
// @ts-ignore
|
249
248
|
displayRender: displayRender,
|
250
|
-
suffix: menuVisible ? /*#__PURE__*/React__default[
|
249
|
+
suffix: menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null),
|
251
250
|
focused: menuVisible,
|
252
251
|
appearance: appearance,
|
253
252
|
value: value,
|
254
253
|
// @ts-ignore
|
255
254
|
onChange: proxyOnChange,
|
256
|
-
data:
|
255
|
+
data: flattedData,
|
257
256
|
invalid: invalid
|
258
257
|
})
|
259
|
-
}), typeAssertion.isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React__default[
|
258
|
+
}), typeAssertion.isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenuList.CheckCascaderMenuList, {
|
260
259
|
disabled: disabled,
|
261
260
|
value: value,
|
262
261
|
// @ts-ignore
|
@@ -271,7 +270,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
271
270
|
// @ts-ignore
|
272
271
|
flattedData: selectProps.data,
|
273
272
|
data: cascaderData,
|
274
|
-
onChangeData: setCascaderData
|
273
|
+
onChangeData: setCascaderData,
|
274
|
+
checkedMode: checkedMode
|
275
275
|
}) : null);
|
276
276
|
});
|
277
277
|
|
@@ -280,4 +280,3 @@ if (env.__DEV__) {
|
|
280
280
|
}
|
281
281
|
|
282
282
|
exports.CheckCascader = CheckCascader;
|
283
|
-
//# sourceMappingURL=CheckCascader.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -27,6 +27,8 @@ var context = require('./context.js');
|
|
27
27
|
|
28
28
|
var index = require('./utils/index.js');
|
29
29
|
|
30
|
+
var treeUtils = require('@hi-ui/tree-utils');
|
31
|
+
|
30
32
|
function _interopDefaultLegacy(e) {
|
31
33
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
32
34
|
'default': e
|
@@ -71,14 +73,14 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
71
73
|
return title;
|
72
74
|
}
|
73
75
|
|
74
|
-
return flatted ? /*#__PURE__*/React__default[
|
76
|
+
return flatted ? /*#__PURE__*/React__default["default"].createElement("span", {
|
75
77
|
className: classname.cx("title__text", "title__text--cols")
|
76
|
-
},
|
77
|
-
return /*#__PURE__*/React__default[
|
78
|
+
}, treeUtils.getNodeAncestorsWithMe(option).reverse().map(function (item, index) {
|
79
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
78
80
|
className: "title__text--col",
|
79
81
|
key: item.id
|
80
82
|
}, item.title);
|
81
|
-
})) : /*#__PURE__*/React__default[
|
83
|
+
})) : /*#__PURE__*/React__default["default"].createElement("span", {
|
82
84
|
className: "title__text"
|
83
85
|
}, option.title);
|
84
86
|
}, [titleRender, flatted]);
|
@@ -87,7 +89,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
87
89
|
return checkable;
|
88
90
|
});
|
89
91
|
var cls = classname.cx(prefixCls, className, isCheckableMenu && prefixCls + "--checkable");
|
90
|
-
return /*#__PURE__*/React__default[
|
92
|
+
return /*#__PURE__*/React__default["default"].createElement("ul", {
|
91
93
|
className: cls,
|
92
94
|
role: role
|
93
95
|
}, menu.map(function (option) {
|
@@ -103,11 +105,11 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
103
105
|
// 如果存在子节点,则可以展现选择态
|
104
106
|
// 不存在子节点,如不是可勾选item,则可以展现勾选态
|
105
107
|
selected && (((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) || !option.checkable) && prefixCls + "-option--selected", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled");
|
106
|
-
return /*#__PURE__*/React__default[
|
108
|
+
return /*#__PURE__*/React__default["default"].createElement("li", {
|
107
109
|
role: "menu-item",
|
108
110
|
className: prefixCls + "-item",
|
109
111
|
key: option.id
|
110
|
-
}, /*#__PURE__*/React__default[
|
112
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
111
113
|
className: optionCls,
|
112
114
|
onClick: function onClick(evt) {
|
113
115
|
if (disabled) return;
|
@@ -122,7 +124,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
122
124
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
123
125
|
}
|
124
126
|
}
|
125
|
-
}, option.checkable ? /*#__PURE__*/React__default[
|
127
|
+
}, option.checkable ? /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
126
128
|
className: prefixCls + "-checkbox",
|
127
129
|
indeterminate: semiChecked,
|
128
130
|
checked: checked,
|
@@ -146,7 +148,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
146
148
|
|
147
149
|
var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildren) {
|
148
150
|
if (loading) {
|
149
|
-
return /*#__PURE__*/React__default[
|
151
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
150
152
|
className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--loading")
|
151
153
|
}, index$1.defaultLoadingIcon);
|
152
154
|
}
|
@@ -155,7 +157,7 @@ var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildre
|
|
155
157
|
var canLoadChildren = onLoadChildren && !node.children && !node.isLeaf;
|
156
158
|
|
157
159
|
if (hasChildren || canLoadChildren) {
|
158
|
-
return /*#__PURE__*/React__default[
|
160
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
159
161
|
className: classname.cx(prefixCls + "-switcher"),
|
160
162
|
style: {
|
161
163
|
transform: "rotate(-90deg)"
|
@@ -163,10 +165,9 @@ var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildre
|
|
163
165
|
}, index$1.defaultSuffixIcon);
|
164
166
|
}
|
165
167
|
|
166
|
-
return /*#__PURE__*/React__default[
|
168
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
167
169
|
className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--noop")
|
168
170
|
}, index$1.defaultLeafIcon);
|
169
171
|
};
|
170
172
|
|
171
173
|
exports.CheckCascaderMenu = CheckCascaderMenu;
|
172
|
-
//# sourceMappingURL=CheckCascaderMenu.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -50,11 +50,7 @@ var _role = 'check-cascader-menus';
|
|
50
50
|
var _prefix = classname.getPrefixCls(_role);
|
51
51
|
|
52
52
|
var NOOP_ARRAY = [];
|
53
|
-
|
54
|
-
* TODO: What is CheckCascaderMenus
|
55
|
-
*/
|
56
|
-
|
57
|
-
var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
53
|
+
var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
58
54
|
var _a$prefixCls = _a.prefixCls,
|
59
55
|
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
60
56
|
_a$role = _a.role,
|
@@ -77,7 +73,13 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
77
73
|
onChange = _a.onChange,
|
78
74
|
titleRender = _a.titleRender,
|
79
75
|
flatted = _a.flatted,
|
80
|
-
|
76
|
+
_a$checkedMode = _a.checkedMode,
|
77
|
+
checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
|
78
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "flatted", "checkedMode"]);
|
79
|
+
|
80
|
+
if (checkCascaded === false) {
|
81
|
+
checkedMode = 'SEPARATE';
|
82
|
+
}
|
81
83
|
|
82
84
|
var _useSelect = useSelect.useSelect(disabled),
|
83
85
|
selectedId = _useSelect[0],
|
@@ -89,17 +91,10 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
89
91
|
isLoadingId = _useAsyncSwitch[0],
|
90
92
|
onItemExpand = _useAsyncSwitch[1];
|
91
93
|
|
92
|
-
var _useCheck = useCheck.useCheck(
|
93
|
-
var checkedIds = _ref.checkedIds
|
94
|
-
semiCheckedIds = _ref.semiCheckedIds; // @ts-ignore
|
94
|
+
var _useCheck = useCheck.useCheck(checkedMode, disabled, flattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
|
95
|
+
var checkedIds = _ref.checkedIds; // @ts-ignore
|
95
96
|
|
96
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds,
|
97
|
-
trigger: 'checkbox',
|
98
|
-
target: target,
|
99
|
-
shouldChecked: shouldChecked,
|
100
|
-
semiCheckedIds: semiCheckedIds // checkedItems: fFindNodesByIds(flattedData, checkedIds),
|
101
|
-
|
102
|
-
});
|
97
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds, target, shouldChecked);
|
103
98
|
}),
|
104
99
|
onOptionCheck = _useCheck[0],
|
105
100
|
isCheckedId = _useCheck[1],
|
@@ -112,8 +107,8 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
112
107
|
selected: flatted ? selectedId === id : selectedIds[depth] === id,
|
113
108
|
checked: isCheckedId(id),
|
114
109
|
loading: isLoadingId(id),
|
115
|
-
semiChecked: isSemiCheckedId(id),
|
116
|
-
|
110
|
+
semiChecked: isSemiCheckedId(id) // focused: false,
|
111
|
+
|
117
112
|
};
|
118
113
|
});
|
119
114
|
var providedValue = React.useMemo(function () {
|
@@ -130,14 +125,14 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
130
125
|
}, [changeOnSelect, expandTrigger, onOptionCheck, onItemExpand, flatted, titleRender, onLoadChildren, disabled]);
|
131
126
|
var menus = flatted ? index.getFlattedMenus(flattedData) : index.getActiveMenus(flattedData, selectedId);
|
132
127
|
var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted", changeOnSelect && prefixCls + "--selectchange");
|
133
|
-
return /*#__PURE__*/React__default[
|
128
|
+
return /*#__PURE__*/React__default["default"].createElement(context.CheckCascaderProvider, {
|
134
129
|
value: providedValue
|
135
|
-
}, /*#__PURE__*/React__default[
|
130
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
136
131
|
ref: ref,
|
137
132
|
role: role,
|
138
133
|
className: cls
|
139
134
|
}, rest), menus.map(function (menu, menuIndex) {
|
140
|
-
return menu.length > 0 ? /*#__PURE__*/React__default[
|
135
|
+
return menu.length > 0 ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
|
141
136
|
key: menuIndex,
|
142
137
|
data: menu,
|
143
138
|
getCascaderItemRequiredProps: getCascaderItemRequiredProps
|
@@ -146,8 +141,7 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
146
141
|
});
|
147
142
|
|
148
143
|
if (env.__DEV__) {
|
149
|
-
|
144
|
+
CheckCascaderMenuList.displayName = 'CheckCascaderMenuList';
|
150
145
|
}
|
151
146
|
|
152
|
-
exports.
|
153
|
-
//# sourceMappingURL=CheckCascaderMenus.js.map
|
147
|
+
exports.CheckCascaderMenuList = CheckCascaderMenuList;
|
package/lib/cjs/context.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -30,4 +30,3 @@ var useCheckCascaderContext = function useCheckCascaderContext() {
|
|
30
30
|
|
31
31
|
exports.CheckCascaderProvider = CheckCascaderProvider;
|
32
32
|
exports.useCheckCascaderContext = useCheckCascaderContext;
|
33
|
-
//# sourceMappingURL=context.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -41,9 +41,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
|
|
41
41
|
|
42
42
|
|
43
43
|
var loadChildren = React.useCallback(function (node) {
|
44
|
-
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default[
|
44
|
+
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
|
45
45
|
var childrenNodes;
|
46
|
-
return _regeneratorRuntime__default[
|
46
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
47
47
|
while (1) {
|
48
48
|
switch (_context.prev = _context.next) {
|
49
49
|
case 0:
|
@@ -82,9 +82,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
|
|
82
82
|
}, [onLoadChildren, setCascaderData]);
|
83
83
|
var onExpandLatest = useLatest.useLatestCallback(onExpand);
|
84
84
|
var onNodeSwitch = React.useCallback(function (node) {
|
85
|
-
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default[
|
85
|
+
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
|
86
86
|
var id, children, isLeaf;
|
87
|
-
return _regeneratorRuntime__default[
|
87
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
88
88
|
while (1) {
|
89
89
|
switch (_context2.prev = _context2.next) {
|
90
90
|
case 0:
|
@@ -168,4 +168,3 @@ var useList = function useList(initialValue) {
|
|
168
168
|
};
|
169
169
|
|
170
170
|
exports.useAsyncSwitch = useAsyncSwitch;
|
171
|
-
//# sourceMappingURL=use-async-switch.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -14,11 +14,18 @@ Object.defineProperty(exports, '__esModule', {
|
|
14
14
|
});
|
15
15
|
|
16
16
|
var React = require('react');
|
17
|
-
/**
|
18
|
-
*
|
17
|
+
/** @LICENSE
|
18
|
+
* @hi-ui/use-cache
|
19
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-cache#readme
|
19
20
|
*
|
20
|
-
* @
|
21
|
-
*
|
21
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
22
|
+
*
|
23
|
+
* This source code is licensed under the MIT license found in the
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
25
|
+
*/
|
26
|
+
|
27
|
+
/**
|
28
|
+
* A hook using for data cache that compatible with the controlled and uncontrolled modes coexist.
|
22
29
|
*/
|
23
30
|
|
24
31
|
|
@@ -34,4 +41,3 @@ var useCache = function useCache(data) {
|
|
34
41
|
};
|
35
42
|
|
36
43
|
exports.useCache = useCache;
|
37
|
-
//# sourceMappingURL=use-cache.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -13,32 +13,42 @@ Object.defineProperty(exports, '__esModule', {
|
|
13
13
|
value: true
|
14
14
|
});
|
15
15
|
|
16
|
+
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
17
|
+
|
16
18
|
var useCheck$1 = require('@hi-ui/use-check');
|
17
19
|
|
18
|
-
var
|
20
|
+
var index = require('../utils/index.js');
|
19
21
|
|
20
22
|
var NOOP_ARRAY = [];
|
21
23
|
|
22
|
-
var useCheck = function useCheck(
|
24
|
+
var useCheck = function useCheck(checkedMode, disabled, flattedData, defaultCheckedIds, checkedIdsProp, onCheck) {
|
23
25
|
if (defaultCheckedIds === void 0) {
|
24
26
|
defaultCheckedIds = NOOP_ARRAY;
|
25
27
|
}
|
26
28
|
|
27
29
|
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultCheckedIds, checkedIdsProp, function (checkedIds, checkedNode, shouldChecked, semiCheckedIds) {
|
30
|
+
// 出口数据处理
|
28
31
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck({
|
29
32
|
checkedIds: checkedIds,
|
30
33
|
semiCheckedIds: semiCheckedIds
|
31
34
|
}, checkedNode, shouldChecked);
|
32
35
|
}),
|
33
36
|
checkedIds = _useUncontrolledState[0],
|
34
|
-
trySetCheckedIds = _useUncontrolledState[1];
|
37
|
+
trySetCheckedIds = _useUncontrolledState[1]; // 入口数据处理
|
38
|
+
|
35
39
|
|
40
|
+
var parsedCheckedIds = index.parseCheckDataDirty(checkedMode, checkedIds, flattedData, allowCheck);
|
41
|
+
var cascaded = checkedMode !== 'SEPARATE';
|
36
42
|
return useCheck$1.useCascadeCheck({
|
37
43
|
cascaded: cascaded,
|
38
44
|
disabled: disabled,
|
39
45
|
flattedData: flattedData,
|
40
|
-
checkedIds:
|
41
|
-
onCheck:
|
46
|
+
checkedIds: parsedCheckedIds,
|
47
|
+
onCheck: function onCheck(checkedIds, checkedNode, shouldChecked, semiCheckedIds) {
|
48
|
+
// 出口数据处理
|
49
|
+
var processedIds = index.processCheckedIds(checkedMode, checkedIds, flattedData, allowCheck);
|
50
|
+
trySetCheckedIds(processedIds, checkedNode, shouldChecked, semiCheckedIds);
|
51
|
+
},
|
42
52
|
allowCheck: allowCheck
|
43
53
|
});
|
44
54
|
};
|
@@ -52,4 +62,3 @@ var allowCheck = function allowCheck(targetItem) {
|
|
52
62
|
};
|
53
63
|
|
54
64
|
exports.useCheck = useCheck;
|
55
|
-
//# sourceMappingURL=use-check.js.map
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -35,4 +35,3 @@ var useSelect = function useSelect(disabled) {
|
|
35
35
|
};
|
36
36
|
|
37
37
|
exports.useSelect = useSelect;
|
38
|
-
//# sourceMappingURL=use-select.js.map
|
package/lib/cjs/icons/index.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @hi-ui/check-cascader
|
3
3
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
4
|
*
|
5
|
-
* Copyright (c)
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
@@ -29,15 +29,14 @@ function _interopDefaultLegacy(e) {
|
|
29
29
|
|
30
30
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
31
31
|
|
32
|
-
var defaultSuffixIcon = /*#__PURE__*/React__default[
|
33
|
-
var defaultLeafIcon = /*#__PURE__*/React__default[
|
32
|
+
var defaultSuffixIcon = /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null);
|
33
|
+
var defaultLeafIcon = /*#__PURE__*/React__default["default"].createElement("span", {
|
34
34
|
style: {
|
35
35
|
display: 'inline-block',
|
36
36
|
width: 16
|
37
37
|
}
|
38
38
|
});
|
39
|
-
var defaultLoadingIcon = /*#__PURE__*/React__default[
|
39
|
+
var defaultLoadingIcon = /*#__PURE__*/React__default["default"].createElement(spinner.Spinner, null);
|
40
40
|
exports.defaultLeafIcon = defaultLeafIcon;
|
41
41
|
exports.defaultLoadingIcon = defaultLoadingIcon;
|
42
42
|
exports.defaultSuffixIcon = defaultSuffixIcon;
|
43
|
-
//# sourceMappingURL=index.js.map
|