@tarojs/runtime 4.2.1-beta.3 → 4.2.2-beta.0
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/dom/element.js +1 -1
- package/dist/dom/element.js.map +1 -1
- package/dist/dom/nearest-ctx.d.ts +9 -0
- package/dist/dom/nearest-ctx.js +49 -0
- package/dist/dom/nearest-ctx.js.map +1 -0
- package/dist/dom/node.d.ts +3 -1
- package/dist/dom/node.js +10 -0
- package/dist/dom/node.js.map +1 -1
- package/dist/dom/root.d.ts +2 -0
- package/dist/dom/root.js +4 -0
- package/dist/dom/root.js.map +1 -1
- package/dist/dsl/common.d.ts +1 -1
- package/dist/dsl/common.js +18 -9
- package/dist/dsl/common.js.map +1 -1
- package/dist/index.cjs.d.ts +9 -2
- package/dist/index.cjs.js +81 -10
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime.esm.d.ts +9 -2
- package/dist/runtime.esm.js +79 -11
- package/dist/runtime.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/dsl/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../../src/dsl/common.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, EventChannel,\n getComponentsAlias, hooks, internalComponents,\n isArray, isEnableTTDom,\n isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { taroWindowProvider } from '../bom/window'\nimport { BEHAVIORS, CONTEXT_ACTIONS, CUSTOM_WRAPPER, EXTERNAL_CLASSES, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, VIEW } from '../constants'\nimport { Current } from '../current'\nimport { eventHandler } from '../dom/event'\nimport { eventCenter } from '../emitter/emitter'\nimport env from '../env'\nimport { perf } from '../perf'\nimport { customWrapperCache, incrementId } from '../utils'\nimport { addLeadingSlash } from '../utils/router'\n\nimport type { TaroRootElement } from '../dom/root'\nimport type { MpInstance, PageConfig, TFunc } from '../interface'\nimport type { Instance, PageInstance, PageProps } from './instance'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.call('mergePageInstance', instances.get(id), inst)\n instances.set(id, inst)\n}\n\nexport function getPageInstance (id: string): Instance | undefined {\n return instances.get(id)\n}\n\nexport function removePageInstance (id: string) {\n instances.delete(id)\n}\n\nexport function safeExecute (path: string, lifecycle: string, ...args: unknown[]) {\n const instance = instances.get(path)\n\n if (instance == null) {\n return\n }\n\n const func = hooks.call('getLifecycle', instance, lifecycle as keyof PageInstance)\n\n if (isArray(func)) {\n const res = func.map(fn => fn.apply(instance, args))\n return res[0]\n }\n\n if (!isFunction(func)) {\n return\n }\n\n return func.apply(instance, args)\n}\n\nexport function stringify (obj?: Record<string, unknown>) {\n if (obj == null) {\n return ''\n }\n const path = Object.keys(obj).map((key) => {\n return key + '=' + obj[key]\n }).join('&')\n return path === '' ? path : '?' + path\n}\n\nexport function getPath (id: string, options?: Record<string, unknown>): string {\n const idx = id.indexOf('?')\n if (process.env.TARO_PLATFORM === 'web') {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options?.stamp ? { stamp: options.stamp } : {})}`\n } else {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options)}`\n }\n}\n\nexport function getOnReadyEventKey (path: string) {\n return path + '.' + ON_READY\n}\n\nexport function getOnShowEventKey (path: string) {\n return path + '.' + ON_SHOW\n}\n\nexport function getOnHideEventKey (path: string) {\n return path + '.' + ON_HIDE\n}\n\nexport function createPageConfig (component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig) {\n // 小程序 Page 构造器是一个傲娇小公主,不能把复杂的对象挂载到参数上\n const id = pageName ?? `taro_page_${pageId()}`\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 pageElement: TaroRootElement | null = null\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n\n function setCurrentRouter (page: MpInstance) {\n const router = process.env.TARO_PLATFORM === 'web' ? page.$taroPath : 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 let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n\n perf.start(PAGE_INIT)\n\n Current.page = this as any\n this.config = pageConfig || {}\n\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n if (process.env.TARO_PLATFORM === 'web') {\n config.path = $taroPath\n }\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n\n // 初始化当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n pageElement = (env.document as any).getPageDocumentById(this.__webviewId__)\n } else {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\n }\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_PLATFORM !== 'web') {\n pageElement.ctx = this\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n (pageElement as any).sync()\n } else {\n pageElement.performUpdate(true, cb)\n }\n } else {\n isFunction(cb) && cb()\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 if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.DESTROY, $taroPath)\n }\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($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 raf(() => 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 if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n }\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 if (process.env.TARO_PLATFORM === 'web') {\n config.getOpenerEventChannel = () => {\n return EventChannel.pageChannel\n }\n }\n\n const isSWAN = process.env.TARO_ENV === 'swan'// 百度小程序\n LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n let isEvent = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n lifecycle = lifecycle.replace(/^events:/, () => {\n isEvent = true\n return ''\n })\n\n if (isEvent && process.env.TARO_ENV === 'alipay') {\n // 初始化 config.events 对象\n if (!config.events) config.events = {}\n config.events[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n } else {\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isSWAN) {\n return exec()\n }\n\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\n }\n }\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 pageConfig?.[lifecycle.replace(/^on/, 'enable')]\n ) {\n config[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = env.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 config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n hooks.call('modifyPageObject', config)\n\n return config\n}\n\nexport function createComponentConfig (component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>) {\n const id = componentName ?? `taro_component_${pageId()}`\n let componentElement: TaroRootElement | null = null\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const config: any = {\n [ATTACHED] () {\n perf.start(PAGE_INIT)\n this.pageIdCache = this.getPageId?.() || pageId()\n\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.mount!(component, path, () => {\n componentElement = env.document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n this.$taroInstances = instances.get(path)\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_PLATFORM !== 'web') {\n componentElement.ctx = this\n if (process.env.TARO_ENV !== 'tt' || !isEnableTTDom()) {\n componentElement.performUpdate(true)\n }\n }\n })\n },\n [DETACHED] () {\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.unmount!(path, () => {\n instances.delete(path)\n if (componentElement) {\n componentElement.ctx = null\n }\n })\n },\n methods: {\n eh: eventHandler\n }\n }\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n [OPTIONS, EXTERNAL_CLASSES, BEHAVIORS].forEach(key => {\n config[key] = component[key] ?? EMPTY_OBJ\n })\n\n return config\n}\n\nexport function createRecursiveComponentConfig (componentName?: string) {\n const isCustomWrapper = componentName === CUSTOM_WRAPPER\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const lifeCycles = isCustomWrapper\n ? {\n [ATTACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.set(componentId, this)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = this\n }\n }\n },\n [DETACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.delete(componentId)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = null\n }\n }\n }\n }\n : EMPTY_OBJ\n\n // 不同平台的个性化配置\n const extraOptions: { [key: string]: any } = {}\n if (process.env.TARO_ENV === 'jd') {\n extraOptions.addGlobalClass = true\n }\n\n return hooks.call('modifyRecursiveComponentConfig',\n {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: getComponentsAlias(internalComponents)[VIEW]._num\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n ...extraOptions,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles\n }, { isCustomWrapper })\n}\n"],"names":["raf"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../src/dsl/common.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, EventChannel,\n getComponentsAlias, hooks, internalComponents,\n isArray, isEnableTTDom,\n isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { taroWindowProvider } from '../bom/window'\nimport { BEHAVIORS, CONTEXT_ACTIONS, CUSTOM_WRAPPER, EXTERNAL_CLASSES, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, VIEW } from '../constants'\nimport { Current } from '../current'\nimport { eventHandler } from '../dom/event'\nimport { bumpNearestCtxEpochForRoot } from '../dom/nearest-ctx'\nimport { eventCenter } from '../emitter/emitter'\nimport env from '../env'\nimport { perf } from '../perf'\nimport { customWrapperCache, incrementId } from '../utils'\nimport { addLeadingSlash } from '../utils/router'\n\nimport type { TaroRootElement } from '../dom/root'\nimport type { MpInstance, PageConfig, TFunc } from '../interface'\nimport type { Instance, PageInstance, PageProps } from './instance'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.call('mergePageInstance', instances.get(id), inst)\n instances.set(id, inst)\n}\n\nexport function getPageInstance (id: string): Instance | undefined {\n return instances.get(id)\n}\n\nexport function removePageInstance (id: string) {\n instances.delete(id)\n}\n\nexport function safeExecute (path: string, lifecycle: string, ...args: unknown[]) {\n const instance = instances.get(path)\n\n if (instance == null) {\n return\n }\n\n const func = hooks.call('getLifecycle', instance, lifecycle as keyof PageInstance)\n\n if (isArray(func)) {\n const res = func.map(fn => fn.apply(instance, args))\n return res[0]\n }\n\n if (!isFunction(func)) {\n return\n }\n\n return func.apply(instance, args)\n}\n\nexport function stringify (obj?: Record<string, unknown>) {\n if (obj == null) {\n return ''\n }\n const path = Object.keys(obj).map((key) => {\n return key + '=' + obj[key]\n }).join('&')\n return path === '' ? path : '?' + path\n}\n\nexport function getPath (id: string, options?: Record<string, unknown>): string {\n const idx = id.indexOf('?')\n if (process.env.TARO_PLATFORM === 'web') {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options?.stamp ? { stamp: options.stamp } : {})}`\n } else {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options)}`\n }\n}\n\nexport function getOnReadyEventKey (path: string) {\n return path + '.' + ON_READY\n}\n\nexport function getOnShowEventKey (path: string) {\n return path + '.' + ON_SHOW\n}\n\nexport function getOnHideEventKey (path: string) {\n return path + '.' + ON_HIDE\n}\n\nexport function createPageConfig (component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig) {\n // 小程序 Page 构造器是一个傲娇小公主,不能把复杂的对象挂载到参数上\n const id = pageName ?? `taro_page_${pageId()}`\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 pageElement: TaroRootElement | null = null\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n\n function setCurrentRouter (page: MpInstance) {\n const router = process.env.TARO_PLATFORM === 'web' ? page.$taroPath : 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 let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n\n perf.start(PAGE_INIT)\n\n Current.page = this as any\n this.config = pageConfig || {}\n\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n if (process.env.TARO_PLATFORM === 'web') {\n config.path = $taroPath\n }\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n\n // 初始化当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n pageElement = (env.document as any).getPageDocumentById(this.__webviewId__)\n } else {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\n }\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_PLATFORM !== 'web') {\n pageElement.ctx = this\n bumpNearestCtxEpochForRoot(pageElement)\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n (pageElement as any).sync()\n } else {\n pageElement.performUpdate(true, cb)\n }\n } else {\n isFunction(cb) && cb()\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 if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.DESTROY, $taroPath)\n }\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($taroPath)\n if (pageElement) {\n bumpNearestCtxEpochForRoot(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 raf(() => 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 if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n }\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 if (process.env.TARO_PLATFORM === 'web') {\n config.getOpenerEventChannel = () => {\n return EventChannel.pageChannel\n }\n }\n\n const isSWAN = process.env.TARO_ENV === 'swan'// 百度小程序\n LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n let isEvent = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n lifecycle = lifecycle.replace(/^events:/, () => {\n isEvent = true\n return ''\n })\n\n if (isEvent && process.env.TARO_ENV === 'alipay') {\n // 初始化 config.events 对象\n if (!config.events) config.events = {}\n config.events[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n } else {\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isSWAN) {\n return exec()\n }\n\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\n }\n }\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 pageConfig?.[lifecycle.replace(/^on/, 'enable')]\n ) {\n config[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = env.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 config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n hooks.call('modifyPageObject', config)\n\n return config\n}\n\nexport function createComponentConfig (component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>) {\n const id = componentName ?? `taro_component_${pageId()}`\n let componentElement: TaroRootElement | null = null\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const config: any = {\n [ATTACHED] () {\n perf.start(PAGE_INIT)\n this.pageIdCache = this.getPageId?.() || pageId()\n\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.mount!(component, path, () => {\n componentElement = env.document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n this.$taroInstances = instances.get(path)\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_PLATFORM !== 'web') {\n componentElement.ctx = this\n if (process.env.TARO_ENV !== 'tt' || !isEnableTTDom()) {\n componentElement.performUpdate(true)\n }\n }\n })\n },\n [DETACHED] () {\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.unmount!(path, () => {\n instances.delete(path)\n if (componentElement) {\n componentElement.ctx = null\n }\n })\n },\n methods: {\n eh: eventHandler\n }\n }\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n [OPTIONS, EXTERNAL_CLASSES, BEHAVIORS].forEach(key => {\n config[key] = component[key] ?? EMPTY_OBJ\n })\n\n return config\n}\n\nexport function createRecursiveComponentConfig (\n componentName?: string,\n forceCustomWrapper = false\n) {\n const isCustomWrapper = componentName === CUSTOM_WRAPPER\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const lifeCycles = isCustomWrapper || forceCustomWrapper\n ? {\n [ATTACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data?.i?.sid || this.props?.i?.sid\n if (isString(componentId)) {\n if (isCustomWrapper) {\n customWrapperCache.set(componentId, this)\n }\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = this\n bumpNearestCtxEpochForRoot(el._root)\n }\n }\n },\n [DETACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data?.i?.sid || this.props?.i?.sid\n if (isString(componentId)) {\n if (isCustomWrapper) {\n customWrapperCache.delete(componentId)\n }\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = null\n bumpNearestCtxEpochForRoot(el._root)\n }\n }\n }\n }\n : EMPTY_OBJ\n\n // 不同平台的个性化配置\n const extraOptions: { [key: string]: any } = {}\n if (process.env.TARO_ENV === 'jd') {\n extraOptions.addGlobalClass = true\n }\n\n return hooks.call('modifyRecursiveComponentConfig',\n {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: getComponentsAlias(internalComponents)[VIEW]._num\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n ...extraOptions,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles\n }, { isCustomWrapper, forceCustomWrapper })\n}\n"],"names":["raf"],"mappings":"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"}
|
package/dist/index.cjs.d.ts
CHANGED
|
@@ -242,9 +242,11 @@ declare class TaroRootElement extends TaroElement {
|
|
|
242
242
|
private updateCallbacks;
|
|
243
243
|
pendingUpdate: boolean;
|
|
244
244
|
ctx: null | MpInstance;
|
|
245
|
+
nearestCtxEpoch: number;
|
|
245
246
|
constructor();
|
|
246
247
|
get _path(): string;
|
|
247
248
|
get _root(): TaroRootElement;
|
|
249
|
+
bumpNearestCtxEpoch(): void;
|
|
248
250
|
scheduleTask(fn: TFunc): void;
|
|
249
251
|
enqueueUpdate(payload: UpdatePayload): void;
|
|
250
252
|
performUpdate(initRender?: boolean, prerender?: TFunc): void;
|
|
@@ -268,6 +270,7 @@ declare class TaroNode extends TaroEventTarget {
|
|
|
268
270
|
private updateChildNodes;
|
|
269
271
|
private updateSingleChild;
|
|
270
272
|
get _root(): TaroRootElement | null;
|
|
273
|
+
get _scope(): MpInstance | null | undefined;
|
|
271
274
|
protected findIndex(refChild: TaroNode): number;
|
|
272
275
|
get _path(): string;
|
|
273
276
|
get nextSibling(): TaroNode | null;
|
|
@@ -591,6 +594,10 @@ declare const taroWindowProvider: TaroWindow;
|
|
|
591
594
|
declare const taroLocationProvider: TaroLocation;
|
|
592
595
|
declare const taroHistoryProvider: TaroHistory;
|
|
593
596
|
|
|
597
|
+
declare function isNearestCtxEnv(): boolean;
|
|
598
|
+
declare function getNearestCtx(node: TaroNode): MpInstance | null | undefined;
|
|
599
|
+
declare function bumpNearestCtxEpochForRoot(root: TaroRootElement | null | undefined): void;
|
|
600
|
+
|
|
594
601
|
declare class SVGElement extends TaroElement {
|
|
595
602
|
}
|
|
596
603
|
|
|
@@ -861,7 +868,7 @@ declare function getOnShowEventKey(path: string): string;
|
|
|
861
868
|
declare function getOnHideEventKey(path: string): string;
|
|
862
869
|
declare function createPageConfig(component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig): PageInstance;
|
|
863
870
|
declare function createComponentConfig(component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>): any;
|
|
864
|
-
declare function createRecursiveComponentConfig(componentName?: string): any;
|
|
871
|
+
declare function createRecursiveComponentConfig(componentName?: string, forceCustomWrapper?: boolean): any;
|
|
865
872
|
|
|
866
873
|
/**
|
|
867
874
|
* React also has a fancy function's name for this: `hydrate()`.
|
|
@@ -917,5 +924,5 @@ declare function convertNumber2PX(value: number): string;
|
|
|
917
924
|
|
|
918
925
|
declare function handlePolyfill(): void;
|
|
919
926
|
|
|
920
|
-
export { A, APP, BEHAVIORS, BODY, CATCHMOVE, CATCH_VIEW, CHANGE, CLASS, CLICK_VIEW, COMMENT, COMPILE_MODE, CONFIRM, CONTAINER, CONTEXT_ACTIONS, CURRENT_TARGET, CUSTOM_WRAPPER, Current, DATASET, DATE, DOCUMENT_ELEMENT_NAME, DOCUMENT_FRAGMENT, EVENT_CALLBACK_RESULT, EXTERNAL_CLASSES, FOCUS, FormElement, HEAD, HOOKS_APP_ID, HTML, History, ID, INPUT, KEY_CODE, Location, MutationObserver, OBJECT, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, PROPERTY_THRESHOLD, PROPS, PURE_VIEW, ROOT_STR, SET_DATA, SET_TIMEOUT, STATIC_VIEW, STYLE, SVGElement, Style, TARGET, TARO_RUNTIME, TIME_STAMP, TOUCHMOVE, TYPE, TaroElement, TaroEvent, TaroNode, TaroRootElement, TaroText, UID, TaroURLProvider as URL, URLSearchParams$1 as URLSearchParams, VALUE, VIEW, addLeadingSlash, _caf as cancelAnimationFrame, convertNumber2PX, createComponentConfig, createEvent, createPageConfig, createRecursiveComponentConfig, customWrapperCache, debounce, taroDocumentProvider as document, env, eventCenter, eventHandler, eventHandlerTTDom, eventSource, extend, getComponentsAlias, taroGetComputedStyleProvider as getComputedStyle, getCurrentInstance, getCurrentPage, getHomePage, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath, handlePolyfill, hasBasename, taroHistoryProvider as history, hydrate, incrementId, injectPageInstance, isComment, isElement, isHasExtractProp, isParentBound, isText, taroLocationProvider as location, nav as navigator, nextTick, now, options, parseUrl, perf, removePageInstance, _raf as requestAnimationFrame, safeExecute, setInnerHTML, shortcutAttr, stringify, stripBasename, stripSuffix, stripTrailing, throttle, taroWindowProvider as window };
|
|
927
|
+
export { A, APP, BEHAVIORS, BODY, CATCHMOVE, CATCH_VIEW, CHANGE, CLASS, CLICK_VIEW, COMMENT, COMPILE_MODE, CONFIRM, CONTAINER, CONTEXT_ACTIONS, CURRENT_TARGET, CUSTOM_WRAPPER, Current, DATASET, DATE, DOCUMENT_ELEMENT_NAME, DOCUMENT_FRAGMENT, EVENT_CALLBACK_RESULT, EXTERNAL_CLASSES, FOCUS, FormElement, HEAD, HOOKS_APP_ID, HTML, History, ID, INPUT, KEY_CODE, Location, MutationObserver, OBJECT, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, PROPERTY_THRESHOLD, PROPS, PURE_VIEW, ROOT_STR, SET_DATA, SET_TIMEOUT, STATIC_VIEW, STYLE, SVGElement, Style, TARGET, TARO_RUNTIME, TIME_STAMP, TOUCHMOVE, TYPE, TaroElement, TaroEvent, TaroNode, TaroRootElement, TaroText, UID, TaroURLProvider as URL, URLSearchParams$1 as URLSearchParams, VALUE, VIEW, addLeadingSlash, bumpNearestCtxEpochForRoot, _caf as cancelAnimationFrame, convertNumber2PX, createComponentConfig, createEvent, createPageConfig, createRecursiveComponentConfig, customWrapperCache, debounce, taroDocumentProvider as document, env, eventCenter, eventHandler, eventHandlerTTDom, eventSource, extend, getComponentsAlias, taroGetComputedStyleProvider as getComputedStyle, getCurrentInstance, getCurrentPage, getHomePage, getNearestCtx, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath, handlePolyfill, hasBasename, taroHistoryProvider as history, hydrate, incrementId, injectPageInstance, isComment, isElement, isHasExtractProp, isNearestCtxEnv, isParentBound, isText, taroLocationProvider as location, nav as navigator, nextTick, now, options, parseUrl, perf, removePageInstance, _raf as requestAnimationFrame, safeExecute, setInnerHTML, shortcutAttr, stringify, stripBasename, stripSuffix, stripTrailing, throttle, taroWindowProvider as window };
|
|
921
928
|
export type { AddEventListenerOptions, AppInstance, Attributes, DataTree, EventHandler, EventListenerOptions, EventOptions, EventsType, HydratedData, Instance, KeyFrame, MiniData, MiniElementData, MiniTextData, MpEvent, MpInstance, Options$2 as Options, PageConfig, PageInstance, PageLifeCycle, PageProps, ReactAppInstance, ReactPageComponent, ReactPageInstance, ScrollTimelineOption, TFunc, UpdatePayload, UpdatePayloadValue };
|
package/dist/index.cjs.js
CHANGED
|
@@ -1473,6 +1473,53 @@ class TaroEventTarget {
|
|
|
1473
1473
|
}
|
|
1474
1474
|
}
|
|
1475
1475
|
|
|
1476
|
+
const nearestCtxCache = new WeakMap();
|
|
1477
|
+
function isNearestCtxEnv() {
|
|
1478
|
+
return process.env.TARO_ENV === 'weapp' || process.env.TARO_ENV === 'jd';
|
|
1479
|
+
}
|
|
1480
|
+
function getNearestCtx(node) {
|
|
1481
|
+
if (!isNearestCtxEnv()) {
|
|
1482
|
+
return undefined;
|
|
1483
|
+
}
|
|
1484
|
+
const root = node._root;
|
|
1485
|
+
if (root == null) {
|
|
1486
|
+
return null;
|
|
1487
|
+
}
|
|
1488
|
+
const cached = nearestCtxCache.get(node);
|
|
1489
|
+
if (cached && cached.nearestCtxEpoch === root.nearestCtxEpoch) {
|
|
1490
|
+
return cached.value;
|
|
1491
|
+
}
|
|
1492
|
+
const value = resolveNearestCtxValue(node, root);
|
|
1493
|
+
nearestCtxCache.set(node, { value, nearestCtxEpoch: root.nearestCtxEpoch });
|
|
1494
|
+
return value;
|
|
1495
|
+
}
|
|
1496
|
+
function resolveNearestCtxValue(node, root) {
|
|
1497
|
+
var _a;
|
|
1498
|
+
if (node.nodeType === 1 /* NodeType.ELEMENT_NODE */) {
|
|
1499
|
+
const ctx = node.ctx;
|
|
1500
|
+
if (ctx != null)
|
|
1501
|
+
return ctx;
|
|
1502
|
+
}
|
|
1503
|
+
let current = node.parentNode;
|
|
1504
|
+
while (current) {
|
|
1505
|
+
if (current.nodeType === 1 /* NodeType.ELEMENT_NODE */) {
|
|
1506
|
+
const ctx = current.ctx;
|
|
1507
|
+
if (ctx != null)
|
|
1508
|
+
return ctx;
|
|
1509
|
+
}
|
|
1510
|
+
current = current.parentNode;
|
|
1511
|
+
}
|
|
1512
|
+
return (_a = root.ctx) !== null && _a !== void 0 ? _a : null;
|
|
1513
|
+
}
|
|
1514
|
+
function bumpNearestCtxEpochForRoot(root) {
|
|
1515
|
+
if (!isNearestCtxEnv() || root == null) {
|
|
1516
|
+
return;
|
|
1517
|
+
}
|
|
1518
|
+
if (typeof root.bumpNearestCtxEpoch === 'function') {
|
|
1519
|
+
root.bumpNearestCtxEpoch();
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1476
1523
|
const CHILDNODES = "cn" /* Shortcuts.Childnodes */;
|
|
1477
1524
|
const nodeId = incrementId();
|
|
1478
1525
|
class TaroNode extends TaroEventTarget {
|
|
@@ -1512,6 +1559,9 @@ class TaroNode extends TaroEventTarget {
|
|
|
1512
1559
|
var _a;
|
|
1513
1560
|
return ((_a = this.parentNode) === null || _a === void 0 ? void 0 : _a._root) || null;
|
|
1514
1561
|
}
|
|
1562
|
+
get _scope() {
|
|
1563
|
+
return getNearestCtx(this);
|
|
1564
|
+
}
|
|
1515
1565
|
findIndex(refChild) {
|
|
1516
1566
|
const index = this.childNodes.indexOf(refChild);
|
|
1517
1567
|
shared.ensure(index !== -1, 'The node to be replaced is not a child of this node.');
|
|
@@ -1657,6 +1707,9 @@ class TaroNode extends TaroEventTarget {
|
|
|
1657
1707
|
}
|
|
1658
1708
|
}
|
|
1659
1709
|
}
|
|
1710
|
+
if (this._root) {
|
|
1711
|
+
bumpNearestCtxEpochForRoot(this._root);
|
|
1712
|
+
}
|
|
1660
1713
|
MutationObserver$1.record({
|
|
1661
1714
|
type: "childList" /* MutationRecordType.CHILD_LIST */,
|
|
1662
1715
|
target: this,
|
|
@@ -1733,6 +1786,9 @@ class TaroNode extends TaroEventTarget {
|
|
|
1733
1786
|
if (this._root && doUpdate !== false) {
|
|
1734
1787
|
this.updateChildNodes();
|
|
1735
1788
|
}
|
|
1789
|
+
if (this._root) {
|
|
1790
|
+
bumpNearestCtxEpochForRoot(this._root);
|
|
1791
|
+
}
|
|
1736
1792
|
return child;
|
|
1737
1793
|
}
|
|
1738
1794
|
remove(options) {
|
|
@@ -2428,7 +2484,7 @@ class TaroElement extends TaroNode {
|
|
|
2428
2484
|
shared.hooks.call('modifyRemoveEventListener', this, sideEffect, getComponentsAlias);
|
|
2429
2485
|
if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {
|
|
2430
2486
|
const componentsAlias = getComponentsAlias();
|
|
2431
|
-
const value = isHasExtractProp(this) ?
|
|
2487
|
+
const value = name === VIEW && !isHasExtractProp(this) ? PURE_VIEW : `static-${name}`;
|
|
2432
2488
|
const valueAlias = componentsAlias[value]._num;
|
|
2433
2489
|
this.enqueueUpdate({
|
|
2434
2490
|
path: `${this._path}.${"nn" /* Shortcuts.NodeName */}`,
|
|
@@ -3644,6 +3700,7 @@ class TaroRootElement extends TaroElement {
|
|
|
3644
3700
|
this.updateCallbacks = [];
|
|
3645
3701
|
this.pendingUpdate = false;
|
|
3646
3702
|
this.ctx = null;
|
|
3703
|
+
this.nearestCtxEpoch = 0;
|
|
3647
3704
|
this.nodeName = ROOT_STR;
|
|
3648
3705
|
this.tagName = ROOT_STR.toUpperCase();
|
|
3649
3706
|
}
|
|
@@ -3653,6 +3710,9 @@ class TaroRootElement extends TaroElement {
|
|
|
3653
3710
|
get _root() {
|
|
3654
3711
|
return this;
|
|
3655
3712
|
}
|
|
3713
|
+
bumpNearestCtxEpoch() {
|
|
3714
|
+
this.nearestCtxEpoch++;
|
|
3715
|
+
}
|
|
3656
3716
|
scheduleTask(fn) {
|
|
3657
3717
|
// 这里若使用微任务可略微提前setData的执行时机,但在部分场景下可能会出现连续setData两次,造成更大的性能问题
|
|
3658
3718
|
setTimeout(fn);
|
|
@@ -4217,6 +4277,7 @@ function createPageConfig(component, pageName, data, pageConfig) {
|
|
|
4217
4277
|
loadResolver();
|
|
4218
4278
|
if (process.env.TARO_PLATFORM !== 'web') {
|
|
4219
4279
|
pageElement.ctx = this;
|
|
4280
|
+
bumpNearestCtxEpochForRoot(pageElement);
|
|
4220
4281
|
if (process.env.TARO_ENV === 'tt' && shared.isEnableTTDom()) {
|
|
4221
4282
|
pageElement.sync();
|
|
4222
4283
|
}
|
|
@@ -4249,6 +4310,7 @@ function createPageConfig(component, pageName, data, pageConfig) {
|
|
|
4249
4310
|
unmounting = false;
|
|
4250
4311
|
instances.delete($taroPath);
|
|
4251
4312
|
if (pageElement) {
|
|
4313
|
+
bumpNearestCtxEpochForRoot(pageElement);
|
|
4252
4314
|
pageElement.ctx = null;
|
|
4253
4315
|
pageElement = null;
|
|
4254
4316
|
}
|
|
@@ -4411,36 +4473,42 @@ function createComponentConfig(component, componentName, data) {
|
|
|
4411
4473
|
});
|
|
4412
4474
|
return config;
|
|
4413
4475
|
}
|
|
4414
|
-
function createRecursiveComponentConfig(componentName) {
|
|
4476
|
+
function createRecursiveComponentConfig(componentName, forceCustomWrapper = false) {
|
|
4415
4477
|
const isCustomWrapper = componentName === CUSTOM_WRAPPER;
|
|
4416
4478
|
const [ATTACHED, DETACHED] = shared.hooks.call('getMiniLifecycleImpl').component;
|
|
4417
|
-
const lifeCycles = isCustomWrapper
|
|
4479
|
+
const lifeCycles = isCustomWrapper || forceCustomWrapper
|
|
4418
4480
|
? {
|
|
4419
4481
|
[ATTACHED]() {
|
|
4420
|
-
var _a, _b;
|
|
4482
|
+
var _a, _b, _c, _d;
|
|
4421
4483
|
if (process.env.TARO_ENV === 'tt' && shared.isEnableTTDom()) {
|
|
4422
4484
|
return;
|
|
4423
4485
|
}
|
|
4424
|
-
const componentId = ((_a = this.data
|
|
4486
|
+
const componentId = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.i) === null || _b === void 0 ? void 0 : _b.sid) || ((_d = (_c = this.props) === null || _c === void 0 ? void 0 : _c.i) === null || _d === void 0 ? void 0 : _d.sid);
|
|
4425
4487
|
if (shared.isString(componentId)) {
|
|
4426
|
-
|
|
4488
|
+
if (isCustomWrapper) {
|
|
4489
|
+
customWrapperCache.set(componentId, this);
|
|
4490
|
+
}
|
|
4427
4491
|
const el = env.document.getElementById(componentId);
|
|
4428
4492
|
if (el) {
|
|
4429
4493
|
el.ctx = this;
|
|
4494
|
+
bumpNearestCtxEpochForRoot(el._root);
|
|
4430
4495
|
}
|
|
4431
4496
|
}
|
|
4432
4497
|
},
|
|
4433
4498
|
[DETACHED]() {
|
|
4434
|
-
var _a, _b;
|
|
4499
|
+
var _a, _b, _c, _d;
|
|
4435
4500
|
if (process.env.TARO_ENV === 'tt' && shared.isEnableTTDom()) {
|
|
4436
4501
|
return;
|
|
4437
4502
|
}
|
|
4438
|
-
const componentId = ((_a = this.data
|
|
4503
|
+
const componentId = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.i) === null || _b === void 0 ? void 0 : _b.sid) || ((_d = (_c = this.props) === null || _c === void 0 ? void 0 : _c.i) === null || _d === void 0 ? void 0 : _d.sid);
|
|
4439
4504
|
if (shared.isString(componentId)) {
|
|
4440
|
-
|
|
4505
|
+
if (isCustomWrapper) {
|
|
4506
|
+
customWrapperCache.delete(componentId);
|
|
4507
|
+
}
|
|
4441
4508
|
const el = env.document.getElementById(componentId);
|
|
4442
4509
|
if (el) {
|
|
4443
4510
|
el.ctx = null;
|
|
4511
|
+
bumpNearestCtxEpochForRoot(el._root);
|
|
4444
4512
|
}
|
|
4445
4513
|
}
|
|
4446
4514
|
}
|
|
@@ -4464,7 +4532,7 @@ function createRecursiveComponentConfig(componentName) {
|
|
|
4464
4532
|
}
|
|
4465
4533
|
}, options: Object.assign(Object.assign({}, extraOptions), { virtualHost: !isCustomWrapper }), methods: {
|
|
4466
4534
|
eh: eventHandler
|
|
4467
|
-
} }, lifeCycles), { isCustomWrapper });
|
|
4535
|
+
} }, lifeCycles), { isCustomWrapper, forceCustomWrapper });
|
|
4468
4536
|
}
|
|
4469
4537
|
|
|
4470
4538
|
const TIMEOUT = 100;
|
|
@@ -5350,6 +5418,7 @@ exports.URLSearchParams = URLSearchParams;
|
|
|
5350
5418
|
exports.VALUE = VALUE;
|
|
5351
5419
|
exports.VIEW = VIEW;
|
|
5352
5420
|
exports.addLeadingSlash = addLeadingSlash;
|
|
5421
|
+
exports.bumpNearestCtxEpochForRoot = bumpNearestCtxEpochForRoot;
|
|
5353
5422
|
exports.cancelAnimationFrame = _caf;
|
|
5354
5423
|
exports.convertNumber2PX = convertNumber2PX;
|
|
5355
5424
|
exports.createComponentConfig = createComponentConfig;
|
|
@@ -5370,6 +5439,7 @@ exports.getComputedStyle = taroGetComputedStyleProvider;
|
|
|
5370
5439
|
exports.getCurrentInstance = getCurrentInstance;
|
|
5371
5440
|
exports.getCurrentPage = getCurrentPage;
|
|
5372
5441
|
exports.getHomePage = getHomePage;
|
|
5442
|
+
exports.getNearestCtx = getNearestCtx;
|
|
5373
5443
|
exports.getOnHideEventKey = getOnHideEventKey;
|
|
5374
5444
|
exports.getOnReadyEventKey = getOnReadyEventKey;
|
|
5375
5445
|
exports.getOnShowEventKey = getOnShowEventKey;
|
|
@@ -5384,6 +5454,7 @@ exports.injectPageInstance = injectPageInstance;
|
|
|
5384
5454
|
exports.isComment = isComment;
|
|
5385
5455
|
exports.isElement = isElement;
|
|
5386
5456
|
exports.isHasExtractProp = isHasExtractProp;
|
|
5457
|
+
exports.isNearestCtxEnv = isNearestCtxEnv;
|
|
5387
5458
|
exports.isParentBound = isParentBound;
|
|
5388
5459
|
exports.isText = isText;
|
|
5389
5460
|
exports.location = taroLocationProvider;
|