@nutui/nutui-react 2.0.0-alpha.0 → 2.0.0-alpha.10
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 +137 -638
- package/dist/esm/Address.js +1 -1
- package/dist/esm/Animate.js +6 -7
- package/dist/esm/Audio.js +28 -27
- package/dist/esm/Avatar.js +30 -25
- package/dist/esm/AvatarGroup.js +10 -15
- package/dist/esm/Badge.js +4 -73
- package/dist/esm/CalendarItem.js +2 -12
- package/dist/esm/Cascader.js +67 -69
- package/dist/esm/Checkbox.js +1 -2
- package/dist/esm/CheckboxGroup.js +18 -20
- package/dist/esm/CircleProgress.js +20 -25
- package/dist/esm/Col.js +4 -3
- package/dist/esm/DatePicker.js +10 -10
- package/dist/esm/Dialog.js +162 -171
- package/dist/esm/Divider.js +4 -3
- package/dist/esm/Drag.js +7 -9
- package/dist/esm/Elevator.js +39 -41
- package/dist/esm/Ellipsis.js +13 -12
- package/dist/esm/Empty.js +18 -26
- package/dist/esm/Image.js +5 -10
- package/dist/esm/ImagePreview.js +67 -58
- package/dist/esm/Indicator.js +4 -4
- package/dist/esm/Input.js +87 -193
- package/dist/esm/Menu.js +75 -73
- package/dist/esm/MenuItem.js +29 -27
- package/dist/esm/NavBar.js +17 -48
- package/dist/esm/NoticeBar.js +50 -87
- package/dist/esm/Notify.js +35 -46
- package/dist/esm/NumberKeyboard.js +137 -195
- package/dist/esm/Picker.js +175 -160
- package/dist/esm/Popup.js +24 -33
- package/dist/esm/Price.js +22 -23
- package/dist/esm/Progress.js +74 -67
- package/dist/esm/PullToRefresh.js +8 -8
- package/dist/esm/Radio.js +2 -0
- package/dist/esm/RadioGroup.js +31 -51
- package/dist/esm/Range/style/index.js +1 -1
- package/dist/esm/Range.js +119 -174
- package/dist/esm/Row.js +6 -5
- package/dist/esm/SideNavBar.js +0 -2
- package/dist/esm/Skeleton.js +1 -1
- package/dist/esm/Step.js +23 -28
- package/dist/esm/Steps/style/index.js +1 -1
- package/dist/esm/Steps.js +10 -11
- package/dist/esm/Swipe.js +4 -10
- package/dist/esm/Swiper.js +86 -91
- package/dist/esm/SwiperItem.js +1 -1
- package/dist/esm/Switch.js +16 -30
- package/dist/esm/TabPane.js +39 -5
- package/dist/esm/Tabbar/style/index.js +1 -1
- package/dist/esm/Tabbar.js +29 -33
- package/dist/esm/TabbarItem.js +5 -75
- package/dist/esm/Table.js +20 -34
- package/dist/esm/Tabs.js +2 -2
- package/dist/esm/TextArea.js +53 -81
- package/dist/esm/Uploader.js +49 -52
- package/dist/esm/badge2.js +69 -0
- package/dist/esm/cellgroup2.js +5 -4
- package/dist/esm/checkbox2.js +34 -47
- package/dist/esm/nutui-react.es.js +170 -170
- package/dist/esm/overlay2.js +12 -14
- package/dist/esm/radio2.js +52 -54
- package/dist/esm/raf.js +16 -0
- package/dist/esm/tabbaritem2.js +61 -0
- package/dist/esm/tabs2.js +126 -95
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.mjs +23562 -24489
- package/dist/nutui.react.umd.js +23560 -24487
- package/dist/packages/audio/audio.scss +2 -15
- package/dist/packages/badge/badge.scss +8 -18
- package/dist/packages/calendar/calendar.scss +0 -30
- package/dist/packages/cascader/cascader.scss +0 -26
- package/dist/packages/cellgroup/cellgroup.scss +20 -16
- package/dist/packages/checkbox/checkbox.scss +8 -11
- package/dist/packages/circleprogress/circleprogress.scss +0 -9
- package/dist/packages/dialog/dialog.scss +36 -65
- package/dist/packages/elevator/elevator.scss +2 -28
- package/dist/packages/empty/empty.scss +0 -9
- package/dist/packages/imagepreview/imagepreview.scss +52 -16
- package/dist/packages/input/input.scss +13 -180
- package/dist/packages/menu/menu.scss +44 -55
- package/dist/packages/menuitem/menuitem.scss +16 -26
- package/dist/packages/navbar/navbar.scss +16 -115
- package/dist/packages/noticebar/noticebar.scss +18 -19
- package/dist/packages/notify/notify.scss +1 -1
- package/dist/packages/numberkeyboard/numberkeyboard.scss +29 -77
- package/dist/packages/overlay/overlay.scss +11 -4
- package/dist/packages/picker/picker.scss +66 -137
- package/dist/packages/popup/popup.scss +0 -16
- package/dist/packages/price/price.scss +8 -0
- package/dist/packages/progress/progress.scss +19 -58
- package/dist/packages/pulltorefresh/pulltorefresh.scss +0 -8
- package/dist/packages/radio/radio.scss +13 -32
- package/dist/packages/radiogroup/radiogroup.scss +17 -51
- package/dist/packages/range/range.scss +24 -49
- package/dist/packages/row/row.scss +13 -31
- package/dist/packages/sidenavbar/sidenavbar.scss +0 -19
- package/dist/packages/step/step.scss +9 -62
- package/dist/packages/steps/steps.scss +2 -0
- package/dist/packages/swiper/swiper.scss +3 -18
- package/dist/packages/switch/switch.scss +13 -31
- package/dist/packages/tabbar/tabbar.scss +16 -22
- package/dist/packages/tabbaritem/tabbaritem.scss +9 -70
- package/dist/packages/table/table.scss +0 -56
- package/dist/packages/tabs/tabs.scss +196 -225
- package/dist/packages/textarea/textarea.scss +5 -12
- package/dist/packages/uploader/uploader.scss +2 -28
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/styles/themes/default.scss +17 -18
- package/dist/styles/variables-jmapp.scss +120 -240
- package/dist/styles/variables.scss +139 -252
- package/dist/types/index.d.ts +565 -708
- package/package.json +2 -2
- package/dist/esm/Icon.js +0 -83
- package/dist/esm/tabpane2.js +0 -44
- package/dist/packages/icon/icon.scss +0 -0
- /package/dist/esm/{AvatarContext.js → context.js} +0 -0
- /package/dist/esm/{UserContext2.js → context2.js} +0 -0
- /package/dist/esm/{UserContext3.js → context3.js} +0 -0
package/dist/esm/Input.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
var _excluded = ["
|
|
4
|
+
var _excluded = ["type", "name", "placeholder", "align", "disabled", "readOnly", "maxLength", "clearable", "clearIcon", "formatTrigger", "autoFocus", "style", "className", "onChange", "onFocus", "onClear", "formatter", "onClick", "confirmType", "defaultValue", "value"];
|
|
5
5
|
function ownKeys(object, enumerableOnly) {
|
|
6
6
|
var keys = Object.keys(object);
|
|
7
7
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -23,10 +23,11 @@ function _objectSpread(target) {
|
|
|
23
23
|
}
|
|
24
24
|
return target;
|
|
25
25
|
}
|
|
26
|
-
import React__default, { forwardRef,
|
|
26
|
+
import React__default, { forwardRef, useRef, useState, useImperativeHandle, useCallback } from "react";
|
|
27
27
|
import { MaskClose } from "@nutui/icons-react";
|
|
28
28
|
import { useConfig } from "./ConfigProvider.js";
|
|
29
29
|
import { C as ComponentDefaults } from "./typings.js";
|
|
30
|
+
import { u as usePropsValue } from "./use-props-value.js";
|
|
30
31
|
function trimExtraChar(value, _char, regExp) {
|
|
31
32
|
var index = value.indexOf(_char);
|
|
32
33
|
if (index === -1) {
|
|
@@ -56,253 +57,146 @@ function formatNumber(value) {
|
|
|
56
57
|
var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
|
|
57
58
|
type: "text",
|
|
58
59
|
name: "",
|
|
59
|
-
defaultValue: "",
|
|
60
60
|
placeholder: "",
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
labelWidth: "80",
|
|
64
|
-
labelAlign: "left",
|
|
65
|
-
colon: false,
|
|
66
|
-
inputAlign: "left",
|
|
67
|
-
center: false,
|
|
61
|
+
confirmType: "done",
|
|
62
|
+
align: "left",
|
|
68
63
|
required: false,
|
|
69
64
|
disabled: false,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
maxlength: "9999",
|
|
73
|
-
leftIcon: null,
|
|
74
|
-
rightIcon: null,
|
|
65
|
+
readOnly: false,
|
|
66
|
+
maxLength: 9999,
|
|
75
67
|
clearable: false,
|
|
76
68
|
clearIcon: null,
|
|
77
|
-
clearSize: "14",
|
|
78
|
-
border: true,
|
|
79
69
|
formatTrigger: "onChange",
|
|
80
|
-
|
|
81
|
-
rows: null,
|
|
82
|
-
errorMessage: "",
|
|
83
|
-
errorMessageAlign: "",
|
|
84
|
-
showWordLimit: false,
|
|
85
|
-
autofocus: false,
|
|
86
|
-
slotButton: null,
|
|
87
|
-
slotInput: null
|
|
70
|
+
autoFocus: false
|
|
88
71
|
});
|
|
89
72
|
var Input = forwardRef(function(props, ref) {
|
|
90
73
|
var _useConfig = useConfig(), locale = _useConfig.locale;
|
|
91
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
};
|
|
74
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), type = _defaultProps$props.type, name = _defaultProps$props.name, placeholder = _defaultProps$props.placeholder, align = _defaultProps$props.align, disabled = _defaultProps$props.disabled, readOnly = _defaultProps$props.readOnly, maxLength = _defaultProps$props.maxLength, clearable = _defaultProps$props.clearable, clearIcon = _defaultProps$props.clearIcon, formatTrigger = _defaultProps$props.formatTrigger, autoFocus = _defaultProps$props.autoFocus, style = _defaultProps$props.style, className = _defaultProps$props.className, onChange = _defaultProps$props.onChange, onFocus = _defaultProps$props.onFocus, onClear = _defaultProps$props.onClear, formatter = _defaultProps$props.formatter, _onClick = _defaultProps$props.onClick, confirmType = _defaultProps$props.confirmType, defaultValue = _defaultProps$props.defaultValue, _value = _defaultProps$props.value, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
75
|
+
var _usePropsValue = usePropsValue({
|
|
76
|
+
value: props.value,
|
|
77
|
+
defaultValue: props.defaultValue,
|
|
78
|
+
finalValue: "",
|
|
79
|
+
onChange
|
|
80
|
+
}), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), value = _usePropsValue2[0], setValue = _usePropsValue2[1];
|
|
99
81
|
var inputRef = useRef(null);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
SetInputValue(defaultValue);
|
|
103
|
-
}, [defaultValue]);
|
|
104
|
-
useEffect(function() {
|
|
105
|
-
if (inputValue) {
|
|
106
|
-
updateValue(getModelValue());
|
|
107
|
-
resetValidation();
|
|
108
|
-
}
|
|
109
|
-
}, [inputValue]);
|
|
82
|
+
var composingRef = useRef(false);
|
|
83
|
+
var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), active = _useState2[0], setActive = _useState2[1];
|
|
110
84
|
useImperativeHandle(ref, function() {
|
|
111
|
-
return
|
|
85
|
+
return {
|
|
86
|
+
clear: function clear() {
|
|
87
|
+
setValue("");
|
|
88
|
+
},
|
|
89
|
+
focus: function focus() {
|
|
90
|
+
var _inputRef$current;
|
|
91
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
92
|
+
},
|
|
93
|
+
blur: function blur() {
|
|
94
|
+
var _inputRef$current2;
|
|
95
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
|
|
96
|
+
},
|
|
97
|
+
get nativeElement() {
|
|
98
|
+
return inputRef.current;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
112
101
|
});
|
|
113
102
|
var inputClass = useCallback(function() {
|
|
114
|
-
var
|
|
115
|
-
return [
|
|
116
|
-
}, [disabled
|
|
117
|
-
|
|
118
|
-
setClasses(inputClass);
|
|
119
|
-
}, [disabled, required, error, border, slotButton, rightIcon, center]);
|
|
120
|
-
var updateValue = function updateValue2(value) {
|
|
121
|
-
var _inputRef$current;
|
|
103
|
+
var classPrefix = "nut-input";
|
|
104
|
+
return [classPrefix, "".concat(disabled ? "".concat(classPrefix, "-disabled") : "")].filter(Boolean).join(" ");
|
|
105
|
+
}, [disabled]);
|
|
106
|
+
var updateValue = function updateValue2(value2) {
|
|
122
107
|
var trigger = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "onChange";
|
|
123
|
-
var
|
|
124
|
-
var val = value;
|
|
125
|
-
if (type === "digit" || type === "tel") {
|
|
126
|
-
val = formatNumber(val, false, false);
|
|
127
|
-
}
|
|
108
|
+
var val = value2;
|
|
128
109
|
if (type === "number") {
|
|
129
|
-
val = formatNumber(val,
|
|
110
|
+
val = formatNumber(val, false, true);
|
|
130
111
|
}
|
|
131
|
-
if (type === "
|
|
132
|
-
|
|
133
|
-
var regNumber = /[^-0-9]/g;
|
|
134
|
-
val = !regTel.test(val) && val.length > 11 ? val.substring(0, 11) : val.replace(regNumber, "");
|
|
112
|
+
if (type === "digit") {
|
|
113
|
+
val = formatNumber(val, true, true);
|
|
135
114
|
}
|
|
136
115
|
if (formatter && trigger === formatTrigger) {
|
|
137
116
|
val = formatter(val);
|
|
138
117
|
}
|
|
139
|
-
|
|
140
|
-
|
|
118
|
+
setValue(val);
|
|
119
|
+
var eventHandler = props[trigger];
|
|
120
|
+
if (eventHandler && typeof eventHandler === "function") {
|
|
121
|
+
eventHandler(val);
|
|
141
122
|
}
|
|
142
|
-
SetInputValue(val);
|
|
143
123
|
};
|
|
144
124
|
var handleFocus = function handleFocus2(event) {
|
|
145
125
|
var val = event.target.value;
|
|
146
|
-
|
|
147
|
-
|
|
126
|
+
onFocus && onFocus(val);
|
|
127
|
+
setActive(true);
|
|
148
128
|
};
|
|
149
|
-
var handleInput = function handleInput2(
|
|
150
|
-
|
|
151
|
-
if (maxlength && val.length > Number(maxlength)) {
|
|
152
|
-
val = val.slice(0, Number(maxlength));
|
|
153
|
-
}
|
|
154
|
-
updateValue(val, "onChange");
|
|
155
|
-
onChange && onChange(val, event);
|
|
129
|
+
var handleInput = function handleInput2(value2) {
|
|
130
|
+
updateValue(value2, "onChange");
|
|
156
131
|
};
|
|
157
132
|
var handleBlur = function handleBlur2(event) {
|
|
158
|
-
setTimeout(function() {
|
|
159
|
-
SetActive(false);
|
|
160
|
-
}, 200);
|
|
161
133
|
var val = event.target.value;
|
|
162
|
-
if (maxlength && val.length > Number(maxlength)) {
|
|
163
|
-
val = val.slice(0, Number(maxlength));
|
|
164
|
-
}
|
|
165
134
|
updateValue(val, "onBlur");
|
|
166
|
-
|
|
167
|
-
};
|
|
168
|
-
var handleClickInput = function handleClickInput2(event) {
|
|
169
|
-
onClickInput && onClickInput(event);
|
|
170
|
-
};
|
|
171
|
-
var handleClickLeftIcon = function handleClickLeftIcon2(event) {
|
|
172
|
-
onClickLeftIcon && onClickLeftIcon(event);
|
|
173
|
-
};
|
|
174
|
-
var handleClickRightIcon = function handleClickRightIcon2(event) {
|
|
175
|
-
onClickRightIcon && onClickRightIcon(event);
|
|
176
|
-
};
|
|
177
|
-
var resetValidation = function resetValidation2() {
|
|
135
|
+
setActive(false);
|
|
178
136
|
};
|
|
179
137
|
var inputType = function inputType2(type2) {
|
|
180
|
-
if (type2 === "
|
|
138
|
+
if (type2 === "digit") {
|
|
181
139
|
return "text";
|
|
182
140
|
}
|
|
183
|
-
if (type2 === "
|
|
141
|
+
if (type2 === "number") {
|
|
184
142
|
return "tel";
|
|
185
143
|
}
|
|
186
144
|
return type2;
|
|
187
145
|
};
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
};
|
|
192
|
-
return React__default.createElement("div", _objectSpread(_objectSpread({
|
|
193
|
-
className: "".concat(classes, " ").concat(className || ""),
|
|
194
|
-
style
|
|
195
|
-
}, rest), {}, {
|
|
146
|
+
return React__default.createElement("div", {
|
|
147
|
+
className: "".concat(inputClass(), " ").concat(className || ""),
|
|
148
|
+
style,
|
|
196
149
|
onClick: function onClick(e) {
|
|
197
150
|
_onClick && _onClick(e);
|
|
198
151
|
}
|
|
199
|
-
}
|
|
200
|
-
className: "nut-input-label ".concat(labelClass),
|
|
201
|
-
style: {
|
|
202
|
-
width: "".concat(labelWidth, "px"),
|
|
203
|
-
textAlign: labelAlign
|
|
204
|
-
}
|
|
205
|
-
}, React__default.createElement("div", {
|
|
206
|
-
className: "label-string"
|
|
207
|
-
}, label, colon ? ":" : "")) : null, React__default.createElement("div", {
|
|
208
|
-
className: "nut-input-value"
|
|
209
|
-
}, React__default.createElement("div", {
|
|
210
|
-
className: "nut-input-inner",
|
|
211
|
-
onClick: function onClick(e) {
|
|
212
|
-
handleClickInput(e);
|
|
213
|
-
}
|
|
214
|
-
}, slotInput))) : React__default.createElement(React__default.Fragment, null, React__default.isValidElement(leftIcon) ? React__default.createElement("div", {
|
|
215
|
-
className: "nut-input-left-icon",
|
|
216
|
-
onClick: function onClick(e) {
|
|
217
|
-
handleClickLeftIcon(e);
|
|
218
|
-
}
|
|
219
|
-
}, leftIcon) : null, label ? React__default.createElement("div", {
|
|
220
|
-
className: "nut-input-label ".concat(labelClass),
|
|
221
|
-
style: {
|
|
222
|
-
width: "".concat(labelWidth, "px"),
|
|
223
|
-
textAlign: labelAlign
|
|
224
|
-
}
|
|
225
|
-
}, React__default.createElement("div", {
|
|
226
|
-
className: "label-string"
|
|
227
|
-
}, label, colon ? ":" : "")) : null, React__default.createElement("div", {
|
|
228
|
-
className: "nut-input-value"
|
|
229
|
-
}, React__default.createElement("div", {
|
|
230
|
-
className: "nut-input-main-con"
|
|
231
|
-
}, React__default.createElement("div", {
|
|
232
|
-
className: "nut-input-inner",
|
|
233
|
-
onClick: function onClick(e) {
|
|
234
|
-
handleClickInput(e);
|
|
235
|
-
}
|
|
236
|
-
}, type === "textarea" ? React__default.createElement("textarea", {
|
|
152
|
+
}, React__default.createElement("input", _objectSpread(_objectSpread({}, rest), {}, {
|
|
237
153
|
name,
|
|
238
|
-
className: "input-
|
|
154
|
+
className: "nut-input-native",
|
|
239
155
|
ref: inputRef,
|
|
240
156
|
style: {
|
|
241
|
-
textAlign:
|
|
242
|
-
height: "".concat(Number(rows) * 24, "px")
|
|
157
|
+
textAlign: align
|
|
243
158
|
},
|
|
244
|
-
|
|
245
|
-
|
|
159
|
+
type: inputType(type),
|
|
160
|
+
maxLength,
|
|
161
|
+
placeholder: placeholder || locale.placeholder,
|
|
246
162
|
disabled,
|
|
247
|
-
readOnly
|
|
248
|
-
value
|
|
249
|
-
autoFocus
|
|
250
|
-
|
|
163
|
+
readOnly,
|
|
164
|
+
value,
|
|
165
|
+
autoFocus,
|
|
166
|
+
enterKeyHint: confirmType,
|
|
167
|
+
onBlur: function onBlur(e) {
|
|
251
168
|
handleBlur(e);
|
|
252
169
|
},
|
|
253
170
|
onFocus: function onFocus2(e) {
|
|
254
171
|
handleFocus(e);
|
|
255
172
|
},
|
|
256
|
-
|
|
257
|
-
handleInput(e);
|
|
258
|
-
}
|
|
259
|
-
}) : React__default.createElement("input", {
|
|
260
|
-
name,
|
|
261
|
-
className: "input-text",
|
|
262
|
-
ref: inputRef,
|
|
263
|
-
style: {
|
|
264
|
-
textAlign: inputAlign
|
|
265
|
-
},
|
|
266
|
-
type: inputType(type),
|
|
267
|
-
maxLength: maxlength,
|
|
268
|
-
placeholder: inputPlaceholder,
|
|
269
|
-
disabled,
|
|
270
|
-
readOnly: readonly,
|
|
271
|
-
value: inputValue,
|
|
272
|
-
autoFocus: autofocus,
|
|
273
|
-
onBlur: function onBlur2(e) {
|
|
274
|
-
handleBlur(e);
|
|
173
|
+
onChange: function onChange2(e) {
|
|
174
|
+
handleInput(e.currentTarget.value);
|
|
275
175
|
},
|
|
276
|
-
|
|
277
|
-
|
|
176
|
+
onCompositionStart: function onCompositionStart(e) {
|
|
177
|
+
var _props$onCompositionS;
|
|
178
|
+
composingRef.current = true;
|
|
179
|
+
(_props$onCompositionS = props.onCompositionStart) === null || _props$onCompositionS === void 0 ? void 0 : _props$onCompositionS.call(props, e);
|
|
278
180
|
},
|
|
279
|
-
|
|
280
|
-
|
|
181
|
+
onCompositionEnd: function onCompositionEnd(e) {
|
|
182
|
+
var _props$onCompositionE;
|
|
183
|
+
composingRef.current = false;
|
|
184
|
+
(_props$onCompositionE = props.onCompositionEnd) === null || _props$onCompositionE === void 0 ? void 0 : _props$onCompositionE.call(props, e);
|
|
281
185
|
}
|
|
282
|
-
}), clearable && !
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
186
|
+
})), clearable && !readOnly && active && value.length > 0 ? React__default.createElement("span", {
|
|
187
|
+
style: {
|
|
188
|
+
display: "flex",
|
|
189
|
+
alignItems: "center"
|
|
190
|
+
},
|
|
191
|
+
onClick: function onClick() {
|
|
192
|
+
if (!disabled) {
|
|
193
|
+
setValue("");
|
|
194
|
+
onClear && onClear("");
|
|
195
|
+
}
|
|
286
196
|
}
|
|
287
197
|
}, clearIcon || React__default.createElement(MaskClose, {
|
|
288
198
|
className: "nut-input-clear"
|
|
289
|
-
})) : null)
|
|
290
|
-
className: "nut-input-right-icon",
|
|
291
|
-
onClick: function onClick(e) {
|
|
292
|
-
handleClickRightIcon(e);
|
|
293
|
-
}
|
|
294
|
-
}, rightIcon) : null, slotButton ? React__default.createElement("div", {
|
|
295
|
-
className: "nut-input-button"
|
|
296
|
-
}, slotButton) : null, showWordLimit && maxlength ? React__default.createElement("div", {
|
|
297
|
-
className: "nut-input-word-limit"
|
|
298
|
-
}, React__default.createElement("span", {
|
|
299
|
-
className: "nut-input-word-num"
|
|
300
|
-
}, inputValue ? inputValue.length : 0), "/", maxlength) : null), errorMessage ? React__default.createElement("div", {
|
|
301
|
-
className: "nut-input-error-message",
|
|
302
|
-
style: {
|
|
303
|
-
textAlign: errorMessageAlign
|
|
304
|
-
}
|
|
305
|
-
}, errorMessage) : React__default.createElement("div", null))));
|
|
199
|
+
})) : null);
|
|
306
200
|
});
|
|
307
201
|
Input.defaultProps = defaultProps;
|
|
308
202
|
Input.displayName = "NutInput";
|
package/dist/esm/Menu.js
CHANGED
|
@@ -2,7 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
var _excluded = ["className", "
|
|
5
|
+
var _excluded = ["className", "icon", "scrollFixed", "lockScroll", "closeOnOverlayClick", "children", "activeColor"];
|
|
6
6
|
function ownKeys(object, enumerableOnly) {
|
|
7
7
|
var keys = Object.keys(object);
|
|
8
8
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -29,17 +29,15 @@ import classNames from "classnames";
|
|
|
29
29
|
import { ArrowUp2, ArrowDown2 } from "@nutui/icons-react";
|
|
30
30
|
import { C as ComponentDefaults } from "./typings.js";
|
|
31
31
|
var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
|
|
32
|
-
className: "",
|
|
33
|
-
style: {},
|
|
34
32
|
activeColor: "",
|
|
35
|
-
|
|
33
|
+
closeOnOverlayClick: true,
|
|
36
34
|
scrollFixed: false,
|
|
37
35
|
lockScroll: true,
|
|
38
|
-
|
|
36
|
+
icon: null
|
|
39
37
|
});
|
|
40
38
|
var Menu = function Menu2(props) {
|
|
41
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className,
|
|
42
|
-
var
|
|
39
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, icon = _defaultProps$props.icon, scrollFixed = _defaultProps$props.scrollFixed, lockScroll = _defaultProps$props.lockScroll, closeOnOverlayClick = _defaultProps$props.closeOnOverlayClick, children = _defaultProps$props.children, activeColor = _defaultProps$props.activeColor, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
40
|
+
var menuRef = useRef(null);
|
|
43
41
|
var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isScrollFixed = _useState2[0], setIsScrollFixed = _useState2[1];
|
|
44
42
|
var getScrollTop = function getScrollTop2(el) {
|
|
45
43
|
return Math.max(0, "scrollTop" in el ? el.scrollTop : el.pageYOffset);
|
|
@@ -58,92 +56,96 @@ var Menu = function Menu2(props) {
|
|
|
58
56
|
return window.removeEventListener("scroll", onScroll);
|
|
59
57
|
};
|
|
60
58
|
}, []);
|
|
61
|
-
var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2),
|
|
62
|
-
var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2),
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
var temp =
|
|
59
|
+
var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2), showMenuItem = _useState4[0], setShowMenuItem = _useState4[1];
|
|
60
|
+
var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), menuItemTitle = _useState6[0], setMenuItemTitle = _useState6[1];
|
|
61
|
+
var toggleMenuItem = function toggleMenuItem2(index) {
|
|
62
|
+
showMenuItem[index] = !showMenuItem[index];
|
|
63
|
+
var temp = showMenuItem.map(function(i, idx) {
|
|
66
64
|
return idx === index ? i : false;
|
|
67
65
|
});
|
|
68
|
-
|
|
66
|
+
setShowMenuItem(_toConsumableArray(temp));
|
|
69
67
|
};
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
var hideMenuItem = function hideMenuItem2(index) {
|
|
69
|
+
showMenuItem[index] = false;
|
|
70
|
+
setShowMenuItem(_toConsumableArray(showMenuItem));
|
|
73
71
|
};
|
|
74
72
|
var updateTitle = function updateTitle2(text, index) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
var parent = function parent2() {
|
|
79
|
-
return parentRef;
|
|
73
|
+
menuItemTitle[index] = text;
|
|
74
|
+
setMenuItemTitle(_toConsumableArray(menuItemTitle));
|
|
80
75
|
};
|
|
81
76
|
var cloneChildren = function cloneChildren2() {
|
|
82
77
|
return React__default.Children.map(children, function(child, index) {
|
|
83
78
|
return React__default.cloneElement(child, {
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
show: showMenuItem[index],
|
|
80
|
+
index,
|
|
86
81
|
activeColor,
|
|
87
82
|
parent: {
|
|
88
|
-
|
|
83
|
+
closeOnOverlayClick,
|
|
89
84
|
lockScroll,
|
|
90
|
-
|
|
85
|
+
toggleMenuItem,
|
|
91
86
|
updateTitle,
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
hideMenuItem,
|
|
88
|
+
menuRef
|
|
94
89
|
}
|
|
95
90
|
});
|
|
96
91
|
});
|
|
97
92
|
};
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
var menuTitle = function menuTitle2() {
|
|
94
|
+
return React__default.Children.map(children, function(child, index) {
|
|
95
|
+
if (React__default.isValidElement(child)) {
|
|
96
|
+
var _child$props = child.props, title = _child$props.title, options = _child$props.options, value = _child$props.value, disabled = _child$props.disabled, direction = _child$props.direction;
|
|
97
|
+
var selected = options === null || options === void 0 ? void 0 : options.filter(function(option) {
|
|
98
|
+
return option.value === value;
|
|
99
|
+
});
|
|
100
|
+
var finallyTitle = function finallyTitle2() {
|
|
101
|
+
if (title)
|
|
102
|
+
return title;
|
|
103
|
+
if (menuItemTitle && menuItemTitle[index])
|
|
104
|
+
return menuItemTitle[index];
|
|
105
|
+
if (selected && selected.length && selected[0].text)
|
|
106
|
+
return selected[0].text;
|
|
107
|
+
return "";
|
|
108
|
+
};
|
|
109
|
+
return React__default.createElement("div", {
|
|
110
|
+
className: classNames("nut-menu__item ", className, {
|
|
111
|
+
active: showMenuItem[index],
|
|
112
|
+
disabled
|
|
113
|
+
}),
|
|
114
|
+
style: {
|
|
115
|
+
color: showMenuItem[index] ? activeColor : ""
|
|
116
|
+
},
|
|
117
|
+
key: index,
|
|
118
|
+
onClick: function onClick() {
|
|
119
|
+
!disabled && toggleMenuItem(index);
|
|
120
|
+
}
|
|
121
|
+
}, React__default.createElement("div", {
|
|
122
|
+
className: classNames("nut-menu__title ", {
|
|
123
|
+
active: showMenuItem[index],
|
|
124
|
+
disabled
|
|
125
|
+
})
|
|
126
|
+
}, React__default.createElement("div", {
|
|
127
|
+
className: "nut-menu__title-text"
|
|
128
|
+
}, finallyTitle()), icon || (direction === "up" ? React__default.createElement(ArrowUp2, {
|
|
129
|
+
className: "nut-menu__title-icon"
|
|
130
|
+
}) : React__default.createElement(ArrowDown2, {
|
|
131
|
+
className: "nut-menu__title-icon"
|
|
132
|
+
}))));
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
return React__default.createElement("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
138
|
+
className: classNames("nut-menu", className, {
|
|
139
|
+
"scroll-fixed": isScrollFixed
|
|
140
|
+
}),
|
|
141
|
+
ref: menuRef
|
|
102
142
|
}), React__default.createElement("div", {
|
|
103
143
|
className: "nut-menu-relative"
|
|
104
144
|
}, React__default.createElement("div", {
|
|
105
|
-
className: "nut-menu__bar
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
var _child$props = child.props, disabled = _child$props.disabled, title = _child$props.title, value = _child$props.value, direction = _child$props.direction, options = _child$props.options, className2 = _child$props.className;
|
|
110
|
-
var currentTitle = options === null || options === void 0 ? void 0 : options.filter(function(option) {
|
|
111
|
-
return option.value === value;
|
|
112
|
-
});
|
|
113
|
-
function finallyTitle() {
|
|
114
|
-
if (title)
|
|
115
|
-
return title;
|
|
116
|
-
if (itemTitle && itemTitle[index])
|
|
117
|
-
return itemTitle[index];
|
|
118
|
-
if (currentTitle && currentTitle[0] && currentTitle[0].text)
|
|
119
|
-
return currentTitle[0].text;
|
|
120
|
-
return "";
|
|
121
|
-
}
|
|
122
|
-
return React__default.createElement("div", {
|
|
123
|
-
className: "nut-menu__item ".concat(classNames({
|
|
124
|
-
active: itemShow[index],
|
|
125
|
-
disabled
|
|
126
|
-
}), " ").concat(className2),
|
|
127
|
-
style: {
|
|
128
|
-
color: itemShow[index] ? activeColor : ""
|
|
129
|
-
},
|
|
130
|
-
key: index,
|
|
131
|
-
onClick: function onClick() {
|
|
132
|
-
!disabled && toggleItemShow(index);
|
|
133
|
-
}
|
|
134
|
-
}, React__default.createElement("div", {
|
|
135
|
-
className: "nut-menu__title ".concat(classNames({
|
|
136
|
-
active: itemShow[index],
|
|
137
|
-
disabled
|
|
138
|
-
}))
|
|
139
|
-
}, React__default.createElement("div", {
|
|
140
|
-
className: "nut-menu__title-text"
|
|
141
|
-
}, finallyTitle()), titleIcon || React__default.createElement(React__default.Fragment, null, direction === "up" ? React__default.createElement(ArrowUp2, {
|
|
142
|
-
className: "nut-menu__title-icon"
|
|
143
|
-
}) : React__default.createElement(ArrowDown2, {
|
|
144
|
-
className: "nut-menu__title-icon"
|
|
145
|
-
}))));
|
|
146
|
-
})), cloneChildren()));
|
|
145
|
+
className: classNames("nut-menu__bar", {
|
|
146
|
+
opened: showMenuItem.includes(true)
|
|
147
|
+
})
|
|
148
|
+
}, menuTitle()), cloneChildren()));
|
|
147
149
|
};
|
|
148
150
|
Menu.defaultProps = defaultProps;
|
|
149
151
|
Menu.displayName = "NutMenu";
|