@nutui/nutui-react 0.1.0-beta.1

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 (240) hide show
  1. package/README.md +151 -0
  2. package/dist/esm/ActionSheet.js +110 -0
  3. package/dist/esm/Address.js +597 -0
  4. package/dist/esm/AnimatingNumbers.js +157 -0
  5. package/dist/esm/Avatar.js +70 -0
  6. package/dist/esm/BackTop.js +152 -0
  7. package/dist/esm/Badge.js +70 -0
  8. package/dist/esm/Barrage.js +101 -0
  9. package/dist/esm/Button.js +4 -0
  10. package/dist/esm/Cell.js +92 -0
  11. package/dist/esm/Checkbox.js +95 -0
  12. package/dist/esm/CheckboxGroup.js +107 -0
  13. package/dist/esm/CircleProgress.js +99 -0
  14. package/dist/esm/Collapse.js +108 -0
  15. package/dist/esm/Divider.js +38 -0
  16. package/dist/esm/Drag.js +192 -0
  17. package/dist/esm/Elevator.js +205 -0
  18. package/dist/esm/FixedNav.js +105 -0
  19. package/dist/esm/Icon.js +5 -0
  20. package/dist/esm/Infiniteloading.js +234 -0
  21. package/dist/esm/Input.js +186 -0
  22. package/dist/esm/InputNumber.js +194 -0
  23. package/dist/esm/Layout.js +20 -0
  24. package/dist/esm/NavBar.js +67 -0
  25. package/dist/esm/NoticeBar.js +340 -0
  26. package/dist/esm/Notify.js +251 -0
  27. package/dist/esm/Overlay.js +6 -0
  28. package/dist/esm/Pagination.js +199 -0
  29. package/dist/esm/Popup.js +195 -0
  30. package/dist/esm/Price.js +95 -0
  31. package/dist/esm/Radio.js +111 -0
  32. package/dist/esm/RadioGroup.js +103 -0
  33. package/dist/esm/Range.js +451 -0
  34. package/dist/esm/Rate.js +122 -0
  35. package/dist/esm/Signature.js +173 -0
  36. package/dist/esm/Step.js +73 -0
  37. package/dist/esm/Steps.js +44 -0
  38. package/dist/esm/Tabbar.js +74 -0
  39. package/dist/esm/TabbarItem.js +70 -0
  40. package/dist/esm/Tag.js +108 -0
  41. package/dist/esm/TextArea.js +126 -0
  42. package/dist/esm/Toast.js +8 -0
  43. package/dist/esm/Uploader.js +482 -0
  44. package/dist/esm/UserContext-68f62e66.js +3 -0
  45. package/dist/esm/bem-893ad28d.js +8 -0
  46. package/dist/esm/button-345fb015.js +110 -0
  47. package/dist/esm/context-aa058329.js +6 -0
  48. package/dist/esm/icon-63c0d58f.js +70 -0
  49. package/dist/esm/nutui-react.es.js +42 -0
  50. package/dist/esm/overlay-418bcf84.js +94 -0
  51. package/dist/esm/toast-420b65b7.js +294 -0
  52. package/dist/esm/types/src/packages/actionsheet/actionsheet.d.ts +20 -0
  53. package/dist/esm/types/src/packages/actionsheet/index.d.ts +2 -0
  54. package/dist/esm/types/src/packages/address/address.d.ts +56 -0
  55. package/dist/esm/types/src/packages/address/customRender.d.ts +18 -0
  56. package/dist/esm/types/src/packages/address/existRender.d.ts +18 -0
  57. package/dist/esm/types/src/packages/address/index.d.ts +2 -0
  58. package/dist/esm/types/src/packages/animatingnumbers/animatingnumbers.d.ts +12 -0
  59. package/dist/esm/types/src/packages/animatingnumbers/countup.d.ts +11 -0
  60. package/dist/esm/types/src/packages/animatingnumbers/index.d.ts +2 -0
  61. package/dist/esm/types/src/packages/avatar/avatar.d.ts +14 -0
  62. package/dist/esm/types/src/packages/avatar/index.d.ts +2 -0
  63. package/dist/esm/types/src/packages/backtop/backtop.d.ts +15 -0
  64. package/dist/esm/types/src/packages/backtop/index.d.ts +2 -0
  65. package/dist/esm/types/src/packages/badge/badge.d.ts +13 -0
  66. package/dist/esm/types/src/packages/badge/index.d.ts +2 -0
  67. package/dist/esm/types/src/packages/barrage/barrage.d.ts +12 -0
  68. package/dist/esm/types/src/packages/barrage/index.d.ts +2 -0
  69. package/dist/esm/types/src/packages/button/button.d.ts +20 -0
  70. package/dist/esm/types/src/packages/button/index.d.ts +2 -0
  71. package/dist/esm/types/src/packages/cell/cell.d.ts +16 -0
  72. package/dist/esm/types/src/packages/cell/index.d.ts +2 -0
  73. package/dist/esm/types/src/packages/cellgroup/cellgroup.d.ts +6 -0
  74. package/dist/esm/types/src/packages/cellgroup/index.d.ts +2 -0
  75. package/dist/esm/types/src/packages/checkbox/checkbox.d.ts +15 -0
  76. package/dist/esm/types/src/packages/checkbox/index.d.ts +2 -0
  77. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +7 -0
  78. package/dist/esm/types/src/packages/checkboxgroup/index.d.ts +2 -0
  79. package/dist/esm/types/src/packages/circleprogress/circleprogress.d.ts +9 -0
  80. package/dist/esm/types/src/packages/circleprogress/index.d.ts +2 -0
  81. package/dist/esm/types/src/packages/col/col.d.ts +7 -0
  82. package/dist/esm/types/src/packages/col/index.d.ts +2 -0
  83. package/dist/esm/types/src/packages/collapse/collapse.d.ts +11 -0
  84. package/dist/esm/types/src/packages/collapse/index.d.ts +2 -0
  85. package/dist/esm/types/src/packages/collapseitem/collapseitem.d.ts +18 -0
  86. package/dist/esm/types/src/packages/collapseitem/index.d.ts +2 -0
  87. package/dist/esm/types/src/packages/divider/divider.d.ts +9 -0
  88. package/dist/esm/types/src/packages/divider/index.d.ts +2 -0
  89. package/dist/esm/types/src/packages/drag/drag.d.ts +14 -0
  90. package/dist/esm/types/src/packages/drag/index.d.ts +2 -0
  91. package/dist/esm/types/src/packages/elevator/elevator.d.ts +17 -0
  92. package/dist/esm/types/src/packages/elevator/index.d.ts +2 -0
  93. package/dist/esm/types/src/packages/fixednav/fixednav.d.ts +22 -0
  94. package/dist/esm/types/src/packages/fixednav/index.d.ts +2 -0
  95. package/dist/esm/types/src/packages/icon/icon.d.ts +12 -0
  96. package/dist/esm/types/src/packages/icon/index.d.ts +2 -0
  97. package/dist/esm/types/src/packages/infiniteloading/index.d.ts +2 -0
  98. package/dist/esm/types/src/packages/infiniteloading/infiniteloading.d.ts +20 -0
  99. package/dist/esm/types/src/packages/input/index.d.ts +2 -0
  100. package/dist/esm/types/src/packages/input/input.d.ts +20 -0
  101. package/dist/esm/types/src/packages/input/util.d.ts +1 -0
  102. package/dist/esm/types/src/packages/inputnumber/index.d.ts +2 -0
  103. package/dist/esm/types/src/packages/inputnumber/inputnumber.d.ts +22 -0
  104. package/dist/esm/types/src/packages/layout/index.d.ts +2 -0
  105. package/dist/esm/types/src/packages/layout/layout.d.ts +4 -0
  106. package/dist/esm/types/src/packages/navbar/index.d.ts +2 -0
  107. package/dist/esm/types/src/packages/navbar/navbar.d.ts +15 -0
  108. package/dist/esm/types/src/packages/noticebar/index.d.ts +2 -0
  109. package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +23 -0
  110. package/dist/esm/types/src/packages/notify/Notification.d.ts +31 -0
  111. package/dist/esm/types/src/packages/notify/index.d.ts +2 -0
  112. package/dist/esm/types/src/packages/notify/notify.d.ts +10 -0
  113. package/dist/esm/types/src/packages/nutui.react.build.d.ts +43 -0
  114. package/dist/esm/types/src/packages/nutui.react.d.ts +43 -0
  115. package/dist/esm/types/src/packages/overlay/index.d.ts +2 -0
  116. package/dist/esm/types/src/packages/overlay/overlay.d.ts +12 -0
  117. package/dist/esm/types/src/packages/pagination/index.d.ts +2 -0
  118. package/dist/esm/types/src/packages/pagination/pagination.d.ts +19 -0
  119. package/dist/esm/types/src/packages/popup/index.d.ts +2 -0
  120. package/dist/esm/types/src/packages/popup/popup.d.ts +23 -0
  121. package/dist/esm/types/src/packages/price/index.d.ts +2 -0
  122. package/dist/esm/types/src/packages/price/price.d.ts +11 -0
  123. package/dist/esm/types/src/packages/radio/context.d.ts +5 -0
  124. package/dist/esm/types/src/packages/radio/index.d.ts +2 -0
  125. package/dist/esm/types/src/packages/radio/radio.d.ts +21 -0
  126. package/dist/esm/types/src/packages/radiogroup/index.d.ts +2 -0
  127. package/dist/esm/types/src/packages/radiogroup/radiogroup.d.ts +11 -0
  128. package/dist/esm/types/src/packages/range/index.d.ts +2 -0
  129. package/dist/esm/types/src/packages/range/range.d.ts +23 -0
  130. package/dist/esm/types/src/packages/rate/index.d.ts +2 -0
  131. package/dist/esm/types/src/packages/rate/rate.d.ts +16 -0
  132. package/dist/esm/types/src/packages/row/UserContext.d.ts +1 -0
  133. package/dist/esm/types/src/packages/row/index.d.ts +2 -0
  134. package/dist/esm/types/src/packages/row/row.d.ts +9 -0
  135. package/dist/esm/types/src/packages/signature/index.d.ts +2 -0
  136. package/dist/esm/types/src/packages/signature/signature.d.ts +11 -0
  137. package/dist/esm/types/src/packages/step/index.d.ts +2 -0
  138. package/dist/esm/types/src/packages/step/step.d.ts +12 -0
  139. package/dist/esm/types/src/packages/steps/UserContext.d.ts +1 -0
  140. package/dist/esm/types/src/packages/steps/index.d.ts +2 -0
  141. package/dist/esm/types/src/packages/steps/steps.d.ts +9 -0
  142. package/dist/esm/types/src/packages/switch/index.d.ts +2 -0
  143. package/dist/esm/types/src/packages/switch/switch.d.ts +14 -0
  144. package/dist/esm/types/src/packages/tabbar/index.d.ts +2 -0
  145. package/dist/esm/types/src/packages/tabbar/tabbar.d.ts +13 -0
  146. package/dist/esm/types/src/packages/tabbaritem/index.d.ts +2 -0
  147. package/dist/esm/types/src/packages/tabbaritem/tabbarItem.d.ts +13 -0
  148. package/dist/esm/types/src/packages/tag/index.d.ts +2 -0
  149. package/dist/esm/types/src/packages/tag/tag.d.ts +15 -0
  150. package/dist/esm/types/src/packages/textarea/index.d.ts +2 -0
  151. package/dist/esm/types/src/packages/textarea/textarea.d.ts +18 -0
  152. package/dist/esm/types/src/packages/toast/Notification.d.ts +37 -0
  153. package/dist/esm/types/src/packages/toast/index.d.ts +2 -0
  154. package/dist/esm/types/src/packages/toast/toast.d.ts +11 -0
  155. package/dist/esm/types/src/packages/uploader/index.d.ts +2 -0
  156. package/dist/esm/types/src/packages/uploader/upload.d.ts +20 -0
  157. package/dist/esm/types/src/packages/uploader/uploader.d.ts +59 -0
  158. package/dist/esm/types/src/utils/bem.d.ts +2 -0
  159. package/dist/esm/types/src/utils/create/bem.d.ts +2 -0
  160. package/dist/esm/types/src/utils/create/index.d.ts +1 -0
  161. package/dist/esm/types/src/utils/date.d.ts +49 -0
  162. package/dist/esm/types/src/utils/index.d.ts +1 -0
  163. package/dist/esm/types/src/utils/raf.d.ts +2 -0
  164. package/dist/esm/types/src/utils/useRect/index.d.ts +17 -0
  165. package/dist/esm/types/src/utils/useTouch/index.d.ts +16 -0
  166. package/dist/nutui.react.es.js +6647 -0
  167. package/dist/nutui.react.umd.js +28 -0
  168. package/dist/packages/actionsheet/actionsheet.scss +68 -0
  169. package/dist/packages/address/address.scss +145 -0
  170. package/dist/packages/animatingnumbers/animatingnumbers.scss +3 -0
  171. package/dist/packages/animatingnumbers/countup.scss +36 -0
  172. package/dist/packages/avatar/avatar.scss +48 -0
  173. package/dist/packages/backtop/backtop.scss +20 -0
  174. package/dist/packages/badge/badge.scss +39 -0
  175. package/dist/packages/barrage/barrage.scss +48 -0
  176. package/dist/packages/button/button.scss +157 -0
  177. package/dist/packages/cell/cell.scss +79 -0
  178. package/dist/packages/cellgroup/cellgroup.scss +24 -0
  179. package/dist/packages/checkbox/checkbox.scss +20 -0
  180. package/dist/packages/checkboxgroup/checkboxgroup.scss +0 -0
  181. package/dist/packages/circleprogress/circleprogress.scss +65 -0
  182. package/dist/packages/col/col.scss +24 -0
  183. package/dist/packages/collapse/collapse.scss +1 -0
  184. package/dist/packages/collapseitem/collapseitem.scss +82 -0
  185. package/dist/packages/divider/divider.scss +54 -0
  186. package/dist/packages/drag/drag.scss +8 -0
  187. package/dist/packages/elevator/elevator.scss +71 -0
  188. package/dist/packages/fixednav/fixednav.scss +129 -0
  189. package/dist/packages/icon/icon.scss +40 -0
  190. package/dist/packages/infiniteloading/infiniteloading.scss +47 -0
  191. package/dist/packages/input/input.scss +47 -0
  192. package/dist/packages/inputnumber/inputnumber.scss +36 -0
  193. package/dist/packages/layout/layout.scss +2 -0
  194. package/dist/packages/navbar/navbar.scss +38 -0
  195. package/dist/packages/noticebar/noticebar.scss +111 -0
  196. package/dist/packages/notify/notify.scss +80 -0
  197. package/dist/packages/overlay/overlay.scss +50 -0
  198. package/dist/packages/pagination/pagination.scss +50 -0
  199. package/dist/packages/popup/popup.scss +149 -0
  200. package/dist/packages/price/price.scss +22 -0
  201. package/dist/packages/radio/radio.scss +58 -0
  202. package/dist/packages/radiogroup/radiogroup.scss +22 -0
  203. package/dist/packages/range/custom.scss +9 -0
  204. package/dist/packages/range/range.scss +96 -0
  205. package/dist/packages/rate/rate.scss +34 -0
  206. package/dist/packages/row/row.scss +51 -0
  207. package/dist/packages/signature/signature.scss +16 -0
  208. package/dist/packages/step/step.scss +190 -0
  209. package/dist/packages/steps/steps.scss +7 -0
  210. package/dist/packages/switch/switch.scss +60 -0
  211. package/dist/packages/tabbar/tabbar.scss +20 -0
  212. package/dist/packages/tabbaritem/tabbarItem.scss +61 -0
  213. package/dist/packages/tag/tag.scss +52 -0
  214. package/dist/packages/textarea/textarea.scss +39 -0
  215. package/dist/packages/toast/toast.scss +94 -0
  216. package/dist/packages/uploader/uploader.scss +72 -0
  217. package/dist/style.css +1 -0
  218. package/dist/style.es.js +7 -0
  219. package/dist/styles/animation/drop.scss +24 -0
  220. package/dist/styles/animation/ease.scss +23 -0
  221. package/dist/styles/animation/fade.scss +20 -0
  222. package/dist/styles/animation/index.scss +6 -0
  223. package/dist/styles/animation/rotate.scss +10 -0
  224. package/dist/styles/animation/zoom.scss +26 -0
  225. package/dist/styles/font/demo.css +539 -0
  226. package/dist/styles/font/demo_index.html +2718 -0
  227. package/dist/styles/font/iconfont.css +455 -0
  228. package/dist/styles/font/iconfont.eot +0 -0
  229. package/dist/styles/font/iconfont.js +63 -0
  230. package/dist/styles/font/iconfont.json +779 -0
  231. package/dist/styles/font/iconfont.svg +356 -0
  232. package/dist/styles/font/iconfont.ttf +0 -0
  233. package/dist/styles/font/iconfont.woff +0 -0
  234. package/dist/styles/font/iconfont.woff2 +0 -0
  235. package/dist/styles/mixins/index.scss +2 -0
  236. package/dist/styles/mixins/make-animation.scss +24 -0
  237. package/dist/styles/mixins/text-ellipsis.scss +20 -0
  238. package/dist/styles/themes/default.scss +46 -0
  239. package/dist/styles/variables.scss +326 -0
  240. package/package.json +120 -0
