@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.
- package/README.md +2 -0
- package/dist/assets/icons/back.png +0 -0
- package/dist/assets/icons/cancel.png +0 -0
- package/dist/assets/icons/circle.png +0 -0
- package/dist/assets/icons/clear.png +0 -0
- package/dist/assets/icons/delete.png +0 -0
- package/dist/assets/icons/download.png +0 -0
- package/dist/assets/icons/info.png +0 -0
- package/dist/assets/icons/info_circle.png +0 -0
- package/dist/assets/icons/safe_success.png +0 -0
- package/dist/assets/icons/safe_warn.png +0 -0
- package/dist/assets/icons/search.png +0 -0
- package/dist/assets/icons/success.png +0 -0
- package/dist/assets/icons/success_circle.png +0 -0
- package/dist/assets/icons/success_no_circle.png +0 -0
- package/dist/assets/icons/waiting.png +0 -0
- package/dist/assets/icons/waiting_circle.png +0 -0
- package/dist/assets/icons/warn.png +0 -0
- package/dist/assets/loading-warn.png +0 -0
- package/dist/assets/loading.png +0 -0
- package/dist/assets/thumb.png +0 -0
- package/dist/assets/video/full.png +0 -0
- package/dist/assets/video/mute.png +0 -0
- package/dist/assets/video/pause.png +0 -0
- package/dist/assets/video/play.png +0 -0
- package/dist/assets/video/shrink.png +0 -0
- package/dist/assets/video/unmute.png +0 -0
- package/dist/assets/video/volume.png +0 -0
- package/dist/assets/weui.js +92 -0
- package/dist/assets/weui.js.map +1 -0
- package/dist/components/Block/index.js +8 -0
- package/dist/components/Block/index.js.map +1 -0
- package/dist/components/Button/PropsType.js +2 -0
- package/dist/components/Button/PropsType.js.map +1 -0
- package/dist/components/Button/index.js +159 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Button/styles.js +30 -0
- package/dist/components/Button/styles.js.map +1 -0
- package/dist/components/Camera/PropsType.js +2 -0
- package/dist/components/Camera/PropsType.js.map +1 -0
- package/dist/components/Camera/index.js +69 -0
- package/dist/components/Camera/index.js.map +1 -0
- package/dist/components/Camera/styles.js +8 -0
- package/dist/components/Camera/styles.js.map +1 -0
- package/dist/components/Checkbox/PropsType.js +2 -0
- package/dist/components/Checkbox/PropsType.js.map +1 -0
- package/dist/components/Checkbox/index.js +60 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Checkbox/styles.js +28 -0
- package/dist/components/Checkbox/styles.js.map +1 -0
- package/dist/components/CheckboxGroup/PropsType.js +2 -0
- package/dist/components/CheckboxGroup/PropsType.js.map +1 -0
- package/dist/components/CheckboxGroup/index.js +64 -0
- package/dist/components/CheckboxGroup/index.js.map +1 -0
- package/dist/components/ClickableSimplified/PropsType.js +2 -0
- package/dist/components/ClickableSimplified/PropsType.js.map +1 -0
- package/dist/components/ClickableSimplified/index.js +187 -0
- package/dist/components/ClickableSimplified/index.js.map +1 -0
- package/dist/components/CoverImage/index.js +2 -0
- package/dist/components/CoverImage/index.js.map +1 -0
- package/dist/components/CoverView/index.js +2 -0
- package/dist/components/CoverView/index.js.map +1 -0
- package/dist/components/CustomWrapper/index.js +2 -0
- package/dist/components/CustomWrapper/index.js.map +1 -0
- package/dist/components/Form/PropsType.js +2 -0
- package/dist/components/Form/PropsType.js.map +1 -0
- package/dist/components/Form/index.js +104 -0
- package/dist/components/Form/index.js.map +1 -0
- package/dist/components/Icon/PropsType.js +2 -0
- package/dist/components/Icon/PropsType.js.map +1 -0
- package/dist/components/Icon/index.js +38 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/Image/PropsType.js +2 -0
- package/dist/components/Image/PropsType.js.map +1 -0
- package/dist/components/Image/index.js +162 -0
- package/dist/components/Image/index.js.map +1 -0
- package/dist/components/Input/PropsType.js +2 -0
- package/dist/components/Input/PropsType.js.map +1 -0
- package/dist/components/Input/index.js +215 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Label/PropsType.js +2 -0
- package/dist/components/Label/PropsType.js.map +1 -0
- package/dist/components/Label/index.js +45 -0
- package/dist/components/Label/index.js.map +1 -0
- package/dist/components/Map/index.js +146 -0
- package/dist/components/Map/index.js.map +1 -0
- package/dist/components/MovableArea/PropsType.js +2 -0
- package/dist/components/MovableArea/PropsType.js.map +1 -0
- package/dist/components/MovableArea/index.js +26 -0
- package/dist/components/MovableArea/index.js.map +1 -0
- package/dist/components/MovableView/PropsType.js +2 -0
- package/dist/components/MovableView/PropsType.js.map +1 -0
- package/dist/components/MovableView/index.js +107 -0
- package/dist/components/MovableView/index.js.map +1 -0
- package/dist/components/Navigator/index.js +39 -0
- package/dist/components/Navigator/index.js.map +1 -0
- package/dist/components/PageContainer/PropsType.js +2 -0
- package/dist/components/PageContainer/PropsType.js.map +1 -0
- package/dist/components/PageContainer/container.js +104 -0
- package/dist/components/PageContainer/container.js.map +1 -0
- package/dist/components/PageContainer/index.js +34 -0
- package/dist/components/PageContainer/index.js.map +1 -0
- package/dist/components/Picker/PropsType.js +2 -0
- package/dist/components/Picker/PropsType.js.map +1 -0
- package/dist/components/Picker/date.js +96 -0
- package/dist/components/Picker/date.js.map +1 -0
- package/dist/components/Picker/index.js +64 -0
- package/dist/components/Picker/index.js.map +1 -0
- package/dist/components/Picker/multiSelector.js +136 -0
- package/dist/components/Picker/multiSelector.js.map +1 -0
- package/dist/components/Picker/region.js +116 -0
- package/dist/components/Picker/region.js.map +1 -0
- package/dist/components/Picker/regionData.js +6100 -0
- package/dist/components/Picker/regionData.js.map +1 -0
- package/dist/components/Picker/selector.js +103 -0
- package/dist/components/Picker/selector.js.map +1 -0
- package/dist/components/Picker/time.js +81 -0
- package/dist/components/Picker/time.js.map +1 -0
- package/dist/components/PickerView/PropsType.js +2 -0
- package/dist/components/PickerView/PropsType.js.map +1 -0
- package/dist/components/PickerView/index.js +55 -0
- package/dist/components/PickerView/index.js.map +1 -0
- package/dist/components/PickerViewColumn/index.js +12 -0
- package/dist/components/PickerViewColumn/index.js.map +1 -0
- package/dist/components/Progress/PropsType.js +2 -0
- package/dist/components/Progress/PropsType.js.map +1 -0
- package/dist/components/Progress/index.js +119 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/Progress/styles.js +15 -0
- package/dist/components/Progress/styles.js.map +1 -0
- package/dist/components/Provider/index.js +3 -0
- package/dist/components/Provider/index.js.map +1 -0
- package/dist/components/Radio/PropsType.js +2 -0
- package/dist/components/Radio/PropsType.js.map +1 -0
- package/dist/components/Radio/index.js +59 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Radio/styles.js +28 -0
- package/dist/components/Radio/styles.js.map +1 -0
- package/dist/components/RadioGroup/PropsType.js +2 -0
- package/dist/components/RadioGroup/PropsType.js.map +1 -0
- package/dist/components/RadioGroup/index.js +57 -0
- package/dist/components/RadioGroup/index.js.map +1 -0
- package/dist/components/RichText/PropsType.js +2 -0
- package/dist/components/RichText/PropsType.js.map +1 -0
- package/dist/components/RichText/index.js +65 -0
- package/dist/components/RichText/index.js.map +1 -0
- package/dist/components/ScrollView/PropsType.js +2 -0
- package/dist/components/ScrollView/PropsType.js.map +1 -0
- package/dist/components/ScrollView/index.js +238 -0
- package/dist/components/ScrollView/index.js.map +1 -0
- package/dist/components/Slider/PropsType.js +2 -0
- package/dist/components/Slider/PropsType.js.map +1 -0
- package/dist/components/Slider/index.js +84 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Slider/styles.js +14 -0
- package/dist/components/Slider/styles.js.map +1 -0
- package/dist/components/Swiper/PropsType.js +2 -0
- package/dist/components/Swiper/PropsType.js.map +1 -0
- package/dist/components/Swiper/carousel.js +226 -0
- package/dist/components/Swiper/carousel.js.map +1 -0
- package/dist/components/Swiper/index.js +74 -0
- package/dist/components/Swiper/index.js.map +1 -0
- package/dist/components/Swiper/pagination.js +50 -0
- package/dist/components/Swiper/pagination.js.map +1 -0
- package/dist/components/SwiperItem/PropsType.js +2 -0
- package/dist/components/SwiperItem/PropsType.js.map +1 -0
- package/dist/components/SwiperItem/index.js +14 -0
- package/dist/components/SwiperItem/index.js.map +1 -0
- package/dist/components/SwiperItem/styles.js +9 -0
- package/dist/components/SwiperItem/styles.js.map +1 -0
- package/dist/components/Switch/PropsType.js +2 -0
- package/dist/components/Switch/PropsType.js.map +1 -0
- package/dist/components/Switch/index.js +93 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Text/PropsType.js +2 -0
- package/dist/components/Text/PropsType.js.map +1 -0
- package/dist/components/Text/index.js +25 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Textarea/PropsType.js +2 -0
- package/dist/components/Textarea/PropsType.js.map +1 -0
- package/dist/components/Textarea/index.js +31 -0
- package/dist/components/Textarea/index.js.map +1 -0
- package/dist/components/Video/PropsType.js +2 -0
- package/dist/components/Video/PropsType.js.map +1 -0
- package/dist/components/Video/controls.js +166 -0
- package/dist/components/Video/controls.js.map +1 -0
- package/dist/components/Video/danmu.js +101 -0
- package/dist/components/Video/danmu.js.map +1 -0
- package/dist/components/Video/index.js +380 -0
- package/dist/components/Video/index.js.map +1 -0
- package/dist/components/Video/style.js +235 -0
- package/dist/components/Video/style.js.map +1 -0
- package/dist/components/Video/utils.js +14 -0
- package/dist/components/Video/utils.js.map +1 -0
- package/dist/components/View/PropsType.js +2 -0
- package/dist/components/View/PropsType.js.map +1 -0
- package/dist/components/View/index.js +46 -0
- package/dist/components/View/index.js.map +1 -0
- package/dist/components/VirtualList/PropsType.js +2 -0
- package/dist/components/VirtualList/PropsType.js.map +1 -0
- package/dist/components/VirtualList/index.js +82 -0
- package/dist/components/VirtualList/index.js.map +1 -0
- package/dist/components/WebView/PropsType.js +2 -0
- package/dist/components/WebView/PropsType.js.map +1 -0
- package/dist/components/WebView/index.js +31 -0
- package/dist/components/WebView/index.js.map +1 -0
- package/dist/components/hooks/PropsType.js +2 -0
- package/dist/components/hooks/PropsType.js.map +1 -0
- package/dist/components/hooks/useClickable.js +168 -0
- package/dist/components/hooks/useClickable.js.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/setup.js +12 -0
- package/dist/setup.js.map +1 -0
- package/dist/utils/index.js +87 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/Input/PropsType.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ✔ value
|
|
3
|
+
* ✘ type: Partially.
|
|
4
|
+
* ✔ password
|
|
5
|
+
* ✔ placeholder
|
|
6
|
+
* ✘ placeholder-style: Only placeholderTextColor(RN).
|
|
7
|
+
* - placeholder-class
|
|
8
|
+
* ✔ disabled
|
|
9
|
+
* ✔ maxlength
|
|
10
|
+
* ✘ cursor-spacing
|
|
11
|
+
* - auto-focus
|
|
12
|
+
* ✔ focus
|
|
13
|
+
* ✔ confirmType(confirm-type)
|
|
14
|
+
* ✔ confirmHold(confirm-hold)
|
|
15
|
+
* ✔ cursor
|
|
16
|
+
* ✔ selectionStart(selection-start)
|
|
17
|
+
* ✔ selectionEnd(selection-end)
|
|
18
|
+
* ✘ adjust-position
|
|
19
|
+
* ✔ onInput(bindinput): No CURSOR info.
|
|
20
|
+
* ✔ onFocus(bindfocus): No HEIGHT info.
|
|
21
|
+
* ✔ onBlur(bindblur): No CURSOR info.
|
|
22
|
+
* ✔ onConfirm(bindconfirm)
|
|
23
|
+
*
|
|
24
|
+
* @todo KeyboardAvoidingView
|
|
25
|
+
*/
|
|
26
|
+
import * as React from 'react';
|
|
27
|
+
import { Platform, TextInput } from 'react-native';
|
|
28
|
+
import { noop, omit, parseStyles, useUpdateEffect } from '../../utils';
|
|
29
|
+
const keyboardTypeMap = {
|
|
30
|
+
text: 'default',
|
|
31
|
+
number: 'numeric',
|
|
32
|
+
idcard: 'default',
|
|
33
|
+
digit: Platform.select({
|
|
34
|
+
ios: 'decimal-pad',
|
|
35
|
+
android: 'numeric'
|
|
36
|
+
}) || ''
|
|
37
|
+
};
|
|
38
|
+
const defaultProps = {
|
|
39
|
+
type: 'text',
|
|
40
|
+
maxlength: 140,
|
|
41
|
+
confirmType: 'done',
|
|
42
|
+
selectionStart: -1,
|
|
43
|
+
selectionEnd: -1
|
|
44
|
+
};
|
|
45
|
+
const _Input = (props) => {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
const { style, value, type = defaultProps.type, password, placeholder, disabled, maxlength = defaultProps.maxlength, confirmType, confirmHold, cursor, selectionStart = defaultProps.selectionStart, selectionEnd = defaultProps.selectionEnd, _multiline, _autoHeight, autoFocus, focus, placeholderStyle } = props;
|
|
48
|
+
const [returnValue, setReturnValue] = React.useState();
|
|
49
|
+
/** 用于保存输入框值 */
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
const tmpValue = React.useRef();
|
|
52
|
+
const [_height, setHeight] = React.useState(0);
|
|
53
|
+
const lineCount = React.useRef(0);
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
const inputRef = React.useRef();
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
tmpValue.current = value;
|
|
59
|
+
setReturnValue(val => {
|
|
60
|
+
if (val !== value) {
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
return val;
|
|
64
|
+
});
|
|
65
|
+
}, [returnValue, value]);
|
|
66
|
+
// fix: https://github.com/NervJS/taro/issues/11350
|
|
67
|
+
useUpdateEffect(() => {
|
|
68
|
+
if (!inputRef.current) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (focus) {
|
|
72
|
+
inputRef.current.focus();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
inputRef.current.blur();
|
|
76
|
+
}
|
|
77
|
+
}, [focus]);
|
|
78
|
+
const onChangeText = React.useCallback((text) => {
|
|
79
|
+
const { onInput, onChange } = props;
|
|
80
|
+
const onEvent = onInput || onChange;
|
|
81
|
+
tmpValue.current = text || '';
|
|
82
|
+
if (onEvent) {
|
|
83
|
+
const result = onEvent({
|
|
84
|
+
target: { value: text },
|
|
85
|
+
detail: { value: text }
|
|
86
|
+
});
|
|
87
|
+
// Be care of flickering
|
|
88
|
+
// @see https://facebook.github.io/react-native/docs/textinput.html#value
|
|
89
|
+
if (typeof result === 'string') {
|
|
90
|
+
tmpValue.current = result;
|
|
91
|
+
setReturnValue(result);
|
|
92
|
+
}
|
|
93
|
+
else if (returnValue !== undefined) {
|
|
94
|
+
// 为了处理输入不合法,setState 相同值时,状态不更新,UI 也得不到更新,重置状态进而更新
|
|
95
|
+
setReturnValue(undefined);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}, [returnValue, props.onInput, props.onChange]);
|
|
99
|
+
const onFocus = React.useCallback(() => {
|
|
100
|
+
const { onFocus = noop } = props;
|
|
101
|
+
onFocus({
|
|
102
|
+
target: { value: tmpValue.current || '' },
|
|
103
|
+
detail: { value: tmpValue.current || '' }
|
|
104
|
+
});
|
|
105
|
+
}, [returnValue, props.onFocus]);
|
|
106
|
+
const onBlur = React.useCallback(() => {
|
|
107
|
+
const { onBlur = noop } = props;
|
|
108
|
+
onBlur({
|
|
109
|
+
target: { value: tmpValue.current || '' },
|
|
110
|
+
detail: { value: tmpValue.current || '' }
|
|
111
|
+
});
|
|
112
|
+
}, [props.onBlur]);
|
|
113
|
+
/**
|
|
114
|
+
* Callback that is called when a key is pressed.
|
|
115
|
+
* This will be called with `{ nativeEvent: { key: keyValue } }`
|
|
116
|
+
* where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
|
|
117
|
+
* the typed-in character otherwise including `' '` for space.
|
|
118
|
+
* Fires before `onChange` callbacks.
|
|
119
|
+
*/
|
|
120
|
+
const onKeyPress = React.useCallback((event) => {
|
|
121
|
+
const { onKeyDown = noop, onConfirm = noop } = props;
|
|
122
|
+
const keyValue = event.nativeEvent.key;
|
|
123
|
+
let which;
|
|
124
|
+
keyValue === 'Enter' && (which = 13);
|
|
125
|
+
keyValue === 'Backspace' && (which = 8);
|
|
126
|
+
onKeyDown({
|
|
127
|
+
which,
|
|
128
|
+
target: { value: tmpValue.current || '' },
|
|
129
|
+
detail: { value: tmpValue.current || '' }
|
|
130
|
+
});
|
|
131
|
+
if (keyValue !== 'Enter')
|
|
132
|
+
return;
|
|
133
|
+
onConfirm({
|
|
134
|
+
target: { value: tmpValue.current || '' },
|
|
135
|
+
detail: { value: tmpValue.current || '' }
|
|
136
|
+
});
|
|
137
|
+
}, [props.onKeyDown, props.onConfirm]);
|
|
138
|
+
const onSubmitEditing = React.useCallback(() => {
|
|
139
|
+
const { onKeyDown = noop, onConfirm = noop } = props;
|
|
140
|
+
if (_multiline)
|
|
141
|
+
return;
|
|
142
|
+
onKeyDown({
|
|
143
|
+
which: 13,
|
|
144
|
+
target: { value: tmpValue.current || '' },
|
|
145
|
+
detail: { value: tmpValue.current || '' }
|
|
146
|
+
});
|
|
147
|
+
onConfirm({
|
|
148
|
+
target: { value: tmpValue.current || '' },
|
|
149
|
+
detail: { value: tmpValue.current || '' }
|
|
150
|
+
});
|
|
151
|
+
}, [_multiline, props.onKeyDown, props.onConfirm]);
|
|
152
|
+
const onContentSizeChange = React.useCallback((event) => {
|
|
153
|
+
const { width, height } = event.nativeEvent.contentSize;
|
|
154
|
+
// One of width and height may be 0.
|
|
155
|
+
if (width && height) {
|
|
156
|
+
const { _onLineChange = noop } = props;
|
|
157
|
+
if (!_multiline || !_autoHeight || height === _height)
|
|
158
|
+
return;
|
|
159
|
+
lineCount.current += height > _height ? 1 : -1;
|
|
160
|
+
_onLineChange({ detail: { height, lineCount: lineCount.current } });
|
|
161
|
+
setHeight(height);
|
|
162
|
+
}
|
|
163
|
+
}, [_height, _multiline, _autoHeight]);
|
|
164
|
+
const keyboardType = keyboardTypeMap[type];
|
|
165
|
+
const selection = (() => {
|
|
166
|
+
if (selectionStart >= 0 && selectionEnd >= 0) {
|
|
167
|
+
return { start: selectionStart, end: selectionEnd };
|
|
168
|
+
}
|
|
169
|
+
else if (typeof cursor === 'number') {
|
|
170
|
+
return { start: cursor, end: cursor };
|
|
171
|
+
}
|
|
172
|
+
})();
|
|
173
|
+
const defaultValue = (_a = props.defaultValue) !== null && _a !== void 0 ? _a : (type === 'number' && value ? value + '' : value);
|
|
174
|
+
// fix: https://reactnative.dev/docs/textinput#multiline
|
|
175
|
+
const textAlignVertical = _multiline ? 'top' : 'auto';
|
|
176
|
+
const placeholderTextColor = props.placeholderTextColor || ((_b = parseStyles(placeholderStyle)) === null || _b === void 0 ? void 0 : _b.color);
|
|
177
|
+
const inputProps = omit(props, [
|
|
178
|
+
'style',
|
|
179
|
+
'value',
|
|
180
|
+
'type',
|
|
181
|
+
'password',
|
|
182
|
+
'placeholder',
|
|
183
|
+
'disabled',
|
|
184
|
+
'maxlength',
|
|
185
|
+
'confirmType',
|
|
186
|
+
'confirmHold',
|
|
187
|
+
'cursor',
|
|
188
|
+
'selectionStart',
|
|
189
|
+
'selectionEnd',
|
|
190
|
+
'onInput',
|
|
191
|
+
'onFocus',
|
|
192
|
+
'onBlur',
|
|
193
|
+
'onKeyDown',
|
|
194
|
+
'onConfirm',
|
|
195
|
+
'_multiline',
|
|
196
|
+
'_autoHeight',
|
|
197
|
+
'_onLineChange',
|
|
198
|
+
'placeholderStyle',
|
|
199
|
+
'placeholderTextColor',
|
|
200
|
+
]);
|
|
201
|
+
return (React.createElement(TextInput, Object.assign({}, inputProps, { ref: inputRef, defaultValue: defaultValue, keyboardType: keyboardType, secureTextEntry: !!password, placeholder: placeholder, editable: !disabled, maxLength: maxlength === -1 ? undefined : maxlength,
|
|
202
|
+
// returnKeyLabel={confirmType}
|
|
203
|
+
returnKeyType: confirmType, blurOnSubmit: !_multiline && !confirmHold, autoFocus: !!autoFocus || !!focus, selection: selection, onChangeText: onChangeText, value: returnValue, onFocus: onFocus, onBlur: onBlur, onKeyPress: onKeyPress, onSubmitEditing: onSubmitEditing, multiline: !!_multiline, textAlignVertical: textAlignVertical, onContentSizeChange: onContentSizeChange, underlineColorAndroid: "rgba(0,0,0,0)", placeholderTextColor: placeholderTextColor, style: [
|
|
204
|
+
{
|
|
205
|
+
padding: 0
|
|
206
|
+
},
|
|
207
|
+
style,
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
_multiline && _autoHeight && { height: Math.max((style === null || style === void 0 ? void 0 : style.minHeight) || 35, _height) }
|
|
210
|
+
] })));
|
|
211
|
+
};
|
|
212
|
+
_Input.defaultProps = defaultProps;
|
|
213
|
+
_Input.displayName = '_Input';
|
|
214
|
+
export default _Input;
|
|
215
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Input/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/Label/PropsType.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ✘ for
|
|
3
|
+
*/
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import View from '../View';
|
|
6
|
+
class _Label extends React.Component {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.hadFoundValidWidget = false;
|
|
10
|
+
this.$validWidget = null;
|
|
11
|
+
this.findValidWidget = (children) => {
|
|
12
|
+
if (this.hadFoundValidWidget)
|
|
13
|
+
return children;
|
|
14
|
+
return React.Children.toArray(children).map((child) => {
|
|
15
|
+
if (!child.type)
|
|
16
|
+
return child;
|
|
17
|
+
const childTypeName = child.type.displayName;
|
|
18
|
+
if (!this.hadFoundValidWidget &&
|
|
19
|
+
(childTypeName === '_Checkbox' ||
|
|
20
|
+
childTypeName === '_Button' ||
|
|
21
|
+
childTypeName === '_Radio' ||
|
|
22
|
+
childTypeName === '_Switch')) {
|
|
23
|
+
this.hadFoundValidWidget = true;
|
|
24
|
+
return React.cloneElement(child, Object.assign(Object.assign({}, child.props), { ref: (vw) => {
|
|
25
|
+
this.$validWidget = vw;
|
|
26
|
+
} }), child.props.children);
|
|
27
|
+
}
|
|
28
|
+
return React.cloneElement(child, Object.assign({}, child.props), this.findValidWidget(child.props.children));
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
this.onPress = () => {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
this.$validWidget && ((_b = (_a = this.$validWidget)._simulateNativePress) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
render() {
|
|
37
|
+
const { children, style } = this.props;
|
|
38
|
+
const mapChildren = this.findValidWidget(children);
|
|
39
|
+
// Prepare for next rerender
|
|
40
|
+
this.hadFoundValidWidget = false;
|
|
41
|
+
return (React.createElement(View, { onClick: this.onPress, style: style }, mapChildren));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export default _Label;
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Label/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B,MAAM,MAAO,SAAQ,KAAK,CAAC,SAAqB;IAAhD;;QACE,wBAAmB,GAAG,KAAK,CAAA;QAC3B,iBAAY,GAAQ,IAAI,CAAA;QAExB,oBAAe,GAAG,CAAC,QAAyB,EAAmB,EAAE;YAC/D,IAAI,IAAI,CAAC,mBAAmB;gBAAE,OAAO,QAAQ,CAAA;YAE7C,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;gBACzD,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,OAAO,KAAK,CAAA;gBAE7B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;gBAC5C,IACE,CAAC,IAAI,CAAC,mBAAmB;oBACzB,CAAC,aAAa,KAAK,WAAW;wBAC5B,aAAa,KAAK,SAAS;wBAC3B,aAAa,KAAK,QAAQ;wBAC1B,aAAa,KAAK,SAAS,CAAC,EAC9B,CAAC;oBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;oBAC/B,OAAO,KAAK,CAAC,YAAY,CACvB,KAAK,kCAEA,KAAK,CAAC,KAAK,KACd,GAAG,EAAE,CAAC,EAAmB,EAAE,EAAE;4BAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;wBACxB,CAAC,KAEH,KAAK,CAAC,KAAK,CAAC,QAAQ,CACrB,CAAA;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,oBAAO,KAAK,CAAC,KAAK,GAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;YAClG,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,YAAO,GAAG,GAAS,EAAE;;YACnB,IAAI,CAAC,YAAY,KAAI,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,oBAAoB,kDAAI,CAAA,CAAA;QACjE,CAAC,CAAA;IAkBH,CAAC;IAhBC,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAClD,4BAA4B;QAC5B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;QAEhC,OAAO,CACL,oBAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,KAAK,IAEX,WAAW,CACP,CACR,CAAA;IACH,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 地图组件【EXPERIMENTAL】
|
|
3
|
+
*
|
|
4
|
+
* 安卓和 iOS 统一用谷歌地图
|
|
5
|
+
*
|
|
6
|
+
* @see https://developers.weixin.qq.com/miniprogram/dev/component/map.html
|
|
7
|
+
* @see https://docs.expo.io/versions/v27.0.0/sdk/map-view
|
|
8
|
+
* @see https://github.com/react-community/react-native-maps
|
|
9
|
+
*
|
|
10
|
+
* 颜色并不支持8位十六进制
|
|
11
|
+
*
|
|
12
|
+
* ✔ longitude
|
|
13
|
+
* ✔ latitude
|
|
14
|
+
* ✘ scale
|
|
15
|
+
* ✔ markers (部分支持)
|
|
16
|
+
* ✔ polyline (部分属性支持)
|
|
17
|
+
* ✔ polygons (不支持 zIndex)
|
|
18
|
+
* ✔ circles
|
|
19
|
+
* ✘ includePoints
|
|
20
|
+
* ✔ showLocation
|
|
21
|
+
* ✘ subkey
|
|
22
|
+
* ✘ enable3D
|
|
23
|
+
* ✔ showCompass
|
|
24
|
+
* ✘ enableOverlooking
|
|
25
|
+
* ✔ enableZoom
|
|
26
|
+
* ✔ enableScroll
|
|
27
|
+
* ✔ enableRotate
|
|
28
|
+
* ✔ onMarkerClick (onMarkerTap)
|
|
29
|
+
* ✔ onCalloutClick (onCalloutTap)
|
|
30
|
+
* ✘ onControlClick (onControlTap)
|
|
31
|
+
* ✔ onRegionChange (不支持 causedBy)
|
|
32
|
+
* ✔ onClick (onTap)
|
|
33
|
+
* ✔ onUpdated
|
|
34
|
+
* ✔ onPoiClick (onPoiTap)
|
|
35
|
+
*/
|
|
36
|
+
import * as React from 'react';
|
|
37
|
+
import { Dimensions, Text, View } from 'react-native';
|
|
38
|
+
// @ts-ignore // The type definitions for MapView have not been created.
|
|
39
|
+
import MapView, { Callout, Circle, Marker, Polygon, Polyline } from 'react-native-maps';
|
|
40
|
+
import { noop } from '../../utils';
|
|
41
|
+
const { width, height } = Dimensions.get('window');
|
|
42
|
+
const ASPECT_RATIO = width / height;
|
|
43
|
+
const LATITUDE_DELTA = 0.0922;
|
|
44
|
+
const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;
|
|
45
|
+
class _Map extends React.Component {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
this.state = {
|
|
49
|
+
networkState: ''
|
|
50
|
+
};
|
|
51
|
+
this._onRegionChange = () => {
|
|
52
|
+
const { onRegionChange } = this.props;
|
|
53
|
+
onRegionChange && onRegionChange({
|
|
54
|
+
type: 'begin',
|
|
55
|
+
timeStamp: Date.now()
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
this._onRegionChangeComplete = () => {
|
|
59
|
+
const { onRegionChange } = this.props;
|
|
60
|
+
onRegionChange && onRegionChange({
|
|
61
|
+
type: 'end',
|
|
62
|
+
timeStamp: Date.now()
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
this._onClick = (e) => {
|
|
66
|
+
const { onClick } = this.props;
|
|
67
|
+
onClick && onClick(e.nativeEvent.coordinate);
|
|
68
|
+
};
|
|
69
|
+
this._onMapReady = () => {
|
|
70
|
+
const { onUpdated } = this.props;
|
|
71
|
+
onUpdated && onUpdated();
|
|
72
|
+
};
|
|
73
|
+
this._onPoiClick = () => {
|
|
74
|
+
const { onPoiClick } = this.props;
|
|
75
|
+
onPoiClick && onPoiClick();
|
|
76
|
+
};
|
|
77
|
+
this.getCallout = (marker) => {
|
|
78
|
+
const { onCalloutClick } = this.props;
|
|
79
|
+
const { id, callout } = marker;
|
|
80
|
+
if (!callout)
|
|
81
|
+
return null;
|
|
82
|
+
return (React.createElement(Callout, { onPress: () => {
|
|
83
|
+
onCalloutClick && onCalloutClick(id);
|
|
84
|
+
} },
|
|
85
|
+
React.createElement(View, { style: {
|
|
86
|
+
borderRadius: callout.borderRadius,
|
|
87
|
+
borderWidth: callout.borderWidth,
|
|
88
|
+
borderColor: callout.borderColor,
|
|
89
|
+
backgroundColor: callout.bgColor,
|
|
90
|
+
padding: callout.padding
|
|
91
|
+
} },
|
|
92
|
+
React.createElement(Text, { style: {
|
|
93
|
+
fontSize: callout.fontSize,
|
|
94
|
+
color: callout.color,
|
|
95
|
+
textAlign: callout.textAlign
|
|
96
|
+
} }, callout.content))));
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
render() {
|
|
100
|
+
const { latitude, longitude, markers, polyline, polygons, circles, showLocation, showCompass, enableZoom, enableScroll, enableRotate, onMarkerClick } = this.props;
|
|
101
|
+
return (React.createElement(MapView, { style: { flex: 1 },
|
|
102
|
+
// provider={MapView.PROVIDER_GOOGLE}
|
|
103
|
+
initialRegion: {
|
|
104
|
+
latitude,
|
|
105
|
+
longitude,
|
|
106
|
+
latitudeDelta: LATITUDE_DELTA,
|
|
107
|
+
longitudeDelta: LONGITUDE_DELTA
|
|
108
|
+
}, region: {
|
|
109
|
+
latitude,
|
|
110
|
+
longitude,
|
|
111
|
+
latitudeDelta: LATITUDE_DELTA,
|
|
112
|
+
longitudeDelta: LONGITUDE_DELTA
|
|
113
|
+
}, minZoomLevel: 5, maxZoomLevel: 18, showsUserLocation: showLocation, showsCompass: showCompass, zoomEnabled: enableZoom, scrollEnabled: enableScroll, rotateEnabled: enableRotate, onRegionChange: this._onRegionChange, onRegionChangeComplete: this._onRegionChangeComplete, onPress: this._onClick, onMapReady: this._onMapReady, onPoiClick: this._onPoiClick },
|
|
114
|
+
(markers || []).map((marker) => (React.createElement(Marker, { key: marker.id, coordinate: {
|
|
115
|
+
latitude: marker.latitude,
|
|
116
|
+
longitude: marker.longitude
|
|
117
|
+
}, title: marker.title, image: { uri: marker.iconPath }, rotation: marker.rotate, opacity: marker.alpha, anchor: marker.anchor, onPress: () => {
|
|
118
|
+
onMarkerClick && onMarkerClick(marker.id);
|
|
119
|
+
} }, this.getCallout(marker)))),
|
|
120
|
+
(polyline || []).map((p, index) => (React.createElement(Polyline, { key: `polyline_${index}`, coordinates: p.points, strokeColor: p.color, strokeWidth: p.width }))),
|
|
121
|
+
(polygons || []).map((p, index) => (React.createElement(Polygon, { key: `polygon_${index}`, coordinates: p.points, strokeColor: p.strokeColor, strokeWidth: p.strokeWidth, fillColor: p.fillColor }))),
|
|
122
|
+
(circles || []).map((c, index) => (React.createElement(Circle, { key: `circle_${index}`, center: { latitude: c.latitude, longitude: c.longitude }, strokeColor: c.color, fillColor: c.fillColor, radius: c.radius, strokeWidth: c.strokeWidth })))));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
_Map.defaultProps = {
|
|
126
|
+
longitude: 0,
|
|
127
|
+
latitude: 0,
|
|
128
|
+
scale: 16,
|
|
129
|
+
markers: [],
|
|
130
|
+
polyline: [],
|
|
131
|
+
polygons: [],
|
|
132
|
+
circles: [],
|
|
133
|
+
includePoints: [],
|
|
134
|
+
subkey: '',
|
|
135
|
+
enableZoom: true,
|
|
136
|
+
enableScroll: true,
|
|
137
|
+
onMarkerClick: noop,
|
|
138
|
+
onCalloutClick: noop,
|
|
139
|
+
onControlClick: noop,
|
|
140
|
+
onRegionChange: noop,
|
|
141
|
+
onClick: noop,
|
|
142
|
+
onUpdated: noop,
|
|
143
|
+
onPoiClick: noop
|
|
144
|
+
};
|
|
145
|
+
export default _Map;
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Map/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/MovableArea/PropsType.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
class _MovableArea extends React.Component {
|
|
4
|
+
constructor(props) {
|
|
5
|
+
super(props);
|
|
6
|
+
this._onLayout = (event) => {
|
|
7
|
+
const { width, height } = event.nativeEvent.layout;
|
|
8
|
+
this.setState({
|
|
9
|
+
width,
|
|
10
|
+
height,
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
this.state = {
|
|
14
|
+
width: this.props.width || 100,
|
|
15
|
+
height: this.props.height || 100,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
render() {
|
|
19
|
+
const { style } = this.props;
|
|
20
|
+
const { width, height } = this.state;
|
|
21
|
+
return React.createElement(View, { style: [{ height, width, overflow: 'hidden' }, style], testID: 'moveableArea', onLayout: this._onLayout }, React.cloneElement(this.props.children, { layout: { width, height } }));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
_MovableArea.defaultProps = {};
|
|
25
|
+
export default _MovableArea;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MovableArea/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAqB,IAAI,EAAE,MAAM,cAAc,CAAA;AAItD,MAAM,YAAa,SAAQ,KAAK,CAAC,SAAgC;IAE/D,YAAY,KAAuB;QACjC,KAAK,CAAC,KAAK,CAAC,CAAA;QAOd,cAAS,GAAG,CAAC,KAAwB,EAAQ,EAAE;YAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAA;YAClD,IAAI,CAAC,QAAQ,CAAC;gBACZ,KAAK;gBACL,MAAM;aACP,CAAC,CAAA;QACJ,CAAC,CAAA;QAZC,IAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG;YAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG;SACjC,CAAA;IACH,CAAC;IAUD,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACpC,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAC,cAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,IAC/G,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAClE,CAAA;IACT,CAAC;;AAvBM,yBAAY,GAAG,EAAE,AAAL,CAAK;AA0B1B,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsType.js","sourceRoot":"","sources":["../../../src/components/MovableView/PropsType.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Animated, PanResponder } from 'react-native';
|
|
3
|
+
import View from '../View';
|
|
4
|
+
class _MovableView extends React.Component {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super(props);
|
|
7
|
+
this.$ref = React.createRef();
|
|
8
|
+
this.createPanResponder = () => {
|
|
9
|
+
this.panResponder = PanResponder.create({
|
|
10
|
+
onMoveShouldSetPanResponder: () => !this.props.disabled,
|
|
11
|
+
onMoveShouldSetPanResponderCapture: () => !this.props.disabled,
|
|
12
|
+
onPanResponderGrant: () => {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
const { pan } = this.state;
|
|
15
|
+
const { direction } = this.props;
|
|
16
|
+
pan.setOffset({
|
|
17
|
+
x: direction === 'all' || direction === 'horizontal' ? pan.x._value : 0,
|
|
18
|
+
y: direction === 'all' || direction === 'vertical' ? pan.y._value : 0
|
|
19
|
+
});
|
|
20
|
+
(_b = (_a = this.props).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
21
|
+
},
|
|
22
|
+
onPanResponderMove: (e, gestureState) => {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const { pan } = this.state;
|
|
25
|
+
const { direction } = this.props;
|
|
26
|
+
Animated.event([
|
|
27
|
+
null,
|
|
28
|
+
{
|
|
29
|
+
dx: direction === 'all' || direction === 'horizontal' ? this.state.pan.x : new Animated.Value(0),
|
|
30
|
+
dy: direction === 'all' || direction === 'vertical' ? this.state.pan.y : new Animated.Value(0),
|
|
31
|
+
}
|
|
32
|
+
], {
|
|
33
|
+
useNativeDriver: false
|
|
34
|
+
})(e, gestureState);
|
|
35
|
+
(_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
36
|
+
x: pan.x,
|
|
37
|
+
y: pan.y,
|
|
38
|
+
source: 'touch'
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
onPanResponderRelease: () => {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const { pan } = this.state;
|
|
44
|
+
const { layout = { width: 0, height: 0 } } = this.props;
|
|
45
|
+
this.state.pan.flattenOffset();
|
|
46
|
+
const x = pan.x._value > layout.width - this.W ? layout.width - this.W : pan.x._value < 0 ? 0 : pan.x._value;
|
|
47
|
+
const y = pan.y._value > layout.height - this.H ? layout.height - this.H : pan.y._value < 0 ? 0 : pan.y._value;
|
|
48
|
+
const needChange = x !== pan.x._value || y !== pan.y._value;
|
|
49
|
+
Animated.spring(this.state.pan, {
|
|
50
|
+
toValue: { x: x, y: y },
|
|
51
|
+
useNativeDriver: false
|
|
52
|
+
}).start(() => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
if (needChange) {
|
|
55
|
+
(_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
56
|
+
x,
|
|
57
|
+
y,
|
|
58
|
+
source: 'friction'
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
(_b = (_a = this.props).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
this._onLayout = (event) => {
|
|
67
|
+
const { width, height } = event.nativeEvent.layout;
|
|
68
|
+
this.W = width;
|
|
69
|
+
this.H = height;
|
|
70
|
+
};
|
|
71
|
+
this.state = {
|
|
72
|
+
pan: new Animated.ValueXY(),
|
|
73
|
+
xOffset: 0,
|
|
74
|
+
yOffset: 0
|
|
75
|
+
};
|
|
76
|
+
const { x = 0, y = 0 } = props;
|
|
77
|
+
Animated.spring(this.state.pan, {
|
|
78
|
+
toValue: { x: Number(x), y: Number(y) },
|
|
79
|
+
useNativeDriver: false
|
|
80
|
+
}).start();
|
|
81
|
+
this.createPanResponder();
|
|
82
|
+
}
|
|
83
|
+
componentDidMount() {
|
|
84
|
+
const { pan } = this.state;
|
|
85
|
+
const { onMove } = this.props;
|
|
86
|
+
if (typeof onMove === 'function')
|
|
87
|
+
pan.addListener((values) => onMove(values));
|
|
88
|
+
}
|
|
89
|
+
componentWillUnmount() {
|
|
90
|
+
const { pan } = this.state;
|
|
91
|
+
pan.removeAllListeners();
|
|
92
|
+
}
|
|
93
|
+
render() {
|
|
94
|
+
const { style } = this.props;
|
|
95
|
+
return (React.createElement(Animated.View, Object.assign({ testID: "movableView", ref: this.$ref, onLayout: this._onLayout }, this.panResponder.panHandlers, { style: [{
|
|
96
|
+
alignSelf: 'flex-start'
|
|
97
|
+
}, style, this.state.pan.getLayout()] }),
|
|
98
|
+
React.createElement(View, null, this.props.children)));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
_MovableView.defaultProps = {
|
|
102
|
+
direction: 'none',
|
|
103
|
+
disabled: false,
|
|
104
|
+
animation: true
|
|
105
|
+
};
|
|
106
|
+
export default _MovableView;
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MovableView/index.tsx"],"names":[],"mappings":"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"}
|