@mpxjs/webpack-plugin 2.10.14-beta.5 → 2.10.14-beta.7

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 (183) hide show
  1. package/lib/platform/template/wx/component-config/button.js +12 -3
  2. package/lib/runtime/components/react/context.ts +0 -1
  3. package/lib/runtime/components/react/dist/context.d.ts +3 -6
  4. package/lib/runtime/components/react/dist/context.d.ts.map +1 -0
  5. package/lib/runtime/components/react/dist/context.js +1 -1
  6. package/lib/runtime/components/react/dist/event.config.d.ts +1 -0
  7. package/lib/runtime/components/react/dist/event.config.d.ts.map +1 -0
  8. package/lib/runtime/components/react/dist/getInnerListeners.d.ts +1 -0
  9. package/lib/runtime/components/react/dist/getInnerListeners.d.ts.map +1 -0
  10. package/lib/runtime/components/react/dist/getInnerListeners.js +35 -21
  11. package/lib/runtime/components/react/dist/mpx-async-suspense.d.ts +1 -0
  12. package/lib/runtime/components/react/dist/mpx-async-suspense.d.ts.map +1 -0
  13. package/lib/runtime/components/react/dist/mpx-async-suspense.jsx +2 -2
  14. package/lib/runtime/components/react/dist/mpx-button.d.ts +1 -0
  15. package/lib/runtime/components/react/dist/mpx-button.d.ts.map +1 -0
  16. package/lib/runtime/components/react/dist/mpx-camera.d.ts +27 -0
  17. package/lib/runtime/components/react/dist/mpx-camera.d.ts.map +1 -0
  18. package/lib/runtime/components/react/dist/mpx-camera.jsx +197 -0
  19. package/lib/runtime/components/react/dist/mpx-canvas/Bus.d.ts +1 -0
  20. package/lib/runtime/components/react/dist/mpx-canvas/Bus.d.ts.map +1 -0
  21. package/lib/runtime/components/react/dist/mpx-canvas/CanvasGradient.d.ts +1 -0
  22. package/lib/runtime/components/react/dist/mpx-canvas/CanvasGradient.d.ts.map +1 -0
  23. package/lib/runtime/components/react/dist/mpx-canvas/CanvasRenderingContext2D.d.ts +1 -0
  24. package/lib/runtime/components/react/dist/mpx-canvas/CanvasRenderingContext2D.d.ts.map +1 -0
  25. package/lib/runtime/components/react/dist/mpx-canvas/Image.d.ts +1 -0
  26. package/lib/runtime/components/react/dist/mpx-canvas/Image.d.ts.map +1 -0
  27. package/lib/runtime/components/react/dist/mpx-canvas/ImageData.d.ts +1 -0
  28. package/lib/runtime/components/react/dist/mpx-canvas/ImageData.d.ts.map +1 -0
  29. package/lib/runtime/components/react/dist/mpx-canvas/constructorsRegistry.d.ts +1 -0
  30. package/lib/runtime/components/react/dist/mpx-canvas/constructorsRegistry.d.ts.map +1 -0
  31. package/lib/runtime/components/react/dist/mpx-canvas/html.d.ts +1 -0
  32. package/lib/runtime/components/react/dist/mpx-canvas/html.d.ts.map +1 -0
  33. package/lib/runtime/components/react/dist/mpx-canvas/index.d.ts +1 -0
  34. package/lib/runtime/components/react/dist/mpx-canvas/index.d.ts.map +1 -0
  35. package/lib/runtime/components/react/dist/mpx-canvas/utils.d.ts +1 -0
  36. package/lib/runtime/components/react/dist/mpx-canvas/utils.d.ts.map +1 -0
  37. package/lib/runtime/components/react/dist/mpx-checkbox-group.d.ts +1 -0
  38. package/lib/runtime/components/react/dist/mpx-checkbox-group.d.ts.map +1 -0
  39. package/lib/runtime/components/react/dist/mpx-checkbox.d.ts +1 -0
  40. package/lib/runtime/components/react/dist/mpx-checkbox.d.ts.map +1 -0
  41. package/lib/runtime/components/react/dist/mpx-form.d.ts +1 -0
  42. package/lib/runtime/components/react/dist/mpx-form.d.ts.map +1 -0
  43. package/lib/runtime/components/react/dist/mpx-icon/index.d.ts +1 -0
  44. package/lib/runtime/components/react/dist/mpx-icon/index.d.ts.map +1 -0
  45. package/lib/runtime/components/react/dist/mpx-image.d.ts +1 -0
  46. package/lib/runtime/components/react/dist/mpx-image.d.ts.map +1 -0
  47. package/lib/runtime/components/react/dist/mpx-image.jsx +81 -37
  48. package/lib/runtime/components/react/dist/mpx-inline-text.d.ts +1 -0
  49. package/lib/runtime/components/react/dist/mpx-inline-text.d.ts.map +1 -0
  50. package/lib/runtime/components/react/dist/mpx-input.d.ts +2 -7
  51. package/lib/runtime/components/react/dist/mpx-input.d.ts.map +1 -0
  52. package/lib/runtime/components/react/dist/mpx-input.jsx +19 -12
  53. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.d.ts +1 -0
  54. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.d.ts.map +1 -0
  55. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.jsx +15 -22
  56. package/lib/runtime/components/react/dist/mpx-label.d.ts +1 -0
  57. package/lib/runtime/components/react/dist/mpx-label.d.ts.map +1 -0
  58. package/lib/runtime/components/react/dist/mpx-movable-area.d.ts +1 -0
  59. package/lib/runtime/components/react/dist/mpx-movable-area.d.ts.map +1 -0
  60. package/lib/runtime/components/react/dist/mpx-movable-view.d.ts +5 -2
  61. package/lib/runtime/components/react/dist/mpx-movable-view.d.ts.map +1 -0
  62. package/lib/runtime/components/react/dist/mpx-movable-view.jsx +102 -34
  63. package/lib/runtime/components/react/dist/mpx-nav.d.ts +9 -0
  64. package/lib/runtime/components/react/dist/mpx-nav.d.ts.map +1 -0
  65. package/lib/runtime/components/react/dist/mpx-nav.jsx +132 -0
  66. package/lib/runtime/components/react/dist/mpx-navigator.d.ts +1 -0
  67. package/lib/runtime/components/react/dist/mpx-navigator.d.ts.map +1 -0
  68. package/lib/runtime/components/react/dist/mpx-picker/date.d.ts +1 -0
  69. package/lib/runtime/components/react/dist/mpx-picker/date.d.ts.map +1 -0
  70. package/lib/runtime/components/react/dist/mpx-picker/dateData.d.ts +1 -0
  71. package/lib/runtime/components/react/dist/mpx-picker/dateData.d.ts.map +1 -0
  72. package/lib/runtime/components/react/dist/mpx-picker/index.d.ts +1 -0
  73. package/lib/runtime/components/react/dist/mpx-picker/index.d.ts.map +1 -0
  74. package/lib/runtime/components/react/dist/mpx-picker/multiSelector.d.ts +1 -0
  75. package/lib/runtime/components/react/dist/mpx-picker/multiSelector.d.ts.map +1 -0
  76. package/lib/runtime/components/react/dist/mpx-picker/region.d.ts +1 -0
  77. package/lib/runtime/components/react/dist/mpx-picker/region.d.ts.map +1 -0
  78. package/lib/runtime/components/react/dist/mpx-picker/regionData.d.ts +1 -0
  79. package/lib/runtime/components/react/dist/mpx-picker/regionData.d.ts.map +1 -0
  80. package/lib/runtime/components/react/dist/mpx-picker/selector.d.ts +1 -0
  81. package/lib/runtime/components/react/dist/mpx-picker/selector.d.ts.map +1 -0
  82. package/lib/runtime/components/react/dist/mpx-picker/time.d.ts +1 -0
  83. package/lib/runtime/components/react/dist/mpx-picker/time.d.ts.map +1 -0
  84. package/lib/runtime/components/react/dist/mpx-picker/type.d.ts +1 -0
  85. package/lib/runtime/components/react/dist/mpx-picker/type.d.ts.map +1 -0
  86. package/lib/runtime/components/react/dist/mpx-picker-view/index.d.ts +2 -0
  87. package/lib/runtime/components/react/dist/mpx-picker-view/index.d.ts.map +1 -0
  88. package/lib/runtime/components/react/dist/mpx-picker-view/index.jsx +4 -3
  89. package/lib/runtime/components/react/dist/mpx-picker-view/pickerVIewContext.d.ts +1 -0
  90. package/lib/runtime/components/react/dist/mpx-picker-view/pickerVIewContext.d.ts.map +1 -0
  91. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.d.ts +2 -0
  92. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.d.ts.map +1 -0
  93. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.jsx +15 -21
  94. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.d.ts +1 -0
  95. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.d.ts.map +1 -0
  96. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.jsx +8 -11
  97. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.d.ts +14 -0
  98. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.d.ts.map +1 -0
  99. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.jsx +20 -0
  100. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewFaces.d.ts +1 -0
  101. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewFaces.d.ts.map +1 -0
  102. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewIndicator.d.ts +1 -0
  103. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewIndicator.d.ts.map +1 -0
  104. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewMask.d.ts +1 -0
  105. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewMask.d.ts.map +1 -0
  106. package/lib/runtime/components/react/dist/mpx-popup/index.d.ts +1 -0
  107. package/lib/runtime/components/react/dist/mpx-popup/index.d.ts.map +1 -0
  108. package/lib/runtime/components/react/dist/mpx-popup/popupBase.d.ts +1 -0
  109. package/lib/runtime/components/react/dist/mpx-popup/popupBase.d.ts.map +1 -0
  110. package/lib/runtime/components/react/dist/mpx-portal/index.d.ts +1 -0
  111. package/lib/runtime/components/react/dist/mpx-portal/index.d.ts.map +1 -0
  112. package/lib/runtime/components/react/dist/mpx-portal/index.jsx +5 -1
  113. package/lib/runtime/components/react/dist/mpx-portal/portal-host.d.ts +1 -0
  114. package/lib/runtime/components/react/dist/mpx-portal/portal-host.d.ts.map +1 -0
  115. package/lib/runtime/components/react/dist/mpx-portal/portal-manager.d.ts +1 -0
  116. package/lib/runtime/components/react/dist/mpx-portal/portal-manager.d.ts.map +1 -0
  117. package/lib/runtime/components/react/dist/mpx-portal/portal-manager.jsx +3 -5
  118. package/lib/runtime/components/react/dist/mpx-progress.d.ts +24 -0
  119. package/lib/runtime/components/react/dist/mpx-progress.d.ts.map +1 -0
  120. package/lib/runtime/components/react/dist/mpx-progress.jsx +163 -0
  121. package/lib/runtime/components/react/dist/mpx-radio-group.d.ts +1 -0
  122. package/lib/runtime/components/react/dist/mpx-radio-group.d.ts.map +1 -0
  123. package/lib/runtime/components/react/dist/mpx-radio.d.ts +1 -0
  124. package/lib/runtime/components/react/dist/mpx-radio.d.ts.map +1 -0
  125. package/lib/runtime/components/react/dist/mpx-rich-text/html.d.ts +1 -0
  126. package/lib/runtime/components/react/dist/mpx-rich-text/html.d.ts.map +1 -0
  127. package/lib/runtime/components/react/dist/mpx-rich-text/index.d.ts +1 -0
  128. package/lib/runtime/components/react/dist/mpx-rich-text/index.d.ts.map +1 -0
  129. package/lib/runtime/components/react/dist/mpx-root-portal.d.ts +1 -0
  130. package/lib/runtime/components/react/dist/mpx-root-portal.d.ts.map +1 -0
  131. package/lib/runtime/components/react/dist/mpx-scroll-view.d.ts +1 -0
  132. package/lib/runtime/components/react/dist/mpx-scroll-view.d.ts.map +1 -0
  133. package/lib/runtime/components/react/dist/mpx-scroll-view.jsx +69 -51
  134. package/lib/runtime/components/react/dist/mpx-simple-text.d.ts +1 -0
  135. package/lib/runtime/components/react/dist/mpx-simple-text.d.ts.map +1 -0
  136. package/lib/runtime/components/react/dist/mpx-simple-view.d.ts +1 -0
  137. package/lib/runtime/components/react/dist/mpx-simple-view.d.ts.map +1 -0
  138. package/lib/runtime/components/react/dist/mpx-slider.d.ts +31 -0
  139. package/lib/runtime/components/react/dist/mpx-slider.d.ts.map +1 -0
  140. package/lib/runtime/components/react/dist/mpx-slider.jsx +321 -0
  141. package/lib/runtime/components/react/dist/mpx-sticky-header.d.ts +1 -0
  142. package/lib/runtime/components/react/dist/mpx-sticky-header.d.ts.map +1 -0
  143. package/lib/runtime/components/react/dist/mpx-sticky-section.d.ts +1 -0
  144. package/lib/runtime/components/react/dist/mpx-sticky-section.d.ts.map +1 -0
  145. package/lib/runtime/components/react/dist/mpx-swiper-item.d.ts +1 -0
  146. package/lib/runtime/components/react/dist/mpx-swiper-item.d.ts.map +1 -0
  147. package/lib/runtime/components/react/dist/mpx-swiper.d.ts +1 -0
  148. package/lib/runtime/components/react/dist/mpx-swiper.d.ts.map +1 -0
  149. package/lib/runtime/components/react/dist/mpx-swiper.jsx +9 -16
  150. package/lib/runtime/components/react/dist/mpx-switch.d.ts +1 -0
  151. package/lib/runtime/components/react/dist/mpx-switch.d.ts.map +1 -0
  152. package/lib/runtime/components/react/dist/mpx-text.d.ts +3 -1
  153. package/lib/runtime/components/react/dist/mpx-text.d.ts.map +1 -0
  154. package/lib/runtime/components/react/dist/mpx-text.jsx +33 -5
  155. package/lib/runtime/components/react/dist/mpx-textarea.d.ts +1 -0
  156. package/lib/runtime/components/react/dist/mpx-textarea.d.ts.map +1 -0
  157. package/lib/runtime/components/react/dist/mpx-video.d.ts +1 -0
  158. package/lib/runtime/components/react/dist/mpx-video.d.ts.map +1 -0
  159. package/lib/runtime/components/react/dist/mpx-view.d.ts +1 -0
  160. package/lib/runtime/components/react/dist/mpx-view.d.ts.map +1 -0
  161. package/lib/runtime/components/react/dist/mpx-view.jsx +1 -1
  162. package/lib/runtime/components/react/dist/mpx-web-view.d.ts +1 -0
  163. package/lib/runtime/components/react/dist/mpx-web-view.d.ts.map +1 -0
  164. package/lib/runtime/components/react/dist/mpx-web-view.jsx +21 -2
  165. package/lib/runtime/components/react/dist/parser.d.ts +1 -0
  166. package/lib/runtime/components/react/dist/parser.d.ts.map +1 -0
  167. package/lib/runtime/components/react/dist/useAnimationHooks.d.ts +1 -0
  168. package/lib/runtime/components/react/dist/useAnimationHooks.d.ts.map +1 -0
  169. package/lib/runtime/components/react/dist/useNodesRef.d.ts +1 -0
  170. package/lib/runtime/components/react/dist/useNodesRef.d.ts.map +1 -0
  171. package/lib/runtime/components/react/dist/utils.d.ts +1 -0
  172. package/lib/runtime/components/react/dist/utils.d.ts.map +1 -0
  173. package/lib/runtime/components/react/dist/utils.jsx +16 -6
  174. package/lib/runtime/components/react/mpx-input.tsx +1 -9
  175. package/lib/runtime/components/react/mpx-keyboard-avoiding-view.tsx +15 -13
  176. package/lib/runtime/components/react/nav.tsx +67 -76
  177. package/package.json +1 -1
  178. package/lib/runtime/components/react/dist/mpx-nav-container.d.ts +0 -9
  179. package/lib/runtime/components/react/dist/mpx-nav-container.jsx +0 -23
  180. package/lib/runtime/components/react/dist/nav.d.ts +0 -11
  181. package/lib/runtime/components/react/dist/nav.jsx +0 -141
  182. package/lib/runtime/components/react/dist/useNavShared.d.ts +0 -2
  183. package/lib/runtime/components/react/dist/useNavShared.js +0 -6
