@tarojs/runtime 4.0.0-alpha.3 → 4.0.0-alpha.6

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.
Files changed (122) hide show
  1. package/LICENSE +1 -8
  2. package/dist/bom/URL.d.ts +3 -6
  3. package/dist/bom/URL.js.map +1 -1
  4. package/dist/bom/URLSearchParams.d.ts +1 -2
  5. package/dist/bom/URLSearchParams.js.map +1 -1
  6. package/dist/bom/document.d.ts +2 -3
  7. package/dist/bom/getComputedStyle.d.ts +4 -5
  8. package/dist/bom/history.d.ts +5 -7
  9. package/dist/bom/history.js.map +1 -1
  10. package/dist/bom/location.d.ts +3 -5
  11. package/dist/bom/location.js.map +1 -1
  12. package/dist/bom/navigator.d.ts +1 -2
  13. package/dist/bom/raf.d.ts +3 -2
  14. package/dist/bom/raf.js.map +1 -1
  15. package/dist/bom/window.d.ts +9 -9
  16. package/dist/bom/window.js.map +1 -1
  17. package/dist/constants/index.d.ts +51 -52
  18. package/dist/current.d.ts +5 -5
  19. package/dist/dom/anchor-element.d.ts +2 -3
  20. package/dist/dom/anchor-element.js.map +1 -1
  21. package/dist/dom/class-list.d.ts +2 -3
  22. package/dist/dom/class-list.js.map +1 -1
  23. package/dist/dom/document.d.ts +6 -10
  24. package/dist/dom/document.js.map +1 -1
  25. package/dist/dom/element.d.ts +6 -7
  26. package/dist/dom/element.js.map +1 -1
  27. package/dist/dom/event-source.d.ts +3 -3
  28. package/dist/dom/event-target.d.ts +2 -3
  29. package/dist/dom/event-target.js.map +1 -1
  30. package/dist/dom/event.d.ts +5 -6
  31. package/dist/dom/event.js.map +1 -1
  32. package/dist/dom/form.d.ts +3 -4
  33. package/dist/dom/form.js +1 -1
  34. package/dist/dom/form.js.map +1 -1
  35. package/dist/dom/node.d.ts +8 -39
  36. package/dist/dom/node.js +2 -2
  37. package/dist/dom/node.js.map +1 -1
  38. package/dist/{node_types-9ac5b4dd.d.ts → dom/node_types.d.ts} +1 -2
  39. package/dist/dom/root.d.ts +3 -4
  40. package/dist/dom/root.js.map +1 -1
  41. package/dist/dom/style.d.ts +2 -3
  42. package/dist/dom/style.js.map +1 -1
  43. package/dist/dom/style_properties.js.map +1 -1
  44. package/dist/dom/svg.d.ts +2 -3
  45. package/dist/dom/text.d.ts +3 -4
  46. package/dist/dom/transfer.d.ts +2 -3
  47. package/dist/dom/tree.d.ts +3 -3
  48. package/dist/dom/tree.js.map +1 -1
  49. package/dist/dom-external/element.d.ts +3 -4
  50. package/dist/dom-external/element.js.map +1 -1
  51. package/dist/dom-external/index.js.map +1 -1
  52. package/dist/dom-external/inner-html/html.d.ts +2 -3
  53. package/dist/dom-external/inner-html/html.js.map +1 -1
  54. package/dist/dom-external/inner-html/parser.d.ts +7 -7
  55. package/dist/dom-external/inner-html/parser.js.map +1 -1
  56. package/dist/dom-external/inner-html/scaner.d.ts +3 -3
  57. package/dist/dom-external/inner-html/scaner.js.map +1 -1
  58. package/dist/dom-external/inner-html/style.d.ts +3 -3
  59. package/dist/dom-external/inner-html/style.js.map +1 -1
  60. package/dist/dom-external/inner-html/tags.d.ts +5 -6
  61. package/dist/dom-external/inner-html/tags.js +4 -4
  62. package/dist/dom-external/inner-html/tags.js.map +1 -1
  63. package/dist/dom-external/inner-html/utils.d.ts +1 -2
  64. package/dist/dom-external/inner-html/utils.js.map +1 -1
  65. package/dist/dom-external/mutation-observer/implements.d.ts +6 -25
  66. package/dist/dom-external/mutation-observer/implements.js.map +1 -1
  67. package/dist/dom-external/mutation-observer/index.d.ts +6 -5
  68. package/dist/dom-external/mutation-observer/index.js.map +1 -1
  69. package/dist/{record-32b054d8.d.ts → dom-external/mutation-observer/record.d.ts} +3 -4
  70. package/dist/dom-external/node.d.ts +5 -6
  71. package/dist/dom-external/node.js +1 -0
  72. package/dist/dom-external/node.js.map +1 -1
  73. package/dist/dsl/common.d.ts +15 -15
  74. package/dist/dsl/common.js +6 -1
  75. package/dist/dsl/common.js.map +1 -1
  76. package/dist/{instance-4c64b022.d.ts → dsl/instance.d.ts} +17 -26
  77. package/dist/emitter/emitter.d.ts +2 -2
  78. package/dist/env.d.ts +2 -2
  79. package/dist/hydrate.d.ts +4 -5
  80. package/dist/hydrate.js +9 -2
  81. package/dist/hydrate.js.map +1 -1
  82. package/dist/index.cjs.js +60 -19
  83. package/dist/index.cjs.js.map +1 -1
  84. package/dist/index.d.ts +33 -31
  85. package/dist/index.js +2 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/interface/element.d.ts +4 -0
  88. package/dist/interface/event-target.d.ts +11 -0
  89. package/dist/interface/event.d.ts +15 -0
  90. package/dist/interface/hydrate.d.ts +29 -0
  91. package/dist/interface/index.d.ts +7 -0
  92. package/dist/interface/node.d.ts +7 -0
  93. package/dist/{options-4c64b022.d.ts → interface/options.d.ts} +4 -5
  94. package/dist/interface/utils.d.ts +2 -0
  95. package/dist/next-tick.d.ts +2 -3
  96. package/dist/next-tick.js.map +1 -1
  97. package/dist/options.d.ts +2 -3
  98. package/dist/perf.d.ts +5 -3
  99. package/dist/perf.js +24 -3
  100. package/dist/perf.js.map +1 -1
  101. package/dist/polyfill/array.d.ts +2 -3
  102. package/dist/polyfill/array.js.map +1 -1
  103. package/dist/polyfill/index.js.map +1 -1
  104. package/dist/polyfill/intersection-observer.d.ts +1 -2
  105. package/dist/polyfill/intersection-observer.js +4 -3
  106. package/dist/polyfill/intersection-observer.js.map +1 -1
  107. package/dist/polyfill/object.d.ts +3 -4
  108. package/dist/polyfill/object.js.map +1 -1
  109. package/dist/runtime.esm.js +54 -15
  110. package/dist/runtime.esm.js.map +1 -1
  111. package/dist/utils/cache.d.ts +1 -2
  112. package/dist/utils/cache.js.map +1 -1
  113. package/dist/utils/index.d.ts +17 -18
  114. package/dist/utils/index.js.map +1 -1
  115. package/dist/utils/lodash.d.ts +2 -2
  116. package/dist/utils/lodash.js +11 -1
  117. package/dist/utils/lodash.js.map +1 -1
  118. package/dist/utils/router.d.ts +7 -8
  119. package/package.json +15 -21
  120. package/dist/index-26658829.d.ts +0 -23
  121. package/dist/index.cjs.d.ts +0 -804
  122. package/dist/runtime.esm.d.ts +0 -804
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../../src/dsl/common.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, getComponentsAlias, hooks, internalComponents,\n isArray, isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { window } 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 window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\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 pageElement.performUpdate(true, cb)\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 window.trigger(CONTEXT_ACTIONS.DESTORY, $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 window.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 window.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 LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\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 componentElement.performUpdate(true)\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 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 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 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 addGlobalClass: true,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles }, { 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, isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { window } 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 window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\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 pageElement.performUpdate(true, cb)\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 window.trigger(CONTEXT_ACTIONS.DESTORY, $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 window.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 window.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 LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\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 componentElement.performUpdate(true)\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 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 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 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 addGlobalClass: true,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles\n }, { isCustomWrapper })\n}\n"],"names":["raf"],"mappings":";;;;;;;;;;;;AAAA;AAsBA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;AAC7C,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;AAEZ,SAAA,kBAAkB,CAAE,IAAyB,EAAE,EAAU,EAAA;AACvE,IAAA,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AACxD,IAAA,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACzB,CAAC;AAEK,SAAU,eAAe,CAAE,EAAU,EAAA;AACzC,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC1B,CAAC;AAEK,SAAU,kBAAkB,CAAE,EAAU,EAAA;AAC5C,IAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC;AAEK,SAAU,WAAW,CAAE,IAAY,EAAE,SAAiB,EAAE,GAAG,IAAe,EAAA;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAEpC,IAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAM;KACP;AAED,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,SAA+B,CAAC,CAAA;AAElF,IAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;AACpD,QAAA,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;KACd;AAED,IAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACrB,OAAM;KACP;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AAEK,SAAU,SAAS,CAAE,GAA6B,EAAA;AACtD,IAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,QAAA,OAAO,EAAE,CAAA;KACV;AACD,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;QACxC,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;AAC7B,KAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACZ,IAAA,OAAO,IAAI,KAAK,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;AACxC,CAAC;AAEe,SAAA,OAAO,CAAE,EAAU,EAAE,OAAiC,EAAA;IACpE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;QACvC,OAAO,CAAA,EAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA,EAAG,SAAS,CAAC,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK,IAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA,CAAE,CAAA;KAC7G;SAAM;QACL,OAAO,CAAA,EAAG,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,SAAS,CAAC,OAAO,CAAC,CAAA,CAAE,CAAA;KACtE;AACH,CAAC;AAEK,SAAU,kBAAkB,CAAE,IAAY,EAAA;AAC9C,IAAA,OAAO,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAA;AAC9B,CAAC;AAEK,SAAU,iBAAiB,CAAE,IAAY,EAAA;AAC7C,IAAA,OAAO,IAAI,GAAG,GAAG,GAAG,OAAO,CAAA;AAC7B,CAAC;AAEK,SAAU,iBAAiB,CAAE,IAAY,EAAA;AAC7C,IAAA,OAAO,IAAI,GAAG,GAAG,GAAG,OAAO,CAAA;AAC7B,CAAC;AAEK,SAAU,gBAAgB,CAAE,SAAc,EAAE,QAAiB,EAAE,IAA8B,EAAE,UAAuB,EAAA;;AAE1H,IAAA,MAAM,EAAE,GAAG,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAR,QAAQ,GAAI,CAAa,UAAA,EAAA,MAAM,EAAE,CAAA,CAAE,CAAA;IAC9C,MAAM,CACJ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,sBAAsB,EACvB,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC,IAAI,CAAA;IAC5C,IAAI,WAAW,GAA2B,IAAI,CAAA;IAC9C,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,gBAAgB,GAAmB,EAAE,CAAA;IAEzC,SAAS,gBAAgB,CAAE,IAAgB,EAAA;AACzC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAA;QACpH,OAAO,CAAC,MAAM,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,WAAY;AACzB,YAAA,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC;AAC/B,YAAA,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;AAC7B,YAAA,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;SAC9B,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAChC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;SAC1C;KACF;AACD,IAAA,IAAI,YAA0C,CAAA;AAC9C,IAAA,IAAI,SAAwB,CAAA;AAC5B,IAAA,MAAM,MAAM,GAAiB;AAC3B,QAAA,CAAC,MAAM,CAAC,CAAoB,OAA6C,GAAA,EAAE,EAAE,EAAU,EAAA;AACrF,YAAA,SAAS,GAAG,IAAI,OAAO,CAAC,OAAO,IAAM,EAAA,YAAY,GAAG,OAAO,CAAA,EAAE,CAAC,CAAA;AAE9D,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAErB,YAAA,OAAO,CAAC,IAAI,GAAG,IAAW,CAAA;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE,CAAA;;AAG9B,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAChF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;YAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;AACvC,gBAAA,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;aACxB;;AAED,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,gBAAA,IAAI,CAAC,WAAW,GAAG,aAAa,CAAA;aACjC;YAED,gBAAgB,CAAC,IAAI,CAAC,CAAA;;YAGtB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;gBACvC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;aAChD;YAED,MAAM,KAAK,GAAG,MAAK;gBACjB,OAAO,CAAC,GAAI,CAAC,KAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAK;oBAC7C,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAkB,SAAS,CAAC,CAAA;AAErE,oBAAA,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,WAAW,CAAC,CAAA;oBACzC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;AACjD,oBAAA,YAAY,EAAE,CAAA;oBACd,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;AACvC,wBAAA,WAAW,CAAC,GAAG,GAAG,IAAI,CAAA;AACtB,wBAAA,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;qBACpC;yBAAM;AACL,wBAAA,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAA;qBACvB;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAA;YACD,IAAI,UAAU,EAAE;AACd,gBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAC7B;iBAAM;AACL,gBAAA,KAAK,EAAE,CAAA;aACR;SACF;AACD,QAAA,CAAC,QAAQ,CAAC,GAAA;AACR,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;;YAEhC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;gBACvC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;aACnD;;AAED,YAAA,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAChC,UAAU,GAAG,IAAI,CAAA;YACjB,OAAO,CAAC,GAAI,CAAC,OAAQ,CAAC,SAAS,EAAE,MAAK;gBACpC,UAAU,GAAG,KAAK,CAAA;AAClB,gBAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC3B,IAAI,WAAW,EAAE;AACf,oBAAA,WAAW,CAAC,GAAG,GAAG,IAAI,CAAA;oBACtB,WAAW,GAAG,IAAI,CAAA;iBACnB;AACD,gBAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;oBAC3B,gBAAgB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;oBACpC,gBAAgB,GAAG,EAAE,CAAA;iBACtB;AACH,aAAC,CAAC,CAAA;SACH;AACD,QAAA,CAAC,OAAO,CAAC,GAAA;AACP,YAAA,SAAS,CAAC,IAAI,CAAC,MAAK;;AAElB,gBAAA,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;;AAErC,gBAAAA,IAAG,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACtD,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;AAC5B,aAAC,CAAC,CAAA;SACH;AACD,QAAA,CAAC,MAAM,CAAC,CAAE,OAAO,GAAG,EAAE,EAAA;AACpB,YAAA,SAAS,CAAC,IAAI,CAAC,MAAK;;AAElB,gBAAA,OAAO,CAAC,IAAI,GAAG,IAAW,CAAA;gBAC1B,gBAAgB,CAAC,IAAI,CAAC,CAAA;;gBAEtB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;oBACvC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;iBACxD;;gBAED,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;;AAE7C,gBAAAA,IAAG,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvD,aAAC,CAAC,CAAA;SACH;AACD,QAAA,CAAC,MAAM,CAAC,GAAA;;YAEN,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;gBACvC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;aACxD;;AAED,YAAA,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;AACzB,gBAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;AACnB,gBAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;aACtB;;AAED,YAAA,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;;YAEpC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;SAC3C;KACF,CAAA;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;AACvC,QAAA,MAAM,CAAC,qBAAqB,GAAG,MAAK;YAClC,OAAO,YAAY,CAAC,WAAW,CAAA;AACjC,SAAC,CAAA;KACF;AAED,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAK;YAC5C,OAAO,GAAG,IAAI,CAAA;AACd,YAAA,OAAO,EAAE,CAAA;AACX,SAAC,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,GAAG,YAAA;AAClB,YAAA,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,CAAA;YACvE,IAAI,OAAO,EAAE;AACX,gBAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACrB;iBAAM;gBACL,OAAO,IAAI,EAAE,CAAA;aACd;AACH,SAAC,CAAA;AACH,KAAC,CAAC,CAAA;;AAGF,IAAA,sBAAsB,CAAC,OAAO,CAAC,SAAS,IAAG;;QACzC,IAAI,SAAS,CAAC,SAAS,CAAC;AACtB,aAAA,CAAA,EAAA,GAAA,SAAS,CAAC,SAAS,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,CAAA;YAChC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7C,aAAA,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA,EAChD;AACA,YAAA,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,IAAI,EAAA;;gBACnC,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAA;gBAC9B,IAAI,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,EAAE,EAAE;AACd,oBAAA,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;oBACpB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;oBAC/C,IAAI,OAAO,EAAE;AACX,wBAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;qBACjC;iBACF;gBACD,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAA;AACxD,aAAC,CAAA;SACF;AACH,KAAC,CAAC,CAAA;AAEF,IAAA,MAAM,CAAC,EAAE,GAAG,YAAY,CAAA;AAExB,IAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;KACnB;AAED,IAAA,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AAEtC,IAAA,OAAO,MAAM,CAAA;AACf,CAAC;SAEe,qBAAqB,CAAE,SAA+B,EAAE,aAAsB,EAAE,IAA8B,EAAA;AAC5H,IAAA,MAAM,EAAE,GAAG,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,KAAA,CAAA,GAAb,aAAa,GAAI,CAAkB,eAAA,EAAA,MAAM,EAAE,CAAA,CAAE,CAAA;IACxD,IAAI,gBAAgB,GAA2B,IAAI,CAAA;AACnD,IAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC,SAAS,CAAA;AAE1E,IAAA,MAAM,MAAM,GAAQ;AAClB,QAAA,CAAC,QAAQ,CAAC,GAAA;;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAA,KAAI,MAAM,EAAE,CAAA;AAEjD,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAElD,OAAO,CAAC,GAAI,CAAC,KAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAK;gBACxC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAkB,IAAI,CAAC,CAAA;AACrE,gBAAA,MAAM,CAAC,gBAAgB,KAAK,IAAI,EAAE,WAAW,CAAC,CAAA;gBAC9C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzC,gBAAA,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;AACvC,oBAAA,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAA;AAC3B,oBAAA,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;iBACrC;AACH,aAAC,CAAC,CAAA;SACH;AACD,QAAA,CAAC,QAAQ,CAAC,GAAA;AACR,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAElD,OAAO,CAAC,GAAI,CAAC,OAAQ,CAAC,IAAI,EAAE,MAAK;AAC/B,gBAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,gBAAgB,EAAE;AACpB,oBAAA,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAA;iBAC5B;AACH,aAAC,CAAC,CAAA;SACH;AACD,QAAA,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,YAAY;AACjB,SAAA;KACF,CAAA;AAED,IAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;KACnB;IAED,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;;QACnD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,GAAG,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,SAAS,CAAA;AAC3C,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,MAAM,CAAA;AACf,CAAC;AAEK,SAAU,8BAA8B,CAAE,aAAsB,EAAA;AACpE,IAAA,MAAM,eAAe,GAAG,aAAa,KAAK,cAAc,CAAA;AACxD,IAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC,SAAS,CAAA;IAE1E,MAAM,UAAU,GAAG,eAAe;AAChC,UAAE;AACA,YAAA,CAAC,QAAQ,CAAC,GAAA;;gBACR,MAAM,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,MAAI,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,CAAA;AACzD,gBAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AACzB,oBAAA,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBACzC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;oBACnD,IAAI,EAAE,EAAE;AACN,wBAAA,EAAE,CAAC,GAAG,GAAG,IAAI,CAAA;qBACd;iBACF;aACF;AACD,YAAA,CAAC,QAAQ,CAAC,GAAA;;gBACR,MAAM,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,MAAI,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,CAAA;AACzD,gBAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AACzB,oBAAA,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;oBACtC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;oBACnD,IAAI,EAAE,EAAE;AACN,wBAAA,EAAE,CAAC,GAAG,GAAG,IAAI,CAAA;qBACd;iBACF;aACF;AACF,SAAA;UACC,SAAS,CAAA;AAEb,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,gCAAgC,EAAA,MAAA,CAAA,MAAA,CAAA,EAE9C,UAAU,EAAE;AACV,YAAA,CAAC,EAAE;AACD,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE;oBACL,CAAoB,IAAA,4BAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AACxE,iBAAA;AACF,aAAA;AACD,YAAA,CAAC,EAAE;AACD,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;AACF,SAAA,EACD,OAAO,EAAE;AACP,YAAA,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,CAAC,eAAe;AAC9B,SAAA,EACD,OAAO,EAAE;AACP,YAAA,EAAE,EAAE,YAAY;AACjB,SAAA,EAAA,EACE,UAAU,CACZ,EAAA,EAAE,eAAe,EAAE,CAAC,CAAA;AAC3B;;;;"}
@@ -1,37 +1,26 @@
1
- import VueCtor from 'vue';
2
- import { ComponentOptions, VNode } from "vue";
3
- import { Component as Vue3Component } from '@vue/runtime-core';
4
- import { Component, ComponentClass } from 'react';
5
- import { CombinedVueInstance } from 'vue/types/vue';
6
- import { TaroElement } from "./dom/element.js";
7
- import { MpEvent, TFunc } from "./index-26658829.js";
8
- interface Instance<T = Record<string, any>> extends Component<T>, Show, PageInstance {
1
+ import type { Component as Vue3Component } from '@vue/runtime-core';
2
+ import type { Component, ComponentClass } from 'react';
3
+ import type { TaroElement } from '../dom/element';
4
+ import type { MpEvent, TFunc } from '../interface';
5
+ export interface Instance<T = Record<string, any>> extends Component<T>, Show, PageInstance {
9
6
  tid?: string;
10
7
  node?: TaroElement;
11
8
  $forceUpdate?(): void;
12
9
  $nextTick?(cb: () => void): void;
13
10
  $options: Instance;
14
11
  }
15
- interface VueAppInstance extends ComponentOptions<VueCtor> {
16
- $options: AppInstance;
17
- }
18
- type VueInstance<M = Record<string, any>, P = Record<string, any>> = CombinedVueInstance<VueCtor, Record<string, any>, M, P, Record<never, any>> & VueInternal;
19
- interface VueInternal {
20
- _render(): VNode;
21
- _update(vnode: VNode, hyrate: boolean): void;
22
- }
23
- interface PageProps {
12
+ export interface PageProps {
24
13
  tid?: string;
25
14
  }
26
- interface ReactPageComponent<T = PageProps> extends ComponentClass<T>, PageInstance {
15
+ export interface ReactPageComponent<T = PageProps> extends ComponentClass<T>, PageInstance {
27
16
  }
28
- interface ReactPageInstance<T = PageProps> extends Component<T>, PageInstance {
17
+ export interface ReactPageInstance<T = PageProps> extends Component<T>, PageInstance {
29
18
  componentDidShow?(): void;
30
19
  componentDidHide?(): void;
31
20
  }
32
- interface ReactAppInstance<T = AppInstance> extends Component<T>, AppInstance {
21
+ export interface ReactAppInstance<T = AppInstance> extends Component<T>, AppInstance {
33
22
  }
34
- interface PageLifeCycle extends Show {
23
+ export interface PageLifeCycle extends Show {
35
24
  eh?(event: MpEvent): void;
36
25
  onAddToFavorites?(): void;
37
26
  onLoad?(options: Record<string, unknown>, cb?: TFunc): void;
@@ -60,7 +49,7 @@ interface PageLifeCycle extends Show {
60
49
  onTitleClick?(): void;
61
50
  onUnload?(): void;
62
51
  }
63
- interface PageInstance extends PageLifeCycle {
52
+ export interface PageInstance extends PageLifeCycle {
64
53
  /** 页面的初始数据 */
65
54
  data?: Record<string, unknown>;
66
55
  /** 页面路径 */
@@ -69,6 +58,8 @@ interface PageInstance extends PageLifeCycle {
69
58
  options?: Record<string, unknown>;
70
59
  /** 页面渲染引擎类型 */
71
60
  renderer?: 'webview' | 'skyline';
61
+ /** 获得一个 EventChannel 对象,用于页面间通讯 */
62
+ getOpenerEventChannel?(): Record<string, any>;
72
63
  }
73
64
  interface Show {
74
65
  componentDidShow?(): void;
@@ -76,10 +67,10 @@ interface Show {
76
67
  onShow?(): void;
77
68
  onHide?(): void;
78
69
  }
79
- interface AppInstance extends Show {
70
+ export interface AppInstance extends Show {
80
71
  componentDidShow?(options?: Record<string, unknown>): void;
81
- mount?(component: React.ComponentClass | ComponentOptions<VueCtor> | Vue3Component, id: string, cb: (...args: any[]) => void): void;
82
- mount?(component: React.ComponentClass | ComponentOptions<VueCtor> | Vue3Component, id: string, getCtx: (...args: any[]) => void, cb: (...args: any[]) => void): void;
72
+ mount?(component: React.ComponentClass | Vue3Component, id: string, cb: (...args: any[]) => void): void;
73
+ mount?(component: React.ComponentClass | Vue3Component, id: string, getCtx: (...args: any[]) => void, cb: (...args: any[]) => void): void;
83
74
  onError?(error: string): void;
84
75
  onLaunch?(options?: Record<string, unknown>): void;
85
76
  onPageNotFound?(res: any): void;
@@ -90,4 +81,4 @@ interface AppInstance extends Show {
90
81
  taroGlobalData?: Record<any, any>;
91
82
  config?: Record<any, any>;
92
83
  }
93
- export { Instance, VueAppInstance, VueInstance, PageProps, ReactPageComponent, ReactPageInstance, ReactAppInstance, PageLifeCycle, PageInstance, AppInstance };
84
+ export {};
@@ -1,4 +1,4 @@
1
1
  import { Events } from '@tarojs/shared';
2
2
  declare const eventCenter: Events;
3
- type EventsType = typeof Events;
4
- export { EventsType, eventCenter, Events };
3
+ export type EventsType = typeof Events;
4
+ export { eventCenter, Events };
package/dist/env.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { TaroDocument } from "./dom/document.js";
1
+ import type { TaroDocument } from './dom/document';
2
2
  interface Env {
3
3
  window: any;
4
4
  document: TaroDocument;
5
5
  }
6
6
  declare const env: Env;
7
- export { env as default };
7
+ export default env;
package/dist/hydrate.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { TaroElement } from "./dom/element.js";
2
- import { TaroText } from "./dom/text.js";
3
- import { MiniData } from "./index-26658829.js";
1
+ import type { TaroElement } from './dom/element';
2
+ import type { TaroText } from './dom/text';
3
+ import type { MiniData } from './interface';
4
4
  /**
5
5
  * React also has a fancy function's name for this: `hydrate()`.
6
6
  * You may have been heard `hydrate` as a SSR-related function,
7
7
  * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,
8
8
  * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.
9
9
  */
10
- declare function hydrate(node: TaroElement | TaroText): MiniData;
11
- export { hydrate };
10
+ export declare function hydrate(node: TaroElement | TaroText): MiniData;
package/dist/hydrate.js CHANGED
@@ -17,6 +17,7 @@ function hydrate(node) {
17
17
  // 初始化 SPECIAL_NODES
18
18
  SPECIAL_NODES || (SPECIAL_NODES = hooks.call('getSpecialNodes'));
19
19
  const nodeName = node.nodeName;
20
+ let compileModeName = null;
20
21
  if (isText(node)) {
21
22
  return {
22
23
  sid: node.sid,
@@ -48,11 +49,14 @@ function hydrate(node) {
48
49
  propInCamelCase !== COMPILE_MODE) {
49
50
  data[propInCamelCase] = props[prop];
50
51
  }
51
- if (nodeName === VIEW && propInCamelCase === CATCHMOVE && props[prop] !== false) {
52
+ if (process.env.TARO_ENV !== 'swan' &&
53
+ nodeName === VIEW &&
54
+ propInCamelCase === CATCHMOVE &&
55
+ props[prop] !== false) {
52
56
  data["nn" /* Shortcuts.NodeName */] = CATCH_VIEW;
53
57
  }
54
58
  if (propInCamelCase === COMPILE_MODE) {
55
- data["nn" /* Shortcuts.NodeName */] = props[prop];
59
+ compileModeName = props[prop];
56
60
  }
57
61
  }
58
62
  // Children
@@ -76,6 +80,9 @@ function hydrate(node) {
76
80
  }
77
81
  }
78
82
  }
83
+ if (compileModeName !== null) {
84
+ data["nn" /* Shortcuts.NodeName */] = compileModeName;
85
+ }
79
86
  const resData = hooks.call('transferHydrateData', data, node, componentAlias);
80
87
  return resData || data;
81
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hydrate.js","sources":["../src/hydrate.ts"],"sourcesContent":["import { hooks, Shortcuts, toCamelCase } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n COMPILE_MODE,\n ID,\n PURE_VIEW,\n STYLE,\n VIEW\n} from './constants'\nimport { getComponentsAlias, isComment, isHasExtractProp, isText } from './utils'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\nimport type { MiniData, MiniElementData } from './interface'\n\nlet SPECIAL_NODES\nlet componentsAlias\n\n/**\n * React also has a fancy function's name for this: `hydrate()`.\n * You may have been heard `hydrate` as a SSR-related function,\n * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,\n * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.\n */\nexport function hydrate (node: TaroElement | TaroText): MiniData {\n // 初始化 componentsAlias\n componentsAlias ||= getComponentsAlias()\n\n // 初始化 SPECIAL_NODES\n SPECIAL_NODES ||= hooks.call('getSpecialNodes')!\n\n const nodeName = node.nodeName\n\n if (isText(node)) {\n return {\n sid: node.sid,\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: componentsAlias[nodeName]?._num || '8'\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n sid: node.sid\n }\n\n if (node.uid !== node.sid) {\n data.uid = node.uid\n }\n\n if (!node.isAnyEventBinded() && SPECIAL_NODES.indexOf(nodeName) > -1) {\n data[Shortcuts.NodeName] = `static-${nodeName}`\n if (nodeName === VIEW && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = PURE_VIEW\n }\n }\n\n const { props } = node\n for (const prop in props) {\n const propInCamelCase = toCamelCase(prop)\n if (\n !prop.startsWith('data-') && // 在 node.dataset 的数据\n prop !== CLASS &&\n prop !== STYLE &&\n prop !== ID &&\n propInCamelCase !== CATCHMOVE &&\n propInCamelCase !== COMPILE_MODE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (nodeName === VIEW && propInCamelCase === CATCHMOVE && props[prop] !== false) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n if (propInCamelCase === COMPILE_MODE) {\n data[Shortcuts.NodeName] = props[prop]\n }\n }\n\n // Children\n data[Shortcuts.Childnodes] = node.childNodes.filter(node => !isComment(node)).map(hydrate)\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n const cssText = node.cssText\n if (cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = cssText\n }\n\n hooks.call('modifyHydrateData', data, node)\n\n const nn = data[Shortcuts.NodeName]\n const componentAlias = componentsAlias[nn]\n if (componentAlias) {\n data[Shortcuts.NodeName] = componentAlias._num\n for (const prop in data) {\n if (prop in componentAlias) {\n data[componentAlias[prop]] = data[prop]\n delete data[prop]\n }\n }\n }\n\n const resData = hooks.call('transferHydrateData', data, node, componentAlias)\n\n return resData || data\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydrate.js","sources":["../src/hydrate.ts"],"sourcesContent":["import { hooks, Shortcuts, toCamelCase } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n COMPILE_MODE,\n ID,\n PURE_VIEW,\n STYLE,\n VIEW\n} from './constants'\nimport { getComponentsAlias, isComment, isHasExtractProp, isText } from './utils'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\nimport type { MiniData, MiniElementData } from './interface'\n\nlet SPECIAL_NODES\nlet componentsAlias\n\n/**\n * React also has a fancy function's name for this: `hydrate()`.\n * You may have been heard `hydrate` as a SSR-related function,\n * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,\n * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.\n */\nexport function hydrate (node: TaroElement | TaroText): MiniData {\n // 初始化 componentsAlias\n componentsAlias ||= getComponentsAlias()\n\n // 初始化 SPECIAL_NODES\n SPECIAL_NODES ||= hooks.call('getSpecialNodes')!\n\n const nodeName = node.nodeName\n let compileModeName = null\n\n if (isText(node)) {\n return {\n sid: node.sid,\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: componentsAlias[nodeName]?._num || '8'\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n sid: node.sid\n }\n\n if (node.uid !== node.sid) {\n data.uid = node.uid\n }\n\n if (!node.isAnyEventBinded() && SPECIAL_NODES.indexOf(nodeName) > -1) {\n data[Shortcuts.NodeName] = `static-${nodeName}`\n if (nodeName === VIEW && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = PURE_VIEW\n }\n }\n\n const { props } = node\n for (const prop in props) {\n const propInCamelCase = toCamelCase(prop)\n if (\n !prop.startsWith('data-') && // 在 node.dataset 的数据\n prop !== CLASS &&\n prop !== STYLE &&\n prop !== ID &&\n propInCamelCase !== CATCHMOVE &&\n propInCamelCase !== COMPILE_MODE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (\n process.env.TARO_ENV !== 'swan' &&\n nodeName === VIEW &&\n propInCamelCase === CATCHMOVE &&\n props[prop] !== false\n ) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n if (propInCamelCase === COMPILE_MODE) {\n compileModeName = props[prop]\n }\n }\n\n // Children\n data[Shortcuts.Childnodes] = node.childNodes.filter(node => !isComment(node)).map(hydrate)\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n const cssText = node.cssText\n if (cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = cssText\n }\n\n hooks.call('modifyHydrateData', data, node)\n\n const nn = data[Shortcuts.NodeName]\n const componentAlias = componentsAlias[nn]\n if (componentAlias) {\n data[Shortcuts.NodeName] = componentAlias._num\n for (const prop in data) {\n if (prop in componentAlias) {\n data[componentAlias[prop]] = data[prop]\n delete data[prop]\n }\n }\n }\n\n if (compileModeName !== null) {\n data[Shortcuts.NodeName] = compileModeName\n }\n\n const resData = hooks.call('transferHydrateData', data, node, componentAlias)\n\n return resData || data\n}\n"],"names":[],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -219,6 +219,16 @@ function throttle(fn, threshold = 250, scope) {
219
219
  }
220
220
  };
221
221
  }
222
+ function debounce(fn, ms = 250, scope) {
223
+ let timer;
224
+ return function (...args) {
225
+ const context = scope || this;
226
+ clearTimeout(timer);
227
+ timer = setTimeout(function () {
228
+ fn.apply(context, args);
229
+ }, ms);
230
+ };
231
+ }
222
232
 
223
233
  const eventCenter = shared.hooks.call('getEventCenter', shared.Events);
224
234
 
@@ -1299,6 +1309,7 @@ function hydrate(node) {
1299
1309
  // 初始化 SPECIAL_NODES
1300
1310
  SPECIAL_NODES || (SPECIAL_NODES = shared.hooks.call('getSpecialNodes'));
1301
1311
  const nodeName = node.nodeName;
1312
+ let compileModeName = null;
1302
1313
  if (isText(node)) {
1303
1314
  return {
1304
1315
  sid: node.sid,
@@ -1330,11 +1341,14 @@ function hydrate(node) {
1330
1341
  propInCamelCase !== COMPILE_MODE) {
1331
1342
  data[propInCamelCase] = props[prop];
1332
1343
  }
1333
- if (nodeName === VIEW && propInCamelCase === CATCHMOVE && props[prop] !== false) {
1344
+ if (process.env.TARO_ENV !== 'swan' &&
1345
+ nodeName === VIEW &&
1346
+ propInCamelCase === CATCHMOVE &&
1347
+ props[prop] !== false) {
1334
1348
  data["nn" /* Shortcuts.NodeName */] = CATCH_VIEW;
1335
1349
  }
1336
1350
  if (propInCamelCase === COMPILE_MODE) {
1337
- data["nn" /* Shortcuts.NodeName */] = props[prop];
1351
+ compileModeName = props[prop];
1338
1352
  }
1339
1353
  }
1340
1354
  // Children
@@ -1358,6 +1372,9 @@ function hydrate(node) {
1358
1372
  }
1359
1373
  }
1360
1374
  }
1375
+ if (compileModeName !== null) {
1376
+ data["nn" /* Shortcuts.NodeName */] = compileModeName;
1377
+ }
1361
1378
  const resData = shared.hooks.call('transferHydrateData', data, node, componentAlias);
1362
1379
  return resData || data;
1363
1380
  }
@@ -1629,7 +1646,7 @@ class TaroNode extends TaroEventTarget {
1629
1646
  : [],
1630
1647
  nextSibling: isReplace
1631
1648
  ? refChild.nextSibling /** replaceChild */
1632
- : (refChild || null),
1649
+ : (refChild || null), /** insertBefore & appendChild */
1633
1650
  previousSibling: newChild.previousSibling
1634
1651
  });
1635
1652
  return newChild;
@@ -2953,7 +2970,7 @@ function makeMap(str, expectsLowerCase) {
2953
2970
  for (let i = 0; i < list.length; i++) {
2954
2971
  map[list[i]] = true;
2955
2972
  }
2956
- return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];
2973
+ return val => !!map[val.toLowerCase()] ;
2957
2974
  }
2958
2975
  const specialMiniElements = {
2959
2976
  img: 'image',
@@ -2963,11 +2980,11 @@ const internalCompsList = Object.keys(shared.internalComponents)
2963
2980
  .map(i => i.toLowerCase())
2964
2981
  .join(',');
2965
2982
  // https://developers.weixin.qq.com/miniprogram/dev/component
2966
- const isMiniElements = makeMap(internalCompsList, true);
2983
+ const isMiniElements = makeMap(internalCompsList);
2967
2984
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements
2968
- const isInlineElements = makeMap('a,i,abbr,iframe,select,acronym,slot,small,span,bdi,kbd,strong,big,map,sub,sup,br,mark,mark,meter,template,canvas,textarea,cite,object,time,code,output,u,data,picture,tt,datalist,var,dfn,del,q,em,s,embed,samp,b', true);
2985
+ const isInlineElements = makeMap('a,i,abbr,iframe,select,acronym,slot,small,span,bdi,kbd,strong,big,map,sub,sup,br,mark,mark,meter,template,canvas,textarea,cite,object,time,code,output,u,data,picture,tt,datalist,var,dfn,del,q,em,s,embed,samp,b');
2969
2986
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements
2970
- const isBlockElements = makeMap('address,fieldset,li,article,figcaption,main,aside,figure,nav,blockquote,footer,ol,details,form,p,dialog,h1,h2,h3,h4,h5,h6,pre,dd,header,section,div,hgroup,table,dl,hr,ul,dt', true);
2987
+ const isBlockElements = makeMap('address,fieldset,li,article,figcaption,main,aside,figure,nav,blockquote,footer,ol,details,form,p,dialog,h1,h2,h3,h4,h5,h6,pre,dd,header,section,div,hgroup,table,dl,hr,ul,dt');
2971
2988
 
2972
2989
  const closingTagAncestorBreakers = {
2973
2990
  li: ['ul', 'ol', 'menu'],
@@ -3264,6 +3281,7 @@ function cloneNode(isDeep = false) {
3264
3281
  }
3265
3282
  for (const key in this) {
3266
3283
  const value = this[key];
3284
+ // eslint-disable-next-line valid-typeof
3267
3285
  if ([PROPS, DATASET].includes(key) && typeof value === OBJECT) {
3268
3286
  newNode[key] = Object.assign({}, value);
3269
3287
  }
@@ -3495,7 +3513,7 @@ class FormElement extends TaroElement {
3495
3513
  else if (event.type === INPUT) {
3496
3514
  // Web 规范中表单组件的 value 应该跟着输入改变
3497
3515
  // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。
3498
- // 只测试了 React、Vue、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。
3516
+ // 只测试了 React、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。
3499
3517
  this.value = val;
3500
3518
  }
3501
3519
  }
@@ -3503,8 +3521,10 @@ class FormElement extends TaroElement {
3503
3521
  }
3504
3522
  }
3505
3523
 
3524
+ var _Performance_instances, _Performance_parseTime;
3506
3525
  class Performance {
3507
3526
  constructor() {
3527
+ _Performance_instances.add(this);
3508
3528
  this.recorder = new Map();
3509
3529
  }
3510
3530
  start(id) {
@@ -3513,18 +3533,32 @@ class Performance {
3513
3533
  }
3514
3534
  this.recorder.set(id, Date.now());
3515
3535
  }
3516
- stop(id) {
3536
+ stop(id, now = Date.now()) {
3517
3537
  if (!options.debug) {
3518
3538
  return;
3519
3539
  }
3520
- const now = Date.now();
3521
3540
  const prev = this.recorder.get(id);
3541
+ if (!(prev >= 0))
3542
+ return;
3522
3543
  this.recorder.delete(id);
3523
3544
  const time = now - prev;
3524
3545
  // eslint-disable-next-line no-console
3525
- console.log(`${id} 时长: ${time}ms`);
3546
+ console.log(`${id} 时长: ${time}ms 开始时间:${tslib.__classPrivateFieldGet(this, _Performance_instances, "m", _Performance_parseTime).call(this, prev)} 结束时间:${tslib.__classPrivateFieldGet(this, _Performance_instances, "m", _Performance_parseTime).call(this, now)}`);
3547
+ }
3548
+ delayStop(id, delay = 500) {
3549
+ if (!options.debug) {
3550
+ return;
3551
+ }
3552
+ return debounce((now = Date.now(), cb) => {
3553
+ this.stop(id, now);
3554
+ cb === null || cb === void 0 ? void 0 : cb();
3555
+ }, delay);
3526
3556
  }
3527
3557
  }
3558
+ _Performance_instances = new WeakSet(), _Performance_parseTime = function _Performance_parseTime(time) {
3559
+ const d = new Date(time);
3560
+ return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}.${`${d.getMilliseconds()}`.padStart(3, '0')}`;
3561
+ };
3528
3562
  const perf = new Performance();
3529
3563
 
3530
3564
  function findCustomWrapper(root, dataPathArr) {
@@ -4069,6 +4103,11 @@ function createPageConfig(component, pageName, data, pageConfig) {
4069
4103
  eventCenter.trigger(getOnHideEventKey(id));
4070
4104
  }
4071
4105
  };
4106
+ if (process.env.TARO_PLATFORM === 'web') {
4107
+ config.getOpenerEventChannel = () => {
4108
+ return shared.EventChannel.pageChannel;
4109
+ };
4110
+ }
4072
4111
  LIFECYCLES.forEach((lifecycle) => {
4073
4112
  let isDefer = false;
4074
4113
  lifecycle = lifecycle.replace(/^defer:/, () => {
@@ -4763,7 +4802,7 @@ function handleIntersectionObserverObjectPolyfill() {
4763
4802
  */
4764
4803
  function addEvent(node, event, fn, opt_useCapture) {
4765
4804
  if (shared.isFunction(node.addEventListener)) {
4766
- node.addEventListener(event, fn, opt_useCapture || false);
4805
+ node.addEventListener(event, fn, opt_useCapture );
4767
4806
  }
4768
4807
  else if (shared.isFunction(node.attachEvent)) {
4769
4808
  node.attachEvent('on' + event, fn);
@@ -4779,7 +4818,7 @@ function handleIntersectionObserverObjectPolyfill() {
4779
4818
  */
4780
4819
  function removeEvent(node, event, fn, opt_useCapture) {
4781
4820
  if (shared.isFunction(node.removeEventListener)) {
4782
- node.removeEventListener(event, fn, opt_useCapture || false);
4821
+ node.removeEventListener(event, fn, opt_useCapture );
4783
4822
  }
4784
4823
  else if (shared.isFunction(node.detatchEvent)) {
4785
4824
  node.detatchEvent('on' + event, fn);
@@ -5016,13 +5055,13 @@ if (process.env.SUPPORT_TARO_POLYFILL !== 'disabled' && process.env.TARO_PLATFOR
5016
5055
  handlePolyfill();
5017
5056
  }
5018
5057
 
5019
- Object.defineProperty(exports, 'Events', {
5020
- enumerable: true,
5021
- get: function () { return shared.Events; }
5058
+ Object.defineProperty(exports, "Events", {
5059
+ enumerable: true,
5060
+ get: function () { return shared.Events; }
5022
5061
  });
5023
- Object.defineProperty(exports, 'hooks', {
5024
- enumerable: true,
5025
- get: function () { return shared.hooks; }
5062
+ Object.defineProperty(exports, "hooks", {
5063
+ enumerable: true,
5064
+ get: function () { return shared.hooks; }
5026
5065
  });
5027
5066
  exports.A = A;
5028
5067
  exports.APP = APP;
@@ -5096,6 +5135,7 @@ exports.createEvent = createEvent;
5096
5135
  exports.createPageConfig = createPageConfig;
5097
5136
  exports.createRecursiveComponentConfig = createRecursiveComponentConfig;
5098
5137
  exports.customWrapperCache = customWrapperCache;
5138
+ exports.debounce = debounce;
5099
5139
  exports.document = document$1;
5100
5140
  exports.env = env;
5101
5141
  exports.eventCenter = eventCenter;
@@ -5128,6 +5168,7 @@ exports.navigator = nav;
5128
5168
  exports.nextTick = nextTick;
5129
5169
  exports.options = options;
5130
5170
  exports.parseUrl = parseUrl;
5171
+ exports.perf = perf;
5131
5172
  exports.removePageInstance = removePageInstance;
5132
5173
  exports.requestAnimationFrame = _raf;
5133
5174
  exports.safeExecute = safeExecute;