@ucloud-fe/react-components 1.2.18 → 1.3.1
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 +34 -0
- package/dist/icon.min.js +1 -1
- package/dist/main.min.js +4 -4
- package/index.d.ts +46 -41
- package/lib/__index.js +4 -0
- package/lib/components/AutoComplete/AutoComplete.d.ts +1 -1
- package/lib/components/AutoComplete/AutoComplete.js +1 -1
- package/lib/components/Calendar/Calendar.d.ts +4 -2
- package/lib/components/Calendar/Calendar.js +21 -11
- package/lib/components/Calendar/Month.d.ts +3 -28
- package/lib/components/Calendar/Month.js +3 -11
- package/lib/components/Cascader/Cascade.d.ts +24 -0
- package/lib/components/Cascader/Cascade.js +280 -0
- package/lib/components/Cascader/CascadeContext.d.ts +7 -0
- package/lib/components/Cascader/CascadeContext.js +20 -0
- package/lib/components/Cascader/Cascader.d.ts +41 -0
- package/lib/components/Cascader/Cascader.js +359 -0
- package/lib/components/Cascader/Item.d.ts +14 -0
- package/lib/components/Cascader/Item.js +97 -0
- package/lib/components/Cascader/Items.d.ts +11 -0
- package/lib/components/Cascader/Items.js +175 -0
- package/lib/components/Cascader/index.d.ts +2 -0
- package/lib/components/Cascader/index.js +13 -0
- package/lib/components/Cascader/interface.d.ts +12 -0
- package/lib/components/Cascader/interface.js +5 -0
- package/lib/components/Cascader/locale/en_US.js +11 -0
- package/lib/components/Cascader/locale/zh_CN.d.ts +5 -0
- package/lib/components/Cascader/locale/zh_CN.js +11 -0
- package/lib/components/Cascader/style/cascade.d.ts +15 -0
- package/lib/components/Cascader/style/cascade.js +55 -0
- package/lib/components/Cascader/style/index.d.ts +11 -0
- package/lib/components/Cascader/style/index.js +49 -0
- package/lib/components/Compact/Compact.js +6 -18
- package/lib/components/DatePicker/DatePicker.js +9 -3
- package/lib/components/DatePicker/Footer.d.ts +1 -1
- package/lib/components/DatePicker/Footer.js +3 -27
- package/lib/components/DatePicker/Month.js +2 -1
- package/lib/components/DatePicker/RangePicker.js +18 -10
- package/lib/components/DatePicker/style/index.d.ts +10 -5
- package/lib/components/DatePicker/style/index.js +30 -21
- package/lib/components/Input/Input.js +21 -18
- package/lib/components/LocaleProvider/LocaleProvider.js +1 -1
- package/lib/components/LocaleProvider/locale/en_US.js +5 -2
- package/lib/components/LocaleProvider/locale/zh_CN.js +5 -2
- package/lib/components/LocaleProvider/localeConsumerDecorator.js +1 -1
- package/lib/components/LocaleProvider/{locale/runtime.d.ts → runtime.d.ts} +1 -1
- package/lib/components/LocaleProvider/{locale/runtime.js → runtime.js} +0 -0
- package/lib/components/LocaleProvider/useLocale.js +1 -1
- package/lib/components/Menu/Menu.js +2 -2
- package/lib/components/Message/Message.js +17 -24
- package/lib/components/Message/method.js +22 -4
- package/lib/components/Modal/method.js +131 -57
- package/lib/components/Notice/Notice.js +15 -20
- package/lib/components/Select/Select.js +7 -19
- package/lib/components/Table/Table.js +1 -6
- package/lib/components/TimePicker/TimePicker.js +2 -2
- package/lib/components/TimePicker/style/index.d.ts +3 -0
- package/lib/components/TimePicker/style/index.js +29 -7
- package/lib/components/Transfer/Transfer.js +4 -3
- package/lib/components/Transfer/locale/en_US.js +3 -1
- package/lib/components/Transfer/locale/zh_CN.js +3 -1
- package/lib/components/Upload/Upload.js +3 -2
- package/lib/hooks/group.js +2 -2
- package/lib/hooks/useSearch.d.ts +23 -0
- package/lib/hooks/useSearch.js +387 -0
- package/lib/index.js +5 -1
- package/lib/sharedComponents/Search/Highlight.d.ts +4 -2
- package/lib/sharedComponents/Search/Highlight.js +1 -24
- package/lib/sharedComponents/Search/Search.d.ts +3 -3
- package/lib/sharedComponents/Search/Search.js +6 -21
- package/lib/sharedComponents/Search/SearchInput.d.ts +4 -0
- package/lib/sharedComponents/Search/SearchInput.js +51 -0
- package/lib/sharedComponents/Search/index.d.ts +2 -1
- package/lib/sharedComponents/Search/index.js +8 -0
- package/lib/sharedComponents/Search/style.d.ts +3 -0
- package/lib/sharedComponents/Search/style.js +15 -4
- package/lib/sharedComponents/VirtualScrollList.d.ts +7 -0
- package/lib/sharedComponents/VirtualScrollList.js +68 -0
- package/lib/utils/attrs.d.ts +5 -0
- package/lib/utils/attrs.js +39 -0
- package/lib/utils/deprecatedLog.d.ts +1 -1
- package/lib/utils/deprecatedLog.js +8 -1
- package/lib/utils/wait.d.ts +2 -0
- package/lib/utils/wait.js +23 -0
- package/lib/utils/warning.d.ts +4 -2
- package/lib/utils/warning.js +19 -4
- package/package.json +1 -1
- package/lib/sharedComponents/Search/useSearch.d.ts +0 -10
- package/lib/sharedComponents/Search/useSearch.js +0 -122
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InputProps } from '../../components/Input';
|
|
3
|
+
import { Size } from '../../type';
|
|
4
|
+
import { CascadeData, Key, LoadData } from './interface';
|
|
5
|
+
export interface DefinedCascaderProps {
|
|
6
|
+
/** 数据源 */
|
|
7
|
+
dataSource?: CascadeData[];
|
|
8
|
+
/** 选中的值 */
|
|
9
|
+
value?: Key[];
|
|
10
|
+
/** 默认值,非受控 */
|
|
11
|
+
defaultValue?: Key[];
|
|
12
|
+
/** 选中回调 */
|
|
13
|
+
onChange?: (value: Key[] | void) => void;
|
|
14
|
+
/** 是否禁用 */
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/** 尺寸 */
|
|
17
|
+
size?: Size;
|
|
18
|
+
/** 使用搜索 */
|
|
19
|
+
search?: boolean | {
|
|
20
|
+
/** 自定义搜索函数 */
|
|
21
|
+
handleSearch?: (searchValue: string, dataSource: CascadeData[]) => {
|
|
22
|
+
dataSource: CascadeData[];
|
|
23
|
+
count?: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/** 异步加载数据操作 */
|
|
27
|
+
loadData?: LoadData;
|
|
28
|
+
/** 是否可清空 */
|
|
29
|
+
clearable?: boolean;
|
|
30
|
+
/** 状态 */
|
|
31
|
+
status: InputProps['status'];
|
|
32
|
+
/** @ignore */
|
|
33
|
+
placeholder?: string;
|
|
34
|
+
/** 自定义 popover 的配置 */
|
|
35
|
+
popoverProps?: {
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare type CascaderProps = DefinedCascaderProps;
|
|
40
|
+
declare const _default: React.MemoExoticComponent<({ dataSource, value: _value, defaultValue, onChange: _onChange, disabled, size, search, clearable, placeholder, loadData, status, popoverProps }: DefinedCascaderProps) => JSX.Element>;
|
|
41
|
+
export default _default;
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
19
|
+
|
|
20
|
+
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
|
|
21
|
+
|
|
22
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
25
|
+
|
|
26
|
+
var _Popover = _interopRequireDefault(require("../../components/Popover"));
|
|
27
|
+
|
|
28
|
+
var _Tooltip = _interopRequireDefault(require("../../components/Tooltip"));
|
|
29
|
+
|
|
30
|
+
var _SvgIcon = _interopRequireDefault(require("../../components/SvgIcon"));
|
|
31
|
+
|
|
32
|
+
var _useLocale = _interopRequireDefault(require("../../components/LocaleProvider/useLocale"));
|
|
33
|
+
|
|
34
|
+
var _Search = require("../../sharedComponents/Search");
|
|
35
|
+
|
|
36
|
+
var _usePopoverConfig = _interopRequireDefault(require("../../hooks/usePopoverConfig"));
|
|
37
|
+
|
|
38
|
+
var _useUncontrolled3 = _interopRequireDefault(require("../../hooks/useUncontrolled"));
|
|
39
|
+
|
|
40
|
+
var _useSearch2 = _interopRequireDefault(require("../../hooks/useSearch"));
|
|
41
|
+
|
|
42
|
+
var _style = require("./style");
|
|
43
|
+
|
|
44
|
+
var _Cascade = _interopRequireWildcard(require("./Cascade"));
|
|
45
|
+
|
|
46
|
+
var _zh_CN = _interopRequireDefault(require("./locale/zh_CN"));
|
|
47
|
+
|
|
48
|
+
var _excluded = ["value", "inputing"];
|
|
49
|
+
|
|
50
|
+
var _this = void 0;
|
|
51
|
+
|
|
52
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
|
+
|
|
54
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
55
|
+
|
|
56
|
+
var PopupWrapWithoutMemo = function PopupWrapWithoutMemo(props) {
|
|
57
|
+
var _this2 = this;
|
|
58
|
+
|
|
59
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
60
|
+
var handleFocus = (0, _react.useCallback)(function (e) {
|
|
61
|
+
(0, _newArrowCheck2.default)(this, _this2);
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
}.bind(this), []);
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_style.SPopup, (0, _extends2.default)({}, props, {
|
|
65
|
+
onMouseDown: handleFocus
|
|
66
|
+
}));
|
|
67
|
+
}.bind(void 0);
|
|
68
|
+
|
|
69
|
+
var PopupWrap = /*#__PURE__*/_react.default.memo(PopupWrapWithoutMemo);
|
|
70
|
+
|
|
71
|
+
var StaticInputWithoutMemo = /*#__PURE__*/_react.default.forwardRef(function StaticInput(_ref, ref) {
|
|
72
|
+
var _this3 = this;
|
|
73
|
+
|
|
74
|
+
var value = _ref.value,
|
|
75
|
+
inputing = _ref.inputing,
|
|
76
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
77
|
+
|
|
78
|
+
var _useState = (0, _react.useState)(false),
|
|
79
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
80
|
+
visible = _useState2[0],
|
|
81
|
+
setVisible = _useState2[1];
|
|
82
|
+
|
|
83
|
+
var inputRef = (0, _react.useRef)(null);
|
|
84
|
+
var updateVisible = (0, _react.useCallback)(function (visible) {
|
|
85
|
+
(0, _newArrowCheck2.default)(this, _this3);
|
|
86
|
+
|
|
87
|
+
if (inputing) {
|
|
88
|
+
setVisible(false);
|
|
89
|
+
} else if (!visible) {
|
|
90
|
+
setVisible(false);
|
|
91
|
+
} else {
|
|
92
|
+
var _inputRef$current;
|
|
93
|
+
|
|
94
|
+
var input = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input;
|
|
95
|
+
setVisible(input ? (input === null || input === void 0 ? void 0 : input.scrollWidth) > (input === null || input === void 0 ? void 0 : input.clientWidth) : false);
|
|
96
|
+
}
|
|
97
|
+
}.bind(this), [inputing]);
|
|
98
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
99
|
+
(0, _newArrowCheck2.default)(this, _this3);
|
|
100
|
+
return {
|
|
101
|
+
inputRef: inputRef
|
|
102
|
+
};
|
|
103
|
+
}.bind(this), []);
|
|
104
|
+
(0, _react.useEffect)(function () {
|
|
105
|
+
(0, _newArrowCheck2.default)(this, _this3);
|
|
106
|
+
|
|
107
|
+
if (inputing) {
|
|
108
|
+
setVisible(false);
|
|
109
|
+
}
|
|
110
|
+
}.bind(this), [inputing, value]);
|
|
111
|
+
var handleVisibleChange = (0, _react.useCallback)(function (visible) {
|
|
112
|
+
(0, _newArrowCheck2.default)(this, _this3);
|
|
113
|
+
updateVisible(visible);
|
|
114
|
+
}.bind(this), [updateVisible]);
|
|
115
|
+
return /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
|
|
116
|
+
visible: visible,
|
|
117
|
+
onVisibleChange: handleVisibleChange,
|
|
118
|
+
popup: value,
|
|
119
|
+
placement: "topLeft",
|
|
120
|
+
arrow: false
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement(_Search.SearchInput, (0, _extends2.default)({}, rest, {
|
|
122
|
+
value: value,
|
|
123
|
+
ref: inputRef
|
|
124
|
+
})));
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
var StaticInput = /*#__PURE__*/_react.default.memo(StaticInputWithoutMemo);
|
|
128
|
+
|
|
129
|
+
var getValueStringFromDataSource = function getValueStringFromDataSource(value, dataSource) {
|
|
130
|
+
var _this4 = this;
|
|
131
|
+
|
|
132
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
133
|
+
if (!(value !== null && value !== void 0 && value.length)) return '';
|
|
134
|
+
var separator = '/';
|
|
135
|
+
if (!dataSource) return value.join(separator);
|
|
136
|
+
var tmpItems = dataSource;
|
|
137
|
+
return value.map(function (key) {
|
|
138
|
+
var _this5 = this;
|
|
139
|
+
|
|
140
|
+
(0, _newArrowCheck2.default)(this, _this4);
|
|
141
|
+
if (!tmpItems) return key;
|
|
142
|
+
var item = tmpItems.find(function (item) {
|
|
143
|
+
(0, _newArrowCheck2.default)(this, _this5);
|
|
144
|
+
return item.key === key;
|
|
145
|
+
}.bind(this));
|
|
146
|
+
tmpItems = item === null || item === void 0 ? void 0 : item.children;
|
|
147
|
+
|
|
148
|
+
if (!item) {
|
|
149
|
+
console.error("Can't find info for value ".concat(key));
|
|
150
|
+
return key;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return item.title;
|
|
154
|
+
}.bind(this)).join(separator);
|
|
155
|
+
}.bind(void 0);
|
|
156
|
+
|
|
157
|
+
var popoverAlign = {
|
|
158
|
+
points: ['tl', 'bl'],
|
|
159
|
+
overflow: {
|
|
160
|
+
adjustX: 0,
|
|
161
|
+
adjustY: 1
|
|
162
|
+
},
|
|
163
|
+
offset: [0, 5],
|
|
164
|
+
targetOffset: [0, 0]
|
|
165
|
+
};
|
|
166
|
+
var defaultDataSourceAfterSearch = [];
|
|
167
|
+
|
|
168
|
+
var Cascader = function Cascader(_ref2) {
|
|
169
|
+
var _this6 = this;
|
|
170
|
+
|
|
171
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
172
|
+
var dataSource = _ref2.dataSource,
|
|
173
|
+
_value = _ref2.value,
|
|
174
|
+
defaultValue = _ref2.defaultValue,
|
|
175
|
+
_onChange = _ref2.onChange,
|
|
176
|
+
disabled = _ref2.disabled,
|
|
177
|
+
size = _ref2.size,
|
|
178
|
+
search = _ref2.search,
|
|
179
|
+
clearable = _ref2.clearable,
|
|
180
|
+
placeholder = _ref2.placeholder,
|
|
181
|
+
loadData = _ref2.loadData,
|
|
182
|
+
status = _ref2.status,
|
|
183
|
+
popoverProps = _ref2.popoverProps;
|
|
184
|
+
|
|
185
|
+
var _useUncontrolled = (0, _useUncontrolled3.default)(_value, defaultValue, _onChange),
|
|
186
|
+
_useUncontrolled2 = (0, _slicedToArray2.default)(_useUncontrolled, 2),
|
|
187
|
+
value = _useUncontrolled2[0],
|
|
188
|
+
onChange = _useUncontrolled2[1];
|
|
189
|
+
|
|
190
|
+
var _useState3 = (0, _react.useState)(''),
|
|
191
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
192
|
+
searchValue = _useState4[0],
|
|
193
|
+
setSearchValue = _useState4[1];
|
|
194
|
+
|
|
195
|
+
var _useState5 = (0, _react.useState)(false),
|
|
196
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
197
|
+
visible = _useState6[0],
|
|
198
|
+
setVisible = _useState6[1];
|
|
199
|
+
|
|
200
|
+
var _useState7 = (0, _react.useState)(function () {
|
|
201
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
202
|
+
return value ? value.slice(0, value.length - 1) : [];
|
|
203
|
+
}.bind(this)),
|
|
204
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
205
|
+
expandedValue = _useState8[0],
|
|
206
|
+
setExpandedValue = _useState8[1];
|
|
207
|
+
|
|
208
|
+
var _useState9 = (0, _react.useState)(false),
|
|
209
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
210
|
+
focusing = _useState10[0],
|
|
211
|
+
setFocusing = _useState10[1];
|
|
212
|
+
|
|
213
|
+
var locale = (0, _useLocale.default)(_zh_CN.default, 'Cascader');
|
|
214
|
+
var searchAble = (0, _react.useMemo)(function () {
|
|
215
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
216
|
+
return search;
|
|
217
|
+
}.bind(this), [search]);
|
|
218
|
+
var inputRef = (0, _react.useRef)(null);
|
|
219
|
+
var handleInput = (0, _react.useCallback)(function (e) {
|
|
220
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
221
|
+
setSearchValue(e.target.value);
|
|
222
|
+
}.bind(this), []);
|
|
223
|
+
var handleVisibleChange = (0, _react.useCallback)(function (visible) {
|
|
224
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
225
|
+
return setVisible(visible);
|
|
226
|
+
}.bind(this), []);
|
|
227
|
+
var handleSelect = (0, _react.useCallback)(function (v) {
|
|
228
|
+
var _inputRef$current2, _inputRef$current2$in, _inputRef$current2$in2, _inputRef$current2$in3;
|
|
229
|
+
|
|
230
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
231
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(v);
|
|
232
|
+
setSearchValue('');
|
|
233
|
+
setVisible(false);
|
|
234
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : (_inputRef$current2$in = _inputRef$current2.inputRef) === null || _inputRef$current2$in === void 0 ? void 0 : (_inputRef$current2$in2 = _inputRef$current2$in.current) === null || _inputRef$current2$in2 === void 0 ? void 0 : (_inputRef$current2$in3 = _inputRef$current2$in2.input) === null || _inputRef$current2$in3 === void 0 ? void 0 : _inputRef$current2$in3.blur();
|
|
235
|
+
}.bind(this), [onChange]);
|
|
236
|
+
var handleExpand = (0, _react.useCallback)(function (expandedValue) {
|
|
237
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
238
|
+
setExpandedValue(expandedValue);
|
|
239
|
+
}.bind(this), []);
|
|
240
|
+
var handleFocus = (0, _react.useCallback)(function () {
|
|
241
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
242
|
+
setFocusing(true);
|
|
243
|
+
}.bind(this), []);
|
|
244
|
+
var handleBlur = (0, _react.useCallback)(function () {
|
|
245
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
246
|
+
setFocusing(false);
|
|
247
|
+
setSearchValue('');
|
|
248
|
+
}.bind(this), []);
|
|
249
|
+
var valueString = (0, _react.useMemo)(function () {
|
|
250
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
251
|
+
return getValueStringFromDataSource(value, dataSource);
|
|
252
|
+
}.bind(this), [dataSource, value]);
|
|
253
|
+
var inputFocused = (0, _react.useMemo)(function () {
|
|
254
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
255
|
+
return searchAble && focusing;
|
|
256
|
+
}.bind(this), [focusing, searchAble]);
|
|
257
|
+
var inputValue = (0, _react.useMemo)(function () {
|
|
258
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
259
|
+
return inputFocused ? searchValue : valueString;
|
|
260
|
+
}.bind(this), [inputFocused, searchValue, valueString]);
|
|
261
|
+
var inputPlaceholder = (0, _react.useMemo)(function () {
|
|
262
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
263
|
+
return inputFocused ? valueString : placeholder || locale.placeholder;
|
|
264
|
+
}.bind(this), [inputFocused, valueString, placeholder, locale.placeholder]);
|
|
265
|
+
var popoverConfigProps = (0, _usePopoverConfig.default)();
|
|
266
|
+
|
|
267
|
+
var _useSearch = (0, _useSearch2.default)({
|
|
268
|
+
dataSource: dataSource,
|
|
269
|
+
searchValue: searchValue,
|
|
270
|
+
defaultDataSourceAfterSearch: defaultDataSourceAfterSearch,
|
|
271
|
+
handleSearch: (0, _typeof2.default)(search) === 'object' ? search === null || search === void 0 ? void 0 : search.handleSearch : undefined
|
|
272
|
+
}),
|
|
273
|
+
dataSourceAfterSearch = _useSearch.dataSource,
|
|
274
|
+
searchLoading = _useSearch.loading,
|
|
275
|
+
searchCount = _useSearch.count,
|
|
276
|
+
searchError = _useSearch.error;
|
|
277
|
+
|
|
278
|
+
var handleClear = (0, _react.useCallback)(function () {
|
|
279
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
280
|
+
onChange([]);
|
|
281
|
+
}.bind(this), [onChange]);
|
|
282
|
+
var inputProps = (0, _react.useMemo)(function () {
|
|
283
|
+
(0, _newArrowCheck2.default)(this, _this6);
|
|
284
|
+
|
|
285
|
+
if (searchAble && focusing) {
|
|
286
|
+
return {
|
|
287
|
+
count: searchCount,
|
|
288
|
+
status: 'default'
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
return {
|
|
293
|
+
prefix: null,
|
|
294
|
+
suffix: /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
|
|
295
|
+
type: visible ? 'arrow-up' : 'arrow-down'
|
|
296
|
+
}),
|
|
297
|
+
onClear: handleClear,
|
|
298
|
+
clearable: clearable,
|
|
299
|
+
status: status
|
|
300
|
+
};
|
|
301
|
+
}.bind(this), [clearable, focusing, handleClear, searchAble, searchCount, status, visible]);
|
|
302
|
+
return /*#__PURE__*/_react.default.createElement(_style.SWrap, {
|
|
303
|
+
disabled: disabled
|
|
304
|
+
}, /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({}, popoverConfigProps, popoverProps, {
|
|
305
|
+
popup: /*#__PURE__*/_react.default.createElement(PopupWrap, null, searchValue ? /*#__PURE__*/_react.default.createElement(_Cascade.CascadeSearchResult, {
|
|
306
|
+
dataSource: dataSourceAfterSearch,
|
|
307
|
+
loading: searchLoading,
|
|
308
|
+
empty: searchCount === 0,
|
|
309
|
+
error: searchError,
|
|
310
|
+
onChange: handleSelect,
|
|
311
|
+
onExpand: handleExpand
|
|
312
|
+
}) : /*#__PURE__*/_react.default.createElement(_Cascade.default, {
|
|
313
|
+
dataSource: dataSource,
|
|
314
|
+
value: value,
|
|
315
|
+
onChange: handleSelect,
|
|
316
|
+
expandedValue: expandedValue,
|
|
317
|
+
onExpand: handleExpand,
|
|
318
|
+
loadData: loadData
|
|
319
|
+
})),
|
|
320
|
+
trigger: [],
|
|
321
|
+
showAction: ['click', 'focus'],
|
|
322
|
+
hideAction: ['blur'],
|
|
323
|
+
visible: visible,
|
|
324
|
+
onVisibleChange: handleVisibleChange,
|
|
325
|
+
forceAlignWhenScroll: false,
|
|
326
|
+
forceAlignWhenUpdate: false,
|
|
327
|
+
align: popoverAlign
|
|
328
|
+
}), /*#__PURE__*/_react.default.createElement(StaticInput, (0, _extends2.default)({
|
|
329
|
+
onFocus: handleFocus,
|
|
330
|
+
onBlur: handleBlur,
|
|
331
|
+
onChange: handleInput,
|
|
332
|
+
value: inputValue,
|
|
333
|
+
placeholder: inputPlaceholder,
|
|
334
|
+
className: _style.inputCls,
|
|
335
|
+
disabled: disabled,
|
|
336
|
+
readOnly: !searchAble,
|
|
337
|
+
inputing: visible && focusing,
|
|
338
|
+
size: size,
|
|
339
|
+
ref: inputRef
|
|
340
|
+
}, inputProps))));
|
|
341
|
+
}.bind(void 0);
|
|
342
|
+
|
|
343
|
+
Cascader.propTypes = {
|
|
344
|
+
dataSource: _propTypes.default.array,
|
|
345
|
+
value: _propTypes.default.array,
|
|
346
|
+
defaultValue: _propTypes.default.array,
|
|
347
|
+
onChange: _propTypes.default.func,
|
|
348
|
+
disabled: _propTypes.default.bool,
|
|
349
|
+
search: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.shape({
|
|
350
|
+
handleSearch: _propTypes.default.func
|
|
351
|
+
})]),
|
|
352
|
+
clearable: _propTypes.default.bool,
|
|
353
|
+
placeholder: _propTypes.default.string,
|
|
354
|
+
popoverProps: _propTypes.default.objectOf(_propTypes.default.any)
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
var _default = /*#__PURE__*/_react.default.memo(Cascader);
|
|
358
|
+
|
|
359
|
+
exports.default = _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { CascadeData, Key } from './interface';
|
|
3
|
+
export interface ItemProps {
|
|
4
|
+
expandAble?: boolean;
|
|
5
|
+
expanded?: boolean;
|
|
6
|
+
selected?: boolean;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
value: Key;
|
|
9
|
+
title: ReactNode;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
parents?: CascadeData[];
|
|
12
|
+
}
|
|
13
|
+
declare const _default: React.MemoExoticComponent<({ title, value, expandAble, expanded, selected, disabled, parents }: ItemProps) => JSX.Element>;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
|
|
19
|
+
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
|
|
22
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
23
|
+
|
|
24
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
|
+
|
|
26
|
+
var _attrs2 = require("../../utils/attrs");
|
|
27
|
+
|
|
28
|
+
var _SvgIcon = _interopRequireDefault(require("../../components/SvgIcon"));
|
|
29
|
+
|
|
30
|
+
var _cascade = require("./style/cascade");
|
|
31
|
+
|
|
32
|
+
var _CascadeContext = _interopRequireDefault(require("./CascadeContext"));
|
|
33
|
+
|
|
34
|
+
var _this = void 0;
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
var Item = function Item(_ref) {
|
|
41
|
+
var _this2 = this;
|
|
42
|
+
|
|
43
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
44
|
+
var title = _ref.title,
|
|
45
|
+
value = _ref.value,
|
|
46
|
+
expandAble = _ref.expandAble,
|
|
47
|
+
expanded = _ref.expanded,
|
|
48
|
+
selected = _ref.selected,
|
|
49
|
+
disabled = _ref.disabled,
|
|
50
|
+
parents = _ref.parents;
|
|
51
|
+
var attributes = (0, _react.useMemo)(function () {
|
|
52
|
+
var _attrs;
|
|
53
|
+
|
|
54
|
+
(0, _newArrowCheck2.default)(this, _this2);
|
|
55
|
+
return (0, _attrs2.attrs)((_attrs = {}, (0, _defineProperty2.default)(_attrs, _cascade.expandedAttr, expanded), (0, _defineProperty2.default)(_attrs, _cascade.selectedAttr, selected), (0, _defineProperty2.default)(_attrs, _cascade.valueAttr, value), (0, _defineProperty2.default)(_attrs, "disabled", disabled), _attrs));
|
|
56
|
+
}.bind(this), [disabled, expanded, selected, value]);
|
|
57
|
+
|
|
58
|
+
var _useContext = (0, _react.useContext)(_CascadeContext.default),
|
|
59
|
+
expandItem = _useContext.expandItem,
|
|
60
|
+
selectItem = _useContext.selectItem;
|
|
61
|
+
|
|
62
|
+
var handleClick = (0, _react.useCallback)(function () {
|
|
63
|
+
var _this3 = this;
|
|
64
|
+
|
|
65
|
+
(0, _newArrowCheck2.default)(this, _this2);
|
|
66
|
+
if (disabled) return;
|
|
67
|
+
var parentKeys = (parents === null || parents === void 0 ? void 0 : parents.map(function (parent) {
|
|
68
|
+
(0, _newArrowCheck2.default)(this, _this3);
|
|
69
|
+
return parent.key;
|
|
70
|
+
}.bind(this))) || [];
|
|
71
|
+
expandAble ? expandItem([].concat((0, _toConsumableArray2.default)(parentKeys), [value])) : selectItem([].concat((0, _toConsumableArray2.default)(parentKeys), [value]));
|
|
72
|
+
}.bind(this), [disabled, expandAble, expandItem, parents, selectItem, value]);
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
74
|
+
className: (0, _classnames.default)(_cascade.itemCls),
|
|
75
|
+
onClick: handleClick,
|
|
76
|
+
title: typeof title === 'string' ? title : ''
|
|
77
|
+
}, attributes), /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: _cascade.titleCls
|
|
79
|
+
}, title), expandAble && /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
|
|
80
|
+
type: "arrow-right",
|
|
81
|
+
className: _cascade.iconCls
|
|
82
|
+
}));
|
|
83
|
+
}.bind(void 0);
|
|
84
|
+
|
|
85
|
+
Item.propTypes = {
|
|
86
|
+
expandAble: _propTypes.default.bool,
|
|
87
|
+
expanded: _propTypes.default.bool,
|
|
88
|
+
selected: _propTypes.default.bool,
|
|
89
|
+
loading: _propTypes.default.bool,
|
|
90
|
+
title: _propTypes.default.node.isRequired,
|
|
91
|
+
disabled: _propTypes.default.bool,
|
|
92
|
+
parents: _propTypes.default.array
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
var _default = /*#__PURE__*/_react.default.memo(Item);
|
|
96
|
+
|
|
97
|
+
exports.default = _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CascadeData, LoadData } from './interface';
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ items, selectedKey, expandedKey, disabled, parents, loadData }: {
|
|
4
|
+
items?: CascadeData[] | undefined;
|
|
5
|
+
selectedKey?: string | undefined;
|
|
6
|
+
expandedKey?: string | undefined;
|
|
7
|
+
disabled?: boolean | undefined;
|
|
8
|
+
parents?: CascadeData[] | undefined;
|
|
9
|
+
loadData?: LoadData | undefined;
|
|
10
|
+
}) => JSX.Element>;
|
|
11
|
+
export default _default;
|