@mpxjs/webpack-plugin 2.10.16 → 2.10.17

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 (226) hide show
  1. package/lib/dependencies/AppEntryDependency.js +2 -2
  2. package/lib/dependencies/RecordModuleIdMapDependency.js +49 -0
  3. package/lib/dependencies/ResolveDependency.js +1 -1
  4. package/lib/helpers.js +2 -0
  5. package/lib/index.js +40 -15
  6. package/lib/json-compiler/helper.js +72 -2
  7. package/lib/json-compiler/index.js +14 -54
  8. package/lib/json-compiler/plugin.js +2 -2
  9. package/lib/loader.js +10 -4
  10. package/lib/native-loader.js +6 -3
  11. package/lib/platform/json/wx/index.js +24 -29
  12. package/lib/platform/style/wx/index.js +8 -1
  13. package/lib/platform/template/wx/component-config/button.js +12 -3
  14. package/lib/platform/template/wx/component-config/component.js +31 -33
  15. package/lib/platform/template/wx/component-config/fix-component-name.js +2 -2
  16. package/lib/react/index.js +2 -0
  17. package/lib/react/processJSON.js +39 -71
  18. package/lib/react/processStyles.js +3 -2
  19. package/lib/react/processTemplate.js +8 -6
  20. package/lib/react/script-helper.js +6 -16
  21. package/lib/react/style-helper.js +10 -2
  22. package/lib/runtime/components/react/context.ts +12 -6
  23. package/lib/runtime/components/react/dist/context.d.ts +75 -0
  24. package/lib/runtime/components/react/dist/context.d.ts.map +1 -0
  25. package/lib/runtime/components/react/dist/context.js +1 -0
  26. package/lib/runtime/components/react/dist/event.config.d.ts +8 -0
  27. package/lib/runtime/components/react/dist/event.config.d.ts.map +1 -0
  28. package/lib/runtime/components/react/dist/getInnerListeners.d.ts +8 -0
  29. package/lib/runtime/components/react/dist/getInnerListeners.d.ts.map +1 -0
  30. package/lib/runtime/components/react/dist/mpx-async-suspense.d.ts +13 -0
  31. package/lib/runtime/components/react/dist/mpx-async-suspense.d.ts.map +1 -0
  32. package/lib/runtime/components/react/dist/mpx-button.d.ts +69 -0
  33. package/lib/runtime/components/react/dist/mpx-button.d.ts.map +1 -0
  34. package/lib/runtime/components/react/dist/mpx-canvas/Bus.d.ts +24 -0
  35. package/lib/runtime/components/react/dist/mpx-canvas/Bus.d.ts.map +1 -0
  36. package/lib/runtime/components/react/dist/mpx-canvas/CanvasGradient.d.ts +8 -0
  37. package/lib/runtime/components/react/dist/mpx-canvas/CanvasGradient.d.ts.map +1 -0
  38. package/lib/runtime/components/react/dist/mpx-canvas/CanvasRenderingContext2D.d.ts +7 -0
  39. package/lib/runtime/components/react/dist/mpx-canvas/CanvasRenderingContext2D.d.ts.map +1 -0
  40. package/lib/runtime/components/react/dist/mpx-canvas/Image.d.ts +21 -0
  41. package/lib/runtime/components/react/dist/mpx-canvas/Image.d.ts.map +1 -0
  42. package/lib/runtime/components/react/dist/mpx-canvas/ImageData.d.ts +9 -0
  43. package/lib/runtime/components/react/dist/mpx-canvas/ImageData.d.ts.map +1 -0
  44. package/lib/runtime/components/react/dist/mpx-canvas/constructorsRegistry.d.ts +11 -0
  45. package/lib/runtime/components/react/dist/mpx-canvas/constructorsRegistry.d.ts.map +1 -0
  46. package/lib/runtime/components/react/dist/mpx-canvas/html.d.ts +3 -0
  47. package/lib/runtime/components/react/dist/mpx-canvas/html.d.ts.map +1 -0
  48. package/lib/runtime/components/react/dist/mpx-canvas/index.d.ts +33 -0
  49. package/lib/runtime/components/react/dist/mpx-canvas/index.d.ts.map +1 -0
  50. package/lib/runtime/components/react/dist/mpx-canvas/index.jsx +1 -1
  51. package/lib/runtime/components/react/dist/mpx-canvas/utils.d.ts +53 -0
  52. package/lib/runtime/components/react/dist/mpx-canvas/utils.d.ts.map +1 -0
  53. package/lib/runtime/components/react/dist/mpx-checkbox-group.d.ts +21 -0
  54. package/lib/runtime/components/react/dist/mpx-checkbox-group.d.ts.map +1 -0
  55. package/lib/runtime/components/react/dist/mpx-checkbox.d.ts +33 -0
  56. package/lib/runtime/components/react/dist/mpx-checkbox.d.ts.map +1 -0
  57. package/lib/runtime/components/react/dist/mpx-form.d.ts +28 -0
  58. package/lib/runtime/components/react/dist/mpx-form.d.ts.map +1 -0
  59. package/lib/runtime/components/react/dist/mpx-icon/index.d.ts +19 -0
  60. package/lib/runtime/components/react/dist/mpx-icon/index.d.ts.map +1 -0
  61. package/lib/runtime/components/react/dist/mpx-image.d.ts +22 -0
  62. package/lib/runtime/components/react/dist/mpx-image.d.ts.map +1 -0
  63. package/lib/runtime/components/react/dist/mpx-image.jsx +107 -57
  64. package/lib/runtime/components/react/dist/mpx-inline-text.d.ts +8 -0
  65. package/lib/runtime/components/react/dist/mpx-inline-text.d.ts.map +1 -0
  66. package/lib/runtime/components/react/dist/mpx-input.d.ts +50 -0
  67. package/lib/runtime/components/react/dist/mpx-input.d.ts.map +1 -0
  68. package/lib/runtime/components/react/dist/mpx-input.jsx +32 -8
  69. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.d.ts +13 -0
  70. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.d.ts.map +1 -0
  71. package/lib/runtime/components/react/dist/mpx-keyboard-avoiding-view.jsx +58 -50
  72. package/lib/runtime/components/react/dist/mpx-label.d.ts +21 -0
  73. package/lib/runtime/components/react/dist/mpx-label.d.ts.map +1 -0
  74. package/lib/runtime/components/react/dist/mpx-movable-area.d.ts +21 -0
  75. package/lib/runtime/components/react/dist/mpx-movable-area.d.ts.map +1 -0
  76. package/lib/runtime/components/react/dist/mpx-movable-view.d.ts +66 -0
  77. package/lib/runtime/components/react/dist/mpx-movable-view.d.ts.map +1 -0
  78. package/lib/runtime/components/react/dist/mpx-nav.d.ts +9 -0
  79. package/lib/runtime/components/react/dist/mpx-nav.d.ts.map +1 -0
  80. package/lib/runtime/components/react/dist/mpx-nav.jsx +132 -0
  81. package/lib/runtime/components/react/dist/mpx-navigator.d.ts +10 -0
  82. package/lib/runtime/components/react/dist/mpx-navigator.d.ts.map +1 -0
  83. package/lib/runtime/components/react/dist/mpx-picker/date.d.ts +7 -0
  84. package/lib/runtime/components/react/dist/mpx-picker/date.d.ts.map +1 -0
  85. package/lib/runtime/components/react/dist/mpx-picker/dateData.d.ts +8 -0
  86. package/lib/runtime/components/react/dist/mpx-picker/dateData.d.ts.map +1 -0
  87. package/lib/runtime/components/react/dist/mpx-picker/index.d.ts +7 -0
  88. package/lib/runtime/components/react/dist/mpx-picker/index.d.ts.map +1 -0
  89. package/lib/runtime/components/react/dist/mpx-picker/multiSelector.d.ts +7 -0
  90. package/lib/runtime/components/react/dist/mpx-picker/multiSelector.d.ts.map +1 -0
  91. package/lib/runtime/components/react/dist/mpx-picker/region.d.ts +7 -0
  92. package/lib/runtime/components/react/dist/mpx-picker/region.d.ts.map +1 -0
  93. package/lib/runtime/components/react/dist/mpx-picker/regionData.d.ts +3 -0
  94. package/lib/runtime/components/react/dist/mpx-picker/regionData.d.ts.map +1 -0
  95. package/lib/runtime/components/react/dist/mpx-picker/selector.d.ts +7 -0
  96. package/lib/runtime/components/react/dist/mpx-picker/selector.d.ts.map +1 -0
  97. package/lib/runtime/components/react/dist/mpx-picker/time.d.ts +7 -0
  98. package/lib/runtime/components/react/dist/mpx-picker/time.d.ts.map +1 -0
  99. package/lib/runtime/components/react/dist/mpx-picker/type.d.ts +107 -0
  100. package/lib/runtime/components/react/dist/mpx-picker/type.d.ts.map +1 -0
  101. package/lib/runtime/components/react/dist/mpx-picker-view/index.d.ts +33 -0
  102. package/lib/runtime/components/react/dist/mpx-picker-view/index.d.ts.map +1 -0
  103. package/lib/runtime/components/react/dist/mpx-picker-view/index.jsx +4 -3
  104. package/lib/runtime/components/react/dist/mpx-picker-view/pickerVIewContext.d.ts +9 -0
  105. package/lib/runtime/components/react/dist/mpx-picker-view/pickerVIewContext.d.ts.map +1 -0
  106. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.d.ts +24 -0
  107. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.d.ts.map +1 -0
  108. package/lib/runtime/components/react/dist/mpx-picker-view-column/index.jsx +12 -18
  109. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.d.ts +15 -0
  110. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.d.ts.map +1 -0
  111. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItem.jsx +8 -11
  112. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.d.ts +14 -0
  113. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.d.ts.map +1 -0
  114. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewColumnItemLite.jsx +20 -0
  115. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewFaces.d.ts +17 -0
  116. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewFaces.d.ts.map +1 -0
  117. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewIndicator.d.ts +13 -0
  118. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewIndicator.d.ts.map +1 -0
  119. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewMask.d.ts +12 -0
  120. package/lib/runtime/components/react/dist/mpx-picker-view-column/pickerViewMask.d.ts.map +1 -0
  121. package/lib/runtime/components/react/dist/mpx-popup/index.d.ts +23 -0
  122. package/lib/runtime/components/react/dist/mpx-popup/index.d.ts.map +1 -0
  123. package/lib/runtime/components/react/dist/mpx-popup/popupBase.d.ts +17 -0
  124. package/lib/runtime/components/react/dist/mpx-popup/popupBase.d.ts.map +1 -0
  125. package/lib/runtime/components/react/dist/mpx-portal/index.d.ts +16 -0
  126. package/lib/runtime/components/react/dist/mpx-portal/index.d.ts.map +1 -0
  127. package/lib/runtime/components/react/dist/mpx-portal/index.jsx +5 -1
  128. package/lib/runtime/components/react/dist/mpx-portal/portal-host.d.ts +30 -0
  129. package/lib/runtime/components/react/dist/mpx-portal/portal-host.d.ts.map +1 -0
  130. package/lib/runtime/components/react/dist/mpx-portal/portal-manager.d.ts +10 -0
  131. package/lib/runtime/components/react/dist/mpx-portal/portal-manager.d.ts.map +1 -0
  132. package/lib/runtime/components/react/dist/mpx-progress.d.ts +24 -0
  133. package/lib/runtime/components/react/dist/mpx-progress.d.ts.map +1 -0
  134. package/lib/runtime/components/react/dist/mpx-radio-group.d.ts +21 -0
  135. package/lib/runtime/components/react/dist/mpx-radio-group.d.ts.map +1 -0
  136. package/lib/runtime/components/react/dist/mpx-radio.d.ts +27 -0
  137. package/lib/runtime/components/react/dist/mpx-radio.d.ts.map +1 -0
  138. package/lib/runtime/components/react/dist/mpx-rich-text/html.d.ts +2 -0
  139. package/lib/runtime/components/react/dist/mpx-rich-text/html.d.ts.map +1 -0
  140. package/lib/runtime/components/react/dist/mpx-rich-text/index.d.ts +25 -0
  141. package/lib/runtime/components/react/dist/mpx-rich-text/index.d.ts.map +1 -0
  142. package/lib/runtime/components/react/dist/mpx-rich-text/index.jsx +1 -1
  143. package/lib/runtime/components/react/dist/mpx-root-portal.d.ts +15 -0
  144. package/lib/runtime/components/react/dist/mpx-root-portal.d.ts.map +1 -0
  145. package/lib/runtime/components/react/dist/mpx-scroll-view.d.ts +55 -0
  146. package/lib/runtime/components/react/dist/mpx-scroll-view.d.ts.map +1 -0
  147. package/lib/runtime/components/react/dist/mpx-scroll-view.jsx +6 -14
  148. package/lib/runtime/components/react/dist/mpx-simple-text.d.ts +8 -0
  149. package/lib/runtime/components/react/dist/mpx-simple-text.d.ts.map +1 -0
  150. package/lib/runtime/components/react/dist/mpx-simple-view.d.ts +8 -0
  151. package/lib/runtime/components/react/dist/mpx-simple-view.d.ts.map +1 -0
  152. package/lib/runtime/components/react/dist/mpx-slider.d.ts +31 -0
  153. package/lib/runtime/components/react/dist/mpx-slider.d.ts.map +1 -0
  154. package/lib/runtime/components/react/dist/mpx-sticky-header.d.ts +18 -0
  155. package/lib/runtime/components/react/dist/mpx-sticky-header.d.ts.map +1 -0
  156. package/lib/runtime/components/react/dist/mpx-sticky-section.d.ts +16 -0
  157. package/lib/runtime/components/react/dist/mpx-sticky-section.d.ts.map +1 -0
  158. package/lib/runtime/components/react/dist/mpx-swiper-item.d.ts +19 -0
  159. package/lib/runtime/components/react/dist/mpx-swiper-item.d.ts.map +1 -0
  160. package/lib/runtime/components/react/dist/mpx-swiper.d.ts +53 -0
  161. package/lib/runtime/components/react/dist/mpx-swiper.d.ts.map +1 -0
  162. package/lib/runtime/components/react/dist/mpx-switch.d.ts +27 -0
  163. package/lib/runtime/components/react/dist/mpx-switch.d.ts.map +1 -0
  164. package/lib/runtime/components/react/dist/mpx-text.d.ts +23 -0
  165. package/lib/runtime/components/react/dist/mpx-text.d.ts.map +1 -0
  166. package/lib/runtime/components/react/dist/mpx-text.jsx +33 -5
  167. package/lib/runtime/components/react/dist/mpx-textarea.d.ts +8 -0
  168. package/lib/runtime/components/react/dist/mpx-textarea.d.ts.map +1 -0
  169. package/lib/runtime/components/react/dist/mpx-video.d.ts +102 -0
  170. package/lib/runtime/components/react/dist/mpx-video.d.ts.map +1 -0
  171. package/lib/runtime/components/react/dist/mpx-view.d.ts +35 -0
  172. package/lib/runtime/components/react/dist/mpx-view.d.ts.map +1 -0
  173. package/lib/runtime/components/react/dist/mpx-view.jsx +1 -1
  174. package/lib/runtime/components/react/dist/mpx-web-view.d.ts +23 -0
  175. package/lib/runtime/components/react/dist/mpx-web-view.d.ts.map +1 -0
  176. package/lib/runtime/components/react/dist/mpx-web-view.jsx +10 -2
  177. package/lib/runtime/components/react/dist/parser.d.ts +40 -0
  178. package/lib/runtime/components/react/dist/parser.d.ts.map +1 -0
  179. package/lib/runtime/components/react/dist/useAnimationHooks.d.ts +33 -0
  180. package/lib/runtime/components/react/dist/useAnimationHooks.d.ts.map +1 -0
  181. package/lib/runtime/components/react/dist/useNodesRef.d.ts +12 -0
  182. package/lib/runtime/components/react/dist/useNodesRef.d.ts.map +1 -0
  183. package/lib/runtime/components/react/dist/utils.d.ts +123 -0
  184. package/lib/runtime/components/react/dist/utils.d.ts.map +1 -0
  185. package/lib/runtime/components/react/dist/utils.jsx +16 -6
  186. package/lib/runtime/components/react/mpx-canvas/index.tsx +1 -1
  187. package/lib/runtime/components/react/mpx-image.tsx +130 -77
  188. package/lib/runtime/components/react/mpx-input.tsx +38 -15
  189. package/lib/runtime/components/react/mpx-keyboard-avoiding-view.tsx +66 -49
  190. package/lib/runtime/components/react/mpx-nav.tsx +155 -0
  191. package/lib/runtime/components/react/mpx-picker-view/index.tsx +5 -2
  192. package/lib/runtime/components/react/mpx-picker-view-column/index.tsx +26 -21
  193. package/lib/runtime/components/react/mpx-picker-view-column/pickerViewColumnItem.tsx +8 -12
  194. package/lib/runtime/components/react/mpx-picker-view-column/pickerViewColumnItemLite.tsx +55 -0
  195. package/lib/runtime/components/react/mpx-portal/index.tsx +8 -2
  196. package/lib/runtime/components/react/mpx-rich-text/index.tsx +1 -1
  197. package/lib/runtime/components/react/mpx-scroll-view.tsx +6 -17
  198. package/lib/runtime/components/react/mpx-text.tsx +38 -5
  199. package/lib/runtime/components/react/mpx-view.tsx +1 -1
  200. package/lib/runtime/components/react/mpx-web-view.tsx +13 -4
  201. package/lib/runtime/components/react/types/common.d.ts +19 -0
  202. package/lib/runtime/components/react/utils.tsx +15 -6
  203. package/lib/script-setup-compiler/index.js +2 -2
  204. package/lib/style-compiler/index.js +3 -2
  205. package/lib/style-compiler/load-postcss-config.js +1 -1
  206. package/lib/style-compiler/plugins/trans-special.js +10 -2
  207. package/lib/style-compiler/strip-conditional-loader.js +177 -15
  208. package/lib/template-compiler/compiler.js +268 -70
  209. package/lib/template-compiler/gen-node-react.js +18 -6
  210. package/lib/template-compiler/index.js +6 -4
  211. package/lib/template-compiler/parse-exps.js +1 -1
  212. package/lib/utils/const.js +2 -1
  213. package/lib/utils/dom-tag-config.js +5 -5
  214. package/lib/utils/env.js +6 -1
  215. package/lib/utils/get-build-tag-component.js +35 -0
  216. package/lib/utils/merge-visitors.js +55 -0
  217. package/lib/utils/pre-process-json.js +5 -0
  218. package/lib/web/index.js +2 -0
  219. package/lib/web/processJSON.js +44 -16
  220. package/lib/web/processScript.js +1 -1
  221. package/lib/web/processTemplate.js +6 -4
  222. package/lib/web/script-helper.js +19 -9
  223. package/lib/wxs/pre-loader.js +9 -6
  224. package/lib/wxss/loader.js +1 -9
  225. package/package.json +15 -5
  226. package/lib/utils/chain-assign.js +0 -47
