@arco-design/mobile-react 2.22.2 → 2.23.0

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 (98) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/carousel/index.d.ts +6 -0
  5. package/cjs/carousel/index.js +6 -4
  6. package/cjs/image-picker/index.js +18 -12
  7. package/cjs/image-picker/type.d.ts +10 -0
  8. package/cjs/index.d.ts +1 -0
  9. package/cjs/index.js +5 -1
  10. package/cjs/input/style/css/index.css +1 -0
  11. package/cjs/input/style/index.less +1 -0
  12. package/cjs/stepper/demo/style/css/mobile.css +4 -0
  13. package/cjs/stepper/demo/style/mobile.less +10 -0
  14. package/cjs/stepper/hooks/useButtonClick.d.ts +11 -0
  15. package/cjs/stepper/hooks/useButtonClick.js +74 -0
  16. package/cjs/stepper/hooks/useInputEvent.d.ts +9 -0
  17. package/cjs/stepper/hooks/useInputEvent.js +59 -0
  18. package/cjs/stepper/hooks/useValue.d.ts +6 -0
  19. package/cjs/stepper/hooks/useValue.js +44 -0
  20. package/cjs/stepper/index.d.ts +13 -0
  21. package/cjs/stepper/index.js +184 -0
  22. package/cjs/stepper/style/css/index.css +76 -0
  23. package/cjs/stepper/style/css/index.d.ts +2 -0
  24. package/cjs/stepper/style/css/index.js +5 -0
  25. package/cjs/stepper/style/index.d.ts +2 -0
  26. package/cjs/stepper/style/index.js +5 -0
  27. package/cjs/stepper/style/index.less +80 -0
  28. package/cjs/stepper/type.d.ts +159 -0
  29. package/cjs/stepper/type.js +3 -0
  30. package/cjs/style.d.ts +1 -0
  31. package/cjs/style.js +2 -0
  32. package/dist/index.js +439 -98
  33. package/dist/index.min.js +4 -4
  34. package/dist/style.css +64 -0
  35. package/dist/style.min.css +1 -1
  36. package/esm/carousel/index.d.ts +6 -0
  37. package/esm/carousel/index.js +6 -4
  38. package/esm/image-picker/index.js +18 -12
  39. package/esm/image-picker/type.d.ts +10 -0
  40. package/esm/index.d.ts +1 -0
  41. package/esm/index.js +1 -0
  42. package/esm/input/style/css/index.css +1 -0
  43. package/esm/input/style/index.less +1 -0
  44. package/esm/stepper/demo/style/css/mobile.css +4 -0
  45. package/esm/stepper/demo/style/mobile.less +10 -0
  46. package/esm/stepper/hooks/useButtonClick.d.ts +11 -0
  47. package/esm/stepper/hooks/useButtonClick.js +69 -0
  48. package/esm/stepper/hooks/useInputEvent.d.ts +9 -0
  49. package/esm/stepper/hooks/useInputEvent.js +53 -0
  50. package/esm/stepper/hooks/useValue.d.ts +6 -0
  51. package/esm/stepper/hooks/useValue.js +38 -0
  52. package/esm/stepper/index.d.ts +13 -0
  53. package/esm/stepper/index.js +157 -0
  54. package/esm/stepper/style/css/index.css +76 -0
  55. package/esm/stepper/style/css/index.d.ts +2 -0
  56. package/esm/stepper/style/css/index.js +2 -0
  57. package/esm/stepper/style/index.d.ts +2 -0
  58. package/esm/stepper/style/index.js +2 -0
  59. package/esm/stepper/style/index.less +80 -0
  60. package/esm/stepper/type.d.ts +159 -0
  61. package/esm/stepper/type.js +1 -0
  62. package/esm/style.d.ts +1 -0
  63. package/esm/style.js +1 -0
  64. package/package.json +3 -3
  65. package/tokens/app/arcodesign/default/css-variables.less +15 -0
  66. package/tokens/app/arcodesign/default/index.d.ts +15 -0
  67. package/tokens/app/arcodesign/default/index.js +16 -1
  68. package/tokens/app/arcodesign/default/index.json +180 -0
  69. package/tokens/app/arcodesign/default/index.less +15 -0
  70. package/tools/flexible.js +82 -63
  71. package/umd/carousel/index.d.ts +6 -0
  72. package/umd/carousel/index.js +6 -4
  73. package/umd/image-picker/index.js +18 -12
  74. package/umd/image-picker/type.d.ts +10 -0
  75. package/umd/index.d.ts +1 -0
  76. package/umd/index.js +7 -5
  77. package/umd/input/style/css/index.css +1 -0
  78. package/umd/input/style/index.less +1 -0
  79. package/umd/stepper/demo/style/css/mobile.css +4 -0
  80. package/umd/stepper/demo/style/mobile.less +10 -0
  81. package/umd/stepper/hooks/useButtonClick.d.ts +11 -0
  82. package/umd/stepper/hooks/useButtonClick.js +86 -0
  83. package/umd/stepper/hooks/useInputEvent.d.ts +9 -0
  84. package/umd/stepper/hooks/useInputEvent.js +71 -0
  85. package/umd/stepper/hooks/useValue.d.ts +6 -0
  86. package/umd/stepper/hooks/useValue.js +56 -0
  87. package/umd/stepper/index.d.ts +13 -0
  88. package/umd/stepper/index.js +185 -0
  89. package/umd/stepper/style/css/index.css +76 -0
  90. package/umd/stepper/style/css/index.d.ts +2 -0
  91. package/umd/stepper/style/css/index.js +15 -0
  92. package/umd/stepper/style/index.d.ts +2 -0
  93. package/umd/stepper/style/index.js +15 -0
  94. package/umd/stepper/style/index.less +80 -0
  95. package/umd/stepper/type.d.ts +159 -0
  96. package/umd/stepper/type.js +17 -0
  97. package/umd/style.d.ts +1 -0
  98. package/umd/style.js +4 -4
