@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
@@ -1,30 +1,4 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- var _excluded = ["children", "toolbar", "maxZoom", "space", "toolbarPosition", "editText", "shape", "className", "style", "onConfirm", "onCancel"];
6
- import _regeneratorRuntime from "@babel/runtime/regenerator";
7
- function ownKeys(e, r) {
8
- var t = Object.keys(e);
9
- if (Object.getOwnPropertySymbols) {
10
- var o = Object.getOwnPropertySymbols(e);
11
- r && (o = o.filter(function(r2) {
12
- return Object.getOwnPropertyDescriptor(e, r2).enumerable;
13
- })), t.push.apply(t, o);
14
- }
15
- return t;
16
- }
17
- function _objectSpread(e) {
18
- for (var r = 1; r < arguments.length; r++) {
19
- var t = null != arguments[r] ? arguments[r] : {};
20
- r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
21
- _defineProperty(e, r2, t[r2]);
22
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
23
- Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
24
- });
25
- }
26
- return e;
27
- }
1
+ import { _ as __rest, a as __awaiter } from "./tslib.es6.js";
28
2
  import React__default, { useRef, useState, useMemo, useCallback, useEffect } from "react";
29
3
  import classNames from "classnames";
30
4
  import Button from "./Button.js";
@@ -32,36 +6,24 @@ import { C as ComponentDefaults } from "./typings.js";
32
6
  import { u as useTouch } from "./use-touch.js";
33
7
  import { p as preventDefault, c as clamp } from "./index.js";
34
8
  import { g as getRect } from "./use-client-rect.js";
