@hi-ui/input 4.0.0-alpha.3 → 4.0.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/esm/Input.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** @LICENSE
2
- * @hi-ui/input v4.0.0-alpha.2
2
+ * @hi-ui/input
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#readme
4
4
  *
5
5
  * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
@@ -8,17 +8,23 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import React, { forwardRef, useRef, useCallback, useState, useMemo } from 'react';
11
+ import React, { forwardRef, useMemo, isValidElement, useRef, useCallback, useState } from 'react';
12
12
  import { getPrefixCls, cx } from '@hi-ui/classname';
13
13
  import { __DEV__ } from '@hi-ui/env';
14
- import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
15
14
  import { useMergeRefs } from '@hi-ui/use-merge-refs';
16
15
  import { CloseCircleFilled } from '@hi-ui/icons';
17
- var _role = 'input';
16
+ import { useInput } from './use-input.js';
18
17
 
19
- var _prefix = getPrefixCls(_role);
18
+ var _prefix = getPrefixCls('input');
20
19
  /**
21
- * TODO: What is Input
20
+ * 输入框
21
+ *
22
+ * @TODO:
23
+ * 1. size api 确认
24
+ * 2. 修改类名结构
25
+ * 3. 支持带数字展示
26
+ * 4. InputGroup 模式支持
27
+ * 5. 手动聚焦支持额外配置
22
28
  */
23
29
 
24
30
 
@@ -26,94 +32,104 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
26
32
  var _a$prefixCls = _a.prefixCls,
27
33
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
28
34
  _a$role = _a.role,
29
- role = _a$role === void 0 ? _role : _a$role,
35
+ role = _a$role === void 0 ? 'input' : _a$role,
30
36
  className = _a.className,
31
37
  style = _a.style,
32
- _a$autoFocus = _a.autoFocus,
33
- autoFocus = _a$autoFocus === void 0 ? false : _a$autoFocus,
34
- _a$disabled = _a.disabled,
35
- disabled = _a$disabled === void 0 ? false : _a$disabled,
36
- _a$readOnly = _a.readOnly,
37
- readOnly = _a$readOnly === void 0 ? false : _a$readOnly,
38
- name = _a.name,
39
- maxLength = _a.maxLength,
40
- _a$type = _a.type,
41
- type = _a$type === void 0 ? 'text' : _a$type,
42
38
  _a$size = _a.size,
43
- size = _a$size === void 0 ? 'sm' : _a$size,
39
+ size = _a$size === void 0 ? 'md' : _a$size,
44
40
  _a$appearance = _a.appearance,
45
- appearance = _a$appearance === void 0 ? 'outline' : _a$appearance,
46
- placeholder = _a.placeholder,
41
+ appearance = _a$appearance === void 0 ? 'line' : _a$appearance,
47
42
  prepend = _a.prepend,
48
43
  append = _a.append,
49
44
  prefix = _a.prefix,
50
45
  suffix = _a.suffix,
51
- _a$defaultValue = _a.defaultValue,
52
- defaultValue = _a$defaultValue === void 0 ? '' : _a$defaultValue,
53
- valueProp = _a.value,
54
- onChange = _a.onChange,
55
- onFocus = _a.onFocus,
56
- onBlur = _a.onBlur,
57
46
  _a$clearableTrigger = _a.clearableTrigger,
58
47
  clearableTrigger = _a$clearableTrigger === void 0 ? 'hover' : _a$clearableTrigger,
59
48
  _a$clearable = _a.clearable,
60
49
  clearable = _a$clearable === void 0 ? false : _a$clearable,