@@ -56,7 +56,9 @@ var ImagePicker = /*#__PURE__*/forwardRef(function (props, ref) {
56
56
  onMaxSizeExceed = props.onMaxSizeExceed,
57
57
  onLimitExceed = props.onLimitExceed,
58
58
  upload = props.upload,
59
- selectAdapter = props.selectAdapter;
59
+ selectAdapter = props.selectAdapter,
60
+ onSelectClick = props.onSelectClick,
61
+ onDeleteClick = props.onDeleteClick;
60
62
  var domRef = useRef(null);
61
63
  var fileRef = useRef(null);
62
64
  var cacheRef = useRef([]);
@@ -157,6 +159,7 @@ var ImagePicker = /*#__PURE__*/forwardRef(function (props, ref) {
157
159
  };
158
160
 
159
161
  var handleDelete = function handleDelete(index) {
162
+ onDeleteClick && onDeleteClick(index);
160
163
  onChange(images.filter(function (_i, j) {
161
164
  return j !== index;
162
165
  }));
@@ -180,17 +183,20 @@ var ImagePicker = /*#__PURE__*/forwardRef(function (props, ref) {
180
183
  }
181
184
  };
182
185
 
183
- var handleSelect = function handleSelect() {
184
- var _fileRef$current;
185
-
186
- selectAdapter ? selectAdapter().then(function (_ref4) {
187
- var files = _ref4.files;
188
- return handleChange({
189
- target: {
190
- files: files
191
- }
192
- }, true);
193
- }) : (_fileRef$current = fileRef.current) == null ? void 0 : _fileRef$current.click();
186
+ var handleSelect = function handleSelect(e) {
187
+ if (e.target !== fileRef.current) {
188
+ var _fileRef$current;
189
+
190
+ onSelectClick && onSelectClick();
191
+ selectAdapter ? selectAdapter().then(function (_ref4) {
192
+ var files = _ref4.files;
193
+ return handleChange({
194
+ target: {
195
+ files: files
196
+ }
197
+ }, true);
198
+ }) : (_fileRef$current = fileRef.current) == null ? void 0 : _fileRef$current.click();
199
+ }
194
200
  };
195
201
 
196
202
  var getGridData = function getGridData(prefixCls, locale) {
@@ -164,6 +164,16 @@ export interface ImagePickerProps {
164
164
  * @en Select Adaptor
165
165
  */
166
166
  selectAdapter?: () => Promise<SelectCallback>;
167
+ /**
168
+ * 选图点击事件
169
+ * @en Select Icon Click Event
170
+ */
171
+ onSelectClick?: () => void;
172
+ /**
173
+ * 删除点击事件
174
+ * @en Delete Icon Click Event
175
+ */
176
+ onDeleteClick?: (index: number) => void;
167
177
  }
168
178
  export interface ImagePickerRef {
169
179
  /**
package/esm/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export { default as Radio } from './radio';
42
42
  export { default as Rate } from './rate';
43
43
  export { default as Slider } from './slider';
44
44
  export { default as SearchBar } from './search-bar';
45
+ export { default as Stepper } from './stepper';
45
46
  export { default as Steps } from './steps';
46
47
  export { default as Sticky } from './sticky';
47
48
  export { default as SwipeAction } from './swipe-action';
package/esm/index.js CHANGED
@@ -42,6 +42,7 @@ export { default as Radio } from './radio';
42
42
  export { default as Rate } from './rate';
43
43
  export { default as Slider } from './slider';
44
44
  export { default as SearchBar } from './search-bar';
45
+ export { default as Stepper } from './stepper';
45
46
  export { default as Steps } from './steps';
46
47
  export { default as Sticky } from './sticky';
47
48
  export { default as SwipeAction } from './swipe-action';
@@ -124,6 +124,7 @@
124
124
  }
125
125
  .arco-input-clear {
126
126
  color: #c9cdd4 ;
127
+ font-size: 16PX ;
127
128
  }
128
129
  .arco-input {
129
130
  display: inline-block;
@@ -85,6 +85,7 @@
85
85
  }
86
86
  .@{prefix}-input-clear {
87
87
  .use-var(color, input-clear-icon-color);
88
+ .use-var(font-size, input-clear-icon-font-size);
88
89
  }
89
90
 
90
91
  .@{prefix}-input {
@@ -0,0 +1,4 @@
1
+ #demo-stepper .arcodesign-mobile-demo-content {
2
+ padding: 0;
3
+ background: transparent;
4
+ }
@@ -0,0 +1,10 @@
1
+ @import "../../../../style/mixin.less";
2
+
3
+ #demo-stepper {
4
+
5
+ .arcodesign-mobile-demo-content {
6
+ padding: 0;
7
+ background: transparent;
8
+ }
9
+
10
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { StepperProps } from '../type';
3
+ export default function useButtonClick(params: Required<Pick<StepperProps, 'min' | 'max' | 'step' | 'disabled' | 'digits' | 'digits' | 'equalLimitDisabled'>> & Pick<StepperProps, 'onAddButtonClick' | 'onMinusButtonClick'> & {
4
+ actualInputValue: number;
5
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
6
+ }): {
7
+ minusButtonDisable: boolean;
8
+ addButtonDisable: boolean;
9
+ handleMinusButtonClick: (e: React.MouseEvent) => void;
10
+ handleAddButtonClick: (e: React.MouseEvent) => void;
11
+ };
@@ -0,0 +1,69 @@
1
+ import { useEffect, useState } from 'react';
2
+
3
+ function correctCalculation(leftNumber, rightNumber, operator) {
4
+ var magnification = 1e17;
5
+ var left = leftNumber * magnification;
6
+ var right = rightNumber * magnification;
7
+ return operator === '-' ? (left - right) / magnification : (left + right) / magnification;
8
+ }
9
+
10
+ export default function useButtonClick(params) {
11
+ var actualInputValue = params.actualInputValue,
12
+ min = params.min,
13
+ max = params.max,
14
+ step = params.step,
15
+ disabled = params.disabled,
16
+ equalLimitDisabled = params.equalLimitDisabled,
17
+ updateValue = params.updateValue,
18
+ onAddButtonClick = params.onAddButtonClick,
19
+ onMinusButtonClick = params.onMinusButtonClick;
20
+
21
+ var _useState = useState(function () {
22
+ return actualInputValue === min || disabled;
23
+ }),
24
+ minusButtonDisable = _useState[0],
25
+ setMinusButtonDisable = _useState[1];
26
+
27
+ var _useState2 = useState(function () {
28
+ return actualInputValue === max || disabled;
29
+ }),
30
+ addButtonDisable = _useState2[0],
31
+ setAddButtonDisable = _useState2[1];
32
+
33
+ var handleMinusButtonClick = function handleMinusButtonClick(e) {
34
+ if (minusButtonDisable) {
35
+ return;
36
+ }
37
+
38
+ updateValue(function (oldValue) {
39
+ var result = correctCalculation(oldValue, step, '-');
40
+ return result < min ? equalLimitDisabled ? oldValue : min : result;
41
+ });
42
+ onMinusButtonClick && onMinusButtonClick(e);
43
+ };
44
+
45
+ var handleAddButtonClick = function handleAddButtonClick(e) {
46
+ if (addButtonDisable) {
47
+ return;
48
+ }
49
+
50
+ updateValue(function (oldValue) {
51
+ var result = correctCalculation(Number(oldValue), step, '+');
52
+ return result > max ? equalLimitDisabled ? oldValue : max : result;
53
+ });
54
+ onAddButtonClick && onAddButtonClick(e);
55
+ }; // 当前值改变时,更新按钮状态
56
+ // Changes button status when value changed
57
+
58
+
59
+ useEffect(function () {
60
+ setMinusButtonDisable(actualInputValue <= min);
61
+ setAddButtonDisable(actualInputValue >= max);
62
+ }, [actualInputValue]);
63
+ return {
64
+ minusButtonDisable: minusButtonDisable,
65
+ addButtonDisable: addButtonDisable,
66
+ handleMinusButtonClick: handleMinusButtonClick,
67
+ handleAddButtonClick: handleAddButtonClick
68
+ };
69
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { StepperProps } from '../type';
3
+ export default function useInputEvent(params: Required<Pick<StepperProps, 'defaultValue' | 'min' | 'max' | 'digits' | 'allowEmpty'>> & Pick<StepperProps, 'onBlur' | 'onChange' | 'onInput'> & {
4
+ actualInputValue: number;
5
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
6
+ }): {
7
+ handleInput: (e: React.FocusEvent<HTMLInputElement>) => void;
8
+ handleBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
9
+ };
@@ -0,0 +1,53 @@
1
+ import { useUpdateEffect } from '../../_helpers';
2
+ export default function useInputEvent(params) {
3
+ var defaultValue = params.defaultValue,
4
+ min = params.min,
5
+ max = params.max,
6
+ digits = params.digits,
7
+ actualInputValue = params.actualInputValue,
8
+ allowEmpty = params.allowEmpty,
9
+ updateValue = params.updateValue,
10
+ onBlur = params.onBlur,
11
+ onChange = params.onChange,
12
+ onInput = params.onInput;
13
+
14
+ var handleInput = function handleInput(e) {
15
+ var targetValue = e.target.value;
16
+ var numberValue = Number(targetValue);
17
+ var pointIndex = targetValue.indexOf('.');
18
+
19
+ if (digits > 0 && pointIndex !== -1) {
20
+ var decimalLength = targetValue.slice(pointIndex + 1).length;
21
+ updateValue(decimalLength > digits ? actualInputValue : numberValue);
22
+ } else if (allowEmpty && targetValue === '') {
23
+ updateValue(Number.MIN_VALUE);
24
+ } else {
25
+ updateValue(numberValue);
26
+ }
27
+
28
+ onInput && onInput(e);
29
+ };
30
+
31
+ var handleBlur = function handleBlur(e) {
32
+ var targetValue = e.target.value;
33
+ var numberValue = Number(targetValue);
34
+
35
+ if (allowEmpty && targetValue === '') {
36
+ updateValue(Number.MIN_VALUE);
37
+ } else if (!allowEmpty && targetValue === '') {
38
+ updateValue(defaultValue);
39
+ } else {
40
+ updateValue(Math.max(min, Math.min(max, numberValue)));
41
+ }
42
+
43
+ onBlur && onBlur(e);
44
+ };
45
+
46
+ useUpdateEffect(function () {
47
+ onChange && onChange(actualInputValue);
48
+ }, [actualInputValue]);
49
+ return {
50
+ handleInput: handleInput,
51
+ handleBlur: handleBlur
52
+ };
53
+ }
@@ -0,0 +1,6 @@
1
+ import { StepperProps } from '..';
2
+ export default function useValue(params: Required<Pick<StepperProps, 'defaultValue' | 'min' | 'max' | 'digits'>> & Pick<StepperProps, 'formatter' | 'value'>): {
3
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
4
+ actualInputValue: number;
5
+ showValue: string | number;
6
+ };
@@ -0,0 +1,38 @@
1
+ import { useState } from 'react';
2
+ export default function useValue(params) {
3
+ var defaultValue = params.defaultValue,
4
+ formatter = params.formatter,
5
+ max = params.max,
6
+ min = params.min,
7
+ value = params.value,
8
+ digits = params.digits;
9
+
10
+ var _useState = useState(defaultValue),
11
+ innerValue = _useState[0],
12
+ setInnerValue = _useState[1];
13
+
14
+ var updateValue = function updateValue(updater) {
15
+ var tempValue = typeof updater === 'function' ? updater(innerValue) : updater;
16
+
17
+ if (formatter) {
18
+ new Promise(function (resolve) {
19
+ resolve(formatter(Number(tempValue)));
20
+ }).then(function (result) {
21
+ var res = Math.max(min, Math.min(max, result));
22
+ setInnerValue(res);
23
+ });
24
+ } else {
25
+ setInnerValue(tempValue);
26
+ }
27
+ };
28
+
29
+ var actualInputValue = value !== undefined ? value : innerValue; // 将actualInputValue等于Number.MIN_VALUE的情况视为空值
30
+ // @en If actualInputValue equal Number.MIN_VALUE, actualInputValue equal ''
31
+
32
+ var showValue = actualInputValue === Number.MIN_VALUE ? '' : digits > 0 ? parseFloat(String(actualInputValue)).toFixed(digits) : actualInputValue;
33
+ return {
34
+ updateValue: updateValue,
35
+ actualInputValue: actualInputValue,
36
+ showValue: showValue
37
+ };
38
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { StepperProps, StepperRef } from './type';
3
+ export * from './type';
4
+ /**
5
+ * 步进器组件,支持受控模式
6
+ * @en Stepper component, provide controlled mode
7
+ * @type 数据录入
8
+ * @type_en Data Entry
9
+ * @name 步进器
10
+ * @name_en Stepper
11
+ */
12
+ declare const Stepper: React.ForwardRefExoticComponent<StepperProps & React.RefAttributes<StepperRef>>;
13
+ export default Stepper;
@@ -0,0 +1,157 @@
1
+ import { cls } from '@arco-design/mobile-utils';
2
+ import React, { useRef, forwardRef, useImperativeHandle } from 'react';
3
+ import { ContextLayout } from '../context-provider';
4
+ import useButtonClick from './hooks/useButtonClick';
5
+ import useInputEvent from './hooks/useInputEvent';
6
+ import { IconAdd, IconMinus } from '../icon';
7
+ import useValue from './hooks/useValue';
8
+ export * from './type';
9
+ /**
10
+ * 步进器组件,支持受控模式
11
+ * @en Stepper component, provide controlled mode
12
+ * @type 数据录入
13
+ * @type_en Data Entry
14
+ * @name 步进器
15
+ * @name_en Stepper
16
+ */
17
+
18
+ var Stepper = /*#__PURE__*/forwardRef(function (props, ref) {
19
+ var _props$className = props.className,
20
+ className = _props$className === void 0 ? '' : _props$className,
21
+ style = props.style,
22
+ inputStyle = props.inputStyle,
23
+ _props$inputClass = props.inputClass,
24
+ inputClass = _props$inputClass === void 0 ? '' : _props$inputClass,
25
+ value = props.value,
26
+ _props$defaultValue = props.defaultValue,
27
+ defaultValue = _props$defaultValue === void 0 ? 1 : _props$defaultValue,
28
+ _props$allowEmpty = props.allowEmpty,
29
+ allowEmpty = _props$allowEmpty === void 0 ? false : _props$allowEmpty,
30
+ _props$digits = props.digits,
31
+ digits = _props$digits === void 0 ? 0 : _props$digits,
32
+ _props$disabled = props.disabled,
33
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
34
+ _props$inputReadonly = props.inputReadonly,
35
+ inputReadonly = _props$inputReadonly === void 0 ? false : _props$inputReadonly,
36
+ _props$max = props.max,
37
+ max = _props$max === void 0 ? Infinity : _props$max,
38
+ _props$min = props.min,
39
+ min = _props$min === void 0 ? 1 : _props$min,
40
+ _props$equalLimitDisa = props.equalLimitDisabled,
41
+ equalLimitDisabled = _props$equalLimitDisa === void 0 ? false : _props$equalLimitDisa,
42
+ _props$step = props.step,
43
+ step = _props$step === void 0 ? 1 : _props$step,
44
+ _props$theme = props.theme,
45
+ theme = _props$theme === void 0 ? 'default' : _props$theme,
46
+ formatter = props.formatter,
47
+ addButton = props.addButton,
48
+ minusButton = props.minusButton,
49
+ renderContent = props.renderContent,
50
+ onBlur = props.onBlur,
51
+ onChange = props.onChange,
52
+ onFocus = props.onFocus,
53
+ onAddButtonClick = props.onAddButtonClick,
54
+ onMinusButtonClick = props.onMinusButtonClick,
55
+ onClick = props.onClick,
56
+ onInput = props.onInput; // 值的相关逻辑
57
+ // @en The logic is that handle value
58
+
59
+ var _useValue = useValue({
60
+ defaultValue: defaultValue,
61
+ formatter: formatter,
62
+ min: min,
63
+ max: max,
64
+ value: value,
65
+ digits: digits
66
+ }),
67
+ updateValue = _useValue.updateValue,
68
+ actualInputValue = _useValue.actualInputValue,
69
+ showValue = _useValue.showValue; // 按钮点击的相关逻辑
70
+ // @en The logic is that handle button click
71
+
72
+
73
+ var _useButtonClick = useButtonClick({
74
+ actualInputValue: actualInputValue,
75
+ min: min,
76
+ max: max,
77
+ step: step,
78
+ disabled: disabled,
79
+ digits: digits,
80
+ equalLimitDisabled: equalLimitDisabled,
81
+ updateValue: updateValue,
82
+ onAddButtonClick: onAddButtonClick,
83
+ onMinusButtonClick: onMinusButtonClick
84
+ }),
85
+ minusButtonDisable = _useButtonClick.minusButtonDisable,
86
+ addButtonDisable = _useButtonClick.addButtonDisable,
87
+ handleAddButtonClick = _useButtonClick.handleAddButtonClick,
88
+ handleMinusButtonClick = _useButtonClick.handleMinusButtonClick; // 输入框操作的相关逻辑
89
+ // @en The logic is that handle input operation
90
+
91
+
92
+ var _useInputEvent = useInputEvent({
93
+ defaultValue: defaultValue,
94
+ min: min,
95
+ max: max,
96
+ digits: digits,
97
+ actualInputValue: actualInputValue,
98
+ allowEmpty: allowEmpty,
99
+ updateValue: updateValue,
100
+ onBlur: onBlur,
101
+ onChange: onChange,
102
+ onInput: onInput
103
+ }),
104
+ handleInput = _useInputEvent.handleInput,
105
+ handleBlur = _useInputEvent.handleBlur;
106
+
107
+ var domRef = useRef(null);
108
+ var inputRef = useRef(null);
109
+ useImperativeHandle(ref, function () {
110
+ return {
111
+ dom: domRef.current,
112
+ input: inputRef.current,
113
+ changeValue: function changeValue(newValue) {
114
+ var tempValue = newValue != null ? newValue : defaultValue;
115
+ tempValue = Math.min(max, Math.max(tempValue, min));
116
+ updateValue(tempValue);
117
+ }
118
+ };
119
+ });
120
+ return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
121
+ var prefixCls = _ref.prefixCls;
122
+ return /*#__PURE__*/React.createElement("div", {
123
+ className: cls(prefixCls + "-stepper", prefixCls + "-" + theme, className),
124
+ style: style,
125
+ ref: domRef,
126
+ onClick: onClick
127
+ }, /*#__PURE__*/React.createElement("div", {
128
+ onClick: handleMinusButtonClick
129
+ }, minusButton || /*#__PURE__*/React.createElement("div", {
130
+ className: cls(prefixCls + "-stepper-minus-button")
131
+ }, /*#__PURE__*/React.createElement(IconMinus, {
132
+ className: cls(prefixCls + "-stepper-minus-button-icon", {
133
+ disabled: minusButtonDisable
134
+ })
135
+ }))), renderContent ? renderContent(actualInputValue) : /*#__PURE__*/React.createElement("input", {
136
+ style: inputStyle,
137
+ className: cls(prefixCls + "-stepper-input", inputClass),
138
+ onFocus: onFocus,
139
+ onInput: handleInput,
140
+ onBlur: handleBlur,
141
+ disabled: disabled,
142
+ value: showValue,
143
+ readOnly: inputReadonly,
144
+ ref: inputRef,
145
+ type: "number"
146
+ }), /*#__PURE__*/React.createElement("div", {
147
+ onClick: handleAddButtonClick
148
+ }, addButton || /*#__PURE__*/React.createElement("div", {
149
+ className: cls(prefixCls + "-stepper-add-button")
150
+ }, /*#__PURE__*/React.createElement(IconAdd, {
151
+ className: cls(prefixCls + "-stepper-add-button-icon", {
152
+ disabled: addButtonDisable
153
+ })
154
+ }))));
155
+ });
156
+ });
157
+ export default Stepper;
@@ -0,0 +1,76 @@
1
+ .arco-stepper {
2
+ display: -webkit-box;
3
+ display: -webkit-flex;
4
+ display: flex;
5
+ font-size: 0.28rem ;
6
+ }
7
+ .arco-stepper.arco-square {
8
+ border: 1PX solid #f2f3f5 ;
9
+ border-radius: 0.04rem ;
10
+ }
11
+ .arco-stepper.arco-square .arco-stepper-add-button,
12
+ .arco-stepper.arco-square .arco-stepper-minus-button,
13
+ .arco-stepper.arco-square .arco-stepper-input {
14
+ background: #ffffff ;
15
+ }
16
+ .arco-stepper.arco-square .arco-stepper-input {
17
+ border-left: 1PX solid #f2f3f5 ;
18
+ border-right: 1PX solid #f2f3f5 ;
19
+ }
20
+ .arco-stepper.arco-round .arco-stepper-minus-button,
21
+ .arco-stepper.arco-round .arco-stepper-add-button {
22
+ border-radius: 50% ;
23
+ }
24
+ .arco-stepper.arco-round .arco-stepper-input {
25
+ background: transparent ;
26
+ }
27
+ .arco-stepper-minus-button {
28
+ display: -webkit-box;
29
+ display: -webkit-flex;
30
+ display: flex;
31
+ -webkit-box-align: center;
32
+ -webkit-align-items: center;
33
+ align-items: center;
34
+ -webkit-box-pack: center;
35
+ -webkit-justify-content: center;
36
+ justify-content: center;
37
+ font-size: 0.2rem ;
38
+ width: 0.56rem ;
39
+ height: 0.56rem ;
40
+ background: #f7f8fa ;
41
+ }
42
+ .arco-stepper-minus-button-icon {
43
+ color: #1d2129 ;
44
+ }
45
+ .arco-stepper-minus-button-icon.disabled {
46
+ color: #c9cdd4 ;
47
+ }
48
+ .arco-stepper-input {
49
+ text-align: center;
50
+ width: 0.8rem ;
51
+ height: 0.56rem ;
52
+ background: #f7f8fa ;
53
+ color: #1d2129 ;
54
+ margin: 0 1PX ;
55
+ }
56
+ .arco-stepper-add-button {
57
+ display: -webkit-box;
58
+ display: -webkit-flex;
59
+ display: flex;
60
+ -webkit-box-align: center;
61
+ -webkit-align-items: center;
62
+ align-items: center;
63
+ -webkit-box-pack: center;
64
+ -webkit-justify-content: center;
65
+ justify-content: center;
66
+ font-size: 0.2rem ;
67
+ width: 0.56rem ;
68
+ height: 0.56rem ;
69
+ background: #f7f8fa ;
70
+ }
71
+ .arco-stepper-add-button-icon {
72
+ color: #1d2129 ;
73
+ }
74
+ .arco-stepper-add-button-icon.disabled {
75
+ color: #c9cdd4 ;
76
+ }
@@ -0,0 +1,2 @@
1
+ import '../../../../style/css/public.css';
2
+ import './index.css';
@@ -0,0 +1,2 @@
1
+ import '../../../../style/css/public.css';
2
+ import './index.css';
@@ -0,0 +1,2 @@
1
+ import '../../../style/public.less';
2
+ import './index.less';
@@ -0,0 +1,2 @@
1
+ import '../../../style/public.less';
2
+ import './index.less';
@@ -0,0 +1,80 @@
1
+ @import '../../../style/mixin.less';
2
+
3
+ .@{prefix}-stepper {
4
+ display: flex;
5
+ .use-var(font-size, stepper-font-size);
6
+
7
+ &.@{prefix}-square {
8
+ .use-var(border, stepper-square-border);
9
+ .use-var(border-radius, stepper-square-border-radius);
10
+
11
+ .@{prefix}-stepper {
12
+ &-add-button,
13
+ &-minus-button,
14
+ &-input {
15
+ .use-var(background, stepper-square-background-color);
16
+ }
17
+ &-input {
18
+ .use-var(border-left, stepper-square-border);
19
+ .use-var(border-right, stepper-square-border);
20
+ }
21
+ }
22
+ }
23
+
24
+ &.@{prefix}-round {
25
+ .@{prefix}-stepper {
26
+ &-minus-button,
27
+ &-add-button {
28
+ .use-var(border-radius, stepper-round-button-border-radius);
29
+ }
30
+ &-input {
31
+ .use-var(background, stepper-round-input-background-color);
32
+ }
33
+ }
34
+ }
35
+
36
+ &-minus-button {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ .use-var(font-size, stepper-button-icon-size);
41
+ .use-var(width, stepper-button-size);
42
+ .use-var(height, stepper-button-size);
43
+ .use-var(background, stepper-default-background-color);
44
+
45
+ &-icon {
46
+ .use-var(color, stepper-content-color);
47
+
48
+ &.disabled {
49
+ .use-var(color, stepper-disable-color);
50
+ }
51
+ }
52
+ }
53
+
54
+ &-input {
55
+ text-align: center;
56
+ .use-var(width, stepper-input-width);
57
+ .use-var(height, stepper-input-height);
58
+ .use-var(background, stepper-default-background-color);
59
+ .use-var(color, stepper-content-color);
60
+ .use-var(margin, stepper-input-margin);
61
+ }
62
+
63
+ &-add-button {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ .use-var(font-size, stepper-button-icon-size);
68
+ .use-var(width, stepper-button-size);
69
+ .use-var(height, stepper-button-size);
70
+ .use-var(background, stepper-default-background-color);
71
+
72
+ &-icon {
73
+ .use-var(color, stepper-content-color);
74
+
75
+ &.disabled {
76
+ .use-var(color, stepper-disable-color);
77
+ }
78
+ }
79
+ }
80
+ }