35
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
36
- maxZoom: 3,
37
- space: 10,
38
- toolbar: [React__default.createElement(Button, {
39
- type: "danger",
40
- key: "cancel"
41
- }, "取消"), React__default.createElement(Button, {
42
- key: "reset"
43
- }, "重置"), React__default.createElement(Button, {
44
- key: "rotate"
45
- }, "旋转"), React__default.createElement(Button, {
46
- type: "success",
47
- key: "confirm"
48
- }, "确认")],
49
- toolbarPosition: "bottom",
50
- editText: "编辑",
51
- shape: "square"
52
- });
53
- var classPrefix = "nut-avatar-cropper";
54
- var AvatarCropper = function AvatarCropper2(props) {
55
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, toolbar = _defaultProps$props.toolbar, maxZoom = _defaultProps$props.maxZoom, space = _defaultProps$props.space, toolbarPosition = _defaultProps$props.toolbarPosition, editText = _defaultProps$props.editText, shape = _defaultProps$props.shape, className = _defaultProps$props.className, style = _defaultProps$props.style, onConfirm = _defaultProps$props.onConfirm, onCancel = _defaultProps$props.onCancel, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
56
- var cls = classNames(classPrefix, className, shape === "round" && "round");
57
- var toolbarPositionCls = classNames("".concat(classPrefix, "-popup-toolbar"), toolbarPosition);
58
- var inputImageRef = useRef(null);
59
- var cropperPopupRef = useRef(null);
60
- var canvasRef = useRef(null);
61
- var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), visible = _useState2[0], setVisible = _useState2[1];
62
- var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), moving = _useState4[0], setMoving = _useState4[1];
63
- var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), zooming = _useState6[0], setZooming = _useState6[1];
64
- var _useState7 = useState({
9
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { maxZoom: 3, space: 10, toolbar: [
10
+ React__default.createElement(Button, { type: "danger", key: "cancel" }, "取消"),
11
+ React__default.createElement(Button, { key: "reset" }, "重置"),
12
+ React__default.createElement(Button, { key: "rotate" }, "旋转"),
13
+ React__default.createElement(Button, { type: "success", key: "confirm" }, "确认")
14
+ ], toolbarPosition: "bottom", editText: "编辑", shape: "square" });
15
+ const classPrefix = `nut-avatar-cropper`;
16
+ const AvatarCropper = (props) => {
17
+ const _a = Object.assign(Object.assign({}, defaultProps), props), { children, toolbar, maxZoom, space, toolbarPosition, editText, shape, className, style, onConfirm, onCancel } = _a, rest = __rest(_a, ["children", "toolbar", "maxZoom", "space", "toolbarPosition", "editText", "shape", "className", "style", "onConfirm", "onCancel"]);
18
+ const cls = classNames(classPrefix, className, shape === "round" && "round");
19
+ const toolbarPositionCls = classNames(`${classPrefix}-popup-toolbar`, toolbarPosition);
20
+ const inputImageRef = useRef(null);
21
+ const cropperPopupRef = useRef(null);
22
+ const canvasRef = useRef(null);
23
+ const [visible, setVisible] = useState(false);
24
+ const [moving, setMoving] = useState(false);
25
+ const [zooming, setZooming] = useState(false);
26
+ const [state, setState] = useState({
65
27
  defScale: 1,
66
28
  scale: 1,
67
29
  angle: 0,
@@ -69,8 +31,8 @@ var AvatarCropper = function AvatarCropper2(props) {
69
31
  moveY: 0,
70
32
  displayWidth: 0,
71
33
  displayHeight: 0
72
- }), _useState8 = _slicedToArray(_useState7, 2), state = _useState8[0], setState = _useState8[1];
73
- var defDrawImage = {
34
+ });
35
+ const defDrawImage = {
74
36
  img: new Image(),
75
37
  sx: 0,
76
38
  sy: 0,
@@ -82,60 +44,56 @@ var AvatarCropper = function AvatarCropper2(props) {
82
44
  height: 0
83
45
  // 要使用的图像的高度
84
46
  };
85
- var _useState9 = useState(_objectSpread({}, defDrawImage)), _useState10 = _slicedToArray(_useState9, 2), drawImage = _useState10[0], setDrawImg = _useState10[1];
86
- var devicePixelRatio = window.devicePixelRatio || 1;
87
- var touch = useTouch();
88
- var highlightStyle = useMemo(function() {
89
- var width = "".concat(drawImage.swidth / devicePixelRatio, "px");
90
- var height = width;
47
+ const [drawImage, setDrawImg] = useState(Object.assign({}, defDrawImage));
48
+ const devicePixelRatio = window.devicePixelRatio || 1;
49
+ const touch = useTouch();
50
+ const highlightStyle = useMemo(() => {
51
+ const width = `${drawImage.swidth / devicePixelRatio}px`;
52
+ const height = width;
91
53
  return {
92
54
  width,
93
55
  height,
94
56
  borderRadius: shape === "round" ? "50%" : ""
95
57
  };
96
58
  }, [devicePixelRatio, drawImage.swidth]);
97
- var isAngle = useMemo(function() {
59
+ const isAngle = useMemo(() => {
98
60
  return state.angle === 90 || state.angle === 270;
99
61
  }, [state.angle]);
100
- var maxMoveX = useMemo(function() {
101
- var swidth = drawImage.swidth, height = drawImage.height;
62
+ const maxMoveX = useMemo(() => {
63
+ const { swidth, height } = drawImage;
102
64
  if (isAngle) {
103
65
  return Math.max(0, (height * state.scale - swidth) / 2);
104
66
  }
105
67
  return Math.max(0, (state.displayWidth * state.scale - swidth) / 2);
106
68
  }, [state.scale, state.displayWidth, drawImage, isAngle]);
107
- var maxMoveY = useMemo(function() {
108
- var swidth = drawImage.swidth, height = drawImage.height;
69
+ const maxMoveY = useMemo(() => {
70
+ const { swidth, height } = drawImage;
109
71
  if (isAngle) {
110
72
  return Math.max(0, (state.displayWidth * state.scale - swidth) / 2);
111
73
  }
112
74
  return Math.max(0, (height * state.scale - swidth) / 2);
113
75
  }, [state.scale, state.displayWidth, drawImage, isAngle]);
114
- var fileToDataURL = function fileToDataURL2(file) {
115
- return new Promise(function(resolve) {
116
- var reader = new FileReader();
117
- reader.onloadend = function(e) {
118
- return resolve(e.target.result);
119
- };
76
+ const fileToDataURL = (file) => {
77
+ return new Promise((resolve) => {
78
+ const reader = new FileReader();
79
+ reader.onloadend = (e) => resolve(e.target.result);
120
80
  reader.readAsDataURL(file);
121
81
  });
122
82
  };
123
- var dataURLToImage = function dataURLToImage2(dataURL) {
124
- return new Promise(function(resolve) {
125
- var img = new Image();
126
- img.onload = function() {
127
- return resolve(img);
128
- };
83
+ const dataURLToImage = (dataURL) => {
84
+ return new Promise((resolve) => {
85
+ const img = new Image();
86
+ img.onload = () => resolve(img);
129
87
  img.src = dataURL;
130
88
  });
131
89
  };
132
- var draw = useCallback(function() {
133
- var img = drawImage.img, width = drawImage.width, height = drawImage.height, x = drawImage.x, y = drawImage.y, swidth = drawImage.swidth;
134
- var moveX = state.moveX, moveY = state.moveY, scale = state.scale, angle = state.angle, displayWidth = state.displayWidth, displayHeight = state.displayHeight;
135
- var canvas = canvasRef.current;
90
+ const draw = useCallback(() => {
91
+ const { img, width, height, x, y, swidth } = drawImage;
92
+ const { moveX, moveY, scale, angle, displayWidth, displayHeight } = state;
93
+ const canvas = canvasRef.current;
136
94
  if (!canvas)
137
95
  return;
138
- var ctx = canvas.getContext("2d");
96
+ const ctx = canvas.getContext("2d");
139
97
  canvas.width = displayWidth;
140
98
  canvas.height = displayHeight;
141
99
  ctx.clearRect(0, 0, canvas.width, canvas.height);
@@ -148,31 +106,27 @@ var AvatarCropper = function AvatarCropper2(props) {
148
106
  ctx.scale(scale, scale);
149
107
  ctx.drawImage(img, x, y, width, height);
150
108
  }, [drawImage, state, devicePixelRatio, space]);
151
- useEffect(function() {
109
+ useEffect(() => {
152
110
  if (Math.abs(state.moveX) > maxMoveX) {
153
- setState(_objectSpread(_objectSpread({}, state), {}, {
154
- moveX: maxMoveX
155
- }));
111
+ setState(Object.assign(Object.assign({}, state), { moveX: maxMoveX }));
156
112
  }
157
113
  if (Math.abs(state.moveY) > maxMoveY) {
158
- setState(_objectSpread(_objectSpread({}, state), {}, {
159
- moveY: maxMoveY
160
- }));
114
+ setState(Object.assign(Object.assign({}, state), { moveY: maxMoveY }));
161
115
  }
162
116
  draw();
163
117
  }, [state, maxMoveX, maxMoveY, draw]);
164
- var setDrawImgs = function setDrawImgs2(image) {
165
- var rect = getRect(cropperPopupRef.current);
118
+ const setDrawImgs = (image) => {
119
+ const rect = getRect(cropperPopupRef.current);
166
120
  if (!rect)
167
121
  return;
168
- var clientWidth = rect.width, clientHeight = rect.height;
169
- var canvasWidth = state.displayWidth = clientWidth * devicePixelRatio;
170
- var canvasHeight = state.displayHeight = clientHeight * devicePixelRatio;
171
- var copyDrawImg = _objectSpread({}, defDrawImage);
172
- var imgWidth = image.width, imgHeight = image.height;
122
+ const { width: clientWidth, height: clientHeight } = rect;
123
+ const canvasWidth = state.displayWidth = clientWidth * devicePixelRatio;
124
+ const canvasHeight = state.displayHeight = clientHeight * devicePixelRatio;
125
+ const copyDrawImg = Object.assign({}, defDrawImage);
126
+ const { width: imgWidth, height: imgHeight } = image;
173
127
  copyDrawImg.img = image;
174
- var isPortrait = imgHeight > imgWidth;
175
- var rate = isPortrait ? imgWidth / imgHeight : imgHeight / imgWidth;
128
+ const isPortrait = imgHeight > imgWidth;
129
+ const rate = isPortrait ? imgWidth / imgHeight : imgHeight / imgWidth;
176
130
  copyDrawImg.width = canvasWidth;
177
131
  copyDrawImg.height = isPortrait ? canvasWidth / rate : canvasWidth * rate;
178
132
  copyDrawImg.x = -copyDrawImg.width / 2;
@@ -182,233 +136,160 @@ var AvatarCropper = function AvatarCropper2(props) {
182
136
  copyDrawImg.sx = space * devicePixelRatio;
183
137
  copyDrawImg.sy = (canvasHeight - copyDrawImg.swidth) / 2;
184
138
  setDrawImg(copyDrawImg);
185
- var scale = copyDrawImg.swidth / (isPortrait ? copyDrawImg.width : copyDrawImg.height);
186
- setState(_objectSpread(_objectSpread({}, state), {}, {
187
- defScale: scale
188
- }));
139
+ const scale = copyDrawImg.swidth / (isPortrait ? copyDrawImg.width : copyDrawImg.height);
140
+ setState(Object.assign(Object.assign({}, state), { defScale: scale }));
189
141
  resetScale(scale);
190
142
  };
191
- var inputImageChange = /* @__PURE__ */ function() {
192
- var _ref = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime.mark(function _callee(event) {
193
- var $el, files, base64, image;
194
- return _regeneratorRuntime.wrap(function _callee$(_context) {
195
- while (1)
196
- switch (_context.prev = _context.next) {
197
- case 0:
198
- setVisible(true);
199
- $el = event.target;
200
- files = $el.files;
201
- if (files !== null && files !== void 0 && files.length) {
202
- _context.next = 5;
203
- break;
204
- }
205
- return _context.abrupt("return");
206
- case 5:
207
- _context.next = 7;
208
- return fileToDataURL(files[0]);
209
- case 7:
210
- base64 = _context.sent;
211
- _context.next = 10;
212
- return dataURLToImage(base64);
213
- case 10:
214
- image = _context.sent;
215
- setDrawImgs(image);
216
- case 12:
217
- case "end":
218
- return _context.stop();
219
- }
220
- }, _callee);
221
- }));
222
- return function inputImageChange2(_x) {
223
- return _ref.apply(this, arguments);
224
- };
225
- }();
226
- var resetScale = function resetScale2(scale) {
227
- setState(_objectSpread(_objectSpread({}, state), {}, {
228
- moveX: 0,
229
- moveY: 0,
230
- angle: 0,
231
- scale: scale || state.defScale,
232
- defScale: scale || state.defScale
233
- }));
143
+ const inputImageChange = (event) => __awaiter(void 0, void 0, void 0, function* () {
144
+ setVisible(true);
145
+ const $el = event.target;
146
+ const { files } = $el;
147
+ if (!(files === null || files === void 0 ? void 0 : files.length))
148
+ return;
149
+ const base64 = yield fileToDataURL(files[0]);
150
+ const image = yield dataURLToImage(base64);
151
+ setDrawImgs(image);
152
+ });
153
+ const resetScale = (scale) => {
154
+ setState(Object.assign(Object.assign({}, state), { moveX: 0, moveY: 0, angle: 0, scale: scale || state.defScale, defScale: scale || state.defScale }));
234
155
  };
235
- var setScale = function setScale2(scale) {
156
+ const setScale = (scale) => {
236
157
  scale = clamp(scale, 0.3, +maxZoom + 1);
237
158
  if (scale !== state.scale) {
238
- setState(_objectSpread(_objectSpread({}, state), {}, {
239
- scale
240
- }));
159
+ setState(Object.assign(Object.assign({}, state), { scale }));
241
160
  }
242
161
  };
243
- var getDistance = function getDistance2(touches) {
244
- return Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));
245
- };
246
- var _useState11 = useState({
162
+ const getDistance = (touches) => Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));
163
+ const [startMove, setStartMove] = useState({
247
164
  startMoveX: 0,
248
165
  startMoveY: 0,
249
166
  startScale: 0,
250
167
  startDistance: 0
251
- }), _useState12 = _slicedToArray(_useState11, 2), startMove = _useState12[0], setStartMove = _useState12[1];
252
- var startMoveX = startMove.startMoveX, startMoveY = startMove.startMoveY, startScale = startMove.startScale, startDistance = startMove.startDistance;
253
- var onTouchStart = function onTouchStart2(event) {
254
- var touches = event.touches;
255
- var offsetX = touch.offsetX;
168
+ });
169
+ const { startMoveX, startMoveY, startScale, startDistance } = startMove;
170
+ const onTouchStart = (event) => {
171
+ const { touches } = event;
172
+ const { offsetX } = touch;
256
173
  touch.start(event);
257
- var fingerNum = touches === null || touches === void 0 ? void 0 : touches.length;
258
- setStartMove(_objectSpread(_objectSpread({}, startMove), {}, {
259
- startMoveX: state.moveX,
260
- startMoveY: state.moveY
261
- }));
174
+ const fingerNum = touches === null || touches === void 0 ? void 0 : touches.length;
175
+ setStartMove(Object.assign(Object.assign({}, startMove), { startMoveX: state.moveX, startMoveY: state.moveY }));
262
176
  setMoving(fingerNum === 1);
263
177
  setZooming(fingerNum === 2 && !offsetX.current);
264
178
  if (fingerNum === 2 && !offsetX.current) {
265
- setStartMove(_objectSpread(_objectSpread({}, startMove), {}, {
266
- startScale: state.scale,
267
- startDistance: getDistance(event.touches)
268
- }));
179
+ setStartMove(Object.assign(Object.assign({}, startMove), { startScale: state.scale, startDistance: getDistance(event.touches) }));
269
180
  }
270
181
  };
271
- var onTouchMove = function onTouchMove2(event) {
272
- var touches = event.touches;
182
+ const onTouchMove = (event) => {
183
+ const { touches } = event;
273
184
  touch.move(event);
274
185
  if (moving || zooming) {
275
186
  preventDefault(event, true);
276
187
  }
277
188
  if (moving) {
278
- var deltaX = touch.deltaX, deltaY = touch.deltaY;
279
- var moveX = deltaX.current * state.scale + startMoveX;
280
- var moveY = deltaY.current * state.scale + startMoveY;
281
- setState(_objectSpread(_objectSpread({}, state), {}, {
282
- moveX: clamp(moveX, -maxMoveX, maxMoveX),
283
- moveY: clamp(moveY, -maxMoveY, maxMoveY)
284
- }));
189
+ const { deltaX, deltaY } = touch;
190
+ const moveX = deltaX.current * state.scale + startMoveX;
191
+ const moveY = deltaY.current * state.scale + startMoveY;
192
+ setState(Object.assign(Object.assign({}, state), { moveX: clamp(moveX, -maxMoveX, maxMoveX), moveY: clamp(moveY, -maxMoveY, maxMoveY) }));
285
193
  }
286
194
  if (zooming && touches.length === 2) {
287
- var distance = getDistance(touches);
288
- var scale = startScale * distance / startDistance;
195
+ const distance = getDistance(touches);
196
+ const scale = startScale * distance / startDistance;
289
197
  setScale(scale);
290
198
  }
291
199
  };
292
- var onTouchEnd = function onTouchEnd2(event) {
293
- var stopPropagation = false;
200
+ const onTouchEnd = (event) => {
201
+ let stopPropagation = false;
294
202
  if (moving || zooming) {
295
203
  stopPropagation = !(moving && startMoveX === state.moveX && startMoveY === state.moveY);
296
204
  if (!event.touches.length) {
297
205
  if (zooming) {
298
- setState(_objectSpread(_objectSpread({}, state), {}, {
299
- moveX: clamp(state.moveX, -maxMoveX, maxMoveX),
300
- moveY: clamp(state.moveY, -maxMoveY, maxMoveY)
301
- }));
206
+ setState(Object.assign(Object.assign({}, state), { moveX: clamp(state.moveX, -maxMoveX, maxMoveX), moveY: clamp(state.moveY, -maxMoveY, maxMoveY) }));
302
207
  setZooming(false);
303
208
  }
304
209
  setMoving(false);
305
- setStartMove(_objectSpread(_objectSpread({}, startMove), {}, {
306
- startMoveX: 0,
307
- startMoveY: 0,
308
- startScale: state.defScale
309
- }));
210
+ setStartMove(Object.assign(Object.assign({}, startMove), { startMoveX: 0, startMoveY: 0, startScale: state.defScale }));
310
211
  if (state.scale < state.defScale) {
311
212
  resetScale();
312
213
  }
313
214
  if (state.scale > maxZoom) {
314
- setState(_objectSpread(_objectSpread({}, state), {}, {
315
- scale: +maxZoom
316
- }));
215
+ setState(Object.assign(Object.assign({}, state), { scale: +maxZoom }));
317
216
  }
318
217
  }
319
218
  }
320
219
  preventDefault(event, stopPropagation);
321
220
  touch.reset();
322
221
  };
323
- var reset = function reset2() {
324
- setState(_objectSpread(_objectSpread({}, state), {}, {
325
- angle: 0
326
- }));
222
+ const reset = () => {
223
+ setState(Object.assign(Object.assign({}, state), { angle: 0 }));
327
224
  };
328
- var rotate = function rotate2() {
225
+ const rotate = () => {
329
226
  if (state.angle === 270) {
330
- setState(_objectSpread(_objectSpread({}, state), {}, {
331
- angle: 0
332
- }));
227
+ setState(Object.assign(Object.assign({}, state), { angle: 0 }));
333
228
  return;
334
229
  }
335
- setState(_objectSpread(_objectSpread({}, state), {}, {
336
- angle: state.angle + 90
337
- }));
230
+ setState(Object.assign(Object.assign({}, state), { angle: state.angle + 90 }));
338
231
  };
339
- var cancel = function cancel2() {
340
- var isEmit = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
232
+ const cancel = (isEmit = true) => {
341
233
  setVisible(false);
342
234
  resetScale();
343
235
  inputImageRef.current && (inputImageRef.current.value = "");
344
236
  isEmit && onCancel && onCancel();
345
237
  };
346
- var confirm = function confirm2() {
347
- var canvas = canvasRef.current;
348
- var sx = drawImage.sx, sy = drawImage.sy, swidth = drawImage.swidth;
349
- var width = swidth;
350
- var height = swidth;
351
- var croppedCanvas = document.createElement("canvas");
352
- var croppedCtx = croppedCanvas.getContext("2d");
238
+ const confirm = () => {
239
+ const canvas = canvasRef.current;
240
+ const { sx, sy, swidth } = drawImage;
241
+ const width = swidth;
242
+ const height = swidth;
243
+ const croppedCanvas = document.createElement("canvas");
244
+ const croppedCtx = croppedCanvas.getContext("2d");
353
245
  croppedCanvas.width = width;
354
246
  croppedCanvas.height = height;
355
247
  canvas && croppedCtx.drawImage(canvas, sx, sy, width, height, 0, 0, width, height);
356
- var imageDataURL = croppedCanvas.toDataURL("image/png");
248
+ const imageDataURL = croppedCanvas.toDataURL("image/png");
357
249
  onConfirm && onConfirm(imageDataURL);
358
250
  cancel(false);
359
251
  };
360
- var ToolBar = function ToolBar2() {
361
- var actions = [cancel, reset, rotate, confirm];
362
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
363
- className: "".concat(classPrefix, "-popup-toolbar-flex")
364
- }, actions.map(function(action, index) {
365
- return React__default.createElement("div", {
366
- key: index,
367
- className: "".concat(classPrefix, "-popup-toolbar-item"),
368
- onClick: function onClick(_e) {
369
- return action();
370
- }
371
- }, toolbar[index]);
372
- })));
252
+ const ToolBar = () => {
253
+ const actions = [cancel, reset, rotate, confirm];
254
+ return React__default.createElement(
255
+ React__default.Fragment,
256
+ null,
257
+ React__default.createElement("div", { className: `${classPrefix}-popup-toolbar-flex` }, actions.map((action, index) => React__default.createElement("div", { key: index, className: `${classPrefix}-popup-toolbar-item`, onClick: (_e) => action() }, toolbar[index])))
258
+ );
373
259
  };
374
- var CropperPopup = function CropperPopup2() {
375
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
376
- ref: cropperPopupRef,
377
- className: "".concat(classPrefix, "-popup"),
378
- style: {
379
- display: visible ? "block" : "none"
380
- }
381
- }, React__default.createElement("canvas", {
382
- ref: canvasRef,
383
- className: "".concat(classPrefix, "-popup-canvas")
384
- }), React__default.createElement("div", {
385
- className: "".concat(classPrefix, "-popup-highlight"),
386
- onTouchStart,
387
- onTouchMove,
388
- onTouchEnd
389
- }, React__default.createElement("div", {
390
- className: "highlight",
391
- style: highlightStyle
392
- })), React__default.createElement("div", {
393
- className: toolbarPositionCls
394
- }, React__default.createElement(ToolBar, null))));
260
+ const CropperPopup = () => {
261
+ return React__default.createElement(
262
+ React__default.Fragment,
263
+ null,
264
+ React__default.createElement(
265
+ "div",
266
+ { ref: cropperPopupRef, className: `${classPrefix}-popup`, style: { display: visible ? "block" : "none" } },
267
+ React__default.createElement("canvas", { ref: canvasRef, className: `${classPrefix}-popup-canvas` }),
268
+ React__default.createElement(
269
+ "div",
270
+ { className: `${classPrefix}-popup-highlight`, onTouchStart, onTouchMove, onTouchEnd },
271
+ React__default.createElement("div", { className: "highlight", style: highlightStyle })
272
+ ),
273
+ React__default.createElement(
274
+ "div",
275
+ { className: toolbarPositionCls },
276
+ React__default.createElement(ToolBar, null)
277
+ )
278
+ )
279
+ );
395
280
  };
396
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", _objectSpread(_objectSpread({
397
- className: cls
398
- }, rest), {}, {
399
- style
400
- }), children, React__default.createElement("input", {
401
- ref: inputImageRef,
402
- type: "file",
403
- accept: "image/*",
404
- className: "".concat(classPrefix, "-input"),
405
- onChange: function onChange(e) {
406
- return inputImageChange(e);
407
- },
408
- "aria-label": "选择图片"
409
- }), React__default.createElement("div", {
410
- className: "nut-avatar-cropper-edit-text"
411
- }, editText)), CropperPopup());
281
+ return React__default.createElement(
282
+ React__default.Fragment,
283
+ null,
284
+ React__default.createElement(
285
+ "div",
286
+ Object.assign({ className: cls }, rest, { style }),
287
+ children,
288
+ React__default.createElement("input", { ref: inputImageRef, type: "file", accept: "image/*", className: `${classPrefix}-input`, onChange: (e) => inputImageChange(e), "aria-label": "选择图片" }),
289
+ React__default.createElement("div", { className: "nut-avatar-cropper-edit-text" }, editText)
290
+ ),
291
+ CropperPopup()
292
+ );
412
293
  };
413
294
  AvatarCropper.defaultProps = defaultProps;
414
295
  AvatarCropper.displayName = "NutAvatarCropper";
@@ -1,54 +1,23 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(e, r) {
3
- var t = Object.keys(e);
4
- if (Object.getOwnPropertySymbols) {
5
- var o = Object.getOwnPropertySymbols(e);
6
- r && (o = o.filter(function(r2) {
7
- return Object.getOwnPropertyDescriptor(e, r2).enumerable;
8
- })), t.push.apply(t, o);
9
- }
10
- return t;
11
- }
12
- function _objectSpread(e) {
13
- for (var r = 1; r < arguments.length; r++) {
14
- var t = null != arguments[r] ? arguments[r] : {};
15
- r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
16
- _defineProperty(e, r2, t[r2]);
17
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
18
- Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
19
- });
20
- }
21
- return e;
22
- }
23
1
  import React__default, { useRef } from "react";
24
2
  import classNames from "classnames";
25
3
  import { A as AvatarContext } from "./context2.js";
26
4
  import { C as ComponentDefaults } from "./typings.js";
27
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
28
- maxContent: "",
29
- max: "",
30
- maxBackground: "#eee",
31
- maxColor: "#666",
32
- gap: "-8",
33
- level: "left"
34
- });
35
- var classPrefix = "nut-avatar-group";
36
- var AvatarGroup = function AvatarGroup2(props) {
37
- var propAvatarGroup = _objectSpread(_objectSpread({}, defaultProps), props);
38
- var className = propAvatarGroup.className, style = propAvatarGroup.style, children = propAvatarGroup.children;
39
- var avatarGroupRef = useRef(null);
40
- var cls = classNames(classPrefix, className);
41
- var parentAvatar = {
5
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { maxContent: "", max: "", maxBackground: "#eee", maxColor: "#666", gap: "-8", level: "left" });
6
+ const classPrefix = `nut-avatar-group`;
7
+ const AvatarGroup = (props) => {
8
+ const propAvatarGroup = Object.assign(Object.assign({}, defaultProps), props);
9
+ const { className, style, children } = propAvatarGroup;
10
+ const avatarGroupRef = useRef(null);
11
+ const cls = classNames(classPrefix, className);
12
+ const parentAvatar = {
42
13
  propAvatarGroup,
43
14
  avatarGroupRef
44
15
  };
45
- return React__default.createElement(AvatarContext.Provider, {
46
- value: parentAvatar
47
- }, React__default.createElement("div", {
48
- className: cls,
49
- style,
50
- ref: avatarGroupRef
51
- }, children));
16
+ return React__default.createElement(
17
+ AvatarContext.Provider,
18
+ { value: parentAvatar },
19
+ React__default.createElement("div", { className: cls, style, ref: avatarGroupRef }, children)
20
+ );
52
21
  };
53
22
  AvatarGroup.defaultProps = defaultProps;
54
23
  AvatarGroup.displayName = "NutAvatarGroup";