61
- 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"]);
50
+ _a$invalid = _a.invalid,
51
+ invalid = _a$invalid === void 0 ? false : _a$invalid,
52
+ name = _a.name,
53
+ autoFocus = _a.autoFocus,
54
+ disabled = _a.disabled,
55
+ readOnly = _a.readOnly,
56
+ maxLength = _a.maxLength,
57
+ placeholder = _a.placeholder,
58
+ defaultValue = _a.defaultValue,
59
+ valueProp = _a.value,
60
+ onChange = _a.onChange,
61
+ onFocus = _a.onFocus,
62
+ onBlur = _a.onBlur,
63
+ trimValueOnBlur = _a.trimValueOnBlur,
64
+ type = _a.type,
65
+ rest = __rest(_a, ["prefixCls", "role", "className", "style", "size", "appearance", "prepend", "append", "prefix", "suffix", "clearableTrigger", "clearable", "invalid", "name", "autoFocus", "disabled", "readOnly", "maxLength", "placeholder", "defaultValue", "value", "onChange", "onFocus", "onBlur", "trimValueOnBlur", "type"]); // @TODO: 临时方案,后面迁移至 InputGroup
66
+
67
+
68
+ var _useMemo = useMemo(function () {
69
+ var shouldUnset = [false, false]; // @ts-ignore
70
+ // @ts-ignore
71
+
72
+ if ( /*#__PURE__*/isValidElement(prepend) && ['Select', 'Button'].includes(prepend.type.HiName)) {
73
+ shouldUnset[0] = true;
74
+ } // @ts-ignore
75
+ // @ts-ignore
62
76
 
63
- var inputRef = useRef(null);
77
+
78
+ if ( /*#__PURE__*/isValidElement(append) && ['Select', 'Button'].includes(append.type.HiName)) {
79
+ shouldUnset[1] = true;
80
+ }
81
+
82
+ return shouldUnset;
83
+ }, [prepend, append]),
84
+ unsetPrepend = _useMemo[0],
85
+ unsetAppend = _useMemo[1];
86
+
87
+ var inputElementRef = useRef(null);
64
88
  var proxyOnChange = useCallback(function (value, evt) {
65
89
  if (!onChange) return;
66
- onChangeMock(onChange, evt, inputRef.current, value);
90
+ onChangeMock(onChange, evt, inputElementRef.current, value);
67
91
  }, [onChange]);
92
+ var clearElementRef = useRef(null);
93
+
94
+ var _useInput = useInput({
95
+ clearElementRef: clearElementRef,
96
+ name: name,
97
+ autoFocus: autoFocus,
98
+ disabled: disabled,
99
+ readOnly: readOnly,
100
+ maxLength: maxLength,
101
+ placeholder: placeholder,
102
+ defaultValue: defaultValue,
103
+ value: valueProp,
104
+ onChange: proxyOnChange,
105
+ onFocus: onFocus,
106
+ onBlur: onBlur,
107
+ trimValueOnBlur: trimValueOnBlur,
108
+ type: type
109
+ }),
110
+ tryChangeValue = _useInput.tryChangeValue,
111
+ focused = _useInput.focused,
112
+ value = _useInput.value,
113
+ getInputProps = _useInput.getInputProps;
68
114
 
