@nutui/nutui-react 3.0.11 → 3.0.12

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.
Files changed (134) hide show
  1. package/CHANGELOG.md +20 -7
  2. package/dist/cjs/packages/address/style/address.scss +114 -0
  3. package/dist/cjs/packages/address/style/style.css +103 -0
  4. package/dist/cjs/packages/address/style-jmapp/address.scss +114 -0
  5. package/dist/cjs/packages/address/style-jmapp/style.css +103 -0
  6. package/dist/cjs/packages/address/style-jrkf/address.scss +114 -0
  7. package/dist/cjs/packages/address/style-jrkf/style.css +103 -0
  8. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  9. package/dist/cjs/packages/elevator/style/css.js +0 -2
  10. package/dist/cjs/packages/elevator/style/elevator.scss +116 -95
  11. package/dist/cjs/packages/elevator/style/index.js +0 -2
  12. package/dist/cjs/packages/elevator/style/style.css +98 -83
  13. package/dist/cjs/packages/elevator/style-jmapp/css.js +0 -2
  14. package/dist/cjs/packages/elevator/style-jmapp/elevator.scss +116 -95
  15. package/dist/cjs/packages/elevator/style-jmapp/index.js +0 -2
  16. package/dist/cjs/packages/elevator/style-jmapp/style.css +98 -83
  17. package/dist/cjs/packages/elevator/style-jrkf/css.js +0 -2
  18. package/dist/cjs/packages/elevator/style-jrkf/elevator.scss +116 -95
  19. package/dist/cjs/packages/elevator/style-jrkf/index.js +0 -2
  20. package/dist/cjs/packages/elevator/style-jrkf/style.css +98 -83
  21. package/dist/cjs/packages/progress/progress.js +38 -17
  22. package/dist/cjs/packages/progress/style/progress.scss +5 -21
  23. package/dist/cjs/packages/progress/style/style.css +5 -19
  24. package/dist/cjs/packages/progress/style-jmapp/progress.scss +5 -21
  25. package/dist/cjs/packages/progress/style-jmapp/style.css +4 -18
  26. package/dist/cjs/packages/progress/style-jrkf/progress.scss +5 -21
  27. package/dist/cjs/packages/progress/style-jrkf/style.css +4 -18
  28. package/dist/cjs/packages/range/range.js +5 -11
  29. package/dist/cjs/packages/range/style/range.scss +6 -2
  30. package/dist/cjs/packages/range/style/style.css +3 -1
  31. package/dist/cjs/packages/range/style-jmapp/range.scss +6 -2
  32. package/dist/cjs/packages/range/style-jmapp/style.css +3 -1
  33. package/dist/cjs/packages/range/style-jrkf/range.scss +6 -2
  34. package/dist/cjs/packages/range/style-jrkf/style.css +3 -1
  35. package/dist/cjs/packages/range/utils.d.ts +3 -0
  36. package/dist/cjs/packages/range/utils.js +24 -0
  37. package/dist/cjs/packages/searchbar/searchbar.js +162 -87
  38. package/dist/cjs/packages/searchbar/style/searchbar.scss +99 -25
  39. package/dist/cjs/packages/searchbar/style/style.css +102 -38
  40. package/dist/cjs/packages/searchbar/style-jmapp/searchbar.scss +99 -25
  41. package/dist/cjs/packages/searchbar/style-jmapp/style.css +85 -21
  42. package/dist/cjs/packages/searchbar/style-jrkf/searchbar.scss +99 -25
  43. package/dist/cjs/packages/searchbar/style-jrkf/style.css +85 -21
  44. package/dist/cjs/packages/step/step.js +74 -33
  45. package/dist/cjs/packages/step/style/step.scss +104 -195
  46. package/dist/cjs/packages/step/style/style.css +85 -159
  47. package/dist/cjs/packages/step/style-jmapp/step.scss +104 -195
  48. package/dist/cjs/packages/step/style-jmapp/style.css +88 -162
  49. package/dist/cjs/packages/step/style-jrkf/step.scss +104 -195
  50. package/dist/cjs/packages/step/style-jrkf/style.css +88 -162
  51. package/dist/cjs/packages/steps/steps.js +23 -8
  52. package/dist/cjs/packages/steps/style/steps.scss +328 -4
  53. package/dist/cjs/packages/steps/style/style.css +219 -2
  54. package/dist/cjs/packages/steps/style-jmapp/steps.scss +328 -4
  55. package/dist/cjs/packages/steps/style-jmapp/style.css +219 -2
  56. package/dist/cjs/packages/steps/style-jrkf/steps.scss +328 -4
  57. package/dist/cjs/packages/steps/style-jrkf/style.css +219 -2
  58. package/dist/cjs/packages/uploader/uploader.js +20 -9
  59. package/dist/cjs/types/spec/progress/base.d.ts +6 -0
  60. package/dist/cjs/types/spec/progress/taro.d.ts +4 -0
  61. package/dist/cjs/types/spec/searchbar/base.d.ts +3 -0
  62. package/dist/cjs/types/spec/steps/base.d.ts +11 -2
  63. package/dist/es/packages/address/style/address.scss +114 -0
  64. package/dist/es/packages/address/style/style.css +103 -0
  65. package/dist/es/packages/address/style-jmapp/address.scss +114 -0
  66. package/dist/es/packages/address/style-jmapp/style.css +103 -0
  67. package/dist/es/packages/address/style-jrkf/address.scss +114 -0
  68. package/dist/es/packages/address/style-jrkf/style.css +103 -0
  69. package/dist/es/packages/configprovider/types.d.ts +1 -1
  70. package/dist/es/packages/elevator/style/css.js +0 -2
  71. package/dist/es/packages/elevator/style/elevator.scss +116 -95
  72. package/dist/es/packages/elevator/style/index.js +0 -2
  73. package/dist/es/packages/elevator/style/style.css +98 -83
  74. package/dist/es/packages/elevator/style-jmapp/css.js +0 -2
  75. package/dist/es/packages/elevator/style-jmapp/elevator.scss +116 -95
  76. package/dist/es/packages/elevator/style-jmapp/index.js +0 -2
  77. package/dist/es/packages/elevator/style-jmapp/style.css +98 -83
  78. package/dist/es/packages/elevator/style-jrkf/css.js +0 -2
  79. package/dist/es/packages/elevator/style-jrkf/elevator.scss +116 -95
  80. package/dist/es/packages/elevator/style-jrkf/index.js +0 -2
  81. package/dist/es/packages/elevator/style-jrkf/style.css +98 -83
  82. package/dist/es/packages/progress/progress.js +38 -17
  83. package/dist/es/packages/progress/style/progress.scss +5 -21
  84. package/dist/es/packages/progress/style/style.css +5 -19
  85. package/dist/es/packages/progress/style-jmapp/progress.scss +5 -21
  86. package/dist/es/packages/progress/style-jmapp/style.css +4 -18
  87. package/dist/es/packages/progress/style-jrkf/progress.scss +5 -21
  88. package/dist/es/packages/progress/style-jrkf/style.css +4 -18
  89. package/dist/es/packages/range/range.js +5 -11
  90. package/dist/es/packages/range/style/range.scss +6 -2
  91. package/dist/es/packages/range/style/style.css +3 -1
  92. package/dist/es/packages/range/style-jmapp/range.scss +6 -2
  93. package/dist/es/packages/range/style-jmapp/style.css +3 -1
  94. package/dist/es/packages/range/style-jrkf/range.scss +6 -2
  95. package/dist/es/packages/range/style-jrkf/style.css +3 -1
  96. package/dist/es/packages/range/utils.d.ts +3 -0
  97. package/dist/es/packages/range/utils.js +6 -0
  98. package/dist/es/packages/searchbar/searchbar.js +163 -89
  99. package/dist/es/packages/searchbar/style/searchbar.scss +99 -25
  100. package/dist/es/packages/searchbar/style/style.css +102 -38
  101. package/dist/es/packages/searchbar/style-jmapp/searchbar.scss +99 -25
  102. package/dist/es/packages/searchbar/style-jmapp/style.css +85 -21
  103. package/dist/es/packages/searchbar/style-jrkf/searchbar.scss +99 -25
  104. package/dist/es/packages/searchbar/style-jrkf/style.css +85 -21
  105. package/dist/es/packages/step/step.js +75 -34
  106. package/dist/es/packages/step/style/step.scss +104 -195
  107. package/dist/es/packages/step/style/style.css +85 -159
  108. package/dist/es/packages/step/style-jmapp/step.scss +104 -195
  109. package/dist/es/packages/step/style-jmapp/style.css +88 -162
  110. package/dist/es/packages/step/style-jrkf/step.scss +104 -195
  111. package/dist/es/packages/step/style-jrkf/style.css +88 -162
  112. package/dist/es/packages/steps/steps.js +23 -8
  113. package/dist/es/packages/steps/style/steps.scss +328 -4
  114. package/dist/es/packages/steps/style/style.css +219 -2
  115. package/dist/es/packages/steps/style-jmapp/steps.scss +328 -4
  116. package/dist/es/packages/steps/style-jmapp/style.css +219 -2
  117. package/dist/es/packages/steps/style-jrkf/steps.scss +328 -4
  118. package/dist/es/packages/steps/style-jrkf/style.css +219 -2
  119. package/dist/es/packages/uploader/uploader.js +20 -9
  120. package/dist/es/types/spec/progress/base.d.ts +24 -0
  121. package/dist/es/types/spec/progress/taro.d.ts +4 -0
  122. package/dist/es/types/spec/searchbar/base.d.ts +10 -1
  123. package/dist/es/types/spec/steps/base.d.ts +26 -5
  124. package/dist/nutui.react.umd.js +317 -167
  125. package/dist/style-jmapp.css +1 -1
  126. package/dist/style-jmapp.scss +44 -44
  127. package/dist/style-jrkf.css +1 -1
  128. package/dist/style-jrkf.scss +46 -46
  129. package/dist/style.css +1 -1
  130. package/dist/style.scss +37 -37
  131. package/dist/styles/variables-jmapp.scss +133 -79
  132. package/dist/styles/variables-jrkf.scss +134 -80
  133. package/dist/styles/variables.scss +148 -89
  134. package/package.json +1 -1
