@tarojs/plugin-platform-harmony-ets 4.0.0-alpha.2 → 4.0.0-alpha.21
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/dist/apis/base/system.ts +73 -20
- package/dist/apis/canvas/index.ts +10 -1
- package/dist/apis/device/clipboard.ts +16 -8
- package/dist/apis/framework/index.ts +1 -5
- package/dist/apis/index.ts +25 -17
- package/dist/apis/media/image/index.ts +1 -1
- package/dist/apis/storage/index.ts +146 -78
- package/dist/apis/ui/animation/animation.ts +71 -29
- package/dist/apis/ui/background.ts +2 -1
- package/dist/apis/ui/interaction/index.ts +42 -59
- package/dist/apis/ui/navigation-bar/index.ts +1 -1
- package/dist/apis/ui/pull-down-refresh.ts +9 -3
- package/dist/apis/ui/scroll/index.ts +5 -5
- package/dist/apis/ui/tab-bar.ts +3 -3
- package/dist/apis/utils/index.ts +2 -1
- package/dist/apis/wxml/IntersectionObserver.ts +18 -10
- package/dist/apis/wxml/selectorQuery.ts +26 -13
- package/dist/components-harmony-ets/button.ets +64 -34
- package/dist/components-harmony-ets/canvas.ets +51 -0
- package/dist/components-harmony-ets/checkbox.ets +72 -61
- package/dist/components-harmony-ets/form.ets +51 -29
- package/dist/components-harmony-ets/icon.ets +31 -19
- package/dist/components-harmony-ets/image.ets +34 -14
- package/dist/components-harmony-ets/index.ets +92 -0
- package/dist/components-harmony-ets/innerHtml.ets +11 -6
- package/dist/components-harmony-ets/input.ets +49 -41
- package/dist/components-harmony-ets/label.ets +71 -44
- package/dist/components-harmony-ets/listView.ets +26 -0
- package/dist/components-harmony-ets/movableArea.ets +126 -0
- package/dist/components-harmony-ets/movableView.ets +93 -0
- package/dist/components-harmony-ets/navigationBar.ets +65 -0
- package/dist/components-harmony-ets/pageMeta.ets +94 -0
- package/dist/components-harmony-ets/picker.ets +42 -38
- package/dist/components-harmony-ets/progress.ets +52 -0
- package/dist/components-harmony-ets/pseudo.ets +80 -0
- package/dist/components-harmony-ets/radio.ets +74 -64
- package/dist/components-harmony-ets/richText.ets +14 -30
- package/dist/components-harmony-ets/scrollList.ets +94 -0
- package/dist/components-harmony-ets/scrollView.ets +61 -57
- package/dist/components-harmony-ets/slider.ets +18 -14
- package/dist/components-harmony-ets/stickySection.ets +42 -0
- package/dist/components-harmony-ets/style.ets +381 -130
- package/dist/components-harmony-ets/swiper.ets +61 -20
- package/dist/components-harmony-ets/switch.ets +36 -32
- package/dist/components-harmony-ets/{index.ts → tag.ts} +6 -0
- package/dist/components-harmony-ets/text.ets +135 -49
- package/dist/components-harmony-ets/textArea.ets +50 -35
- package/dist/components-harmony-ets/utils/AttributeManager.ets +1 -1
- package/dist/components-harmony-ets/utils/DynamicCenter.ts +2 -2
- package/dist/components-harmony-ets/utils/flexManager.ets +49 -19
- package/dist/components-harmony-ets/utils/helper.ets +18 -5
- package/dist/components-harmony-ets/utils/htmlParser/HarmonyHTMLParser.ts +1 -2
- package/dist/components-harmony-ets/utils/htmlParser/index.ts +1 -1
- package/dist/components-harmony-ets/utils/index.ts +54 -50
- package/dist/components-harmony-ets/utils/styles.ets +170 -93
- package/dist/components-harmony-ets/video.ets +34 -21
- package/dist/components-harmony-ets/view.ets +63 -52
- package/dist/components-harmony-ets/webView.ets +40 -34
- package/dist/index.d.ts +152 -0
- package/dist/index.js +99 -55
- package/dist/index.js.map +1 -1
- package/dist/runtime-ets/bom/document.ts +6 -4
- package/dist/runtime-ets/bom/getComputedStyle.ts +2 -2
- package/dist/runtime-ets/bom/window.ts +7 -0
- package/dist/runtime-ets/current.ts +3 -0
- package/dist/runtime-ets/dom/bind.ts +28 -12
- package/dist/runtime-ets/dom/class-list.ts +2 -2
- package/dist/runtime-ets/dom/cssNesting.ts +419 -0
- package/dist/runtime-ets/dom/cssStyleDeclaration.ts +28 -42
- package/dist/runtime-ets/dom/document.ts +8 -11
- package/dist/runtime-ets/dom/element/canvas.ts +136 -0
- package/dist/runtime-ets/dom/element/element.ts +348 -57
- package/dist/runtime-ets/dom/element/form.ts +31 -26
- package/dist/runtime-ets/dom/element/index.ts +30 -2
- package/dist/runtime-ets/dom/element/movableArea.ts +11 -0
- package/dist/runtime-ets/dom/element/movableView.ts +244 -0
- package/dist/runtime-ets/dom/element/normal.ts +35 -8
- package/dist/runtime-ets/dom/element/progress.ts +11 -0
- package/dist/runtime-ets/dom/element/scrollView.ts +1 -0
- package/dist/runtime-ets/dom/element/text.ts +1 -8
- package/dist/runtime-ets/dom/element/video.ts +5 -4
- package/dist/runtime-ets/dom/element/webView.ts +12 -5
- package/dist/runtime-ets/dom/event.ts +2 -4
- package/dist/runtime-ets/dom/eventTarget.ts +2 -3
- package/dist/runtime-ets/dom/node.ts +54 -29
- package/dist/runtime-ets/dom/stylesheet/covertWeb2Hm.ts +416 -235
- package/dist/runtime-ets/dom/stylesheet/index.ts +29 -311
- package/dist/runtime-ets/dom/stylesheet/type.ts +51 -9
- package/dist/runtime-ets/dom/stylesheet/util.ts +33 -27
- package/dist/runtime-ets/index.ts +2 -1
- package/dist/runtime-ets/interface/event.ts +1 -1
- package/dist/runtime-ets/utils/index.ts +73 -13
- package/dist/runtime-ets/utils/info.ts +2 -2
- package/dist/runtime-framework/react/app.ts +9 -4
- package/dist/runtime-framework/react/hooks.ts +0 -1
- package/dist/runtime-framework/react/index.ts +0 -2
- package/dist/runtime-framework/react/native-page.ts +154 -77
- package/dist/runtime-framework/react/page.ts +3 -8
- package/dist/runtime-framework/solid/app.ts +25 -45
- package/dist/runtime-framework/solid/connect.ts +21 -3
- package/dist/runtime-framework/solid/hooks.ts +16 -11
- package/dist/runtime-framework/solid/index.ts +6 -2
- package/dist/runtime-framework/solid/page.ts +84 -30
- package/dist/runtime-framework/solid/reconciler/props.ts +70 -25
- package/dist/runtime-framework/solid/reconciler/render.ts +16 -6
- package/dist/runtime-framework/solid/reconciler/use.ts +0 -1
- package/dist/runtime-framework/solid/utils/index.ts +0 -2
- package/dist/runtime-utils.d.ts +827 -0
- package/dist/runtime-utils.js +435 -218
- package/dist/runtime-utils.js.map +1 -1
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.js +435 -218
- package/dist/runtime.js.map +1 -1
- package/index.js +3 -1
- package/package.json +14 -15
- package/static/media/cancel.svg +1 -1
- package/static/media/circle.svg +1 -1
- package/static/media/clear.svg +1 -1
- package/static/media/download.svg +1 -1
- package/static/media/info.svg +1 -1
- package/static/media/info_circle.svg +1 -1
- package/static/media/search.svg +1 -1
- package/static/media/success.svg +1 -1
- package/static/media/success_no_circle.svg +1 -1
- package/static/media/warn.svg +1 -1
- package/types/harmony.d.ts +4 -0
- package/types/index.d.ts +4 -0
- package/types/runtime.d.ts +1 -1
- /package/dist/runtime-framework/solid/{contant.ts → constant.ts} +0 -0
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import matrix4 from '@ohos.matrix4'
|
|
2
|
+
// import matrix4 from '@ohos.matrix4'
|
|
3
3
|
|
|
4
4
|
export interface HarmonyStyle extends TaroStyleType {
|
|
5
5
|
textAlign?: TextAlign
|
|
6
6
|
textOverflow?: HarmonyType.Overflow
|
|
7
7
|
WebkitLineClamp?: number
|
|
8
|
+
whiteSpace?: string
|
|
8
9
|
letterSpacing?: number | string
|
|
10
|
+
verticalAlign?: Alignment
|
|
11
|
+
lineHeight?: Length
|
|
12
|
+
wordBreak?: string
|
|
9
13
|
}
|
|
10
14
|
|
|
11
15
|
export interface TaroStyleType {
|
|
@@ -30,11 +34,14 @@ export interface TaroStyleType {
|
|
|
30
34
|
maxWidth?: Length
|
|
31
35
|
|
|
32
36
|
display?: 'flex' | 'block' | 'none'
|
|
37
|
+
visibility?: 'visible' | 'hidden'
|
|
33
38
|
|
|
34
39
|
// position
|
|
35
40
|
position?: 'relative' | 'absolute' | 'fixed'
|
|
36
41
|
top?: Length
|
|
37
42
|
left?: Length
|
|
43
|
+
bottom?: Length
|
|
44
|
+
right?: Length
|
|
38
45
|
|
|
39
46
|
// flex
|
|
40
47
|
flexBasis?: number | string
|
|
@@ -54,6 +61,10 @@ export interface TaroStyleType {
|
|
|
54
61
|
backgroundSize?: SizeOptions | ImageSize
|
|
55
62
|
backgroundPosition?: Position | Alignment
|
|
56
63
|
|
|
64
|
+
// 渐变
|
|
65
|
+
linearGradient?: HarmonyType.LinearGradient
|
|
66
|
+
radialGradient?: HarmonyType.RadialGradient
|
|
67
|
+
|
|
57
68
|
// transform
|
|
58
69
|
rotate?: HarmonyType.Transform.Rotate
|
|
59
70
|
translate?: HarmonyType.Transform.Translate
|
|
@@ -89,24 +100,46 @@ export interface TaroStyleType {
|
|
|
89
100
|
fontStyle?: FontStyle
|
|
90
101
|
fontWeight?: number | FontWeight | string
|
|
91
102
|
fontFamily?: string | Resource
|
|
92
|
-
|
|
93
|
-
|
|
103
|
+
textDecoration?: {
|
|
104
|
+
type: TextDecorationType
|
|
105
|
+
}
|
|
94
106
|
|
|
95
|
-
//
|
|
96
|
-
|
|
107
|
+
// animation
|
|
108
|
+
animationName?: {
|
|
109
|
+
percentage: number
|
|
110
|
+
event: TaroStyleType
|
|
111
|
+
}[]
|
|
112
|
+
animationDuration?: number
|
|
113
|
+
animationTimingFunction?: string
|
|
114
|
+
animationDelay?: number
|
|
115
|
+
animationIterationCount?: number
|
|
116
|
+
|
|
117
|
+
// shadow
|
|
118
|
+
boxShadow?: {
|
|
119
|
+
radius: number
|
|
120
|
+
color?: string
|
|
121
|
+
offsetX?: number
|
|
122
|
+
offsetY?: number
|
|
123
|
+
fill?: boolean
|
|
124
|
+
}
|
|
97
125
|
|
|
98
126
|
// other
|
|
99
127
|
opacity?: number | Resource
|
|
100
128
|
zIndex?: number
|
|
101
|
-
overflow?:
|
|
129
|
+
overflow?: string
|
|
102
130
|
focus?: boolean
|
|
131
|
+
content?: string
|
|
103
132
|
}
|
|
104
133
|
|
|
105
134
|
export interface TaroTextStyleType {
|
|
106
135
|
textAlign?: TextAlign
|
|
107
136
|
textOverflow?: HarmonyType.Overflow
|
|
108
137
|
WebkitLineClamp?: number
|
|
138
|
+
whiteSpace?: string
|
|
109
139
|
letterSpacing?: number | string
|
|
140
|
+
verticalAlign?: Alignment
|
|
141
|
+
lineHeight?: string | number | Resource
|
|
142
|
+
wordBreak?: WordBreak
|
|
110
143
|
}
|
|
111
144
|
|
|
112
145
|
export namespace HarmonyType {
|
|
@@ -121,6 +154,12 @@ export namespace HarmonyType {
|
|
|
121
154
|
colors: Array<[ResourceColor, number]>
|
|
122
155
|
repeating?: boolean
|
|
123
156
|
}
|
|
157
|
+
export interface RadialGradient {
|
|
158
|
+
center: any
|
|
159
|
+
radius: number | string
|
|
160
|
+
colors: Array<[ResourceColor, number]>
|
|
161
|
+
repeating?: boolean
|
|
162
|
+
}
|
|
124
163
|
export interface Overflow {
|
|
125
164
|
overflow: TextOverflow
|
|
126
165
|
}
|
|
@@ -134,7 +173,6 @@ export namespace HarmonyType {
|
|
|
134
173
|
export interface backgroundImage {
|
|
135
174
|
src: ResourceStr
|
|
136
175
|
repeat?: ImageRepeat
|
|
137
|
-
colors?: Array<[ResourceColor, number]>
|
|
138
176
|
}
|
|
139
177
|
export type backgroundImageSize = SizeOptions | ImageSize
|
|
140
178
|
export type backgroundImagePosition = Position | Alignment
|
|
@@ -166,7 +204,11 @@ export namespace HarmonyType {
|
|
|
166
204
|
centerX?: number | string
|
|
167
205
|
centerY?: number | string
|
|
168
206
|
}
|
|
169
|
-
export type Transform = matrix4.Matrix4Transit
|
|
207
|
+
// export type Transform = matrix4.Matrix4Transit
|
|
208
|
+
export type Transform = {
|
|
209
|
+
Translate?: Translate
|
|
210
|
+
Scale?: Scale
|
|
211
|
+
Rotate?: Rotate
|
|
212
|
+
}
|
|
170
213
|
}
|
|
171
214
|
}
|
|
172
|
-
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import matrix4 from '@ohos.matrix4'
|
|
2
|
+
// import matrix4 from '@ohos.matrix4'
|
|
3
3
|
import { isNumber } from '@tarojs/shared'
|
|
4
4
|
|
|
5
5
|
import { convertNumber2VP } from '../../'
|
|
@@ -163,7 +163,6 @@ export class FlexManager {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
|
|
167
166
|
export class BORDER_STYLE_MAP {
|
|
168
167
|
static solid = BorderStyle.Solid
|
|
169
168
|
static dotted = BorderStyle.Dotted
|
|
@@ -184,53 +183,53 @@ export class BORDER_STYLE_MAP {
|
|
|
184
183
|
case BorderStyle.Solid: return 'solid'
|
|
185
184
|
default: return ''
|
|
186
185
|
}
|
|
187
|
-
|
|
188
186
|
}
|
|
189
187
|
}
|
|
190
188
|
|
|
191
|
-
|
|
192
189
|
export function getNodeMarginOrPaddingData (dataValue: string) {
|
|
193
190
|
let res: any = {}
|
|
194
191
|
if (dataValue) {
|
|
195
|
-
const values = dataValue.trim().split(new RegExp('\\s+'))
|
|
192
|
+
const values = dataValue.toString().trim().split(new RegExp('\\s+'))
|
|
193
|
+
let val1: string
|
|
194
|
+
let val2: string
|
|
196
195
|
switch (values.length) {
|
|
197
196
|
case 1:
|
|
198
|
-
|
|
197
|
+
val1 = getUnit(values[0])
|
|
198
|
+
res = { top: val1, right: val1, bottom: val1, left: val1 }
|
|
199
199
|
break
|
|
200
200
|
case 2:
|
|
201
|
-
|
|
201
|
+
val1 = getUnit(values[0])
|
|
202
|
+
val2 = getUnit(values[1])
|
|
203
|
+
res = { top: val1, right: val2, bottom: val1, left: val2 }
|
|
202
204
|
break
|
|
203
205
|
case 3:
|
|
204
|
-
|
|
206
|
+
val2 = getUnit(values[1])
|
|
207
|
+
res = { top: getUnit(values[0]), right: val2, bottom: getUnit(values[2]), left: val2 }
|
|
205
208
|
break
|
|
206
209
|
case 4:
|
|
207
|
-
res = { top: values[0], right: values[1], bottom: values[2], left: values[3] }
|
|
210
|
+
res = { top: getUnit(values[0]), right: getUnit(values[1]), bottom: getUnit(values[2]), left: getUnit(values[3]) }
|
|
208
211
|
break
|
|
209
212
|
default:
|
|
210
213
|
break
|
|
211
214
|
}
|
|
212
|
-
Object.keys(res).forEach(key => {
|
|
213
|
-
res[key] = getUnit(res[key]) || 0
|
|
214
|
-
})
|
|
215
215
|
}
|
|
216
216
|
return res
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
220
219
|
export function getUnit (val) {
|
|
221
220
|
// 空的字符串代表 Reconciler remove 了这个 prop,不进行后面的逻辑了
|
|
222
221
|
if (val === '') return val
|
|
223
222
|
|
|
224
|
-
if (/\d+(vp)$/.test(val)) {
|
|
223
|
+
if (/\d+(vp|px)$/.test(val)) {
|
|
225
224
|
return val
|
|
226
225
|
} else if (isNumber(val)) {
|
|
227
|
-
return
|
|
226
|
+
return parseFloat(val) + 'px'
|
|
228
227
|
}
|
|
229
228
|
if (val) {
|
|
230
229
|
// 匹配vw\vh
|
|
231
|
-
const exec = val.match(/(
|
|
230
|
+
const exec = val.match(/(-?\d*(\.\d+)?)(vw|vh)$/)
|
|
232
231
|
if (exec) {
|
|
233
|
-
const [, num, unit] = exec
|
|
232
|
+
const [, num, , unit] = exec
|
|
234
233
|
return convertNumber2VP(parseFloat(num), unit)
|
|
235
234
|
}
|
|
236
235
|
}
|
|
@@ -238,19 +237,26 @@ export function getUnit (val) {
|
|
|
238
237
|
}
|
|
239
238
|
|
|
240
239
|
export function getTransform(transform) {
|
|
240
|
+
// if (transform) {
|
|
241
|
+
// return transform.reduce((res, item) => {
|
|
242
|
+
// switch (item.type) {
|
|
243
|
+
// case 'Translate': return res.translate(item.value)
|
|
244
|
+
// case 'Scale': return res.scale(item.value)
|
|
245
|
+
// case 'Rotate': return res.rotate(item.value)
|
|
246
|
+
// case 'Matrix': return res.combine(matrix4.init(item.value))
|
|
247
|
+
// }
|
|
248
|
+
// return res
|
|
249
|
+
// }, matrix4.identity())
|
|
250
|
+
// }
|
|
251
|
+
const result = {}
|
|
241
252
|
if (transform) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
case 'Rotate': return res.rotate(item.value)
|
|
247
|
-
case 'Matrix': return res.combine(matrix4.init(item.value))
|
|
248
|
-
}
|
|
249
|
-
return res
|
|
250
|
-
}, matrix4.identity())
|
|
253
|
+
transform.forEach((item) => {
|
|
254
|
+
result[item.type] = item.value
|
|
255
|
+
})
|
|
256
|
+
return result
|
|
251
257
|
}
|
|
252
258
|
}
|
|
253
259
|
|
|
254
260
|
export function capitalizeFirstLetter (str: string) {
|
|
255
261
|
return str.charAt(0).toUpperCase() + str.slice(1)
|
|
256
|
-
}
|
|
262
|
+
}
|
|
@@ -10,8 +10,9 @@ export * from './dom/element'
|
|
|
10
10
|
export * from './dom/event'
|
|
11
11
|
export * from './dom/node'
|
|
12
12
|
export * from './dom/stylesheet'
|
|
13
|
+
export * from './dom/cssNesting'
|
|
13
14
|
export * from './interface'
|
|
14
15
|
export * from './utils'
|
|
15
16
|
export * from './utils/info'
|
|
16
|
-
export { URLSearchParams, eventSource, Events } from '@tarojs/runtime/dist/runtime.esm'
|
|
17
|
+
export { URL, URLSearchParams, eventSource, Events } from '@tarojs/runtime/dist/runtime.esm'
|
|
17
18
|
export { hooks } from '@tarojs/shared'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _display from '@ohos.display'
|
|
2
|
-
import { pxTransformHelper } from '@tarojs/taro'
|
|
2
|
+
import { getSystemInfoSync, pxTransformHelper } from '@tarojs/taro'
|
|
3
3
|
|
|
4
4
|
import { NodeType } from '../dom/node'
|
|
5
5
|
import convertWebStyle2HmStyle from '../dom/stylesheet/covertWeb2Hm'
|
|
@@ -38,28 +38,85 @@ export function convertNumber2PX (value: number) {
|
|
|
38
38
|
return pxTransformHelper(value, 'vp')
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function convertNumber2VP (value: number, unit = 'px') {
|
|
41
|
+
export function convertNumber2VP (value: number, unit = 'px'): string | number {
|
|
42
42
|
if (unit === 'vw' || unit === 'vh') {
|
|
43
|
-
return (value / 100 * (unit === 'vw' ? display.width: display.height)) + 'px'
|
|
43
|
+
return (value / 100 * (unit === 'vw' ? display.width : display.height)) + 'px'
|
|
44
|
+
}
|
|
45
|
+
if (unit === 'PX') {
|
|
46
|
+
// 特殊单位:相当于PX、pX、Px
|
|
47
|
+
return pxTransformHelper(value, 'PX')
|
|
44
48
|
}
|
|
45
49
|
return pxTransformHelper(value, 'vp')
|
|
46
50
|
}
|
|
47
51
|
|
|
48
|
-
export function
|
|
52
|
+
export function parseClasses (classNames = ''): string[] {
|
|
53
|
+
if (typeof classNames !== 'string') {
|
|
54
|
+
return []
|
|
55
|
+
}
|
|
56
|
+
return classNames.includes(' ') ? classNames.split(' ') : [classNames]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// 合并静态样式,从样式表里面找到对应的样式
|
|
60
|
+
export function calcStaticStyle (styleSheet: Record<string, CSSProperties>, classNames = ''): CSSProperties {
|
|
61
|
+
classNames = classNames || '' // 兼容有些开发者传入了false/null等非字符串类型
|
|
49
62
|
const obj: CSSProperties[] = []
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
|
|
64
|
+
if (!styleSheet.cache) {
|
|
65
|
+
styleSheet.cache = {}
|
|
66
|
+
}
|
|
67
|
+
const cache: Record<string, CSSProperties> = styleSheet.cache as Record<string, CSSProperties>
|
|
68
|
+
|
|
69
|
+
const classes = parseClasses(classNames)
|
|
70
|
+
if (!classes.length) return {}
|
|
71
|
+
if (classes.length === 1) {
|
|
72
|
+
// 同一个引用
|
|
73
|
+
return styleSheet[classes[0]]
|
|
74
|
+
} else {
|
|
75
|
+
if (cache[classNames]) {
|
|
76
|
+
return cache[classNames]
|
|
77
|
+
} else {
|
|
78
|
+
for (let i = 0; i < classes.length; i++) {
|
|
79
|
+
const className = classes[i]
|
|
80
|
+
if (styleSheet[className]) {
|
|
81
|
+
obj.push(styleSheet[className])
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const result = Object.assign.apply(null, [{}].concat(obj))
|
|
85
|
+
|
|
86
|
+
cache[classNames] = result
|
|
87
|
+
|
|
88
|
+
return result
|
|
55
89
|
}
|
|
56
90
|
}
|
|
91
|
+
}
|
|
57
92
|
|
|
93
|
+
// 动态样式计算,需要经过web2harmony进行反转
|
|
94
|
+
export function calcDynamicStyle (style: CSSProperties): CSSProperties {
|
|
58
95
|
if (style) {
|
|
59
|
-
|
|
96
|
+
return convertWebStyle2HmStyle(style)
|
|
60
97
|
}
|
|
61
|
-
|
|
62
|
-
|
|
98
|
+
return {}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// css env()环境样式获取
|
|
102
|
+
export function __env__(safeAreaType: string, fallback?: string | number) {
|
|
103
|
+
const sysInfo = getSystemInfoSync()
|
|
104
|
+
|
|
105
|
+
switch (safeAreaType) {
|
|
106
|
+
case 'safe-area-inset-top': {
|
|
107
|
+
return sysInfo.safeArea?.top ? `${sysInfo.safeArea?.top}px` : fallback
|
|
108
|
+
}
|
|
109
|
+
case 'safe-area-inset-right': {
|
|
110
|
+
return sysInfo.safeArea?.right ? `${sysInfo.screenWidth - sysInfo.safeArea?.right}px` : fallback
|
|
111
|
+
}
|
|
112
|
+
case 'safe-area-inset-bottom': {
|
|
113
|
+
return sysInfo.safeArea?.bottom ? `${sysInfo.screenHeight - sysInfo.safeArea?.bottom}px` : fallback
|
|
114
|
+
}
|
|
115
|
+
case 'safe-area-inset-left': {
|
|
116
|
+
return sysInfo.safeArea?.left ? `${sysInfo.safeArea?.left}px` : fallback
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return fallback
|
|
63
120
|
}
|
|
64
121
|
|
|
65
122
|
export function getPageScrollerOrNode (scrollerOrNode: any, page: any) {
|
|
@@ -76,6 +133,10 @@ export function getPageScrollerOrNode (scrollerOrNode: any, page: any) {
|
|
|
76
133
|
return scrollerOrNode
|
|
77
134
|
}
|
|
78
135
|
|
|
136
|
+
export function ObjectKeys(obj: object): string[] {
|
|
137
|
+
return Object.keys(obj)
|
|
138
|
+
}
|
|
139
|
+
|
|
79
140
|
export function ObjectAssign(...objects) {
|
|
80
141
|
return Object.assign.apply(this, [{}].concat(...objects))
|
|
81
142
|
}
|
|
@@ -91,7 +152,6 @@ export function bindFn (fn: any, ctx: any, ...args: any) {
|
|
|
91
152
|
}
|
|
92
153
|
}
|
|
93
154
|
|
|
94
|
-
|
|
95
155
|
// 使用深度优先遍历寻找节点树中对应的子节点,且只需要找到第一个
|
|
96
156
|
// 通过 selector 判断是 id 还是 selector,从 node 的 id 和 className 属性中寻找
|
|
97
157
|
export function findChildNodeWithDFS<T extends TaroElement = TaroElement> (node: TaroElement, selector: string | ((ele: T) => boolean), selectAll: true): T[] | null;
|
|
@@ -50,7 +50,7 @@ function tapCallbackToNodeAndUpdate (node: TaroElement, eventName: string, callb
|
|
|
50
50
|
callback && callback(...eventResult)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
if (!node._isDynamicNode
|
|
53
|
+
if (!node._isDynamicNode && node._isCompileMode) {
|
|
54
54
|
node.updateComponent()
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -91,7 +91,7 @@ export function triggerAttributesCallback (node, attributeName) {
|
|
|
91
91
|
|
|
92
92
|
const value = node._attrs[attributeName]
|
|
93
93
|
const cb = node._nodeInfo.attributeCallback[attributeName]
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
isFunction(cb) && cb(value)
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Current, document } from '@tarojs/runtime' // eslint-disable-line import/no-duplicates
|
|
2
|
-
import {
|
|
2
|
+
import { eventCenter } from '@tarojs/runtime/dist/runtime.esm' // eslint-disable-line import/no-duplicates
|
|
3
3
|
|
|
4
4
|
import { setReconciler } from './connect'
|
|
5
5
|
import { injectPageInstance } from './page'
|
|
6
6
|
import { EMPTY_OBJ, incrementId, isClassComponent } from './utils'
|
|
7
7
|
|
|
8
|
+
import type { AppInstance } from '@tarojs/runtime'
|
|
8
9
|
import type React from 'react'
|
|
9
10
|
|
|
10
11
|
let h: typeof React.createElement
|
|
@@ -195,7 +196,7 @@ export function createReactApp (
|
|
|
195
196
|
const keys = Object.keys(globalData)
|
|
196
197
|
const descriptors = Object.getOwnPropertyDescriptors(globalData)
|
|
197
198
|
keys.forEach(key => {
|
|
198
|
-
Object.defineProperty(this, key, {
|
|
199
|
+
Object.defineProperty(Current?.app || this, key, {
|
|
199
200
|
configurable: true,
|
|
200
201
|
enumerable: true,
|
|
201
202
|
get () {
|
|
@@ -206,7 +207,7 @@ export function createReactApp (
|
|
|
206
207
|
}
|
|
207
208
|
})
|
|
208
209
|
})
|
|
209
|
-
Object.defineProperties(this, descriptors)
|
|
210
|
+
Object.defineProperties(Current?.app || this, descriptors)
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
app.onCreate?.()
|
|
@@ -237,7 +238,11 @@ export function createReactApp (
|
|
|
237
238
|
}
|
|
238
239
|
} as unknown as AppInstance
|
|
239
240
|
|
|
240
|
-
Current.app
|
|
241
|
+
if (Current.app) {
|
|
242
|
+
Current.app = Object.assign(app, Current.app)
|
|
243
|
+
} else {
|
|
244
|
+
Current.app = app
|
|
245
|
+
}
|
|
241
246
|
|
|
242
247
|
return app
|
|
243
248
|
}
|