69
- var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, proxyOnChange),
70
- value = _useUncontrolledState[0],
71
- tryChangeValue = _useUncontrolledState[1];
72
-
73
- var handleChange = useCallback(function (evt) {
74
- var nextValue = evt.target.value;
75
- tryChangeValue(nextValue, evt);
76
- }, [tryChangeValue]);
77
-
78
- var _useState = useState(autoFocus),
79
- focused = _useState[0],
80
- setFocused = _useState[1];
81
-
82
- var handleFocus = useCallback(function (evt) {
83
- setFocused(true);
84
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(evt);
85
- }, [onFocus]);
86
- var handleBlur = useCallback(function (event) {
87
- setFocused(false);
88
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
89
- }, [onBlur]);
90
115
  var focus = useCallback(function () {
91
116
  var _a;
92
117
 
93
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
118
+ (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.focus();
94
119
  }, []);
95
120
  var handleReset = useCallback(function (evt) {
96
121
  tryChangeValue('', evt);
97
122
  focus();
98
123
  }, [tryChangeValue, focus]);
99
- var nativeInputProps = useMemo(function () {
100
- return {
101
- name: name,
102
- disabled: disabled,
103
- readOnly: readOnly,
104
- autoFocus: autoFocus,
105
- placeholder: placeholder,
106
- maxLength: maxLength
107
- };
108
- }, [disabled, readOnly, autoFocus, placeholder, maxLength, name]);
109
-
110
- var _useState2 = useState(false),
111
- hover = _useState2[0],
112
- setHover = _useState2[1]; // 在开启 clearable 下展示 清除内容按钮,可点击进行内容清楚
124
+
125
+ var _useState = useState(false),
126
+ hover = _useState[0],
127
+ setHover = _useState[1]; // 在开启 clearable 下展示 清除内容按钮,可点击进行内容清楚
113
128
 
114
129
 
115
130
  var showClearableIcon = clearable && !!value && !disabled;
116
- var cls = cx(className, prefixCls + "__outer", prepend && prefixCls + "__outer--prepend", append && prefixCls + "__outer--append", prefixCls + "--appearance-" + appearance, prefixCls + "--size-" + size);
131
+ var mergedRef = useMergeRefs(ref, inputElementRef);
132
+ 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);
117
133
  return /*#__PURE__*/React.createElement("div", {
118
134
  role: role,
119
135
  className: cls,
@@ -121,7 +137,8 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
121
137
  }, prepend ? /*#__PURE__*/React.createElement("div", {
122
138
  className: prefixCls + "__prepend"
123
139
  }, prepend) : null, /*#__PURE__*/React.createElement("div", {
124
- className: cx(prefixCls + "__inner", prefix && prefixCls + "__inner--prefix", suffix && prefixCls + "__inner--suffix", focused && "focused", disabled && 'disabled', readOnly && 'readonly'),
140
+ className: cx(prefixCls + "__inner", prefix && prefixCls + "__inner--prefix", suffix && prefixCls + "__inner--suffix", // TODO: bem规范统一
141
+ focused && "focused", disabled && 'disabled', readOnly && 'readonly', invalid && 'invalid'),
125
142
  onMouseOver: function onMouseOver(e) {
126
143
  setHover(true);
127
144
  },
@@ -131,16 +148,13 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
131
148
  }, prefix ? /*#__PURE__*/React.createElement("span", {
132
149
  className: prefixCls + "__prefix"
133
150
  }, prefix) : null, /*#__PURE__*/React.createElement("input", Object.assign({
134
- ref: useMergeRefs(ref, inputRef),
151
+ ref: mergedRef,
135
152
  className: cx(prefixCls, focused && "focused", disabled && 'disabled', readOnly && 'readonly'),
136
- type: type,
137
- value: value,
138
- onChange: handleChange,
139
- onFocus: handleFocus,
140
- onBlur: handleBlur
141
- }, rest, nativeInputProps)), suffix || showClearableIcon ? /*#__PURE__*/React.createElement("span", {
153
+ type: type
154
+ }, getInputProps(), rest)), suffix || showClearableIcon ? /*#__PURE__*/React.createElement("span", {
142
155
  className: prefixCls + "__suffix"
143
156
  }, showClearableIcon ? /*#__PURE__*/React.createElement("span", {
157
+ ref: clearElementRef,
144
158
  className: cx(prefixCls + "__clear", (clearableTrigger === 'always' || hover) && 'active'),
145
159
  role: "button",
146
160
  tabIndex: -1,
@@ -154,7 +168,7 @@ if (__DEV__) {
154
168
  Input.displayName = 'Input';
155
169
  }
156
170
  /**
157
- * 伪造目标事件 target
171
+ * 模拟伪装目标事件 target
158
172
  *
159
173
  * @param target
160
174
  * @param evt
@@ -165,22 +179,22 @@ if (__DEV__) {
165
179
 
166
180
 
167
181
  function onChangeMock(onChange, evt, target, targetValue) {
168
- var event = evt; // 点击 clearIcon 时,代理 onChange 的事件对象 target 指向 input.target
182
+ var event = evt; // 点击 clearIcon 或者 失焦 trim 时,都会代理 onChange 的事件对象 target 指向 input.target
169
183
 
170
- if (evt.type === 'click') {
184
+ if (evt.type !== 'change') {
171
185
  if (!target) return;
172
186
  var originalTargetValue = target.value;
173
187
  event = Object.create(evt);
174
188
  event.target = target;
175
189
  event.currentTarget = target;
176
190
  target.value = targetValue;
177
- onChange(event); // 重置为之前值
191
+ onChange(event, targetValue); // 重置为之前值
178
192
 
179
193
  target.value = originalTargetValue;
180
194
  return;
181
195
  }
182
196
 
183
- onChange(event);
197
+ onChange(event, targetValue);
184
198
  }
185
199
 
186
200
  export { Input, onChangeMock };
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../src/Input.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","Input","forwardRef","_a","ref","prefixCls","role","className","style","autoFocus","disabled","readOnly","name","maxLength","type","size","appearance","placeholder","prepend","append","prefix","suffix","defaultValue","valueProp","value","onChange","onFocus","onBlur","clearableTrigger","clearable","rest","inputRef","useRef","proxyOnChange","useCallback","evt","onChangeMock","current","useUncontrolledState","tryChangeValue","handleChange","nextValue","target","useState","focused","setFocused","handleFocus","handleBlur","event","focus","handleReset","nativeInputProps","useMemo","hover","setHover","showClearableIcon","cls","cx","React","onMouseOver","e","onMouseLeave","useMergeRefs","tabIndex","onClick","CloseCircleFilled","__DEV__","displayName","targetValue","originalTargetValue","Object","create","currentTarget"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../src/Input.tsx"],"sourcesContent":[null],"names":["_prefix","getPrefixCls","Input","forwardRef","_a","ref","prefixCls","role","className","style","size","appearance","prepend","append","prefix","suffix","clearableTrigger","clearable","invalid","name","autoFocus","disabled","readOnly","maxLength","placeholder","defaultValue","valueProp","value","onChange","onFocus","onBlur","trimValueOnBlur","type","rest","useMemo","shouldUnset","isValidElement","includes","HiName","unsetPrepend","unsetAppend","inputElementRef","useRef","proxyOnChange","useCallback","evt","onChangeMock","current","clearElementRef","useInput","tryChangeValue","focused","getInputProps","focus","handleReset","useState","hover","setHover","showClearableIcon","mergedRef","useMergeRefs","cls","cx","React","onMouseOver","e","onMouseLeave","tabIndex","onClick","CloseCircleFilled","__DEV__","displayName","target","targetValue","event","originalTargetValue","Object","create","currentTarget"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /** @LICENSE
2
+ * @hi-ui/input
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#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 } 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 { CloseCircleFilled } from '@hi-ui/icons';
16
+ var _role = 'mock-input';
17
+
18
+ var _prefix = getPrefixCls(_role);
19
+
20
+ var NOOP_VALUE = '';
21
+ var NOOP_ARRAY = [];
22
+ /**
23
+ * 支持自定义渲染输入框内容,暂时仅供内部 Picker 类组件使用,不对外提供
24
+ */
25
+
26
+ var MockInput = /*#__PURE__*/forwardRef(function (_a, ref) {
27
+ var _a$prefixCls = _a.prefixCls,
28
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
29
+ _a$role = _a.role,
30
+ role = _a$role === void 0 ? _role : _a$role,
31
+ className = _a.className,
32
+ _a$data = _a.data,
33
+ data = _a$data === void 0 ? NOOP_ARRAY : _a$data,
34
+ _a$defaultValue = _a.defaultValue,
35
+ defaultValue = _a$defaultValue === void 0 ? NOOP_VALUE : _a$defaultValue,
36
+ valueProp = _a.value,
37
+ onChange = _a.onChange,
38
+ placeholder = _a.placeholder,
39
+ _a$disabled = _a.disabled,
40
+ disabled = _a$disabled === void 0 ? false : _a$disabled,
41
+ _a$clearable = _a.clearable,
42
+ clearable = _a$clearable === void 0 ? false : _a$clearable,
43
+ _a$focused = _a.focused,
44
+ focused = _a$focused === void 0 ? false : _a$focused,
45
+ _a$invalid = _a.invalid,
46
+ invalid = _a$invalid === void 0 ? false : _a$invalid,
47
+ _a$readOnly = _a.readOnly,
48
+ readOnly = _a$readOnly === void 0 ? false : _a$readOnly,
49
+ _a$size = _a.size,
50
+ size = _a$size === void 0 ? 'md' : _a$size,
51
+ _a$appearance = _a.appearance,
52
+ appearance = _a$appearance === void 0 ? 'line' : _a$appearance,
53
+ _a$clearableTrigger = _a.clearableTrigger,
54
+ clearableTrigger = _a$clearableTrigger === void 0 ? 'hover' : _a$clearableTrigger,
55
+ displayRender = _a.displayRender,
56
+ suffix = _a.suffix,
57
+ _onMouseOver = _a.onMouseOver,
58
+ _onMouseLeave = _a.onMouseLeave,
59
+ rest = __rest(_a, ["prefixCls", "role", "className", "data", "defaultValue", "value", "onChange", "placeholder", "disabled", "clearable", "focused", "invalid", "readOnly", "size", "appearance", "clearableTrigger", "displayRender", "suffix", "onMouseOver", "onMouseLeave"]);
60
+
61
+ var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, onChange),
62
+ value = _useUncontrolledState[0],
63
+ tryChangeValue = _useUncontrolledState[1];
64
+
65
+ var displayItem = useMemo(function () {
66
+ if (value === '') return null;
67
+ var displayItem = data.find(function (item) {
68
+ return item.id === value;
69
+ });
70
+ return displayItem || null;
71
+ }, [value, data]);
72
+ var displayValue = useMemo(function () {
73
+ if (!displayItem) return '';
74
+
75
+ if (displayRender) {
76
+ return displayRender(displayItem);
77
+ }
78
+
79
+ return displayItem.title;
80
+ }, [displayItem, displayRender]);
81
+ var handleClear = useCallback(function (evt) {
82
+ if (disabled) return;
83
+ evt.stopPropagation();
84
+ tryChangeValue(NOOP_VALUE, displayItem);
85
+ }, [tryChangeValue, disabled, displayItem]);
86
+
87
+ var _useState = useState(false),
88
+ hover = _useState[0],
89
+ setHover = _useState[1];
90
+
91
+ var trySetHover = useCallback(function (hovered) {
92
+ if (disabled) return;
93
+ setHover(hovered);
94
+ }, [disabled]);
95
+ var hasValue = !!displayValue; // 在开启 clearable 下展示 清除内容按钮,可点击进行内容清除
96
+
97
+ var showClearableIcon = useMemo(function () {
98
+ return clearable && hasValue && !disabled && (clearableTrigger === 'always' || hover);
99
+ }, [clearable, hasValue, disabled, clearableTrigger, hover]);
100
+ var cls = cx(prefixCls, className, prefixCls + "--appearance-" + appearance, prefixCls + "--size-" + size, focused && "focused", disabled && 'disabled', readOnly && 'readonly', invalid && 'invalid');
101
+ return /*#__PURE__*/React.createElement("div", Object.assign({
102
+ ref: ref,
103
+ role: role,
104
+ className: cls,
105
+ onMouseOver: function onMouseOver(evt) {
106
+ trySetHover(true);
107
+ _onMouseOver === null || _onMouseOver === void 0 ? void 0 : _onMouseOver(evt);
108
+ },
109
+ onMouseLeave: function onMouseLeave(evt) {
110
+ trySetHover(false);
111
+ _onMouseLeave === null || _onMouseLeave === void 0 ? void 0 : _onMouseLeave(evt);
112
+ }
113
+ }, rest), hasValue ? /*#__PURE__*/React.createElement("span", {
114
+ className: prefixCls + "__value"
115
+ }, displayValue) : /*#__PURE__*/React.createElement("span", {
116
+ className: prefixCls + "__placeholder"
117
+ }, placeholder), suffix || showClearableIcon ? /*#__PURE__*/React.createElement("span", {
118
+ className: prefixCls + "__suffix"
119
+ }, showClearableIcon ? /*#__PURE__*/React.createElement("span", {
120
+ role: "button",
121
+ tabIndex: -1,
122
+ className: cx(prefixCls + "__clear", 'active'),
123
+ onClick: handleClear
124
+ }, /*#__PURE__*/React.createElement(CloseCircleFilled, null)) : suffix) : null);
125
+ });
126
+
127
+ if (__DEV__) {
128
+ MockInput.displayName = 'MockInput';
129
+ }
130
+
131
+ export { MockInput };
132
+ //# sourceMappingURL=MockInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockInput.js","sources":["../../src/MockInput.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","NOOP_VALUE","NOOP_ARRAY","MockInput","forwardRef","_a","ref","prefixCls","role","className","data","defaultValue","valueProp","value","onChange","placeholder","disabled","clearable","focused","invalid","readOnly","size","appearance","clearableTrigger","displayRender","suffix","onMouseOver","onMouseLeave","rest","useUncontrolledState","tryChangeValue","displayItem","useMemo","find","item","id","displayValue","title","handleClear","useCallback","evt","stopPropagation","useState","hover","setHover","trySetHover","hovered","hasValue","showClearableIcon","cls","cx","React","tabIndex","onClick","CloseCircleFilled","__DEV__","displayName"],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /** @LICENSE
2
+ * @hi-ui/input
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#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 } from 'react';
12
+ import { getPrefixCls, cx } from '@hi-ui/classname';
13
+ import { __DEV__ } from '@hi-ui/env';
14
+ import { useInput } from './use-input.js';
15
+ import { useLatestCallback } from '@hi-ui/use-latest';
16
+
17
+ var _prefix = getPrefixCls('input');
18
+ /**
19
+ * 动态文本域输入框
20
+ *
21
+ * @TODO:
22
+ * 1. 支持带数字展示
23
+ * 2. 支持自适应行高大小
24
+ * 3. 支持清空按钮
25
+ * 4. 支持最大最小行支持
26
+ * 5. 手动聚焦支持额外配置
27
+ */
28
+
29
+
30
+ var TextArea = /*#__PURE__*/forwardRef(function (_a, ref) {
31
+ var _a$prefixCls = _a.prefixCls,
32
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
33
+ className = _a.className,
34
+ _a$size = _a.size,
35
+ size = _a$size === void 0 ? 'md' : _a$size,
36
+ _a$appearance = _a.appearance,
37
+ appearance = _a$appearance === void 0 ? 'line' : _a$appearance,
38
+ _a$invalid = _a.invalid,
39
+ invalid = _a$invalid === void 0 ? false : _a$invalid,
40
+ name = _a.name,
41
+ autoFocus = _a.autoFocus,
42
+ disabled = _a.disabled,
43
+ readOnly = _a.readOnly,
44
+ maxLength = _a.maxLength,
45
+ placeholder = _a.placeholder,
46
+ defaultValue = _a.defaultValue,
47
+ valueProp = _a.value,
48
+ onChange = _a.onChange,
49
+ onFocus = _a.onFocus,
50
+ onBlur = _a.onBlur,
51
+ trimValueOnBlur = _a.trimValueOnBlur,
52
+ nativeProps = __rest(_a, ["prefixCls", "className", "style", "size", "appearance", "invalid", "name", "autoFocus", "disabled", "readOnly", "maxLength", "placeholder", "defaultValue", "value", "onChange", "onFocus", "onBlur", "trimValueOnBlur"]);
53
+
54
+ var proxyOnChange = useLatestCallback(function (_, evt) {
55
+ onChange === null || onChange === void 0 ? void 0 : onChange(evt);
56
+ });
57
+
58
+ var _useInput = useInput({
59
+ name: name,
60
+ autoFocus: autoFocus,
61
+ disabled: disabled,
62
+ readOnly: readOnly,
63
+ maxLength: maxLength,
64
+ placeholder: placeholder,
65
+ defaultValue: defaultValue,
66
+ value: valueProp,
67
+ onChange: proxyOnChange,
68
+ onFocus: onFocus,
69
+ onBlur: onBlur,
70
+ trimValueOnBlur: trimValueOnBlur
71
+ }),
72
+ focused = _useInput.focused,
73
+ getInputProps = _useInput.getInputProps;
74
+
75
+ var cls = cx(prefixCls, className, disabled && 'disabled', readOnly && 'readonly', focused && "focused", invalid && 'invalid', prefixCls + "--appearance-" + appearance, prefixCls + "--size-" + size);
76
+ return /*#__PURE__*/React.createElement("textarea", Object.assign({
77
+ ref: ref,
78
+ className: cls,
79
+ autoComplete: "off"
80
+ }, getInputProps(), nativeProps));
81
+ });
82
+
83
+ if (__DEV__) {
84
+ TextArea.displayName = 'TextArea';
85
+ }
86
+
87
+ export { TextArea };
88
+ //# sourceMappingURL=TextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextArea.js","sources":["../../src/TextArea.tsx"],"sourcesContent":[null],"names":["_prefix","getPrefixCls","TextArea","forwardRef","_a","ref","prefixCls","className","size","appearance","invalid","name","autoFocus","disabled","readOnly","maxLength","placeholder","defaultValue","valueProp","value","onChange","onFocus","onBlur","trimValueOnBlur","nativeProps","proxyOnChange","useLatestCallback","_","evt","useInput","focused","getInputProps","cls","cx","React","autoComplete","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;;;AAQA,IAAMA,OAAO,GAAGC,YAAY,CAAC,OAAD,CAA5B;AAEA;;;;;;;;;;;;IAUaC,QAAQ,gBAAGC,UAAU,CAChC,UACEC,EADF,EAuBEC,GAvBF;wBAEIC;MAAAA,sCAAYN;MACZO,eAAAA;mBAEAC;MAAAA,4BAAO;yBACPC;MAAAA,wCAAa;sBACbC;MAAAA,kCAAU;MAEVC,UAAAA;MACAC,eAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,eAAAA;MACAC,iBAAAA;MACAC,kBAAAA;MACOC,eAAPC;MACAC,cAAAA;MACAC,aAAAA;MACAC,YAAAA;MACAC,qBAAAA;MACGC,yBApBL,YAAA,aAAA,SAAA,QAAA,cAAA,WAAA,QAAA,aAAA,YAAA,YAAA,aAAA,eAAA,gBAAA,SAAA,YAAA,WAAA,UAAA,mBAAA;;MAwBMC,aAAa,GAAGC,iBAAiB,CAAC,UAACC,CAAD,EAAIC,GAAJ;AACtCR,IAAAA,QAAQ,SAARA,IAAAA,QAAQ,WAARA,SAAAA,GAAAA,QAAQ,CAAGQ,GAAH,CAARR;AADqC,GAAA;;kBAIJS,QAAQ,CAAC;AAC1ClB,IAAAA,IAAI,EAAJA,IAD0C;AAE1CC,IAAAA,SAAS,EAATA,SAF0C;AAG1CC,IAAAA,QAAQ,EAARA,QAH0C;AAI1CC,IAAAA,QAAQ,EAARA,QAJ0C;AAK1CC,IAAAA,SAAS,EAATA,SAL0C;AAM1CC,IAAAA,WAAW,EAAXA,WAN0C;AAO1CC,IAAAA,YAAY,EAAZA,YAP0C;AAQ1CE,IAAAA,KAAK,EAAED,SARmC;AAS1CE,IAAAA,QAAQ,EAAEK,aATgC;AAU1CJ,IAAAA,OAAO,EAAPA,OAV0C;AAW1CC,IAAAA,MAAM,EAANA,MAX0C;AAY1CC,IAAAA,eAAe,EAAfA;AAZ0C,GAAD;MAAnCO,OAAR,aAAQA;MAASC,aAAjB,aAAiBA;;MAeXC,GAAG,GAAGC,EAAE,CACZ3B,SADY,EAEZC,SAFY,EAGZM,QAAQ,IAAI,UAHA,EAIZC,QAAQ,IAAI,UAJA,EAKZgB,OAAO,aALK,EAMZpB,OAAO,IAAI,SANC,EAOTJ,SAPS,kBAOTA,GAAyBG,UAPhB,EAQTH,SARS,YAQTA,GAAmBE,IARV;sBAYZ0B,mBAAAA,WAAAA;AACE7B,IAAAA,GAAG,EAAEA;AACLE,IAAAA,SAAS,EAAEyB;AACXG,IAAAA,YAAY,EAAC;KACTJ,aAAa,IACbP,YALNU;AAzD4B,CAAA;;AAsFlC,IAAIE,OAAJ,EAAa;AACXlC,EAAAA,QAAQ,CAACmC,WAATnC,GAAuB,UAAvBA;;;"}
package/lib/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** @LICENSE
2
- * @hi-ui/input v4.0.0-alpha.2
2
+ * @hi-ui/input
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/input#readme
4
4
  *
5
5
  * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
@@ -9,4 +9,6 @@
9
9
  */
10
10
  import './styles/index.scss.js';
11
11
  export { Input, Input as default, onChangeMock } from './Input.js';
12
+ export { TextArea } from './TextArea.js';
13
+ export { MockInput } from './MockInput.js';
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}