@htyf-mp/taro-components-rn 0.0.1

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 (217) hide show
  1. package/README.md +2 -0
  2. package/dist/assets/icons/back.png +0 -0
  3. package/dist/assets/icons/cancel.png +0 -0
  4. package/dist/assets/icons/circle.png +0 -0
  5. package/dist/assets/icons/clear.png +0 -0
  6. package/dist/assets/icons/delete.png +0 -0
  7. package/dist/assets/icons/download.png +0 -0
  8. package/dist/assets/icons/info.png +0 -0
  9. package/dist/assets/icons/info_circle.png +0 -0
  10. package/dist/assets/icons/safe_success.png +0 -0
  11. package/dist/assets/icons/safe_warn.png +0 -0
  12. package/dist/assets/icons/search.png +0 -0
  13. package/dist/assets/icons/success.png +0 -0
  14. package/dist/assets/icons/success_circle.png +0 -0
  15. package/dist/assets/icons/success_no_circle.png +0 -0
  16. package/dist/assets/icons/waiting.png +0 -0
  17. package/dist/assets/icons/waiting_circle.png +0 -0
  18. package/dist/assets/icons/warn.png +0 -0
  19. package/dist/assets/loading-warn.png +0 -0
  20. package/dist/assets/loading.png +0 -0
  21. package/dist/assets/thumb.png +0 -0
  22. package/dist/assets/video/full.png +0 -0
  23. package/dist/assets/video/mute.png +0 -0
  24. package/dist/assets/video/pause.png +0 -0
  25. package/dist/assets/video/play.png +0 -0
  26. package/dist/assets/video/shrink.png +0 -0
  27. package/dist/assets/video/unmute.png +0 -0
  28. package/dist/assets/video/volume.png +0 -0
  29. package/dist/assets/weui.js +92 -0
  30. package/dist/assets/weui.js.map +1 -0
  31. package/dist/components/Block/index.js +8 -0
  32. package/dist/components/Block/index.js.map +1 -0
  33. package/dist/components/Button/PropsType.js +2 -0
  34. package/dist/components/Button/PropsType.js.map +1 -0
  35. package/dist/components/Button/index.js +159 -0
  36. package/dist/components/Button/index.js.map +1 -0
  37. package/dist/components/Button/styles.js +30 -0
  38. package/dist/components/Button/styles.js.map +1 -0
  39. package/dist/components/Camera/PropsType.js +2 -0
  40. package/dist/components/Camera/PropsType.js.map +1 -0
  41. package/dist/components/Camera/index.js +69 -0
  42. package/dist/components/Camera/index.js.map +1 -0
  43. package/dist/components/Camera/styles.js +8 -0
  44. package/dist/components/Camera/styles.js.map +1 -0
  45. package/dist/components/Checkbox/PropsType.js +2 -0
  46. package/dist/components/Checkbox/PropsType.js.map +1 -0
  47. package/dist/components/Checkbox/index.js +60 -0
  48. package/dist/components/Checkbox/index.js.map +1 -0
  49. package/dist/components/Checkbox/styles.js +28 -0
  50. package/dist/components/Checkbox/styles.js.map +1 -0
  51. package/dist/components/CheckboxGroup/PropsType.js +2 -0
  52. package/dist/components/CheckboxGroup/PropsType.js.map +1 -0
  53. package/dist/components/CheckboxGroup/index.js +64 -0
  54. package/dist/components/CheckboxGroup/index.js.map +1 -0
  55. package/dist/components/ClickableSimplified/PropsType.js +2 -0
  56. package/dist/components/ClickableSimplified/PropsType.js.map +1 -0
  57. package/dist/components/ClickableSimplified/index.js +187 -0
  58. package/dist/components/ClickableSimplified/index.js.map +1 -0
  59. package/dist/components/CoverImage/index.js +2 -0
  60. package/dist/components/CoverImage/index.js.map +1 -0
  61. package/dist/components/CoverView/index.js +2 -0
  62. package/dist/components/CoverView/index.js.map +1 -0
  63. package/dist/components/CustomWrapper/index.js +2 -0
  64. package/dist/components/CustomWrapper/index.js.map +1 -0
  65. package/dist/components/Form/PropsType.js +2 -0
  66. package/dist/components/Form/PropsType.js.map +1 -0
  67. package/dist/components/Form/index.js +104 -0
  68. package/dist/components/Form/index.js.map +1 -0
  69. package/dist/components/Icon/PropsType.js +2 -0
  70. package/dist/components/Icon/PropsType.js.map +1 -0
  71. package/dist/components/Icon/index.js +38 -0
  72. package/dist/components/Icon/index.js.map +1 -0
  73. package/dist/components/Image/PropsType.js +2 -0
  74. package/dist/components/Image/PropsType.js.map +1 -0
  75. package/dist/components/Image/index.js +162 -0
  76. package/dist/components/Image/index.js.map +1 -0
  77. package/dist/components/Input/PropsType.js +2 -0
  78. package/dist/components/Input/PropsType.js.map +1 -0
  79. package/dist/components/Input/index.js +215 -0
  80. package/dist/components/Input/index.js.map +1 -0
  81. package/dist/components/Label/PropsType.js +2 -0
  82. package/dist/components/Label/PropsType.js.map +1 -0
  83. package/dist/components/Label/index.js +45 -0
  84. package/dist/components/Label/index.js.map +1 -0
  85. package/dist/components/Map/index.js +146 -0
  86. package/dist/components/Map/index.js.map +1 -0
  87. package/dist/components/MovableArea/PropsType.js +2 -0
  88. package/dist/components/MovableArea/PropsType.js.map +1 -0
  89. package/dist/components/MovableArea/index.js +26 -0
  90. package/dist/components/MovableArea/index.js.map +1 -0
  91. package/dist/components/MovableView/PropsType.js +2 -0
  92. package/dist/components/MovableView/PropsType.js.map +1 -0
  93. package/dist/components/MovableView/index.js +107 -0
  94. package/dist/components/MovableView/index.js.map +1 -0
  95. package/dist/components/Navigator/index.js +39 -0
  96. package/dist/components/Navigator/index.js.map +1 -0
  97. package/dist/components/PageContainer/PropsType.js +2 -0
  98. package/dist/components/PageContainer/PropsType.js.map +1 -0
  99. package/dist/components/PageContainer/container.js +104 -0
  100. package/dist/components/PageContainer/container.js.map +1 -0
  101. package/dist/components/PageContainer/index.js +34 -0
  102. package/dist/components/PageContainer/index.js.map +1 -0
  103. package/dist/components/Picker/PropsType.js +2 -0
  104. package/dist/components/Picker/PropsType.js.map +1 -0
  105. package/dist/components/Picker/date.js +96 -0
  106. package/dist/components/Picker/date.js.map +1 -0
  107. package/dist/components/Picker/index.js +64 -0
  108. package/dist/components/Picker/index.js.map +1 -0
  109. package/dist/components/Picker/multiSelector.js +136 -0
  110. package/dist/components/Picker/multiSelector.js.map +1 -0
  111. package/dist/components/Picker/region.js +116 -0
  112. package/dist/components/Picker/region.js.map +1 -0
  113. package/dist/components/Picker/regionData.js +6100 -0
  114. package/dist/components/Picker/regionData.js.map +1 -0
  115. package/dist/components/Picker/selector.js +103 -0
  116. package/dist/components/Picker/selector.js.map +1 -0
  117. package/dist/components/Picker/time.js +81 -0
  118. package/dist/components/Picker/time.js.map +1 -0
  119. package/dist/components/PickerView/PropsType.js +2 -0
  120. package/dist/components/PickerView/PropsType.js.map +1 -0
  121. package/dist/components/PickerView/index.js +55 -0
  122. package/dist/components/PickerView/index.js.map +1 -0
  123. package/dist/components/PickerViewColumn/index.js +12 -0
  124. package/dist/components/PickerViewColumn/index.js.map +1 -0
  125. package/dist/components/Progress/PropsType.js +2 -0
  126. package/dist/components/Progress/PropsType.js.map +1 -0
  127. package/dist/components/Progress/index.js +119 -0
  128. package/dist/components/Progress/index.js.map +1 -0
  129. package/dist/components/Progress/styles.js +15 -0
  130. package/dist/components/Progress/styles.js.map +1 -0
  131. package/dist/components/Provider/index.js +3 -0
  132. package/dist/components/Provider/index.js.map +1 -0
  133. package/dist/components/Radio/PropsType.js +2 -0
  134. package/dist/components/Radio/PropsType.js.map +1 -0
  135. package/dist/components/Radio/index.js +59 -0
  136. package/dist/components/Radio/index.js.map +1 -0
  137. package/dist/components/Radio/styles.js +28 -0
  138. package/dist/components/Radio/styles.js.map +1 -0
  139. package/dist/components/RadioGroup/PropsType.js +2 -0
  140. package/dist/components/RadioGroup/PropsType.js.map +1 -0
  141. package/dist/components/RadioGroup/index.js +57 -0
  142. package/dist/components/RadioGroup/index.js.map +1 -0
  143. package/dist/components/RichText/PropsType.js +2 -0
  144. package/dist/components/RichText/PropsType.js.map +1 -0
  145. package/dist/components/RichText/index.js +65 -0
  146. package/dist/components/RichText/index.js.map +1 -0
  147. package/dist/components/ScrollView/PropsType.js +2 -0
  148. package/dist/components/ScrollView/PropsType.js.map +1 -0
  149. package/dist/components/ScrollView/index.js +238 -0
  150. package/dist/components/ScrollView/index.js.map +1 -0
  151. package/dist/components/Slider/PropsType.js +2 -0
  152. package/dist/components/Slider/PropsType.js.map +1 -0
  153. package/dist/components/Slider/index.js +84 -0
  154. package/dist/components/Slider/index.js.map +1 -0
  155. package/dist/components/Slider/styles.js +14 -0
  156. package/dist/components/Slider/styles.js.map +1 -0
  157. package/dist/components/Swiper/PropsType.js +2 -0
  158. package/dist/components/Swiper/PropsType.js.map +1 -0
  159. package/dist/components/Swiper/carousel.js +226 -0
  160. package/dist/components/Swiper/carousel.js.map +1 -0
  161. package/dist/components/Swiper/index.js +74 -0
  162. package/dist/components/Swiper/index.js.map +1 -0
  163. package/dist/components/Swiper/pagination.js +50 -0
  164. package/dist/components/Swiper/pagination.js.map +1 -0
  165. package/dist/components/SwiperItem/PropsType.js +2 -0
  166. package/dist/components/SwiperItem/PropsType.js.map +1 -0
  167. package/dist/components/SwiperItem/index.js +14 -0
  168. package/dist/components/SwiperItem/index.js.map +1 -0
  169. package/dist/components/SwiperItem/styles.js +9 -0
  170. package/dist/components/SwiperItem/styles.js.map +1 -0
  171. package/dist/components/Switch/PropsType.js +2 -0
  172. package/dist/components/Switch/PropsType.js.map +1 -0
  173. package/dist/components/Switch/index.js +93 -0
  174. package/dist/components/Switch/index.js.map +1 -0
  175. package/dist/components/Text/PropsType.js +2 -0
  176. package/dist/components/Text/PropsType.js.map +1 -0
  177. package/dist/components/Text/index.js +25 -0
  178. package/dist/components/Text/index.js.map +1 -0
  179. package/dist/components/Textarea/PropsType.js +2 -0
  180. package/dist/components/Textarea/PropsType.js.map +1 -0
  181. package/dist/components/Textarea/index.js +31 -0
  182. package/dist/components/Textarea/index.js.map +1 -0
  183. package/dist/components/Video/PropsType.js +2 -0
  184. package/dist/components/Video/PropsType.js.map +1 -0
  185. package/dist/components/Video/controls.js +166 -0
  186. package/dist/components/Video/controls.js.map +1 -0
  187. package/dist/components/Video/danmu.js +101 -0
  188. package/dist/components/Video/danmu.js.map +1 -0
  189. package/dist/components/Video/index.js +380 -0
  190. package/dist/components/Video/index.js.map +1 -0
  191. package/dist/components/Video/style.js +235 -0
  192. package/dist/components/Video/style.js.map +1 -0
  193. package/dist/components/Video/utils.js +14 -0
  194. package/dist/components/Video/utils.js.map +1 -0
  195. package/dist/components/View/PropsType.js +2 -0
  196. package/dist/components/View/PropsType.js.map +1 -0
  197. package/dist/components/View/index.js +46 -0
  198. package/dist/components/View/index.js.map +1 -0
  199. package/dist/components/VirtualList/PropsType.js +2 -0
  200. package/dist/components/VirtualList/PropsType.js.map +1 -0
  201. package/dist/components/VirtualList/index.js +82 -0
  202. package/dist/components/VirtualList/index.js.map +1 -0
  203. package/dist/components/WebView/PropsType.js +2 -0
  204. package/dist/components/WebView/PropsType.js.map +1 -0
  205. package/dist/components/WebView/index.js +31 -0
  206. package/dist/components/WebView/index.js.map +1 -0
  207. package/dist/components/hooks/PropsType.js +2 -0
  208. package/dist/components/hooks/PropsType.js.map +1 -0
  209. package/dist/components/hooks/useClickable.js +168 -0
  210. package/dist/components/hooks/useClickable.js.map +1 -0
  211. package/dist/index.js +38 -0
  212. package/dist/index.js.map +1 -0
  213. package/dist/setup.js +12 -0
  214. package/dist/setup.js.map +1 -0
  215. package/dist/utils/index.js +87 -0
  216. package/dist/utils/index.js.map +1 -0
  217. package/package.json +73 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ✔ nodes
