@hi-ui/tree-select 4.0.0-alpha.3
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/LICENSE +21 -0
- package/README.md +11 -0
- package/lib/cjs/TreeSelect.js +275 -0
- package/lib/cjs/TreeSelect.js.map +1 -0
- package/lib/cjs/hooks/use-merge-refs/lib/esm/index.js +61 -0
- package/lib/cjs/hooks/use-merge-refs/lib/esm/index.js.map +1 -0
- package/lib/cjs/index.js +22 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/styles/index.scss.js +22 -0
- package/lib/cjs/styles/index.scss.js.map +1 -0
- package/lib/cjs/ui/input/lib/esm/Input.js +258 -0
- package/lib/cjs/ui/input/lib/esm/Input.js.map +1 -0
- package/lib/cjs/ui/input/lib/esm/MockInput.js +161 -0
- package/lib/cjs/ui/input/lib/esm/MockInput.js.map +1 -0
- package/lib/cjs/ui/input/lib/esm/styles/index.scss.js +32 -0
- package/lib/cjs/ui/input/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/esm/TreeSelect.js +242 -0
- package/lib/esm/TreeSelect.js.map +1 -0
- package/lib/esm/hooks/use-merge-refs/lib/esm/index.js +54 -0
- package/lib/esm/hooks/use-merge-refs/lib/esm/index.js.map +1 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/styles/index.scss.js +17 -0
- package/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/esm/ui/input/lib/esm/Input.js +234 -0
- package/lib/esm/ui/input/lib/esm/Input.js.map +1 -0
- package/lib/esm/ui/input/lib/esm/MockInput.js +139 -0
- package/lib/esm/ui/input/lib/esm/MockInput.js.map +1 -0
- package/lib/esm/ui/input/lib/esm/styles/index.scss.js +27 -0
- package/lib/esm/ui/input/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/types/TreeSelect.d.ts +127 -0
- package/lib/types/context.d.ts +7 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/types.d.ts +57 -0
- package/lib/types/use-tree-select.d.ts +8 -0
- package/package.json +73 -0
@@ -0,0 +1,242 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tree-select#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, useCallback, useMemo, useState } from 'react';
|
12
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
13
|
+
import { __DEV__ } from '@hi-ui/env';
|
14
|
+
import { useToggle } from '@hi-ui/use-toggle';
|
15
|
+
import { Tree } from '@hi-ui/tree';
|
16
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
17
|
+
import { Picker } from '@hi-ui/picker';
|
18
|
+
import { flattenTree } from '@hi-ui/tree-utils';
|
19
|
+
import { isArrayNonEmpty } from '@hi-ui/type-assertion';
|
20
|
+
import { uniqBy } from 'lodash';
|
21
|
+
import { Highlighter } from '@hi-ui/highlighter';
|
22
|
+
import './ui/input/lib/esm/styles/index.scss.js';
|
23
|
+
import './ui/input/lib/esm/Input.js';
|
24
|
+
import { MockInput } from './ui/input/lib/esm/MockInput.js';
|
25
|
+
import { UpOutlined, DownOutlined } from '@hi-ui/icons';
|
26
|
+
import { useAsyncSearch, useTreeCustomSearch, useFilterSearch, useHighlightSearch, useSearchMode } from '@hi-ui/use-search-mode';
|
27
|
+
var TREE_SELECT_PREFIX = getPrefixCls('tree-select');
|
28
|
+
var DEFAULT_DATA = []; // const DEFAULT_VALUE = [] as []
|
29
|
+
|
30
|
+
var DEFAULT_FIELD_NAMES = {};
|
31
|
+
var DEFAULT_EXPANDED_IDS = [];
|
32
|
+
/**
|
33
|
+
* TODO: What is TreeSelect
|
34
|
+
*/
|
35
|
+
|
36
|
+
var TreeSelect = /*#__PURE__*/forwardRef(function (_a, ref) {
|
37
|
+
var _a$prefixCls = _a.prefixCls,
|
38
|
+
prefixCls = _a$prefixCls === void 0 ? TREE_SELECT_PREFIX : _a$prefixCls,
|
39
|
+
className = _a.className,
|
40
|
+
_a$data = _a.data,
|
41
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
42
|
+
dataSource = _a.dataSource,
|
43
|
+
_a$fieldNames = _a.fieldNames,
|
44
|
+
fieldNames = _a$fieldNames === void 0 ? DEFAULT_FIELD_NAMES : _a$fieldNames,
|
45
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
46
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
47
|
+
expandedIdsProp = _a.expandedIds,
|
48
|
+
_a$defaultExpandedIds = _a.defaultExpandedIds,
|
49
|
+
defaultExpandedIds = _a$defaultExpandedIds === void 0 ? DEFAULT_EXPANDED_IDS : _a$defaultExpandedIds,
|
50
|
+
onExpand = _a.onExpand,
|
51
|
+
_a$defaultValue = _a.defaultValue,
|
52
|
+
defaultValue = _a$defaultValue === void 0 ? '' : _a$defaultValue,
|
53
|
+
valueProp = _a.value,
|
54
|
+
onChange = _a.onChange,
|
55
|
+
searchableProp = _a.searchable,
|
56
|
+
searchModeProp = _a.searchMode,
|
57
|
+
onLoadChildren = _a.onLoadChildren,
|
58
|
+
titleRender = _a.titleRender,
|
59
|
+
filterOption = _a.filterOption,
|
60
|
+
clearable = _a.clearable,
|
61
|
+
invalid = _a.invalid,
|
62
|
+
displayRender = _a.displayRender,
|
63
|
+
_a$placeholder = _a.placeholder,
|
64
|
+
placeholder = _a$placeholder === void 0 ? '请选择' : _a$placeholder,
|
65
|
+
appearance = _a.appearance,
|
66
|
+
rest = __rest(_a, ["prefixCls", "role", "className", "data", "dataSource", "disabled", "fieldNames", "showCheckedMode", "defaultExpandAll", "expandedIds", "defaultExpandedIds", "onExpand", "defaultValue", "value", "onChange", "searchable", "searchMode", "onLoadChildren", "titleRender", "filterOption", "clearable", "invalid", "displayRender", "placeholder", "appearance"]);
|
67
|
+
|
68
|
+
var _useToggle = useToggle(),
|
69
|
+
menuVisible = _useToggle[0],
|
70
|
+
menuVisibleAction = _useToggle[1];
|
71
|
+
/**
|
72
|
+
* 转换对象
|
73
|
+
*/
|
74
|
+
|
75
|
+
|
76
|
+
var getKeyFields = useCallback(function (node, key) {
|
77
|
+
return node[fieldNames[key] || key];
|
78
|
+
}, [fieldNames]);
|
79
|
+
var flattedData = useMemo(function () {
|
80
|
+
return flattenTree(data, function (node) {
|
81
|
+
node.id = getKeyFields(node.raw, 'id'); // @ts-ignore
|
82
|
+
|
83
|
+
node.title = getKeyFields(node.raw, 'title');
|
84
|
+
return node;
|
85
|
+
});
|
86
|
+
}, [data, getKeyFields]); // TODO: 抽离展开hook
|
87
|
+
// TODO: onLoadChildren 和 defaultExpandAll 共存时
|
88
|
+
|
89
|
+
var _useUncontrolledState = useUncontrolledState(function getDefaultExpandedIds() {
|
90
|
+
// 开启默认展开全部
|
91
|
+
if (defaultExpandAll) {
|
92
|
+
return flattedData.map(function (node) {
|
93
|
+
return node.id;
|
94
|
+
});
|
95
|
+
}
|
96
|
+
|
97
|
+
return defaultExpandedIds;
|
98
|
+
}, expandedIdsProp, onExpand),
|
99
|
+
expandedIds = _useUncontrolledState[0],
|
100
|
+
tryChangeExpandedIds = _useUncontrolledState[1];
|
101
|
+
|
102
|
+
var _useUncontrolledState2 = useUncontrolledState(defaultValue, valueProp, onChange),
|
103
|
+
value = _useUncontrolledState2[0],
|
104
|
+
tryChangeValue = _useUncontrolledState2[1];
|
105
|
+
|
106
|
+
var onSelect = useCallback(function (selectedId, selectedNode) {
|
107
|
+
if (selectedId) {
|
108
|
+
tryChangeValue(selectedId, selectedNode);
|
109
|
+
setSelectedItem(selectedNode);
|
110
|
+
} // 关闭弹窗
|
111
|
+
|
112
|
+
|
113
|
+
menuVisibleAction.off();
|
114
|
+
}, [menuVisibleAction, tryChangeValue]); // 搜索时临时选中缓存数据
|
115
|
+
|
116
|
+
var _useState = useState(null),
|
117
|
+
selectedItem = _useState[0],
|
118
|
+
setSelectedItem = _useState[1]; // ************************** 异步搜索 ************************* //
|
119
|
+
// const { loading, hasError, loadRemoteData } = useDataSource({ dataSource, validate: isArray })
|
120
|
+
|
121
|
+
|
122
|
+
var _b = useAsyncSearch({
|
123
|
+
dataSource: dataSource
|
124
|
+
}),
|
125
|
+
loading = _b.loading,
|
126
|
+
hasError = _b.hasError,
|
127
|
+
dataSourceStrategy = __rest(_b, ["loading", "hasError"]);
|
128
|
+
|
129
|
+
var customSearchStrategy = useTreeCustomSearch({
|
130
|
+
data: data,
|
131
|
+
filterOption: filterOption
|
132
|
+
});
|
133
|
+
var filterSearchStrategy = useFilterSearch({
|
134
|
+
data: data,
|
135
|
+
flattedData: flattedData,
|
136
|
+
searchMode: searchModeProp
|
137
|
+
});
|
138
|
+
var highlightSearchStrategy = useHighlightSearch({
|
139
|
+
data: data,
|
140
|
+
flattedData: flattedData,
|
141
|
+
searchMode: searchModeProp
|
142
|
+
});
|
143
|
+
|
144
|
+
var _useSearchMode = useSearchMode({
|
145
|
+
searchable: searchableProp,
|
146
|
+
strategies: [dataSourceStrategy, customSearchStrategy, filterSearchStrategy, highlightSearchStrategy]
|
147
|
+
}),
|
148
|
+
stateInSearch = _useSearchMode.state,
|
149
|
+
setStateInSearch = _useSearchMode.setStateInSearch,
|
150
|
+
searchable = _useSearchMode.searchable,
|
151
|
+
searchMode = _useSearchMode.searchMode,
|
152
|
+
onSearch = _useSearchMode.onSearch,
|
153
|
+
searchValue = _useSearchMode.keyword; // 拦截 titleRender,自定义高亮展示
|
154
|
+
|
155
|
+
|
156
|
+
var proxyTitleRender = useCallback(function (node) {
|
157
|
+
if (titleRender) {
|
158
|
+
var _ret = titleRender(node);
|
159
|
+
|
160
|
+
if (_ret && _ret !== true) return _ret;
|
161
|
+
} // 本地搜索执行默认高亮规则
|
162
|
+
|
163
|
+
|
164
|
+
var highlight = !!searchValue && (searchMode === 'highlight' || searchMode === 'filter');
|
165
|
+
var ret = highlight ? /*#__PURE__*/React.createElement(Highlighter, {
|
166
|
+
keyword: searchValue
|
167
|
+
}, node.title) : true;
|
168
|
+
return ret;
|
169
|
+
}, [titleRender, searchValue, searchMode]);
|
170
|
+
var shouldUseSearch = !!searchValue && !hasError;
|
171
|
+
var treeProps = {
|
172
|
+
data: shouldUseSearch ? stateInSearch.data : data,
|
173
|
+
expandedIds: shouldUseSearch ? stateInSearch.expandedIds : expandedIds,
|
174
|
+
onExpand: shouldUseSearch ? function (ids) {
|
175
|
+
return setStateInSearch(function (prev) {
|
176
|
+
return Object.assign(Object.assign({}, prev), {
|
177
|
+
expandedIds: ids
|
178
|
+
});
|
179
|
+
});
|
180
|
+
} : tryChangeExpandedIds,
|
181
|
+
titleRender: proxyTitleRender
|
182
|
+
}; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
|
183
|
+
|
184
|
+
var mergedData = useMemo(function () {
|
185
|
+
if (selectedItem) {
|
186
|
+
var nextData = [selectedItem].concat(flattedData);
|
187
|
+
return uniqBy(nextData, 'id');
|
188
|
+
}
|
189
|
+
|
190
|
+
return flattedData;
|
191
|
+
}, [selectedItem, flattedData]);
|
192
|
+
var cls = cx(prefixCls, className);
|
193
|
+
return /*#__PURE__*/React.createElement(Picker, Object.assign({
|
194
|
+
ref: ref,
|
195
|
+
className: cls
|
196
|
+
}, rest, {
|
197
|
+
visible: menuVisible,
|
198
|
+
onOpen: menuVisibleAction.on,
|
199
|
+
onClose: menuVisibleAction.off,
|
200
|
+
// value={value}
|
201
|
+
// onChange={tryChangeValue}
|
202
|
+
// data={mergedData}
|
203
|
+
searchable: searchable,
|
204
|
+
onSearch: onSearch,
|
205
|
+
loading: loading,
|
206
|
+
trigger: /*#__PURE__*/React.createElement(MockInput // ref={targetElementRef}
|
207
|
+
// onClick={openMenu}
|
208
|
+
// disabled={disabled}
|
209
|
+
, {
|
210
|
+
// ref={targetElementRef}
|
211
|
+
// onClick={openMenu}
|
212
|
+
// disabled={disabled}
|
213
|
+
clearable: clearable,
|
214
|
+
placeholder: placeholder,
|
215
|
+
displayRender: displayRender,
|
216
|
+
suffix: menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
|
217
|
+
focused: menuVisible,
|
218
|
+
value: value,
|
219
|
+
onChange: tryChangeValue,
|
220
|
+
data: mergedData,
|
221
|
+
// @ts-ignore
|
222
|
+
invalid: invalid,
|
223
|
+
appearance: appearance
|
224
|
+
})
|
225
|
+
}), isArrayNonEmpty(treeProps.data) ? /*#__PURE__*/React.createElement(Tree, Object.assign({
|
226
|
+
className: prefixCls + "__tree",
|
227
|
+
selectable: true,
|
228
|
+
selectedId: value,
|
229
|
+
onSelect: onSelect,
|
230
|
+
// onLoadChildren 缓存数据
|
231
|
+
// TODO: 支持 fieldNames
|
232
|
+
// 禁用时被选中的样式处理
|
233
|
+
onLoadChildren: onLoadChildren
|
234
|
+
}, treeProps)) : null);
|
235
|
+
});
|
236
|
+
|
237
|
+
if (__DEV__) {
|
238
|
+
TreeSelect.displayName = 'TreeSelect';
|
239
|
+
}
|
240
|
+
|
241
|
+
export { TreeSelect };
|
242
|
+
//# sourceMappingURL=TreeSelect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TreeSelect.js","sources":["../../src/TreeSelect.tsx"],"sourcesContent":[null],"names":["TREE_SELECT_PREFIX","getPrefixCls","DEFAULT_DATA","DEFAULT_FIELD_NAMES","DEFAULT_EXPANDED_IDS","TreeSelect","forwardRef","_a","ref","prefixCls","className","data","dataSource","fieldNames","defaultExpandAll","expandedIdsProp","expandedIds","defaultExpandedIds","onExpand","defaultValue","valueProp","value","onChange","searchableProp","searchable","searchModeProp","searchMode","onLoadChildren","titleRender","filterOption","clearable","invalid","displayRender","placeholder","appearance","rest","useToggle","menuVisible","menuVisibleAction","getKeyFields","useCallback","node","key","flattedData","useMemo","flattenTree","id","raw","title","useUncontrolledState","getDefaultExpandedIds","map","tryChangeExpandedIds","tryChangeValue","onSelect","selectedId","selectedNode","setSelectedItem","off","useState","selectedItem","_b","useAsyncSearch","loading","hasError","dataSourceStrategy","customSearchStrategy","useTreeCustomSearch","filterSearchStrategy","useFilterSearch","highlightSearchStrategy","useHighlightSearch","useSearchMode","strategies","stateInSearch","state","setStateInSearch","onSearch","searchValue","keyword","proxyTitleRender","ret","highlight","React","Highlighter","shouldUseSearch","treeProps","ids","prev","mergedData","nextData","concat","uniqBy","cls","cx","Picker","visible","onOpen","on","onClose","trigger","MockInput","suffix","UpOutlined","DownOutlined","focused","isArrayNonEmpty","Tree","selectable","__DEV__","displayName"],"mappings":"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"}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tree-select#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 { useMemo } from 'react';
|
11
|
+
/** @LICENSE
|
12
|
+
* @hi-ui/use-merge-refs
|
13
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-merge-refs#readme
|
14
|
+
*
|
15
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
16
|
+
*
|
17
|
+
* This source code is licensed under the MIT license found in the
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
19
|
+
*/
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Merges multiple refs into a single function ref.
|
23
|
+
*
|
24
|
+
* @param refs
|
25
|
+
*/
|
26
|
+
|
27
|
+
var useMergeRefs = function useMergeRefs() {
|
28
|
+
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
29
|
+
refs[_key] = arguments[_key];
|
30
|
+
}
|
31
|
+
|
32
|
+
return useMemo(function () {
|
33
|
+
// Empty check
|
34
|
+
if (refs.some(function (ref) {
|
35
|
+
return ref;
|
36
|
+
}) === false) return null;
|
37
|
+
return function (value) {
|
38
|
+
refs.forEach(function (ref) {
|
39
|
+
setRef(ref, value);
|
40
|
+
});
|
41
|
+
}; // every ref will be dependent
|
42
|
+
}, refs);
|
43
|
+
};
|
44
|
+
|
45
|
+
function setRef(ref, value) {
|
46
|
+
if (typeof ref === 'function') {
|
47
|
+
ref(value);
|
48
|
+
} else if (ref) {
|
49
|
+
ref.current = value;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
export { useMergeRefs };
|
54
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../hooks/use-merge-refs/lib/esm/index.js"],"sourcesContent":["/** @LICENSE\n * @hi-ui/use-merge-refs\n * https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-merge-refs#readme\n *\n * Copyright (c) HIUI <mi-hiui@xiaomi.com>.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { useMemo } from 'react';\n/**\n * Merges multiple refs into a single function ref.\n *\n * @param refs\n */\n\nvar useMergeRefs = function useMergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(function () {\n // Empty check\n if (refs.some(function (ref) {\n return ref;\n }) === false) return null;\n return function (value) {\n refs.forEach(function (ref) {\n setRef(ref, value);\n });\n }; // every ref will be dependent\n }, refs);\n};\n\nfunction setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport { useMergeRefs };\n//# sourceMappingURL=index.js.map\n"],"names":["useMergeRefs","refs","useMemo","some","ref","value","setRef"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA;;;;;;IAKaA,YAAY,GAAG,SAAfA,YAAe,GAAA;oCAAOC,IAAAA,GAAAA,IAAAA,KAAAA,CAAAA,IAAAA,GAAAA,IAAAA,GAAAA,GAAAA,IAAAA,GAAAA,MAAAA,IAAAA,IAAAA;AAAAA,IAAAA,IAAAA,CAAAA,IAAAA,CAAAA,GAAAA,SAAAA,CAAAA,IAAAA,CAAAA;;;SAC1BC,OAAO,CAAC,YAAA;;QAETD,IAAI,CAAJE,IAAA,CAAU,UAAAC,GAAA,EAAA;aAASA;AAAnB,KAAA,MAA4B,OAAO,OAAA,IAAA;WAEhC,UAAAC,KAAA,EAAA;AACLJ,MAAAA,IAAI,CAAJA,OAAAA,CAAa,UAAAG,GAAA,EAAA;AACXE,QAAAA,MAAM,CAAAF,GAAA,EAANE,KAAM,CAANA;AADFL,OAAAA;MALW;AAAD,GAAA,EAAAA,IAAA;;;AAahB,SAAAK,MAAA,CAAAF,GAAA,EAAAC,KAAA,EAAA;MACM,OAAAD,GAAA,KAAe,YAAY;AAC7BA,IAAAA,GAAG,CAAHA,KAAG,CAAHA;SACK,IAAAA,GAAA,EAAS;AACdA,IAAAA,GAAG,CAAHA,OAAAA,GAAAA,KAAAA;;;;"}
|
package/lib/esm/index.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tree-select#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 './styles/index.scss.js';
|
11
|
+
export { TreeSelect, TreeSelect as default } from './TreeSelect.js';
|
12
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tree-select#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
|
+
var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n";
|
11
|
+
|
12
|
+
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
13
|
+
|
14
|
+
__styleInject__(css_248z);
|
15
|
+
|
16
|
+
export default css_248z;
|
17
|
+
//# sourceMappingURL=index.scss.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,234 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/tree-select
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tree-select#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, isValidElement, useRef, useCallback, useState } from 'react';
|
12
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
13
|
+
import { __DEV__ } from '@hi-ui/env';
|
14
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
15
|
+
import { useMergeRefs } from '../../../../hooks/use-merge-refs/lib/esm/index.js';
|
16
|
+
import { CloseCircleFilled } from '@hi-ui/icons';
|
17
|
+
/** @LICENSE
|
18
|
+
* @hi-ui/input
|
19
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#readme
|
20
|
+
*
|
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
|
+
var _prefix = getPrefixCls('input');
|
28
|
+
/**
|
29
|
+
* TODO: What is Input
|
30
|
+
*/
|
31
|
+
|
32
|
+
|
33
|
+
var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
|
34
|
+
var _a$prefixCls = _a.prefixCls,
|
35
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
36
|
+
_a$role = _a.role,
|
37
|
+
role = _a$role === void 0 ? 'input' : _a$role,
|
38
|
+
className = _a.className,
|
39
|
+
style = _a.style,
|
40
|
+
_a$autoFocus = _a.autoFocus,
|
41
|
+
autoFocus = _a$autoFocus === void 0 ? false : _a$autoFocus,
|
42
|
+
_a$disabled = _a.disabled,
|
43
|
+
disabled = _a$disabled === void 0 ? false : _a$disabled,
|
44
|
+
_a$readOnly = _a.readOnly,
|
45
|
+
readOnly = _a$readOnly === void 0 ? false : _a$readOnly,
|
46
|
+
name = _a.name,
|
47
|
+
maxLength = _a.maxLength,
|
48
|
+
_a$type = _a.type,
|
49
|
+
type = _a$type === void 0 ? 'text' : _a$type,
|
50
|
+
_a$size = _a.size,
|
51
|
+
size = _a$size === void 0 ? 'md' : _a$size,
|
52
|
+
_a$appearance = _a.appearance,
|
53
|
+
appearance = _a$appearance === void 0 ? 'outline' : _a$appearance,
|
54
|
+
placeholder = _a.placeholder,
|
55
|
+
prepend = _a.prepend,
|
56
|
+
append = _a.append,
|
57
|
+
prefix = _a.prefix,
|
58
|
+
suffix = _a.suffix,
|
59
|
+
_a$defaultValue = _a.defaultValue,
|
60
|
+
defaultValue = _a$defaultValue === void 0 ? '' : _a$defaultValue,
|
61
|
+
valueProp = _a.value,
|
62
|
+
onChange = _a.onChange,
|
63
|
+
onFocus = _a.onFocus,
|
64
|
+
onBlur = _a.onBlur,
|
65
|
+
_a$clearableTrigger = _a.clearableTrigger,
|
66
|
+
clearableTrigger = _a$clearableTrigger === void 0 ? 'hover' : _a$clearableTrigger,
|
67
|
+
_a$clearable = _a.clearable,
|
68
|
+
clearable = _a$clearable === void 0 ? false : _a$clearable,
|
69
|
+
_a$trimValueOnBlur = _a.trimValueOnBlur,
|
70
|
+
trimValueOnBlur = _a$trimValueOnBlur === void 0 ? false : _a$trimValueOnBlur,
|
71
|
+
_a$invalid = _a.invalid,
|
72
|
+
invalid = _a$invalid === void 0 ? false : _a$invalid,
|
73
|
+
rest = __rest(_a, ["prefixCls", "role", "className", "style", "autoFocus", "disabled", "readOnly", "name", "maxLength", "type", "size", "appearance", "floatLabel", "placeholder", "prepend", "append", "prefix", "suffix", "defaultValue", "value", "onChange", "onFocus", "onBlur", "clearableTrigger", "clearable", "trimValueOnBlur", "invalid"]); // @TODO: 临时方案,后面迁移至 InputGroup
|
74
|
+
|
75
|
+
|
76
|
+
var _useMemo = useMemo(function () {
|
77
|
+
var shouldUnset = [false, false]; // @ts-ignore
|
78
|
+
// @ts-ignore
|
79
|
+
|
80
|
+
if (
|
81
|
+
/*#__PURE__*/
|
82
|
+
|
83
|
+
/*#__PURE__*/
|
84
|
+
isValidElement(prepend) && ['Select', 'Button'].includes(prepend.type.HiName)) {
|
85
|
+
shouldUnset[0] = true;
|
86
|
+
} // @ts-ignore
|
87
|
+
// @ts-ignore
|
88
|
+
|
89
|
+
|
90
|
+
if (
|
91
|
+
/*#__PURE__*/
|
92
|
+
|
93
|
+
/*#__PURE__*/
|
94
|
+
isValidElement(append) && ['Select', 'Button'].includes(append.type.HiName)) {
|
95
|
+
shouldUnset[1] = true;
|
96
|
+
}
|
97
|
+
|
98
|
+
return shouldUnset;
|
99
|
+
}, [prepend, append]),
|
100
|
+
unsetPrepend = _useMemo[0],
|
101
|
+
unsetAppend = _useMemo[1];
|
102
|
+
|
103
|
+
var inputRef = useRef(null);
|
104
|
+
var proxyOnChange = useCallback(function (value, evt) {
|
105
|
+
if (!onChange) return;
|
106
|
+
onChangeMock(onChange, evt, inputRef.current, value);
|
107
|
+
}, [onChange]);
|
108
|
+
|
109
|
+
var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, proxyOnChange),
|
110
|
+
value = _useUncontrolledState[0],
|
111
|
+
tryChangeValue = _useUncontrolledState[1];
|
112
|
+
|
113
|
+
var handleChange = useCallback(function (evt) {
|
114
|
+
var nextValue = evt.target.value;
|
115
|
+
tryChangeValue(nextValue, evt);
|
116
|
+
}, [tryChangeValue]);
|
117
|
+
|
118
|
+
var _useState = useState(autoFocus),
|
119
|
+
focused = _useState[0],
|
120
|
+
setFocused = _useState[1];
|
121
|
+
|
122
|
+
var handleFocus = useCallback(function (evt) {
|
123
|
+
setFocused(true);
|
124
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(evt);
|
125
|
+
}, [onFocus]);
|
126
|
+
var handleBlur = useCallback(function (event) {
|
127
|
+
setFocused(false);
|
128
|
+
|
129
|
+
if (trimValueOnBlur) {
|
130
|
+
var nextValue = event.target.value;
|
131
|
+
tryChangeValue(nextValue.trim(), event);
|
132
|
+
}
|
133
|
+
|
134
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
135
|
+
}, [onBlur, tryChangeValue, trimValueOnBlur]);
|
136
|
+
var focus = useCallback(function () {
|
137
|
+
var _a;
|
138
|
+
|
139
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
140
|
+
}, []);
|
141
|
+
var handleReset = useCallback(function (evt) {
|
142
|
+
tryChangeValue('', evt);
|
143
|
+
focus();
|
144
|
+
}, [tryChangeValue, focus]);
|
145
|
+
var nativeInputProps = useMemo(function () {
|
146
|
+
return {
|
147
|
+
name: name,
|
148
|
+
disabled: disabled,
|
149
|
+
readOnly: readOnly,
|
150
|
+
autoFocus: autoFocus,
|
151
|
+
placeholder: placeholder,
|
152
|
+
maxLength: maxLength
|
153
|
+
};
|
154
|
+
}, [disabled, readOnly, autoFocus, placeholder, maxLength, name]);
|
155
|
+
|
156
|
+
var _useState2 = useState(false),
|
157
|
+
hover = _useState2[0],
|
158
|
+
setHover = _useState2[1]; // 在开启 clearable 下展示 清除内容按钮,可点击进行内容清楚
|
159
|
+
|
160
|
+
|
161
|
+
var showClearableIcon = clearable && !!value && !disabled;
|
162
|
+
var cls = cx(className, prefixCls + "__outer", prepend && prefixCls + "__outer--prepend", prepend && unsetPrepend && prefixCls + "__outer--prepend-unset", append && prefixCls + "__outer--append", append && unsetAppend && prefixCls + "__outer--append-unset", prefixCls + "--appearance-" + appearance, prefixCls + "--size-" + size);
|
163
|
+
return /*#__PURE__*/React.createElement("div", {
|
164
|
+
role: role,
|
165
|
+
className: cls,
|
166
|
+
style: style
|
167
|
+
}, prepend ? /*#__PURE__*/React.createElement("div", {
|
168
|
+
className: prefixCls + "__prepend"
|
169
|
+
}, prepend) : null, /*#__PURE__*/React.createElement("div", {
|
170
|
+
className: cx(prefixCls + "__inner", prefix && prefixCls + "__inner--prefix", suffix && prefixCls + "__inner--suffix", // TODO: bem规范统一
|
171
|
+
focused && "focused", disabled && 'disabled', readOnly && 'readonly', invalid && 'invalid'),
|
172
|
+
onMouseOver: function onMouseOver(e) {
|
173
|
+
setHover(true);
|
174
|
+
},
|
175
|
+
onMouseLeave: function onMouseLeave(e) {
|
176
|
+
setHover(false);
|
177
|
+
}
|
178
|
+
}, prefix ? /*#__PURE__*/React.createElement("span", {
|
179
|
+
className: prefixCls + "__prefix"
|
180
|
+
}, prefix) : null, /*#__PURE__*/React.createElement("input", Object.assign({
|
181
|
+
ref: useMergeRefs(ref, inputRef),
|
182
|
+
className: cx(prefixCls, focused && "focused", disabled && 'disabled', readOnly && 'readonly'),
|
183
|
+
type: type,
|
184
|
+
value: value,
|
185
|
+
onChange: handleChange,
|
186
|
+
onFocus: handleFocus,
|
187
|
+
onBlur: handleBlur
|
188
|
+
}, rest, nativeInputProps)), suffix || showClearableIcon ? /*#__PURE__*/React.createElement("span", {
|
189
|
+
className: prefixCls + "__suffix"
|
190
|
+
}, showClearableIcon ? /*#__PURE__*/React.createElement("span", {
|
191
|
+
className: cx(prefixCls + "__clear", (clearableTrigger === 'always' || hover) && 'active'),
|
192
|
+
role: "button",
|
193
|
+
tabIndex: -1,
|
194
|
+
onClick: handleReset
|
195
|
+
}, /*#__PURE__*/React.createElement(CloseCircleFilled, null)) : null, suffix) : null), append ? /*#__PURE__*/React.createElement("div", {
|
196
|
+
className: prefixCls + "__append"
|
197
|
+
}, append) : null);
|
198
|
+
});
|
199
|
+
|
200
|
+
if (__DEV__) {
|
201
|
+
Input.displayName = 'Input';
|
202
|
+
}
|
203
|
+
/**
|
204
|
+
* 模拟伪装目标事件 target
|
205
|
+
*
|
206
|
+
* @param target
|
207
|
+
* @param evt
|
208
|
+
* @param onChange
|
209
|
+
* @param targetValue
|
210
|
+
* @returns
|
211
|
+
*/
|
212
|
+
|
213
|
+
|
214
|
+
function onChangeMock(onChange, evt, target, targetValue) {
|
215
|
+
var event = evt; // 点击 clearIcon 或者 失焦 trim 时,都会代理 onChange 的事件对象 target 指向 input.target
|
216
|
+
|
217
|
+
if (evt.type !== 'change') {
|
218
|
+
if (!target) return;
|
219
|
+
var originalTargetValue = target.value;
|
220
|
+
event = Object.create(evt);
|
221
|
+
event.target = target;
|
222
|
+
event.currentTarget = target;
|
223
|
+
target.value = targetValue;
|
224
|
+
onChange(event); // 重置为之前值
|
225
|
+
|
226
|
+
target.value = originalTargetValue;
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
|
230
|
+
onChange(event);
|
231
|
+
}
|
232
|
+
|
233
|
+
export { Input, onChangeMock };
|
234
|
+
//# sourceMappingURL=Input.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../../../../input/lib/esm/Input.js"],"sourcesContent":["/** @LICENSE\n * @hi-ui/input\n * https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#readme\n *\n * Copyright (c) HIUI <mi-hiui@xiaomi.com>.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { __rest } from 'tslib';\nimport React, { forwardRef, useMemo, isValidElement, useRef, useCallback, useState } from 'react';\nimport { getPrefixCls, cx } from '@hi-ui/classname';\nimport { __DEV__ } from '@hi-ui/env';\nimport { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';\nimport { useMergeRefs } from '@hi-ui/use-merge-refs';\nimport { CloseCircleFilled } from '@hi-ui/icons';\n\nvar _prefix = getPrefixCls('input');\n/**\n * TODO: What is Input\n */\n\n\nvar Input = /*#__PURE__*/forwardRef(function (_a, ref) {\n var _a$prefixCls = _a.prefixCls,\n prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,\n _a$role = _a.role,\n role = _a$role === void 0 ? 'input' : _a$role,\n className = _a.className,\n style = _a.style,\n _a$autoFocus = _a.autoFocus,\n autoFocus = _a$autoFocus === void 0 ? false : _a$autoFocus,\n _a$disabled = _a.disabled,\n disabled = _a$disabled === void 0 ? false : _a$disabled,\n _a$readOnly = _a.readOnly,\n readOnly = _a$readOnly === void 0 ? false : _a$readOnly,\n name = _a.name,\n maxLength = _a.maxLength,\n _a$type = _a.type,\n type = _a$type === void 0 ? 'text' : _a$type,\n _a$size = _a.size,\n size = _a$size === void 0 ? 'md' : _a$size,\n _a$appearance = _a.appearance,\n appearance = _a$appearance === void 0 ? 'outline' : _a$appearance,\n placeholder = _a.placeholder,\n prepend = _a.prepend,\n append = _a.append,\n prefix = _a.prefix,\n suffix = _a.suffix,\n _a$defaultValue = _a.defaultValue,\n defaultValue = _a$defaultValue === void 0 ? '' : _a$defaultValue,\n valueProp = _a.value,\n onChange = _a.onChange,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n _a$clearableTrigger = _a.clearableTrigger,\n clearableTrigger = _a$clearableTrigger === void 0 ? 'hover' : _a$clearableTrigger,\n _a$clearable = _a.clearable,\n clearable = _a$clearable === void 0 ? false : _a$clearable,\n _a$trimValueOnBlur = _a.trimValueOnBlur,\n trimValueOnBlur = _a$trimValueOnBlur === void 0 ? false : _a$trimValueOnBlur,\n _a$invalid = _a.invalid,\n invalid = _a$invalid === void 0 ? false : _a$invalid,\n rest = __rest(_a, [\"prefixCls\", \"role\", \"className\", \"style\", \"autoFocus\", \"disabled\", \"readOnly\", \"name\", \"maxLength\", \"type\", \"size\", \"appearance\", \"floatLabel\", \"placeholder\", \"prepend\", \"append\", \"prefix\", \"suffix\", \"defaultValue\", \"value\", \"onChange\", \"onFocus\", \"onBlur\", \"clearableTrigger\", \"clearable\", \"trimValueOnBlur\", \"invalid\"]); // @TODO: 临时方案,后面迁移至 InputGroup\n\n\n var _useMemo = useMemo(function () {\n var shouldUnset = [false, false]; // @ts-ignore\n // @ts-ignore\n\n if ( /*#__PURE__*/isValidElement(prepend) && ['Select', 'Button'].includes(prepend.type.HiName)) {\n shouldUnset[0] = true;\n } // @ts-ignore\n // @ts-ignore\n\n\n if ( /*#__PURE__*/isValidElement(append) && ['Select', 'Button'].includes(append.type.HiName)) {\n shouldUnset[1] = true;\n }\n\n return shouldUnset;\n }, [prepend, append]),\n unsetPrepend = _useMemo[0],\n unsetAppend = _useMemo[1];\n\n var inputRef = useRef(null);\n var proxyOnChange = useCallback(function (value, evt) {\n if (!onChange) return;\n onChangeMock(onChange, evt, inputRef.current, value);\n }, [onChange]);\n\n var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, proxyOnChange),\n value = _useUncontrolledState[0],\n tryChangeValue = _useUncontrolledState[1];\n\n var handleChange = useCallback(function (evt) {\n var nextValue = evt.target.value;\n tryChangeValue(nextValue, evt);\n }, [tryChangeValue]);\n\n var _useState = useState(autoFocus),\n focused = _useState[0],\n setFocused = _useState[1];\n\n var handleFocus = useCallback(function (evt) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(evt);\n }, [onFocus]);\n var handleBlur = useCallback(function (event) {\n setFocused(false);\n\n if (trimValueOnBlur) {\n var nextValue = event.target.value;\n tryChangeValue(nextValue.trim(), event);\n }\n\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n }, [onBlur, tryChangeValue, trimValueOnBlur]);\n var focus = useCallback(function () {\n var _a;\n\n (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, []);\n var handleReset = useCallback(function (evt) {\n tryChangeValue('', evt);\n focus();\n }, [tryChangeValue, focus]);\n var nativeInputProps = useMemo(function () {\n return {\n name: name,\n disabled: disabled,\n readOnly: readOnly,\n autoFocus: autoFocus,\n placeholder: placeholder,\n maxLength: maxLength\n };\n }, [disabled, readOnly, autoFocus, placeholder, maxLength, name]);\n\n var _useState2 = useState(false),\n hover = _useState2[0],\n setHover = _useState2[1]; // 在开启 clearable 下展示 清除内容按钮,可点击进行内容清楚\n\n\n var showClearableIcon = clearable && !!value && !disabled;\n var cls = cx(className, prefixCls + \"__outer\", prepend && prefixCls + \"__outer--prepend\", prepend && unsetPrepend && prefixCls + \"__outer--prepend-unset\", append && prefixCls + \"__outer--append\", append && unsetAppend && prefixCls + \"__outer--append-unset\", prefixCls + \"--appearance-\" + appearance, prefixCls + \"--size-\" + size);\n return /*#__PURE__*/React.createElement(\"div\", {\n role: role,\n className: cls,\n style: style\n }, prepend ? /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls + \"__prepend\"\n }, prepend) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: cx(prefixCls + \"__inner\", prefix && prefixCls + \"__inner--prefix\", suffix && prefixCls + \"__inner--suffix\", // TODO: bem规范统一\n focused && \"focused\", disabled && 'disabled', readOnly && 'readonly', invalid && 'invalid'),\n onMouseOver: function onMouseOver(e) {\n setHover(true);\n },\n onMouseLeave: function onMouseLeave(e) {\n setHover(false);\n }\n }, prefix ? /*#__PURE__*/React.createElement(\"span\", {\n className: prefixCls + \"__prefix\"\n }, prefix) : null, /*#__PURE__*/React.createElement(\"input\", Object.assign({\n ref: useMergeRefs(ref, inputRef),\n className: cx(prefixCls, focused && \"focused\", disabled && 'disabled', readOnly && 'readonly'),\n type: type,\n value: value,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur\n }, rest, nativeInputProps)), suffix || showClearableIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: prefixCls + \"__suffix\"\n }, showClearableIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: cx(prefixCls + \"__clear\", (clearableTrigger === 'always' || hover) && 'active'),\n role: \"button\",\n tabIndex: -1,\n onClick: handleReset\n }, /*#__PURE__*/React.createElement(CloseCircleFilled, null)) : null, suffix) : null), append ? /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls + \"__append\"\n }, append) : null);\n});\n\nif (__DEV__) {\n Input.displayName = 'Input';\n}\n/**\n * 模拟伪装目标事件 target\n *\n * @param target\n * @param evt\n * @param onChange\n * @param targetValue\n * @returns\n */\n\n\nfunction onChangeMock(onChange, evt, target, targetValue) {\n var event = evt; // 点击 clearIcon 或者 失焦 trim 时,都会代理 onChange 的事件对象 target 指向 input.target\n\n if (evt.type !== 'change') {\n if (!target) return;\n var originalTargetValue = target.value;\n event = Object.create(evt);\n event.target = target;\n event.currentTarget = target;\n target.value = targetValue;\n onChange(event); // 重置为之前值\n\n target.value = originalTargetValue;\n return;\n }\n\n onChange(event);\n}\n\nexport { Input, onChangeMock };\n//# sourceMappingURL=Input.js.map\n"],"names":["_prefix","getPrefixCls","Input","forwardRef","_a","ref","prefixCls","role","_a$role","className","style","autoFocus","_a$autoFocus","disabled","_a$disabled","readOnly","_a$readOnly","name","maxLength","type","_a$type","size","_a$size","appearance","_a$appearance","placeholder","prepend","append","prefix","suffix","defaultValue","_a$defaultValue","valueProp","value","onChange","onFocus","onBlur","clearableTrigger","_a$clearableTrigger","clearable","_a$clearable","trimValueOnBlur","_a$trimValueOnBlur","invalid","_a$invalid","rest","useMemo","shouldUnset","isValidElement","includes","HiName","unsetPrepend","_useMemo","unsetAppend","inputRef","useRef","proxyOnChange","useCallback","evt","onChangeMock","current","useUncontrolledState","_useUncontrolledState","tryChangeValue","handleChange","nextValue","useState","focused","_useState","setFocused","handleFocus","handleBlur","event","trim","focus","handleReset","nativeInputProps","hover","_useState2","setHover","showClearableIcon","cls","cx","React","onMouseOver","e","onMouseLeave","useMergeRefs","tabIndex","onClick","__DEV__","target","targetValue","originalTargetValue","Object"],"mappings":"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"}
|