@nutui/nutui-react 2.3.12-beta.0 → 2.3.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 (184) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/esm/ActionSheet.js +30 -76
  3. package/dist/esm/Address.js +80 -171
  4. package/dist/esm/Animate.js +21 -49
  5. package/dist/esm/AnimatingNumbers.js +47 -120
  6. package/dist/esm/Audio.js +88 -159
  7. package/dist/esm/Avatar.js +44 -91
  8. package/dist/esm/AvatarCropper.js +149 -268
  9. package/dist/esm/AvatarGroup.js +13 -44
  10. package/dist/esm/BackTop.js +34 -75
  11. package/dist/esm/Barrage.js +49 -83
  12. package/dist/esm/Calendar.js +27 -119
  13. package/dist/esm/CalendarCard.js +180 -291
  14. package/dist/esm/CalendarItem.js +253 -314
  15. package/dist/esm/Card.js +38 -72
  16. package/dist/esm/Cell.js +27 -62
  17. package/dist/esm/CellGroup.js +16 -45
  18. package/dist/esm/CheckboxGroup.js +49 -85
  19. package/dist/esm/CircleProgress.js +42 -93
  20. package/dist/esm/Col.js +17 -48
  21. package/dist/esm/Collapse.js +18 -49
  22. package/dist/esm/ConfigProvider.js +3 -2
  23. package/dist/esm/CountDown.js +62 -101
  24. package/dist/esm/DatePicker.js +87 -127
  25. package/dist/esm/Dialog.js +116 -196
  26. package/dist/esm/Divider.js +16 -36
  27. package/dist/esm/Drag.js +32 -76
  28. package/dist/esm/Elevator.js +93 -133
  29. package/dist/esm/Ellipsis.js +71 -92
  30. package/dist/esm/Empty.js +31 -70
  31. package/dist/esm/FixedNav.js +32 -81
  32. package/dist/esm/Form.js +28 -61
  33. package/dist/esm/Grid.js +27 -51
  34. package/dist/esm/Image.js +47 -102
  35. package/dist/esm/ImagePreview.js +82 -135
  36. package/dist/esm/InfiniteLoading.js +77 -159
  37. package/dist/esm/Input.js +57 -125
  38. package/dist/esm/InputNumber.js +66 -96
  39. package/dist/esm/Layout.js +4 -28
  40. package/dist/esm/Loading.js +13 -40
  41. package/dist/esm/Menu.js +51 -105
  42. package/dist/esm/NavBar.js +46 -85
  43. package/dist/esm/NoticeBar.js +153 -226
  44. package/dist/esm/Notify.js +87 -178
  45. package/dist/esm/NumberKeyboard.js +84 -150
  46. package/dist/esm/Pagination.js +58 -97
  47. package/dist/esm/Picker.js +215 -276
  48. package/dist/esm/Popover.js +111 -159
  49. package/dist/esm/Price.js +23 -60
  50. package/dist/esm/Progress.js +47 -77
  51. package/dist/esm/PullToRefresh.js +94 -201
  52. package/dist/esm/RadioGroup.js +23 -53
  53. package/dist/esm/Range.js +113 -177
  54. package/dist/esm/Rate.js +48 -95
  55. package/dist/esm/Row.js +19 -43
  56. package/dist/esm/SearchBar.js +52 -119
  57. package/dist/esm/ShortPassword.js +58 -106
  58. package/dist/esm/SideNavBar.js +34 -59
  59. package/dist/esm/SideNavBarItem.js +7 -36
  60. package/dist/esm/Signature.js +49 -84
  61. package/dist/esm/Skeleton.js +31 -68
  62. package/dist/esm/Space.js +7 -34
  63. package/dist/esm/Step.js +35 -64
  64. package/dist/esm/Steps.js +16 -40
  65. package/dist/esm/Sticky.js +64 -108
  66. package/dist/esm/SubSideNavBar.js +42 -71
  67. package/dist/esm/Swipe.js +79 -143
  68. package/dist/esm/Swiper.js +136 -183
  69. package/dist/esm/SwiperItem.js +13 -38
  70. package/dist/esm/Switch.js +20 -53
  71. package/dist/esm/TabPane.js +6 -30
  72. package/dist/esm/Tabbar.js +29 -59
  73. package/dist/esm/Table.js +92 -141
  74. package/dist/esm/Tag.js +30 -74
  75. package/dist/esm/TextArea.js +37 -82
  76. package/dist/esm/TimeDetail.js +20 -58
  77. package/dist/esm/TimeSelect.js +57 -95
  78. package/dist/esm/Toast.js +110 -197
  79. package/dist/esm/Tour.js +88 -132
  80. package/dist/esm/TrendArrow.js +32 -74
  81. package/dist/esm/Uploader.js +226 -346
  82. package/dist/esm/UserContext.js +1 -1
  83. package/dist/esm/Video.js +34 -67
  84. package/dist/esm/VirtualList.js +127 -160
  85. package/dist/esm/WaterMark.js +24 -68
  86. package/dist/esm/badge2.js +23 -53
  87. package/dist/esm/button2.js +30 -63
  88. package/dist/esm/can-use-dom.js +1 -1
  89. package/dist/esm/cascader2.js +307 -536
  90. package/dist/esm/checkbox2.js +59 -96
  91. package/dist/esm/collapseitem2.js +48 -86
  92. package/dist/esm/configprovider2.js +43 -1003
  93. package/dist/esm/context.js +1 -1
  94. package/dist/esm/context2.js +1 -1
  95. package/dist/esm/context3.js +1 -1
  96. package/dist/esm/context4.js +1 -1
  97. package/dist/esm/context5.js +8 -8
  98. package/dist/esm/date.js +88 -66
  99. package/dist/esm/formitem2.js +236 -1510
  100. package/dist/esm/get-scroll-parent.js +8 -10
  101. package/dist/esm/griditem2.js +34 -52
  102. package/dist/esm/index.js +5 -12
  103. package/dist/esm/indicator2.js +13 -42
  104. package/dist/esm/menuitem2.js +81 -124
  105. package/dist/esm/overlay2.js +39 -78
  106. package/dist/esm/pad-zero.js +3 -4
  107. package/dist/esm/popup2.js +79 -124
  108. package/dist/esm/px-check.js +2 -2
  109. package/dist/esm/radio2.js +48 -79
  110. package/dist/esm/raf.js +5 -3
  111. package/dist/esm/render.js +17 -54
  112. package/dist/esm/safearea2.js +3 -5
  113. package/dist/esm/supports-passive.js +3 -3
  114. package/dist/esm/tabbaritem2.js +42 -58
  115. package/dist/esm/tabs2.js +82 -120
  116. package/dist/esm/tslib.es6.js +47 -0
  117. package/dist/esm/types/src/packages/button/demos/h5/demo1.d.ts +3 -0
  118. package/dist/esm/types/src/packages/button/demos/h5/demo2.d.ts +3 -0
  119. package/dist/esm/types/src/packages/button/demos/h5/demo3.d.ts +3 -0
  120. package/dist/esm/types/src/packages/button/demos/h5/demo4.d.ts +3 -0
  121. package/dist/esm/types/src/packages/button/demos/h5/demo5.d.ts +3 -0
  122. package/dist/esm/types/src/packages/button/demos/h5/demo6.d.ts +3 -0
  123. package/dist/esm/types/src/packages/button/demos/h5/demo7.d.ts +3 -0
  124. package/dist/esm/types/src/packages/button/demos/h5/demo8.d.ts +3 -0
  125. package/dist/esm/types/src/packages/button/demos/h5/demo9.d.ts +3 -0
  126. package/dist/esm/types/src/packages/button/demos/taro/demo1.d.ts +3 -0
  127. package/dist/esm/types/src/packages/button/demos/taro/demo10.d.ts +3 -0
  128. package/dist/esm/types/src/packages/button/demos/taro/demo2.d.ts +3 -0
  129. package/dist/esm/types/src/packages/button/demos/taro/demo3.d.ts +3 -0
  130. package/dist/esm/types/src/packages/button/demos/taro/demo4.d.ts +3 -0
  131. package/dist/esm/types/src/packages/button/demos/taro/demo5.d.ts +3 -0
  132. package/dist/esm/types/src/packages/button/demos/taro/demo6.d.ts +3 -0
  133. package/dist/esm/types/src/packages/button/demos/taro/demo7.d.ts +3 -0
  134. package/dist/esm/types/src/packages/button/demos/taro/demo8.d.ts +3 -0
  135. package/dist/esm/types/src/packages/button/demos/taro/demo9.d.ts +3 -0
  136. package/dist/esm/types/src/packages/configprovider/configprovider.d.ts +1 -0
  137. package/dist/esm/types/src/packages/configprovider/configprovider.taro.d.ts +1 -0
  138. package/dist/esm/types/src/packages/configprovider/index.d.ts +2 -2
  139. package/dist/esm/types/src/packages/configprovider/index.taro.d.ts +2 -2
  140. package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +2 -0
  141. package/dist/esm/typings.js +1 -1
  142. package/dist/esm/use-click-away.js +9 -13
  143. package/dist/esm/use-client-rect.js +4 -4
  144. package/dist/esm/use-props-value.js +10 -15
  145. package/dist/esm/use-refs.js +5 -7
  146. package/dist/esm/use-touch.js +16 -20
  147. package/dist/locales/base.js +1 -1
  148. package/dist/locales/en-US.js +1 -1
  149. package/dist/locales/id-ID.js +1 -1
  150. package/dist/locales/tr-TR.js +1 -1
  151. package/dist/locales/zh-CN.js +1 -1
  152. package/dist/locales/zh-TW.js +1 -1
  153. package/dist/locales/zh-UG.js +1 -1
  154. package/dist/nutui.react.es.js +242 -284
  155. package/dist/nutui.react.umd.js +239 -281
  156. package/dist/style.mjs +1 -1
  157. package/dist/styles/variables-jmapp.scss +4 -0
  158. package/dist/types/packages/button/demos/h5/demo1.d.ts +3 -0
  159. package/dist/types/packages/button/demos/h5/demo2.d.ts +3 -0
  160. package/dist/types/packages/button/demos/h5/demo3.d.ts +3 -0
  161. package/dist/types/packages/button/demos/h5/demo4.d.ts +3 -0
  162. package/dist/types/packages/button/demos/h5/demo5.d.ts +3 -0
  163. package/dist/types/packages/button/demos/h5/demo6.d.ts +3 -0
  164. package/dist/types/packages/button/demos/h5/demo7.d.ts +3 -0
  165. package/dist/types/packages/button/demos/h5/demo8.d.ts +3 -0
  166. package/dist/types/packages/button/demos/h5/demo9.d.ts +3 -0
  167. package/dist/types/packages/button/demos/taro/demo1.d.ts +3 -0
  168. package/dist/types/packages/button/demos/taro/demo10.d.ts +3 -0
  169. package/dist/types/packages/button/demos/taro/demo2.d.ts +3 -0
  170. package/dist/types/packages/button/demos/taro/demo3.d.ts +3 -0
  171. package/dist/types/packages/button/demos/taro/demo4.d.ts +3 -0
  172. package/dist/types/packages/button/demos/taro/demo5.d.ts +3 -0
  173. package/dist/types/packages/button/demos/taro/demo6.d.ts +3 -0
  174. package/dist/types/packages/button/demos/taro/demo7.d.ts +3 -0
  175. package/dist/types/packages/button/demos/taro/demo8.d.ts +3 -0
  176. package/dist/types/packages/button/demos/taro/demo9.d.ts +3 -0
  177. package/dist/types/packages/configprovider/configprovider.d.ts +1 -0
  178. package/dist/types/packages/configprovider/configprovider.taro.d.ts +1 -0
  179. package/dist/types/packages/configprovider/index.d.ts +2 -2
  180. package/dist/types/packages/configprovider/index.taro.d.ts +2 -2
  181. package/dist/types/packages/empty/empty.d.ts +15 -3
  182. package/dist/types/packages/inputnumber/inputnumber.taro.d.ts +2 -0
  183. package/dist/types/packages/rate/rate.d.ts +1 -1
  184. package/package.json +5 -1