@@ -48,8 +48,6 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
48
48
  const scrollOffset = useRef(new RNAnimated.Value(0)).current;
49
49
  const simultaneousHandlers = flatGesture(originSimultaneousHandlers);
50
50
  const waitForHandlers = flatGesture(waitFor);
51
- const snapScrollTop = useRef(0);
52
- const snapScrollLeft = useRef(0);
53
51
  const [refreshing, setRefreshing] = useState(false);
54
52
  const [enableScroll, setEnableScroll] = useState(true);
55
53
  const enableScrollValue = useSharedValue(true);
@@ -74,6 +72,7 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
74
72
  black: ['#000'],
75
73
  white: ['#fff']
76
74
  };
75
+ const isContentSizeChange = useRef(false);
77
76
  const { refresherContent, otherContent } = getRefresherContent(props.children);
78
77
  const hasRefresher = refresherContent && refresherEnabled;
79
78
  const { normalStyle, hasVarDec, varContextRef, hasSelfPercent, hasPositionFixed, setWidth, setHeight } = useTransformStyle(style, { enableVar, externalVarContext, parentFontSize, parentWidth, parentHeight });
@@ -126,14 +125,12 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
126
125
  warn('scroll-x and scroll-y cannot be set to true at the same time, Mpx will use the value of scroll-y as the criterion');