@@ -46,7 +46,10 @@
46
46
  max-height: 100%;
47
47
  background: $range-active-color;
48
48
  border-radius: 2px;
49
- transition: all 0.2s;
49
+
50
+ &-animate {
51
+ transition: all 0.2s;
52
+ }
50
53
  }
51
54
 
52
55
  &-button {
@@ -204,7 +207,8 @@
204
207
  position: absolute;
205
208
  width: 36px;
206
209
  height: 100%;
207
- top: initial;
210
+ // top: initial;
211
+ top: 0px;
208
212
  right: 50%;
209
213
  overflow: visible;
210
214
  font-size: 12px;
@@ -45,6 +45,8 @@
45
45
  max-height: 100%;
46
46
  background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff6666));
47
47
  border-radius: 2px;
48
+ }
49
+ .nut-range-bar-animate {
48
50
  transition: all 0.2s;
49
51
  }
50
52
  .nut-range-button {
@@ -173,7 +175,7 @@
173
175
  position: absolute;
174
176
  width: 36px;
175
177
  height: 100%;
176
- top: initial;
178
+ top: 0px;
177
179
  right: 50%;
178
180
  overflow: visible;
179
181
  font-size: 12px;
@@ -0,0 +1,3 @@
1
+ import { RangeValue } from "../../types";
2
+ export declare const isSameValue: (newValue: RangeValue, oldValue: RangeValue) => boolean;
3
+ export declare const handleOverlap: (value: number[]) => number[];
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ handleOverlap: function() {
13
+ return handleOverlap;
14
+ },
15
+ isSameValue: function() {
16
+ return isSameValue;
17
+ }
18
+ });
19
+ var isSameValue = function isSameValue(newValue, oldValue) {
20
+ return JSON.stringify(newValue) === JSON.stringify(oldValue);
21
+ };
22
+ var handleOverlap = function handleOverlap(value) {
23
+ return value[0] > value[1] ? value.slice(0).reverse() : value;
24
+ };
@@ -8,14 +8,18 @@ Object.defineProperty(exports, "SearchBar", {
8
8
  return SearchBar;
9
9
  }
10
10
  });
