@nutui/nutui-react 3.0.20-beta.0 → 3.0.20

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 (89) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/hooks/taro/use-custom-event.js +5 -5
  3. package/dist/cjs/hooks/use-ref-state.js +3 -3
  4. package/dist/cjs/hooks/use-touch.js +1 -2
  5. package/dist/cjs/packages/address/address.js +3 -3
  6. package/dist/cjs/packages/address/utils.js +3 -3
  7. package/dist/cjs/packages/avatarcropper/avatarcropper.js +4 -7
  8. package/dist/cjs/packages/calendar/utils.js +8 -8
  9. package/dist/cjs/packages/calendarcard/icon.js +5 -5
  10. package/dist/cjs/packages/calendarcard/utils.js +6 -6
  11. package/dist/cjs/packages/cascader/cascader.js +12 -21
  12. package/dist/cjs/packages/cascader/utils.js +3 -3
  13. package/dist/cjs/packages/collapseitem/collapseitem.js +4 -7
  14. package/dist/cjs/packages/configprovider/configprovider.js +7 -7
  15. package/dist/cjs/packages/configprovider/index.js +6 -6
  16. package/dist/cjs/packages/countdown/countdown.js +1 -2
  17. package/dist/cjs/packages/datepicker/utils.js +9 -9
  18. package/dist/cjs/packages/dialog/content.js +3 -3
  19. package/dist/cjs/packages/dialog/dialog.js +4 -7
  20. package/dist/cjs/packages/elevator/elevator.js +3 -3
  21. package/dist/cjs/packages/form/index.js +0 -2
  22. package/dist/cjs/packages/form/useform.js +50 -57
  23. package/dist/cjs/packages/infiniteloading/infiniteloading.js +8 -14
  24. package/dist/cjs/packages/inputnumber/inputnumber.js +16 -28
  25. package/dist/cjs/packages/lottie/types.js +0 -2
  26. package/dist/cjs/packages/nutui.react.build.js +105 -105
  27. package/dist/cjs/packages/nutui.react.js +105 -105
  28. package/dist/cjs/packages/overlay/overlay.js +3 -3
  29. package/dist/cjs/packages/pickerview/pickerview.js +1 -2
  30. package/dist/cjs/packages/pickerview/utils.js +3 -3
  31. package/dist/cjs/packages/pulltorefresh/pulltorefresh.js +41 -51
  32. package/dist/cjs/packages/radio/index.js +0 -2
  33. package/dist/cjs/packages/range/utils.js +3 -3
  34. package/dist/cjs/packages/shortpassword/shortpassword.js +3 -3
  35. package/dist/cjs/packages/skeleton/skeleton.js +2 -4
  36. package/dist/cjs/packages/swiper/effects/focus.js +4 -4
  37. package/dist/cjs/packages/swiper/index.js +0 -1
  38. package/dist/cjs/packages/switch/switch.js +4 -7
  39. package/dist/cjs/packages/uploader/uploader.js +30 -37
  40. package/dist/cjs/packages/virtuallist/utils.js +6 -6
  41. package/dist/cjs/packages/watermark/watermark.js +4 -8
  42. package/dist/cjs/types/spec/address/base.js +0 -2
  43. package/dist/cjs/utils/date.js +5 -5
  44. package/dist/cjs/utils/event-mocker.js +10 -18
  45. package/dist/cjs/utils/get-rect.js +4 -4
  46. package/dist/cjs/utils/get-scroll-parent.js +3 -3
  47. package/dist/cjs/utils/merge-props.js +3 -3
  48. package/dist/cjs/utils/merge.js +6 -6
  49. package/dist/cjs/utils/raf.js +3 -3
  50. package/dist/cjs/utils/render.js +5 -9
  51. package/dist/cjs/utils/rubberband.js +3 -3
  52. package/dist/cjs/utils/taro/ConfigurableCSSTransition copy.d.ts +15 -0
  53. package/dist/cjs/utils/taro/ConfigurableCSSTransition copy.js +130 -0
  54. package/dist/cjs/utils/taro/get-rect.js +14 -24
  55. package/dist/cjs/utils/taro/get-system-info.js +4 -4
  56. package/dist/cjs/utils/taro/platform.js +5 -5
  57. package/dist/es/hooks/use-touch.js +1 -1
  58. package/dist/es/packages/avatarcropper/avatarcropper.js +4 -7
  59. package/dist/es/packages/cascader/cascader.js +12 -21
  60. package/dist/es/packages/collapseitem/collapseitem.js +4 -7
  61. package/dist/es/packages/countdown/countdown.js +1 -2
  62. package/dist/es/packages/dialog/dialog.js +4 -7
  63. package/dist/es/packages/form/index.js +0 -1
  64. package/dist/es/packages/form/useform.js +46 -53
  65. package/dist/es/packages/infiniteloading/infiniteloading.js +8 -14
  66. package/dist/es/packages/inputnumber/inputnumber.js +16 -28
  67. package/dist/es/packages/lottie/types.js +1 -1
  68. package/dist/es/packages/pickerview/pickerview.js +1 -2
  69. package/dist/es/packages/pulltorefresh/pulltorefresh.js +41 -51
  70. package/dist/es/packages/radio/index.js +0 -1
  71. package/dist/es/packages/skeleton/skeleton.js +2 -4
  72. package/dist/es/packages/swiper/index.js +0 -1
  73. package/dist/es/packages/switch/switch.js +4 -7
  74. package/dist/es/packages/uploader/uploader.js +30 -37
  75. package/dist/es/packages/watermark/watermark.js +4 -8
  76. package/dist/es/types/spec/address/base.js +1 -1
  77. package/dist/es/utils/event-mocker.js +4 -12
  78. package/dist/es/utils/render.js +2 -6
  79. package/dist/es/utils/taro/ConfigurableCSSTransition copy.d.ts +15 -0
  80. package/dist/es/utils/taro/ConfigurableCSSTransition copy.js +119 -0
  81. package/dist/es/utils/taro/get-rect.js +10 -20
  82. package/dist/nutui.react.umd.js +396 -592
  83. package/dist/style-jmapp.css +1 -1
  84. package/dist/style-jmapp.scss +33 -33
  85. package/dist/style-jrkf.css +1 -1
  86. package/dist/style-jrkf.scss +36 -36
  87. package/dist/style.css +1 -1
  88. package/dist/style.scss +36 -36
  89. package/package.json +1 -1