127
126
  }
128
127
  useEffect(() => {
129
- if (snapScrollTop.current !== scrollTop || snapScrollLeft.current !== scrollLeft) {
130
- initialTimeout.current = setTimeout(() => {
131
- scrollToOffset(scrollLeft, scrollTop);
132
- }, 0);
133
- return () => {
134
- initialTimeout.current && clearTimeout(initialTimeout.current);
135
- };
136
- }
128
+ initialTimeout.current = setTimeout(() => {
129
+ scrollToOffset(scrollLeft, scrollTop);
130
+ }, 0);
131
+ return () => {
132
+ initialTimeout.current && clearTimeout(initialTimeout.current);
133
+ };
137
134
  }, [scrollTop, scrollLeft]);
138
135
  useEffect(() => {
139
136
  if (scrollIntoView && __selectRef) {
@@ -223,7 +220,22 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
223
220
  }
224
221
  }
225
222
  function onContentSizeChange(width, height) {
226
- scrollOptions.current.contentLength = selectLength({ height, width });
223
+ isContentSizeChange.current = true;
224
+ const newContentLength = selectLength({ height, width });
225
+ const oldContentLength = scrollOptions.current.contentLength;
226
+ scrollOptions.current.contentLength = newContentLength;
227
+ // 内容高度变化时,Animated.event 的映射可能会有不生效的场景,所以需要手动设置一下 scrollOffset 的值
228
+ if (enableSticky && (__mpx_mode__ === 'android' || __mpx_mode__ === 'ios')) {
229
+ // 当内容变少时,检查当前滚动位置是否超出新的内容范围
230
+ if (newContentLength < oldContentLength) {
231
+ const { visibleLength, offset } = scrollOptions.current;
232
+ const maxOffset = Math.max(0, newContentLength - visibleLength);
233
+ // 如果当前滚动位置超出了新的内容范围,调整滚动offset
234
+ if (offset > maxOffset && scrollY) {
235
+ scrollOffset.setValue(maxOffset);
236
+ }
237
+ }
238
+ }
227
239
  }
228
240
  function onLayout(e) {
229
241
  const layout = e.nativeEvent.layout || {};
@@ -243,8 +255,9 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
243
255
  }
244
256
  function onScroll(e) {
245
257
  const { bindscroll } = props;
246
- const { x: scrollLeft, y: scrollTop } = e.nativeEvent.contentOffset;
247
- const { width: scrollWidth, height: scrollHeight } = e.nativeEvent.contentSize;
258
+ const { contentOffset, layoutMeasurement, contentSize } = e.nativeEvent;
259
+ const { x: scrollLeft, y: scrollTop } = contentOffset;
260
+ const { width: scrollWidth, height: scrollHeight } = contentSize;
248
261
  isAtTop.value = scrollTop <= 0;
249
262
  bindscroll &&
250
263
  bindscroll(getCustomEvent('scroll', e, {
@@ -254,7 +267,8 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
254
267
  scrollHeight,
255
268
  scrollWidth,
256
269
  deltaX: scrollLeft - scrollOptions.current.scrollLeft,
257
- deltaY: scrollTop - scrollOptions.current.scrollTop
270
+ deltaY: scrollTop - scrollOptions.current.scrollTop,
271
+ layoutMeasurement
258
272
  },
259
273
  layoutRef
260
274
  }, props));
@@ -267,8 +281,9 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
267
281
  }