@@ -0,0 +1,103 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ var _excluded = ["className", "value", "onChange", "textPosition", "direction"];
5
+
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
+
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+
10
+ import React__default, { useState, useEffect } from 'react';
11
+ import { R as RadioContext } from './context-aa058329.js';
12
+ import { c as cn } from './bem-893ad28d.js';
13
+ import '@bem-react/classname';
14
+ var defaultProps = {
15
+ value: null,
16
+ textPosition: 'right',
17
+ onChange: function onChange(value) {},
18
+ direction: 'vertical'
19
+ };
20
+ var RadioGroup = React__default.forwardRef(function (props, ref) {
21
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
22
+ children = _defaultProps$props.children;
23
+
24
+ cn('RadioGroup');
25
+
26
+ var className = props.className,
27
+ value = props.value,
28
+ _onChange = props.onChange,
29
+ textPosition = props.textPosition,
30
+ direction = props.direction,
31
+ rest = _objectWithoutProperties(props, _excluded);
32
+
33
+ var _useState = useState(value),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ val2State = _useState2[0],
36
+ setVal2State = _useState2[1]; // useImperativeHandle(ref, () => ({
37
+ // toggleAll(state: boolean) {
38
+ // console.log(state)
39
+ // if (state === false) {
40
+ // setInnerValue([])
41
+ // } else {
42
+ // const childrenLabel: string[] = []
43
+ // React.Children.map(children, (child) => {
44
+ // const childProps = (child as any).props
45
+ // childrenLabel.push(childProps.label || (child as any).children)
46
+ // })
47
+ // setInnerValue(childrenLabel)
48
+ // }
49
+ // },
50
+ // }))
51
+
52
+
53
+ useEffect(function () {
54
+ setVal2State(value);
55
+ }, [value]); // function handleChildChange(state: boolean, label: string) {
56
+ // if (innerValue) {
57
+ // let clippedValue = []
58
+ // if (state) {
59
+ // clippedValue = [...innerValue, label]
60
+ // } else {
61
+ // innerValue?.splice(innerValue?.indexOf(label), 1)
62
+ // clippedValue = [...innerValue]
63
+ // }
64
+ // setInnerValue(clippedValue)
65
+ // onChange && onChange(clippedValue)
66
+ // }
67
+ // }
68
+
69
+ function validateChildChecked(child) {
70
+ if (val2State === null) return false;
71
+ return val2State === child.props.value;
72
+ }
73
+
74
+ function cloneChildren() {
75
+ return React__default.Children.map(children, function (child, index) {
76
+ var childChecked = validateChildChecked(child);
77
+
78
+ if (child.type.displayName !== 'NutRadio') {
79
+ return React__default.cloneElement(child);
80
+ }
81
+
82
+ return React__default.cloneElement(child, {
83
+ textPosition: textPosition,
84
+ checked: childChecked // onChange: handleChildChange,
85
+
86
+ });
87
+ });
88
+ }
89
+
90
+ return React__default.createElement(RadioContext.Provider, {
91
+ value: {
92
+ onChange: function onChange(val) {
93
+ setVal2State(val);
94
+ _onChange && _onChange(val);
95
+ }
96
+ }
97
+ }, React__default.createElement("div", _objectSpread({
98
+ className: "nut-radiogroup nut-radiogroup--".concat(props.direction)
99
+ }, rest), cloneChildren()));
100
+ });
101
+ RadioGroup.defaultProps = defaultProps;
102
+ RadioGroup.displayName = 'NutRadioGroup';
103
+ export { RadioGroup as default };
@@ -0,0 +1,451 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+
8
+ import React__default, { useState, useRef, useEffect } from 'react';
9
+ import { c as cn } from './bem-893ad28d.js';
10
+ import { T as Toast } from './toast-420b65b7.js';
11
+ import '@bem-react/classname';
12
+ import 'react-dom';
13
+ import './icon-63c0d58f.js';
14
+ import 'classnames';
15
+ var MIN_DISTANCE = 10;
16
+
17
+ function getDirection(x, y) {
18
+ if (x > y && x > MIN_DISTANCE) {
19
+ return 'horizontal';
20
+ }
21
+
22
+ if (y > x && y > MIN_DISTANCE) {
23
+ return 'vertical';
24
+ }
25
+
26
+ return '';
27
+ }
28
+
29
+ function useTouch() {
30
+ var _useState = useState(0),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ startX = _useState2[0],
33
+ SetStartX = _useState2[1];
34
+
35
+ var _useState3 = useState(0),
36
+ _useState4 = _slicedToArray(_useState3, 2),
37
+ startY = _useState4[0],
38
+ SetStartY = _useState4[1];
39
+
40
+ var _useState5 = useState(0),
41
+ _useState6 = _slicedToArray(_useState5, 2),
42
+ deltaX = _useState6[0],
43
+ SetDeltaX = _useState6[1];
44
+
45
+ var _useState7 = useState(0),
46
+ _useState8 = _slicedToArray(_useState7, 2),
47
+ deltaY = _useState8[0],
48
+ SetDeltaY = _useState8[1];
49
+
50
+ var _useState9 = useState(0),
51
+ _useState10 = _slicedToArray(_useState9, 2),
52
+ offsetX = _useState10[0],
53
+ SetOffsetX = _useState10[1];
54
+
55
+ var _useState11 = useState(0),
56
+ _useState12 = _slicedToArray(_useState11, 2),
57
+ offsetY = _useState12[0],
58
+ SetOffsetY = _useState12[1];
59
+
60
+ var _useState13 = useState(''),
61
+ _useState14 = _slicedToArray(_useState13, 2),
62
+ direction = _useState14[0],
63
+ SetDirection = _useState14[1];
64
+
65
+ var isVertical = function isVertical() {
66
+ return direction === 'vertical';
67
+ };
68
+
69
+ var isHorizontal = function isHorizontal() {
70
+ return direction === 'horizontal';
71
+ };
72
+
73
+ var reset = function reset() {
74
+ SetDeltaX(0);
75
+ SetDeltaY(0);
76
+ SetOffsetX(0);
77
+ SetOffsetY(0);
78
+ SetDirection('');
79
+ };
80
+
81
+ var start = function start(event) {
82
+ reset();
83
+ SetStartX(event.touches[0].clientX);
84
+ SetStartY(event.touches[0].clientY);
85
+ };
86
+
87
+ var move = function move(event) {
88
+ var touch = event.touches[0];
89
+ var dX = touch.clientX - startX;
90
+ var dY = touch.clientY - startY;
91
+ SetDeltaX(dX);
92
+ SetDeltaY(dY);
93
+ SetOffsetX(Math.abs(dX));
94
+ SetOffsetY(Math.abs(dY));
95
+
96
+ if (!direction) {
97
+ SetDirection(getDirection(Math.abs(dX), Math.abs(dY)));
98
+ }
99
+ };
100
+
101
+ return {
102
+ move: move,
103
+ start: start,
104
+ reset: reset,
105
+ startX: startX,
106
+ startY: startY,
107
+ deltaX: deltaX,
108
+ deltaY: deltaY,
109
+ offsetX: offsetX,
110
+ offsetY: offsetY,
111
+ direction: direction,
112
+ isVertical: isVertical,
113
+ isHorizontal: isHorizontal
114
+ };
115
+ }
116
+ /**
117
+ 获取元素的大小及其相对于视口的位置,等价于 Element.getBoundingClientRect。
118
+ width 宽度 number
119
+ height 高度 number
120
+ top 顶部与视图窗口左上角的距离 number
121
+ left 左侧与视图窗口左上角的距离 number
122
+ right 右侧与视图窗口左上角的距离 number
123
+ bottom 底部与视图窗口左上角的距离 number
124
+ */
125
+
126
+
127
+ function isWindow(val) {
128
+ return val === window;
129
+ }
130
+
131
+ var useRect = function useRect(elementRef) {
132
+ var element = elementRef;
133
+
134
+ if (isWindow(element)) {
135
+ var width = element.innerWidth;
136
+ var height = element.innerHeight;
137
+ return {
138
+ top: 0,
139
+ left: 0,
140
+ right: width,
141
+ bottom: height,
142
+ width: width,
143
+ height: height
144
+ };
145
+ }
146
+
147
+ if (element && element.getBoundingClientRect) {
148
+ return element.getBoundingClientRect();
149
+ }
150
+
151
+ return {
152
+ top: 0,
153
+ left: 0,
154
+ right: 0,
155
+ bottom: 0,
156
+ width: 0,
157
+ height: 0
158
+ };
159
+ };
160
+
161
+ var defaultProps = {
162
+ range: false,
163
+ hiddenRange: false,
164
+ hiddenTag: false,
165
+ min: 0,
166
+ max: 100,
167
+ step: 1,
168
+ modelValue: 0
169
+ };
170
+ var startValue;
171
+ var currentValue;
172
+
173
+ var Range = function Range(props) {
174
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
175
+ className = _defaultProps$props.className,
176
+ range = _defaultProps$props.range,
177
+ disabled = _defaultProps$props.disabled,
178
+ activeColor = _defaultProps$props.activeColor,
179
+ inactiveColor = _defaultProps$props.inactiveColor,
180
+ buttonColor = _defaultProps$props.buttonColor,
181
+ hiddenRange = _defaultProps$props.hiddenRange,
182
+ hiddenTag = _defaultProps$props.hiddenTag,
183
+ min = _defaultProps$props.min,
184
+ max = _defaultProps$props.max,
185
+ step = _defaultProps$props.step,
186
+ modelValue = _defaultProps$props.modelValue,
187
+ button = _defaultProps$props.button,
188
+ change = _defaultProps$props.change,
189
+ dragStart = _defaultProps$props.dragStart,
190
+ dragEnd = _defaultProps$props.dragEnd;
191
+
192
+ var _useState15 = useState(0),
193
+ _useState16 = _slicedToArray(_useState15, 2),
194
+ buttonIndex = _useState16[0],
195
+ SetButtonIndex = _useState16[1];
196
+
197
+ var _useState17 = useState(),
198
+ _useState18 = _slicedToArray(_useState17, 2),
199
+ initValue = _useState18[0],
200
+ SetInitValue = _useState18[1];
201
+
202
+ var _useState19 = useState('start'),
203
+ _useState20 = _slicedToArray(_useState19, 2),
204
+ dragStatus = _useState20[0],
205
+ SetDragStatus = _useState20[1];
206
+
207
+ var touch = useTouch();
208
+ var root = useRef(null);
209
+ var rangeBem = cn('range');
210
+ useEffect(function () {
211
+ if (modelValue) {
212
+ if (!range && (modelValue < min || modelValue > max)) {
213
+ SetInitValue(0);
214
+ Toast.text("".concat(modelValue, "\u4E0D\u5728\u8BE5\u533A\u95F4\u5185"));
215
+ return;
216
+ }
217
+
218
+ SetInitValue(modelValue);
219
+ }
220
+ }, [modelValue]);
221
+
222
+ var scope = function scope() {
223
+ return Number(max) - Number(min);
224
+ };
225
+
226
+ var wrapperStyle = function wrapperStyle() {
227
+ return {
228
+ background: inactiveColor
229
+ };
230
+ };
231
+
232
+ var buttonStyle = function buttonStyle() {
233
+ return {
234
+ borderColor: buttonColor
235
+ };
236
+ };
237
+
238
+ var isRange = function isRange(val) {
239
+ return !!range && Array.isArray(val);
240
+ };
241
+
242
+ var calcMainAxis = function calcMainAxis() {
243
+ var modelVal = initValue || initValue === 0 ? initValue : modelValue;
244
+
245
+ if (isRange(modelVal)) {
246
+ return "".concat((modelVal[1] - modelVal[0]) * 100 / scope(), "%");
247
+ }
248
+
249
+ return "".concat((modelVal - Number(min)) * 100 / scope(), "%");
250
+ };
251
+
252
+ var calcOffset = function calcOffset() {
253
+ var modelVal = initValue || initValue === 0 ? initValue : modelValue;
254
+
255
+ if (isRange(modelVal)) {
256
+ return "".concat((modelVal[0] - Number(min)) * 100 / scope(), "%");
257
+ }
258
+
259
+ return "0%";
260
+ };
261
+
262
+ var barStyle = function barStyle() {
263
+ return {
264
+ width: calcMainAxis(),
265
+ left: calcOffset(),
266
+ background: activeColor,
267
+ transition: dragStatus ? 'none' : undefined
268
+ };
269
+ };
270
+
271
+ var format = function format(value) {
272
+ value = Math.max(+min, Math.min(value, +max));
273
+ return Math.round(value / +step) * +step;
274
+ };
275
+
276
+ var isSameValue = function isSameValue(newValue, oldValue) {
277
+ return JSON.stringify(newValue) === JSON.stringify(oldValue);
278
+ };
279
+
280
+ var handleOverlap = function handleOverlap(value) {
281
+ if (value[0] > value[1]) {
282
+ return value.slice(0).reverse();
283
+ }
284
+
285
+ return value;
286
+ };
287
+
288
+ var updateValue = function updateValue(value, end) {
289
+ if (isRange(value)) {
290
+ value = handleOverlap(value).map(format);
291
+ } else {
292
+ value = format(value);
293
+ }
294
+
295
+ var modelVal = initValue || initValue === 0 ? initValue : modelValue;
296
+
297
+ if (!isSameValue(value, modelVal)) {
298
+ SetInitValue(value);
299
+ }
300
+
301
+ if (end && !isSameValue(value, startValue)) {
302
+ change && change(value);
303
+ }
304
+ };
305
+
306
+ var _onTouchStart = function onTouchStart(event) {
307
+ if (disabled) {
308
+ return;
309
+ }
310
+
311
+ touch.start(event);
312
+ currentValue = initValue || initValue === 0 ? initValue : modelValue;
313
+
314
+ if (isRange(currentValue)) {
315
+ startValue = currentValue.map(format);
316
+ } else {
317
+ startValue = format(currentValue);
318
+ }
319
+
320
+ SetDragStatus('start');
321
+ };
322
+
323
+ var _onTouchMove = function onTouchMove(event) {
324
+ if (disabled || !root.current) {
325
+ return;
326
+ }
327
+
328
+ if (dragStatus === 'start') {
329
+ dragStart && dragStart();
330
+ }
331
+
332
+ touch.move(event);
333
+ SetDragStatus('draging');
334
+ var rect = useRect(root.current);
335
+ var delta = touch.deltaX;
336
+ var total = rect.width;
337
+ var diff = delta / total * scope();
338
+
339
+ if (isRange(startValue)) {
340
+ currentValue[buttonIndex] = startValue[buttonIndex] + diff;
341
+ } else {
342
+ currentValue = startValue + diff;
343
+ }
344
+
345
+ updateValue(currentValue);
346
+ };
347
+
348
+ var _onTouchEnd = function onTouchEnd(event) {
349
+ if (disabled) {
350
+ return;
351
+ }
352
+
353
+ if (dragStatus === 'draging') {
354
+ updateValue(currentValue, true);
355
+ dragEnd && dragEnd();
356
+ }
357
+
358
+ SetDragStatus('');
359
+ };
360
+
361
+ var curValue = function curValue(idx) {
362
+ var modelVal = initValue || initValue === 0 ? initValue : modelValue;
363
+ var value = typeof idx === 'number' ? modelVal[idx] : modelVal;
364
+ return value;
365
+ };
366
+
367
+ return React__default.createElement("div", {
368
+ className: "nut-range-container ".concat(className ? className : '')
369
+ }, !hiddenRange ? React__default.createElement("div", {
370
+ className: "min"
371
+ }, +min) : null, React__default.createElement("div", {
372
+ ref: root,
373
+ style: wrapperStyle(),
374
+ className: "".concat(rangeBem(), " ").concat(disabled ? rangeBem('disabled') : '', " ").concat(!hiddenRange ? rangeBem('show-number') : '')
375
+ }, React__default.createElement("div", {
376
+ className: "nut-range-bar",
377
+ style: barStyle()
378
+ }, range ? [0, 1].map(function (item, index) {
379
+ return React__default.createElement("div", {
380
+ role: "slider",
381
+ key: index,
382
+ className: "".concat(index == 0 ? 'nut-range-button-wrapper-left' : '', "\n ").concat(index == 1 ? 'nut-range-button-wrapper-right' : ''),
383
+ tabIndex: disabled ? -1 : 0,
384
+ "aria-valuemin": +min,
385
+ "aria-valuenow": curValue(index),
386
+ "aria-valuemax": +max,
387
+ "aria-orientation": "horizontal",
388
+ onTouchStart: function onTouchStart(e) {
389
+ e.preventDefault;
390
+
391
+ if (typeof index === 'number') {
392
+ // 实时更新当前拖动的按钮索引
393
+ SetButtonIndex(index);
394
+ }
395
+
396
+ _onTouchStart(e);
397
+ },
398
+ onTouchMove: function onTouchMove(e) {
399
+ _onTouchMove(e);
400
+ },
401
+ onTouchEnd: function onTouchEnd(e) {
402
+ _onTouchEnd();
403
+ },
404
+ onTouchCancel: function onTouchCancel(e) {
405
+ _onTouchEnd();
406
+ },
407
+ onClick: function onClick(e) {
408
+ e.stopPropagation();
409
+ }
410
+ }, button ? button : React__default.createElement("div", {
411
+ className: "nut-range-button",
412
+ style: buttonStyle()
413
+ }, !hiddenTag ? React__default.createElement("div", {
414
+ className: "number"
415
+ }, curValue(index)) : null));
416
+ }) : React__default.createElement("div", {
417
+ role: "slider",
418
+ className: "nut-range-button-wrapper",
419
+ tabIndex: disabled ? -1 : 0,
420
+ "aria-valuemin": +min,
421
+ "aria-valuenow": curValue(),
422
+ "aria-valuemax": +max,
423
+ "aria-orientation": "horizontal",
424
+ onTouchStart: function onTouchStart(e) {
425
+ _onTouchStart(e);
426
+ },
427
+ onTouchMove: function onTouchMove(e) {
428
+ _onTouchMove(e);
429
+ },
430
+ onTouchEnd: function onTouchEnd(e) {
431
+ _onTouchEnd();
432
+ },
433
+ onTouchCancel: function onTouchCancel(e) {
434
+ _onTouchEnd();
435
+ },
436
+ onClick: function onClick(e) {
437
+ e.stopPropagation();
438
+ }
439
+ }, button ? button : React__default.createElement("div", {
440
+ className: "nut-range-button",
441
+ style: buttonStyle()
442
+ }, !hiddenTag ? React__default.createElement("div", {
443
+ className: "number"
444
+ }, curValue()) : null)))), !hiddenRange ? React__default.createElement("div", {
445
+ className: "max"
446
+ }, +max) : null);
447
+ };
448
+
449
+ Range.defaultProps = defaultProps;
450
+ Range.displayName = 'NutRange';
451
+ export { Range as default };
@@ -0,0 +1,122 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+
8
+ import React__default, { useState, useEffect } from 'react';
9
+ import { c as cn } from './bem-893ad28d.js';
10
+ import { I as Icon } from './icon-63c0d58f.js';
11
+ import '@bem-react/classname';
12
+ var defaultProps = {
13
+ count: 5,
14
+ modelValue: 0,
15
+ iconSize: 18,
16
+ activeColor: '',
17
+ voidColor: '',
18
+ checkedIcon: 'star-fill-n',
19
+ uncheckedIcon: 'star-n',
20
+ disabled: false,
21
+ readonly: false,
22
+ allowHalf: false,
23
+ spacing: 14
24
+ };
25
+
26
+ var Rate = function Rate(props) {
27
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
28
+ count = _defaultProps$props.count,
29
+ modelValue = _defaultProps$props.modelValue,
30
+ iconSize = _defaultProps$props.iconSize,
31
+ activeColor = _defaultProps$props.activeColor,
32
+ voidColor = _defaultProps$props.voidColor,
33
+ checkedIcon = _defaultProps$props.checkedIcon,
34
+ uncheckedIcon = _defaultProps$props.uncheckedIcon,
35
+ disabled = _defaultProps$props.disabled,
36
+ readonly = _defaultProps$props.readonly,
37
+ allowHalf = _defaultProps$props.allowHalf,
38
+ spacing = _defaultProps$props.spacing,
39
+ change = _defaultProps$props.change;
40
+
41
+ var b = cn('rate');
42
+ var bi = cn('rate-item');
43
+
44
+ var _useState = useState([1, 2, 3, 4, 5]),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ countArray = _useState2[0],
47
+ setCountArray = _useState2[1];
48
+
49
+ var _useState3 = useState(0),
50
+ _useState4 = _slicedToArray(_useState3, 2),
51
+ score = _useState4[0],
52
+ setScore = _useState4[1];
53
+
54
+ useEffect(function () {
55
+ var tmp = [];
56
+
57
+ for (var i = 1; i <= Number(count); i++) {
58
+ tmp.push(i);
59
+ }
60
+
61
+ setCountArray(tmp);
62
+ }, [count]);
63
+ useEffect(function () {
64
+ setScore(Number(modelValue));
65
+ }, [modelValue]);
66
+
67
+ var pxCheck = function pxCheck(value) {
68
+ return isNaN(Number(value)) ? String(value) : "".concat(value, "px");
69
+ };
70
+
71
+ var _onClick = function onClick(e, index) {
72
+ e.preventDefault();
73
+ e.stopPropagation();
74
+ if (disabled || readonly) return;
75
+ var value = 0;
76
+ if (index === 1 && score === index) ;else {
77
+ value = index;
78
+
79
+ if (allowHalf) {
80
+ if (e !== null && e !== void 0 && e.target.className.includes('__icon--half')) {
81
+ value -= 0.5;
82
+ }
83
+ }
84
+ }
85
+ setScore(value);
86
+ change && change(value);
87
+ };
88
+
89
+ return React__default.createElement("div", {
90
+ className: b()
91
+ }, countArray.map(function (n) {
92
+ return React__default.createElement("div", {
93
+ className: bi(),
94
+ key: n,
95
+ onClick: function onClick(event) {
96
+ return _onClick(event, n);
97
+ },
98
+ style: {
99
+ marginRight: pxCheck(spacing)
100
+ }
101
+ }, React__default.createElement(Icon, {
102
+ size: iconSize,
103
+ className: "".concat(bi('icon'), " ").concat(disabled || n > score ? bi('icon--disabled') : ''),
104
+ name: n <= score ? checkedIcon : uncheckedIcon,
105
+ color: n <= score ? activeColor : voidColor
106
+ }), allowHalf && score > n - 1 && React__default.createElement(Icon, {
107
+ className: "".concat(bi('icon'), " ").concat(bi('icon--half')),
108
+ color: n <= score ? activeColor : voidColor,
109
+ size: iconSize,
110
+ name: checkedIcon
111
+ }), allowHalf && score < n - 1 && React__default.createElement(Icon, {
112
+ className: "".concat(bi('icon'), " ").concat(bi('icon--disabled'), " ").concat(bi('icon--half')),
113
+ color: voidColor,
114
+ size: iconSize,
115
+ name: uncheckedIcon
116
+ }));
117
+ }));
118
+ };
119
+
120
+ Rate.defaultProps = defaultProps;
121
+ Rate.displayName = 'NutRate';
122
+ export { Rate as default };