@@ -30,40 +30,7 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
30
30
  });
31
31
  export var PullToRefresh = function(p) {
32
32
  var doRefresh = function doRefresh() {
33
- return _doRefresh.apply(this, arguments);
34
- };
35
- var classPrefix = 'nut-pulltorefresh';
36
- var locale = useConfig().locale;
37
- var props = _object_spread({}, defaultProps, p, {
38
- pullingText: p.pullingText || locale.pullToRefresh.pullingText,
39
- canReleaseText: p.canReleaseText || locale.pullToRefresh.canReleaseText,
40
- refreshingText: p.refreshingText || locale.pullToRefresh.refreshingText,
41
- completeText: p.completeText || locale.pullToRefresh.completeText
42
- });
43
- var classes = classNames(classPrefix, props.className, "".concat(classPrefix, "-").concat(props.type));
44
- var headHeight = props.headHeight;
45
- var threshold = props.threshold;
46
- var _useState = _sliced_to_array(useState('pulling'), 2), status = _useState[0], setStatus = _useState[1];
47
- var _useSpring = _sliced_to_array(useSpring(function() {
48
- return {
49
- from: {
50
- height: 0
51
- },
52
- config: {
53
- tension: 300,
54
- friction: 30,
55
- clamp: true
56
- }
57
- };
58
- }), 2), springStyles = _useSpring[0], api = _useSpring[1];
59
- var elementRef = useRef(null);
60
- var pullingRef = useRef(false);
61
- useEffect(function() {
62
- var _elementRef_current;
63
- (_elementRef_current = elementRef.current) === null || _elementRef_current === void 0 ? void 0 : _elementRef_current.addEventListener('touchmove', function() {});
64
- }, []);
65
- function _doRefresh() {
66
- _doRefresh = _async_to_generator(function() {
33
+ return _async_to_generator(function() {
67
34
  var e;
68
35
  return _ts_generator(this, function(_state) {
69
36
  switch(_state.label){
@@ -94,8 +61,8 @@ export var PullToRefresh = function(p) {
94
61
  case 3:
95
62
  e = _state.sent();
96
63
  api.start({
97
- to: /*#__PURE__*/ function() {
98
- var _ref = _async_to_generator(function(next) {
64
+ to: function(next) {
65
+ return _async_to_generator(function() {
99
66
  return _ts_generator(this, function(_state) {
100
67
  switch(_state.label){
101
68
  case 0:
@@ -113,11 +80,8 @@ export var PullToRefresh = function(p) {
113
80
  ];
114
81
  }
115
82
  });
116
- });
117
- return function(next) {
118
- return _ref.apply(this, arguments);
119
- };
120
- }()
83
+ })();
84
+ }
121
85
  });
122
86
  throw e;
123
87
  case 4:
@@ -134,8 +98,8 @@ export var PullToRefresh = function(p) {
134
98
  _state.label = 6;
135
99
  case 6:
136
100
  api.start({
137
- to: /*#__PURE__*/ function() {
138
- var _ref = _async_to_generator(function(next) {
101
+ to: function(next) {
102
+ return _async_to_generator(function() {
139
103
  return _ts_generator(this, function(_state) {
140
104
  switch(_state.label){
141
105
  case 0:
@@ -153,20 +117,46 @@ export var PullToRefresh = function(p) {
153
117
  ];
154
118
  }
155
119
  });
156
- });
157
- return function(next) {
158
- return _ref.apply(this, arguments);
159
- };
160
- }()
120
+ })();
121
+ }
161
122
  });
162
123
  return [
163
124
  2
164
125
  ];
165
126
  }
166
127
  });
167
- });
168
- return _doRefresh.apply(this, arguments);
169
- }
128
+ })();
129
+ };
130
+ var classPrefix = 'nut-pulltorefresh';
131
+ var locale = useConfig().locale;
132
+ var props = _object_spread({}, defaultProps, p, {
133
+ pullingText: p.pullingText || locale.pullToRefresh.pullingText,
134
+ canReleaseText: p.canReleaseText || locale.pullToRefresh.canReleaseText,
135
+ refreshingText: p.refreshingText || locale.pullToRefresh.refreshingText,
136
+ completeText: p.completeText || locale.pullToRefresh.completeText
137
+ });
138
+ var classes = classNames(classPrefix, props.className, "".concat(classPrefix, "-").concat(props.type));
139
+ var headHeight = props.headHeight;
140
+ var threshold = props.threshold;
141
+ var _useState = _sliced_to_array(useState('pulling'), 2), status = _useState[0], setStatus = _useState[1];
142
+ var _useSpring = _sliced_to_array(useSpring(function() {
143
+ return {
144
+ from: {
145
+ height: 0
146
+ },
147
+ config: {
148
+ tension: 300,
149
+ friction: 30,
150
+ clamp: true
151
+ }
152
+ };
153
+ }), 2), springStyles = _useSpring[0], api = _useSpring[1];
154
+ var elementRef = useRef(null);
155
+ var pullingRef = useRef(false);
156
+ useEffect(function() {
157
+ var _elementRef_current;
158
+ (_elementRef_current = elementRef.current) === null || _elementRef_current === void 0 ? void 0 : _elementRef_current.addEventListener('touchmove', function() {});
159
+ }, []);
170
160
  useDrag(function(state) {
171
161
  var getScrollTop = function getScrollTop(element) {
172
162
  return 'scrollTop' in element ? element.scrollTop : element.scrollY;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Radio } from "./radio";
3
2
  import { RadioGroup } from "../radiogroup/radiogroup";
4
3
  var InnerRadio = Radio;
@@ -52,11 +52,9 @@ export var Skeleton = function(props) {
52
52
  };
53
53
  var _useState = _sliced_to_array(useState(false), 2), animate = _useState[0], setAnimate = _useState[1];
54
54
  var playAnimation = function() {
55
- setAnimate(false) // 首先将 animate 设置为 false
56
- ;
55
+ setAnimate(false); // 首先将 animate 设置为 false
57
56
  setTimeout(function() {
58
- setAnimate(true) // 1 毫秒后再设置为 true,触发动画
59
- ;
57
+ setAnimate(true); // 1 毫秒后再设置为 true,触发动画
60
58
  }, 10);
61
59
  };
62
60
  useEffect(function() {
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Swiper } from "./swiper";
3
2
  import SwiperItem from "../swiperitem";
4
3
  var InnerSwiper = Swiper;
@@ -62,8 +62,8 @@ export var Switch = function(props) {
62
62
  (_obj = {}, _define_property(_obj, "".concat(classPrefix, "-close"), !value), _define_property(_obj, "".concat(classPrefix, "-disabled"), disabled), _define_property(_obj, "".concat(classPrefix, "-disabled-close"), disabled && !value), _obj)
63
63
  ]);
64
64
  };
65
- var onClick = /*#__PURE__*/ function() {
66
- var _ref = _async_to_generator(function() {
65
+ var onClick = function() {
66
+ return _async_to_generator(function() {
67
67
  var e;
68
68
  return _ts_generator(this, function(_state) {
69
69
  switch(_state.label){
@@ -108,11 +108,8 @@ export var Switch = function(props) {
108
108
  ];
109
109
  }
110
110
  });
111
- });
112
- return function onClick() {
113
- return _ref.apply(this, arguments);
114
- };
115
- }();
111
+ })();
112
+ };
116
113
  var _obj, _obj1;
117
114
  return /*#__PURE__*/ React.createElement("div", _object_spread_props(_object_spread({
118
115
  className: classes(),
@@ -99,22 +99,24 @@ var InternalUploader = function(props, ref) {
99
99
  ]);
100
100
  useImperativeHandle(ref, function() {
101
101
  return {
102
- submit: /*#__PURE__*/ _async_to_generator(function() {
103
- return _ts_generator(this, function(_state) {
104
- switch(_state.label){
105
- case 0:
106
- return [
107
- 4,
108
- uploadAction(uploadQueue)
109
- ];
110
- case 1:
111
- _state.sent();
112
- return [
113
- 2
114
- ];
115
- }
116
- });
117
- }),
102
+ submit: function() {
103
+ return _async_to_generator(function() {
104
+ return _ts_generator(this, function(_state) {
105
+ switch(_state.label){
106
+ case 0:
107
+ return [
108
+ 4,
109
+ uploadAction(uploadQueue)
110
+ ];
111
+ case 1:
112
+ _state.sent();
113
+ return [
114
+ 2
115
+ ];
116
+ }
117
+ });
118
+ })();
119
+ },
118
120
  clear: function() {
119
121
  clearUploadQueue();
120
122
  }
@@ -171,8 +173,8 @@ var InternalUploader = function(props, ref) {
171
173
  }
172
174
  });
173
175
  };
174
- var fileChange = /*#__PURE__*/ function() {
175
- var _ref = _async_to_generator(function(event) {
176
+ var fileChange = function(event) {
177
+ return _async_to_generator(function() {
176
178
  var $el, files, _files, filesArr, tasks;
177
179
  return _ts_generator(this, function(_state) {
178
180
  switch(_state.label){
@@ -258,13 +260,10 @@ var InternalUploader = function(props, ref) {
258
260
  ];
259
261
  }
260
262
  });
261
- });
262
- return function fileChange(event) {
263
- return _ref.apply(this, arguments);
264
- };
265
- }();
266
- var uploadAction = /*#__PURE__*/ function() {
267
- var _ref = _async_to_generator(function(tasks) {
263
+ })();
264
+ };
265
+ var uploadAction = function(tasks) {
266
+ return _async_to_generator(function() {
268
267
  var taskIds;
269
268
  return _ts_generator(this, function(_state) {
270
269
  switch(_state.label){
@@ -283,8 +282,8 @@ var InternalUploader = function(props, ref) {
283
282
  }));
284
283
  return [
285
284
  4,
286
- Promise.all(tasks.map(/*#__PURE__*/ function() {
287
- var _ref = _async_to_generator(function(currentTask, index) {
285
+ Promise.all(tasks.map(function(currentTask, index) {
286
+ return _async_to_generator(function() {
288
287
  var result, list, e, list1;
289
288
  return _ts_generator(this, function(_state) {
290
289
  switch(_state.label){
@@ -331,11 +330,8 @@ var InternalUploader = function(props, ref) {
331
330
  ];
332
331
  }
333
332
  });
334
- });
335
- return function(currentTask, index) {
336
- return _ref.apply(this, arguments);
337
- };
338
- }())).catch(function(errs) {
333
+ })();
334
+ })).catch(function(errs) {
339
335
  return console.error(errs);
340
336
  })
341
337
  ];
@@ -346,11 +342,8 @@ var InternalUploader = function(props, ref) {
346
342
  ];
347
343
  }
348
344
  });
349
- });
350
- return function uploadAction(tasks) {
351
- return _ref.apply(this, arguments);
352
- };
353
- }();
345
+ })();
346
+ };
354
347
  var handleItemClick = function(file, index) {
355
348
  onFileItemClick === null || onFileItemClick === void 0 ? void 0 : onFileItemClick(file, index);
356
349
  };
@@ -59,20 +59,16 @@ export var WaterMark = function(props) {
59
59
  setBase64Url(canvas.toDataURL());
60
60
  };
61
61
  } else if (content) {
62
- ctx.textBaseline = 'middle' // 设置或返回在绘制文本时使用的当前文本基线。(正中)
63
- ;
64
- ctx.textAlign = 'center' // 设置或返回文本内容的当前对齐方式。
65
- ;
62
+ ctx.textBaseline = 'middle'; // 设置或返回在绘制文本时使用的当前文本基线。(正中)
63
+ ctx.textAlign = 'center'; // 设置或返回文本内容的当前对齐方式。
66
64
  // 文字绕中间旋转
67
65
  ctx.translate(markWidth / 2, markHeight / 2);
68
66
  ctx.rotate(Math.PI / 180 * Number(rotate));
69
67
  var markSize = Number(fontSize) * ratio;
70
68
  ctx.font = "".concat(fontStyle, " normal ").concat(fontWeight, " ").concat(markSize, "px/").concat(markHeight, "px ").concat(fontFamily);
71
69
  ctx.fillStyle = color;
72
- ctx.fillText(content, startX, startY) // 在画布上绘制"被填充的"文本。
73
- ;
74
- ctx.restore() // 返回之前保存过的路径状态和属性。
75
- ;
70
+ ctx.fillText(content, startX, startY); // 在画布上绘制"被填充的"文本。
71
+ ctx.restore(); // 返回之前保存过的路径状态和属性。
76
72
  setBase64Url(canvas.toDataURL());
77
73
  }
78
74
  } else {
@@ -1 +1 @@
1
- import React from "react";
1
+ export { };
@@ -72,10 +72,7 @@ export function triggerDrag(el) {
72
72
  * @param {number} endY 结束触摸点的 Y 坐标
73
73
  * @param {number} duration 移动持续时间(毫秒)
74
74
  */ export function simulateTouchMove(element, startX, startY, endX, endY, duration) {
75
- return _simulateTouchMove.apply(this, arguments);
76
- }
77
- function _simulateTouchMove() {
78
- _simulateTouchMove = _async_to_generator(function(element, startX, startY, endX, endY, duration) {
75
+ return _async_to_generator(function() {
79
76
  var touch, touchList, distanceX, distanceY, startTime, elapsed, progress, currentX, currentY, currentTouch, currentTouchList;
80
77
  return _ts_generator(this, function(_state) {
81
78
  switch(_state.label){
@@ -128,8 +125,7 @@ function _simulateTouchMove() {
128
125
  ];
129
126
  }
130
127
  });
131
- });
132
- return _simulateTouchMove.apply(this, arguments);
128
+ })();
133
129
  }
134
130
  /**
135
131
  * 模拟触摸缩放方法
@@ -138,10 +134,7 @@ function _simulateTouchMove() {
138
134
  * @param {number} endDistance 结束触摸点的距离
139
135
  * @param {number} duration 缩放持续时间(毫秒)
140
136
  */ export function simulateTouchZoom(element, startDistance, endDistance, duration) {
141
- return _simulateTouchZoom.apply(this, arguments);
142
- }
143
- function _simulateTouchZoom() {
144
- _simulateTouchZoom = _async_to_generator(function(element, startDistance, endDistance, duration) {
137
+ return _async_to_generator(function() {
145
138
  var centerX, centerY, startScale, endScale, startTouches, endTouches, progress, currentScale, currentDistance, currentTouches;
146
139
  return _ts_generator(this, function(_state) {
147
140
  switch(_state.label){
@@ -201,6 +194,5 @@ function _simulateTouchZoom() {
201
194
  ];
202
195
  }
203
196
  });
204
- });
205
- return _simulateTouchZoom.apply(this, arguments);
197
+ })();
206
198
  }
@@ -45,10 +45,7 @@ function legacyUnmount(container) {
45
45
  return unmountComponentAtNode(container);
46
46
  }
47
47
  function concurrentUnmount(container) {
48
- return _concurrentUnmount.apply(this, arguments);
49
- }
50
- function _concurrentUnmount() {
51
- _concurrentUnmount = _async_to_generator(function(container) {
48
+ return _async_to_generator(function() {
52
49
  return _ts_generator(this, function(_state) {
53
50
  // Delay to unmount to avoid React 18 sync warning
54
51
  return [
@@ -60,8 +57,7 @@ function _concurrentUnmount() {
60
57
  })
61
58
  ];
62
59
  });
63
- });
64
- return _concurrentUnmount.apply(this, arguments);
60
+ })();
65
61
  }
66
62
  export function unmount(container) {
67
63
  if (createRoot) {
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export type TransitionStatus = 'entering' | 'entered' | 'exiting' | 'exited' | 'unmounted';
3
+ interface CSSTransitionProps {
4
+ in?: boolean;
5
+ timeout?: number;
6
+ classNames?: string;
7
+ nodeRef?: React.RefObject<any>;
8
+ mountOnEnter?: boolean;
9
+ unmountOnExit?: boolean;
10
+ onEntered?: () => void;
11
+ onExited?: () => void;
12
+ children: React.ReactElement;
13
+ }
14
+ declare const ConfigurableCSSTransition: React.FC<CSSTransitionProps>;
15
+ export default ConfigurableCSSTransition;
@@ -0,0 +1,119 @@
1
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
2
+ import React, { useState, useEffect, useRef, cloneElement, useCallback } from "react";
3
+ var ConfigurableCSSTransition = function(props) {
4
+ var inPhase = props.in, _props_timeout = props.timeout, timeout = _props_timeout === void 0 ? 300 : _props_timeout, tmp = props.classNames, baseClassName = tmp === void 0 ? '' : tmp, nodeRef = props.nodeRef, mountOnEnter = props.mountOnEnter, unmountOnExit = props.unmountOnExit, onEntered = props.onEntered, onExited = props.onExited, children = props.children;
5
+ var _useState = _sliced_to_array(useState(function() {
6
+ if (inPhase) return 'entered';
7
+ return unmountOnExit || mountOnEnter ? 'unmounted' : 'exited';
8
+ }), 2), status = _useState[0], setStatus = _useState[1];
9
+ var _useState1 = _sliced_to_array(useState(function() {
10
+ if (inPhase) return "".concat(baseClassName, "-enter-done");
11
+ return "".concat(baseClassName, "-exit-done");
12
+ }), 2), classes = _useState1[0], setClasses = _useState1[1];
13
+ var fallbackTimerRef = useRef(null);
14
+ var statusRef = useRef(status);
15
+ var prevInPhase = useRef(inPhase);
16
+ var latestOnAnimationEnd = useRef(children.props.onAnimationEnd);
17
+ useEffect(function() {
18
+ latestOnAnimationEnd.current = children.props.onAnimationEnd;
19
+ });
20
+ var updateStatus = useCallback(function(nextStatus) {
21
+ statusRef.current = nextStatus;
22
+ setStatus(nextStatus);
23
+ }, []);
24
+ var handleAnimationEnd = useCallback(function(e) {
25
+ var _latestOnAnimationEnd_current;
26
+ (_latestOnAnimationEnd_current = latestOnAnimationEnd.current) === null || _latestOnAnimationEnd_current === void 0 ? void 0 : _latestOnAnimationEnd_current.call(latestOnAnimationEnd, e);
27
+ if (e && e.target !== e.currentTarget) return;
28
+ if (fallbackTimerRef.current) clearTimeout(fallbackTimerRef.current);
29
+ if (statusRef.current === 'entering') {
30
+ updateStatus('entered');
31
+ setClasses("".concat(baseClassName, "-enter-done"));
32
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered();
33
+ } else if (statusRef.current === 'exiting') {
34
+ updateStatus('exited');
35
+ setClasses("".concat(baseClassName, "-exit-done"));
36
+ if (unmountOnExit) {
37
+ updateStatus('unmounted');
38
+ }
39
+ onExited === null || onExited === void 0 ? void 0 : onExited();
40
+ }
41
+ }, [
42
+ baseClassName,
43
+ onEntered,
44
+ onExited,
45
+ unmountOnExit,
46
+ updateStatus
47
+ ]);
48
+ var enter = useCallback(function() {
49
+ if (fallbackTimerRef.current) clearTimeout(fallbackTimerRef.current);
50
+ if (statusRef.current === 'unmounted') {
51
+ updateStatus('exited');
52
+ }
53
+ if (timeout === 0) {
54
+ updateStatus('entered');
55
+ setClasses("".concat(baseClassName, "-enter-done"));
56
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered();
57
+ return;
58
+ }
59
+ updateStatus('entering');
60
+ setClasses("".concat(baseClassName, "-enter ").concat(baseClassName, "-enter-active"));
61
+ // Safety fallback: Give it extra time over the expected timeout in case onAnimationEnd misses
62
+ fallbackTimerRef.current = setTimeout(function() {
63
+ handleAnimationEnd(null);
64
+ }, timeout + 200);
65
+ }, [
66
+ baseClassName,
67
+ handleAnimationEnd,
68
+ onEntered,
69
+ timeout,
70
+ updateStatus
71
+ ]);
72
+ var exit = useCallback(function() {
73
+ if (fallbackTimerRef.current) clearTimeout(fallbackTimerRef.current);
74
+ if (timeout === 0) {
75
+ updateStatus('exited');
76
+ setClasses("".concat(baseClassName, "-exit-done"));
77
+ if (unmountOnExit) {
78
+ updateStatus('unmounted');
79
+ }
80
+ onExited === null || onExited === void 0 ? void 0 : onExited();
81
+ return;
82
+ }
83
+ updateStatus('exiting');
84
+ setClasses("".concat(baseClassName, "-exit ").concat(baseClassName, "-exit-active"));
85
+ fallbackTimerRef.current = setTimeout(function() {
86
+ handleAnimationEnd(null);
87
+ }, timeout + 200);
88
+ }, [
89
+ baseClassName,
90
+ handleAnimationEnd,
91
+ onExited,
92
+ timeout,
93
+ unmountOnExit,
94
+ updateStatus
95
+ ]);
96
+ useEffect(function() {
97
+ if (prevInPhase.current !== inPhase) {
98
+ if (inPhase) {
99
+ enter();
100
+ } else {
101
+ exit();
102
+ }
103
+ prevInPhase.current = inPhase;
104
+ }
105
+ return function() {
106
+ if (fallbackTimerRef.current) clearTimeout(fallbackTimerRef.current);
107
+ };
108
+ }, [
109
+ inPhase,
110
+ enter,
111
+ exit
112
+ ]);
113
+ if (status === 'unmounted') return null;
114
+ return /*#__PURE__*/ cloneElement(children, {
115
+ className: "".concat(children.props.className || '', " ").concat(classes),
116
+ onAnimationEnd: handleAnimationEnd
117
+ });
118
+ };
119
+ export default ConfigurableCSSTransition;
@@ -15,12 +15,10 @@ export function makeRect(width, height) {
15
15
  height: height
16
16
  };
17
17
  }
18
- export var getRectInMultiPlatform = /*#__PURE__*/ function() {
19
- var _ref = _async_to_generator(function(element) {
20
- var harmonyId;
21
- var _arguments = arguments;
18
+ export var getRectInMultiPlatform = function(element) {
19
+ var harmonyId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : '';
20
+ return _async_to_generator(function() {
22
21
  return _ts_generator(this, function(_state) {
23
- harmonyId = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : '';
24
22
  if (element) {
25
23
  if (inBrowser) {
26
24
  return [
@@ -51,18 +49,13 @@ export var getRectInMultiPlatform = /*#__PURE__*/ function() {
51
49
  Promise.resolve(makeRect(0, 0))
52
50
  ];
53
51
  });
54
- });
55
- return function getRectInMultiPlatform(element) {
56
- return _ref.apply(this, arguments);
57
- };
58
- }();
52
+ })();
53
+ };
59
54
  // 获取元素位置,不走缓存
60
- export var getRectInMultiPlatformWithoutCache = /*#__PURE__*/ function() {
61
- var _ref = _async_to_generator(function(element) {
62
- var harmonyId;
63
- var _arguments = arguments;
55
+ export var getRectInMultiPlatformWithoutCache = function(element) {
56
+ var harmonyId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : '';
57
+ return _async_to_generator(function() {
64
58
  return _ts_generator(this, function(_state) {
65
- harmonyId = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : '';
66
59
  if (element) {
67
60
  if (inBrowser) {
68
61
  return [
@@ -85,8 +78,5 @@ export var getRectInMultiPlatformWithoutCache = /*#__PURE__*/ function() {
85
78
  Promise.resolve(makeRect(0, 0))
86
79
  ];
87
80
  });
88
- });
89
- return function getRectInMultiPlatformWithoutCache(element) {
90
- return _ref.apply(this, arguments);
91
- };
92
- }();
81
+ })();
82
+ };