11
+ var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
11
12
  var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
+ var _define_property = require("@swc/helpers/_/_define_property");
12
14
  var _object_spread = require("@swc/helpers/_/_object_spread");
13
15
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
14
16
  var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
15
17
  var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
16
18
  var _iconsreact = require("@nutui/icons-react");
19
+ var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
17
20
  var _configprovider = require("../configprovider");
18
21
  var _typings = require("../../utils/typings");
22
+ var _usepropsvalue = require("../../hooks/use-props-value");
19
23
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
20
24
  placeholder: '',
21
25
  shape: 'square',
@@ -28,133 +32,204 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
28
32
  left: '',
29
33
  right: '',
30
34
  rightIn: '',
31
- leftIn: /*#__PURE__*/ _react.default.createElement(_iconsreact.Search, {
32
- width: "16",
33
- height: "16"
34
- })
35
+ leftIn: /*#__PURE__*/ _react.default.createElement(_iconsreact.Search, null),
36
+ tag: false
35
37
  });
36
38
  var SearchBar = function SearchBar(props) {
37
39
  var classPrefix = 'nut-searchbar';
38
40
  var locale = (0, _configprovider.useConfig)().locale;
39
- var searchRef = (0, _react.useRef)(null);
40
- var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), outerValue = _$_object_spread.value, style = _$_object_spread.style, placeholder = _$_object_spread.placeholder, shape = _$_object_spread.shape, className = _$_object_spread.className, disabled = _$_object_spread.disabled, maxLength = _$_object_spread.maxLength, clearable = _$_object_spread.clearable, readOnly = _$_object_spread.readOnly, autoFocus = _$_object_spread.autoFocus, backable = _$_object_spread.backable, right = _$_object_spread.right, left = _$_object_spread.left, leftIn = _$_object_spread.leftIn, rightIn = _$_object_spread.rightIn, onChange = _$_object_spread.onChange, onFocus = _$_object_spread.onFocus, onBlur = _$_object_spread.onBlur, onClear = _$_object_spread.onClear, onSearch = _$_object_spread.onSearch, onInputClick = _$_object_spread.onInputClick;
41
- var _useState = (0, _sliced_to_array._)((0, _react.useState)(function() {
42
- return outerValue;
43
- }), 2), value = _useState[0], setValue = _useState[1];
44
- var forceFocus = function forceFocus() {
45
- var searchSelf = searchRef.current;
46
- searchSelf && searchSelf.focus();
47
- };
48
- var change = function change(event) {
41
+ var searchInputRef = (0, _react.useRef)(null);
42
+ var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), outerValue = _$_object_spread.value, defaultValue = _$_object_spread.defaultValue, style = _$_object_spread.style, placeholder = _$_object_spread.placeholder, shape = _$_object_spread.shape, className = _$_object_spread.className, disabled = _$_object_spread.disabled, maxLength = _$_object_spread.maxLength, clearable = _$_object_spread.clearable, readOnly = _$_object_spread.readOnly, autoFocus = _$_object_spread.autoFocus, backable = _$_object_spread.backable, right = _$_object_spread.right, left = _$_object_spread.left, leftIn = _$_object_spread.leftIn, rightIn = _$_object_spread.rightIn, tag = _$_object_spread.tag, onChange = _$_object_spread.onChange, onFocus = _$_object_spread.onFocus, onBlur = _$_object_spread.onBlur, onClear = _$_object_spread.onClear, onSearch = _$_object_spread.onSearch, onInputClick = _$_object_spread.onInputClick, onItemClick = _$_object_spread.onItemClick;
43
+ var _usePropsValue = (0, _sliced_to_array._)((0, _usepropsvalue.usePropsValue)({
44
+ value: outerValue,
45
+ defaultValue: defaultValue,
46
+ finalValue: ''
47
+ }), 2), value = _usePropsValue[0], setValue = _usePropsValue[1];
48
+ var _useState = (0, _sliced_to_array._)((0, _react.useState)(tag), 2), innerTag = _useState[0], setInnerTag = _useState[1];
49
+ var forceFocus = (0, _react.useCallback)(function() {
50
+ var _searchInputRef_current;
51
+ (_searchInputRef_current = searchInputRef.current) === null || _searchInputRef_current === void 0 ? void 0 : _searchInputRef_current.focus();
52
+ }, []);
53
+ var handleChange = (0, _react.useCallback)(function(event) {
49
54
  var value = event.target.value;
50
- onChange && (onChange === null || onChange === void 0 ? void 0 : onChange(value, event));
55
+ onChange && onChange(value, event);
51
56
  setValue(value);
52
- };
53
- var focus = function focus(event) {
54
- var value = event.target.value;
55
- onFocus && (onFocus === null || onFocus === void 0 ? void 0 : onFocus(value, event));
56
- };
57
- var blur = function blur(event) {
58
- var searchSelf = searchRef.current;
59
- searchSelf && searchSelf.blur();
60
- var value = event.target.value;
61
- onBlur && (onBlur === null || onBlur === void 0 ? void 0 : onBlur(value, event));
62
- };
57
+ }, [
58
+ onChange,
59
+ setValue
60
+ ]);
61
+ var handleInputClick = (0, _react.useCallback)(function(event) {
62
+ onInputClick === null || onInputClick === void 0 ? void 0 : onInputClick(event);
63
+ }, [
64
+ onInputClick
65
+ ]);
66
+ var handleFocus = (0, _react.useCallback)(function(event) {
67
+ var _event_target;
68
+ onFocus && onFocus((_event_target = event.target) === null || _event_target === void 0 ? void 0 : _event_target.value, event);
69
+ if (tag) setInnerTag(false);
70
+ }, [
71
+ onFocus,
72
+ tag
73
+ ]);
74
+ var _useState1 = (0, _sliced_to_array._)((0, _react.useState)(null), 2), blurTimer = _useState1[0], setBlurTimer = _useState1[1];
75
+ var handleBlur = (0, _react.useCallback)(function(event) {
76
+ var _searchInputRef_current, _event_target;
77
+ (_searchInputRef_current = searchInputRef.current) === null || _searchInputRef_current === void 0 ? void 0 : _searchInputRef_current.blur();
78
+ onBlur && onBlur((_event_target = event.target) === null || _event_target === void 0 ? void 0 : _event_target.value, event);
79
+ if (tag) {
80
+ var timer = setTimeout(function() {
81
+ var _event_target;
82
+ setInnerTag(((_event_target = event.target) === null || _event_target === void 0 ? void 0 : _event_target.value) ? tag : false);
83
+ }, 150);
84
+ setBlurTimer(timer);
85
+ }
86
+ }, [
87
+ onBlur,
88
+ tag
89
+ ]);
63
90
  (0, _react.useEffect)(function() {
64
- setValue(outerValue);
91
+ return function() {
92
+ if (blurTimer) clearTimeout(blurTimer);
93
+ };
94
+ }, [
95
+ blurTimer
96
+ ]);
97
+ var clearaVal = (0, _react.useCallback)(function(event) {
98
+ if (disabled || readOnly) return;
99
+ setValue('');
100
+ forceFocus();
101
+ onChange && onChange('');
102
+ onClear && onClear(event);
65
103
  }, [
66
- outerValue
104
+ disabled,
105
+ readOnly,
106
+ onChange,
107
+ onClear,
108
+ setValue,
109
+ forceFocus
110
+ ]);
111
+ var onKeydown = (0, _react.useCallback)(function(e) {
112
+ if (e.key === 'Enter') {
113
+ var event = e.nativeEvent;
114
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
115
+ event.preventDefault();
116
+ }
117
+ onSearch && onSearch(value);
118
+ }
119
+ }, [
120
+ onSearch,
121
+ value
122
+ ]);
123
+ var cls = (0, _react.useMemo)(function() {
124
+ var _obj;
125
+ return (0, _classnames.default)(classPrefix, (_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-disabled"), disabled), (0, _define_property._)(_obj, "".concat(classPrefix, "-focus"), left || backable), _obj), className);
126
+ }, [
127
+ disabled,
128
+ backable,
129
+ left,
130
+ className
67
131
  ]);
68
132
  (0, _react.useEffect)(function() {
69
- autoFocus && forceFocus();
133
+ if (autoFocus) {
134
+ forceFocus();
135
+ }
70
136
  }, [
71
- autoFocus
137
+ autoFocus,
138
+ forceFocus
72
139
  ]);
73
140
  var renderField = function renderField() {
141
+ var inputCls = (0, _classnames.default)("".concat(classPrefix, "-input"));
74
142
  return /*#__PURE__*/ _react.default.createElement("input", {
75
- className: "".concat(classPrefix, "-input ").concat(clearable ? "".concat(classPrefix, "-input-clear") : ''),
76
- ref: searchRef,
143
+ className: inputCls,
144
+ ref: searchInputRef,
77
145
  value: value || '',
78
146
  placeholder: placeholder || locale.placeholder,
79
147
  disabled: disabled,
80
148
  readOnly: readOnly,
81
149
  maxLength: maxLength,
82
150
  onKeyDown: onKeydown,
83
- onChange: function onChange(e) {
84
- return change(e);
85
- },
86
- onFocus: function onFocus(e) {
87
- return focus(e);
88
- },
89
- onBlur: function onBlur(e) {
90
- return blur(e);
91
- },
92
- onClick: function onClick(e) {
93
- return clickInput(e);
94
- }
151
+ onChange: handleChange,
152
+ onFocus: handleFocus,
153
+ onBlur: handleBlur,
154
+ onClick: handleInputClick
95
155
  });
96
156
  };
97
- var clickInput = function clickInput(e) {
98
- onInputClick && onInputClick(e);
99
- };
100
- var renderLeftIn = function renderLeftIn() {
157
+ var renderValueByTags = (0, _react.useCallback)(function() {
158
+ if (!value) {
159
+ setTimeout(function() {
160
+ forceFocus();
161
+ }, 0);
162
+ return null;
163
+ }
164
+ var list = value.split(',');
165
+ if (!list) return null;
166
+ return /*#__PURE__*/ _react.default.createElement("div", {
167
+ className: "nut-searchbar-values"
168
+ }, list.map(function(item, index) {
169
+ return /*#__PURE__*/ _react.default.createElement("div", {
170
+ key: "def-".concat(index),
171
+ className: "nut-searchbar-value",
172
+ onClick: function onClick(e) {
173
+ return onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, e);
174
+ }
175
+ }, item, /*#__PURE__*/ _react.default.createElement(_iconsreact.Close, null));
176
+ }));
177
+ }, [
178
+ value,
179
+ onItemClick
180
+ ]);
181
+ var renderLeftIn = (0, _react.useCallback)(function() {
101
182
  if (!leftIn) return null;
102
183
  return /*#__PURE__*/ _react.default.createElement("div", {
103
184
  className: "".concat(classPrefix, "-leftin ").concat(classPrefix, "-icon")
104
185
  }, leftIn);
105
- };
106
- var renderLeft = function renderLeft() {
186
+ }, [
187
+ leftIn
188
+ ]);
189
+ var renderLeft = (0, _react.useCallback)(function() {
107
190
  if (!backable && !left) return null;
108
191
  return /*#__PURE__*/ _react.default.createElement("div", {
109
192
  className: "".concat(classPrefix, "-left")
110
- }, backable ? /*#__PURE__*/ _react.default.createElement(_iconsreact.ArrowLeft, {
111
- width: "16",
112
- height: "16"
113
- }) : left);
114
- };
115
- var renderRightIn = function renderRightIn() {
193
+ }, backable ? /*#__PURE__*/ _react.default.createElement(_iconsreact.ArrowLeft, null) : left);
194
+ }, [
195
+ backable,
196
+ left
197
+ ]);
198
+ var renderRightIn = (0, _react.useCallback)(function() {
116
199
  if (!rightIn) return null;
117
- return /*#__PURE__*/ _react.default.createElement("div", {
200
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.isValidElement(rightIn) ? /*#__PURE__*/ _react.default.createElement("div", {
118
201
  className: "".concat(classPrefix, "-rightin ").concat(classPrefix, "-icon")
119
- }, rightIn);
120
- };
121
- var renderRight = function renderRight() {
202
+ }, rightIn) : /*#__PURE__*/ _react.default.createElement("div", {
203
+ className: "".concat(classPrefix, "-rightin")
204
+ }, rightIn));
205
+ }, [
206
+ rightIn
207
+ ]);
208
+ var renderRight = (0, _react.useCallback)(function() {
122
209
  if (!right) return null;
123
210
  return /*#__PURE__*/ _react.default.createElement("div", {
124
211
  className: "".concat(classPrefix, "-right")
125
212
  }, right);
126
- };
127
- var handleClear = function handleClear() {
213
+ }, [
214
+ right
215
+ ]);
216
+ var renderClear = (0, _react.useCallback)(function() {
217
+ if (!value || !clearable) return null;
128
218
  return /*#__PURE__*/ _react.default.createElement("div", {
129
219
  className: "".concat(classPrefix, "-clear ").concat(classPrefix, "-icon"),
130
- onClick: function onClick(e) {
131
- return clearaVal(e);
132
- }
220
+ onClick: clearaVal,
221
+ "aria-label": "清除"
133
222
  }, /*#__PURE__*/ _react.default.createElement(_iconsreact.MaskClose, null));
134
- };
135
- var clearaVal = function clearaVal(event) {
136
- if (disabled || readOnly) {
137
- return;
138
- }
139
- setValue('');
140
- onChange && (onChange === null || onChange === void 0 ? void 0 : onChange(''));
141
- onClear && onClear(event);
142
- forceFocus();
143
- };
144
- var onKeydown = function onKeydown(e) {
145
- if (e.key === 'Enter') {
146
- var event = e.nativeEvent;
147
- if (typeof event.cancelable !== 'boolean' || event.cancelable) {
148
- event.preventDefault();
149
- }
150
- onSearch && onSearch(value);
151
- }
152
- };
223
+ }, [
224
+ value,
225
+ clearable,
226
+ clearaVal
227
+ ]);
153
228
  return /*#__PURE__*/ _react.default.createElement("div", {
154
- className: "".concat(classPrefix, " ").concat(disabled ? "".concat(classPrefix, "-disabled") : '', " ").concat(className || ''),
229
+ className: cls,
155
230
  style: style
156
231
  }, renderLeft(), /*#__PURE__*/ _react.default.createElement("div", {
157
- className: "".concat(classPrefix, "-content ").concat(shape === 'round' ? "".concat(classPrefix, "-round") : '')
158
- }, renderLeftIn(), renderField(), clearable && !value && renderRightIn(), clearable && value && handleClear()), renderRight());
232
+ className: (0, _classnames.default)("".concat(classPrefix, "-content"), (0, _define_property._)({}, "".concat(classPrefix, "-round"), shape === 'round'))
233
+ }, renderLeftIn(), renderField(), innerTag ? renderValueByTags() : renderClear(), renderRightIn()), renderRight());
159
234
  };