268
282
  function onScrollEnd(e) {
269
283
  const { bindscrollend } = props;
270
- const { x: scrollLeft, y: scrollTop } = e.nativeEvent.contentOffset;
271
- const { width: scrollWidth, height: scrollHeight } = e.nativeEvent.contentSize;
284
+ const { contentOffset, layoutMeasurement, contentSize } = e.nativeEvent;
285
+ const { x: scrollLeft, y: scrollTop } = contentOffset;
286
+ const { width: scrollWidth, height: scrollHeight } = contentSize;
272
287
  isAtTop.value = scrollTop <= 0;
273
288
  bindscrollend &&
274
289
  bindscrollend(getCustomEvent('scrollend', e, {
@@ -276,7 +291,8 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
276
291
  scrollLeft,
277
292
  scrollTop,
278
293
  scrollHeight,
279
- scrollWidth
294
+ scrollWidth,
295
+ layoutMeasurement
280
296
  },
281
297
  layoutRef
282
298
  }, props));
@@ -296,24 +312,6 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
296
312
  function scrollToOffset(x = 0, y = 0, animated = scrollWithAnimation) {
297
313
  if (scrollViewRef.current) {
298
314
  scrollViewRef.current.scrollTo({ x, y, animated });
299
- scrollOptions.current.scrollLeft = x;
300
- scrollOptions.current.scrollTop = y;
301
- snapScrollLeft.current = x;
302
- snapScrollTop.current = y;
303
- }
304
- }
305
- function onScrollTouchStart(e) {
306
- const { bindtouchstart } = props;
307
- bindtouchstart && bindtouchstart(e);
308
- if (enhanced) {
309
- binddragstart &&
310
- binddragstart(getCustomEvent('dragstart', e, {
311
- detail: {
312
- scrollLeft: scrollOptions.current.scrollLeft,
313
- scrollTop: scrollOptions.current.scrollTop
314
- },
315
- layoutRef
316
- }, props));
317
315
  }
318
316
  }
319
317
  function onScrollTouchMove(e) {
@@ -329,19 +327,6 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
329
327
  }, props));
330
328
  }
331
329
  }
