From de8faa070b8a269a83a88e40840f5736f045ec74 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Wed, 19 May 2021 20:06:22 +0800 Subject: [PATCH] feat: transform event --- .../src/protocols/ui/createAnimation.ts | 20 +++++----- packages/uni-h5/dist/uni-h5.es.js | 38 ++++++++++--------- .../src/configResolved/plugins/pagesJson.ts | 34 ++++++++++++----- .../src/configResolved/plugins/renderjs.ts | 24 +++++++++--- packages/vite-plugin-uni/src/utils/ast.ts | 19 +++++++++- packages/vite-plugin-uni/src/vue/options.ts | 9 ++++- .../src/vue/transforms/matchMedia.ts | 10 ----- .../src/vue/transforms/transformEvent.ts | 21 ++++++++++ .../src/vue/transforms/transformMatchMedia.ts | 7 ++++ 9 files changed, 126 insertions(+), 56 deletions(-) delete mode 100644 packages/vite-plugin-uni/src/vue/transforms/matchMedia.ts create mode 100644 packages/vite-plugin-uni/src/vue/transforms/transformEvent.ts create mode 100644 packages/vite-plugin-uni/src/vue/transforms/transformMatchMedia.ts diff --git a/packages/uni-api/src/protocols/ui/createAnimation.ts b/packages/uni-api/src/protocols/ui/createAnimation.ts index b51044014..7f7048a2b 100644 --- a/packages/uni-api/src/protocols/ui/createAnimation.ts +++ b/packages/uni-api/src/protocols/ui/createAnimation.ts @@ -1,18 +1,18 @@ -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校验 diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index 19dbc7570..2c4d1182a 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -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 } }; }); diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts b/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts index c2a0c6762..a9392e83d 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/pagesJson.ts @@ -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(',')}]` } diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts b/packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts index 726bb1ee5..417122507 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/renderjs.ts @@ -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( `