160
235
  SearchBar.displayName = 'NutSearchBar';
@@ -9,28 +9,114 @@
9
9
  box-sizing: border-box;
10
10
  justify-content: center;
11
11
 
12
+ .nut-icon {
13
+ width: $searchbar-icon-size;
14
+ height: $searchbar-icon-size;
15
+ font-size: $searchbar-icon-size;
16
+ }
17
+
12
18
  &-content {
19
+ position: relative;
13
20
  flex: 1;
14
21
  display: flex;
15
22
  align-items: center;
16
23
  justify-content: center;
17
- padding: $searchbar-content-padding;
24
+ padding: 0 $searchbar-gap;
18
25
  height: $searchbar-input-height;
19
26
  background: $searchbar-content-background;
20
27
  border-radius: $searchbar-content-border-radius;
28
+ border: 1px solid $color-primary;
21
29
  }
22
30
 
23
31
  &-icon {
24
32
  display: flex;
25
33
  justify-content: center;
26
34
  align-items: center;
35
+ color: $color-primary;
36
+ }
37
+
38
+ &-leftin {
39
+ margin-right: $searchbar-inner-gap;
27
40
  }
28
41
 
29
- &-clear,
30
42
  &-rightin {
31
- width: 16px;
32
- height: 16px;
33
- color: var(--nutui-black-5);
43
+ font-size: 15px;
44
+ font-weight: 500;
45
+ color: $color-primary;
46
+
47
+ &.nut-searchbar-icon {
48
+ color: var(--nutui-black-5);
49
+ }
50
+ }
51
+
52
+ &-input-box,
53
+ &-input {
54
+ display: flex;
55
+ align-items: center;
56
+ flex: 1;
57
+ }
58
+
59
+ &-input {
60
+ border: 0;
61
+ outline: 0;
62
+ box-sizing: border-box;
63
+ width: 100%;
64
+ padding: 0;
65
+ margin: 0;
66
+ font-size: $searchbar-font-size;
67
+ color: $searchbar-input-text-color;
68
+ caret-color: $searchbar-input-curror-color;
69
+ background: transparent;
70
+ text-align: $searchbar-input-text-align;
71
+ }
72
+
73
+ &-clear {
74
+ &.nut-searchbar-icon {
75
+ position: relative;
76
+ .nut-icon {
77
+ width: 12px;
78
+ height: 12px;
79
+ color: var(--nutui-black-5);
80
+ margin-right: $searchbar-inner-gap;
81
+ }
82
+ &::after {
83
+ content: '';
84
+ position: absolute;
85
+ width: 100%;
86
+ height: 200%;
87
+ left: -20%;
88
+ }
89
+ }
90
+ }
91
+
92
+ &-values {
93
+ position: absolute;
94
+ display: flex;
95
+ flex-direction: row;
96
+ z-index: 2;
97
+ background-color: #fff;
98
+ top: 9px;
99
+ left: 6px;
100
+ font-size: 12px;
101
+ line-height: 12px;
102
+
103
+ .nut-searchbar-value {
104
+ display: flex;
105
+ flex-direction: row;
106
+ align-items: center;
107
+ padding: 4px 8px;
108
+ background-color: #f7f8fc;
109
+ border-radius: 4px;
110
+ margin-right: 2px;
111
+ }
112
+
113
+ .nut-icon {
114
+ width: 6px;
115
+ height: 6px;
116
+ font-size: 6px;
117
+ color: #c2c4cc;
118
+ margin-left: 4px;
119
+ }
34
120
  }
35
121
 
36
122
  &-left,
@@ -93,26 +179,6 @@
93
179
  }
94
180
  }
95
181
 
96
- &-input-box,
97
- &-input {
98
- display: flex;
99
- align-items: center;
100
- flex: 1;
101
- }
102
-
103
- &-input {
104
- border: 0;
105
- outline: 0;
106
- box-sizing: border-box;
107
- width: 100%;
108
- padding: $searchbar-input-padding;
109
- font-size: $searchbar-font-size;
110
- color: $searchbar-input-text-color;
111
- caret-color: $searchbar-input-curror-color;
112
- background: transparent;
113
- text-align: $searchbar-input-text-align;
114
- }
115
-
116
182
  &-round {
117
183
  border-radius: $searchbar-content-round-border-radius;
118
184
  }
@@ -120,6 +186,14 @@
120
186
  &-disabled {
121
187
  cursor: not-allowed;
122
188
  }
189
+
190
+ &-focus {
191
+ padding: 5px $searchbar-gap;
192
+
193
+ .nut-searchbar-content {
194
+ border: 0.5px solid #ff5c67;
195
+ }
196
+ }
123
197
  }
124
198
 
125
199
  [dir='rtl'] .nut-searchbar,