package/dist/esm/Range.js CHANGED
@@ -1,123 +1,91 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- function ownKeys(e, r) {
4
- var t = Object.keys(e);
5
- if (Object.getOwnPropertySymbols) {
6
- var o = Object.getOwnPropertySymbols(e);
7
- r && (o = o.filter(function(r2) {
8
- return Object.getOwnPropertyDescriptor(e, r2).enumerable;
9
- })), t.push.apply(t, o);
10
- }
11
- return t;
12
- }
13
- function _objectSpread(e) {
14
- for (var r = 1; r < arguments.length; r++) {
15
- var t = null != arguments[r] ? arguments[r] : {};
16
- r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
17
- _defineProperty(e, r2, t[r2]);
18
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
19
- Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
20
- });
21
- }
22
- return e;
23
- }
24
1
  import React__default, { useState, useRef, useEffect, useCallback } from "react";
25
2
  import classNames from "classnames";
26
3
  import { u as useTouch } from "./use-touch.js";
27
4
  import { g as getRect } from "./use-client-rect.js";
28
5
  import { C as ComponentDefaults } from "./typings.js";
29
6
  import { u as usePropsValue } from "./use-props-value.js";
30
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
31
- range: false,
32
- min: 0,
33
- max: 100,
34
- step: 1,
35
- vertical: false,
36
- marks: {}
37
- });
38
- var Range = function Range2(props) {
39
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, range = _defaultProps$props.range, disabled = _defaultProps$props.disabled, button = _defaultProps$props.button, vertical = _defaultProps$props.vertical, marks = _defaultProps$props.marks, onChange = _defaultProps$props.onChange, onStart = _defaultProps$props.onStart, onEnd = _defaultProps$props.onEnd, minDescription = _defaultProps$props.minDescription, maxDescription = _defaultProps$props.maxDescription, currentDescription = _defaultProps$props.currentDescription, min = _defaultProps$props.min, max = _defaultProps$props.max, step = _defaultProps$props.step, value = _defaultProps$props.value, defaultValue = _defaultProps$props.defaultValue;
40
- var classPrefix = "nut-range";
41
- var _useState = useState(0), _useState2 = _slicedToArray(_useState, 2), buttonIndex = _useState2[0], setButtonIndex = _useState2[1];
42
- var _useState3 = useState("start"), _useState4 = _slicedToArray(_useState3, 2), dragStatus = _useState4[0], setDragStatus = _useState4[1];
43
- var touch = useTouch();
44
- var root = useRef(null);
45
- var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), marksList = _useState6[0], setMarksList = _useState6[1];
46
- var _useState7 = useState(0), _useState8 = _slicedToArray(_useState7, 2), startValue = _useState8[0], setStartValue = _useState8[1];
47
- var handleChange = function handleChange2(value2) {
7
+ import { a as useRtl } from "./configprovider2.js";
8
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { range: false, min: 0, max: 100, step: 1, vertical: false, marks: {} });
9
+ const Range = (props) => {
10
+ const rtl = useRtl();
11
+ const { className, range, disabled, button, vertical, marks, onChange, onStart, onEnd, minDescription, maxDescription, currentDescription, min, max, step, value, defaultValue } = Object.assign(Object.assign({}, defaultProps), props);
12
+ const classPrefix = "nut-range";
13
+ const [buttonIndex, setButtonIndex] = useState(0);
14
+ const [dragStatus, setDragStatus] = useState("start");
15
+ const touch = useTouch();
16
+ const root = useRef(null);
17
+ const [marksList, setMarksList] = useState([]);
18
+ const [startValue, setStartValue] = useState(0);
19
+ const handleChange = (value2) => {
48
20
  onChange && onChange(value2);
49
21
  };
50
- var _usePropsValue = usePropsValue({
22
+ const [current, setCurrent] = usePropsValue({
51
23
  value,
52
24
  defaultValue,
53
25
  finalValue: 0,
54
26
  onChange: handleChange
55
- }), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), current = _usePropsValue2[0], setCurrent = _usePropsValue2[1];
56
- var _useState9 = useState(function() {
57
- return value || defaultValue || 0;
58
- }), _useState10 = _slicedToArray(_useState9, 2), exactValue = _useState10[0], setEaxctValue = _useState10[1];
59
- var marksRef = useRef({});
60
- useEffect(function() {
27
+ });
28
+ const [exactValue, setEaxctValue] = useState(() => value || defaultValue || 0);
29
+ const marksRef = useRef({});
30
+ useEffect(() => {
61
31
  if (marks) {
62
32
  if (Array.isArray(marks)) {
63
- var list = marks.sort(function(a, b) {
64
- return a.value - b.value;
65
- }).filter(function(point) {
66
- return point.value >= min && point.value <= max;
67
- });
68
- setMarksList(list.map(function(mark) {
69
- return mark.value;
70
- }));
71
- list.forEach(function(mark) {
33
+ const list = marks.sort((a, b) => a.value - b.value).filter((point) => point.value >= min && point.value <= max);
34
+ setMarksList(list.map((mark) => mark.value));
35
+ list.forEach((mark) => {
72
36
  marksRef.current[mark.value] = mark.label !== void 0 ? mark.label : mark.value;
73
37
  });
74
38
  } else {
75
- var marksKeys = Object.keys(marks);
76
- var _list = marksKeys.map(parseFloat).sort(function(a, b) {
77
- return a - b;
78
- }).filter(function(point) {
79
- return point >= min && point <= max;
80
- });
81
- setMarksList(_list);
39
+ const marksKeys = Object.keys(marks);
40
+ const list = marksKeys.map(parseFloat).sort((a, b) => a - b).filter((point) => point >= min && point <= max);
41
+ setMarksList(list);
82
42
  }
83
43
  }
84
44
  }, [marks]);
85
- var scope = function scope2() {
45
+ const scope = () => {
86
46
  return max - min;
87
47
  };
88
- var classes = classNames(classPrefix, _defineProperty(_defineProperty({}, "".concat(classPrefix, "-disabled"), disabled), "".concat(classPrefix, "-vertical"), vertical));
89
- var containerClasses = classNames("".concat(classPrefix, "-container"), _defineProperty({}, "".concat(classPrefix, "-container-vertical"), vertical), className);
90
- var markClassName = useCallback(function(mark) {
91
- var classPrefix2 = "nut-range-mark";
92
- var lowerBound = min;
93
- var upperBound = max;
48
+ const classes = classNames(classPrefix, {
49
+ [`${classPrefix}-disabled`]: disabled,
50
+ [`${classPrefix}-vertical`]: vertical
51
+ });
52
+ const containerClasses = classNames(`${classPrefix}-container`, {
53
+ [`${classPrefix}-container-vertical`]: vertical
54
+ }, className);
55
+ const markClassName = useCallback((mark) => {
56
+ const classPrefix2 = "nut-range-mark";
57
+ let lowerBound = min;
58
+ let upperBound = max;
94
59
  if (range && Array.isArray(current)) {
95
60
  lowerBound = current[0];
96
61
  upperBound = current[1];
97
62
  } else {
98
63
  upperBound = current;
99
64
  }
100
- var isActive = mark <= upperBound && mark >= lowerBound;
101
- return ["".concat(classPrefix2, "-text"), "".concat(isActive ? "".concat(classPrefix2, "-text-active") : "")].join(" ");
65
+ const isActive = mark <= upperBound && mark >= lowerBound;
66
+ return [
67
+ `${classPrefix2}-text`,
68
+ `${isActive ? `${classPrefix2}-text-active` : ""}`
69
+ ].join(" ");
102
70
  }, [range, current, min, max]);
103
- var isRange = function isRange2(val) {
71
+ const isRange = (val) => {
104
72
  return !!range && Array.isArray(val);
105
73
  };
106
- var calcMainAxis = function calcMainAxis2() {
107
- var modelVal = current;
74
+ const calcMainAxis = () => {
75
+ const modelVal = current;
108
76
  if (isRange(modelVal)) {
109
- return "".concat((modelVal[1] - modelVal[0]) * 100 / scope(), "%");
77
+ return `${(modelVal[1] - modelVal[0]) * 100 / scope()}%`;
110
78
  }
111
- return "".concat((modelVal - min) * 100 / scope(), "%");
79
+ return `${(modelVal - min) * 100 / scope()}%`;
112
80
  };
113
- var calcOffset = function calcOffset2() {
114
- var modelVal = current;
81
+ const calcOffset = () => {
82
+ const modelVal = current;
115
83
  if (isRange(modelVal)) {
116
- return "".concat((modelVal[0] - min) * 100 / scope(), "%");
84
+ return `${(modelVal[0] - min) * 100 / scope()}%`;
117
85
  }
118
- return "0%";
86
+ return `0%`;
119
87
  };
120
- var barStyle = function barStyle2() {
88
+ const barStyle = () => {
121
89
  if (vertical) {
122
90
  return {
123
91
  height: calcMainAxis(),
@@ -125,43 +93,45 @@ var Range = function Range2(props) {
125
93
  transition: dragStatus ? "none" : void 0
126
94
  };
127
95
  }
96
+ const dir = rtl ? "right" : "left";
128
97
  return {
129
98
  width: calcMainAxis(),
130
- left: calcOffset(),
99
+ [dir]: calcOffset(),
131
100
  transition: dragStatus ? "none" : void 0
132
101
  };
133
102
  };
134
- var marksStyle = function marksStyle2(mark) {
135
- var style = {
136
- left: "".concat((mark - min) / scope() * 100, "%")
103
+ const marksStyle = (mark) => {
104
+ const dir = rtl ? "right" : "left";
105
+ let style = {
106
+ [dir]: `${(mark - min) / scope() * 100}%`
137
107
  };
138
108
  if (vertical) {
139
109
  style = {
140
- top: "".concat((mark - min) / scope() * 100, "%")
110
+ top: `${(mark - min) / scope() * 100}%`
141
111
  };
142
112
  }
143
113
  return style;
144
114
  };
145
- var tickClass = function tickClass2(mark) {
115
+ const tickClass = (mark) => {
146
116
  if (range && Array.isArray(current)) {
147
117
  return mark <= current[1] && mark >= current[0];
148
118
  }
149
119
  return mark <= current;
150
120
  };
151
- var format = function format2(value2) {
121
+ const format = (value2) => {
152
122
  value2 = Math.max(+min, Math.min(value2, +max));
153
123
  return Math.round(value2 / +step) * +step;
154
124
  };
155
- var isSameValue = function isSameValue2(newValue, oldValue) {
125
+ const isSameValue = (newValue, oldValue) => {
156
126
  return JSON.stringify(newValue) === JSON.stringify(oldValue);
157
127
  };
158
- var handleOverlap = function handleOverlap2(value2) {
128
+ const handleOverlap = (value2) => {
159
129
  if (value2[0] > value2[1]) {
160
130
  return value2.slice(0).reverse();
161
131
  }
162
132
  return value2;
163
133
  };
164
- var updateValue = function updateValue2(value2, end) {
134
+ const updateValue = (value2, end) => {
165
135
  if (isRange(value2)) {
166
136
  value2 = handleOverlap(value2).map(format);
167
137
  } else {
@@ -172,23 +142,23 @@ var Range = function Range2(props) {
172
142
  }
173
143
  end && onEnd && onEnd(value2);
174
144
  };
175
- var click = function click2(event) {
145
+ const click = (event) => {
176
146
  if (disabled || !root.current) {
177
147
  return;
178
148
  }
179
149
  setDragStatus("");
180
- var rect = getRect(root.current);
181
- var delta = event.clientX - rect.left;
182
- var total = rect.width;
150
+ const rect = getRect(root.current);
151
+ let delta = event.clientX - rect.left;
152
+ let total = rect.width;
183
153
  if (vertical) {
184
154
  delta = event.clientY - rect.top;
185
155
  total = rect.height;
186
156
  }
187
- var value2 = min + delta / total * scope();
157
+ const value2 = min + delta / total * scope();
188
158
  setEaxctValue(current);
189
159
  if (isRange(current)) {
190
- var _current = _slicedToArray(current, 2), left = _current[0], right = _current[1];
191
- var middle = (left + right) / 2;
160
+ const [left, right] = current;
161
+ const middle = (left + right) / 2;
192
162
  if (value2 <= middle) {
193
163
  updateValue([value2, right], true);
194
164
  } else {
@@ -198,7 +168,7 @@ var Range = function Range2(props) {
198
168
  updateValue(value2, true);
199
169
  }
200
170
  };
201
- var _onTouchStart = function onTouchStart(event) {
171
+ const onTouchStart = (event) => {
202
172
  if (disabled) {
203
173
  return;
204
174
  }
@@ -211,7 +181,7 @@ var Range = function Range2(props) {
211
181
  }
212
182
  setDragStatus("start");
213
183
  };
214
- var _onTouchMove = function onTouchMove(event) {
184
+ const onTouchMove = (event) => {
215
185
  event.stopPropagation();
216
186
  if (disabled || !root.current) {
217
187
  return;
@@ -221,16 +191,17 @@ var Range = function Range2(props) {
221
191
  }
222
192
  touch.move(event);
223
193
  setDragStatus("draging");
224
- var rect = getRect(root.current);
225
- var delta = touch.deltaX.current;
226
- var total = rect.width;
227
- var diff = delta / total * scope();
194
+ const rect = getRect(root.current);
195
+ let delta = touch.deltaX.current;
196
+ let total = rect.width;
197
+ let diff = delta / total * scope();
198
+ diff = rtl ? -diff : diff;
228
199
  if (vertical) {
229
200
  delta = touch.deltaY.current;
230
201
  total = rect.height;
231
202
  diff = delta / total * scope();
232
203
  }
233
- var newValue;
204
+ let newValue;
234
205
  if (isRange(startValue)) {
235
206
  newValue = exactValue.slice();
236
207
  newValue[buttonIndex] = startValue[buttonIndex] + diff;
@@ -240,7 +211,7 @@ var Range = function Range2(props) {
240
211
  setEaxctValue(newValue);
241
212
  updateValue(newValue);
242
213
  };
243
- var onTouchEnd = function onTouchEnd2() {
214
+ const onTouchEnd = () => {
244
215
  if (disabled) {
245
216
  return;
246
217
  }
@@ -249,78 +220,43 @@ var Range = function Range2(props) {
249
220
  }
250
221
  setDragStatus("");
251
222
  };
252
- var curValue = function curValue2(idx) {
253
- var modelVal = current;
254
- var value2 = typeof idx === "number" ? modelVal[idx] : modelVal;
223
+ const curValue = (idx) => {
224
+ const modelVal = current;
225
+ const value2 = typeof idx === "number" ? modelVal[idx] : modelVal;
255
226
  return value2;
256
227
  };
257
- var renderButton = function renderButton2(index) {
258
- return React__default.createElement(React__default.Fragment, null, button || React__default.createElement("div", {
259
- className: "nut-range-button"
260
- }, currentDescription !== null && React__default.createElement("div", {
261
- className: "number"
262
- }, currentDescription ? currentDescription(curValue(index)) : curValue(index))));
228
+ const renderButton = (index) => {
229
+ return React__default.createElement(React__default.Fragment, null, button || React__default.createElement("div", { className: "nut-range-button" }, currentDescription !== null && React__default.createElement("div", { className: "number" }, currentDescription ? currentDescription(curValue(index)) : curValue(index))));
263
230
  };
264
- return React__default.createElement("div", {
265
- className: containerClasses
266
- }, minDescription !== null && React__default.createElement("div", {
267
- className: "min"
268
- }, minDescription || min), React__default.createElement("div", {
269
- ref: root,
270
- className: classes,
271
- onClick: function onClick(e) {
272
- return click(e);
273
- }
274
- }, marksList.length > 0 && React__default.createElement("div", {
275
- className: "nut-range-mark"
276
- }, marksList.map(function(mark) {
277
- return React__default.createElement("span", {
278
- key: mark,
279
- className: markClassName(mark),
280
- style: marksStyle(mark)
281
- }, Array.isArray(marks) ? marksRef.current[mark] : marks[mark], React__default.createElement("span", {
282
- className: classNames("nut-range-tick", {
283
- active: tickClass(mark)
284
- })
285
- }));
286
- })), React__default.createElement("div", {
287
- className: "nut-range-bar",
288
- style: barStyle()
289
- }, range ? [0, 1].map(function(item, index) {
290
- return React__default.createElement("div", {
291
- key: index,
292
- className: "".concat(index === 0 ? "nut-range-button-wrapper-left" : "", "\n ").concat(index === 1 ? "nut-range-button-wrapper-right" : ""),
293
- onTouchStart: function onTouchStart(e) {
294
- if (typeof index === "number") {
295
- setButtonIndex(index);
296
- }
297
- _onTouchStart(e);
298
- },
299
- onTouchMove: function onTouchMove(e) {
300
- return _onTouchMove(e);
301
- },
302
- onTouchEnd,
303
- onTouchCancel: onTouchEnd,
304
- onClick: function onClick(e) {
305
- return e.stopPropagation();
306
- }
307
- }, renderButton(index));
308
- }) : React__default.createElement("div", {
309
- className: "nut-range-button-wrapper",
310
- onTouchStart: function onTouchStart(e) {
311
- return _onTouchStart(e);
312
- },
313
- onTouchMove: function onTouchMove(e) {
314
- return _onTouchMove(e);
315
- },
316
- onTouchEnd,
317
- onTouchCancel: onTouchEnd,
318
- onClick: function onClick(e) {
319
- return e.stopPropagation();
320
- }
321
- }, renderButton()))), maxDescription !== null && React__default.createElement("div", {
322
- className: "max"
323
- }, maxDescription || max));
231
+ return React__default.createElement(
232
+ "div",
233
+ { className: containerClasses },
234
+ minDescription !== null && React__default.createElement("div", { className: "min" }, minDescription || min),
235
+ React__default.createElement(
236
+ "div",
237
+ { ref: root, className: classes, onClick: (e) => click(e) },
238
+ marksList.length > 0 && React__default.createElement("div", { className: "nut-range-mark" }, marksList.map((mark) => {
239
+ return React__default.createElement(
240
+ "span",
241
+ { key: mark, className: markClassName(mark), style: marksStyle(mark) },
242
+ Array.isArray(marks) ? marksRef.current[mark] : marks[mark],
243
+ React__default.createElement("span", { className: classNames("nut-range-tick", {
244
+ active: tickClass(mark)
245
+ }) })
246
+ );
247
+ })),
248
+ React__default.createElement("div", { className: "nut-range-bar", style: barStyle() }, range ? [0, 1].map((item, index) => {
249
+ return React__default.createElement("div", { key: index, className: `${index === 0 ? "nut-range-button-wrapper-left" : ""}
250
+ ${index === 1 ? "nut-range-button-wrapper-right" : ""}`, onTouchStart: (e) => {
251
+ if (typeof index === "number") {
252
+ setButtonIndex(index);
253
+ }
254
+ onTouchStart(e);
255
+ }, onTouchMove: (e) => onTouchMove(e), onTouchEnd, onTouchCancel: onTouchEnd, onClick: (e) => e.stopPropagation() }, renderButton(index));
256
+ }) : React__default.createElement("div", { className: "nut-range-button-wrapper", onTouchStart: (e) => onTouchStart(e), onTouchMove: (e) => onTouchMove(e), onTouchEnd, onTouchCancel: onTouchEnd, onClick: (e) => e.stopPropagation() }, renderButton()))
257
+ ),
258
+ maxDescription !== null && React__default.createElement("div", { className: "max" }, maxDescription || max)
259
+ );
324
260
  };
325
261
  Range.defaultProps = defaultProps;
326
262
  Range.displayName = "NutRange";
package/dist/esm/Rate.js CHANGED
@@ -1,26 +1,3 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- function ownKeys(e, r) {
4
- var t = Object.keys(e);
5
- if (Object.getOwnPropertySymbols) {
6
- var o = Object.getOwnPropertySymbols(e);
7
- r && (o = o.filter(function(r2) {
8
- return Object.getOwnPropertyDescriptor(e, r2).enumerable;
9
- })), t.push.apply(t, o);
10
- }
11
- return t;
12
- }
13
- function _objectSpread(e) {
14
- for (var r = 1; r < arguments.length; r++) {
15
- var t = null != arguments[r] ? arguments[r] : {};
16
- r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
17
- _defineProperty(e, r2, t[r2]);
18
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
19
- Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
20
- });
21
- }
22
- return e;
23
- }
24
1
  import React__default, { useState, useRef, useEffect } from "react";
25
2
  import classNames from "classnames";
26
3
  import { StarFill } from "@nutui/icons-react";
@@ -28,63 +5,54 @@ import { C as ComponentDefaults } from "./typings.js";
28
5
  import { u as usePropsValue } from "./use-props-value.js";
29
6
  import { g as getRect } from "./use-client-rect.js";
30
7
  import { u as useRefs } from "./use-refs.js";
31
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
32
- count: 5,
33
- min: 0,
34
- checkedIcon: null,
35
- uncheckedIcon: null,
36
- disabled: false,
37
- readOnly: false,
38
- allowHalf: false,
39
- touchable: false
40
- });
41
- var Rate = function Rate2(props) {
42
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, count = _defaultProps$props.count, value = _defaultProps$props.value, defaultValue = _defaultProps$props.defaultValue, min = _defaultProps$props.min, checkedIcon = _defaultProps$props.checkedIcon, uncheckedIcon = _defaultProps$props.uncheckedIcon, disabled = _defaultProps$props.disabled, readOnly = _defaultProps$props.readOnly, allowHalf = _defaultProps$props.allowHalf, touchable = _defaultProps$props.touchable, onChange = _defaultProps$props.onChange, onTouchEnd = _defaultProps$props.onTouchEnd;
43
- var classPrefix = "nut-rate";
44
- var _useState = useState([1, 2, 3, 4, 5]), _useState2 = _slicedToArray(_useState, 2), countArray = _useState2[0], setCountArray = _useState2[1];
45
- var _useRefs = useRefs(), _useRefs2 = _slicedToArray(_useRefs, 2), refs = _useRefs2[0], setRefs = _useRefs2[1];
46
- var rateRects = useRef([]);
47
- var _usePropsValue = usePropsValue({
8
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { count: 5, min: 0, checkedIcon: null, uncheckedIcon: null, disabled: false, readOnly: false, allowHalf: false, touchable: false });
9
+ const Rate = (props) => {
10
+ const { className, style, count, value, defaultValue, min, checkedIcon, uncheckedIcon, disabled, readOnly, allowHalf, touchable, onChange, onTouchEnd } = Object.assign(Object.assign({}, defaultProps), props);
11
+ const classPrefix = "nut-rate";
12
+ const [countArray, setCountArray] = useState([1, 2, 3, 4, 5]);
13
+ const [refs, setRefs] = useRefs();
14
+ const rateRects = useRef([]);
15
+ const [score, setScore] = usePropsValue({
48
16
  value,
49
17
  defaultValue: Math.max(defaultValue || 0, min),
50
18
  finalValue: 0,
51
19
  onChange
52
- }), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), score = _usePropsValue2[0], setScore = _usePropsValue2[1];
53
- useEffect(function() {
54
- var tmp = [];
55
- for (var i = 1; i <= Number(count); i++) {
20
+ });
21
+ useEffect(() => {
22
+ const tmp = [];
23
+ for (let i = 1; i <= Number(count); i++) {
56
24
  tmp.push(i);
57
25
  }
58
26
  setCountArray(tmp);
59
27
  }, [count]);
60
- var renderIcon = function renderIcon2(n) {
28
+ const renderIcon = (n) => {
61
29
  return n <= score ? checkedIcon || React__default.createElement(StarFill, null) : uncheckedIcon || (checkedIcon ? React__default.cloneElement(checkedIcon, {
62
30
  color: void 0
63
31
  }) : React__default.createElement(StarFill, null));
64
32
  };
65
- var _onClick = function onClick(e, index) {
33
+ const onClick = (e, index) => {
66
34
  e.preventDefault();
67
35
  e.stopPropagation();
68
36
  if (disabled || readOnly)
69
37
  return;
70
- var value2 = 0;
38
+ let value2 = 0;
71
39
  if (!(index === 1 && score === index)) {
72
40
  value2 = index;
73
41
  }
74
42
  value2 = Math.max(value2, min);
75
43
  setScore(value2);
76
44
  };
77
- var onHalfClick = function onHalfClick2(event, n) {
45
+ const onHalfClick = (event, n) => {
78
46
  event.preventDefault();
79
47
  event.stopPropagation();
80
- var value2 = Math.max(min, n - 0.5);
48
+ const value2 = Math.max(min, n - 0.5);
81
49
  setScore(value2);
82
50
  };
83
- var getScoreByPosition = function getScoreByPosition2(x) {
84
- var _rateRects$current;
85
- if ((_rateRects$current = rateRects.current) !== null && _rateRects$current !== void 0 && _rateRects$current.length) {
86
- for (var index = rateRects.current.length - 1; index >= 0; index--) {
87
- var item = rateRects.current[index];
51
+ const getScoreByPosition = (x) => {
52
+ var _a;
53
+ if ((_a = rateRects.current) === null || _a === void 0 ? void 0 : _a.length) {
54
+ for (let index = rateRects.current.length - 1; index >= 0; index--) {
55
+ const item = rateRects.current[index];
88
56
  if (item && x > item.left) {
89
57
  return allowHalf ? index + (x > item.left + item.width / 2 ? 1 : 0.5) : index + 1;
90
58
  }
@@ -92,15 +60,15 @@ var Rate = function Rate2(props) {
92
60
  return 0;
93
61
  }
94
62
  };
95
- var updateRects = function updateRects2() {
96
- for (var index = 0; index < refs.length; index++) {
97
- var item = refs[index];
63
+ const updateRects = () => {
64
+ for (let index = 0; index < refs.length; index++) {
65
+ const item = refs[index];
98
66
  if (item) {
99
67
  rateRects.current[index] = getRect(item);
100
68
  }
101
69
  }
102
70
  };
103
- var handleTouchStart = function handleTouchStart2(e) {
71
+ const handleTouchStart = (e) => {
104
72
  if (!touchable || readOnly || disabled) {
105
73
  return;
106
74
  }
@@ -110,7 +78,7 @@ var Rate = function Rate2(props) {
110
78
  e.stopPropagation();
111
79
  updateRects();
112
80
  };
113
- var handleTouchMove = function handleTouchMove2(e) {
81
+ const handleTouchMove = (e) => {
114
82
  if (!touchable || readOnly || disabled) {
115
83
  return;
116
84
  }
@@ -118,12 +86,12 @@ var Rate = function Rate2(props) {
118
86
  e.preventDefault();
119
87
  }
120
88
  e.stopPropagation();
121
- var val = getScoreByPosition(e.touches[0].clientX);
89
+ const val = getScoreByPosition(e.touches[0].clientX);
122
90
  if (val !== void 0) {
123
91
  setScore(Math.max(min, val));
124
92
  }
125
93
  };
126
- var handleTouchEnd = function handleTouchEnd2(e) {
94
+ const handleTouchEnd = (e) => {
127
95
  if (!touchable || readOnly || disabled) {
128
96
  return;
129
97
  }
@@ -131,27 +99,23 @@ var Rate = function Rate2(props) {
131
99
  e.preventDefault();
132
100
  }
133
101
  e.stopPropagation();
134
- var val = getScoreByPosition(e.changedTouches[0].clientX);
102
+ const val = getScoreByPosition(e.changedTouches[0].clientX);
135
103
  if (val !== void 0) {
136
104
  setScore(Math.max(min, val));
137
105
  onTouchEnd && onTouchEnd(e, Math.max(min, val));
138
106
  }
139
107
  };
140
- var rateRef = useRef(null);
141
- useEffect(function() {
142
- var element = rateRef.current;
108
+ const rateRef = useRef(null);
109
+ useEffect(() => {
110
+ const element = rateRef.current;
143
111
  if (element) {
144
112
  element.addEventListener("touchstart", handleTouchStart, {
145
113
  passive: false
146
114
  });
147
- element.addEventListener("touchmove", handleTouchMove, {
148
- passive: false
149
- });
150
- element.addEventListener("touchend", handleTouchEnd, {
151
- passive: false
152
- });
115
+ element.addEventListener("touchmove", handleTouchMove, { passive: false });
116
+ element.addEventListener("touchend", handleTouchEnd, { passive: false });
153
117
  }
154
- return function() {
118
+ return () => {
155
119
  if (element) {
156
120
  element.removeEventListener("touchstart", handleTouchStart);
157
121
  element.removeEventListener("touchmove", handleTouchMove);
@@ -159,29 +123,18 @@ var Rate = function Rate2(props) {
159
123
  }
160
124
  };
161
125
  }, []);
162
- return React__default.createElement("div", {
163
- className: classNames(classPrefix, {
164
- disabled,
165
- readonly: readOnly
166
- }, className),
167
- ref: rateRef,
168
- style
169
- }, countArray.map(function(n, index) {
170
- return React__default.createElement("div", {
171
- className: "".concat(classPrefix, "-item"),
172
- key: n,
173
- ref: setRefs(index),
174
- onClick: function onClick(event) {
175
- return _onClick(event, n);
176
- }
177
- }, React__default.createElement("div", {
178
- className: classNames("".concat(classPrefix, "-item-icon"), _defineProperty({}, "".concat(classPrefix, "-item-icon-disabled"), disabled || n > score))
179
- }, renderIcon(n)), allowHalf && score > n - 1 && React__default.createElement("div", {
180
- className: classNames("".concat(classPrefix, "-item-half"), "".concat(classPrefix, "-item-icon"), "".concat(classPrefix, "-item-icon-half")),
181
- onClick: function onClick(event) {
182
- return onHalfClick(event, n);
183
- }
184
- }, renderIcon(n)));
126
+ return React__default.createElement("div", { className: classNames(classPrefix, {
127
+ disabled,
128
+ readonly: readOnly
129
+ }, className), ref: rateRef, style }, countArray.map((n, index) => {
130
+ return React__default.createElement(
131
+ "div",
132
+ { className: `${classPrefix}-item`, key: n, ref: setRefs(index), onClick: (event) => onClick(event, n) },
133
+ React__default.createElement("div", { className: classNames(`${classPrefix}-item-icon`, {
134
+ [`${classPrefix}-item-icon-disabled`]: disabled || n > score
135
+ }) }, renderIcon(n)),
136
+ allowHalf && score > n - 1 && React__default.createElement("div", { className: classNames(`${classPrefix}-item-half`, `${classPrefix}-item-icon`, `${classPrefix}-item-icon-half`), onClick: (event) => onHalfClick(event, n) }, renderIcon(n))
137
+ );
185
138
  }));
186
139
  };
187
140
  Rate.defaultProps = defaultProps;