@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
@@ -66,6 +66,12 @@ export interface CarouselProps {
66
66
  * @default true
67
67
  */
68
68
  autoPlay?: boolean;
69
+ /**
70
+ * 自动播放方向
71
+ * @en Direction when playing auto
72
+ * @default "normal"
73
+ */
74
+ autoPlayDirection?: 'normal' | 'reverse';
69
75
  /**
70
76
  * 是否响应手势滑动
71
77
  * @en Whether to respond to gesture swipe
@@ -47,6 +47,8 @@
47
47
  loop = _props$loop === void 0 ? true : _props$loop,
48
48
  _props$autoPlay = props.autoPlay,
49
49
  autoPlay = _props$autoPlay === void 0 ? true : _props$autoPlay,
50
+ _props$autoPlayDirect = props.autoPlayDirection,
51
+ autoPlayDirection = _props$autoPlayDirect === void 0 ? 'normal' : _props$autoPlayDirect,
50
52
  _props$swipeable = props.swipeable,
51
53
  swipeable = _props$swipeable === void 0 ? true : _props$swipeable,
52
54
  _props$stayDuration = props.stayDuration,
@@ -169,7 +171,7 @@
169
171
  transformsRef = _useRefState4[1],
170
172
  setTransforms = _useRefState4[2];
171
173
 
172
- var _useRefState5 = (0, _helpers.useRefState)('left'),
174
+ var _useRefState5 = (0, _helpers.useRefState)(autoPlayDirection === 'reverse' && autoPlay ? 'right' : 'left'),
173
175
  direction = _useRefState5[0],
174
176
  directionRef = _useRefState5[1],
175
177
  setStateDirection = _useRefState5[2];
@@ -406,7 +408,7 @@
406
408
  return function () {
407
409
  clear();
408
410
  };
409
- }, [userSetBoxWidth, userSetBoxHeight, childWidth, childHeight, stayDuration, noInterval]);
411
+ }, [userSetBoxWidth, userSetBoxHeight, childWidth, childHeight, stayDuration, noInterval, autoPlayDirection]);
410
412
  (0, _helpers.useUpdateEffect)(function () {
411
413
  if (currentIndex !== void 0) {
412
414
  jumpTo(currentIndex);
@@ -546,7 +548,7 @@
546
548
  var changedIndex = newIndex !== oldIndex ? getShownIndex(newIndex) : -1;
547
549
 
548
550
  if (autoJump) {
549
- setDirection('left');
551
+ setDirection(autoPlayDirection === 'reverse' ? 'right' : 'left');
550
552
  } else if (newIndex === indexRef.current) {
551
553
  setDirection(distanceRef.current > 0 ? 'right' : 'left');
552
554
  } else {
@@ -600,7 +602,7 @@
600
602
  }
601
603
 
602
604
  timerRef.current = delayTimeout(function () {
603
- jumpTo(indexRef.current + 1);
605
+ jumpTo(autoPlayDirection === 'reverse' ? indexRef.current - 1 : indexRef.current + 1);
604
606
  }, stayDuration);
605
607
  }
606
608
 
@@ -81,7 +81,9 @@
81
81
  onMaxSizeExceed = props.onMaxSizeExceed,
82
82
  onLimitExceed = props.onLimitExceed,
83
83
  upload = props.upload,
84
- selectAdapter = props.selectAdapter;
84
+ selectAdapter = props.selectAdapter,
85
+ onSelectClick = props.onSelectClick,
86
+ onDeleteClick = props.onDeleteClick;
85
87
  var domRef = (0, _react.useRef)(null);
86
88
  var fileRef = (0, _react.useRef)(null);
87
89
  var cacheRef = (0, _react.useRef)([]);
@@ -182,6 +184,7 @@
182
184
  };
183
185
 
184
186
  var handleDelete = function handleDelete(index) {
187
+ onDeleteClick && onDeleteClick(index);
185
188
  onChange(images.filter(function (_i, j) {
186
189
  return j !== index;
187
190
  }));
@@ -205,17 +208,20 @@
205
208
  }
206
209
  };
207
210
 
208
- var handleSelect = function handleSelect() {
209
- var _fileRef$current;
210
-
211
- selectAdapter ? selectAdapter().then(function (_ref4) {
212
- var files = _ref4.files;
213
- return handleChange({
214
- target: {
215
- files: files
216
- }
217
- }, true);
218
- }) : (_fileRef$current = fileRef.current) == null ? void 0 : _fileRef$current.click();
211
+ var handleSelect = function handleSelect(e) {
212
+ if (e.target !== fileRef.current) {
213
+ var _fileRef$current;
214
+
215
+ onSelectClick && onSelectClick();
216
+ selectAdapter ? selectAdapter().then(function (_ref4) {
217
+ var files = _ref4.files;
218
+ return handleChange({
219
+ target: {
220
+ files: files
221
+ }
222
+ }, true);
223
+ }) : (_fileRef$current = fileRef.current) == null ? void 0 : _fileRef$current.click();
224
+ }
219
225
  };
220
226
 
221
227
  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/umd/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/umd/index.js CHANGED
@@ -1,22 +1,22 @@
1
1
  (function (global, factory) {
2
2
  if (typeof define === "function" && define.amd) {
3
- define(["exports", "./action-sheet", "./cell", "./loading", "./badge", "./avatar", "./button", "./carousel", "./toast", "./switch", "./checkbox", "./circle-progress", "./collapse", "./tabs", "./context-provider", "./dialog", "./count-down", "./date-picker", "./dropdown", "./dropdown-menu", "./ellipsis", "./grid", "./image", "./show-monitor", "./image-picker", "./image-preview", "./input", "./load-more", "./masking", "./nav-bar", "./notice-bar", "./notify", "./pagination", "./picker", "./picker-view", "./popover", "./popup", "./popup-swiper", "./portal", "./progress", "./pull-refresh", "./radio", "./rate", "./slider", "./search-bar", "./steps", "./sticky", "./swipe-action", "./swipe-load", "./tab-bar", "./tag", "./textarea", "./transition"], factory);
3
+ define(["exports", "./action-sheet", "./cell", "./loading", "./badge", "./avatar", "./button", "./carousel", "./toast", "./switch", "./checkbox", "./circle-progress", "./collapse", "./tabs", "./context-provider", "./dialog", "./count-down", "./date-picker", "./dropdown", "./dropdown-menu", "./ellipsis", "./grid", "./image", "./show-monitor", "./image-picker", "./image-preview", "./input", "./load-more", "./masking", "./nav-bar", "./notice-bar", "./notify", "./pagination", "./picker", "./picker-view", "./popover", "./popup", "./popup-swiper", "./portal", "./progress", "./pull-refresh", "./radio", "./rate", "./slider", "./search-bar", "./stepper", "./steps", "./sticky", "./swipe-action", "./swipe-load", "./tab-bar", "./tag", "./textarea", "./transition"], factory);
4
4
  } else if (typeof exports !== "undefined") {
5
- factory(exports, require("./action-sheet"), require("./cell"), require("./loading"), require("./badge"), require("./avatar"), require("./button"), require("./carousel"), require("./toast"), require("./switch"), require("./checkbox"), require("./circle-progress"), require("./collapse"), require("./tabs"), require("./context-provider"), require("./dialog"), require("./count-down"), require("./date-picker"), require("./dropdown"), require("./dropdown-menu"), require("./ellipsis"), require("./grid"), require("./image"), require("./show-monitor"), require("./image-picker"), require("./image-preview"), require("./input"), require("./load-more"), require("./masking"), require("./nav-bar"), require("./notice-bar"), require("./notify"), require("./pagination"), require("./picker"), require("./picker-view"), require("./popover"), require("./popup"), require("./popup-swiper"), require("./portal"), require("./progress"), require("./pull-refresh"), require("./radio"), require("./rate"), require("./slider"), require("./search-bar"), require("./steps"), require("./sticky"), require("./swipe-action"), require("./swipe-load"), require("./tab-bar"), require("./tag"), require("./textarea"), require("./transition"));
5
+ factory(exports, require("./action-sheet"), require("./cell"), require("./loading"), require("./badge"), require("./avatar"), require("./button"), require("./carousel"), require("./toast"), require("./switch"), require("./checkbox"), require("./circle-progress"), require("./collapse"), require("./tabs"), require("./context-provider"), require("./dialog"), require("./count-down"), require("./date-picker"), require("./dropdown"), require("./dropdown-menu"), require("./ellipsis"), require("./grid"), require("./image"), require("./show-monitor"), require("./image-picker"), require("./image-preview"), require("./input"), require("./load-more"), require("./masking"), require("./nav-bar"), require("./notice-bar"), require("./notify"), require("./pagination"), require("./picker"), require("./picker-view"), require("./popover"), require("./popup"), require("./popup-swiper"), require("./portal"), require("./progress"), require("./pull-refresh"), require("./radio"), require("./rate"), require("./slider"), require("./search-bar"), require("./stepper"), require("./steps"), require("./sticky"), require("./swipe-action"), require("./swipe-load"), require("./tab-bar"), require("./tag"), require("./textarea"), require("./transition"));
6
6
  } else {
7
7
  var mod = {
8
8
  exports: {}
9
9
  };
10
- factory(mod.exports, global.actionSheet, global.cell, global.loading, global.badge, global.avatar, global.button, global.carousel, global.toast, global._switch, global.checkbox, global.circleProgress, global.collapse, global.tabs, global.contextProvider, global.dialog, global.countDown, global.datePicker, global.dropdown, global.dropdownMenu, global.ellipsis, global.grid, global.image, global.showMonitor, global.imagePicker, global.imagePreview, global.input, global.loadMore, global.masking, global.navBar, global.noticeBar, global.notify, global.pagination, global.picker, global.pickerView, global.popover, global.popup, global.popupSwiper, global.portal, global.progress, global.pullRefresh, global.radio, global.rate, global.slider, global.searchBar, global.steps, global.sticky, global.swipeAction, global.swipeLoad, global.tabBar, global.tag, global.textarea, global.transition);
10
+ factory(mod.exports, global.actionSheet, global.cell, global.loading, global.badge, global.avatar, global.button, global.carousel, global.toast, global._switch, global.checkbox, global.circleProgress, global.collapse, global.tabs, global.contextProvider, global.dialog, global.countDown, global.datePicker, global.dropdown, global.dropdownMenu, global.ellipsis, global.grid, global.image, global.showMonitor, global.imagePicker, global.imagePreview, global.input, global.loadMore, global.masking, global.navBar, global.noticeBar, global.notify, global.pagination, global.picker, global.pickerView, global.popover, global.popup, global.popupSwiper, global.portal, global.progress, global.pullRefresh, global.radio, global.rate, global.slider, global.searchBar, global.stepper, global.steps, global.sticky, global.swipeAction, global.swipeLoad, global.tabBar, global.tag, global.textarea, global.transition);
11
11
  global.index = mod.exports;
12
12
  }
13
- })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _actionSheet, _cell, _loading, _badge, _avatar, _button, _carousel, _toast, _switch, _checkbox, _circleProgress, _collapse, _tabs, _contextProvider, _dialog, _countDown, _datePicker, _dropdown, _dropdownMenu, _ellipsis, _grid, _image, _showMonitor, _imagePicker, _imagePreview, _input, _loadMore, _masking, _navBar, _noticeBar, _notify, _pagination, _picker, _pickerView, _popover, _popup, _popupSwiper, _portal, _progress, _pullRefresh, _radio, _rate, _slider, _searchBar, _steps, _sticky, _swipeAction, _swipeLoad, _tabBar, _tag, _textarea, _transition) {
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _actionSheet, _cell, _loading, _badge, _avatar, _button, _carousel, _toast, _switch, _checkbox, _circleProgress, _collapse, _tabs, _contextProvider, _dialog, _countDown, _datePicker, _dropdown, _dropdownMenu, _ellipsis, _grid, _image, _showMonitor, _imagePicker, _imagePreview, _input, _loadMore, _masking, _navBar, _noticeBar, _notify, _pagination, _picker, _pickerView, _popover, _popup, _popupSwiper, _portal, _progress, _pullRefresh, _radio, _rate, _slider, _searchBar, _stepper, _steps, _sticky, _swipeAction, _swipeLoad, _tabBar, _tag, _textarea, _transition) {
14
14
  "use strict";
15
15
 
16
16
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
17
17
 
18
18
  _exports.__esModule = true;
19
- _exports.Transition = _exports.Toast = _exports.Textarea = _exports.Tag = _exports.Tabs = _exports.TabBar = _exports.Switch = _exports.SwipeLoad = _exports.SwipeAction = _exports.Sticky = _exports.Steps = _exports.Slider = _exports.ShowMonitor = _exports.SearchBar = _exports.Rate = _exports.Radio = _exports.PullRefresh = _exports.Progress = _exports.Portal = _exports.PopupSwiper = _exports.Popup = _exports.Popover = _exports.PickerView = _exports.Picker = _exports.Pagination = _exports.Notify = _exports.NoticeBar = _exports.NavBar = _exports.Masking = _exports.Loading = _exports.LoadMore = _exports.Input = _exports.ImagePreview = _exports.ImagePicker = _exports.Image = _exports.Grid = _exports.Ellipsis = _exports.DropdownMenu = _exports.Dropdown = _exports.Dialog = _exports.DatePicker = _exports.CountDown = _exports.ContextProvider = _exports.Collapse = _exports.CircleProgress = _exports.Checkbox = _exports.Cell = _exports.Carousel = _exports.Button = _exports.Badge = _exports.Avatar = _exports.ActionSheet = void 0;
19
+ _exports.Transition = _exports.Toast = _exports.Textarea = _exports.Tag = _exports.Tabs = _exports.TabBar = _exports.Switch = _exports.SwipeLoad = _exports.SwipeAction = _exports.Sticky = _exports.Steps = _exports.Stepper = _exports.Slider = _exports.ShowMonitor = _exports.SearchBar = _exports.Rate = _exports.Radio = _exports.PullRefresh = _exports.Progress = _exports.Portal = _exports.PopupSwiper = _exports.Popup = _exports.Popover = _exports.PickerView = _exports.Picker = _exports.Pagination = _exports.Notify = _exports.NoticeBar = _exports.NavBar = _exports.Masking = _exports.Loading = _exports.LoadMore = _exports.Input = _exports.ImagePreview = _exports.ImagePicker = _exports.Image = _exports.Grid = _exports.Ellipsis = _exports.DropdownMenu = _exports.Dropdown = _exports.Dialog = _exports.DatePicker = _exports.CountDown = _exports.ContextProvider = _exports.Collapse = _exports.CircleProgress = _exports.Checkbox = _exports.Cell = _exports.Carousel = _exports.Button = _exports.Badge = _exports.Avatar = _exports.ActionSheet = void 0;
20
20
  _actionSheet = _interopRequireDefault(_actionSheet);
21
21
  _exports.ActionSheet = _actionSheet.default;
22
22
  _cell = _interopRequireDefault(_cell);
@@ -105,6 +105,8 @@
105
105
  _exports.Slider = _slider.default;
106
106
  _searchBar = _interopRequireDefault(_searchBar);
107
107
  _exports.SearchBar = _searchBar.default;
108
+ _stepper = _interopRequireDefault(_stepper);
109
+ _exports.Stepper = _stepper.default;
108
110
  _steps = _interopRequireDefault(_steps);
109
111
  _exports.Steps = _steps.default;
110
112
  _sticky = _interopRequireDefault(_sticky);
@@ -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,86 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "react"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("react"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.react);
11
+ global.useButtonClick = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react) {
14
+ "use strict";
15
+
16
+ _exports.__esModule = true;
17
+ _exports.default = useButtonClick;
18
+
19
+ function correctCalculation(leftNumber, rightNumber, operator) {
20
+ var magnification = 1e17;
21
+ var left = leftNumber * magnification;
22
+ var right = rightNumber * magnification;
23
+ return operator === '-' ? (left - right) / magnification : (left + right) / magnification;
24
+ }
25
+
26
+ function useButtonClick(params) {
27
+ var actualInputValue = params.actualInputValue,
28
+ min = params.min,
29
+ max = params.max,
30
+ step = params.step,
31
+ disabled = params.disabled,
32
+ equalLimitDisabled = params.equalLimitDisabled,
33
+ updateValue = params.updateValue,
34
+ onAddButtonClick = params.onAddButtonClick,
35
+ onMinusButtonClick = params.onMinusButtonClick;
36
+
37
+ var _useState = (0, _react.useState)(function () {
38
+ return actualInputValue === min || disabled;
39
+ }),
40
+ minusButtonDisable = _useState[0],
41
+ setMinusButtonDisable = _useState[1];
42
+
43
+ var _useState2 = (0, _react.useState)(function () {
44
+ return actualInputValue === max || disabled;
45
+ }),
46
+ addButtonDisable = _useState2[0],
47
+ setAddButtonDisable = _useState2[1];
48
+
49
+ var handleMinusButtonClick = function handleMinusButtonClick(e) {
50
+ if (minusButtonDisable) {
51
+ return;
52
+ }
53
+
54
+ updateValue(function (oldValue) {
55
+ var result = correctCalculation(oldValue, step, '-');
56
+ return result < min ? equalLimitDisabled ? oldValue : min : result;
57
+ });
58
+ onMinusButtonClick && onMinusButtonClick(e);
59
+ };
60
+
61
+ var handleAddButtonClick = function handleAddButtonClick(e) {
62
+ if (addButtonDisable) {
63
+ return;
64
+ }
65
+
66
+ updateValue(function (oldValue) {
67
+ var result = correctCalculation(Number(oldValue), step, '+');
68
+ return result > max ? equalLimitDisabled ? oldValue : max : result;
69
+ });
70
+ onAddButtonClick && onAddButtonClick(e);
71
+ }; // 当前值改变时,更新按钮状态
72
+ // Changes button status when value changed
73
+
74
+
75
+ (0, _react.useEffect)(function () {
76
+ setMinusButtonDisable(actualInputValue <= min);
77
+ setAddButtonDisable(actualInputValue >= max);
78
+ }, [actualInputValue]);
79
+ return {
80
+ minusButtonDisable: minusButtonDisable,
81
+ addButtonDisable: addButtonDisable,
82
+ handleMinusButtonClick: handleMinusButtonClick,
83
+ handleAddButtonClick: handleAddButtonClick
84
+ };
85
+ }
86
+ });
@@ -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,71 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "../../_helpers"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("../../_helpers"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global._helpers);
11
+ global.useInputEvent = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _helpers) {
14
+ "use strict";
15
+
16
+ _exports.__esModule = true;
17
+ _exports.default = useInputEvent;
18
+
19
+ function useInputEvent(params) {
20
+ var defaultValue = params.defaultValue,
21
+ min = params.min,
22
+ max = params.max,
23
+ digits = params.digits,
24
+ actualInputValue = params.actualInputValue,
25
+ allowEmpty = params.allowEmpty,
26
+ updateValue = params.updateValue,
27
+ onBlur = params.onBlur,
28
+ onChange = params.onChange,
29
+ onInput = params.onInput;
30
+
31
+ var handleInput = function handleInput(e) {
32
+ var targetValue = e.target.value;
33
+ var numberValue = Number(targetValue);
34
+ var pointIndex = targetValue.indexOf('.');
35
+
36
+ if (digits > 0 && pointIndex !== -1) {
37
+ var decimalLength = targetValue.slice(pointIndex + 1).length;
38
+ updateValue(decimalLength > digits ? actualInputValue : numberValue);
39
+ } else if (allowEmpty && targetValue === '') {
40
+ updateValue(Number.MIN_VALUE);
41
+ } else {
42
+ updateValue(numberValue);
43
+ }
44
+
45
+ onInput && onInput(e);
46
+ };
47
+
48
+ var handleBlur = function handleBlur(e) {
49
+ var targetValue = e.target.value;
50
+ var numberValue = Number(targetValue);
51
+
52
+ if (allowEmpty && targetValue === '') {
53
+ updateValue(Number.MIN_VALUE);
54
+ } else if (!allowEmpty && targetValue === '') {
55
+ updateValue(defaultValue);
56
+ } else {
57
+ updateValue(Math.max(min, Math.min(max, numberValue)));
58
+ }
59
+
60
+ onBlur && onBlur(e);
61
+ };
62
+
63
+ (0, _helpers.useUpdateEffect)(function () {
64
+ onChange && onChange(actualInputValue);
65
+ }, [actualInputValue]);
66
+ return {
67
+ handleInput: handleInput,
68
+ handleBlur: handleBlur
69
+ };
70
+ }
71
+ });
@@ -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,56 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "react"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("react"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.react);
11
+ global.useValue = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react) {
14
+ "use strict";
15
+
16
+ _exports.__esModule = true;
17
+ _exports.default = useValue;
18
+
19
+ function useValue(params) {
20
+ var defaultValue = params.defaultValue,
21
+ formatter = params.formatter,
22
+ max = params.max,
23
+ min = params.min,
24
+ value = params.value,
25
+ digits = params.digits;
26
+
27
+ var _useState = (0, _react.useState)(defaultValue),
28
+ innerValue = _useState[0],
29
+ setInnerValue = _useState[1];
30
+
31
+ var updateValue = function updateValue(updater) {
32
+ var tempValue = typeof updater === 'function' ? updater(innerValue) : updater;
33
+
34
+ if (formatter) {
35
+ new Promise(function (resolve) {
36
+ resolve(formatter(Number(tempValue)));
37
+ }).then(function (result) {
38
+ var res = Math.max(min, Math.min(max, result));
39
+ setInnerValue(res);
40
+ });
41
+ } else {
42
+ setInnerValue(tempValue);
43
+ }
44
+ };
45
+
46
+ var actualInputValue = value !== undefined ? value : innerValue; // 将actualInputValue等于Number.MIN_VALUE的情况视为空值
47
+ // @en If actualInputValue equal Number.MIN_VALUE, actualInputValue equal ''
48
+
49
+ var showValue = actualInputValue === Number.MIN_VALUE ? '' : digits > 0 ? parseFloat(String(actualInputValue)).toFixed(digits) : actualInputValue;
50
+ return {
51
+ updateValue: updateValue,
52
+ actualInputValue: actualInputValue,
53
+ showValue: showValue
54
+ };
55
+ }
56
+ });
@@ -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;