@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/Image.js CHANGED
@@ -1,49 +1,17 @@
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 { ImageError, Image as Image$1 } from "@nutui/icons-react";
26
3
  import classNames from "classnames";
27
4
  import { C as ComponentDefaults } from "./typings.js";
28
5
  import { p as pxCheck } from "./px-check.js";
29
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
30
- fit: "fill",
31
- position: "center",
32
- alt: "",
33
- width: "",
34
- height: "",
35
- error: true,
36
- loading: true,
37
- lazy: false
38
- });
39
- var classPrefix = "nut-image";
40
- var Image = function Image2(props) {
41
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, src = _defaultProps$props.src, fit = _defaultProps$props.fit, position = _defaultProps$props.position, alt = _defaultProps$props.alt, width = _defaultProps$props.width, height = _defaultProps$props.height, radius = _defaultProps$props.radius, error = _defaultProps$props.error, loading = _defaultProps$props.loading, lazy = _defaultProps$props.lazy, onClick = _defaultProps$props.onClick, onLoad = _defaultProps$props.onLoad, onError = _defaultProps$props.onError;
42
- var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), innerLoading = _useState2[0], setInnerLoading = _useState2[1];
43
- var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), isError = _useState4[0], setIsError = _useState4[1];
44
- var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), complete = _useState6[0], setComplete = _useState6[1];
45
- var imgRef = useRef(null);
46
- useEffect(function() {
6
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { fit: "fill", position: "center", alt: "", width: "", height: "", error: true, loading: true, lazy: false });
7
+ const classPrefix = "nut-image";
8
+ const Image = (props) => {
9
+ const { className, style, src, fit, position, alt, width, height, radius, error, loading, lazy, onClick, onLoad, onError } = Object.assign(Object.assign({}, defaultProps), props);
10
+ const [innerLoading, setInnerLoading] = useState(false);
11
+ const [isError, setIsError] = useState(false);
12
+ const [complete, setComplete] = useState(false);
13
+ const imgRef = useRef(null);
14
+ useEffect(() => {
47
15
  if (imgRef.current && imgRef.current.complete && !lazy) {
48
16
  if (imgRef.current.naturalHeight === 0) {
49
17
  handleError();
@@ -54,10 +22,10 @@ var Image = function Image2(props) {
54
22
  setInnerLoading(true);
55
23
  }
56
24
  }, [imgRef]);
57
- useEffect(function() {
25
+ useEffect(() => {
58
26
  setComplete(false);
59
27
  }, [src]);
60
- var handleLoad = function handleLoad2() {
28
+ const handleLoad = () => {
61
29
  if (!complete) {
62
30
  setIsError(false);
63
31
  setInnerLoading(false);
@@ -65,7 +33,7 @@ var Image = function Image2(props) {
65
33
  setComplete(true);
66
34
  }
67
35
  };
68
- var handleError = function handleError2() {
36
+ const handleError = () => {
69
37
  if (!complete) {
70
38
  setIsError(true);
71
39
  setInnerLoading(false);
@@ -73,28 +41,20 @@ var Image = function Image2(props) {
73
41
  setComplete(true);
74
42
  }
75
43
  };
76
- var containerStyle = _objectSpread({
77
- height: height ? pxCheck(height) : "",
78
- width: width ? pxCheck(width) : "",
79
- overflow: radius !== void 0 && radius !== null ? "hidden" : "",
80
- borderRadius: radius !== void 0 && radius !== null ? pxCheck(radius) : ""
81
- }, style);
82
- var imgStyle = _objectSpread({
83
- objectFit: fit,
84
- objectPosition: position
85
- }, style);
86
- var observer = useRef(null);
87
- var initObserver = function initObserver2() {
88
- var options = {
44
+ const containerStyle = Object.assign({ height: height ? pxCheck(height) : "", width: width ? pxCheck(width) : "", overflow: radius !== void 0 && radius !== null ? "hidden" : "", borderRadius: radius !== void 0 && radius !== null ? pxCheck(radius) : "" }, style);
45
+ const imgStyle = Object.assign({ objectFit: fit, objectPosition: position }, style);
46
+ const observer = useRef(null);
47
+ const initObserver = () => {
48
+ const options = {
89
49
  threshold: [0],
90
50
  rootMargin: "0px"
91
51
  // 对视口进行收缩和扩张
92
52
  };
93
- observer.current = new IntersectionObserver(function(entires, self) {
94
- entires.forEach(function(item) {
53
+ observer.current = new IntersectionObserver((entires, self) => {
54
+ entires.forEach((item) => {
95
55
  if (item.isIntersecting) {
96
- setTimeout(function() {
97
- var img = item.target;
56
+ setTimeout(() => {
57
+ const img = item.target;
98
58
  if (img.dataset.src) {
99
59
  img.src = img.dataset.src;
100
60
  img.removeAttribute("data-src");
@@ -106,72 +66,57 @@ var Image = function Image2(props) {
106
66
  }, options);
107
67
  observer.current.observe(imgRef.current);
108
68
  };
109
- var resetObserver = function resetObserver2() {
69
+ const resetObserver = () => {
110
70
  observer.current.disconnect && observer.current.disconnect();
111
71
  };
112
- useEffect(function() {
72
+ useEffect(() => {
113
73
  lazy && initObserver();
114
- return function() {
74
+ return () => {
115
75
  lazy && resetObserver();
116
76
  };
117
77
  }, [lazy]);
118
- var imageClick = function imageClick2(event) {
78
+ const imageClick = (event) => {
119
79
  onClick && onClick(event);
120
80
  };
121
- var renderErrorImg = useCallback(function() {
81
+ const renderErrorImg = useCallback(() => {
122
82
  if (!isError)
123
83
  return null;
124
84
  if (typeof error === "boolean" && error === true && !innerLoading) {
125
- return React__default.createElement("div", {
126
- className: "nut-img-error"
127
- }, React__default.createElement(ImageError, null));
85
+ return React__default.createElement(
86
+ "div",
87
+ { className: "nut-img-error" },
88
+ React__default.createElement(ImageError, null)
89
+ );
128
90
  }
129
91
  if (React__default.isValidElement(error) && !innerLoading) {
130
- return React__default.createElement("div", {
131
- className: "nut-img-error"
132
- }, error);
92
+ return React__default.createElement("div", { className: "nut-img-error" }, error);
133
93
  }
134
94
  return null;
135
95
  }, [error, isError]);
136
- var renderLoading = useCallback(function() {
96
+ const renderLoading = useCallback(() => {
137
97
  if (!loading)
138
98
  return null;
139
99
  if (typeof loading === "boolean" && loading === true && innerLoading) {
140
- return React__default.createElement("div", {
141
- className: "nut-img-loading"
142
- }, React__default.createElement(Image$1, null));
100
+ return React__default.createElement(
101
+ "div",
102
+ { className: "nut-img-loading" },
103
+ React__default.createElement(Image$1, null)
104
+ );
143
105
  }
144
106
  if (React__default.isValidElement(loading) && innerLoading) {
145
- return React__default.createElement("div", {
146
- className: "nut-img-loading"
147
- }, loading);
107
+ return React__default.createElement("div", { className: "nut-img-loading" }, loading);
148
108
  }
149
109
  return null;
150
110
  }, [loading, innerLoading]);
151
- return React__default.createElement("div", {
152
- className: classNames(classPrefix, className),
153
- style: containerStyle,
154
- onClick: function onClick2(e) {
111
+ return React__default.createElement(
112
+ "div",
113
+ { className: classNames(classPrefix, className), style: containerStyle, onClick: (e) => {
155
114
  imageClick(e);
156
- }
157
- }, lazy ? React__default.createElement("img", {
158
- ref: imgRef,
159
- className: "nut-img lazyload",
160
- style: imgStyle,
161
- "data-src": src,
162
- alt,
163
- loading: "lazy",
164
- onLoad: handleLoad,
165
- onError: handleError
166
- }) : React__default.createElement("img", {
167
- ref: imgRef,
168
- className: "nut-img",
169
- style: imgStyle,
170
- src,
171
- alt,
172
- onLoad: handleLoad,
173
- onError: handleError
174
- }), renderLoading(), renderErrorImg());
115
+ } },
116
+ lazy ? React__default.createElement("img", { ref: imgRef, className: "nut-img lazyload", style: imgStyle, "data-src": src, alt, loading: "lazy", onLoad: handleLoad, onError: handleError }) : React__default.createElement("img", { ref: imgRef, className: "nut-img", style: imgStyle, src, alt, onLoad: handleLoad, onError: handleError }),
117
+ renderLoading(),
118
+ renderErrorImg()
119
+ );
175
120
  };
176
121
  Image.defaultProps = defaultProps;
177
122
  Image.displayName = "NutImage";
@@ -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, { useRef, useState, useEffect } from "react";
25
2
  import classNames from "classnames";
26
3
  import { Close } from "@nutui/icons-react";
@@ -31,50 +8,37 @@ import Swiper from "./Swiper.js";
31
8
  import SwiperItem from "./SwiperItem.js";
32
9
  import { C as ComponentDefaults } from "./typings.js";
33
10
  import { u as usePropsValue } from "./use-props-value.js";
34
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
35
- images: [],
36
- videos: [],
37
- visible: false,
38
- autoPlay: 3e3,
39
- defaultValue: 0,
40
- closeOnContentClick: false,
41
- indicator: false,
42
- indicatorColor: "#fff",
43
- closeIcon: false,
44
- closeIconPosition: "top-right",
45
- onChange: function onChange(value) {
46
- },
47
- onClose: function onClose() {
48
- }
49
- });
50
- var ImagePreview = function ImagePreview2(props) {
51
- var className = props.className, style = props.style, images = props.images, videos = props.videos, visible = props.visible, defaultValue = props.defaultValue, indicatorColor = props.indicatorColor, indicator = props.indicator, autoPlay = props.autoPlay, closeOnContentClick = props.closeOnContentClick, closeIcon = props.closeIcon, closeIconPosition = props.closeIconPosition, onClose2 = props.onClose;
52
- var classPrefix = "nut-imagepreview";
53
- var ref = useRef(null);
54
- var _usePropsValue = usePropsValue({
11
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { images: [], videos: [], visible: false, autoPlay: 3e3, defaultValue: 0, closeOnContentClick: false, indicator: false, indicatorColor: "#fff", closeIcon: false, closeIconPosition: "top-right", onChange: (value) => {
12
+ }, onClose: () => {
13
+ } });
14
+ const ImagePreview = (props) => {
15
+ const { className, style, images, videos, visible, defaultValue, indicatorColor, indicator, autoPlay, closeOnContentClick, closeIcon, closeIconPosition, onClose } = props;
16
+ const classPrefix = "nut-imagepreview";
17
+ const ref = useRef(null);
18
+ const [innerNo, setInnerNo] = usePropsValue({
55
19
  value: props.value,
56
20
  defaultValue,
57
21
  finalValue: defaultValue,
58
- onChange: function onChange2(val) {
59
- var _props$onChange;
60
- (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, val);
22
+ onChange: (val) => {
23
+ var _a;
24
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, val);
61
25
  }
62
- }), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), innerNo = _usePropsValue2[0], setInnerNo = _usePropsValue2[1];
63
- var _useState = useState(visible), _useState2 = _slicedToArray(_useState, 2), showPop = _useState2[0], setShowPop = _useState2[1];
64
- var _useState3 = useState(0), _useState4 = _slicedToArray(_useState3, 2), active = _useState4[0], setActive = _useState4[1];
65
- var _useState5 = useState((images === null || images === void 0 ? void 0 : images.length) || 0 + ((videos === null || videos === void 0 ? void 0 : videos.length) || 0)), _useState6 = _slicedToArray(_useState5, 2), maxNo = _useState6[0], setMaxNo = _useState6[1];
66
- var _useState7 = useState({
26
+ });
27
+ const [showPop, setShowPop] = useState(visible);
28
+ const [active, setActive] = useState(0);
29
+ const [maxNo, setMaxNo] = useState((images === null || images === void 0 ? void 0 : images.length) || 0 + ((videos === null || videos === void 0 ? void 0 : videos.length) || 0));
30
+ const [store, setStore] = useState({
67
31
  scale: 1,
68
32
  moveable: false
69
- }), _useState8 = _slicedToArray(_useState7, 2), store = _useState8[0], setStore = _useState8[1];
70
- var _useState9 = useState(0), _useState10 = _slicedToArray(_useState9, 2), lastTouchEndTime = _useState10[0], setLastTouchEndTime = _useState10[1];
71
- var onTouchStart = function onTouchStart2(event) {
72
- var touches = event.touches;
73
- var events = touches[0];
74
- var events2 = touches[1];
75
- var curTouchTime = (/* @__PURE__ */ new Date()).getTime();
33
+ });
34
+ const [lastTouchEndTime, setLastTouchEndTime] = useState(0);
35
+ const onTouchStart = (event) => {
36
+ const touches = event.touches;
37
+ const events = touches[0];
38
+ const events2 = touches[1];
39
+ const curTouchTime = (/* @__PURE__ */ new Date()).getTime();
76
40
  if (curTouchTime - lastTouchEndTime < 300) {
77
- var store12 = store;
41
+ const store12 = store;
78
42
  if (store12.scale > 1) {
79
43
  store12.scale = 1;
80
44
  } else if (store12.scale === 1) {
@@ -82,7 +46,7 @@ var ImagePreview = function ImagePreview2(props) {
82
46
  }
83
47
  scaleNow();
84
48
  }
85
- var store1 = store;
49
+ const store1 = store;
86
50
  store1.moveable = true;
87
51
  if (events2) {
88
52
  store1.oriDistance = getDistance({
@@ -95,23 +59,23 @@ var ImagePreview = function ImagePreview2(props) {
95
59
  }
96
60
  store1.originScale = store1.scale || 1;
97
61
  };
98
- var onTouchMove = function onTouchMove2(event) {
99
- var touches = event.touches;
100
- var events = touches[0];
101
- var events2 = touches[1];
62
+ const onTouchMove = (event) => {
63
+ const touches = event.touches;
64
+ const events = touches[0];
65
+ const events2 = touches[1];
102
66
  if (!store.moveable) {
103
67
  return;
104
68
  }
105
- var store1 = store;
69
+ const store1 = store;
106
70
  if (events2) {
107
- var curDistance = getDistance({
71
+ const curDistance = getDistance({
108
72
  x: events.pageX,
109
73
  y: events.pageY
110
74
  }, {
111
75
  x: events2.pageX,
112
76
  y: events2.pageY
113
77
  });
114
- var curScale = curDistance / store1.oriDistance;
78
+ const curScale = curDistance / store1.oriDistance;
115
79
  store1.scale = store1.originScale * curScale;
116
80
  if (store1.scale > 3) {
117
81
  store1.scale = 3;
@@ -119,109 +83,92 @@ var ImagePreview = function ImagePreview2(props) {
119
83
  scaleNow();
120
84
  }
121
85
  };
122
- var onTouchEnd = function onTouchEnd2() {
86
+ const onTouchEnd = () => {
123
87
  setLastTouchEndTime((/* @__PURE__ */ new Date()).getTime());
124
- var store1 = store;
88
+ const store1 = store;
125
89
  store1.moveable = false;
126
90
  if (store1.scale < 1.1 && store1.scale > 1 || store1.scale < 1) {
127
91
  store1.scale = 1;
128
92
  scaleNow();
129
93
  }
130
94
  };
131
- useEffect(function() {
95
+ useEffect(() => {
132
96
  init();
133
97
  }, []);
134
- var init = function init2() {
98
+ const init = () => {
135
99
  document.addEventListener("touchmove", onTouchMove);
136
100
  document.addEventListener("touchend", onTouchEnd);
137
101
  document.addEventListener("touchcancel", onTouchEnd);
138
102
  };
139
- useEffect(function() {
103
+ useEffect(() => {
140
104
  setShowPop(visible);
141
105
  }, [visible]);
142
- useEffect(function() {
106
+ useEffect(() => {
143
107
  setInnerNo(defaultValue || 1);
144
108
  }, [defaultValue]);
145
- useEffect(function() {
109
+ useEffect(() => {
146
110
  setActive(innerNo);
147
111
  }, [innerNo]);
148
- useEffect(function() {
112
+ useEffect(() => {
149
113
  setMaxNo((images === null || images === void 0 ? void 0 : images.length) || 0 + ((videos === null || videos === void 0 ? void 0 : videos.length) || 0));
150
114
  }, [images, videos]);
151
- var scaleNow = function scaleNow2() {
115
+ const scaleNow = () => {
152
116
  if (ref.current) {
153
- ref.current.style.transform = "scale(".concat(store.scale, ")");
117
+ ref.current.style.transform = `scale(${store.scale})`;
154
118
  }
155
119
  };
156
- var getDistance = function getDistance2(first, second) {
120
+ const getDistance = (first, second) => {
157
121
  return Math.hypot(Math.abs(second.x - first.x), Math.abs(second.y - first.y));
158
122
  };
159
- var slideChangeEnd = function slideChangeEnd2(page) {
160
- var _props$onChange2;
123
+ const slideChangeEnd = (page) => {
124
+ var _a;
161
125
  setActive(page + 1);
162
- (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, page + 1);
126
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, page + 1);
163
127
  };
164
- var onCloseInner = function onCloseInner2() {
128
+ const onCloseInner = () => {
165
129
  setShowPop(false);
166
130
  setActive(innerNo);
167
131
  scaleNow();
168
- onClose2 && onClose2();
169
- setStore(_objectSpread(_objectSpread({}, store), {}, {
170
- scale: 1
171
- }));
132
+ onClose && onClose();
133
+ setStore(Object.assign(Object.assign({}, store), { scale: 1 }));
172
134
  };
173
- var closeOnImg = function closeOnImg2() {
135
+ const closeOnImg = () => {
174
136
  if (closeOnContentClick) {
175
137
  onCloseInner();
176
138
  }
177
139
  };
178
- return React__default.createElement(Popup, {
179
- visible: showPop,
180
- className: "".concat(classPrefix, "-pop"),
181
- style: {
182
- width: "100%"
183
- },
184
- onClick: onCloseInner
185
- }, React__default.createElement("div", {
186
- className: classNames(classPrefix, className),
187
- style,
188
- ref,
189
- onClick: closeOnImg,
190
- onTouchStart
191
- }, React__default.createElement(Swiper, {
192
- autoPlay,
193
- className: "".concat(classPrefix, "-swiper"),
194
- loop: true,
195
- preventDefault: false,
196
- style: {
197
- display: showPop ? "block" : "none",
198
- "--nutui-indicator-color": indicatorColor
199
- },
200
- direction: "horizontal",
201
- onChange: function onChange2(page) {
202
- return slideChangeEnd(page);
203
- },
204
- defaultValue: innerNo && (innerNo > maxNo ? maxNo - 1 : innerNo - 1),
205
- indicator
206
- }, (videos && videos.length > 0 ? videos.map(function(item, index) {
207
- return React__default.createElement(SwiperItem, {
208
- key: index
209
- }, React__default.createElement(Video, {
210
- source: item.source,
211
- options: item.options
212
- }));
213
- }) : []).concat(images && images.length > 0 ? images.map(function(item, index) {
214
- return React__default.createElement(SwiperItem, {
215
- key: index
216
- }, React__default.createElement(Image, {
217
- src: item.src
218
- }));
219
- }) : []))), React__default.createElement("div", {
220
- className: "".concat(classPrefix, "-index")
221
- }, active, "/", (images ? images.length : 0) + (videos ? videos.length : 0)), closeIcon !== false ? React__default.createElement("div", {
222
- className: "".concat(classPrefix, "-close ").concat(closeIconPosition),
223
- onClick: onCloseInner
224
- }, closeIcon === true ? React__default.createElement(Close, null) : closeIcon) : null);
140
+ return React__default.createElement(
141
+ Popup,
142
+ { visible: showPop, className: `${classPrefix}-pop`, style: { width: "100%" }, onClick: onCloseInner },
143
+ React__default.createElement(
144
+ "div",
145
+ { className: classNames(classPrefix, className), style, ref, onClick: closeOnImg, onTouchStart },
146
+ React__default.createElement(Swiper, { autoPlay, className: `${classPrefix}-swiper`, loop: true, preventDefault: false, style: {
147
+ display: showPop ? "block" : "none",
148
+ "--nutui-indicator-color": indicatorColor
149
+ }, direction: "horizontal", onChange: (page) => slideChangeEnd(page), defaultValue: innerNo && (innerNo > maxNo ? maxNo - 1 : innerNo - 1), indicator }, (videos && videos.length > 0 ? videos.map((item, index) => {
150
+ return React__default.createElement(
151
+ SwiperItem,
152
+ { key: index },
153
+ React__default.createElement(Video, { source: item.source, options: item.options })
154
+ );
155
+ }) : []).concat(images && images.length > 0 ? images.map((item, index) => {
156
+ return React__default.createElement(
157
+ SwiperItem,
158
+ { key: index },
159
+ React__default.createElement(Image, { src: item.src })
160
+ );
161
+ }) : []))
162
+ ),
163
+ React__default.createElement(
164
+ "div",
165
+ { className: `${classPrefix}-index` },
166
+ active,
167
+ "/",
168
+ (images ? images.length : 0) + (videos ? videos.length : 0)
169
+ ),
170
+ closeIcon !== false ? React__default.createElement("div", { className: `${classPrefix}-close ${closeIconPosition}`, onClick: onCloseInner }, closeIcon === true ? React__default.createElement(Close, null) : closeIcon) : null
171
+ );
225
172
  };
226
173
  ImagePreview.defaultProps = defaultProps;
227
174
  ImagePreview.displayName = "NutImagePreview";