@hi-ui/check-cascader 4.0.0-alpha.31 → 4.0.0-alpha.35
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/README.md +30 -33
- package/lib/cjs/CheckCascader.js +30 -33
- package/lib/cjs/CheckCascader.js.map +1 -1
- package/lib/cjs/CheckCascaderMenu.js.map +1 -1
- package/lib/cjs/CheckCascaderMenus.js.map +1 -1
- package/lib/cjs/context.js.map +1 -1
- package/lib/cjs/hooks/use-async-switch.js +4 -1
- package/lib/cjs/hooks/use-async-switch.js.map +1 -1
- package/lib/cjs/hooks/use-search.js +2 -73
- package/lib/cjs/hooks/use-search.js.map +1 -1
- package/lib/cjs/index.js +0 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/CheckCascader.js +33 -36
- package/lib/esm/CheckCascader.js.map +1 -1
- package/lib/esm/CheckCascaderMenu.js.map +1 -1
- package/lib/esm/CheckCascaderMenus.js.map +1 -1
- package/lib/esm/context.js.map +1 -1
- package/lib/esm/hooks/use-async-switch.js +5 -2
- package/lib/esm/hooks/use-async-switch.js.map +1 -1
- package/lib/esm/hooks/use-search.js +3 -73
- package/lib/esm/hooks/use-search.js.map +1 -1
- package/lib/esm/index.js +0 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/types/CheckCascader.d.ts +9 -16
- package/lib/types/CheckCascaderMenus.d.ts +1 -1
- package/lib/types/context.d.ts +1 -1
- package/lib/types/hooks/use-async-switch.d.ts +1 -1
- package/lib/types/index.d.ts +0 -1
- package/package.json +17 -17
- package/lib/cjs/CheckCascaderPanel.js +0 -214
- package/lib/cjs/CheckCascaderPanel.js.map +0 -1
- package/lib/esm/CheckCascaderPanel.js +0 -181
- package/lib/esm/CheckCascaderPanel.js.map +0 -1
- package/lib/types/CheckCascaderPanel.d.ts +0 -88
@@ -1,214 +0,0 @@
|
|
1
|
-
/** @LICENSE
|
2
|
-
* @hi-ui/check-cascader
|
3
|
-
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
|
-
*
|
5
|
-
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
-
*
|
7
|
-
* This source code is licensed under the MIT license found in the
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
9
|
-
*/
|
10
|
-
'use strict';
|
11
|
-
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
-
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
15
|
-
value: true
|
16
|
-
});
|
17
|
-
|
18
|
-
var tslib = require('tslib');
|
19
|
-
|
20
|
-
var React = require('react');
|
21
|
-
|
22
|
-
var classname = require('@hi-ui/classname');
|
23
|
-
|
24
|
-
var env = require('@hi-ui/env');
|
25
|
-
|
26
|
-
var Input = require('@hi-ui/input');
|
27
|
-
|
28
|
-
var useSearch = require('./hooks/use-search.js');
|
29
|
-
|
30
|
-
require('@hi-ui/use-check');
|
31
|
-
|
32
|
-
require('@hi-ui/use-uncontrolled-state');
|
33
|
-
|
34
|
-
require('@hi-ui/use-latest');
|
35
|
-
|
36
|
-
var useCache = require('./hooks/use-cache.js');
|
37
|
-
|
38
|
-
require('@babel/runtime/regenerator');
|
39
|
-
|
40
|
-
require('@hi-ui/tree-utils');
|
41
|
-
|
42
|
-
var index = require('./utils/index.js');
|
43
|
-
|
44
|
-
var icons = require('@hi-ui/icons');
|
45
|
-
|
46
|
-
var CheckCascaderMenus = require('./CheckCascaderMenus.js');
|
47
|
-
|
48
|
-
function _interopDefaultLegacy(e) {
|
49
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
50
|
-
'default': e
|
51
|
-
};
|
52
|
-
}
|
53
|
-
|
54
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
55
|
-
|
56
|
-
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
57
|
-
|
58
|
-
var _role = 'check-cascader-panel';
|
59
|
-
|
60
|
-
var _prefix = classname.getPrefixCls(_role);
|
61
|
-
|
62
|
-
var NOOP_ARRAY = [];
|
63
|
-
/**
|
64
|
-
* TODO: What is CheckCascaderPanel
|
65
|
-
*/
|
66
|
-
|
67
|
-
var CheckCascaderPanel = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
68
|
-
var _a$prefixCls = _a.prefixCls,
|
69
|
-
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
70
|
-
_a$role = _a.role,
|
71
|
-
role = _a$role === void 0 ? _role : _a$role,
|
72
|
-
className = _a.className,
|
73
|
-
_a$data = _a.data,
|
74
|
-
data = _a$data === void 0 ? NOOP_ARRAY : _a$data,
|
75
|
-
cascaderDataProp = _a.cascaderData,
|
76
|
-
setCascaderDataProp = _a.setCascaderData,
|
77
|
-
value = _a.value,
|
78
|
-
_a$defaultValue = _a.defaultValue,
|
79
|
-
defaultValue = _a$defaultValue === void 0 ? NOOP_ARRAY : _a$defaultValue,
|
80
|
-
_a$disabled = _a.disabled,
|
81
|
-
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
82
|
-
_a$expandTrigger = _a.expandTrigger,
|
83
|
-
expandTrigger = _a$expandTrigger === void 0 ? 'click' : _a$expandTrigger,
|
84
|
-
_a$changeOnSelect = _a.changeOnSelect,
|
85
|
-
changeOnSelect = _a$changeOnSelect === void 0 ? false : _a$changeOnSelect,
|
86
|
-
_a$checkCascaded = _a.checkCascaded,
|
87
|
-
checkCascaded = _a$checkCascaded === void 0 ? true : _a$checkCascaded,
|
88
|
-
_a$searchable = _a.searchable,
|
89
|
-
searchable = _a$searchable === void 0 ? true : _a$searchable,
|
90
|
-
_a$flatted = _a.flatted,
|
91
|
-
flatted = _a$flatted === void 0 ? false : _a$flatted,
|
92
|
-
_a$upMatch = _a.upMatch,
|
93
|
-
upMatch = _a$upMatch === void 0 ? false : _a$upMatch,
|
94
|
-
_a$emptyContent = _a.emptyContent,
|
95
|
-
emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
|
96
|
-
placeholder = _a.placeholder,
|
97
|
-
onChange = _a.onChange,
|
98
|
-
onSelect = _a.onSelect,
|
99
|
-
titleRender = _a.titleRender,
|
100
|
-
onLoadChildren = _a.onLoadChildren,
|
101
|
-
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "cascaderData", "setCascaderData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "searchable", "flatted", "upMatch", "emptyContent", "placeholder", "onChange", "onSelect", "titleRender", "onLoadChildren"]);
|
102
|
-
|
103
|
-
var _useCache = useCache.useCache(data),
|
104
|
-
cascaderCacheData = _useCache[0],
|
105
|
-
setCascaderCacheData = _useCache[1];
|
106
|
-
|
107
|
-
var cascaderData = cascaderDataProp !== null && cascaderDataProp !== void 0 ? cascaderDataProp : cascaderCacheData;
|
108
|
-
var setCascaderData = setCascaderDataProp !== null && setCascaderDataProp !== void 0 ? setCascaderDataProp : setCascaderCacheData;
|
109
|
-
var flattedData = React.useMemo(function () {
|
110
|
-
return index.flattenTreeData(cascaderData);
|
111
|
-
}, [cascaderData]);
|
112
|
-
|
113
|
-
var _useSearch = useSearch.useSearch(flattedData, upMatch),
|
114
|
-
inSearch = _useSearch[0],
|
115
|
-
matchedNodes = _useSearch[1],
|
116
|
-
inputProps = _useSearch[2],
|
117
|
-
isEmpty = _useSearch[3];
|
118
|
-
|
119
|
-
var renderTitleWithSearch = React.useCallback(function (option) {
|
120
|
-
// 如果 titleRender 返回 `true`,则使用默认 title
|
121
|
-
var title = titleRender ? titleRender(option) : true;
|
122
|
-
|
123
|
-
if (title !== true) {
|
124
|
-
return title;
|
125
|
-
}
|
126
|
-
|
127
|
-
if (!inSearch) return true;
|
128
|
-
if (typeof option.title !== 'string') return true;
|
129
|
-
var searchValue = inputProps.value;
|
130
|
-
var found = false;
|
131
|
-
return /*#__PURE__*/React__default['default'].createElement("span", {
|
132
|
-
className: classname.cx("title__text", "title__text--cols")
|
133
|
-
}, index.getNodeAncestors(option).map(function (item) {
|
134
|
-
var title = item.title,
|
135
|
-
id = item.id;
|
136
|
-
var raw = /*#__PURE__*/React__default['default'].createElement("span", {
|
137
|
-
className: "title__text--col",
|
138
|
-
key: id
|
139
|
-
}, title);
|
140
|
-
if (typeof title !== 'string') return raw;
|
141
|
-
if (found) return raw;
|
142
|
-
var index = useSearch.matchStrategy(title, searchValue);
|
143
|
-
if (index === -1) return raw;
|
144
|
-
found = true;
|
145
|
-
var resultLength = searchValue.length;
|
146
|
-
var beforeStr = title.substr(0, index);
|
147
|
-
var resultStr = title.substr(index, searchValue.length);
|
148
|
-
var afterStr = title.substr(index + resultLength);
|
149
|
-
return /*#__PURE__*/React__default['default'].createElement("span", {
|
150
|
-
className: "title__text--col",
|
151
|
-
key: id
|
152
|
-
}, beforeStr, /*#__PURE__*/React__default['default'].createElement("span", {
|
153
|
-
className: "title__text--matched"
|
154
|
-
}, resultStr), afterStr);
|
155
|
-
}).reverse());
|
156
|
-
}, [titleRender, inSearch, inputProps.value]);
|
157
|
-
|
158
|
-
var _useState = React.useState(null),
|
159
|
-
inputElement = _useState[0],
|
160
|
-
setInputElement = _useState[1];
|
161
|
-
|
162
|
-
React.useEffect(function () {
|
163
|
-
if (!inputElement) return; // 临时方案,解决 input 无法正常 autoFocus
|
164
|
-
|
165
|
-
var timer = window.setTimeout(function () {
|
166
|
-
inputElement.focus();
|
167
|
-
}, 200);
|
168
|
-
return function () {
|
169
|
-
window.clearTimeout(timer);
|
170
|
-
};
|
171
|
-
}, [inputElement]);
|
172
|
-
var cls = classname.cx(prefixCls, className);
|
173
|
-
return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
|
174
|
-
ref: ref,
|
175
|
-
role: role,
|
176
|
-
className: cls
|
177
|
-
}, rest), searchable ? /*#__PURE__*/React__default['default'].createElement("div", {
|
178
|
-
className: prefixCls + "-search"
|
179
|
-
}, /*#__PURE__*/React__default['default'].createElement(Input__default['default'] // @ts-ignore
|
180
|
-
, {
|
181
|
-
// @ts-ignore
|
182
|
-
ref: setInputElement,
|
183
|
-
appearance: "underline",
|
184
|
-
placeholder: placeholder,
|
185
|
-
prefix: /*#__PURE__*/React__default['default'].createElement(icons.SearchOutlined, null),
|
186
|
-
value: inputProps.value,
|
187
|
-
onChange: inputProps.onChange
|
188
|
-
}), isEmpty ? /*#__PURE__*/React__default['default'].createElement("span", {
|
189
|
-
className: prefixCls + "-search__empty"
|
190
|
-
}, emptyContent) : null) : null, /*#__PURE__*/React__default['default'].createElement(CheckCascaderMenus.CheckCascaderMenus, Object.assign({}, {
|
191
|
-
disabled: disabled,
|
192
|
-
value: value,
|
193
|
-
defaultValue: defaultValue,
|
194
|
-
onChange: onChange,
|
195
|
-
expandTrigger: expandTrigger,
|
196
|
-
changeOnSelect: changeOnSelect,
|
197
|
-
checkCascaded: checkCascaded,
|
198
|
-
onSelect: onSelect,
|
199
|
-
onLoadChildren: onLoadChildren
|
200
|
-
}, {
|
201
|
-
data: cascaderData,
|
202
|
-
onChangeData: setCascaderData,
|
203
|
-
titleRender: renderTitleWithSearch,
|
204
|
-
flatted: flatted || inSearch,
|
205
|
-
flattedData: inSearch ? matchedNodes : flattedData
|
206
|
-
})));
|
207
|
-
});
|
208
|
-
|
209
|
-
if (env.__DEV__) {
|
210
|
-
CheckCascaderPanel.displayName = 'CheckCascaderPanel';
|
211
|
-
}
|
212
|
-
|
213
|
-
exports.CheckCascaderPanel = CheckCascaderPanel;
|
214
|
-
//# sourceMappingURL=CheckCascaderPanel.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CheckCascaderPanel.js","sources":["../../src/CheckCascaderPanel.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","NOOP_ARRAY","CheckCascaderPanel","forwardRef","_a","ref","prefixCls","role","className","data","cascaderDataProp","cascaderData","setCascaderDataProp","setCascaderData","value","defaultValue","disabled","expandTrigger","changeOnSelect","checkCascaded","searchable","flatted","upMatch","emptyContent","placeholder","onChange","onSelect","titleRender","onLoadChildren","rest","useCache","cascaderCacheData","setCascaderCacheData","flattedData","useMemo","flattenTreeData","useSearch","inSearch","matchedNodes","inputProps","isEmpty","renderTitleWithSearch","useCallback","option","title","searchValue","found","React","cx","getNodeAncestors","map","item","id","raw","key","index","matchStrategy","resultLength","length","beforeStr","substr","resultStr","afterStr","reverse","useState","inputElement","setInputElement","useEffect","timer","window","setTimeout","focus","clearTimeout","cls","Input","appearance","prefix","SearchOutlined","CheckCascaderMenus","onChangeData","__DEV__","displayName"],"mappings":"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"}
|
@@ -1,181 +0,0 @@
|
|
1
|
-
/** @LICENSE
|
2
|
-
* @hi-ui/check-cascader
|
3
|
-
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
|
4
|
-
*
|
5
|
-
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
-
*
|
7
|
-
* This source code is licensed under the MIT license found in the
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
9
|
-
*/
|
10
|
-
import { __rest } from 'tslib';
|
11
|
-
import React, { forwardRef, useMemo, useCallback, useState, useEffect } from 'react';
|
12
|
-
import { getPrefixCls, cx } from '@hi-ui/classname';
|
13
|
-
import { __DEV__ } from '@hi-ui/env';
|
14
|
-
import Input from '@hi-ui/input';
|
15
|
-
import { useSearch, matchStrategy } from './hooks/use-search.js';
|
16
|
-
import '@hi-ui/use-check';
|
17
|
-
import '@hi-ui/use-uncontrolled-state';
|
18
|
-
import '@hi-ui/use-latest';
|
19
|
-
import { useCache } from './hooks/use-cache.js';
|
20
|
-
import '@babel/runtime/regenerator';
|
21
|
-
import '@hi-ui/tree-utils';
|
22
|
-
import { flattenTreeData, getNodeAncestors } from './utils/index.js';
|
23
|
-
import { SearchOutlined } from '@hi-ui/icons';
|
24
|
-
import { CheckCascaderMenus } from './CheckCascaderMenus.js';
|
25
|
-
var _role = 'check-cascader-panel';
|
26
|
-
|
27
|
-
var _prefix = getPrefixCls(_role);
|
28
|
-
|
29
|
-
var NOOP_ARRAY = [];
|
30
|
-
/**
|
31
|
-
* TODO: What is CheckCascaderPanel
|
32
|
-
*/
|
33
|
-
|
34
|
-
var CheckCascaderPanel = /*#__PURE__*/forwardRef(function (_a, ref) {
|
35
|
-
var _a$prefixCls = _a.prefixCls,
|
36
|
-
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
37
|
-
_a$role = _a.role,
|
38
|
-
role = _a$role === void 0 ? _role : _a$role,
|
39
|
-
className = _a.className,
|
40
|
-
_a$data = _a.data,
|
41
|
-
data = _a$data === void 0 ? NOOP_ARRAY : _a$data,
|
42
|
-
cascaderDataProp = _a.cascaderData,
|
43
|
-
setCascaderDataProp = _a.setCascaderData,
|
44
|
-
value = _a.value,
|
45
|
-
_a$defaultValue = _a.defaultValue,
|
46
|
-
defaultValue = _a$defaultValue === void 0 ? NOOP_ARRAY : _a$defaultValue,
|
47
|
-
_a$disabled = _a.disabled,
|
48
|
-
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
49
|
-
_a$expandTrigger = _a.expandTrigger,
|
50
|
-
expandTrigger = _a$expandTrigger === void 0 ? 'click' : _a$expandTrigger,
|
51
|
-
_a$changeOnSelect = _a.changeOnSelect,
|
52
|
-
changeOnSelect = _a$changeOnSelect === void 0 ? false : _a$changeOnSelect,
|
53
|
-
_a$checkCascaded = _a.checkCascaded,
|
54
|
-
checkCascaded = _a$checkCascaded === void 0 ? true : _a$checkCascaded,
|
55
|
-
_a$searchable = _a.searchable,
|
56
|
-
searchable = _a$searchable === void 0 ? true : _a$searchable,
|
57
|
-
_a$flatted = _a.flatted,
|
58
|
-
flatted = _a$flatted === void 0 ? false : _a$flatted,
|
59
|
-
_a$upMatch = _a.upMatch,
|
60
|
-
upMatch = _a$upMatch === void 0 ? false : _a$upMatch,
|
61
|
-
_a$emptyContent = _a.emptyContent,
|
62
|
-
emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
|
63
|
-
placeholder = _a.placeholder,
|
64
|
-
onChange = _a.onChange,
|
65
|
-
onSelect = _a.onSelect,
|
66
|
-
titleRender = _a.titleRender,
|
67
|
-
onLoadChildren = _a.onLoadChildren,
|
68
|
-
rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "cascaderData", "setCascaderData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "searchable", "flatted", "upMatch", "emptyContent", "placeholder", "onChange", "onSelect", "titleRender", "onLoadChildren"]);
|
69
|
-
|
70
|
-
var _useCache = useCache(data),
|
71
|
-
cascaderCacheData = _useCache[0],
|
72
|
-
setCascaderCacheData = _useCache[1];
|
73
|
-
|
74
|
-
var cascaderData = cascaderDataProp !== null && cascaderDataProp !== void 0 ? cascaderDataProp : cascaderCacheData;
|
75
|
-
var setCascaderData = setCascaderDataProp !== null && setCascaderDataProp !== void 0 ? setCascaderDataProp : setCascaderCacheData;
|
76
|
-
var flattedData = useMemo(function () {
|
77
|
-
return flattenTreeData(cascaderData);
|
78
|
-
}, [cascaderData]);
|
79
|
-
|
80
|
-
var _useSearch = useSearch(flattedData, upMatch),
|
81
|
-
inSearch = _useSearch[0],
|
82
|
-
matchedNodes = _useSearch[1],
|
83
|
-
inputProps = _useSearch[2],
|
84
|
-
isEmpty = _useSearch[3];
|
85
|
-
|
86
|
-
var renderTitleWithSearch = useCallback(function (option) {
|
87
|
-
// 如果 titleRender 返回 `true`,则使用默认 title
|
88
|
-
var title = titleRender ? titleRender(option) : true;
|
89
|
-
|
90
|
-
if (title !== true) {
|
91
|
-
return title;
|
92
|
-
}
|
93
|
-
|
94
|
-
if (!inSearch) return true;
|
95
|
-
if (typeof option.title !== 'string') return true;
|
96
|
-
var searchValue = inputProps.value;
|
97
|
-
var found = false;
|
98
|
-
return /*#__PURE__*/React.createElement("span", {
|
99
|
-
className: cx("title__text", "title__text--cols")
|
100
|
-
}, getNodeAncestors(option).map(function (item) {
|
101
|
-
var title = item.title,
|
102
|
-
id = item.id;
|
103
|
-
var raw = /*#__PURE__*/React.createElement("span", {
|
104
|
-
className: "title__text--col",
|
105
|
-
key: id
|
106
|
-
}, title);
|
107
|
-
if (typeof title !== 'string') return raw;
|
108
|
-
if (found) return raw;
|
109
|
-
var index = matchStrategy(title, searchValue);
|
110
|
-
if (index === -1) return raw;
|
111
|
-
found = true;
|
112
|
-
var resultLength = searchValue.length;
|
113
|
-
var beforeStr = title.substr(0, index);
|
114
|
-
var resultStr = title.substr(index, searchValue.length);
|
115
|
-
var afterStr = title.substr(index + resultLength);
|
116
|
-
return /*#__PURE__*/React.createElement("span", {
|
117
|
-
className: "title__text--col",
|
118
|
-
key: id
|
119
|
-
}, beforeStr, /*#__PURE__*/React.createElement("span", {
|
120
|
-
className: "title__text--matched"
|
121
|
-
}, resultStr), afterStr);
|
122
|
-
}).reverse());
|
123
|
-
}, [titleRender, inSearch, inputProps.value]);
|
124
|
-
|
125
|
-
var _useState = useState(null),
|
126
|
-
inputElement = _useState[0],
|
127
|
-
setInputElement = _useState[1];
|
128
|
-
|
129
|
-
useEffect(function () {
|
130
|
-
if (!inputElement) return; // 临时方案,解决 input 无法正常 autoFocus
|
131
|
-
|
132
|
-
var timer = window.setTimeout(function () {
|
133
|
-
inputElement.focus();
|
134
|
-
}, 200);
|
135
|
-
return function () {
|
136
|
-
window.clearTimeout(timer);
|
137
|
-
};
|
138
|
-
}, [inputElement]);
|
139
|
-
var cls = cx(prefixCls, className);
|
140
|
-
return /*#__PURE__*/React.createElement("div", Object.assign({
|
141
|
-
ref: ref,
|
142
|
-
role: role,
|
143
|
-
className: cls
|
144
|
-
}, rest), searchable ? /*#__PURE__*/React.createElement("div", {
|
145
|
-
className: prefixCls + "-search"
|
146
|
-
}, /*#__PURE__*/React.createElement(Input // @ts-ignore
|
147
|
-
, {
|
148
|
-
// @ts-ignore
|
149
|
-
ref: setInputElement,
|
150
|
-
appearance: "underline",
|
151
|
-
placeholder: placeholder,
|
152
|
-
prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),
|
153
|
-
value: inputProps.value,
|
154
|
-
onChange: inputProps.onChange
|
155
|
-
}), isEmpty ? /*#__PURE__*/React.createElement("span", {
|
156
|
-
className: prefixCls + "-search__empty"
|
157
|
-
}, emptyContent) : null) : null, /*#__PURE__*/React.createElement(CheckCascaderMenus, Object.assign({}, {
|
158
|
-
disabled: disabled,
|
159
|
-
value: value,
|
160
|
-
defaultValue: defaultValue,
|
161
|
-
onChange: onChange,
|
162
|
-
expandTrigger: expandTrigger,
|
163
|
-
changeOnSelect: changeOnSelect,
|
164
|
-
checkCascaded: checkCascaded,
|
165
|
-
onSelect: onSelect,
|
166
|
-
onLoadChildren: onLoadChildren
|
167
|
-
}, {
|
168
|
-
data: cascaderData,
|
169
|
-
onChangeData: setCascaderData,
|
170
|
-
titleRender: renderTitleWithSearch,
|
171
|
-
flatted: flatted || inSearch,
|
172
|
-
flattedData: inSearch ? matchedNodes : flattedData
|
173
|
-
})));
|
174
|
-
});
|
175
|
-
|
176
|
-
if (__DEV__) {
|
177
|
-
CheckCascaderPanel.displayName = 'CheckCascaderPanel';
|
178
|
-
}
|
179
|
-
|
180
|
-
export { CheckCascaderPanel };
|
181
|
-
//# sourceMappingURL=CheckCascaderPanel.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"CheckCascaderPanel.js","sources":["../../src/CheckCascaderPanel.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","NOOP_ARRAY","CheckCascaderPanel","forwardRef","_a","ref","prefixCls","role","className","data","cascaderDataProp","cascaderData","setCascaderDataProp","setCascaderData","value","defaultValue","disabled","expandTrigger","changeOnSelect","checkCascaded","searchable","flatted","upMatch","emptyContent","placeholder","onChange","onSelect","titleRender","onLoadChildren","rest","useCache","cascaderCacheData","setCascaderCacheData","flattedData","useMemo","flattenTreeData","useSearch","inSearch","matchedNodes","inputProps","isEmpty","renderTitleWithSearch","useCallback","option","title","searchValue","found","React","cx","getNodeAncestors","map","item","id","raw","key","index","matchStrategy","resultLength","length","beforeStr","substr","resultStr","afterStr","reverse","useState","inputElement","setInputElement","useEffect","timer","window","setTimeout","focus","clearTimeout","cls","Input","appearance","prefix","SearchOutlined","CheckCascaderMenus","onChangeData","__DEV__","displayName"],"mappings":"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"}
|
@@ -1,88 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { CheckCascaderItem, ExpandTrigger, CheckCascaderItemEventData } from './types';
|
3
|
-
/**
|
4
|
-
* TODO: What is CheckCascaderPanel
|
5
|
-
*/
|
6
|
-
export declare const CheckCascaderPanel: React.ForwardRefExoticComponent<CheckCascaderPanelProps & React.RefAttributes<HTMLDivElement | null>>;
|
7
|
-
export interface CheckCascaderPanelProps {
|
8
|
-
/**
|
9
|
-
* 组件默认的选择器类
|
10
|
-
*/
|
11
|
-
prefixCls?: string;
|
12
|
-
/**
|
13
|
-
* 组件的语义化 Role 属性
|
14
|
-
*/
|
15
|
-
role?: string;
|
16
|
-
/**
|
17
|
-
* 组件的注入选择器类
|
18
|
-
*/
|
19
|
-
className?: string;
|
20
|
-
/**
|
21
|
-
* 组件的注入样式
|
22
|
-
*/
|
23
|
-
style?: React.CSSProperties;
|
24
|
-
/**
|
25
|
-
* 设置选择项数据源
|
26
|
-
*/
|
27
|
-
data: CheckCascaderItem[];
|
28
|
-
/**
|
29
|
-
* 设置当前多选值
|
30
|
-
*/
|
31
|
-
value?: React.ReactText[];
|
32
|
-
/**
|
33
|
-
* 设置当前多选值默认值
|
34
|
-
*/
|
35
|
-
defaultValue?: React.ReactText[];
|
36
|
-
/**
|
37
|
-
* 多选值改变时的回调
|
38
|
-
*/
|
39
|
-
onChange?: (values: React.ReactText[]) => void;
|
40
|
-
/**
|
41
|
-
* 选项被点击时的回调
|
42
|
-
*/
|
43
|
-
onSelect?: (selectedId: React.ReactText, selectedOption: CheckCascaderItemEventData) => void;
|
44
|
-
/**
|
45
|
-
* 次级菜单的展开方式
|
46
|
-
*/
|
47
|
-
expandTrigger?: ExpandTrigger;
|
48
|
-
/**
|
49
|
-
* 是否可搜索
|
50
|
-
*/
|
51
|
-
searchable?: boolean;
|
52
|
-
/**
|
53
|
-
* 是否禁止使用
|
54
|
-
*/
|
55
|
-
disabled?: boolean;
|
56
|
-
/**
|
57
|
-
* 设置选项为空时展示的内容
|
58
|
-
*/
|
59
|
-
emptyContent?: React.ReactNode;
|
60
|
-
/**
|
61
|
-
* 是否启用选择即改变功能
|
62
|
-
*/
|
63
|
-
changeOnSelect?: boolean;
|
64
|
-
/**
|
65
|
-
* 自定义渲染节点的 title 内容
|
66
|
-
*/
|
67
|
-
titleRender?: (item: CheckCascaderItemEventData) => React.ReactNode;
|
68
|
-
/**
|
69
|
-
* 支持 checkbox 级联(正反选)功能
|
70
|
-
*/
|
71
|
-
checkCascaded?: boolean;
|
72
|
-
/**
|
73
|
-
* 将 check 子项拍平展示
|
74
|
-
*/
|
75
|
-
flatted?: boolean;
|
76
|
-
/**
|
77
|
-
* 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
|
78
|
-
*/
|
79
|
-
upMatch?: boolean;
|
80
|
-
/**
|
81
|
-
* 搜索输入框占位符
|
82
|
-
*/
|
83
|
-
placeholder?: string;
|
84
|
-
/**
|
85
|
-
* 异步请求更新数据
|
86
|
-
*/
|
87
|
-
onLoadChildren?: (item: CheckCascaderItemEventData) => Promise<CheckCascaderItem[] | void> | void;
|
88
|
-
}
|