3
+ */
4
+ import * as React from 'react';
5
+ import { View } from 'react-native';
6
+ import { WebView } from 'react-native-webview';
7
+ import { omit } from '../../utils';
8
+ class _RichText extends React.Component {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.state = {
12
+ webViewHeight: 0
13
+ };
14
+ this.webview = React.createRef();
15
+ this.renderChildrens = (arr) => {
16
+ if (arr.length === 0)
17
+ return '';
18
+ return arr.map((list) => {
19
+ if (list.type === 'text') {
20
+ return list.text;
21
+ }
22
+ return this.renderNodes(list);
23
+ }).join('');
24
+ };
25
+ this.renderNodes = (item) => {
26
+ const child = item.children ? this.renderChildrens(item.children) : '';
27
+ return `<${item.name} ${item.attrs && Object.keys(item.attrs).map(key => {
28
+ return `${key}="${item.attrs[key]}"`;
29
+ }).join(' ')}>${child}</${item.name}>`;
30
+ };
31
+ this.onWebViewMessage = (event) => {
32
+ this.setState({
33
+ webViewHeight: Number(event.nativeEvent.data)
34
+ });
35
+ };
36
+ }
37
+ render() {
38
+ const { style, nodes } = this.props;
39
+ const otherProps = omit(this.props, ['style', 'nodes']);
40
+ const html = typeof nodes === 'string'
41
+ ? nodes
42
+ : nodes.map((item) => {
43
+ return this.renderNodes(item);
44
+ }).join('');
45
+ return (React.createElement(View, { style: Object.assign({
46
+ height: this.state.webViewHeight,
47
+ width: '100%',
48
+ }, style) },
49
+ React.createElement(WebView, Object.assign({ ref: this.webview, source: { html: '<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>' + html }, scalesPageToFit: false, onMessage: this.onWebViewMessage, injectedJavaScript: `
50
+ document.documentElement.style.padding = 0;
51
+ document.documentElement.style.margin = 0;
52
+ document.body.style.padding = 0;
53
+ document.body.style.margin = 0;
54
+ window.ReactNativeWebView.postMessage(document.body.scrollHeight);
55
+ true;
56
+ `, onLoadEnd: () => { var _a; return (_a = this.webview.current) === null || _a === void 0 ? void 0 : _a.injectJavaScript('window.ReactNativeWebView.postMessage(document.body.scrollHeight);'); }, style: {
57
+ backgroundColor: 'transparent'
58
+ } }, otherProps))));
59
+ }
60
+ }
61
+ _RichText.defaultProps = {
62
+ nodes: ''
63
+ };
64
+ export default _RichText;
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RichText/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PropsType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/ScrollView/PropsType.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * @see https://facebook.github.io/react-native/docs/scrollview.html
3
+ *
4
+ * 注意事项:
5
+ * 一般地,ScrollView 外面要套一个 View 并在这个 View 上设置高度,否则会出现 ScrollView 撑满外层出现不能滚动的假象
6
+ * hack: scrollTop 在设置过一次后经过滚动再次设置时失效,因为 state 没变,所以这时可以通过设置一个比 0 小的值
7
+ *
8
+ * ✔ scrollX(scroll-x): Either-or
9
+ * ✘ scrollY(scroll-y): Either-or
10
+ * ✔ upperThreshold(upper-threshold)
11
+ * ✔ lowerThreshold(lower-threshold)
12
+ * ✔ scrollTop(scroll-top)
13
+ * ✔ scrollLeft(scroll-left)
14
+ * ✘ scroll-into-view
15
+ * ✔ scrollWithAnimation(scroll-with-animation)
16
+ * ✔ enableBackToTop(enable-back-to-top)
17
+ * ✔ onScrollToUpper(bindscrolltoupper)
18
+ * ✔ onScrollToLower(bindscrolltolower)
19
+ * ✔ onScroll(bindscroll)
20
+ */
21
+ import * as React from 'react';
22
+ import { FlatList, ScrollView, StyleSheet } from 'react-native';
23
+ import { noop, omit } from '../../utils';
24
+ // const SCROLLVIEW_CONT_STYLE = [
25
+ // // Source code of ScrollView, ['alignItems','justifyContent']
26
+ // 'alignItems',
27
+ // 'justifyContent',
28
+ // // Other
29
+ // ]
30
+ class _ScrollView extends React.Component {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.state = {
34
+ snapScrollTop: 0,
35
+ snapScrollLeft: 0
36
+ };
37
+ this._scrollMetrics = {
38
+ contentLength: 0,
39
+ dOffset: 0,
40
+ dt: 10,
41
+ offset: 0,
42
+ offsetX: 0,
43
+ offsetY: 0,
44
+ timestamp: 0,
45
+ velocity: 0,
46
+ visibleLength: 0
47
+ };
48
+ this.$scrollView = React.createRef();
49
+ this._sentEndForContentLength = 0;
50
+ this._scrollEventThrottle = 50;
51
+ this._hasCallScrollToUpperInRange = true;
52
+ this._hasCallScrollToLowerInRange = false;
53
+ this._selectLength = (metrics) => {
54
+ return !this.props.scrollX ? metrics.height : metrics.width;
55
+ };
56
+ this._selectOffset = (metrics) => {
57
+ return !this.props.scrollX ? metrics.y : metrics.x;
58
+ };
59
+ this._maybeCallOnStartReached = () => {
60
+ const { onScrollToUpper, upperThreshold } = this.props;
61
+ const { offset } = this._scrollMetrics;
62
+ if (onScrollToUpper && offset <= upperThreshold) {
63
+ if (!this._hasCallScrollToUpperInRange) {
64
+ onScrollToUpper({ distanceFromTop: offset });
65
+ this._hasCallScrollToUpperInRange = true;
66
+ }
67
+ }
68
+ else {
69
+ this._hasCallScrollToUpperInRange = false;
70
+ }
71
+ };
72
+ this._maybeCallOnEndReached = () => {
73
+ const { onScrollToLower, lowerThreshold } = this.props;
74
+ const { contentLength, visibleLength, offset } = this._scrollMetrics;
75
+ const distanceFromEnd = contentLength - visibleLength - offset;
76
+ // _hasDataChangedSinceEndReached的用处是???
77
+ // if (onScrollToLower &&
78
+ // distanceFromEnd < lowerThreshold &&
79
+ // (this._hasDataChangedSinceEndReached || contentLength !== this._sentEndForContentLength)) {
80
+ if (onScrollToLower && distanceFromEnd < lowerThreshold) {
81
+ if (!this._hasCallScrollToLowerInRange) {
82
+ this._hasDataChangedSinceEndReached = false;
83
+ this._hasCallScrollToLowerInRange = true;
84
+ this._sentEndForContentLength = this._scrollMetrics.contentLength;
85
+ onScrollToLower({ distanceFromEnd });
86
+ }
87
+ }
88
+ else {
89
+ this._hasCallScrollToLowerInRange = false;
90
+ }
91
+ };
92
+ this._onContentSizeChange = (width, height) => {
93
+ this._scrollMetrics.contentLength = this._selectLength({ height, width });
94
+ // this._maybeCallOnStartReached()
95
+ // this._maybeCallOnEndReached()
96
+ };
97
+ this._onScrollEndDrag = (e) => {
98
+ const { velocity } = e.nativeEvent;
99
+ if (velocity) {
100
+ this._scrollMetrics.velocity = this._selectOffset(velocity);
101
+ }
102
+ };
103
+ this._onMomentumScrollEnd = () => {
104
+ this._scrollMetrics.velocity = 0;
105
+ };
106
+ this._onLayout = (e) => {
107
+ this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);
108
+ // this._maybeCallOnStartReached()
109
+ // this._maybeCallOnEndReached()
110
+ };
111
+ this._onScroll = (e) => {
112
+ const { onScroll = noop } = this.props;
113
+ const scrollLeft = e.nativeEvent.contentOffset.x;
114
+ const scrollTop = e.nativeEvent.contentOffset.y;
115
+ const scrollHeight = e.nativeEvent.contentSize.height;
116
+ const scrollWidth = e.nativeEvent.contentSize.width;
117
+ onScroll({
118
+ detail: {
119
+ scrollLeft,
120
+ scrollTop,
121
+ scrollHeight,
122
+ scrollWidth,
123
+ deltaX: scrollLeft - this._scrollMetrics.offsetX,
124
+ deltaY: scrollTop - this._scrollMetrics.offsetY
125
+ }
126
+ });
127
+ const timestamp = e.timeStamp;
128
+ const visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);
129
+ const contentLength = this._selectLength(e.nativeEvent.contentSize);
130
+ const offset = this._selectOffset(e.nativeEvent.contentOffset);
131
+ const dt = Math.max(1, timestamp - this._scrollMetrics.timestamp);
132
+ const dOffset = offset - this._scrollMetrics.offset;
133
+ const velocity = dOffset / dt;
134
+ this._scrollMetrics = {
135
+ contentLength,
136
+ dt,
137
+ dOffset,
138
+ offset,
139
+ offsetX: scrollLeft,
140
+ offsetY: scrollTop,
141
+ timestamp,
142
+ velocity,
143
+ visibleLength
144
+ };
145
+ this._maybeCallOnStartReached();
146
+ this._maybeCallOnEndReached();
147
+ };
148
+ this.scrollToOffset = (x = 0, y = 0) => {
149
+ const { scrollX, data, renderItem } = this.props;
150
+ const node = this.$scrollView.current;
151
+ if (node) {
152
+ if (data && renderItem) {
153
+ node.scrollToOffset({ offset: scrollX ? x : y, animated: !!this.props.scrollWithAnimation });
154
+ }
155
+ else {
156
+ node.scrollTo({ x, y, animated: !!this.props.scrollWithAnimation });
157
+ }
158
+ }
159
+ };
160
+ }
161
+ static getDerivedStateFromProps(props, state) {
162
+ return state.snapScrollTop !== props.scrollTop || state.snapScrollLeft !== props.scrollLeft
163
+ ? {
164
+ snapScrollTop: props.scrollTop || 0,
165
+ snapScrollLeft: props.scrollLeft || 0
166
+ }
167
+ : null;
168
+ }
169
+ componentDidMount() {
170
+ if (this.state.snapScrollTop || this.state.snapScrollLeft) {
171
+ this._initialScrollIndexTimeout = setTimeout(() => {
172
+ this.scrollToOffset(this.state.snapScrollLeft, this.state.snapScrollTop);
173
+ }, 0);
174
+ }
175
+ }
176
+ getSnapshotBeforeUpdate(prevProps, prevState) {
177
+ if (prevProps.scrollTop !== undefined) {
178
+ return (this._scrollMetrics.offsetY !== this.state.snapScrollTop ||
179
+ this._scrollMetrics.offsetX !== this.state.snapScrollLeft);
180
+ }
181
+ return (prevState.snapScrollTop !== this.state.snapScrollTop || prevState.snapScrollLeft !== this.state.snapScrollLeft);
182
+ }
183
+ componentDidUpdate(_prevProps, _prevState, snapshot) {
184
+ if (snapshot) {
185
+ this.scrollToOffset(this.state.snapScrollLeft, this.state.snapScrollTop);
186
+ }
187
+ }
188
+ componentWillUnmount() {
189
+ this._initialScrollIndexTimeout && clearTimeout(this._initialScrollIndexTimeout);
190
+ }
191
+ render() {
192
+ const { children, style, scrollX, enableBackToTop, contentContainerStyle, data, renderItem } = this.props;
193
+ const flattenStyle = StyleSheet.flatten(style);
194
+ const wrapperStyle = omit(flattenStyle, ['alignItems', 'justifyContent']);
195
+ const _contentContainerStyle = {};
196
+ if (flattenStyle) {
197
+ flattenStyle.alignItems && (_contentContainerStyle.alignItems = flattenStyle.alignItems);
198
+ flattenStyle.justifyContent && (_contentContainerStyle.justifyContent = flattenStyle.justifyContent);
199
+ }
200
+ const scrollElementProps = Object.assign(Object.assign({ horizontal: scrollX, onContentSizeChange: this._onContentSizeChange, onLayout: this._onLayout, onScroll: this._onScroll, onScrollEndDrag: this._onScrollEndDrag, onMomentumScrollEnd: this._onMomentumScrollEnd, scrollEventThrottle: this._scrollEventThrottle, scrollsToTop: !!enableBackToTop, style: wrapperStyle, contentContainerStyle: [_contentContainerStyle, contentContainerStyle] }, omit(this.props, [
201
+ // props
202
+ 'style',
203
+ 'scrollX',
204
+ 'upperThreshold',
205
+ 'lowerThreshold',
206
+ 'scrollTop',
207
+ 'scrollLeft',
208
+ 'scrollWithAnimation',
209
+ 'enableBackToTop',
210
+ 'onScrollToUpper',
211
+ 'onScrollToLower',
212
+ 'onScroll',
213
+ 'contentContainerStyle',
214
+ // SProps
215
+ 'horizontal',
216
+ 'onContentSizeChange',
217
+ 'onLayout',
218
+ 'onScroll',
219
+ 'onScrollEndDrag',
220
+ 'onMomentumScrollEnd',
221
+ 'scrollsToTop',
222
+ 'style',
223
+ 'contentContainerStyle',
224
+ 'data',
225
+ 'renderItem',
226
+ 'keyExtractor'
227
+ ])), { ref: this.$scrollView });
228
+ // eslint-disable-next-line multiline-ternary
229
+ return data && renderItem ? (React.createElement(FlatList, Object.assign({}, scrollElementProps, { data: data, renderItem: renderItem, keyExtractor: (_item, index) => index + '' }))) : (React.createElement(ScrollView, Object.assign({}, scrollElementProps), children));
230
+ }
231
+ }
232
+ _ScrollView.defaultProps = {
233
+ upperThreshold: 50,
234
+ lowerThreshold: 50,
235
+ enableBackToTop: false
236
+ };
237
+ export default _ScrollView;
238
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScrollView/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PropsType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/Slider/PropsType.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * 半受控组件
3
+ *
4
+ * ✔ min
5
+ * ✔ max
6
+ * ✔ step
7
+ * ✔ disabled
8
+ * ✔ value
9
+ * - color
10
+ * - selected-color
11
+ * ✔ activeColor
12
+ * ✔ backgroundColor
13
+ * ✘ blockSize(block-size)
14
+ * ✔ blockColor(block-color)
15
+ * ✔ showValue(show-value)
16
+ * ✔ onChange(bindchange)
17
+ * ✔ onChanging(bindchanging)
18
+ */
19
+ import Slider from '@react-native-community/slider';
20
+ import * as React from 'react';
21
+ import { Text, View } from 'react-native';
22
+ import { noop } from '../../utils';
23
+ import styles from './styles';
24
+ class _Slider extends React.Component {
25
+ constructor() {
26
+ var _a;
27
+ super(...arguments);
28
+ this._timer = null;
29
+ // eslint-disable-next-line eqeqeq
30
+ this._isControlled = this.props.value != undefined;
31
+ this.state = {
32
+ currentValue: (_a = this.props.defaultValue) !== null && _a !== void 0 ? _a : (this.props.value || 0)
33
+ };
34
+ this.ensureControlledValue = () => {
35
+ if (!this._isControlled)
36
+ return;
37
+ this._timer && clearTimeout(this._timer);
38
+ this._timer = setTimeout(() => {
39
+ const controlledValue = this.props.value;
40
+ if (controlledValue !== this.state.currentValue) {
41
+ this.setState({
42
+ currentValue: controlledValue || 0
43
+ });
44
+ }
45
+ }, 50);
46
+ };
47
+ this.onSlidingComplete = (value) => {
48
+ const { onChange = noop } = this.props;
49
+ onChange({ detail: { value } });
50
+ };
51
+ this.onValueChange = (value) => {
52
+ const { onChanging = noop } = this.props;
53
+ onChanging({ detail: { value } });
54
+ this.setState({ currentValue: value });
55
+ };
56
+ }
57
+ componentDidUpdate(prevProps) {
58
+ const controlledValue = this.props.value;
59
+ if (prevProps.value !== controlledValue) {
60
+ this.setState({
61
+ currentValue: controlledValue || 0
62
+ });
63
+ }
64
+ this.ensureControlledValue();
65
+ }
66
+ render() {
67
+ const { style, min, max, step, disabled, activeColor, backgroundColor, blockColor, showValue } = this.props;
68
+ // @todo dismember style
69
+ return (React.createElement(View, { style: styles.wrapper },
70
+ React.createElement(Slider, { minimumValue: min, maximumValue: max, step: step, disabled: !!disabled, value: this.state.currentValue, minimumTrackTintColor: activeColor, maximumTrackTintColor: backgroundColor, thumbTintColor: blockColor, onSlidingComplete: this.onSlidingComplete, onValueChange: this.onValueChange, style: [styles.bar, style] }),
71
+ showValue && React.createElement(Text, { style: styles.info }, this.state.currentValue)));
72
+ }
73
+ }
74
+ _Slider.displayName = '_Slider';
75
+ _Slider.defaultProps = {
76
+ min: 0,
77
+ max: 100,
78
+ step: 1,
79
+ activeColor: '#1aad19',
80
+ backgroundColor: '#e9e9e9',
81
+ blockColor: '#fff'
82
+ };
83
+ export default _Slider;
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Slider/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { StyleSheet } from 'react-native';
2
+ export default StyleSheet.create({
3
+ wrapper: {
4
+ flexDirection: 'row',
5
+ alignItems: 'center',
6
+ },
7
+ bar: {
8
+ flexGrow: 1
9
+ },
10
+ info: {
11
+ marginLeft: 15,
12
+ }
13
+ });
14
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/Slider/styles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;KACrB;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PropsType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/Swiper/PropsType.tsx"],"names":[],"mappings":""}