@tarojs/plugin-framework-solid 4.0.0-beta.83 → 4.0.0-beta.84

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sources":["../src/runtime/react-meta.ts","../src/runtime/utils.ts","../src/runtime/hooks.ts","../src/runtime/connect.ts","../src/runtime/connect-native.ts","../src/runtime/index.ts"],"sourcesContent":["import { EMPTY_OBJ } from '@tarojs/shared'\nimport { createContext } from 'solid-js'\n\nimport type React from 'react'\nimport type Solid from 'solid-js'\n\ninterface ReactMeta {\n PageContext: React.Context<string>\n R: typeof React\n}\n\ninterface SolidMeta {\n PageContext: Solid.Context<string>\n}\n\nexport const reactMeta: ReactMeta = {\n PageContext: EMPTY_OBJ,\n R: EMPTY_OBJ,\n}\n\nexport const solidMeta: SolidMeta = {\n PageContext: createContext(''),\n}\n","import { Current } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\n\nimport type * as React from 'react'\n\nexport const HOOKS_APP_ID = 'taro-app'\n\nexport function isClassComponent (R: typeof React, component): boolean {\n const prototype = component.prototype\n\n // For React Redux\n if (component.displayName?.includes('Connect')) return false\n\n return (\n isFunction(component.render) ||\n !!prototype?.isReactComponent ||\n prototype instanceof R.Component // compat for some others react-like library\n )\n}\n\nexport function ensureIsArray<T> (item: T | T[]): T[] {\n if (isArray(item)) {\n return item\n } else {\n return item ? [item] : []\n }\n}\n\n/**\n * set writable, enumerable to true\n */\nexport function setDefaultDescriptor (obj: Record<string, any>) {\n obj.writable = true\n obj.enumerable = true\n return obj\n}\n\n/**\n * 设置入口的路由参数\n * @param options 小程序传入的参数\n */\nexport function setRouterParams (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n}\n","import { Current, getPageInstance, injectPageInstance } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\nimport {\n createMemo,\n createRenderEffect,\n onCleanup,\n useContext,\n} from 'solid-js'\n\nimport { reactMeta, solidMeta } from './react-meta'\nimport { HOOKS_APP_ID } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps } from '@tarojs/runtime'\nimport type { Func } from '@tarojs/taro/types/compile'\n\nconst createTaroHook = (lifecycle: keyof PageLifeCycle | keyof AppInstance) => {\n return (fn: Func) => {\n if (process.env.FRAMEWORK !== 'solid') {\n const { R: React, PageContext } = reactMeta\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n const instRef = React.useRef<Instance<PageProps>>()\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = instRef.current = getPageInstance(id)\n let first = false\n if (!inst) {\n first = true\n instRef.current = Object.create(null)\n inst = instRef.current!\n }\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle]) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle]) = [\n ...((inst[lifecycle]) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = instRef.current\n if (!inst) return\n const list = inst![lifecycle]\n if (list === callback) {\n (inst[lifecycle]) = undefined\n } else if (isArray(list)) {\n (inst[lifecycle]) = list.filter(item => item !== callback)\n }\n instRef.current = undefined\n }\n }, [])\n } else {\n const context = useContext(solidMeta.PageContext)\n const id = context || HOOKS_APP_ID\n\n createRenderEffect(() => {\n let inst = getPageInstance(id)\n let first = false\n if (!inst) {\n first = true\n inst = Object.create({\n id: id,\n type: 'page',\n })\n }\n\n if (isFunction(inst![lifecycle])) {\n inst![lifecycle] = [inst![lifecycle], fn]\n } else {\n inst![lifecycle] = [\n ...((inst![lifecycle]) || []),\n fn\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n\n onCleanup(() => {\n const list = inst![lifecycle]\n if (list === fn) {\n (inst![lifecycle]) = undefined\n } else if (isArray(list)) {\n (inst![lifecycle]) = list.filter(item => item !== fn)\n }\n })\n })\n }\n }\n}\n\n/** LifeCycle */\nexport const useDidHide = createTaroHook('componentDidHide')\nexport const useDidShow = createTaroHook('componentDidShow')\n\n/** App */\nexport const useError = createTaroHook('onError')\nexport const useUnhandledRejection = createTaroHook('onUnhandledRejection')\nexport const useLaunch = createTaroHook('onLaunch')\nexport const usePageNotFound = createTaroHook('onPageNotFound')\n\n/** Page */\nexport const useLoad = createTaroHook('onLoad')\nexport const usePageScroll = createTaroHook('onPageScroll')\nexport const usePullDownRefresh = createTaroHook('onPullDownRefresh')\nexport const usePullIntercept = createTaroHook('onPullIntercept')\nexport const useReachBottom = createTaroHook('onReachBottom')\nexport const useResize = createTaroHook('onResize')\nexport const useUnload = createTaroHook('onUnload')\n\n/** Mini-Program */\nexport const useAddToFavorites = createTaroHook('onAddToFavorites')\nexport const useOptionMenuClick = createTaroHook('onOptionMenuClick')\nexport const useSaveExitState = createTaroHook('onSaveExitState')\nexport const useShareAppMessage = createTaroHook('onShareAppMessage')\nexport const useShareTimeline = createTaroHook('onShareTimeline')\nexport const useTitleClick = createTaroHook('onTitleClick')\n\n/** Router */\nexport const useReady = createTaroHook('onReady')\nexport const useRouter = (dynamic = false) => {\n if (process.env.FRAMEWORK !== 'solid') {\n const React = reactMeta.R\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n } else {\n return dynamic ? Current.router : createMemo(() => Current.router)\n }\n}\nexport const useTabItemTap = createTaroHook('onTabItemTap')\n\nexport const useScope = () => undefined\n","import * as SolidReconciler from '@tarojs/plugin-framework-react/dist/reconciler'\nimport { Current, document, getPageInstance, incrementId, injectPageInstance, PAGE_INIT, perf } from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks } from '@tarojs/shared'\nimport * as Solid from 'solid-js'\n\nimport { reactMeta, solidMeta } from './react-meta'\nimport { ensureIsArray, HOOKS_APP_ID, isClassComponent, setDefaultDescriptor, setRouterParams } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps, ReactAppInstance, ReactPageComponent, TaroNode } from '@tarojs/runtime'\nimport type { AppConfig } from '@tarojs/taro'\nimport type React from 'react'\nimport type TReactDOM from 'react-dom'\nimport type TReactDOMClient from 'react-dom/client'\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\nlet h: typeof React.createElement\nlet ReactDOM: typeof TReactDOM & typeof TReactDOMClient\nlet Fragment: typeof React.Fragment\n\nconst pageKeyId = incrementId()\n\nexport function setReconciler (ReactDOM?) {\n hooks.tap('getLifecycle', function (instance, lifecycle: string) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n })\n\n hooks.tap('modifyMpEvent', function (event) {\n // Note: ohos 上事件没有设置 type 类型 setter 方法导致报错\n Object.defineProperty(event, 'type', {\n value: event.type.replace(/-/g, '')\n })\n })\n\n hooks.tap('batchedEventUpdates', function (cb) {\n if (process.env.FRAMEWORK !== 'solid') {\n ReactDOM?.unstable_batchedUpdates(cb)\n } else {\n Solid.batch(cb)\n }\n })\n\n hooks.tap('mergePageInstance', function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n const prevList = prev[item]\n const nextList = ensureIsArray<() => any>(next[item])\n next[item] = nextList.concat(prevList)\n })\n })\n\n // TODO 使用 solid 时,暂不支持以下事件\n if (process.env.TARO_PLATFORM === 'web' && process.env.FRAMEWORK !== 'solid') {\n hooks.tap('createPullDownComponent', (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.ComponentProps<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return h(\n customWrapper || 'taro-pull-to-refresh-core',\n null,\n h(el, {\n ...newProps,\n ...refs\n })\n )\n })\n })\n\n hooks.tap('getDOMNode', (inst) => {\n // 由于react 18移除了ReactDOM.findDOMNode方法,修复H5端 Taro.createSelectorQuery设置in(scope)时,报错问题\n // https://zh-hans.react.dev/reference/react-dom/findDOMNode\n if (!inst) {\n return document\n } else if (inst instanceof HTMLElement) {\n return inst\n } else if (inst.$taroPath) {\n const el = document.getElementById(inst.$taroPath)\n return el ?? document\n }\n })\n }\n}\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n return (Page: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, Page)\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n\n return class PageWrapper extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n Current.app?.onError?.(error.message + error.stack)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(error)\n console.error(info.componentStack)\n }\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(reactMeta.PageContext.Provider, { value: id }, h(Page, {\n ...this.props,\n ...refs\n }))\n\n if (process.env.TARO_PLATFORM === 'web') {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n } else {\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n }\n}\n\n/**\n * 桥接小程序 App 构造器和 React 渲染流程\n * @param App 用户编写的入口组件\n * @param react 框架\n * @param dom 框架渲染器\n * @param config 入口组件配置 app.config.js 的内容\n * @returns 传递给 App 构造器的对象 obj :App(obj)\n */\nexport function createReactApp (\n App: React.ComponentClass,\n react: typeof React,\n dom,\n config: AppConfig\n) {\n if (process.env.NODE_ENV !== 'production') {\n ensure(!!dom, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'preact\\'/\\'nerv\\' ')\n }\n\n reactMeta.R = react\n h = react.createElement\n ReactDOM = dom\n Fragment = react.Fragment\n const appInstanceRef = react.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(react, App)\n let appWrapper: AppWrapper\n let appWrapperResolver: (value: AppWrapper) => void\n const appWrapperPromise = new Promise<AppWrapper>(resolve => (appWrapperResolver = resolve))\n\n setReconciler(ReactDOM)\n\n function getAppInstance (): ReactAppInstance | null {\n return appInstanceRef.current\n }\n\n function waitAppWrapper (cb: () => void) {\n appWrapper ? cb() : appWrapperPromise.then(() => cb())\n }\n\n function renderReactRoot () {\n let appId = 'app'\n if (process.env.TARO_PLATFORM === 'web') {\n appId = config?.appId || appId\n }\n const container = document.getElementById(appId) as unknown as Element\n if ((react.version || '').startsWith('18')) {\n const root = ReactDOM.createRoot(container)\n root.render?.(h(AppWrapper))\n } else {\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render?.(h(AppWrapper), container)\n }\n }\n\n class AppWrapper extends react.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n constructor (props) {\n super(props)\n appWrapper = this\n appWrapperResolver(this)\n }\n\n public mount (pageComponent: ReactPageComponent, id: string, cb: () => void) {\n const pageWrapper = connectReactPage(react, id)(pageComponent)\n const key = id + pageKeyId()\n const page = () => h(pageWrapper, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate((...args) => {\n perf.stop(PAGE_INIT)\n return cb(...args)\n })\n }\n\n public unmount (id: string, cb: () => void) {\n const elements = this.elements\n const idx = elements.findIndex(item => item.props.tid === id)\n elements.splice(idx, 1)\n this.forceUpdate(cb)\n }\n\n public render () {\n const { pages, elements } = this\n\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page())\n }\n\n let props: React.ComponentProps<any> | null = null\n\n if (isReactComponent) {\n props = { ref: appInstanceRef }\n }\n\n return h(\n App,\n props,\n process.env.TARO_PLATFORM === 'web' ? h(Fragment ?? 'div', null, elements.slice()) : elements.slice()\n )\n }\n }\n\n if (process.env.TARO_PLATFORM !== 'web') {\n renderReactRoot()\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.call('getMiniLifecycleImpl')!.app\n\n const appObj: AppInstance = Object.create({\n render (cb: () => void) {\n appWrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n if (appWrapper) {\n appWrapper.mount(component, id, cb)\n } else {\n appWrapperPromise.then(appWrapper => appWrapper.mount(component, id, cb))\n }\n },\n\n unmount (id: string, cb: () => void) {\n appWrapper.unmount(id, cb)\n }\n }, {\n config: setDefaultDescriptor({\n configurable: true,\n value: config\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n renderReactRoot()\n }\n\n const onLaunch = () => {\n // 用户编写的入口组件实例\n const app = getAppInstance()\n this.$app = app\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onLaunch?.(options)\n }\n triggerAppHook('onLaunch', options)\n }\n\n waitAppWrapper(onLaunch)\n }\n }),\n\n [ONSHOW]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n const onShow = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidShow\n app?.componentDidShow?.(options)\n // functional component, useDidShow\n triggerAppHook('onShow', options)\n }\n\n waitAppWrapper(onShow)\n }\n }),\n\n [ONHIDE]: setDefaultDescriptor({\n value () {\n const onHide = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidHide\n app?.componentDidHide?.()\n // functional component, useDidHide\n triggerAppHook('onHide')\n }\n\n waitAppWrapper(onHide)\n }\n }),\n\n onError: setDefaultDescriptor({\n value (error: string) {\n const onError = () => {\n const app = getAppInstance()\n app?.onError?.(error)\n triggerAppHook('onError', error)\n if (process.env.NODE_ENV !== 'production' && error?.includes('Minified React error')) {\n console.warn('React 出现报错,请打开编译配置 mini.debugReact 查看报错详情:https://docs.taro.zone/docs/config-detail#minidebugreact')\n }\n }\n\n waitAppWrapper(onError)\n }\n }),\n\n onUnhandledRejection: setDefaultDescriptor({\n value (res: unknown) {\n const onUnhandledRejection = () => {\n const app = getAppInstance()\n app?.onUnhandledRejection?.(res)\n triggerAppHook('onUnhandledRejection', res)\n }\n\n waitAppWrapper(onUnhandledRejection)\n }\n }),\n\n onPageNotFound: setDefaultDescriptor({\n value (res: unknown) {\n const onPageNotFound = () => {\n const app = getAppInstance()\n app?.onPageNotFound?.(res)\n triggerAppHook('onPageNotFound', res)\n }\n\n waitAppWrapper(onPageNotFound)\n }\n })\n })\n\n function triggerAppHook (lifecycle: keyof PageLifeCycle | keyof AppInstance, ...option) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.call('getLifecycle', instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app, option))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n\nexport type SolidComponent = (props?: any) => TaroNode\nexport function createSolidApp (App: SolidComponent, config: AppConfig) {\n setReconciler()\n\n const appRef: AppInstance = {\n mount: () => {},\n unmount: () => {},\n }\n function getAppInstance(): any {\n return appRef\n }\n\n function AppWrapper () {\n const [pages, setPages] = Solid.createSignal<any[]>([])\n\n appRef.mount = (component: SolidComponent, id: string) => {\n setPages((old) => {\n return [...old, { id, component }]\n })\n }\n appRef.unmount = (id) => {\n setPages(\n pages().filter((item) => {\n return item.id !== id\n })\n )\n }\n\n return SolidReconciler.createComponent(App, {\n ref: appRef,\n children: SolidReconciler.createComponent(Solid.For as unknown as SolidComponent, {\n get each() {\n return pages()\n },\n children: ({ id, component }) => {\n const children = () =>\n SolidReconciler.createComponent(solidMeta.PageContext.Provider as unknown as SolidComponent, {\n value: id,\n children: () => {\n injectPageInstance(\n { id: id, type: 'page' } as unknown as Instance<PageProps>,\n id\n )\n return SolidReconciler.createComponent(component, {\n tid: id,\n })\n },\n })\n\n const root = process.env.TARO_PLATFORM === 'web'\n ? document.createElement('div')\n : SolidReconciler.createElement('root')\n if (process.env.TARO_PLATFORM === 'web') {\n root.setAttribute('id', id)\n root.classList.add('taro_page')\n } else {\n SolidReconciler.setProp(root, 'id', id)\n }\n SolidReconciler.insert(root, children)\n return root\n },\n }),\n })\n }\n\n function renderSolidRoot() {\n let appId = 'app'\n if (process.env.TARO_PLATFORM === 'web') {\n appId = config?.appId || appId\n }\n\n const container = document.getElementById(appId)\n SolidReconciler.render(AppWrapper, container)\n }\n\n if (process.env.TARO_PLATFORM !== 'web') {\n renderSolidRoot()\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.call('getMiniLifecycleImpl')!.app\n\n const appObj: AppInstance = Object.create(\n {\n mount(component: SolidComponent, id: string, cb: () => void) {\n const appInstance = getAppInstance()\n appInstance?.mount(component, id)\n Solid.batch((...args) => {\n perf.stop(PAGE_INIT)\n return cb(...args)\n })\n },\n unmount(id: string, cb: () => void) {\n const appInstance = getAppInstance()\n appInstance?.unmount(id)\n Solid.batch(cb)\n },\n },\n {\n config: setDefaultDescriptor({\n configurable: true,\n value: config,\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value(options) {\n setRouterParams(options)\n\n if (process.env.TARO_PLATFORM === 'web') {\n renderSolidRoot()\n }\n\n const onLaunch = () => {\n const app = getAppInstance()\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onCreate?.()\n }\n }\n\n onLaunch()\n triggerAppHook('onLaunch', options)\n },\n }),\n [ONSHOW]: setDefaultDescriptor({\n value(options) {\n setRouterParams(options)\n triggerAppHook('onShow', options)\n },\n }),\n [ONHIDE]: setDefaultDescriptor({\n value() {\n triggerAppHook('onHide')\n },\n }),\n onError: setDefaultDescriptor({\n value(error: string) {\n triggerAppHook('onError', error)\n },\n }),\n onPageNotFound: setDefaultDescriptor({\n value(res: unknown) {\n triggerAppHook('onPageNotFound', res)\n },\n }),\n }\n )\n\n function triggerAppHook(lifecycle: keyof PageLifeCycle | keyof AppInstance, ...option) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.call('getLifecycle', instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach((cb) => cb.apply(app, option))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n","import {\n addLeadingSlash, CONTEXT_ACTIONS, Current, document, eventCenter,\n eventHandler, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath,\n incrementId, injectPageInstance, ON_HIDE, ON_READY, ON_SHOW,\n removePageInstance, requestAnimationFrame, safeExecute, window\n} from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks, isUndefined } from '@tarojs/shared'\n\nimport { setReconciler } from './connect'\nimport { reactMeta } from './react-meta'\nimport { isClassComponent } from './utils'\n\nimport type { Instance, MpInstance, TaroRootElement } from '@tarojs/runtime'\nimport type { AppInstance, PageInstance } from '@tarojs/taro'\nimport type { Func } from '@tarojs/taro/types/compile'\nimport type React from 'react'\n\ndeclare const getCurrentPages: () => PageInstance[]\n\nconst getNativeCompId = incrementId()\nlet h: typeof React.createElement\nlet ReactDOM\nlet nativeComponentApp: AppInstance\ninterface InitNativeComponentEntryParams {\n R: typeof React\n ReactDOM: typeof ReactDOM\n cb?: Func\n // 是否使用默认的 DOM 入口 - app;默认为true,false的时候,会创建一个新的dom并且把它挂载在 app 下面\n isDefaultEntryDom?: boolean\n}\n\nfunction initNativeComponentEntry (params: InitNativeComponentEntryParams) {\n const { R, ReactDOM, cb, isDefaultEntryDom = true } = params\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n compId: string\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n h(\n 'root',\n {\n ref: this.root,\n id: this.props.compId\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n if (isDefaultEntryDom) {\n Current.app = this\n } else {\n nativeComponentApp = this\n }\n cb && cb()\n }\n\n mount (Component, compId, getCtx, cb?) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n const item = {\n compId,\n element: h(NativeComponentWrapper, {\n key: compId,\n compId,\n getCtx,\n renderComponent (ctx) {\n return h(\n reactMeta.PageContext.Provider,\n { value: compId },\n h(\n Component,\n {\n ...(ctx.data ||= {}).props,\n ...refs,\n $scope: ctx\n }\n )\n )\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n }, () => cb && cb())\n }\n\n unmount (compId, cb?) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n }, () => {\n removePageInstance(compId)\n cb && cb()\n })\n }\n\n render () {\n const components = this.state.components\n\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler(ReactDOM)\n\n let app = document.getElementById('app')\n if (!isDefaultEntryDom && !nativeComponentApp) {\n // create\n const nativeApp = document.createElement('nativeComponent')\n // insert\n app?.appendChild(nativeApp)\n app = nativeApp\n }\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render(\n h(Entry, {}),\n app\n )\n}\n\nexport function createNativePageConfig (Component, pageName: string, data: Record<string, unknown>, react: typeof React, reactDOM: typeof ReactDOM, pageConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactDOM\n setReconciler(ReactDOM)\n const [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES\n ] = hooks.call('getMiniLifecycleImpl')!.page\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n let pageElement: TaroRootElement | null = null\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const id = pageName ?? `taro_page_${getNativeCompId()}`\n function setCurrentRouter (page: MpInstance) {\n const router = page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n\n const pageObj: Record<string, any> = {\n options: pageConfig,\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TaroGeneral.TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n Current.page = this as any\n this.config = pageConfig || {}\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n\n const mountCallback = () => {\n pageElement = document.getElementById($taroPath)\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ONLOAD, this.$taroParams)\n loadResolver()\n pageElement.ctx = this\n pageElement.performUpdate(true, cb)\n }\n\n const mount = () => {\n if (!Current.app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n cb: () => {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n })\n } else {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n }\n\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n [ONUNLOAD] () {\n const $taroPath = this.$taroPath\n // 销毁当前页面的上下文信息\n window.trigger(CONTEXT_ACTIONS.DESTORY, $taroPath)\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n resetCurrent()\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n removePageInstance($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n window.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n window.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n // 设置 Current 的 page 和 router\n if (Current.page === this) {\n Current.page = null\n Current.router = null\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_HIDE)\n // 通过事件触发子组件的生命周期\n eventCenter.trigger(getOnHideEventKey(id))\n },\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n LIFECYCLES.forEach((lifecycle) => {\n pageObj[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (Component[lifecycle] ||\n Component.prototype?.[lifecycle] ||\n Component[lifecycle.replace(/^on/, 'enable')]\n ) {\n pageObj[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n pageObj.eh = eventHandler\n\n if (!isUndefined(data)) {\n pageObj.data = data\n }\n\n hooks.call('modifyPageObject', pageObj)\n\n return pageObj\n}\n\nexport function createH5NativeComponentConfig (\n Component,\n react: typeof React,\n reactdom: typeof ReactDOM,\n) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n\n return Component\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n const { isNewBlended } = componentConfig\n\n const componentObj: Record<string, any> = {\n options: componentConfig,\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component?.forceUpdate()\n }\n }\n },\n created () {\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n if (!app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n isDefaultEntryDom: !isNewBlended\n })\n }\n },\n attached () {\n const compId = this.compId = getNativeCompId()\n setCurrent(compId)\n this.config = componentConfig\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.mount!(Component, compId, () => this, () => {\n const instance = getPageInstance(compId)\n\n if (instance && instance.node) {\n const el = document.getElementById(instance.node.uid)\n\n if (el) {\n el.ctx = this\n }\n }\n })\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n resetCurrent()\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show (options) {\n safeExecute(this.compId, 'onShow', options)\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler,\n onLoad (options) {\n safeExecute(this.compId, 'onLoad', options)\n },\n onUnload () {\n safeExecute(this.compId, 'onUnload')\n }\n }\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (\n Component.onShareAppMessage ||\n Component.prototype?.onShareAppMessage ||\n Component.enableShareAppMessage\n ) {\n componentObj.methods.onShareAppMessage = function (options) {\n const target = options?.target\n if (target) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target!.dataset = element.dataset\n }\n }\n return safeExecute(this.compId, 'onShareAppMessage', options)\n }\n }\n if (\n Component.onShareTimeline ||\n Component.prototype?.onShareTimeline ||\n Component.enableShareTimeline\n ) {\n componentObj.methods.onShareTimeline = function () {\n return safeExecute(this.compId, 'onShareTimeline')\n }\n }\n\n return componentObj\n}\n\nfunction setCurrent (compId: string) {\n if (!getCurrentPages || typeof getCurrentPages !== 'function') return\n\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n $taroPath: compId,\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport * as taroHooks from './hooks'\n\nhooks.tap('initNativeApi', function (taro) {\n for (const hook in taroHooks) {\n taro[hook] = taroHooks[hook]\n }\n})\n\nif (process.env.FRAMEWORK === 'preact' && process.env.TARO_PLATFORM === 'mini') {\n const options = require('preact').options\n const oldVNodeHook = options.vnode\n const oldDiffedHook = options.diffed\n options.vnode = vnode => {\n const { type, props } = vnode\n let normalizedProps = props\n\n // only normalize props on Element nodes\n if (typeof type === 'string') {\n normalizedProps = {}\n\n for (let i in props) {\n const value = props[i]\n\n if (/^on/.test(i)) {\n i = i.toLowerCase()\n }\n\n if (type === 'map' && i === 'onregionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n normalizedProps.onbegin = value\n normalizedProps.onend = value\n continue\n }\n\n normalizedProps[i] = value\n }\n\n vnode.props = normalizedProps\n }\n\n if (oldVNodeHook) oldVNodeHook(vnode)\n }\n options.diffed = function (newVNode) {\n const domProp = Object.keys(newVNode).find(k => (newVNode[k]?.setAttribute))\n const dom = domProp ? newVNode[domProp] : null\n const newVNodeProps = newVNode.props\n if (dom) { /** ElementNode */\n for (const propName in newVNodeProps) {\n const propValue = newVNodeProps[propName]\n if (propValue === false && dom.props?.[propName] === undefined) {\n // 值为 false 的属性在 Preact 的 diff 中被 removeAttribute 了,这里手动 setAttribute\n // fix https://github.com/NervJS/taro/issues/11197\n dom.setAttribute(propName, propValue)\n }\n }\n }\n if (oldDiffedHook) oldDiffedHook(newVNode)\n }\n\n hooks.tap('modifyMpEvent', e => {\n const type = e.type\n if (type === 'tap') {\n e.type = 'click'\n } else if (type === 'focus') {\n // 兼容 preact/compat/src/render.js options.vnode 的处理逻辑\n e.type = 'focusin'\n } else if (type === 'blur') {\n e.type = 'focusout'\n }\n })\n // hooks.modifyDispatchEventImpls?.push(e => {\n // })\n}\n\nexport * from './connect'\nexport * from './connect-native'\nexport * from './hooks'\n"],"names":["h","ReactDOM"],"mappings":"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"}