@mpxjs/api-proxy 2.9.70-alpha.0 → 2.9.70
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/@types/index.d.ts +13 -0
- package/LICENSE +433 -0
- package/package.json +4 -3
- package/src/common/js/index.js +0 -1
- package/src/common/js/promisify.js +11 -3
- package/src/common/js/utils.js +1 -11
- package/src/platform/api/action-sheet/rnActionSheet.jsx +67 -81
- package/src/platform/api/app/index.web.js +26 -11
- package/src/platform/api/create-intersection-observer/rnIntersectionObserver.js +2 -2
- package/src/platform/api/image/index.ali.js +4 -1
- package/src/platform/api/image/index.ios.js +45 -0
- package/src/platform/api/image/index.js +4 -1
- package/src/platform/api/image/index.web.js +46 -2
- package/src/platform/api/modal/rnModal.jsx +7 -8
- package/src/platform/api/request/index.web.js +2 -3
- package/src/platform/api/set-navigation-bar/index.ali.js +6 -1
- package/src/platform/api/set-navigation-bar/index.ios.js +6 -3
- package/src/platform/api/set-navigation-bar/index.js +4 -1
- package/src/platform/api/set-navigation-bar/index.web.js +5 -2
- package/src/platform/api/setting/index.js +19 -0
- package/src/platform/api/system/index.ios.js +84 -1
- package/src/platform/api/system/rnSystem.js +35 -72
- package/src/platform/api/toast/rnToast.jsx +23 -16
- package/src/platform/index.js +4 -1
- package/src/common/js/ToPromise.js +0 -25
- package/src/common/stylus/Modal.tenon.styl +0 -42
- package/src/common/stylus/Toast.tenon.styl +0 -56
- package/src/index.tenon.js +0 -27
- package/src/platform/api/animation/animation.tenon.js +0 -225
- package/src/platform/api/animation/index.tenon.js +0 -89
- package/src/platform/api/event-channel/index.tenon.js +0 -52
- package/src/platform/api/modal/index.tenon.js +0 -12
- package/src/platform/api/modal/tenonModal.js +0 -154
- package/src/platform/api/next-tick/index.tenon.js +0 -11
- package/src/platform/api/request/index.tenon.js +0 -85
- package/src/platform/api/request/tenonUtil.js +0 -0
- package/src/platform/api/route/index.tenon.js +0 -121
- package/src/platform/api/set-navigation-bar/index.tenon.js +0 -17
- package/src/platform/api/socket/SocketTask.tenon.js +0 -105
- package/src/platform/api/socket/index.tenon.js +0 -48
- package/src/platform/api/storage/index.tenon.js +0 -144
- package/src/platform/api/system/index.tenon.js +0 -52
- package/src/platform/api/system/rnWindowInfo.js +0 -42
- package/src/platform/api/toast/Toast.tenon.js +0 -101
- package/src/platform/api/toast/index.tenon.js +0 -36
|
@@ -1,77 +1,43 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { getWindowInfo } from './rnWindowInfo'
|
|
1
|
+
import { PixelRatio, Dimensions } from 'react-native'
|
|
2
|
+
import { initialWindowMetrics } from 'react-native-safe-area-context'
|
|
3
|
+
import { getFocusedNavigation } from '../../../common/js'
|
|
5
4
|
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
'language',
|
|
21
|
-
'version',
|
|
22
|
-
'SDKVersion',
|
|
23
|
-
'benchmarkLevel',
|
|
24
|
-
'albumAuthorized',
|
|
25
|
-
'cameraAuthorized',
|
|
26
|
-
'locationAuthorized',
|
|
27
|
-
'microphoneAuthorized',
|
|
28
|
-
'notificationAuthorized',
|
|
29
|
-
'phoneCalendarAuthorized',
|
|
30
|
-
'host',
|
|
31
|
-
'enableDebug',
|
|
32
|
-
'notificationAlertAuthorized',
|
|
33
|
-
'notificationBadgeAuthorized',
|
|
34
|
-
'notificationSoundAuthorized',
|
|
35
|
-
'bluetoothEnabled',
|
|
36
|
-
'locationEnabled',
|
|
37
|
-
'wifiEnabled',
|
|
38
|
-
'locationReducedAccuracy',
|
|
39
|
-
'theme'
|
|
40
|
-
])
|
|
41
|
-
return result
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const getSystemInfo = function (options = {}) {
|
|
45
|
-
const { success, fail, complete } = options
|
|
5
|
+
const getWindowInfo = function () {
|
|
6
|
+
const dimensionsScreen = Dimensions.get('screen')
|
|
7
|
+
const navigation = getFocusedNavigation() || {}
|
|
8
|
+
const initialWindowMetricsInset = initialWindowMetrics?.insets || {}
|
|
9
|
+
const navigationInsets = navigation.insets || {}
|
|
10
|
+
const insets = Object.assign(initialWindowMetricsInset, navigationInsets)
|
|
11
|
+
let safeArea = {}
|
|
12
|
+
const { top = 0, bottom = 0, left = 0, right = 0 } = insets
|
|
13
|
+
const screenHeight = __mpx_mode__ === 'ios' ? dimensionsScreen.height : dimensionsScreen.height - bottom // 解决安卓开启屏幕内三建导航安卓把安全区计算进去后产生的影响
|
|
14
|
+
const screenWidth = __mpx_mode__ === 'ios' ? dimensionsScreen.width : dimensionsScreen.width - right
|
|
15
|
+
const layout = navigation.layout || {}
|
|
16
|
+
const layoutHeight = layout.height || 0
|
|
17
|
+
const layoutWidth = layout.width || 0
|
|
18
|
+
const windowHeight = layoutHeight || screenHeight
|
|
46
19
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
errMsg: `getSystemInfo:fail ${err}`
|
|
20
|
+
safeArea = {
|
|
21
|
+
left,
|
|
22
|
+
right: screenWidth - right,
|
|
23
|
+
top,
|
|
24
|
+
bottom: screenHeight - bottom,
|
|
25
|
+
height: screenHeight - top - bottom,
|
|
26
|
+
width: screenWidth - left - right
|
|
55
27
|
}
|
|
56
|
-
|
|
28
|
+
} catch (error) {
|
|
57
29
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
30
|
+
const result = {
|
|
31
|
+
pixelRatio: PixelRatio.get(),
|
|
32
|
+
windowWidth: layoutWidth || screenWidth,
|
|
33
|
+
windowHeight, // 取不到layout的时候有个兜底
|
|
34
|
+
screenWidth: screenWidth,
|
|
35
|
+
screenHeight: screenHeight,
|
|
36
|
+
screenTop: screenHeight - windowHeight,
|
|
37
|
+
statusBarHeight: safeArea.top,
|
|
38
|
+
safeArea
|
|
65
39
|
}
|
|
66
|
-
|
|
67
|
-
Object.assign(deviceInfo, {
|
|
68
|
-
brand: DeviceInfo.getBrand(),
|
|
69
|
-
model: DeviceInfo.getModel(),
|
|
70
|
-
system: `${DeviceInfo.getSystemName()} ${DeviceInfo.getSystemVersion()}`,
|
|
71
|
-
platform: DeviceInfo.isEmulatorSync() ? 'emulator' : DeviceInfo.getSystemName(),
|
|
72
|
-
memorySize: DeviceInfo.getTotalMemorySync() / (1024 * 1024)
|
|
73
|
-
})
|
|
74
|
-
return deviceInfo
|
|
40
|
+
return result
|
|
75
41
|
}
|
|
76
42
|
|
|
77
43
|
const getLaunchOptionsSync = function () {
|
|
@@ -90,9 +56,6 @@ const getEnterOptionsSync = function () {
|
|
|
90
56
|
}
|
|
91
57
|
|
|
92
58
|
export {
|
|
93
|
-
getSystemInfo,
|
|
94
|
-
getSystemInfoSync,
|
|
95
|
-
getDeviceInfo,
|
|
96
59
|
getWindowInfo,
|
|
97
60
|
getLaunchOptionsSync,
|
|
98
61
|
getEnterOptionsSync
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { View, Text, Image, StyleSheet, ActivityIndicator } from 'react-native'
|
|
1
|
+
import { View, Text, Image, StyleSheet, ActivityIndicator, Dimensions } from 'react-native'
|
|
2
2
|
import { successHandle, failHandle } from '../../../common/js'
|
|
3
3
|
import { Portal } from '@ant-design/react-native'
|
|
4
4
|
|
|
5
5
|
let toastKey
|
|
6
6
|
let isLoadingShow
|
|
7
|
+
const dimensionsScreen = Dimensions.get('screen')
|
|
8
|
+
const screenHeight = dimensionsScreen.height
|
|
9
|
+
const contentTop = parseInt(screenHeight * 0.35)
|
|
7
10
|
let tId // show duration 计时id
|
|
8
11
|
const styles = StyleSheet.create({
|
|
9
12
|
toastContent: {
|
|
10
|
-
minWdth: 150,
|
|
11
13
|
maxWidth: '60%',
|
|
12
14
|
backgroundColor: 'rgba(20, 20, 20, 0.7)',
|
|
13
15
|
paddingTop: 15,
|
|
@@ -18,7 +20,8 @@ const styles = StyleSheet.create({
|
|
|
18
20
|
display: 'flex',
|
|
19
21
|
flexDirection: 'column',
|
|
20
22
|
justifyContent: 'center',
|
|
21
|
-
alignItems: 'center'
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
marginTop: contentTop // 小程序里面展示偏上一点
|
|
22
25
|
},
|
|
23
26
|
toastWrap: {
|
|
24
27
|
left: 0,
|
|
@@ -28,25 +31,29 @@ const styles = StyleSheet.create({
|
|
|
28
31
|
zIndex: 10000,
|
|
29
32
|
position: "absolute",
|
|
30
33
|
display: 'flex',
|
|
31
|
-
justifyContent: 'center',
|
|
32
34
|
alignItems: 'center'
|
|
33
35
|
},
|
|
36
|
+
toastHasIcon: {
|
|
37
|
+
height: 110,
|
|
38
|
+
width: 120
|
|
39
|
+
},
|
|
34
40
|
toastImg: {
|
|
35
41
|
width: 40,
|
|
36
42
|
height: 40,
|
|
37
43
|
marginLeft: 'auto',
|
|
38
|
-
marginRight: 'auto'
|
|
39
|
-
marginBottom: 10
|
|
44
|
+
marginRight: 'auto'
|
|
40
45
|
},
|
|
41
46
|
toastText: {
|
|
42
47
|
textAlign: 'center',
|
|
43
48
|
color: '#ffffff',
|
|
44
|
-
fontSize:
|
|
49
|
+
fontSize: 12,
|
|
45
50
|
lineHeight: 18,
|
|
46
51
|
height: 18,
|
|
47
|
-
overflow: 'hidden'
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
marginTop: 10
|
|
48
54
|
}
|
|
49
55
|
})
|
|
56
|
+
|
|
50
57
|
function showToast (options = {}) {
|
|
51
58
|
const { title, icon = 'success', image, duration = 1500, mask = false, success, fail, complete, isLoading } = options
|
|
52
59
|
let ToastView
|
|
@@ -64,29 +71,29 @@ function showToast (options = {}) {
|
|
|
64
71
|
tId = null
|
|
65
72
|
if (image || icon === 'success' || icon === 'error') {
|
|
66
73
|
ToastView = <View style={styles.toastWrap} pointerEvents={pointerEvents}>
|
|
67
|
-
<View style={styles.toastContent}>
|
|
74
|
+
<View style={[styles.toastContent, styles.toastHasIcon]}>
|
|
68
75
|
<Image style={ styles.toastImg } source={{uri: image || iconImg[icon]}}></Image>
|
|
69
|
-
<Text style={styles.toastText}>{title}</Text>
|
|
76
|
+
{ title ? <Text style={styles.toastText}>{title}</Text> : null }
|
|
70
77
|
</View>
|
|
71
78
|
</View>
|
|
72
79
|
} else if (icon === 'loading') {
|
|
73
80
|
ToastView = <View style={styles.toastWrap} pointerEvents={pointerEvents}>
|
|
74
|
-
<View style={styles.toastContent}>
|
|
81
|
+
<View style={[styles.toastContent, styles.toastHasIcon]}>
|
|
75
82
|
<ActivityIndicator
|
|
76
83
|
animating
|
|
77
|
-
style={{ marginBottom: 10 }}
|
|
78
84
|
size='small'
|
|
79
85
|
color='#eee'
|
|
80
86
|
/>
|
|
81
|
-
<Text style={styles.toastText}>{title}</Text>
|
|
87
|
+
{ title ? <Text style={styles.toastText}>{title}</Text> : null }
|
|
82
88
|
</View>
|
|
83
89
|
</View>
|
|
84
90
|
} else {
|
|
85
91
|
ToastView = <View style={styles.toastWrap} pointerEvents={pointerEvents}>
|
|
86
92
|
<View style={styles.toastContent}>
|
|
87
|
-
<Text numberOfLines={2} style={{ ...styles.toastText, ...(icon === 'none' ? {
|
|
88
|
-
height:
|
|
89
|
-
|
|
93
|
+
{ title ? <Text numberOfLines={2} style={{ ...styles.toastText, ...(icon === 'none' ? {
|
|
94
|
+
height: 'auto',
|
|
95
|
+
marginTop: 0
|
|
96
|
+
} : {}) }}>{title}</Text> : null }
|
|
90
97
|
</View>
|
|
91
98
|
</View>
|
|
92
99
|
}
|
package/src/platform/index.js
CHANGED
|
@@ -43,7 +43,7 @@ export * from './api/file'
|
|
|
43
43
|
// getUserInfo
|
|
44
44
|
export * from './api/get-user-info'
|
|
45
45
|
|
|
46
|
-
// previewImage, compressImage
|
|
46
|
+
// previewImage, compressImage, getImageInfo
|
|
47
47
|
export * from './api/image'
|
|
48
48
|
|
|
49
49
|
// login
|
|
@@ -116,3 +116,6 @@ export * from './api/vibrate'
|
|
|
116
116
|
|
|
117
117
|
// onKeyboardHeightChange, offKeyboardHeightChange, hideKeyboard
|
|
118
118
|
export * from './api/keyboard'
|
|
119
|
+
|
|
120
|
+
// getSetting, openSetting, enableAlertBeforeUnload, disableAlertBeforeUnload, getMenuButtonBoundingClientRect
|
|
121
|
+
export * from './api/setting'
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
class ToPromise {
|
|
2
|
-
constructor () {
|
|
3
|
-
this._resolve = null
|
|
4
|
-
this._reject = null
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
toPromiseInitPromise () {
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
this._resolve = resolve
|
|
10
|
-
this._reject = reject
|
|
11
|
-
})
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
toPromiseResolve (res) {
|
|
15
|
-
this._resolve(res)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
toPromiseReject (err) {
|
|
19
|
-
this._reject(err)
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
ToPromise
|
|
25
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
.__mpx_modal_box__
|
|
2
|
-
width 80%
|
|
3
|
-
max-width 600hm
|
|
4
|
-
background #FFFFFF
|
|
5
|
-
overflow hidden
|
|
6
|
-
text-align center
|
|
7
|
-
padding-top 30hm
|
|
8
|
-
border-radius 15px
|
|
9
|
-
.__mpx_modal_title_view__
|
|
10
|
-
padding-left 20hm
|
|
11
|
-
padding-right 20hm
|
|
12
|
-
.__mpx_modal_title__
|
|
13
|
-
font-size 26hm
|
|
14
|
-
text-align center
|
|
15
|
-
color #000000
|
|
16
|
-
.__mpx_modal_content_view__
|
|
17
|
-
padding-top 10hm
|
|
18
|
-
padding-left 20hm
|
|
19
|
-
padding-right 20hm
|
|
20
|
-
.__mpx_modal_content__
|
|
21
|
-
font-size 24hm
|
|
22
|
-
color #808080
|
|
23
|
-
text-line-clamp 3
|
|
24
|
-
text-align center
|
|
25
|
-
line-spacing-multi 1.2
|
|
26
|
-
.__mpx_modal_btns__
|
|
27
|
-
display flex
|
|
28
|
-
height: 80hm
|
|
29
|
-
margin-top 25hm
|
|
30
|
-
border-top 1px solid rgba(0,0,0,0.2)
|
|
31
|
-
.__mpx_modal_cancel__
|
|
32
|
-
flex 1
|
|
33
|
-
font-size 26hm
|
|
34
|
-
text-align center
|
|
35
|
-
font-weight bold
|
|
36
|
-
.__mpx_modal_confirm__
|
|
37
|
-
flex 1
|
|
38
|
-
font-size 26hm
|
|
39
|
-
text-align center
|
|
40
|
-
font-weight bold
|
|
41
|
-
.__mpx_modal_hide__
|
|
42
|
-
display none
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
.__mpx_toast__
|
|
3
|
-
.__mpx_mask__
|
|
4
|
-
z-index 1000
|
|
5
|
-
top 0
|
|
6
|
-
right 0
|
|
7
|
-
left 0
|
|
8
|
-
bottom 0
|
|
9
|
-
display none
|
|
10
|
-
&.show
|
|
11
|
-
display block
|
|
12
|
-
.__mpx_toast_box__
|
|
13
|
-
// position: absolute
|
|
14
|
-
// top 50%
|
|
15
|
-
// left 50%
|
|
16
|
-
z-index 2000
|
|
17
|
-
box-sizing border-box
|
|
18
|
-
display flex
|
|
19
|
-
flex-direction column
|
|
20
|
-
justify-content center
|
|
21
|
-
width 200hm
|
|
22
|
-
overflow hidden
|
|
23
|
-
word-break normal
|
|
24
|
-
padding 30hm 12hm
|
|
25
|
-
border-radius 10hm
|
|
26
|
-
background rgba(20, 20, 20, 0.7)
|
|
27
|
-
.__mpx_toast_icon__
|
|
28
|
-
width 80hm
|
|
29
|
-
height 80hm
|
|
30
|
-
background-size 100%
|
|
31
|
-
background-color rgba(0,0,0,0)
|
|
32
|
-
background-repeat no-repeat
|
|
33
|
-
background-position-y center
|
|
34
|
-
margin 12hm auto
|
|
35
|
-
|
|
36
|
-
.__mpx_toast_title__
|
|
37
|
-
text-align center
|
|
38
|
-
line-height 1.6
|
|
39
|
-
font-size 24hm
|
|
40
|
-
color #fff
|
|
41
|
-
margin 0
|
|
42
|
-
overflow hidden
|
|
43
|
-
max-width 100%
|
|
44
|
-
text-overflow ellipsis
|
|
45
|
-
display -webkit-box
|
|
46
|
-
-webkit-line-clamp 2
|
|
47
|
-
-webkit-box-orient vertical
|
|
48
|
-
|
|
49
|
-
.__hide_icon
|
|
50
|
-
display none
|
|
51
|
-
height 0
|
|
52
|
-
margin 0
|
|
53
|
-
.__success_icon
|
|
54
|
-
background-image url("data:image/png;base64,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")
|
|
55
|
-
.__error_icon
|
|
56
|
-
background-image url("data:image/png;base64,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")
|
package/src/index.tenon.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as allApi from './platform/index'
|
|
2
|
-
import { EventChannel } from './platform/api/event-channel'
|
|
3
|
-
import { genFromMap } from './common/js'
|
|
4
|
-
|
|
5
|
-
export default function install (target) {
|
|
6
|
-
const fromMap = genFromMap()
|
|
7
|
-
|
|
8
|
-
global.EventChannel = new EventChannel()
|
|
9
|
-
|
|
10
|
-
Object.keys(allApi).forEach(api => {
|
|
11
|
-
target[api] = function (...args) {
|
|
12
|
-
if (args.length > 0) {
|
|
13
|
-
const from = args.pop()
|
|
14
|
-
if (typeof from !== 'string' || !fromMap[from]) {
|
|
15
|
-
args.push(from)
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return allApi[api].apply(target, args)
|
|
20
|
-
}
|
|
21
|
-
})
|
|
22
|
-
}
|
|
23
|
-
export function getProxy () {
|
|
24
|
-
const apiProxy = {}
|
|
25
|
-
install(apiProxy)
|
|
26
|
-
return apiProxy
|
|
27
|
-
}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { warn } from '../../../common/js'
|
|
2
|
-
class Animation {
|
|
3
|
-
constructor (options) {
|
|
4
|
-
this._actions = []
|
|
5
|
-
this._propMaps = {}
|
|
6
|
-
this._options = options
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// 处理size
|
|
10
|
-
_processSize (size) {
|
|
11
|
-
if (typeof size === 'number') {
|
|
12
|
-
return `${size}hm`
|
|
13
|
-
} else {
|
|
14
|
-
return size
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
_collectData (type, value) {
|
|
19
|
-
this._propMaps[type] = {
|
|
20
|
-
type: type,
|
|
21
|
-
value: value
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// 不支持
|
|
26
|
-
right (value) {
|
|
27
|
-
warn('不支持right方法')
|
|
28
|
-
return this
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// 不支持
|
|
32
|
-
left (value) {
|
|
33
|
-
warn('不支持left方法')
|
|
34
|
-
return this
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// 不支持
|
|
38
|
-
top (value) {
|
|
39
|
-
warn('不支持top方法')
|
|
40
|
-
return this
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// 不支持
|
|
44
|
-
bottom (value) {
|
|
45
|
-
warn('不支持bottom方法')
|
|
46
|
-
return this
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
width (value) {
|
|
50
|
-
this._collectData('width', value)
|
|
51
|
-
return this
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
height (value) {
|
|
55
|
-
this._collectData('height', value)
|
|
56
|
-
return this
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
opacity (value) {
|
|
60
|
-
this._collectData('opacity', parseFloat(value))
|
|
61
|
-
return this
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
backgroundColor (color) {
|
|
65
|
-
this._collectData('backgroundColor', color)
|
|
66
|
-
return this
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// 不支持
|
|
70
|
-
matrix (...value) {
|
|
71
|
-
warn('不支持matrix方法')
|
|
72
|
-
return this
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// 不支持
|
|
76
|
-
matrix3d (...value) {
|
|
77
|
-
warn('不支持matrix3d方法')
|
|
78
|
-
return this
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// 不支持
|
|
82
|
-
rotate (...value) {
|
|
83
|
-
warn('不支持rotate方法')
|
|
84
|
-
return this
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// 不支持
|
|
88
|
-
rotate3d (...value) {
|
|
89
|
-
warn('不支持rotate3d方法')
|
|
90
|
-
return this
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
rotateX (value) {
|
|
94
|
-
this._collectData('rotationX', `${parseFloat(value)}deg`)
|
|
95
|
-
return this
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
rotateY (value) {
|
|
99
|
-
this._collectData('rotationY', `${parseFloat(value)}deg`)
|
|
100
|
-
return this
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
rotateZ (value) {
|
|
104
|
-
this._collectData('rotationZ', `${parseFloat(value)}deg`)
|
|
105
|
-
return this
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
scale (...value) {
|
|
109
|
-
const [x, y = x] = value
|
|
110
|
-
this._collectData('scaleX', x)
|
|
111
|
-
this._collectData('scaleY', y)
|
|
112
|
-
return this
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// 不支持
|
|
116
|
-
scale3d (...value) {
|
|
117
|
-
warn('不支持scale3d方法')
|
|
118
|
-
return this
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
scaleX (value) {
|
|
122
|
-
this._collectData('scaleX', value)
|
|
123
|
-
return this
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
scaleY (value) {
|
|
127
|
-
this._collectData('scaleY', value)
|
|
128
|
-
return this
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// 不支持
|
|
132
|
-
scaleZ (value) {
|
|
133
|
-
warn('不支持scaleZ方法')
|
|
134
|
-
return this
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// 不支持
|
|
138
|
-
skew (...value) {
|
|
139
|
-
warn('不支持skew方法')
|
|
140
|
-
return this
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// 不支持
|
|
144
|
-
skewX (value) {
|
|
145
|
-
warn('不支持skewX方法')
|
|
146
|
-
return this
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// 不支持
|
|
150
|
-
skewY (value) {
|
|
151
|
-
warn('不支持skewY方法')
|
|
152
|
-
return this
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
translate (...value) {
|
|
156
|
-
const [x = 0, y = 0] = value
|
|
157
|
-
this._collectData('position', {
|
|
158
|
-
x: `${parseFloat(x)}hm`,
|
|
159
|
-
y: `${parseFloat(y)}hm`
|
|
160
|
-
})
|
|
161
|
-
return this
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// 不支持
|
|
165
|
-
translate3d (...value) {
|
|
166
|
-
warn('不支持translate3d方法')
|
|
167
|
-
return this
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
translateX (value) {
|
|
171
|
-
this._collectData('position', { x: `${parseFloat(value)}hm`, y: 0 })
|
|
172
|
-
return this
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
translateY (value) {
|
|
176
|
-
this._collectData('position', { x: `${parseFloat(value)}hm`, y: 0 })
|
|
177
|
-
return this
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// 不支持
|
|
181
|
-
translateZ (value) {
|
|
182
|
-
warn('不支持tranlateZ方法')
|
|
183
|
-
return this
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
step (opt) {
|
|
187
|
-
const option = {}
|
|
188
|
-
const animates = []
|
|
189
|
-
if (opt) {
|
|
190
|
-
Object.assign(option, this._options, opt)
|
|
191
|
-
} else {
|
|
192
|
-
Object.assign(option, this._options)
|
|
193
|
-
}
|
|
194
|
-
Object.keys(this._propMaps).forEach((item) => {
|
|
195
|
-
animates.push(this._propMaps[item])
|
|
196
|
-
})
|
|
197
|
-
// action
|
|
198
|
-
this._actions.push({
|
|
199
|
-
animates,
|
|
200
|
-
option
|
|
201
|
-
})
|
|
202
|
-
return this
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export () {
|
|
206
|
-
const actions = this._actions.slice(0)
|
|
207
|
-
this._actions.length = 0
|
|
208
|
-
// 一个action就是一个step
|
|
209
|
-
const steps = actions.map((v) => {
|
|
210
|
-
const styles = {}
|
|
211
|
-
v.animates.forEach(animate => {
|
|
212
|
-
styles[animate.type] = animate.value
|
|
213
|
-
})
|
|
214
|
-
return {
|
|
215
|
-
...v.option,
|
|
216
|
-
styles
|
|
217
|
-
}
|
|
218
|
-
})
|
|
219
|
-
return {
|
|
220
|
-
steps
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export default Animation
|