332
- function onScrollTouchEnd(e) {
333
- bindtouchend && bindtouchend(e);
334
- if (enhanced) {
335
- binddragend &&
336
- binddragend(getCustomEvent('dragend', e, {
337
- detail: {
338
- scrollLeft: scrollOptions.current.scrollLeft || 0,
339
- scrollTop: scrollOptions.current.scrollTop || 0
340
- },
341
- layoutRef
342
- }, props));
343
- }
344
- }
345
330
  function onScrollDrag(e) {
346
331
  const { x: scrollLeft, y: scrollTop } = e.nativeEvent.contentOffset;
347
332
  updateScrollOptions(e, { scrollLeft, scrollTop });
@@ -350,6 +335,16 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
350
335
  const scrollHandler = RNAnimated.event([{ nativeEvent: { contentOffset: { y: scrollOffset } } }], {
351
336
  useNativeDriver: true,
352
337
  listener: (event) => {
338
+ const y = event.nativeEvent.contentOffset.y || 0;
339
+ // 内容高度变化时,鸿蒙中 listener 回调通过scrollOffset.__getValue获取值一直等于event.nativeEvent.contentOffset.y,值是正确的,但是无法触发 sticky 动画执行,所以需要手动再 set 一次
340
+ if (__mpx_mode__ === 'harmony') {
341
+ if (isContentSizeChange.current) {
342
+ scrollOffset.setValue(y);
343
+ setTimeout(() => {
344
+ isContentSizeChange.current = false;
345
+ }, 100);
346
+ }
347
+ }
353
348
  onScroll(event);
354
349
  }
355
350
  });
@@ -357,6 +352,30 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
357
352
  hasCallScrollToLower.current = false;
358
353
  hasCallScrollToUpper.current = false;
359
354
  onScrollDrag(e);
355
+ if (enhanced) {
356
+ binddragstart &&
357
+ binddragstart(getCustomEvent('dragstart', e, {
358
+ detail: {
359
+ scrollLeft: scrollOptions.current.scrollLeft,
360
+ scrollTop: scrollOptions.current.scrollTop
361
+ },
362
+ layoutRef
363
+ }, props));
364
+ }
365
+ }
366
+ function onScrollDragEnd(e) {
367
+ onScrollDrag(e);
368
+ if (enhanced) {
369
+ // 安卓上如果触发了默认的下拉刷新,binddragend可能不触发,只会触发 binddragstart
370
+ binddragend &&
371
+ binddragend(getCustomEvent('dragend', e, {
372
+ detail: {
373
+ scrollLeft: scrollOptions.current.scrollLeft || 0,
374
+ scrollTop: scrollOptions.current.scrollTop || 0
375
+ },
376
+ layoutRef
377
+ }, props));
378
+ }
360
379
  }
361
380
  // 处理刷新