@@ -0,0 +1,66 @@
1
+ /**
2
+ * ✔ direction
3
+ * ✔ inertia
4
+ * ✔ out-of-bounds
5
+ * ✔ x
6
+ * ✔ y
7
+ * ✔ damping
8
+ * ✔ friction
9
+ * ✔ disabled
10
+ * ✘ scale
11
+ * ✘ scale-min
12
+ * ✘ scale-max
13
+ * ✘ scale-value
14
+ * ✔ animation
15
+ * ✔ bindchange
16
+ * ✘ bindscale
17
+ * ✔ htouchmove
18
+ * ✔ vtouchmove
19
+ */
20
+ import { ReactNode } from 'react';
21
+ import { View, LayoutChangeEvent } from 'react-native';
22
+ import { HandlerRef } from './useNodesRef';
23
+ import { GestureHandler } from './utils';
24
+ import { GestureTouchEvent } from 'react-native-gesture-handler';
25
+ interface MovableViewProps {
26
+ children: ReactNode;
27
+ style?: Record<string, any>;
28
+ direction: 'all' | 'vertical' | 'horizontal' | 'none';
29
+ x?: number;
30
+ y?: number;
31
+ disabled?: boolean;
32
+ animation?: boolean;
33
+ damping?: number;
34
+ friction?: number;
35
+ id?: string;
36
+ changeThrottleTime?: number;
37
+ bindchange?: (event: unknown) => void;
38
+ bindtouchstart?: (event: GestureTouchEvent) => void;
39
+ catchtouchstart?: (event: GestureTouchEvent) => void;
40
+ bindtouchmove?: (event: GestureTouchEvent) => void;
41
+ catchtouchmove?: (event: GestureTouchEvent) => void;
42
+ catchtouchend?: (event: GestureTouchEvent) => void;
43
+ bindtouchend?: (event: GestureTouchEvent) => void;
44
+ bindhtouchmove?: (event: GestureTouchEvent) => void;
45
+ bindvtouchmove?: (event: GestureTouchEvent) => void;
46
+ catchhtouchmove?: (event: GestureTouchEvent) => void;
47
+ catchvtouchmove?: (event: GestureTouchEvent) => void;
48
+ bindlongpress?: (event: GestureTouchEvent) => void;
49
+ catchlongpress?: (event: GestureTouchEvent) => void;
50
+ bindtap?: (event: GestureTouchEvent) => void;
51
+ catchtap?: (event: GestureTouchEvent) => void;
52
+ onLayout?: (event: LayoutChangeEvent) => void;
53
+ 'out-of-bounds'?: boolean;
54
+ 'wait-for'?: Array<GestureHandler>;
55
+ 'simultaneous-handlers'?: Array<GestureHandler>;
56
+ inertia?: boolean;
57
+ 'enable-var'?: boolean;
58
+ 'external-var-context'?: Record<string, any>;
59
+ 'parent-font-size'?: number;
60
+ 'parent-width'?: number;
61
+ 'parent-height'?: number;
62
+ 'disable-event-passthrough'?: boolean;
63
+ }
64
+ declare const _MovableView: import("react").ForwardRefExoticComponent<MovableViewProps & import("react").RefAttributes<HandlerRef<View, MovableViewProps>>>;
65
+ export default _MovableView;
66
+ //# sourceMappingURL=mpx-movable-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-movable-view.d.ts","sourceRoot":"","sources":["../mpx-movable-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare function useInnerHeaderHeight(pageConfig: PageConfig): number;
3
+ export interface MpxNavProps {
4
+ pageConfig: PageConfig;
5
+ navigation: any;
6
+ }
7
+ declare const MpxNav: import("react").MemoExoticComponent<({ pageConfig, navigation }: MpxNavProps) => import("react").JSX.Element>;
8
+ export default MpxNav;
9
+ //# sourceMappingURL=mpx-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-nav.d.ts","sourceRoot":"","sources":["../mpx-nav.tsx"],"names":[],"mappings":";AA0BA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,UAS1D;AA6CD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,GAAG,CAAA;CAChB;AAKD,QAAA,MAAM,MAAM,mEAAqC,WAAW,iCA+D1D,CAAA;AAGF,eAAe,MAAM,CAAA"}
@@ -0,0 +1,132 @@
1
+ /* eslint-disable space-before-function-paren */
2
+ import { useState, useMemo, memo } from 'react';
3
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
4
+ import { StatusBar, processColor, TouchableWithoutFeedback, Image, View, StyleSheet, Text } from 'react-native';
5
+ function convertToHex(color) {
6
+ try {
7
+ const intColor = processColor(color);
8
+ if (intColor === null || intColor === undefined) {
9
+ return null;
10
+ }
11
+ // 将32位整数颜色值转换为RGBA
12
+ const r = (intColor >> 16) & 255;
13
+ const g = (intColor >> 8) & 255;
14
+ const b = intColor & 255;
15
+ // 转换为十六进制
16
+ const hexR = r.toString(16).padStart(2, '0');
17
+ const hexG = g.toString(16).padStart(2, '0');
18
+ const hexB = b.toString(16).padStart(2, '0');
19
+ return `#${hexR}${hexG}${hexB}`;
20
+ }
21
+ catch (error) {
22
+ return null;
23
+ }
24
+ }
25
+ const titleHeight = 44;
26
+ export function useInnerHeaderHeight(pageConfig) {
27
+ const safeArea = useSafeAreaInsets();
28
+ if (pageConfig.navigationStyle === 'custom') {
29
+ return 0;
30
+ }
31
+ else {
32
+ const safeAreaTop = safeArea?.top || 0;
33
+ const headerHeight = safeAreaTop + titleHeight;
34
+ return headerHeight;
35
+ }
36
+ }
37
+ const styles = StyleSheet.create({
38
+ header: {
39
+ elevation: 3
40
+ },
41
+ headerContent: {
42
+ flexDirection: 'row',
43
+ alignItems: 'center',
44
+ justifyContent: 'center'
45
+ },
46
+ backButton: {
47
+ position: 'absolute',
48
+ height: '100%',
49
+ width: 40,
50
+ left: 0,
51
+ top: 0,
52
+ alignItems: 'center',
53
+ justifyContent: 'center'
54
+ },
55
+ backButtonImage: {
56
+ width: 22,
57
+ height: 22
58
+ },
59
+ title: {
60
+ fontSize: 17,
61
+ fontWeight: 600,
62
+ width: '60%',
63
+ textAlign: 'center'
64
+ }
65
+ });
66
+ const NavColor = {
67
+ White: '#ffffff',
68
+ Black: '#000000'
69
+ };
70
+ // navigationBarTextStyle 只支持黑白 'white'/'black
71
+ const validBarTextStyle = (textStyle) => {
72
+ const textStyleColor = convertToHex(textStyle);
73
+ if (textStyle && textStyleColor && [NavColor.White, NavColor.Black].includes(textStyleColor)) {
74
+ return textStyleColor;
75
+ }
76
+ else {
77
+ return NavColor.White;
78
+ }
79
+ };
80
+ const BACK_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABICAYAAACqT5alAAAA2UlEQVR4nO3bMQrCUBRE0Yla6AYEN2nnBrTL+izcitW3MRDkEUWSvPzJvfCqgMwhZbAppWhNbbIHzB1g9wATERFRVyvpkj1irlpJ5X326D7WHh1hbdFD2CLpLmmftm7kfsEe09aNHFiBrT+wAlt/YAW2/sAKbP2BFdj6Ayuwy+ufz6XPL893krZ//O6iu2n4LT8kndLWTRTo4EC7BDo40C6BDg60S6CDA+0S6OBAuwQ6uNWiD2nrJmoIfU7cNWkR2hbb1UfbY7uuWhGWiIg+a/iHuHmA3QPs3gu4JW9Gan+OJAAAAABJRU5ErkJggg==';
81
+ const MpxNav = memo(({ pageConfig, navigation }) => {
82
+ const [innerPageConfig, setPageConfig] = useState(pageConfig || {});
83
+ const safeAreaTop = useSafeAreaInsets()?.top || 0;
84
+ navigation.setPageConfig = (config) => {
85
+ setPageConfig(Object.assign({}, innerPageConfig, config));
86
+ };
87
+ const isCustom = innerPageConfig.navigationStyle === 'custom';
88
+ const navigationBarTextStyle = useMemo(() => validBarTextStyle(innerPageConfig.navigationBarTextStyle), [innerPageConfig.navigationBarTextStyle]);
89
+ // 状态栏的颜色
90
+ const statusBarElement = (<StatusBar translucent backgroundColor='transparent' barStyle={navigationBarTextStyle === NavColor.White ? 'light-content' : 'dark-content'}></StatusBar>);
91
+ if (isCustom)
92
+ return statusBarElement;
93
+ // 假设是栈导航,获取栈的长度
94
+ const stackLength = navigation.getState()?.routes?.length;
95
+ const onStackTopBack = mpxGlobal?.__mpx?.config?.rnConfig?.onStackTopBack;
96
+ const isHandleStackTopBack = typeof onStackTopBack === 'function';
97
+ // 回退按钮与图标
98
+ // prettier-ignore
99
+ const backElement = stackLength > 1 || isHandleStackTopBack
100
+ ? (<TouchableWithoutFeedback onPress={() => {
101
+ if (stackLength <= 1 && isHandleStackTopBack) {
102
+ onStackTopBack();
103
+ return;
104
+ }
105
+ navigation.goBack();
106
+ }}>
107
+ <View style={[styles.backButton]}>
108
+ <Image style={[styles.backButtonImage, { tintColor: navigationBarTextStyle }]} source={{ uri: BACK_ICON }}></Image>
109
+ </View>
110
+ </TouchableWithoutFeedback>)
111
+ : null;
112
+ return (<View style={[
113
+ styles.header,
114
+ {
115
+ paddingTop: safeAreaTop,
116
+ backgroundColor: innerPageConfig.navigationBarBackgroundColor || '#000000'
117
+ }
118
+ ]}>
119
+ {statusBarElement}
120
+ {/* TODO: 确定 height 的有效性 */}
121
+ {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}
122
+ {/* @ts-expect-error */}
123
+ <View style={styles.headerContent} height={titleHeight}>
124
+ {backElement}
125
+ <Text style={[styles.title, { color: navigationBarTextStyle }]} numberOfLines={1}>
126
+ {innerPageConfig.navigationBarTitleText?.trim() || ''}
127
+ </Text>
128
+ </View>
129
+ </View>);
130
+ });
131
+ MpxNav.displayName = 'MpxNav';
132
+ export default MpxNav;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { _ViewProps } from './mpx-view';
3
+ interface _NavigatorProps extends _ViewProps {
4
+ ['open-type']: 'navigate' | 'redirect' | 'switchTab' | 'reLaunch' | 'navigateBack';
5
+ url: string;
6
+ delta: number;
7
+ }
8
+ declare const _Navigator: import("react").ForwardRefExoticComponent<_NavigatorProps & import("react").RefAttributes<any>>;
9
+ export default _Navigator;
10
+ //# sourceMappingURL=mpx-navigator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpx-navigator.d.ts","sourceRoot":"","sources":["../mpx-navigator.tsx"],"names":[],"mappings":";AAYA,OAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEhD,UAAU,eAAgB,SAAQ,UAAU;IAC1C,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAA;IAClF,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,UAAU,iGAkCd,CAAA;AAIF,eAAe,UAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { DateProps } from './type';
4
+ import { HandlerRef } from '../useNodesRef';
5
+ declare const PickerDate: React.ForwardRefExoticComponent<Omit<DateProps, "ref"> & React.RefAttributes<HandlerRef<View, DateProps>>>;
6
+ export default PickerDate;
7
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../mpx-picker/date.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6F,MAAM,OAAO,CAAA;AACjH,OAAO,EAAoB,IAAI,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAa,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AA8J3C,QAAA,MAAM,UAAU,4GA4Ed,CAAA;AAGF,eAAe,UAAU,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare const wrapDate: (union?: string) => (num: number) => string;
2
+ export declare const START_YEAR = 1900;
3
+ export declare const END_YEAR = 2099;
4
+ export declare const years: string[];
5
+ export declare const months: string[];
6
+ export declare const daysInMonthLength: (year: number, month: number) => 30 | 28 | 29 | 31;
7
+ export declare const daysInMonth: (year: number, month: number) => string[];
8
+ //# sourceMappingURL=dateData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateData.d.ts","sourceRoot":"","sources":["../../mpx-picker/dateData.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,4BAAyB,MAAM,WAAyC,CAAA;AAE7F,eAAO,MAAM,UAAU,OAAO,CAAA;AAC9B,eAAO,MAAM,QAAQ,OAAO,CAAA;AAE5B,eAAO,MAAM,KAAK,UAAsE,CAAA;AAExF,eAAO,MAAM,MAAM,UAAyE,CAAA;AAE5F,eAAO,MAAM,iBAAiB,SAAU,MAAM,SAAS,MAAM,sBAQ5D,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,SAAS,MAAM,aAEtD,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { HandlerRef } from '../useNodesRef';
4
+ import { PickerProps } from './type';
5
+ declare const Picker: React.ForwardRefExoticComponent<(Omit<import("./type").DateProps, "ref"> | Omit<import("./type").SelectorProps, "ref"> | Omit<import("./type").MultiSelectorProps, "ref"> | Omit<import("./type").TimeProps, "ref"> | Omit<import("./type").RegionProps, "ref">) & React.RefAttributes<HandlerRef<View, PickerProps>>>;
6
+ export default Picker;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../mpx-picker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAA;AACvF,OAAO,EAA8C,IAAI,EAAE,MAAM,cAAc,CAAA;AAQ/E,OAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIxD,OAAO,EAAuC,WAAW,EAAE,MAAM,QAAQ,CAAA;AAmGzE,QAAA,MAAM,MAAM,wTAuKX,CAAA;AAGD,eAAe,MAAM,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { MultiSelectorProps } from './type';
4
+ import { HandlerRef } from '../useNodesRef';
5
+ declare const PickerMultiSelector: React.ForwardRefExoticComponent<Omit<MultiSelectorProps, "ref"> & React.RefAttributes<HandlerRef<View, MultiSelectorProps>>>;
6
+ export default PickerMultiSelector;
7
+ //# sourceMappingURL=multiSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiSelector.d.ts","sourceRoot":"","sources":["../../mpx-picker/multiSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAC7F,OAAO,EAAoB,IAAI,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAkB,MAAM,QAAQ,CAAA;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AA8B3C,QAAA,MAAM,mBAAmB,8HA8EvB,CAAA;AAGF,eAAe,mBAAmB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { RegionProps } from './type';
4
+ import { HandlerRef } from '../useNodesRef';
5
+ declare const PickerRegion: React.ForwardRefExoticComponent<Omit<RegionProps, "ref"> & React.RefAttributes<HandlerRef<View, RegionProps>>>;
6
+ export default PickerRegion;
7
+ //# sourceMappingURL=region.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../mpx-picker/region.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkF,MAAM,OAAO,CAAA;AACtG,OAAO,EAAoB,IAAI,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AA+J3C,QAAA,MAAM,YAAY,gHAsEhB,CAAA;AAGF,eAAe,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { RegionObj } from './type';
2
+ export declare const regionData: RegionObj[];
3
+ //# sourceMappingURL=regionData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regionData.d.ts","sourceRoot":"","sources":["../../mpx-picker/regionData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,eAAO,MAAM,UAAU,EAAE,SAAS,EAk9LjC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { SelectorProps } from './type';
4
+ import { HandlerRef } from '../useNodesRef';
5
+ declare const PickerSelector: React.ForwardRefExoticComponent<Omit<SelectorProps, "ref"> & React.RefAttributes<HandlerRef<View, SelectorProps>>>;
6
+ export default PickerSelector;
7
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../mpx-picker/selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,EAAoB,IAAI,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAkB,MAAM,QAAQ,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AA4B3C,QAAA,MAAM,cAAc,oHAqDlB,CAAA;AAGF,eAAe,cAAc,CAAA"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { TimeProps } from './type';
4
+ import { HandlerRef } from '../useNodesRef';
5
+ declare const PickerTime: React.ForwardRefExoticComponent<Omit<TimeProps, "ref"> & React.RefAttributes<HandlerRef<View, TimeProps>>>;
6
+ export default PickerTime;
7
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../mpx-picker/time.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuE,MAAM,OAAO,CAAA;AAC3F,OAAO,EAAoB,IAAI,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAkE3C,QAAA,MAAM,UAAU,4GA2Ed,CAAA;AAGF,eAAe,UAAU,CAAA"}
@@ -0,0 +1,107 @@
1
+ import React from 'react';
2
+ export declare const enum PickerMode {
3
+ SELECTOR = "selector",
4
+ MULTI_SELECTOR = "multiSelector",
5
+ TIME = "time",
6
+ DATE = "date",
7
+ REGION = "region"
8
+ }
9
+ export type PickerValue = number;
10
+ export type Obj = Record<string, any>;
11
+ export type RangeItem = Obj | number | string;
12
+ export type TimeValue = `${number}-${number}-${number}` | '';
13
+ /** 通用属性 */
14
+ export interface BasePickerProps {
15
+ /** --- 小程序属性 --- */
16
+ /** 选择器类型, 默认值 selector */
17
+ mode?: PickerMode;
18
+ /** 是否禁用, 默认值 false */
19
+ disabled?: boolean;
20
+ /** 点击取消按钮时触发 */
21
+ bindcancel?: Function;
22
+ /** 头部标题 */
23
+ 'header-text'?: string;
24
+ /** --- 内部组件属性 --- */
25
+ /** 作为表单组件时的名称 */
26
+ name?: string;
27
+ style?: Record<string, any>;
28
+ children?: React.ReactNode;
29
+ range?: RangeItem[];
30
+ ref?: any;
31
+ }
32
+ export interface SelectorProps extends BasePickerProps {
33
+ mode: PickerMode.SELECTOR;
34
+ /** 默认值 0 */
35
+ value?: number;
36
+ /** 默认值 [] */
37
+ range?: RangeItem[];
38
+ 'range-key'?: string;
39
+ /** 点击确认按钮后触发 change 事件, event.detail = {value} */
40
+ bindchange?: Function;
41
+ }
42
+ export interface MultiSelectorProps extends BasePickerProps {
43
+ mode: PickerMode.MULTI_SELECTOR;
44
+ /** 默认值 [] */
45
+ value?: number[];
46
+ range?: RangeItem[];
47
+ 'range-key'?: string;
48
+ bindchange?: Function;
49
+ bindcolumnchange?: Function;
50
+ }
51
+ export interface TimeProps extends BasePickerProps {
52
+ mode: PickerMode.TIME;
53
+ /** 表示选中的时间,格式为"hh:mm" */
54
+ value?: string;
55
+ start?: string;
56
+ end?: string;
57
+ bindchange?: Function;
58
+ }
59
+ export interface DateProps extends BasePickerProps {
60
+ mode: PickerMode.DATE;
61
+ /** 默认值 '' */
62
+ value?: TimeValue;
63
+ start?: TimeValue;
64
+ end?: TimeValue;
65
+ /** 有效值 year,month,day,表示选择器的粒度 */
66
+ fields?: 'day' | 'month' | 'year';
67
+ bindchange?: Function;
68
+ }
69
+ export interface RegionProps extends BasePickerProps {
70
+ mode: PickerMode.REGION;
71
+ /** 表示选中的省市区,默认选中每一列的第一个值, 默认值 [] */
72
+ value?: string[];
73
+ /** 默认值 region */
74
+ level?: 'province' | 'city' | 'region' | 'sub-district';
75
+ /** 可为每一列的顶部添加一个自定义的项 */
76
+ 'custom-item'?: string;
77
+ /** value 改变时触发 change 事件, event.detail = {value, code, postcode},
78
+ * 其中字段 code 是统计用区划代码, postcode 是邮政编码 */
79
+ bindchange?: Function;
80
+ }
81
+ export interface RegionObj {
82
+ value: string;
83
+ code: string;
84
+ postcode?: string;
85
+ children?: RegionObj[];
86
+ }
87
+ export interface PickerData {
88
+ value: string;
89
+ label: string;
90
+ children?: Object[];
91
+ }
92
+ export interface EventType {
93
+ detail: {
94
+ value: PickerValue[];
95
+ };
96
+ }
97
+ export interface LayoutType {
98
+ nativeEvent: {
99
+ layout: Obj;
100
+ };
101
+ }
102
+ export interface FormType {
103
+ name: string;
104
+ }
105
+ export type PickerProps = SelectorProps | MultiSelectorProps | TimeProps | DateProps | RegionProps;
106
+ export type LanguageCode = 'zh-CN' | 'en-US';
107
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../mpx-picker/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,0BAAkB,UAAU;IAC1B,QAAQ,aAAa;IACrB,cAAc,kBAAkB;IAChC,IAAI,SAAS;IACb,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACrC,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;AAC7C,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAAG,EAAE,CAAA;AAE5D,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB;IAChB,UAAU,CAAC,EAAE,QAAQ,CAAA;IACrB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACnB,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAA;IACzB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,IAAI,EAAE,UAAU,CAAC,cAAc,CAAA;IAC/B,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,QAAQ,CAAA;IACrB,gBAAgB,CAAC,EAAE,QAAQ,CAAA;CAC5B;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,IAAI,EAAE,UAAU,CAAC,IAAI,CAAA;IACrB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,IAAI,EAAE,UAAU,CAAC,IAAI,CAAA;IACrB,aAAa;IACb,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IACjC,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,EAAE,UAAU,CAAC,MAAM,CAAA;IACvB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,iBAAiB;IACjB,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAA;IACvD,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;4CACwC;IACxC,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,WAAW,EAAE,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE;QACX,MAAM,EAAE,GAAG,CAAA;KACZ,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,kBAAkB,GAClB,SAAS,GACT,SAAS,GACT,WAAW,CAAA;AAEf,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { View } from 'react-native';
2
+ import React from 'react';
3
+ import { HandlerRef } from '../useNodesRef';
4
+ import type { AnyFunc } from '../types/common';
5
+ /**
6
+ * ✔ value
7
+ * ✔ bindchange
8
+ * ✘ bindpickstart
9
+ * ✘ bindpickend
10
+ * ✔ mask-class
11
+ * ✔ indicator-style: 优先级indicator-style.height > pick-view-column中的子元素设置的height
12
+ * WebView Only:
13
+ * ✔ indicator-class
14
+ * ✔ mask-style
15
+ * ✘ immediate-change
16
+ */
17
+ interface PickerViewProps {
18
+ children: React.ReactNode;
19
+ value?: Array<number>;
20
+ bindchange?: AnyFunc;
21
+ style?: {
22
+ [key: string]: any;
23
+ };
24
+ 'enable-wheel-animation'?: boolean;
25
+ 'indicator-style'?: Record<string, any>;
26
+ 'mask-style'?: Record<string, any>;
27
+ 'enable-var'?: boolean;
28
+ 'external-var-context'?: Record<string, any>;
29
+ 'enable-offset'?: boolean;
30
+ }
31
+ declare const _PickerView: React.ForwardRefExoticComponent<PickerViewProps & React.RefAttributes<HandlerRef<View, PickerViewProps>>>;
32
+ export default _PickerView;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../mpx-picker-view/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAA4C,MAAM,OAAO,CAAA;AAEhE,OAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAWxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C;;;;;;;;;;;GAWG;AAEH,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAyBD,QAAA,MAAM,WAAW,2GAsLf,CAAA;AAGF,eAAe,WAAW,CAAA"}
@@ -17,7 +17,7 @@ const styles = {
17
17
  };
