Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小浣熊撸代码
uni-app
提交
de8faa07
U
uni-app
项目概览
小浣熊撸代码
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
de8faa07
编写于
5月 19, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: transform event
上级
330fff9e
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
126 addition
and
46 deletion
+126
-46
packages/uni-api/src/protocols/ui/createAnimation.ts
packages/uni-api/src/protocols/ui/createAnimation.ts
+10
-10
packages/uni-h5/dist/uni-h5.es.js
packages/uni-h5/dist/uni-h5.es.js
+20
-18
packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts
...s/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts
+25
-9
packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts
...es/vite-plugin-uni/src/configResolved/plugins/renderjs.ts
+18
-6
packages/vite-plugin-uni/src/utils/ast.ts
packages/vite-plugin-uni/src/utils/ast.ts
+18
-1
packages/vite-plugin-uni/src/vue/options.ts
packages/vite-plugin-uni/src/vue/options.ts
+7
-2
packages/vite-plugin-uni/src/vue/transforms/transformEvent.ts
...ages/vite-plugin-uni/src/vue/transforms/transformEvent.ts
+21
-0
packages/vite-plugin-uni/src/vue/transforms/transformMatchMedia.ts
...vite-plugin-uni/src/vue/transforms/transformMatchMedia.ts
+7
-0
未找到文件。
packages/uni-api/src/protocols/ui/createAnimation.ts
浏览文件 @
de8faa07
import
{
elemInArray
}
from
'
../../helpers/protocol
'
//
import { elemInArray } from '../../helpers/protocol'
export
const
API_CREATE_ANIMATION
=
'
createAnimation
'
export
type
API_TYPE_CREATE_ANIMATION
=
typeof
uni
.
createAnimation
export
type
API_TYPE_CREATE_ANIMATION_Timing_Function
=
UniApp
.
CreateAnimationOptions
[
'
timingFunction
'
]
const
timingFunctions
:
API_TYPE_CREATE_ANIMATION_Timing_Function
[]
=
[
'
linear
'
,
'
ease
'
,
'
ease-in
'
,
'
ease-in-out
'
,
'
ease-out
'
,
'
step-start
'
,
'
step-end
'
,
]
//
const timingFunctions: API_TYPE_CREATE_ANIMATION_Timing_Function[] = [
//
'linear',
//
'ease',
//
'ease-in',
//
'ease-in-out',
//
'ease-out',
//
'step-start',
//
'step-end',
//
]
export
const
CreateAnimationOptions
:
ApiOptions
<
API_TYPE_CREATE_ANIMATION
>
=
{
// 目前参数校验不支持此api校验
...
...
packages/uni-h5/dist/uni-h5.es.js
浏览文件 @
de8faa07
...
...
@@ -594,7 +594,7 @@ var safeAreaInsets = {
onChange,
offChange
};
var
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out = safeAreaInsets;
var out = safeAreaInsets;
const onEventPrevent = /* @__PURE__ */ withModifiers(() => {
}, ["prevent"]);
const onEventStop = /* @__PURE__ */ withModifiers(() => {
...
...
@@ -606,10 +606,10 @@ function getWindowOffset() {
const left = parseInt(style.getPropertyValue("--window-left"));
const right = parseInt(style.getPropertyValue("--window-right"));
return {
top: top ? top +
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.top : 0,
bottom: bottom ? bottom +
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.bottom : 0,
left: left ? left +
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.left : 0,
right: right ? right +
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.right : 0
top: top ? top + out.top : 0,
bottom: bottom ? bottom + out.bottom : 0,
left: left ? left + out.left : 0,
right: right ? right + out.right : 0
};
}
function updateCssVar(cssVars) {
...
...
@@ -1291,7 +1291,7 @@ function normalizePageMeta(pageMeta) {
let offset = rpx2px(refreshOptions.offset);
const {type} = navigationBar;
if (type !== "transparent" && type !== "none") {
offset += NAVBAR_HEIGHT +
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.top;
offset += NAVBAR_HEIGHT + out.top;
}
refreshOptions.offset = offset;
refreshOptions.height = rpx2px(refreshOptions.height);
...
...
@@ -5760,7 +5760,6 @@ function useMovableViewState(props2, trigger, rootRef) {
_SFA.cancel();
}
}
onUnmounted(FAandSFACancel);
function _setX(val) {
if (xMove.value) {
if (val + _scaleOffset.x === _translateX) {
...
...
@@ -6153,6 +6152,9 @@ function useMovableViewState(props2, trigger, rootRef) {
removeMovableViewContext(context);
});
});
onUnmounted(() => {
FAandSFACancel();
});
return {
setParent
};
...
...
@@ -14879,7 +14881,7 @@ const getSystemInfoSync = /* @__PURE__ */ defineSyncApi("getSystemInfoSync", ()
const windowWidth = getWindowWidth(screenWidth);
let windowHeight = window.innerHeight;
const language = navigator.language;
const statusBarHeight =
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.top;
const statusBarHeight = out.top;
let osname;
let osversion;
let model;
...
...
@@ -14992,12 +14994,12 @@ const getSystemInfoSync = /* @__PURE__ */ defineSyncApi("getSystemInfoSync", ()
const system = `${osname} ${osversion}`;
const platform = osname.toLocaleLowerCase();
const safeArea = {
left:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.left,
right: windowWidth -
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.right,
top:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.top,
bottom: windowHeight -
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.bottom,
width: windowWidth -
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_out.left - D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.right,
height: windowHeight -
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_out.top - D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.bottom
left: out.left,
right: windowWidth - out.right,
top: out.top,
bottom: windowHeight - out.bottom,
width: windowWidth -
out.left -
out.right,
height: windowHeight -
out.top -
out.bottom
};
const {top: windowTop, bottom: windowBottom} = getWindowOffset();
windowHeight -= windowTop;
...
...
@@ -15017,10 +15019,10 @@ const getSystemInfoSync = /* @__PURE__ */ defineSyncApi("getSystemInfoSync", ()
model,
safeArea,
safeAreaInsets: {
top:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.top,
right:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.right,
bottom:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.bottom,
left:
D__DCloud_local_git_uniAppNext_node_modules_safeAreaInsets_
out.left
top: out.top,
right: out.right,
bottom: out.bottom,
left: out.left
}
};
});
...
...
packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts
浏览文件 @
de8faa07
...
...
@@ -63,7 +63,7 @@ function generatePagesJsonCode(
const
globalName
=
getGlobal
(
ssr
)
const
pagesJson
=
normalizePagesJson
(
jsonStr
,
options
.
platform
)
const
definePagesCode
=
generatePagesDefineCode
(
pagesJson
,
config
)
const
uniRoutesCode
=
generateRoutes
(
globalName
,
pagesJson
)
const
uniRoutesCode
=
generateRoutes
(
globalName
,
pagesJson
,
config
)
const
uniConfigCode
=
generateConfig
(
globalName
,
pagesJson
,
options
)
const
manifestJsonPath
=
slash
(
path
.
resolve
(
options
.
inputDir
,
'
manifest.json.js
'
)
...
...
@@ -173,9 +173,9 @@ function generatePagesDefineCode(
if
(
!
define
.
__UNI_FEATURE_PAGES__
)
{
// single page
const
pagePath
=
pagesJson
.
pages
[
0
].
path
return
`import
{default as
${
normalizePageIdentifier
(
return
`import
${
normalizePageIdentifier
(
pagePath
)}
}
from './
${
pagePath
}
.vue?mpType=page'`
)}
from './
${
pagePath
}
.vue?mpType=page'`
}
const
{
pages
}
=
pagesJson
return
(
...
...
@@ -222,28 +222,44 @@ function normalizePagesRoute(pagesJson: UniApp.PagesJson): PageRouteOptions[] {
})
}
function
generatePageRoute
({
name
,
path
,
meta
}:
PageRouteOptions
)
{
function
generatePageRoute
(
{
name
,
path
,
meta
}:
PageRouteOptions
,
config
:
ResolvedConfig
)
{
const
{
isEntry
}
=
meta
const
alias
=
isEntry
?
`\n alias:'/
${
path
}
',`
:
''
return
`{
path:'/
${
isEntry
?
''
:
path
}
',
${
alias
}
component:{render(){return renderPage(
${
name
}
)}},
loader:
${
normalizePageIdentifier
(
path
)}
Loader,
loader:
${
config
.
define
!
.
__UNI_FEATURE_PAGES__
?
normalizePageIdentifier
(
path
)
+
'
Loader
'
:
'
null
'
}
,
meta:
${
JSON
.
stringify
(
meta
)}
}`
}
function
generatePagesRoute
(
pagesRouteOptions
:
PageRouteOptions
[])
{
return
pagesRouteOptions
.
map
((
pageOptions
)
=>
generatePageRoute
(
pageOptions
))
function
generatePagesRoute
(
pagesRouteOptions
:
PageRouteOptions
[],
config
:
ResolvedConfig
)
{
return
pagesRouteOptions
.
map
((
pageOptions
)
=>
generatePageRoute
(
pageOptions
,
config
)
)
}
function
generateRoutes
(
globalName
:
string
,
pagesJson
:
UniApp
.
PagesJson
)
{
function
generateRoutes
(
globalName
:
string
,
pagesJson
:
UniApp
.
PagesJson
,
config
:
ResolvedConfig
)
{
return
`
function renderPage(component){
return (openBlock(), createBlock(PageComponent, null, {page: withCtx(() => [createVNode(component, { ref: "page" }, null, 512 /* NEED_PATCH */)]), _: 1 /* STABLE */}))
}
${
globalName
}
.__uniRoutes=[
${[
...
generatePagesRoute
(
normalizePagesRoute
(
pagesJson
)),
...
generatePagesRoute
(
normalizePagesRoute
(
pagesJson
)
,
config
),
].
join
(
'
,
'
)}
]`
}
...
...
packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts
浏览文件 @
de8faa07
...
...
@@ -18,7 +18,8 @@ export function uniRenderjsPlugin(): Plugin {
const
type
=
isWxs
?
'
wxs
'
:
'
renderjs
'
const
{
query
}
=
parseVueRequest
(
id
)
debugRenderjs
(
id
)
if
(
!
(
query
as
any
).
name
)
{
const
name
:
string
=
(
query
as
any
).
name
if
(
!
name
)
{
this
.
error
(
`<script module="missing module name" lang="
${
type
}
">
${
code
}
...
...
@@ -29,11 +30,22 @@ ${code}
code
.
replace
(
/module
\.
exports
\s
*=/
,
'
export default
'
),
'
_sfc_
'
+
type
)}
export default Comp => {
if(!Comp.mixins){Comp.mixins = []}
Comp.mixins.push({beforeCreate(){ this['
${(
query
as
any
).
name
}
'] = this }})
Comp.mixins.push(_sfc_
${
type
}
)
}`
${
type
===
'
renderjs
'
?
genRenderjsCode
(
name
)
:
genWxsCode
(
name
)}
`
},
}
}
function
genRenderjsCode
(
name
:
string
)
{
return
`export default Comp => {
if(!Comp.mixins){Comp.mixins = []}
Comp.mixins.push({beforeCreate(){ this['
${
name
}
'] = this }})
Comp.mixins.push(_sfc_renderjs)
}`
}
function
genWxsCode
(
name
:
string
)
{
return
`export default Comp => {
if(!Comp.mixins){Comp.mixins = []}
Comp.mixins.push({beforeCreate(){ this['
${
name
}
'] = _sfc_wxs }})
}`
}
packages/vite-plugin-uni/src/utils/ast.ts
浏览文件 @
de8faa07
...
...
@@ -9,7 +9,14 @@ import {
ExportSpecifier
,
}
from
'
estree
'
import
{
Node
,
TextModes
,
NodeTypes
,
ElementNode
}
from
'
@vue/compiler-core
'
import
{
Node
,
TextModes
,
NodeTypes
,
ElementNode
,
DirectiveNode
,
SimpleExpressionNode
,
}
from
'
@vue/compiler-core
'
import
{
parse
}
from
'
@vue/compiler-dom
'
export
const
isProperty
=
(
node
:
BaseNode
):
node
is
Property
=>
...
...
@@ -70,3 +77,13 @@ export function parseVue(code: string, errors: SyntaxError[]) {
export
function
isElementNode
(
node
:
Node
):
node
is
ElementNode
{
return
node
.
type
===
NodeTypes
.
ELEMENT
}
export
function
isDirectiveNode
(
node
:
Node
):
node
is
DirectiveNode
{
return
node
.
type
===
NodeTypes
.
DIRECTIVE
}
export
function
isSimpleExpressionNode
(
node
:
Node
):
node
is
SimpleExpressionNode
{
return
node
.
type
===
NodeTypes
.
SIMPLE_EXPRESSION
}
packages/vite-plugin-uni/src/vue/options.ts
浏览文件 @
de8faa07
...
...
@@ -4,8 +4,9 @@ import { SFCTemplateCompileOptions } from '@vue/compiler-sfc'
import
{
isCustomElement
,
isNativeTag
}
from
'
@dcloudio/uni-shared
'
import
{
EXTNAME_VUE_RE
,
parseCompatConfigOnce
}
from
'
@dcloudio/uni-cli-shared
'
import
{
matchMedia
}
from
'
./transforms/m
atchMedia
'
import
{
transformMatchMedia
}
from
'
./transforms/transformM
atchMedia
'
import
{
VitePluginUniResolvedOptions
}
from
'
..
'
import
{
createTransformEvent
}
from
'
./transforms/transformEvent
'
function
createUniVueTransformAssetUrls
(
base
:
string
...
...
@@ -60,7 +61,11 @@ export function initPluginVueOptions(options: VitePluginUniResolvedOptions) {
compatConfig
)
compilerOptions
.
nodeTransforms
.
unshift
(
matchMedia
)
compilerOptions
.
nodeTransforms
.
unshift
(
createTransformEvent
({}))
if
(
options
.
platform
!==
'
mp-weixin
'
)
{
compilerOptions
.
nodeTransforms
.
unshift
(
transformMatchMedia
)
}
return
vueOptions
}
...
...
packages/vite-plugin-uni/src/vue/transforms/transformEvent.ts
0 → 100644
浏览文件 @
de8faa07
import
{
DirectiveNode
,
NodeTransform
}
from
'
@vue/compiler-core
'
import
{
isElementNode
,
isSimpleExpressionNode
}
from
'
../../utils
'
export
function
createTransformEvent
(
options
:
Record
<
string
,
string
>
)
{
const
transformEvent
:
NodeTransform
=
(
node
)
=>
{
if
(
!
isElementNode
(
node
))
{
return
}
node
.
props
.
forEach
((
prop
)
=>
{
const
{
arg
}
=
prop
as
DirectiveNode
if
(
arg
&&
isSimpleExpressionNode
(
arg
))
{
const
eventType
=
options
[
arg
.
content
]
if
(
eventType
)
{
// e.g tap => click
arg
.
content
=
eventType
}
}
})
}
return
transformEvent
}
packages/vite-plugin-uni/src/vue/transforms/
m
atchMedia.ts
→
packages/vite-plugin-uni/src/vue/transforms/
transformM
atchMedia.ts
浏览文件 @
de8faa07
import
{
ElementNode
,
NodeTransform
}
from
'
@vue/compiler-core
'
export
const
matchMedia
:
NodeTransform
=
(
node
)
=>
{
if
(
process
.
env
.
UNI_PLATFORM
!==
'
mp-weixin
'
&&
(
node
as
ElementNode
).
tag
===
'
match-media
'
)
{
export
const
transformMatchMedia
:
NodeTransform
=
(
node
)
=>
{
if
((
node
as
ElementNode
).
tag
===
'
match-media
'
)
{
;(
node
as
ElementNode
).
tag
=
'
uni-match-media
'
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录