362
381
  function onRefresh() {
@@ -513,14 +532,13 @@ const _ScrollView = forwardRef((scrollViewProps = {}, ref) => {
513
532
  showsVerticalScrollIndicator: scrollY && showScrollbar,
514
533
  scrollEnabled: !enableScroll ? false : !!(scrollX || scrollY),
515
534
  bounces: false,
535
+ overScrollMode: 'never',
516
536
  ref: scrollViewRef,
517
537
  onScroll: enableSticky ? scrollHandler : onScroll,
518
538
  onContentSizeChange: onContentSizeChange,
519
- bindtouchstart: ((enhanced && binddragstart) || bindtouchstart) && onScrollTouchStart,
520
539
  bindtouchmove: ((enhanced && binddragging) || bindtouchmove) && onScrollTouchMove,
521
- bindtouchend: ((enhanced && binddragend) || bindtouchend) && onScrollTouchEnd,
522
540
  onScrollBeginDrag: onScrollDragStart,
523
- onScrollEndDrag: onScrollDrag,
541
+ onScrollEndDrag: onScrollDragEnd,
524
542
  onMomentumScrollEnd: onScrollEnd
525
543
  }, (simultaneousHandlers ? { simultaneousHandlers } : {}), (waitForHandlers ? { waitFor: waitForHandlers } : {}), layoutProps);
526
544
  if (enhanced) {
@@ -5,3 +5,4 @@ declare const SimpleText: {
5
5
  displayName: string;
6
6
  };
7
7
  export default SimpleText;
8
+ //# sourceMappingURL=mpx-simple-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-simple-text.d.ts","sourceRoot":"","sources":["../mpx-simple-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAiB,MAAM,OAAO,CAAA;AAI1C,QAAA,MAAM,UAAU;YAAW,SAAS,GAAG,WAAW;;CAiBjD,CAAA;AAID,eAAe,UAAU,CAAA"}
@@ -5,3 +5,4 @@ declare const SimpleView: {
5
5
  displayName: string;
6
6
  };
7
7
  export default SimpleView;
8
+ //# sourceMappingURL=mpx-simple-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-simple-view.d.ts","sourceRoot":"","sources":["../mpx-simple-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAQ,SAAS,EAAa,MAAM,cAAc,CAAA;AAKzD,QAAA,MAAM,UAAU;sBAAqB,SAAS,GAAG,WAAW;;CAuB3D,CAAA;AAID,eAAe,UAAU,CAAA"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="react" />
2
+ import { View, ViewStyle } from 'react-native';
3
+ import { HandlerRef } from './useNodesRef';
4
+ export interface SliderProps {
5
+ min?: number;
6
+ max?: number;
7
+ step?: number;
8
+ disabled?: boolean;
9
+ value?: number;
10
+ color?: string;
11
+ 'selected-color'?: string;
12
+ activeColor?: string;
13
+ backgroundColor?: string;
14
+ 'block-size'?: number;
15
+ 'block-color'?: string;
16
+ name?: string;
17
+ bindchange?: (event: any) => void;
18
+ catchchange?: (event: any) => void;
19
+ bindchanging?: (event: any) => void;
20
+ catchchanging?: (event: any) => void;
21
+ style?: ViewStyle & Record<string, any>;
22
+ 'enable-offset'?: boolean;
23
+ 'enable-var'?: boolean;
24
+ 'external-var-context'?: Record<string, any>;
25
+ 'parent-font-size'?: number;
26
+ 'parent-width'?: number;
27
+ 'parent-height'?: number;
28
+ }
29
+ declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HandlerRef<View, SliderProps>>>;
30
+ export default Slider;
31
+ //# sourceMappingURL=mpx-slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-slider.d.ts","sourceRoot":"","sources":["../mpx-slider.tsx"],"names":[],"mappings":";AA2BA,OAAO,EACL,IAAI,EACJ,SAAS,EACV,MAAM,cAAc,CAAA;AAMrB,OAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvD,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IACpC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,QAAA,MAAM,MAAM,uHAqXV,CAAA;AAGF,eAAe,MAAM,CAAA"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * ✔ min 最小值
3
+ * ✔ max 最大值
4
+ * ✔ step 步长
5
+ * ✔ disabled 是否禁用
6
+ * ✔ value 当前取值
7
+ * ✔ color 背景条的颜色(已废弃,使用 backgroundColor)
8
+ * ✔ selected-color 已选择的颜色(已废弃,使用 activeColor)
9
+ * ✔ activeColor 已选择的颜色
10
+ * ✔ backgroundColor 背景条的颜色
11
+ * ✔ block-size 滑块的大小
12
+ * ✔ block-color 滑块的颜色
13
+ * ✘ show-value 是否显示当前 value
14
+ * ✔ bindchange 完成一次拖动后触发的事件
15
+ * ✔ bindchanging 拖动过程中触发的事件
16
+ */
17
+ import { useRef, forwardRef, useEffect, useState, createElement, useContext, useMemo } from 'react';
18
+ import { View } from 'react-native';
19
+ import { GestureDetector, Gesture } from 'react-native-gesture-handler';
20
+ import Animated, { useSharedValue, useAnimatedStyle, runOnJS } from 'react-native-reanimated';
21
+ import { warn } from '@mpxjs/utils';
22
+ import useInnerProps, { getCustomEvent } from './getInnerListeners';
23
+ import useNodesRef from './useNodesRef';
24
+ import { useLayout, useTransformStyle, extendObject, useRunOnJSCallback } from './utils';
25
+ import Portal from './mpx-portal';
26
+ import { FormContext } from './context';
27
+ const Slider = forwardRef((props, ref) => {
28
+ const { min: rawMin = 0, max: rawMax = 100, step: rawStep = 1, disabled = false, value: rawValue, color, 'selected-color': selectedColor, activeColor = selectedColor || color || '#1aad19', backgroundColor = color || '#e9e9e9', 'block-size': rawBlockSize = 28, 'block-color': blockColor = '#ffffff', name, style = {}, 'enable-var': enableVar, 'external-var-context': externalVarContext, 'parent-font-size': parentFontSize, 'parent-width': parentWidth, 'parent-height': parentHeight } = props;
29
+ // 确保数值类型正确
30
+ const min = typeof rawMin === 'string' ? parseFloat(rawMin) : rawMin;
31
+ const max = typeof rawMax === 'string' ? parseFloat(rawMax) : rawMax;
32
+ const step = typeof rawStep === 'string' ? parseFloat(rawStep) : rawStep;
33
+ const value = rawValue !== undefined ? (typeof rawValue === 'string' ? parseFloat(rawValue) : rawValue) : undefined;
34
+ const blockSize = typeof rawBlockSize === 'string' ? parseFloat(rawBlockSize) : rawBlockSize;
35
+ // 如果没有提供 value,则使用 min 作为默认值
36
+ const defaultValue = value !== undefined ? value : min;
37
+ const nodeRef = useRef(null);
38
+ const trackRef = useRef(null);
39
+ const [currentValue, setCurrentValue] = useState(defaultValue);
40
+ const [trackWidth, setTrackWidth] = useState(0);
41
+ const thumbPosition = useSharedValue(0);
42
+ const isDragging = useSharedValue(false);
43
+ const startDragPosition = useSharedValue(0); // 记录拖拽开始时的位置
44
+ const startDragValue = useSharedValue(0); // 记录拖拽开始时的值
45
+ let formValuesMap;
46
+ const propsRef = useRef(props);
47
+ propsRef.current = props;
48
+ const formContext = useContext(FormContext);
49
+ if (formContext) {
50
+ formValuesMap = formContext.formValuesMap;
51
+ }
52
+ const { normalStyle, hasSelfPercent, setWidth, setHeight, hasPositionFixed } = useTransformStyle(style, {
53
+ enableVar,
54
+ externalVarContext,
55
+ parentFontSize,
56
+ parentWidth,
57
+ parentHeight
58
+ });
59
+ const { layoutRef, layoutStyle, layoutProps } = useLayout({
60
+ props,
61
+ hasSelfPercent,
62
+ setWidth,
63
+ setHeight,
64
+ nodeRef
65
+ });
66
+ useNodesRef(props, ref, nodeRef, {
67
+ style: normalStyle
68
+ });
69
+ // 使用 useRunOnJSCallback 处理手势回调
70
+ const runOnJSCallbackRef = useRef({
71
+ triggerChangeEvent: (newValue) => {
72
+ setCurrentValue(newValue);
73
+ const currentProps = propsRef.current;
74
+ const changeHandler = currentProps.bindchange || currentProps.catchchange;
75
+ if (changeHandler) {
76
+ changeHandler(getCustomEvent('change', {}, { layoutRef, detail: { value: newValue } }, currentProps));
77
+ }
78
+ },
79
+ triggerChangingEvent: (newValue) => {
80
+ const currentProps = propsRef.current;
81
+ const changingHandler = currentProps.bindchanging || currentProps.catchchanging;
82
+ if (changingHandler) {
83
+ changingHandler(getCustomEvent('changing', {}, { layoutRef, detail: { value: newValue } }, currentProps));
84
+ }
85
+ }
86
+ });
87
+ const runOnJSCallback = useRunOnJSCallback(runOnJSCallbackRef);
88
+ // 限制步长,确保 step 大于 0,并且可被 (max - min) 整除
89
+ const validateStep = (step, min, max) => {
90
+ if (step <= 0)
91
+ return 1;
92
+ if ((max - min) % step !== 0) {
93
+ warn(`Step ${step} is not a divisor of range ${max - min}`);
94
+ }
95
+ return step;
96
+ };
97
+ const validStep = validateStep(step, min, max);
98
+ // 将值约束在 min-max 范围内,并按步长对齐
99
+ const constrainValue = (val, minVal = min, maxVal = max, stepVal = validStep) => {
100
+ const constrained = Math.max(minVal, Math.min(maxVal, val));
101
+ const steps = Math.round((constrained - minVal) / stepVal);
102
+ return minVal + steps * stepVal;
103
+ };
104
+ // 计算滑块位置
105
+ const getThumbPosition = (val, trackW = trackWidth, minVal = min, maxVal = max) => {
106
+ if (trackW === 0)
107
+ return 0;
108
+ const percentage = (val - minVal) / (maxVal - minVal);
109
+ const position = percentage * trackW;
110
+ return position;
111
+ };
112
+ // 手势处理
113
+ const panGesture = useMemo(() => {
114
+ const getThumbPositionWorklet = (val, trackW, minVal, maxVal) => {
115
+ 'worklet';
116
+ if (trackW === 0)
117
+ return 0;
118
+ const percentage = (val - minVal) / (maxVal - minVal);
119
+ return percentage * trackW;
120
+ };
121
+ const constrainValueWorklet = (val, minVal, maxVal, stepVal) => {
122
+ 'worklet';
123
+ const constrained = Math.max(minVal, Math.min(maxVal, val));
124
+ const steps = Math.round((constrained - minVal) / stepVal);
125
+ return minVal + steps * stepVal;
126
+ };
127
+ return Gesture.Pan()
128
+ .enabled(!disabled) // 通过手势启用状态控制是否可拖拽
129
+ .onBegin(() => {
130
+ 'worklet';
131
+ if (trackWidth === 0)
132
+ return;
133
+ isDragging.value = true;
134
+ // 记录拖拽开始时的位置 - 使用当前的动画位置
135
+ startDragPosition.value = thumbPosition.value;
136
+ // 根据当前位置反推值
137
+ const percentage = thumbPosition.value / trackWidth;
138
+ const currentVal = min + percentage * (max - min);
139
+ startDragValue.value = constrainValueWorklet(currentVal, min, max, validStep);
140
+ })
141
+ .onUpdate((event) => {
142
+ 'worklet';
143
+ if (trackWidth === 0)
144
+ return;
145
+ // 基于拖拽开始位置计算新位置
146
+ const newX = startDragPosition.value + event.translationX;
147
+ const clampedX = Math.max(0, Math.min(trackWidth, newX));
148
+ // 计算新值
149
+ const percentage = clampedX / trackWidth;
150
+ const rawValue = min + percentage * (max - min);
151
+ const newValue = constrainValueWorklet(rawValue, min, max, validStep);
152
+ // 更新滑块位置 - 使用约束后的值对应的位置
153
+ const constrainedPosition = getThumbPositionWorklet(newValue, trackWidth, min, max);
154
+ thumbPosition.value = constrainedPosition;
155
+ // 只触发 changing 事件,不更新 currentValue(避免干扰拖拽)
156
+ runOnJS(runOnJSCallback)('triggerChangingEvent', newValue);
157
+ })
158
+ .onEnd((event) => {
159
+ 'worklet';
160
+ isDragging.value = false;
161
+ // 基于拖拽开始位置计算最终位置
162
+ const newX = startDragPosition.value + event.translationX;
163
+ const clampedX = Math.max(0, Math.min(trackWidth, newX));
164
+ const percentage = clampedX / trackWidth;
165
+ const rawValue = min + percentage * (max - min);
166
+ const finalValue = constrainValueWorklet(rawValue, min, max, validStep);
167
+ // 确保滑块位置与最终值匹配
168
+ const finalPosition = getThumbPositionWorklet(finalValue, trackWidth, min, max);
169
+ thumbPosition.value = finalPosition;
170
+ // 更新 currentValue 并触发 change 事件
171
+ runOnJS(runOnJSCallback)('triggerChangeEvent', finalValue);
172
+ });
173
+ }, [disabled, trackWidth, min, max, validStep, runOnJSCallback]);
174
+ // 当 value 属性变化时更新位置
175
+ useEffect(() => {
176
+ const newValue = constrainValue(defaultValue);
177
+ setCurrentValue(newValue);
178
+ // 同时更新动画位置
179
+ thumbPosition.value = getThumbPosition(newValue);
180
+ }, [defaultValue, min, max, validStep]);
181
+ // 当 trackWidth 变化时更新滑块位置
182
+ useEffect(() => {
183
+ // 只在非拖拽状态下更新位置
184
+ if (!isDragging.value) {
185
+ thumbPosition.value = getThumbPosition(currentValue);
186
+ }
187
+ }, [trackWidth, currentValue]);
188
+ // 动画样式
189
+ const animatedThumbStyle = useAnimatedStyle(() => {
190
+ const blockSizeNum = Math.max(12, Math.min(28, blockSize));
191
+ const trackHeight = 4;
192
+ return {
193
+ position: 'absolute',
194
+ top: -((blockSizeNum - trackHeight) / 2),
195
+ left: Math.max(0, Math.min(trackWidth - blockSizeNum, thumbPosition.value - (blockSizeNum / 2))),
196
+ width: blockSizeNum,
197
+ height: blockSizeNum,
198
+ justifyContent: 'center',
199
+ alignItems: 'center'
200
+ };
201
+ });
202
+ // 轨道布局回调
203
+ const onTrackLayout = (event) => {
204
+ const { width } = event.nativeEvent.layout;
205
+ setTrackWidth(width);
206
+ };
207
+ // 表单相关处理
208
+ const resetValue = () => {
209
+ const currentProps = propsRef.current;
210
+ const currentValue = currentProps.value !== undefined ? currentProps.value : currentProps.min || 0;
211
+ const parsedValue = typeof currentValue === 'string' ? parseFloat(currentValue) : currentValue;
212
+ const currentMin = typeof currentProps.min === 'string' ? parseFloat(currentProps.min) : (currentProps.min || 0);
213
+ const currentMax = typeof currentProps.max === 'string' ? parseFloat(currentProps.max) : (currentProps.max || 100);
214
+ const currentStep = typeof currentProps.step === 'string' ? parseFloat(currentProps.step) : (currentProps.step || 1);
215
+ const resetVal = parsedValue !== undefined ? parsedValue : currentMin;
216
+ const validatedStep = validateStep(currentStep, currentMin, currentMax);
217
+ const constrainedVal = constrainValue(resetVal, currentMin, currentMax, validatedStep);
218
+ setCurrentValue(constrainedVal);
219
+ thumbPosition.value = getThumbPosition(constrainedVal, trackWidth, currentMin, currentMax);
220
+ };
221
+ const getValue = () => {
222
+ return currentValue;
223
+ };
224
+ if (formValuesMap) {
225
+ if (!name) {
226
+ warn('If a form component is used, the name attribute is required.');
227
+ }
228
+ else {
229
+ formValuesMap.set(name, { getValue, resetValue });
230
+ }
231
+ }
232
+ useEffect(() => {
233
+ return () => {
234
+ if (formValuesMap && name) {
235
+ formValuesMap.delete(name);
236
+ }
237
+ };
238
+ }, []);
239
+ // 样式定义
240
+ const blockSizeNum = Math.max(12, Math.min(28, blockSize));
241
+ const trackHeight = 4;
242
+ const containerStyle = extendObject({}, {
243
+ flexDirection: 'row',
244
+ alignItems: 'center',
245
+ minHeight: Math.max(blockSizeNum + 8, 40),
246
+ paddingHorizontal: 14 // 固定内边距,不受 block-size 影响
247
+ }, normalStyle, layoutStyle);
248
+ const trackStyle = {
249
+ flex: 1,
250
+ height: trackHeight,
251
+ backgroundColor,
252
+ borderRadius: trackHeight / 2,
253
+ position: 'relative'
254
+ };
255
+ // 动画进度条样式
256
+ const animatedProgressStyle = useAnimatedStyle(() => {
257
+ return {
258
+ height: '100%',
259
+ backgroundColor: activeColor,
260
+ borderRadius: trackHeight / 2,
261
+ width: Math.max(0, thumbPosition.value)
262
+ };
263
+ });
264
+ const thumbStyle = {
265
+ width: blockSizeNum,
266
+ height: blockSizeNum,
267
+ backgroundColor: blockColor,
268
+ borderRadius: blockSizeNum / 2,
269
+ shadowColor: '#000',
270
+ shadowOffset: { width: 0, height: 2 },
271
+ shadowOpacity: 0.2,
272
+ shadowRadius: 4,
273
+ elevation: 4
274
+ };
275
+ const innerProps = useInnerProps(extendObject({}, props, layoutProps, {
276
+ ref: nodeRef
277
+ }), [
278
+ 'min',
279
+ 'max',
280
+ 'step',
281
+ 'disabled',
282
+ 'value',
283
+ 'color',
284
+ 'selected-color',
285
+ 'activeColor',
286
+ 'backgroundColor',
287
+ 'block-size',
288
+ 'block-color',
289
+ 'bindchange',
290
+ 'catchchange',
291
+ 'bindchanging',
292
+ 'catchchanging'
293
+ ], { layoutRef });
294
+ const sliderContent = createElement(View, extendObject({}, innerProps, { style: containerStyle }),
295
+ // 轨道容器
296
+ createElement(View, {
297
+ style: trackStyle,
298
+ onLayout: onTrackLayout,
299
+ ref: trackRef
300
+ },
301
+ // 进度条 - 使用动画样式
302
+ createElement(Animated.View, {
303
+ style: animatedProgressStyle
304
+ }),
305
+ // 滑块容器
306
+ createElement(GestureDetector, {
307
+ gesture: panGesture
308
+ }, createElement(Animated.View, {
309
+ style: [animatedThumbStyle]
310
+ },
311
+ // 滑块
312
+ createElement(View, {
313
+ style: thumbStyle
314
+ })))));
315
+ if (hasPositionFixed) {
316
+ return createElement(Portal, null, sliderContent);
317
+ }
318
+ return sliderContent;
319
+ });
320
+ Slider.displayName = 'MpxSlider';
321
+ export default Slider;
@@ -15,3 +15,4 @@ interface StickyHeaderProps {
15
15
  }
16
16
  declare const _StickyHeader: import("react").ForwardRefExoticComponent<StickyHeaderProps & import("react").RefAttributes<HandlerRef<View, StickyHeaderProps>>>;
17
17
  export default _StickyHeader;
18
+ //# sourceMappingURL=mpx-sticky-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-sticky-header.d.ts","sourceRoot":"","sources":["../mpx-sticky-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqE,SAAS,EAAS,MAAM,OAAO,CAAA;AAC3G,OAAO,EAAwB,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAA;AAE/H,OAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACnE;AAED,QAAA,MAAM,aAAa,mIAmJjB,CAAA;AAYF,eAAe,aAAa,CAAA"}
@@ -13,3 +13,4 @@ interface StickySectionProps {
13
13
  }
14
14
  declare const _StickySection: import("react").ForwardRefExoticComponent<StickySectionProps & import("react").RefAttributes<HandlerRef<View, StickySectionProps>>>;
15
15
  export default _StickySection;
16
+ //# sourceMappingURL=mpx-sticky-section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-sticky-section.d.ts","sourceRoot":"","sources":["../mpx-sticky-section.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqC,SAAS,EAAwB,MAAM,OAAO,CAAA;AAC1F,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,QAAA,MAAM,cAAc,qIAyElB,CAAA;AAGF,eAAe,cAAc,CAAA"}
@@ -16,3 +16,4 @@ interface SwiperItemProps {
16
16
  }
17
17
  declare const _SwiperItem: import("react").ForwardRefExoticComponent<SwiperItemProps & import("react").RefAttributes<HandlerRef<View, SwiperItemProps>>>;
18
18
  export default _SwiperItem;
19
+ //# sourceMappingURL=mpx-swiper-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-swiper-item.d.ts","sourceRoot":"","sources":["../mpx-swiper-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAiD,MAAM,OAAO,CAAA;AAEhF,OAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAIvD,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AASD,QAAA,MAAM,WAAW,+HA8Ef,CAAA;AAIF,eAAe,WAAW,CAAA"}
@@ -50,3 +50,4 @@ interface SwiperProps {
50
50
  }
51
51
  declare const SwiperWrapper: React.ForwardRefExoticComponent<SwiperProps & React.RefAttributes<HandlerRef<View, SwiperProps>>>;
52
52
  export default SwiperWrapper;
53
+ //# sourceMappingURL=mpx-swiper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-swiper.d.ts","sourceRoot":"","sources":["../mpx-swiper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAqB,MAAM,cAAc,CAAA;AAI5E,OAAO,KAAK,EAAE,EAAsC,SAAS,EAAwC,MAAM,OAAO,CAAA;AAElH,OAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAoF,cAAc,EAAmC,MAAM,SAAS,CAAA;AAG3J;;;;;;;;;;;;;;;GAeG;AACH,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAUxF,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,iBAAiB,CAAC,EAAE,QAAQ,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IAClC,uBAAuB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,OAAO,KAAK,IAAI,CAAA;CACzE;AAoED,QAAA,MAAM,aAAa,mGA6uBjB,CAAA;AAGF,eAAe,aAAa,CAAA"}