18
18
  const DefaultPickerItemH = 36;
19
19
  const _PickerView = forwardRef((props, ref) => {
20
- const { children, value = [], bindchange, style, 'indicator-style': indicatorStyle = {}, 'mask-style': pickerMaskStyle = {}, 'enable-var': enableVar, 'external-var-context': externalVarContext } = props;
20
+ const { children, value = [], bindchange, style, 'enable-wheel-animation': enableWheelAnimation = true, 'indicator-style': indicatorStyle = {}, 'mask-style': pickerMaskStyle = {}, 'enable-var': enableVar, 'external-var-context': externalVarContext } = props;
21
21
  const { height: indicatorH, ...pickerIndicatorStyle } = indicatorStyle;
22
22
  const nodeRef = useRef(null);
23
23
  const cloneRef = useRef(null);
@@ -67,7 +67,7 @@ const _PickerView = forwardRef((props, ref) => {
67
67
  columnData,
68
68
  ref: cloneRef,
69
69
  columnIndex: index,
70
- key: `pick-view-${index}`,
70
+ key: `pick-view-${index}-${columnData.length}`,
71
71
  wrapperStyle: {
72
72
  height: normalStyle?.height || DefaultPickerItemH,
73
73
  itemHeight: indicatorH || DefaultPickerItemH
@@ -75,7 +75,8 @@ const _PickerView = forwardRef((props, ref) => {
75
75
  onSelectChange: onSelectChange.bind(null, index),
76
76
  initialIndex,
77
77
  pickerIndicatorStyle,
78
- pickerMaskStyle
78
+ pickerMaskStyle,
79
+ enableWheelAnimation
79
80
  });
80
81
  const realElement = React.cloneElement(child, wrappedProps);
81
82
  return wrapChildren({
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { SharedValue } from 'react-native-reanimated';
3
+ type ContextValue = SharedValue<number>;
4
+ export declare const PickerViewColumnAnimationContext: import("react").Context<ContextValue | undefined>;
5
+ export declare const usePickerViewColumnAnimationContext: () => ContextValue;
6
+ export declare const PickerViewStyleContext: import("react").Context<Record<string, any> | undefined>;
7
+ export declare const usePickerViewStyleContext: () => Record<string, any> | undefined;
8
+ export {};
9
+ //# sourceMappingURL=pickerVIewContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickerVIewContext.d.ts","sourceRoot":"","sources":["../../mpx-picker-view/pickerVIewContext.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,KAAK,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAEvC,eAAO,MAAM,gCAAgC,mDAEjC,CAAA;AAEZ,eAAO,MAAM,mCAAmC,oBAQ/C,CAAA;AAED,eAAO,MAAM,sBAAsB,0DAEvB,CAAA;AAEZ,eAAO,MAAM,yBAAyB,uCAGrC,CAAA"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { ScrollView, View } from 'react-native';
3
+ import { HandlerRef } from '../useNodesRef';
4
+ interface ColumnProps {
5
+ columnIndex: number;
6
+ columnData: React.ReactNode[];
7
+ initialIndex: number;
8
+ onSelectChange: Function;
9
+ style: {
10
+ [key: string]: any;
11
+ };
12
+ 'enable-var'?: boolean;
13
+ 'external-var-context'?: Record<string, any>;
14
+ wrapperStyle: {
15
+ height: number;
16
+ itemHeight: number;
17
+ };
18
+ pickerMaskStyle: Record<string, any>;
19
+ pickerIndicatorStyle: Record<string, any>;
20
+ enableWheelAnimation?: boolean;
21
+ }
22
+ declare const _PickerViewColumn: React.ForwardRefExoticComponent<ColumnProps & React.RefAttributes<HandlerRef<ScrollView & View, ColumnProps>>>;
23
+ export default _PickerViewColumn;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../mpx-picker-view-column/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuF,MAAM,OAAO,CAAA;AAC3G,OAAO,EAAqF,UAAU,EAAc,IAAI,EAAE,MAAM,cAAc,CAAA;AAG9I,OAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAQxD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,QAAQ,CAAA;IACxB,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5C,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAID,QAAA,MAAM,iBAAiB,gHA0UrB,CAAA;AAQF,eAAe,iBAAiB,CAAA"}
@@ -5,12 +5,13 @@ import { useTransformStyle, splitStyle, splitProps, useLayout, usePrevious, isAn
5
5
  import useNodesRef from '../useNodesRef';
6
6
  import PickerIndicator from './pickerViewIndicator';
7
7
  import PickerMask from './pickerViewMask';
8
- import MpxPickerVIewColumnItem from './pickerViewColumnItem';
8
+ import MpxPickerViewColumnItem from './pickerViewColumnItem';
9
+ import MpxPickerViewColumnItemLite from './pickerViewColumnItemLite';
9
10
  import { PickerViewColumnAnimationContext } from '../mpx-picker-view/pickerVIewContext';
10
11
  import { calcHeightOffsets } from './pickerViewFaces';
11
12
  const visibleCount = 5;
12
13
  const _PickerViewColumn = forwardRef((props, ref) => {
13
- const { columnData, columnIndex, initialIndex, onSelectChange, style, wrapperStyle, pickerMaskStyle, pickerIndicatorStyle, 'enable-var': enableVar, 'external-var-context': externalVarContext } = props;
14
+ const { columnData, columnIndex, initialIndex, onSelectChange, style, wrapperStyle, pickerMaskStyle, pickerIndicatorStyle, enableWheelAnimation = true, 'enable-var': enableVar, 'external-var-context': externalVarContext } = props;
14
15
  const { normalStyle, hasSelfPercent, setWidth, setHeight } = useTransformStyle(style, { enableVar, externalVarContext });
15
16
  const { textStyle = {} } = splitStyle(normalStyle);
16
17
  const { textProps = {} } = splitProps(props);
@@ -43,6 +44,7 @@ const _PickerViewColumn = forwardRef((props, ref) => {
43
44
  const contentContainerStyle = useMemo(() => {
44
45
  return [{ paddingVertical: paddingHeight }];
45
46
  }, [paddingHeight]);
47
+ const initialContentOffsetY = useMemo(() => initialIndex * itemRawH, [initialIndex, itemRawH]);
46
48
  const getIndex = useCallback((y) => {
47
49
  const calc = Math.round(y / itemRawH);
48
50
  return Math.max(0, Math.min(calc, maxIndex));
@@ -92,16 +94,6 @@ const _PickerViewColumn = forwardRef((props, ref) => {
92
94
  activeIndex.current = initialIndex;
93
95
  }, isIOS ? 0 : 200);
94
96
  }, [itemRawH, maxIndex, initialIndex]);
95
- const onContentSizeChange = useCallback((_w, h) => {
96
- const y = initialIndex * itemRawH;
97
- if (y <= h) {
98
- clearTimerScrollTo();
99
- timerScrollTo.current = setTimeout(() => {
100
- scrollViewRef.current?.scrollTo({ x: 0, y, animated: false });
101
- activeIndex.current = initialIndex;
102
- }, 0);
103
- }
104
- }, [itemRawH, initialIndex]);
105
97
  const onItemLayout = useCallback((e) => {
106
98
  const { height: rawH } = e.nativeEvent.layout;
107
99
  const roundedH = Math.round(rawH);
@@ -217,7 +209,9 @@ const _PickerViewColumn = forwardRef((props, ref) => {
217
209
  }
218
210
  }, [itemRawH, maxIndex, calcOffset, onMomentumScrollEnd]);
219
211
  const renderInnerchild = () => columnData.map((item, index) => {
220
- return (<MpxPickerVIewColumnItem key={index} item={item} index={index} itemHeight={itemHeight} textStyle={textStyle} textProps={textProps} visibleCount={visibleCount} onItemLayout={onItemLayout}/>);
212
+ return enableWheelAnimation
213
+ ? (<MpxPickerViewColumnItem key={index} item={item} index={index} itemHeight={itemHeight} textStyle={textStyle} textProps={textProps} visibleCount={visibleCount} onItemLayout={onItemLayout}/>)
214
+ : (<MpxPickerViewColumnItemLite key={index} item={item} index={index} itemHeight={itemHeight} textStyle={textStyle} textProps={textProps} onItemLayout={onItemLayout}/>);
221
215
  });
222
216
  const renderScollView = () => {
223
217
  const innerProps = extendObject({}, layoutProps, {
@@ -238,17 +232,17 @@ const _PickerViewColumn = forwardRef((props, ref) => {
238
232
  onScrollEndDrag,
239
233
  onMomentumScrollBegin,
240
234
  onMomentumScrollEnd,
241
- onContentSizeChange,
242
- contentContainerStyle
235
+ contentContainerStyle,
236
+ contentOffset: { x: 0, y: initialContentOffsetY }
243
237
  });
244
238
  return createElement(PickerViewColumnAnimationContext.Provider, { value: offsetYShared }, createElement(Reanimated.ScrollView, innerProps, renderInnerchild()));
245
239
  };
246
240
  const renderIndicator = () => (<PickerIndicator itemHeight={itemHeight} indicatorItemStyle={pickerIndicatorStyle}/>);
247
241
  const renderMask = () => (<PickerMask itemHeight={itemHeight} maskContainerStyle={pickerMaskStyle}/>);
248
242
  return (<View style={[styles.wrapper, normalStyle]}>
249
- {renderScollView()}
250
- {renderMask()}
251
- {renderIndicator()}
243
+ {renderScollView()}
244
+ {renderMask()}
245
+ {renderIndicator()}
252
246
  </View>);
253
247
  });
254
248
  const styles = StyleSheet.create({