wevu 7.2.1 → 7.3.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.
Files changed (466) hide show
  1. package/README.md +6 -0
  2. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +1 -1
  3. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +1 -1
  4. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +1 -1
  5. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +1 -1
  6. package/dist/dev/api/vitest/setup.d.mts +1 -0
  7. package/dist/dev/api/vitest.d.mts +1 -0
  8. package/dist/dev/api.d.mts +1 -0
  9. package/dist/dev/compiler.d.mts +1 -0
  10. package/dist/dev/fetch.d.mts +9 -0
  11. package/dist/dev/index.d.mts +72 -0
  12. package/dist/dev/internal-reactivity.d.mts +18 -0
  13. package/dist/dev/internal-runtime.d.mts +45 -0
  14. package/dist/dev/internal-runtime.mjs +3 -2
  15. package/dist/dev/internal-template.d.mts +2 -0
  16. package/dist/dev/jsxTypes.d.mts +9 -0
  17. package/dist/dev/macros/shared.d.mts +83 -0
  18. package/dist/dev/macros.d.mts +71 -0
  19. package/dist/dev/package.mjs +1 -1
  20. package/dist/dev/reactivity/asyncDerivation.d.mts +41 -0
  21. package/dist/dev/reactivity/asyncDerivation.mjs +8 -10
  22. package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -1
  23. package/dist/dev/reactivity/computed.d.mts +25 -0
  24. package/dist/dev/reactivity/core.d.mts +35 -0
  25. package/dist/dev/reactivity/core.mjs +5 -8
  26. package/dist/dev/reactivity/core.mjs.map +1 -1
  27. package/dist/dev/reactivity/index.d.mts +16 -0
  28. package/dist/dev/reactivity/reactive/mutation.d.mts +21 -0
  29. package/dist/dev/reactivity/reactive/patch.d.mts +18 -0
  30. package/dist/dev/reactivity/reactive/patch.mjs +3 -3
  31. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -1
  32. package/dist/dev/reactivity/reactive/patchState.mjs +4 -8
  33. package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -1
  34. package/dist/dev/reactivity/reactive/shallow.d.mts +22 -0
  35. package/dist/dev/reactivity/reactive/shared.d.mts +4 -0
  36. package/dist/dev/reactivity/reactive/shared.mjs +1 -2
  37. package/dist/dev/reactivity/reactive/shared.mjs.map +1 -1
  38. package/dist/dev/reactivity/reactive.d.mts +42 -0
  39. package/dist/dev/reactivity/reactive.mjs +5 -10
  40. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  41. package/dist/dev/reactivity/readonly.d.mts +27 -0
  42. package/dist/dev/reactivity/ref.d.mts +27 -0
  43. package/dist/dev/reactivity/ref.mjs +2 -2
  44. package/dist/dev/reactivity/ref.mjs.map +1 -1
  45. package/dist/dev/reactivity/shallowRef.d.mts +19 -0
  46. package/dist/dev/reactivity/shallowRef.mjs +1 -1
  47. package/dist/dev/reactivity/shallowRef.mjs.map +1 -1
  48. package/dist/dev/reactivity/toRefs.d.mts +43 -0
  49. package/dist/dev/reactivity/traverse.d.mts +8 -0
  50. package/dist/dev/reactivity/watch/helpers.mjs +1 -1
  51. package/dist/dev/reactivity/watch/helpers.mjs.map +1 -1
  52. package/dist/dev/reactivity/watch/types.d.mts +43 -0
  53. package/dist/dev/reactivity/watch.d.mts +22 -0
  54. package/dist/dev/reactivity/watch.mjs +6 -8
  55. package/dist/dev/reactivity/watch.mjs.map +1 -1
  56. package/dist/dev/router/auto-routes.d.mts +8 -0
  57. package/dist/dev/router/createRouter.d.mts +9 -0
  58. package/dist/dev/router/createRouter.mjs +17 -24
  59. package/dist/dev/router/createRouter.mjs.map +1 -1
  60. package/dist/dev/router/initialNavigation.mjs +18 -16
  61. package/dist/dev/router/initialNavigation.mjs.map +1 -1
  62. package/dist/dev/router/instance.mjs +1 -2
  63. package/dist/dev/router/instance.mjs.map +1 -1
  64. package/dist/dev/router/navigationCore.d.mts +7 -0
  65. package/dist/dev/router/navigationCore.mjs +2 -2
  66. package/dist/dev/router/navigationCore.mjs.map +1 -1
  67. package/dist/dev/router/navigationResult.mjs +7 -10
  68. package/dist/dev/router/navigationResult.mjs.map +1 -1
  69. package/dist/dev/router/navigationTarget.mjs +1 -3
  70. package/dist/dev/router/navigationTarget.mjs.map +1 -1
  71. package/dist/dev/router/resolve.d.mts +7 -0
  72. package/dist/dev/router/resolve.mjs +3 -4
  73. package/dist/dev/router/resolve.mjs.map +1 -1
  74. package/dist/dev/router/routeRegistry.mjs +1 -1
  75. package/dist/dev/router/routeRegistry.mjs.map +1 -1
  76. package/dist/dev/router/routeSync.d.mts +2 -0
  77. package/dist/dev/router/routeSync.mjs +1 -1
  78. package/dist/dev/router/routeSync.mjs.map +1 -1
  79. package/dist/dev/router/types.d.mts +267 -0
  80. package/dist/dev/router/useRoute.d.mts +20 -0
  81. package/dist/dev/router/useRoute.mjs +12 -19
  82. package/dist/dev/router/useRoute.mjs.map +1 -1
  83. package/dist/dev/router/useRouter.d.mts +9 -0
  84. package/dist/dev/router.d.mts +26 -0
  85. package/dist/dev/routerInternal/location.d.mts +2 -0
  86. package/dist/dev/routerInternal/location.mjs +2 -3
  87. package/dist/dev/routerInternal/location.mjs.map +1 -1
  88. package/dist/dev/routerInternal/matching.d.mts +2 -0
  89. package/dist/dev/routerInternal/params.d.mts +2 -0
  90. package/dist/dev/routerInternal/params.mjs +2 -3
  91. package/dist/dev/routerInternal/params.mjs.map +1 -1
  92. package/dist/dev/routerInternal/query.d.mts +7 -0
  93. package/dist/dev/routerInternal/records.d.mts +2 -0
  94. package/dist/dev/routerInternal/records.mjs +1 -1
  95. package/dist/dev/routerInternal/records.mjs.map +1 -1
  96. package/dist/dev/routerInternal/recordsWarnings.d.mts +2 -0
  97. package/dist/dev/routerInternal/recordsWarnings.mjs +1 -2
  98. package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -1
  99. package/dist/dev/routerInternal/shared.d.mts +9 -0
  100. package/dist/dev/routerInternal/snapshots.d.mts +2 -0
  101. package/dist/dev/routerInternal/types.d.mts +9 -0
  102. package/dist/dev/runtime/app/context.mjs +13 -26
  103. package/dist/dev/runtime/app/context.mjs.map +1 -1
  104. package/dist/dev/runtime/app/diagnostics.mjs +2 -4
  105. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
  106. package/dist/dev/runtime/app/mount.mjs +27 -33
  107. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  108. package/dist/dev/runtime/app/pending.d.mts +10 -0
  109. package/dist/dev/runtime/app/setData/commitTracker.d.mts +13 -0
  110. package/dist/dev/runtime/app/setData/commitTracker.mjs +5 -9
  111. package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -1
  112. package/dist/dev/runtime/app/setData/patchScheduler.mjs +2 -4
  113. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
  114. package/dist/dev/runtime/app/setData/payload.mjs +2 -3
  115. package/dist/dev/runtime/app/setData/payload.mjs.map +1 -1
  116. package/dist/dev/runtime/app/setData/scheduler.d.mts +51 -0
  117. package/dist/dev/runtime/app/setData/scheduler.mjs +7 -9
  118. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
  119. package/dist/dev/runtime/app/setData/snapshot.mjs +5 -6
  120. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
  121. package/dist/dev/runtime/app/setDataOptions.mjs +26 -27
  122. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -1
  123. package/dist/dev/runtime/app.d.mts +8 -0
  124. package/dist/dev/runtime/app.mjs +9 -9
  125. package/dist/dev/runtime/app.mjs.map +1 -1
  126. package/dist/dev/runtime/bindingManifest.mjs +6 -14
  127. package/dist/dev/runtime/bindingManifest.mjs.map +1 -1
  128. package/dist/dev/runtime/capabilities.d.mts +78 -0
  129. package/dist/dev/runtime/capabilities.mjs.map +1 -1
  130. package/dist/dev/runtime/css.d.mts +14 -0
  131. package/dist/dev/runtime/css.mjs +4 -8
  132. package/dist/dev/runtime/css.mjs.map +1 -1
  133. package/dist/dev/runtime/defaults.d.mts +12 -0
  134. package/dist/dev/runtime/defaults.mjs +4 -4
  135. package/dist/dev/runtime/defaults.mjs.map +1 -1
  136. package/dist/dev/runtime/define/initialComputed.mjs +5 -5
  137. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -1
  138. package/dist/dev/runtime/define/options.mjs +10 -12
  139. package/dist/dev/runtime/define/options.mjs.map +1 -1
  140. package/dist/dev/runtime/define/props.mjs +4 -5
  141. package/dist/dev/runtime/define/props.mjs.map +1 -1
  142. package/dist/dev/runtime/define/scopedSlotOptions.mjs +43 -61
  143. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  144. package/dist/dev/runtime/define/setupResult.mjs +17 -28
  145. package/dist/dev/runtime/define/setupResult.mjs.map +1 -1
  146. package/dist/dev/runtime/define.d.mts +118 -0
  147. package/dist/dev/runtime/define.mjs +9 -12
  148. package/dist/dev/runtime/define.mjs.map +1 -1
  149. package/dist/dev/runtime/diff.mjs +9 -11
  150. package/dist/dev/runtime/diff.mjs.map +1 -1
  151. package/dist/dev/runtime/disposables.d.mts +31 -0
  152. package/dist/dev/runtime/disposables.mjs +2 -2
  153. package/dist/dev/runtime/disposables.mjs.map +1 -1
  154. package/dist/dev/runtime/elementIntersectionObserver.d.mts +26 -0
  155. package/dist/dev/runtime/elementIntersectionObserver.mjs +16 -24
  156. package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -1
  157. package/dist/dev/runtime/features/inlineEvents.d.mts +7 -0
  158. package/dist/dev/runtime/features/inlineEvents.mjs +2 -3
  159. package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -1
  160. package/dist/dev/runtime/features/jsxIslands.d.mts +7 -0
  161. package/dist/dev/runtime/features/jsxIslands.mjs +20 -0
  162. package/dist/dev/runtime/features/jsxIslands.mjs.map +1 -0
  163. package/dist/dev/runtime/features/layout.d.mts +7 -0
  164. package/dist/dev/runtime/features/layout.mjs +2 -3
  165. package/dist/dev/runtime/features/layout.mjs.map +1 -1
  166. package/dist/dev/runtime/features/patchStrategy.d.mts +7 -0
  167. package/dist/dev/runtime/features/publicLayout.d.mts +24 -0
  168. package/dist/dev/runtime/features/publicLayout.mjs +2 -6
  169. package/dist/dev/runtime/features/publicLayout.mjs.map +1 -1
  170. package/dist/dev/runtime/features/scopedSlots.d.mts +23 -0
  171. package/dist/dev/runtime/features/scopedSlots.mjs +5 -9
  172. package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -1
  173. package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +7 -0
  174. package/dist/dev/runtime/features/templateRefs.d.mts +7 -0
  175. package/dist/dev/runtime/features/templateRefs.mjs +1 -1
  176. package/dist/dev/runtime/features/templateRefs.mjs.map +1 -1
  177. package/dist/dev/runtime/hooks/base.d.mts +27 -0
  178. package/dist/dev/runtime/hooks/base.mjs +21 -32
  179. package/dist/dev/runtime/hooks/base.mjs.map +1 -1
  180. package/dist/dev/runtime/hooks/register.d.mts +30 -0
  181. package/dist/dev/runtime/hooks/vue.d.mts +52 -0
  182. package/dist/dev/runtime/hooks.d.mts +4 -0
  183. package/dist/dev/runtime/index.d.mts +46 -0
  184. package/dist/dev/runtime/inlineDataset.mjs +1 -2
  185. package/dist/dev/runtime/inlineDataset.mjs.map +1 -1
  186. package/dist/dev/runtime/intersectionObserver.d.mts +14 -0
  187. package/dist/dev/runtime/intersectionObserver.mjs +6 -6
  188. package/dist/dev/runtime/intersectionObserver.mjs.map +1 -1
  189. package/dist/dev/runtime/jsxIsland.d.mts +37 -0
  190. package/dist/dev/runtime/jsxIsland.mjs +16 -33
  191. package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
  192. package/dist/dev/runtime/layoutBridge.d.mts +55 -0
  193. package/dist/dev/runtime/layoutBridge.mjs +32 -62
  194. package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
  195. package/dist/dev/runtime/nativeBridge.mjs +1 -1
  196. package/dist/dev/runtime/nativeBridge.mjs.map +1 -1
  197. package/dist/dev/runtime/navigationLifecycle.mjs +24 -0
  198. package/dist/dev/runtime/navigationLifecycle.mjs.map +1 -0
  199. package/dist/dev/runtime/noSetData.d.mts +5 -0
  200. package/dist/dev/runtime/pageEnvironment.d.mts +50 -0
  201. package/dist/dev/runtime/pageEnvironment.mjs +15 -18
  202. package/dist/dev/runtime/pageEnvironment.mjs.map +1 -1
  203. package/dist/dev/runtime/pageLayout.d.mts +25 -0
  204. package/dist/dev/runtime/pageLayout.mjs +7 -11
  205. package/dist/dev/runtime/pageLayout.mjs.map +1 -1
  206. package/dist/dev/runtime/pageScroll.d.mts +29 -0
  207. package/dist/dev/runtime/pageScroll.mjs +2 -3
  208. package/dist/dev/runtime/pageScroll.mjs.map +1 -1
  209. package/dist/dev/runtime/platform/current.mjs +12 -0
  210. package/dist/dev/runtime/platform/current.mjs.map +1 -0
  211. package/dist/dev/runtime/platform/generic.mjs +36 -0
  212. package/dist/dev/runtime/platform/generic.mjs.map +1 -0
  213. package/dist/dev/runtime/platform/globals.mjs +29 -0
  214. package/dist/dev/runtime/platform/globals.mjs.map +1 -0
  215. package/dist/dev/runtime/platform.mjs +15 -60
  216. package/dist/dev/runtime/platform.mjs.map +1 -1
  217. package/dist/dev/runtime/provide.d.mts +60 -0
  218. package/dist/dev/runtime/provideContext.mjs +7 -9
  219. package/dist/dev/runtime/provideContext.mjs.map +1 -1
  220. package/dist/dev/runtime/provideStore.d.mts +7 -0
  221. package/dist/dev/runtime/publicRuntime.d.mts +22 -0
  222. package/dist/dev/runtime/publicRuntime.mjs +4 -0
  223. package/dist/dev/runtime/publicRuntime.mjs.map +1 -1
  224. package/dist/dev/runtime/pullDownRefresh.d.mts +12 -0
  225. package/dist/dev/runtime/pullDownRefresh.mjs +2 -4
  226. package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -1
  227. package/dist/dev/runtime/register/app.d.mts +14 -0
  228. package/dist/dev/runtime/register/app.mjs +18 -19
  229. package/dist/dev/runtime/register/app.mjs.map +1 -1
  230. package/dist/dev/runtime/register/component/alipay.mjs +9 -18
  231. package/dist/dev/runtime/register/component/alipay.mjs.map +1 -1
  232. package/dist/dev/runtime/register/component/alipayRegistration.mjs +60 -0
  233. package/dist/dev/runtime/register/component/alipayRegistration.mjs.map +1 -0
  234. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +8 -9
  235. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -1
  236. package/dist/dev/runtime/register/component/lifecycle.mjs +7 -12
  237. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
  238. package/dist/dev/runtime/register/component/methods.mjs +13 -18
  239. package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
  240. package/dist/dev/runtime/register/component/options.mjs +3 -4
  241. package/dist/dev/runtime/register/component/options.mjs.map +1 -1
  242. package/dist/dev/runtime/register/component/props.mjs +25 -31
  243. package/dist/dev/runtime/register/component/props.mjs.map +1 -1
  244. package/dist/dev/runtime/register/component/registerDefinition.mjs +18 -40
  245. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
  246. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +18 -60
  247. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
  248. package/dist/dev/runtime/register/component.d.mts +17 -0
  249. package/dist/dev/runtime/register/component.mjs +3 -5
  250. package/dist/dev/runtime/register/component.mjs.map +1 -1
  251. package/dist/dev/runtime/register/inline.d.mts +15 -0
  252. package/dist/dev/runtime/register/inline.mjs +8 -10
  253. package/dist/dev/runtime/register/inline.mjs.map +1 -1
  254. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +7 -8
  255. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -1
  256. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  257. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -1
  258. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +25 -34
  259. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
  260. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +6 -13
  261. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  262. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +2 -2
  263. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -1
  264. package/dist/dev/runtime/register/runtimeInstance/utils.mjs +9 -9
  265. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
  266. package/dist/dev/runtime/register/runtimeInstance.d.mts +26 -0
  267. package/dist/dev/runtime/register/runtimeInstance.mjs +74 -100
  268. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  269. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +12 -15
  270. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
  271. package/dist/dev/runtime/register/setup.d.mts +11 -0
  272. package/dist/dev/runtime/register/setup.mjs +2 -3
  273. package/dist/dev/runtime/register/setup.mjs.map +1 -1
  274. package/dist/dev/runtime/register/snapshot.mjs +1 -4
  275. package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
  276. package/dist/dev/runtime/register/watch.d.mts +12 -0
  277. package/dist/dev/runtime/register/watch.mjs +3 -5
  278. package/dist/dev/runtime/register/watch.mjs.map +1 -1
  279. package/dist/dev/runtime/register.d.mts +5 -0
  280. package/dist/dev/runtime/scopedSlots.mjs +14 -21
  281. package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
  282. package/dist/dev/runtime/selectorQuery.d.mts +54 -0
  283. package/dist/dev/runtime/selectorQuery.mjs +5 -9
  284. package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
  285. package/dist/dev/runtime/template.d.mts +6 -0
  286. package/dist/dev/runtime/template.mjs +1 -1
  287. package/dist/dev/runtime/template.mjs.map +1 -1
  288. package/dist/dev/runtime/templateRefTypes.d.mts +12 -0
  289. package/dist/dev/runtime/templateRefs/helpers.mjs +14 -24
  290. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
  291. package/dist/dev/runtime/templateRefs.mjs +8 -15
  292. package/dist/dev/runtime/templateRefs.mjs.map +1 -1
  293. package/dist/dev/runtime/types/core.d.mts +35 -0
  294. package/dist/dev/runtime/types/miniprogram.d.mts +84 -0
  295. package/dist/dev/runtime/types/miniprogramHost.d.mts +45 -0
  296. package/dist/dev/runtime/types/miniprogramHostSources.d.mts +112 -0
  297. package/dist/dev/runtime/types/options.d.mts +138 -0
  298. package/dist/dev/runtime/types/props/propTypes.d.mts +79 -0
  299. package/dist/dev/runtime/types/props/router.d.mts +51 -0
  300. package/dist/dev/runtime/types/props/setup.d.mts +96 -0
  301. package/dist/dev/runtime/types/props.d.mts +4 -0
  302. package/dist/dev/runtime/types/runtime.d.mts +59 -0
  303. package/dist/dev/runtime/types/setData.d.mts +237 -0
  304. package/dist/dev/runtime/types.d.mts +29 -0
  305. package/dist/dev/runtime/uniAppHost.d.mts +8 -0
  306. package/dist/dev/runtime/uniAppHost.mjs +6 -14
  307. package/dist/dev/runtime/uniAppHost.mjs.map +1 -1
  308. package/dist/dev/runtime/updatePerformance.d.mts +13 -0
  309. package/dist/dev/runtime/updatePerformance.mjs +1 -1
  310. package/dist/dev/runtime/updatePerformance.mjs.map +1 -1
  311. package/dist/dev/runtime/use.d.mts +13 -0
  312. package/dist/dev/runtime/use.mjs +1 -1
  313. package/dist/dev/runtime/use.mjs.map +1 -1
  314. package/dist/dev/runtime/vueCompat/context.d.mts +8 -0
  315. package/dist/dev/runtime/vueCompat/context.mjs +3 -5
  316. package/dist/dev/runtime/vueCompat/context.mjs.map +1 -1
  317. package/dist/dev/runtime/vueCompat/model.d.mts +30 -0
  318. package/dist/dev/runtime/vueCompat/model.mjs +9 -13
  319. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -1
  320. package/dist/dev/runtime/vueCompat/router.d.mts +29 -0
  321. package/dist/dev/runtime/vueCompat/router.mjs +4 -4
  322. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
  323. package/dist/dev/runtime/vueCompat/templateRef.d.mts +9 -0
  324. package/dist/dev/runtime/vueCompat/templateRef.mjs +1 -1
  325. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
  326. package/dist/dev/runtime/vueCompat.d.mts +5 -0
  327. package/dist/dev/scheduler.d.mts +4 -0
  328. package/dist/dev/scheduler.mjs +3 -4
  329. package/dist/dev/scheduler.mjs.map +1 -1
  330. package/dist/dev/store/base.mjs +1 -2
  331. package/dist/dev/store/base.mjs.map +1 -1
  332. package/dist/dev/store/define/create.mjs +11 -22
  333. package/dist/dev/store/define/create.mjs.map +1 -1
  334. package/dist/dev/store/define.d.mts +8 -0
  335. package/dist/dev/store/define.mjs +1 -1
  336. package/dist/dev/store/define.mjs.map +1 -1
  337. package/dist/dev/store/manager.d.mts +16 -0
  338. package/dist/dev/store/storeToRefs.d.mts +11 -0
  339. package/dist/dev/store/types.d.mts +106 -0
  340. package/dist/dev/store/view.mjs +1 -1
  341. package/dist/dev/store/view.mjs.map +1 -1
  342. package/dist/dev/store.d.mts +5 -0
  343. package/dist/dev/version.d.mts +4 -0
  344. package/dist/dev/vue-augment.d.mts +8 -0
  345. package/dist/dev/vue-demi.d.mts +87 -0
  346. package/dist/dev/vue-types.d.mts +19 -0
  347. package/dist/dev/web-apis.d.mts +3 -0
  348. package/dist/internal-runtime.d.mts +2 -1
  349. package/dist/internal-runtime.mjs +1 -1
  350. package/dist/package.mjs +1 -1
  351. package/dist/reactivity/asyncDerivation.mjs +1 -1
  352. package/dist/reactivity/core.mjs +1 -1
  353. package/dist/reactivity/reactive/patch.mjs +1 -1
  354. package/dist/reactivity/reactive/patchState.mjs +1 -1
  355. package/dist/reactivity/reactive/shared.mjs +1 -1
  356. package/dist/reactivity/reactive.mjs +1 -1
  357. package/dist/reactivity/ref.mjs +1 -1
  358. package/dist/reactivity/shallowRef.mjs +1 -1
  359. package/dist/reactivity/watch/helpers.mjs +1 -1
  360. package/dist/reactivity/watch.mjs +1 -1
  361. package/dist/router/createRouter.mjs +1 -1
  362. package/dist/router/initialNavigation.mjs +1 -1
  363. package/dist/router/instance.mjs +1 -1
  364. package/dist/router/navigationCore.mjs +1 -1
  365. package/dist/router/navigationResult.mjs +1 -1
  366. package/dist/router/navigationTarget.mjs +1 -1
  367. package/dist/router/resolve.mjs +1 -1
  368. package/dist/router/routeRegistry.mjs +1 -1
  369. package/dist/router/routeSync.mjs +1 -1
  370. package/dist/router/useRoute.mjs +1 -1
  371. package/dist/routerInternal/location.mjs +1 -1
  372. package/dist/routerInternal/params.mjs +1 -1
  373. package/dist/routerInternal/records.mjs +1 -1
  374. package/dist/routerInternal/recordsWarnings.mjs +1 -1
  375. package/dist/runtime/app/context.mjs +1 -1
  376. package/dist/runtime/app/diagnostics.mjs +1 -1
  377. package/dist/runtime/app/mount.mjs +1 -1
  378. package/dist/runtime/app/setData/commitTracker.mjs +1 -1
  379. package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
  380. package/dist/runtime/app/setData/payload.mjs +1 -1
  381. package/dist/runtime/app/setData/scheduler.mjs +1 -1
  382. package/dist/runtime/app/setData/snapshot.mjs +1 -1
  383. package/dist/runtime/app/setDataOptions.mjs +1 -1
  384. package/dist/runtime/app.mjs +1 -1
  385. package/dist/runtime/bindingManifest.mjs +1 -1
  386. package/dist/runtime/capabilities.d.mts +4 -1
  387. package/dist/runtime/css.mjs +1 -1
  388. package/dist/runtime/defaults.mjs +1 -1
  389. package/dist/runtime/define/initialComputed.mjs +1 -1
  390. package/dist/runtime/define/options.mjs +1 -1
  391. package/dist/runtime/define/props.mjs +1 -1
  392. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  393. package/dist/runtime/define/setupResult.mjs +1 -1
  394. package/dist/runtime/define.mjs +1 -1
  395. package/dist/runtime/diff.mjs +1 -1
  396. package/dist/runtime/disposables.mjs +1 -1
  397. package/dist/runtime/elementIntersectionObserver.mjs +1 -1
  398. package/dist/runtime/features/inlineEvents.mjs +1 -1
  399. package/dist/runtime/features/jsxIslands.d.mts +6 -0
  400. package/dist/runtime/features/jsxIslands.mjs +1 -0
  401. package/dist/runtime/features/layout.mjs +1 -1
  402. package/dist/runtime/features/publicLayout.mjs +1 -1
  403. package/dist/runtime/features/scopedSlots.mjs +1 -1
  404. package/dist/runtime/features/templateRefs.mjs +1 -1
  405. package/dist/runtime/hooks/base.mjs +1 -1
  406. package/dist/runtime/inlineDataset.mjs +1 -1
  407. package/dist/runtime/intersectionObserver.mjs +1 -1
  408. package/dist/runtime/jsxIsland.mjs +1 -1
  409. package/dist/runtime/layoutBridge.mjs +1 -1
  410. package/dist/runtime/nativeBridge.mjs +1 -1
  411. package/dist/runtime/navigationLifecycle.mjs +1 -0
  412. package/dist/runtime/pageEnvironment.mjs +1 -1
  413. package/dist/runtime/pageLayout.mjs +1 -1
  414. package/dist/runtime/pageScroll.mjs +1 -1
  415. package/dist/runtime/platform/current.mjs +1 -0
  416. package/dist/runtime/platform/generic.mjs +1 -0
  417. package/dist/runtime/platform/globals.mjs +1 -0
  418. package/dist/runtime/platform.mjs +1 -1
  419. package/dist/runtime/provideContext.mjs +1 -1
  420. package/dist/runtime/publicRuntime.mjs +1 -1
  421. package/dist/runtime/pullDownRefresh.mjs +1 -1
  422. package/dist/runtime/register/app.mjs +1 -1
  423. package/dist/runtime/register/component/alipay.mjs +1 -1
  424. package/dist/runtime/register/component/alipayRegistration.mjs +1 -0
  425. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -1
  426. package/dist/runtime/register/component/lifecycle.mjs +1 -1
  427. package/dist/runtime/register/component/methods.mjs +1 -1
  428. package/dist/runtime/register/component/options.mjs +1 -1
  429. package/dist/runtime/register/component/props.mjs +1 -1
  430. package/dist/runtime/register/component/registerDefinition.mjs +1 -1
  431. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  432. package/dist/runtime/register/component.mjs +1 -1
  433. package/dist/runtime/register/inline.mjs +1 -1
  434. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -1
  435. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  436. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
  437. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  438. package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -1
  439. package/dist/runtime/register/runtimeInstance/utils.mjs +1 -1
  440. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  441. package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -1
  442. package/dist/runtime/register/setup.mjs +1 -1
  443. package/dist/runtime/register/snapshot.mjs +1 -1
  444. package/dist/runtime/register/watch.mjs +1 -1
  445. package/dist/runtime/scopedSlots.mjs +1 -1
  446. package/dist/runtime/selectorQuery.mjs +1 -1
  447. package/dist/runtime/template.mjs +1 -1
  448. package/dist/runtime/templateRefs/helpers.mjs +1 -1
  449. package/dist/runtime/templateRefs.mjs +1 -1
  450. package/dist/runtime/uniAppHost.mjs +1 -1
  451. package/dist/runtime/updatePerformance.mjs +1 -1
  452. package/dist/runtime/use.mjs +1 -1
  453. package/dist/runtime/vueCompat/context.mjs +1 -1
  454. package/dist/runtime/vueCompat/model.mjs +1 -1
  455. package/dist/runtime/vueCompat/router.mjs +1 -1
  456. package/dist/runtime/vueCompat/templateRef.mjs +1 -1
  457. package/dist/scheduler.mjs +1 -1
  458. package/dist/store/base.mjs +1 -1
  459. package/dist/store/define/create.mjs +1 -1
  460. package/dist/store/define.mjs +1 -1
  461. package/dist/store/view.mjs +1 -1
  462. package/package.json +7 -7
  463. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +0 -0
  464. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +0 -0
  465. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +0 -0
  466. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scopedSlots.mjs","names":[],"sources":["../../../src/runtime/scopedSlots.ts"],"sourcesContent":["import type { ComponentPublicInstance, InternalRuntimeState, RuntimeInstance } from './types'\nimport {\n WEVU_PROPS_KEY,\n WEVU_RUNTIME_OWNER_ID_KEY,\n WEVU_SCOPED_SLOT_OWNER_SEED_KEY,\n WEVU_SCOPED_SLOT_OWNER_STORE_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { isDeepEqualValue } from './app/setData/snapshot'\nimport { getScopedSlotHostGlobalObject } from './platform'\n\ntype OwnerSubscriber = (snapshot: Record<string, any>, proxy: ComponentPublicInstance<any, any, any> | undefined) => void\n\ninterface OwnerRecord {\n snapshot: Record<string, any>\n proxy?: ComponentPublicInstance<any, any, any>\n target?: InternalRuntimeState\n subscribers: Set<OwnerSubscriber>\n}\n\ntype RuntimeInstanceWithOwnerSnapshot = RuntimeInstance<any, any, any> & {\n __wevu_cloneDispatchedSnapshot?: () => Record<string, any>\n}\n\nfunction getScopedSlotGlobalStore() {\n const globalObject = getScopedSlotHostGlobalObject() ?? Object.create(null)\n if (!(globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] instanceof Map)) {\n globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] = new Map<string, OwnerRecord>()\n }\n if (typeof globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] !== 'number') {\n globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] = 0\n }\n return {\n globalObject,\n ownerStore: globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] as Map<string, OwnerRecord>,\n }\n}\n\nexport function allocateOwnerId() {\n const { globalObject } = getScopedSlotGlobalStore()\n globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] += 1\n return `wv${globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY]}`\n}\n\nexport function updateOwnerSnapshot(\n ownerId: string,\n snapshot: Record<string, any>,\n proxy: ComponentPublicInstance<any, any, any> | undefined,\n target?: InternalRuntimeState,\n) {\n const { ownerStore } = getScopedSlotGlobalStore()\n const record = ownerStore.get(ownerId) ?? { snapshot: {}, proxy, subscribers: new Set() }\n const snapshotChanged = !isDeepEqualValue(record.snapshot, snapshot, 20, { keys: 10_000 })\n const proxyChanged = record.proxy !== proxy\n record.snapshot = snapshot\n record.proxy = proxy\n record.target = target ?? record.target\n ownerStore.set(ownerId, record)\n if ((snapshotChanged || proxyChanged) && record.subscribers.size) {\n for (const subscriber of record.subscribers) {\n try {\n subscriber(snapshot, proxy)\n }\n catch {\n // 忽略订阅回调错误\n }\n }\n }\n}\n\nexport function removeOwner(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n ownerStore.delete(ownerId)\n}\n\nexport function subscribeOwner(ownerId: string, subscriber: OwnerSubscriber) {\n const { ownerStore } = getScopedSlotGlobalStore()\n const record = ownerStore.get(ownerId) ?? { snapshot: {}, proxy: undefined, subscribers: new Set() }\n record.subscribers.add(subscriber)\n ownerStore.set(ownerId, record)\n return () => {\n const current = ownerStore.get(ownerId)\n if (!current) {\n return\n }\n current.subscribers.delete(subscriber)\n }\n}\n\nexport function getOwnerProxy(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.proxy\n}\n\nexport function getOwnerSnapshot(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.snapshot\n}\n\nexport function getOwnerTarget(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.target\n}\n\nexport function resolveOwnerSnapshot(runtime: RuntimeInstance<any, any, any>) {\n const fastSnapshot = (runtime as RuntimeInstanceWithOwnerSnapshot).__wevu_cloneDispatchedSnapshot\n if (typeof fastSnapshot === 'function') {\n return fastSnapshot()\n }\n return typeof runtime.snapshot === 'function' ? runtime.snapshot() : {}\n}\n\nconst OWNER_SNAPSHOT_PROTOCOL_KEYS = new Set([\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n])\n\nexport function mergeOwnerSnapshotProps(\n snapshot: Record<string, any>,\n propsSource: unknown,\n) {\n if (!propsSource || typeof propsSource !== 'object') {\n return\n }\n for (const [key, value] of Object.entries(propsSource as Record<string, any>)) {\n if (OWNER_SNAPSHOT_PROTOCOL_KEYS.has(key)) {\n continue\n }\n snapshot[key] = value\n }\n}\n\nexport function attachOwnerSnapshot(\n target: InternalRuntimeState,\n runtime: RuntimeInstance<any, any, any>,\n ownerId: string,\n options?: {\n deferSnapshot?: boolean\n },\n) {\n try {\n ;(target as any)[WEVU_RUNTIME_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 宿主拒绝扩展实例时继续使用现有引用通道。\n }\n try {\n ;(runtime.state as any)[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 忽略写入异常\n }\n try {\n ;(target as any)[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 忽略写入异常\n }\n try {\n const data = (target as any).data\n if (data && typeof data === 'object') {\n data[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n }\n catch {\n // 忽略 owner id 同步异常\n }\n const snapshot = options?.deferSnapshot ? {} : resolveOwnerSnapshot(runtime)\n const propsSource = (target as any)[WEVU_PROPS_KEY] ?? (target as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtime.proxy, target)\n}\n"],"mappings":";;;;;AA8BA,SAAS,2BAA2B;;CAClC,MAAM,wCAAe,8BAA8B,0EAAK,OAAO,OAAO,IAAI;CAC1E,IAAI,EAAE,aAAa,6CAA6C,MAC9D,aAAa,oDAAoC,IAAI,IAAyB;CAEhF,IAAI,OAAO,aAAa,qCAAqC,UAC3D,aAAa,mCAAmC;CAElD,OAAO;EACL;EACA,YAAY,aAAa;CAC3B;AACF;AAEA,SAAgB,kBAAkB;CAChC,MAAM,EAAE,iBAAiB,yBAAyB;CAClD,aAAa,oCAAoC;CACjD,OAAO,KAAK,aAAa;AAC3B;AAEA,SAAgB,oBACd,SACA,UACA,OACA,QACA;;CACA,MAAM,EAAE,eAAe,yBAAyB;CAChD,MAAM,4BAAS,WAAW,IAAI,OAAO,8DAAK;EAAE,UAAU,CAAC;EAAG;EAAO,6BAAa,IAAI,IAAI;CAAE;CACxF,MAAM,kBAAkB,CAAC,iBAAiB,OAAO,UAAU,UAAU,IAAI,EAAE,MAAM,IAAO,CAAC;CACzF,MAAM,eAAe,OAAO,UAAU;CACtC,OAAO,WAAW;CAClB,OAAO,QAAQ;CACf,OAAO,SAAS,gDAAU,OAAO;CACjC,WAAW,IAAI,SAAS,MAAM;CAC9B,KAAK,mBAAmB,iBAAiB,OAAO,YAAY,MAC1D,KAAK,MAAM,cAAc,OAAO,aAC9B,IAAI;EACF,WAAW,UAAU,KAAK;CAC5B,kBACM,CAEN;AAGN;AAEA,SAAgB,YAAY,SAAiB;CAC3C,MAAM,EAAE,eAAe,yBAAyB;CAChD,WAAW,OAAO,OAAO;AAC3B;AAEA,SAAgB,eAAe,SAAiB,YAA6B;;CAC3E,MAAM,EAAE,eAAe,yBAAyB;CAChD,MAAM,6BAAS,WAAW,IAAI,OAAO,gEAAK;EAAE,UAAU,CAAC;EAAG,OAAO;EAAW,6BAAa,IAAI,IAAI;CAAE;CACnG,OAAO,YAAY,IAAI,UAAU;CACjC,WAAW,IAAI,SAAS,MAAM;CAC9B,aAAa;EACX,MAAM,UAAU,WAAW,IAAI,OAAO;EACtC,IAAI,CAAC,SACH;EAEF,QAAQ,YAAY,OAAO,UAAU;CACvC;AACF;AAEA,SAAgB,cAAc,SAAiB;;CAC7C,MAAM,EAAE,eAAe,yBAAyB;CAChD,2BAAO,WAAW,IAAI,OAAO,uEAAG;AAClC;AAEA,SAAgB,iBAAiB,SAAiB;;CAChD,MAAM,EAAE,eAAe,yBAAyB;CAChD,2BAAO,WAAW,IAAI,OAAO,uEAAG;AAClC;AAEA,SAAgB,eAAe,SAAiB;;CAC9C,MAAM,EAAE,eAAe,yBAAyB;CAChD,2BAAO,WAAW,IAAI,OAAO,uEAAG;AAClC;AAEA,SAAgB,qBAAqB,SAAyC;CAC5E,MAAM,eAAgB,QAA6C;CACnE,IAAI,OAAO,iBAAiB,YAC1B,OAAO,aAAa;CAEtB,OAAO,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,IAAI,CAAC;AACxE;AAEA,MAAM,+CAA+B,IAAI,IAAI;CAC3C;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,SAAgB,wBACd,UACA,aACA;CACA,IAAI,CAAC,eAAe,OAAO,gBAAgB,UACzC;CAEF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,WAAkC,GAAG;EAC7E,IAAI,6BAA6B,IAAI,GAAG,GACtC;EAEF,SAAS,OAAO;CAClB;AACF;AAEA,SAAgB,oBACd,QACA,SACA,SACA,SAGA;;CACA,IAAI;EACD,AAAC,OAAe,6BAA6B;CAChD,mBACM,CAEN;CACA,IAAI;EACD,AAAC,QAAQ,MAAc,0BAA0B;CACpD,mBACM,CAEN;CACA,IAAI;EACD,AAAC,OAAe,0BAA0B;CAC7C,mBACM,CAEN;CACA,IAAI;EACF,MAAM,OAAQ,OAAe;EAC7B,IAAI,QAAQ,OAAO,SAAS,UAC1B,KAAK,0BAA0B;CAEnC,mBACM,CAEN;CACA,MAAM,8DAAW,QAAS,iBAAgB,CAAC,IAAI,qBAAqB,OAAO;CAE3E,wBAAwB,6BADH,OAAe,4EAAoB,OAAe,UAC1B;CAC7C,oBAAoB,SAAS,UAAU,QAAQ,OAAO,MAAM;AAC9D"}
1
+ {"version":3,"file":"scopedSlots.mjs","names":[],"sources":["../../../src/runtime/scopedSlots.ts"],"sourcesContent":["import type { ComponentPublicInstance, InternalRuntimeState, RuntimeInstance } from './types'\nimport {\n WEVU_PROPS_KEY,\n WEVU_RUNTIME_OWNER_ID_KEY,\n WEVU_SCOPED_SLOT_OWNER_SEED_KEY,\n WEVU_SCOPED_SLOT_OWNER_STORE_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { isDeepEqualValue } from './app/setData/snapshot'\nimport { getScopedSlotHostGlobalObject } from './platform'\n\ntype OwnerSubscriber = (snapshot: Record<string, any>, proxy: ComponentPublicInstance<any, any, any> | undefined) => void\n\ninterface OwnerRecord {\n snapshot: Record<string, any>\n proxy?: ComponentPublicInstance<any, any, any>\n target?: InternalRuntimeState\n subscribers: Set<OwnerSubscriber>\n}\n\ntype RuntimeInstanceWithOwnerSnapshot = RuntimeInstance<any, any, any> & {\n __wevu_cloneDispatchedSnapshot?: () => Record<string, any>\n}\n\nfunction getScopedSlotGlobalStore() {\n const globalObject = getScopedSlotHostGlobalObject() ?? Object.create(null)\n if (!(globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] instanceof Map)) {\n globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] = new Map<string, OwnerRecord>()\n }\n if (typeof globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] !== 'number') {\n globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] = 0\n }\n return {\n globalObject,\n ownerStore: globalObject[WEVU_SCOPED_SLOT_OWNER_STORE_KEY] as Map<string, OwnerRecord>,\n }\n}\n\nexport function allocateOwnerId() {\n const { globalObject } = getScopedSlotGlobalStore()\n globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY] += 1\n return `wv${globalObject[WEVU_SCOPED_SLOT_OWNER_SEED_KEY]}`\n}\n\nexport function updateOwnerSnapshot(\n ownerId: string,\n snapshot: Record<string, any>,\n proxy: ComponentPublicInstance<any, any, any> | undefined,\n target?: InternalRuntimeState,\n) {\n const { ownerStore } = getScopedSlotGlobalStore()\n const record = ownerStore.get(ownerId) ?? { snapshot: {}, proxy, subscribers: new Set() }\n const snapshotChanged = !isDeepEqualValue(record.snapshot, snapshot, 20, { keys: 10_000 })\n const proxyChanged = record.proxy !== proxy\n record.snapshot = snapshot\n record.proxy = proxy\n record.target = target ?? record.target\n ownerStore.set(ownerId, record)\n if ((snapshotChanged || proxyChanged) && record.subscribers.size) {\n for (const subscriber of record.subscribers) {\n try {\n subscriber(snapshot, proxy)\n }\n catch {\n // 忽略订阅回调错误\n }\n }\n }\n}\n\nexport function removeOwner(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n ownerStore.delete(ownerId)\n}\n\nexport function subscribeOwner(ownerId: string, subscriber: OwnerSubscriber) {\n const { ownerStore } = getScopedSlotGlobalStore()\n const record = ownerStore.get(ownerId) ?? { snapshot: {}, proxy: undefined, subscribers: new Set() }\n record.subscribers.add(subscriber)\n ownerStore.set(ownerId, record)\n return () => {\n const current = ownerStore.get(ownerId)\n if (!current) {\n return\n }\n current.subscribers.delete(subscriber)\n }\n}\n\nexport function getOwnerProxy(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.proxy\n}\n\nexport function getOwnerSnapshot(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.snapshot\n}\n\nexport function getOwnerTarget(ownerId: string) {\n const { ownerStore } = getScopedSlotGlobalStore()\n return ownerStore.get(ownerId)?.target\n}\n\nexport function resolveOwnerSnapshot(runtime: RuntimeInstance<any, any, any>) {\n const fastSnapshot = (runtime as RuntimeInstanceWithOwnerSnapshot).__wevu_cloneDispatchedSnapshot\n if (typeof fastSnapshot === 'function') {\n return fastSnapshot()\n }\n return typeof runtime.snapshot === 'function' ? runtime.snapshot() : {}\n}\n\nconst OWNER_SNAPSHOT_PROTOCOL_KEYS = new Set([\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n])\n\nexport function mergeOwnerSnapshotProps(\n snapshot: Record<string, any>,\n propsSource: unknown,\n) {\n if (!propsSource || typeof propsSource !== 'object') {\n return\n }\n for (const [key, value] of Object.entries(propsSource as Record<string, any>)) {\n if (OWNER_SNAPSHOT_PROTOCOL_KEYS.has(key)) {\n continue\n }\n snapshot[key] = value\n }\n}\n\nexport function attachOwnerSnapshot(\n target: InternalRuntimeState,\n runtime: RuntimeInstance<any, any, any>,\n ownerId: string,\n options?: {\n deferSnapshot?: boolean\n },\n) {\n try {\n ;(target as any)[WEVU_RUNTIME_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 宿主拒绝扩展实例时继续使用现有引用通道。\n }\n try {\n ;(runtime.state as any)[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 忽略写入异常\n }\n try {\n ;(target as any)[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n catch {\n // 忽略写入异常\n }\n try {\n const data = (target as any).data\n if (data && typeof data === 'object') {\n data[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n }\n catch {\n // 忽略 owner id 同步异常\n }\n const snapshot = options?.deferSnapshot ? {} : resolveOwnerSnapshot(runtime)\n const propsSource = (target as any)[WEVU_PROPS_KEY] ?? (target as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtime.proxy, target)\n}\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { HostMiniProgramBoundingClientRectResult, HostMiniProgramNodesRefFields, HostMiniProgramScrollOffsetResult, HostMiniProgramSelectorQuery } from "./types/miniprogramHost.mjs";
2
+ import { InternalRuntimeState } from "./types/runtime.mjs";
3
+ import "./types.mjs";
4
+ //#region src/runtime/selectorQuery.d.ts
5
+ export interface UseSelectorQueryOptions {
6
+ context?: InternalRuntimeState | null;
7
+ }
8
+ export interface UseBoundingClientRectOptions extends UseSelectorQueryOptions {
9
+ all?: boolean;
10
+ }
11
+ export interface UseSelectorFieldsOptions extends UseSelectorQueryOptions {
12
+ all?: boolean;
13
+ fields: HostMiniProgramNodesRefFields;
14
+ }
15
+ export interface UseScrollOffsetOptions extends UseSelectorQueryOptions {
16
+ all?: boolean;
17
+ }
18
+ export interface UseAllBoundingClientRectOptions extends UseSelectorQueryOptions {
19
+ all: true;
20
+ }
21
+ export interface UseAllSelectorFieldsOptions extends UseSelectorQueryOptions {
22
+ all: true;
23
+ fields: HostMiniProgramNodesRefFields;
24
+ }
25
+ export interface UseAllScrollOffsetOptions extends UseSelectorQueryOptions {
26
+ all: true;
27
+ }
28
+ /**
29
+ * 创建绑定当前小程序实例的选择器查询工厂。
30
+ */
31
+ export declare function useSelectorQuery(options?: UseSelectorQueryOptions): () => HostMiniProgramSelectorQuery | null;
32
+ /**
33
+ * 创建绑定当前小程序实例的节点布局查询函数。
34
+ */
35
+ export declare function useBoundingClientRect(options?: UseBoundingClientRectOptions & {
36
+ all?: false;
37
+ }): (selector: string) => Promise<HostMiniProgramBoundingClientRectResult | null>;
38
+ export declare function useBoundingClientRect(options: UseAllBoundingClientRectOptions): (selector: string) => Promise<HostMiniProgramBoundingClientRectResult[] | null>;
39
+ /**
40
+ * 创建绑定当前小程序实例的节点字段查询函数。
41
+ */
42
+ export declare function useSelectorFields(options: UseSelectorFieldsOptions & {
43
+ all?: false;
44
+ }): (selector: string) => Promise<Record<string, any> | null>;
45
+ export declare function useSelectorFields(options: UseAllSelectorFieldsOptions): (selector: string) => Promise<Array<Record<string, any>> | null>;
46
+ /**
47
+ * 创建绑定当前小程序实例的滚动位置查询函数。
48
+ */
49
+ export declare function useScrollOffset(options?: UseScrollOffsetOptions & {
50
+ all?: false;
51
+ }): (selector: string) => Promise<HostMiniProgramScrollOffsetResult | null>;
52
+ export declare function useScrollOffset(options: UseAllScrollOffsetOptions): (selector: string) => Promise<HostMiniProgramScrollOffsetResult[] | null>;
53
+ //#endregion
54
+ //# sourceMappingURL=selectorQuery.d.mts.map
@@ -4,7 +4,7 @@ import { installTemplateRefs } from "./features/templateRefs.mjs";
4
4
 
5
5
  //#region src/runtime/selectorQuery.ts
6
6
  function resolveSetupContext(apiName, context) {
7
- const resolved = context !== null && context !== void 0 ? context : getCurrentInstance();
7
+ const resolved = context ?? getCurrentInstance();
8
8
  if (!resolved || !getCurrentSetupContext()) throw new Error(`${apiName}() 必须在 setup() 的同步阶段调用`);
9
9
  return resolved;
10
10
  }
@@ -14,8 +14,7 @@ function runSelectorQuery(context, selector, all, apply) {
14
14
  apply(all ? query.selectAll(selector) : query.select(selector));
15
15
  return new Promise((resolve) => {
16
16
  query.exec((res) => {
17
- const result = Array.isArray(res) ? res[0] : null;
18
- resolve(result !== null && result !== void 0 ? result : null);
17
+ resolve((Array.isArray(res) ? res[0] : null) ?? null);
19
18
  });
20
19
  });
21
20
  }
@@ -28,24 +27,21 @@ function useSelectorQuery(options = {}) {
28
27
  return () => createSelectorQuery(context);
29
28
  }
30
29
  function useBoundingClientRect(options = {}) {
31
- var _options$all;
32
30
  installTemplateRefs();
33
31
  const context = resolveSetupContext("useBoundingClientRect", options.context);
34
- const all = (_options$all = options.all) !== null && _options$all !== void 0 ? _options$all : false;
32
+ const all = options.all ?? false;
35
33
  return (selector) => runSelectorQuery(context, selector, all, (nodesRef) => nodesRef.boundingClientRect());
36
34
  }
37
35
  function useSelectorFields(options) {
38
- var _options$all2;
39
36
  installTemplateRefs();
40
37
  const context = resolveSetupContext("useSelectorFields", options.context);
41
- const all = (_options$all2 = options.all) !== null && _options$all2 !== void 0 ? _options$all2 : false;
38
+ const all = options.all ?? false;
42
39
  return (selector) => runSelectorQuery(context, selector, all, (nodesRef) => nodesRef.fields(options.fields));
43
40
  }
44
41
  function useScrollOffset(options = {}) {
45
- var _options$all3;
46
42
  installTemplateRefs();
47
43
  const context = resolveSetupContext("useScrollOffset", options.context);
48
- const all = (_options$all3 = options.all) !== null && _options$all3 !== void 0 ? _options$all3 : false;
44
+ const all = options.all ?? false;
49
45
  return (selector) => runSelectorQuery(context, selector, all, (nodesRef) => nodesRef.scrollOffset());
50
46
  }
51
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"selectorQuery.mjs","names":[],"sources":["../../../src/runtime/selectorQuery.ts"],"sourcesContent":["import type {\n InternalRuntimeState,\n MiniProgramBoundingClientRectResult,\n MiniProgramNodesRefFields,\n MiniProgramScrollOffsetResult,\n MiniProgramSelectorQuery,\n} from './types'\nimport { installTemplateRefs } from './features/templateRefs'\nimport { getCurrentInstance, getCurrentSetupContext } from './hooks'\nimport { createSelectorQuery } from './templateRefs/helpers'\n\nexport interface UseSelectorQueryOptions {\n context?: InternalRuntimeState | null\n}\n\nexport interface UseBoundingClientRectOptions extends UseSelectorQueryOptions {\n all?: boolean\n}\n\nexport interface UseSelectorFieldsOptions extends UseSelectorQueryOptions {\n all?: boolean\n fields: MiniProgramNodesRefFields\n}\n\nexport interface UseScrollOffsetOptions extends UseSelectorQueryOptions {\n all?: boolean\n}\n\nexport interface UseAllBoundingClientRectOptions extends UseSelectorQueryOptions {\n all: true\n}\n\nexport interface UseAllSelectorFieldsOptions extends UseSelectorQueryOptions {\n all: true\n fields: MiniProgramNodesRefFields\n}\n\nexport interface UseAllScrollOffsetOptions extends UseSelectorQueryOptions {\n all: true\n}\n\nfunction resolveSetupContext<T extends InternalRuntimeState>(\n apiName: string,\n context?: T | null,\n): T {\n const resolved = context ?? getCurrentInstance<T>()\n if (!resolved || !getCurrentSetupContext()) {\n throw new Error(`${apiName}() 必须在 setup() 的同步阶段调用`)\n }\n return resolved\n}\n\nfunction runSelectorQuery<T>(\n context: InternalRuntimeState,\n selector: string,\n all: boolean,\n apply: (nodesRef: any) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(context)\n if (!query || !selector) {\n return Promise.resolve(null)\n }\n\n const nodesRef = all ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n\n return new Promise((resolve) => {\n query.exec((res) => {\n const result = Array.isArray(res) ? res[0] : null\n resolve((result ?? null) as T | null)\n })\n })\n}\n\n/**\n * 创建绑定当前小程序实例的选择器查询工厂。\n */\nexport function useSelectorQuery(options: UseSelectorQueryOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useSelectorQuery', options.context)\n return (): MiniProgramSelectorQuery | null => createSelectorQuery(context)\n}\n\n/**\n * 创建绑定当前小程序实例的节点布局查询函数。\n */\nexport function useBoundingClientRect(\n options?: UseBoundingClientRectOptions & { all?: false },\n): (selector: string) => Promise<MiniProgramBoundingClientRectResult | null>\nexport function useBoundingClientRect(\n options: UseAllBoundingClientRectOptions,\n): (selector: string) => Promise<MiniProgramBoundingClientRectResult[] | null>\nexport function useBoundingClientRect(options: UseBoundingClientRectOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useBoundingClientRect', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery<\n MiniProgramBoundingClientRectResult | MiniProgramBoundingClientRectResult[]\n >(\n context,\n selector,\n all,\n nodesRef => nodesRef.boundingClientRect(),\n )\n}\n\n/**\n * 创建绑定当前小程序实例的节点字段查询函数。\n */\nexport function useSelectorFields(\n options: UseSelectorFieldsOptions & { all?: false },\n): (selector: string) => Promise<Record<string, any> | null>\nexport function useSelectorFields(\n options: UseAllSelectorFieldsOptions,\n): (selector: string) => Promise<Array<Record<string, any>> | null>\nexport function useSelectorFields(options: UseSelectorFieldsOptions) {\n installTemplateRefs()\n const context = resolveSetupContext('useSelectorFields', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery(\n context,\n selector,\n all,\n nodesRef => nodesRef.fields(options.fields),\n )\n}\n\n/**\n * 创建绑定当前小程序实例的滚动位置查询函数。\n */\nexport function useScrollOffset(\n options?: UseScrollOffsetOptions & { all?: false },\n): (selector: string) => Promise<MiniProgramScrollOffsetResult | null>\nexport function useScrollOffset(\n options: UseAllScrollOffsetOptions,\n): (selector: string) => Promise<MiniProgramScrollOffsetResult[] | null>\nexport function useScrollOffset(options: UseScrollOffsetOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useScrollOffset', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery<\n MiniProgramScrollOffsetResult | MiniProgramScrollOffsetResult[]\n >(\n context,\n selector,\n all,\n nodesRef => nodesRef.scrollOffset(),\n )\n}\n"],"mappings":";;;;;AAyCA,SAAS,oBACP,SACA,SACG;CACH,MAAM,WAAW,mDAAW,mBAAsB;CAClD,IAAI,CAAC,YAAY,CAAC,uBAAuB,GACvC,MAAM,IAAI,MAAM,GAAG,QAAQ,uBAAuB;CAEpD,OAAO;AACT;AAEA,SAAS,iBACP,SACA,UACA,KACA,OACmB;CACnB,MAAM,QAAQ,oBAAoB,OAAO;CACzC,IAAI,CAAC,SAAS,CAAC,UACb,OAAO,QAAQ,QAAQ,IAAI;CAI7B,MADiB,MAAM,MAAM,UAAU,QAAQ,IAAI,MAAM,OAAO,QAAQ,CAC1D;CAEd,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,MAAM,QAAQ;GAClB,MAAM,SAAS,MAAM,QAAQ,GAAG,IAAI,IAAI,KAAK;GAC7C,QAAS,gDAAU,IAAiB;EACtC,CAAC;CACH,CAAC;AACH;;;;AAKA,SAAgB,iBAAiB,UAAmC,CAAC,GAAG;CACtE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,oBAAoB,QAAQ,OAAO;CACvE,aAA8C,oBAAoB,OAAO;AAC3E;AAWA,SAAgB,sBAAsB,UAAwC,CAAC,GAAG;;CAChF,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,yBAAyB,QAAQ,OAAO;CAC5E,MAAM,sBAAM,QAAQ,0DAAO;CAE3B,QAAQ,aAAqB,iBAG3B,SACA,UACA,MACA,aAAY,SAAS,mBAAmB,CAC1C;AACF;AAWA,SAAgB,kBAAkB,SAAmC;;CACnE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,qBAAqB,QAAQ,OAAO;CACxE,MAAM,uBAAM,QAAQ,4DAAO;CAE3B,QAAQ,aAAqB,iBAC3B,SACA,UACA,MACA,aAAY,SAAS,OAAO,QAAQ,MAAM,CAC5C;AACF;AAWA,SAAgB,gBAAgB,UAAkC,CAAC,GAAG;;CACpE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,mBAAmB,QAAQ,OAAO;CACtE,MAAM,uBAAM,QAAQ,4DAAO;CAE3B,QAAQ,aAAqB,iBAG3B,SACA,UACA,MACA,aAAY,SAAS,aAAa,CACpC;AACF"}
1
+ {"version":3,"file":"selectorQuery.mjs","names":[],"sources":["../../../src/runtime/selectorQuery.ts"],"sourcesContent":["import type {\n InternalRuntimeState,\n MiniProgramBoundingClientRectResult,\n MiniProgramNodesRefFields,\n MiniProgramScrollOffsetResult,\n MiniProgramSelectorQuery,\n} from './types'\nimport { installTemplateRefs } from './features/templateRefs'\nimport { getCurrentInstance, getCurrentSetupContext } from './hooks'\nimport { createSelectorQuery } from './templateRefs/helpers'\n\nexport interface UseSelectorQueryOptions {\n context?: InternalRuntimeState | null\n}\n\nexport interface UseBoundingClientRectOptions extends UseSelectorQueryOptions {\n all?: boolean\n}\n\nexport interface UseSelectorFieldsOptions extends UseSelectorQueryOptions {\n all?: boolean\n fields: MiniProgramNodesRefFields\n}\n\nexport interface UseScrollOffsetOptions extends UseSelectorQueryOptions {\n all?: boolean\n}\n\nexport interface UseAllBoundingClientRectOptions extends UseSelectorQueryOptions {\n all: true\n}\n\nexport interface UseAllSelectorFieldsOptions extends UseSelectorQueryOptions {\n all: true\n fields: MiniProgramNodesRefFields\n}\n\nexport interface UseAllScrollOffsetOptions extends UseSelectorQueryOptions {\n all: true\n}\n\nfunction resolveSetupContext<T extends InternalRuntimeState>(\n apiName: string,\n context?: T | null,\n): T {\n const resolved = context ?? getCurrentInstance<T>()\n if (!resolved || !getCurrentSetupContext()) {\n throw new Error(`${apiName}() 必须在 setup() 的同步阶段调用`)\n }\n return resolved\n}\n\nfunction runSelectorQuery<T>(\n context: InternalRuntimeState,\n selector: string,\n all: boolean,\n apply: (nodesRef: any) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(context)\n if (!query || !selector) {\n return Promise.resolve(null)\n }\n\n const nodesRef = all ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n\n return new Promise((resolve) => {\n query.exec((res) => {\n const result = Array.isArray(res) ? res[0] : null\n resolve((result ?? null) as T | null)\n })\n })\n}\n\n/**\n * 创建绑定当前小程序实例的选择器查询工厂。\n */\nexport function useSelectorQuery(options: UseSelectorQueryOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useSelectorQuery', options.context)\n return (): MiniProgramSelectorQuery | null => createSelectorQuery(context)\n}\n\n/**\n * 创建绑定当前小程序实例的节点布局查询函数。\n */\nexport function useBoundingClientRect(\n options?: UseBoundingClientRectOptions & { all?: false },\n): (selector: string) => Promise<MiniProgramBoundingClientRectResult | null>\nexport function useBoundingClientRect(\n options: UseAllBoundingClientRectOptions,\n): (selector: string) => Promise<MiniProgramBoundingClientRectResult[] | null>\nexport function useBoundingClientRect(options: UseBoundingClientRectOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useBoundingClientRect', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery<\n MiniProgramBoundingClientRectResult | MiniProgramBoundingClientRectResult[]\n >(\n context,\n selector,\n all,\n nodesRef => nodesRef.boundingClientRect(),\n )\n}\n\n/**\n * 创建绑定当前小程序实例的节点字段查询函数。\n */\nexport function useSelectorFields(\n options: UseSelectorFieldsOptions & { all?: false },\n): (selector: string) => Promise<Record<string, any> | null>\nexport function useSelectorFields(\n options: UseAllSelectorFieldsOptions,\n): (selector: string) => Promise<Array<Record<string, any>> | null>\nexport function useSelectorFields(options: UseSelectorFieldsOptions) {\n installTemplateRefs()\n const context = resolveSetupContext('useSelectorFields', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery(\n context,\n selector,\n all,\n nodesRef => nodesRef.fields(options.fields),\n )\n}\n\n/**\n * 创建绑定当前小程序实例的滚动位置查询函数。\n */\nexport function useScrollOffset(\n options?: UseScrollOffsetOptions & { all?: false },\n): (selector: string) => Promise<MiniProgramScrollOffsetResult | null>\nexport function useScrollOffset(\n options: UseAllScrollOffsetOptions,\n): (selector: string) => Promise<MiniProgramScrollOffsetResult[] | null>\nexport function useScrollOffset(options: UseScrollOffsetOptions = {}) {\n installTemplateRefs()\n const context = resolveSetupContext('useScrollOffset', options.context)\n const all = options.all ?? false\n\n return (selector: string) => runSelectorQuery<\n MiniProgramScrollOffsetResult | MiniProgramScrollOffsetResult[]\n >(\n context,\n selector,\n all,\n nodesRef => nodesRef.scrollOffset(),\n )\n}\n"],"mappings":";;;;;AAyCA,SAAS,oBACP,SACA,SACG;CACH,MAAM,WAAW,WAAW,mBAAsB;CAClD,IAAI,CAAC,YAAY,CAAC,uBAAuB,GACvC,MAAM,IAAI,MAAM,GAAG,QAAQ,uBAAuB;CAEpD,OAAO;AACT;AAEA,SAAS,iBACP,SACA,UACA,KACA,OACmB;CACnB,MAAM,QAAQ,oBAAoB,OAAO;CACzC,IAAI,CAAC,SAAS,CAAC,UACb,OAAO,QAAQ,QAAQ,IAAI;CAI7B,MADiB,MAAM,MAAM,UAAU,QAAQ,IAAI,MAAM,OAAO,QAAQ,CAC1D;CAEd,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,MAAM,QAAQ;GAElB,SADe,MAAM,QAAQ,GAAG,IAAI,IAAI,KAAK,SAC1B,IAAiB;EACtC,CAAC;CACH,CAAC;AACH;;;;AAKA,SAAgB,iBAAiB,UAAmC,CAAC,GAAG;CACtE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,oBAAoB,QAAQ,OAAO;CACvE,aAA8C,oBAAoB,OAAO;AAC3E;AAWA,SAAgB,sBAAsB,UAAwC,CAAC,GAAG;CAChF,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,yBAAyB,QAAQ,OAAO;CAC5E,MAAM,MAAM,QAAQ,OAAO;CAE3B,QAAQ,aAAqB,iBAG3B,SACA,UACA,MACA,aAAY,SAAS,mBAAmB,CAC1C;AACF;AAWA,SAAgB,kBAAkB,SAAmC;CACnE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,qBAAqB,QAAQ,OAAO;CACxE,MAAM,MAAM,QAAQ,OAAO;CAE3B,QAAQ,aAAqB,iBAC3B,SACA,UACA,MACA,aAAY,SAAS,OAAO,QAAQ,MAAM,CAC5C;AACF;AAWA,SAAgB,gBAAgB,UAAkC,CAAC,GAAG;CACpE,oBAAoB;CACpB,MAAM,UAAU,oBAAoB,mBAAmB,QAAQ,OAAO;CACtE,MAAM,MAAM,QAAQ,OAAO;CAE3B,QAAQ,aAAqB,iBAG3B,SACA,UACA,MACA,aAAY,SAAS,aAAa,CACpC;AACF"}
@@ -0,0 +1,6 @@
1
+ //#region src/runtime/template.d.ts
2
+ export declare function normalizeStyle(value: any): string;
3
+ export declare function normalizeClass(value: any): string;
4
+ export declare function resolvePropValue(target: any, key: string, fallback: any, preferProps?: boolean): any;
5
+ //#endregion
6
+ //# sourceMappingURL=template.d.mts.map
@@ -76,7 +76,7 @@ function resolvePropValue(target, key, fallback, preferProps = false) {
76
76
  return fallback;
77
77
  }
78
78
  const stateObject = unref(target.$state);
79
- const setupStateObject = stateObject === null || stateObject === void 0 ? void 0 : stateObject[WEVU_SETUP_STATE_KEY];
79
+ const setupStateObject = stateObject?.[WEVU_SETUP_STATE_KEY];
80
80
  if (setupStateObject != null && hasOwnProperty(setupStateObject, key)) return target[key];
81
81
  if (stateObject != null && hasOwnProperty(stateObject, key)) return stateObject[key];
82
82
  if (hasPropsValue) return propsObject[key];
@@ -1 +1 @@
1
- {"version":3,"file":"template.mjs","names":[],"sources":["../../../src/runtime/template.ts"],"sourcesContent":["import { WEVU_SETUP_STATE_KEY } from '@weapp-core/constants'\nimport { unref } from '../reactivity'\nimport { hyphenate } from '../utils'\n\nfunction hasOwnProperty(target: object, key: string) {\n return Object.prototype.hasOwnProperty.call(target, key)\n}\n\nfunction appendStyle(base: string, part: string) {\n if (!part) {\n return base\n }\n if (!base) {\n return part\n }\n let next = base\n if (!next.endsWith(';')) {\n next += ';'\n }\n const normalized = part.startsWith(';') ? part.slice(1) : part\n return next + normalized\n}\n\nfunction stringifyStyle(value: Record<string, any>) {\n let res = ''\n for (const key of Object.keys(value)) {\n const raw = unref(value[key])\n if (raw == null) {\n continue\n }\n const name = key.startsWith('--') ? key : hyphenate(key)\n if (Array.isArray(raw)) {\n for (const itemValue of raw) {\n const item = unref(itemValue)\n if (item == null) {\n continue\n }\n res = appendStyle(res, `${name}:${item}`)\n }\n }\n else {\n res = appendStyle(res, `${name}:${raw}`)\n }\n }\n return res\n}\n\nexport function normalizeStyle(value: any): string {\n const unwrapped = unref(value)\n if (unwrapped == null) {\n return ''\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n let res = ''\n for (const item of unwrapped) {\n const normalized = normalizeStyle(item)\n if (normalized) {\n res = appendStyle(res, normalized)\n }\n }\n return res\n }\n if (typeof unwrapped === 'object') {\n return stringifyStyle(unwrapped)\n }\n return ''\n}\n\nexport function normalizeClass(value: any): string {\n const unwrapped = unref(value)\n let res = ''\n if (!unwrapped) {\n return res\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n for (const item of unwrapped) {\n const normalized = normalizeClass(item)\n if (normalized) {\n res += `${normalized} `\n }\n }\n return res.trim()\n }\n if (typeof unwrapped === 'object') {\n for (const key of Object.keys(unwrapped)) {\n if (unref(unwrapped[key])) {\n res += `${key} `\n }\n }\n return res.trim()\n }\n return res\n}\n\nexport function resolvePropValue(target: any, key: string, fallback: any, preferProps = false) {\n if (target == null) {\n return fallback\n }\n const propsObject = unref(target.__wevuProps)\n if (key === 'data') {\n if (propsObject != null && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))) {\n return propsObject[key]\n }\n return key in target ? target[key] : fallback\n }\n const hasPropsValue = propsObject != null\n && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))\n if (preferProps) {\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (key in target) {\n return target[key]\n }\n return fallback\n }\n const stateObject = unref(target.$state)\n const setupStateObject = stateObject?.[WEVU_SETUP_STATE_KEY]\n if (setupStateObject != null && hasOwnProperty(setupStateObject, key)) {\n return target[key]\n }\n if (stateObject != null && hasOwnProperty(stateObject, key)) {\n return stateObject[key]\n }\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (!(key in target)) {\n return fallback\n }\n return target[key]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"template.mjs","names":[],"sources":["../../../src/runtime/template.ts"],"sourcesContent":["import { WEVU_SETUP_STATE_KEY } from '@weapp-core/constants'\nimport { unref } from '../reactivity'\nimport { hyphenate } from '../utils'\n\nfunction hasOwnProperty(target: object, key: string) {\n return Object.prototype.hasOwnProperty.call(target, key)\n}\n\nfunction appendStyle(base: string, part: string) {\n if (!part) {\n return base\n }\n if (!base) {\n return part\n }\n let next = base\n if (!next.endsWith(';')) {\n next += ';'\n }\n const normalized = part.startsWith(';') ? part.slice(1) : part\n return next + normalized\n}\n\nfunction stringifyStyle(value: Record<string, any>) {\n let res = ''\n for (const key of Object.keys(value)) {\n const raw = unref(value[key])\n if (raw == null) {\n continue\n }\n const name = key.startsWith('--') ? key : hyphenate(key)\n if (Array.isArray(raw)) {\n for (const itemValue of raw) {\n const item = unref(itemValue)\n if (item == null) {\n continue\n }\n res = appendStyle(res, `${name}:${item}`)\n }\n }\n else {\n res = appendStyle(res, `${name}:${raw}`)\n }\n }\n return res\n}\n\nexport function normalizeStyle(value: any): string {\n const unwrapped = unref(value)\n if (unwrapped == null) {\n return ''\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n let res = ''\n for (const item of unwrapped) {\n const normalized = normalizeStyle(item)\n if (normalized) {\n res = appendStyle(res, normalized)\n }\n }\n return res\n }\n if (typeof unwrapped === 'object') {\n return stringifyStyle(unwrapped)\n }\n return ''\n}\n\nexport function normalizeClass(value: any): string {\n const unwrapped = unref(value)\n let res = ''\n if (!unwrapped) {\n return res\n }\n if (typeof unwrapped === 'string') {\n return unwrapped\n }\n if (Array.isArray(unwrapped)) {\n for (const item of unwrapped) {\n const normalized = normalizeClass(item)\n if (normalized) {\n res += `${normalized} `\n }\n }\n return res.trim()\n }\n if (typeof unwrapped === 'object') {\n for (const key of Object.keys(unwrapped)) {\n if (unref(unwrapped[key])) {\n res += `${key} `\n }\n }\n return res.trim()\n }\n return res\n}\n\nexport function resolvePropValue(target: any, key: string, fallback: any, preferProps = false) {\n if (target == null) {\n return fallback\n }\n const propsObject = unref(target.__wevuProps)\n if (key === 'data') {\n if (propsObject != null && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))) {\n return propsObject[key]\n }\n return key in target ? target[key] : fallback\n }\n const hasPropsValue = propsObject != null\n && (propsObject[key] !== undefined || hasOwnProperty(propsObject, key))\n if (preferProps) {\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (key in target) {\n return target[key]\n }\n return fallback\n }\n const stateObject = unref(target.$state)\n const setupStateObject = stateObject?.[WEVU_SETUP_STATE_KEY]\n if (setupStateObject != null && hasOwnProperty(setupStateObject, key)) {\n return target[key]\n }\n if (stateObject != null && hasOwnProperty(stateObject, key)) {\n return stateObject[key]\n }\n if (hasPropsValue) {\n return propsObject[key]\n }\n if (!(key in target)) {\n return fallback\n }\n return target[key]\n}\n"],"mappings":";;;;;AAIA,SAAS,eAAe,QAAgB,KAAa;CACnD,OAAO,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG;AACzD;AAEA,SAAS,YAAY,MAAc,MAAc;CAC/C,IAAI,CAAC,MACH,OAAO;CAET,IAAI,CAAC,MACH,OAAO;CAET,IAAI,OAAO;CACX,IAAI,CAAC,KAAK,SAAS,GAAG,GACpB,QAAQ;CAEV,MAAM,aAAa,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,CAAC,IAAI;CAC1D,OAAO,OAAO;AAChB;AAEA,SAAS,eAAe,OAA4B;CAClD,IAAI,MAAM;CACV,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG;EACpC,MAAM,MAAM,MAAM,MAAM,IAAI;EAC5B,IAAI,OAAO,MACT;EAEF,MAAM,OAAO,IAAI,WAAW,IAAI,IAAI,MAAM,UAAU,GAAG;EACvD,IAAI,MAAM,QAAQ,GAAG,GACnB,KAAK,MAAM,aAAa,KAAK;GAC3B,MAAM,OAAO,MAAM,SAAS;GAC5B,IAAI,QAAQ,MACV;GAEF,MAAM,YAAY,KAAK,GAAG,KAAK,GAAG,MAAM;EAC1C;OAGA,MAAM,YAAY,KAAK,GAAG,KAAK,GAAG,KAAK;CAE3C;CACA,OAAO;AACT;AAEA,SAAgB,eAAe,OAAoB;CACjD,MAAM,YAAY,MAAM,KAAK;CAC7B,IAAI,aAAa,MACf,OAAO;CAET,IAAI,OAAO,cAAc,UACvB,OAAO;CAET,IAAI,MAAM,QAAQ,SAAS,GAAG;EAC5B,IAAI,MAAM;EACV,KAAK,MAAM,QAAQ,WAAW;GAC5B,MAAM,aAAa,eAAe,IAAI;GACtC,IAAI,YACF,MAAM,YAAY,KAAK,UAAU;EAErC;EACA,OAAO;CACT;CACA,IAAI,OAAO,cAAc,UACvB,OAAO,eAAe,SAAS;CAEjC,OAAO;AACT;AAEA,SAAgB,eAAe,OAAoB;CACjD,MAAM,YAAY,MAAM,KAAK;CAC7B,IAAI,MAAM;CACV,IAAI,CAAC,WACH,OAAO;CAET,IAAI,OAAO,cAAc,UACvB,OAAO;CAET,IAAI,MAAM,QAAQ,SAAS,GAAG;EAC5B,KAAK,MAAM,QAAQ,WAAW;GAC5B,MAAM,aAAa,eAAe,IAAI;GACtC,IAAI,YACF,OAAO,GAAG,WAAW;EAEzB;EACA,OAAO,IAAI,KAAK;CAClB;CACA,IAAI,OAAO,cAAc,UAAU;EACjC,KAAK,MAAM,OAAO,OAAO,KAAK,SAAS,GACrC,IAAI,MAAM,UAAU,IAAI,GACtB,OAAO,GAAG,IAAI;EAGlB,OAAO,IAAI,KAAK;CAClB;CACA,OAAO;AACT;AAEA,SAAgB,iBAAiB,QAAa,KAAa,UAAe,cAAc,OAAO;CAC7F,IAAI,UAAU,MACZ,OAAO;CAET,MAAM,cAAc,MAAM,OAAO,WAAW;CAC5C,IAAI,QAAQ,QAAQ;EAClB,IAAI,eAAe,SAAS,YAAY,SAAS,UAAa,eAAe,aAAa,GAAG,IAC3F,OAAO,YAAY;EAErB,OAAO,OAAO,SAAS,OAAO,OAAO;CACvC;CACA,MAAM,gBAAgB,eAAe,SAC/B,YAAY,SAAS,UAAa,eAAe,aAAa,GAAG;CACvE,IAAI,aAAa;EACf,IAAI,eACF,OAAO,YAAY;EAErB,IAAI,OAAO,QACT,OAAO,OAAO;EAEhB,OAAO;CACT;CACA,MAAM,cAAc,MAAM,OAAO,MAAM;CACvC,MAAM,mBAAmB,cAAc;CACvC,IAAI,oBAAoB,QAAQ,eAAe,kBAAkB,GAAG,GAClE,OAAO,OAAO;CAEhB,IAAI,eAAe,QAAQ,eAAe,aAAa,GAAG,GACxD,OAAO,YAAY;CAErB,IAAI,eACF,OAAO,YAAY;CAErB,IAAI,EAAE,OAAO,SACX,OAAO;CAET,OAAO,OAAO;AAChB"}
@@ -0,0 +1,12 @@
1
+ import { TemplateRefValue } from "./types.mjs";
2
+ import { AlipayIntrinsicElements } from "@weapp-core/types/alipay";
3
+ import { TtIntrinsicElements } from "@weapp-core/types/tt";
4
+ import { WeappIntrinsicElements } from "@weapp-core/types/weapp";
5
+ //#region src/runtime/templateRefTypes.d.ts
6
+ type MiniProgramTemplateRefTagName = keyof AlipayIntrinsicElements | keyof TtIntrinsicElements | keyof WeappIntrinsicElements;
7
+ type MiniProgramTemplateRefElements = { [K in MiniProgramTemplateRefTagName]: TemplateRefValue; };
8
+ declare global {
9
+ interface HTMLElementTagNameMap extends MiniProgramTemplateRefElements {}
10
+ }
11
+ //#endregion
12
+ //# sourceMappingURL=templateRefTypes.d.mts.map
@@ -1,6 +1,7 @@
1
1
  import { markRaw } from "../../reactivity/reactive.mjs";
2
2
  import { isRef } from "../../reactivity/ref.mjs";
3
- import { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from "../platform.mjs";
3
+ import { getCurrentMiniProgramGlobalObject, getCurrentMiniProgramRuntimeCapabilities } from "../platform/current.mjs";
4
+ import { supportsCurrentMiniProgramRuntimeCapability } from "../platform.mjs";
4
5
  import { markNoSetData } from "../noSetData.mjs";
5
6
  import { WEVU_EXPOSED_KEY, WEVU_PUBLIC_RUNTIME_KEY, WEVU_READY_CALLED_KEY, WEVU_TEMPLATE_REF_MAP_KEY } from "@weapp-core/constants";
6
7
 
@@ -41,7 +42,7 @@ function getExposeProxy(target, exposed) {
41
42
  enumerable: false,
42
43
  writable: false
43
44
  });
44
- } catch (_unused) {
45
+ } catch {
45
46
  target.__wevuExposeProxy = proxy;
46
47
  target.__wevuExposeRaw = exposed;
47
48
  }
@@ -51,7 +52,7 @@ function mergeComponentRefValue(wrapper, exposed, resolveCurrent) {
51
52
  if ((!exposed || typeof exposed !== "object") && !resolveCurrent) return wrapper;
52
53
  const source = exposed && typeof exposed === "object" ? exposed : Object.create(null);
53
54
  const getSource = () => {
54
- const current = resolveCurrent === null || resolveCurrent === void 0 ? void 0 : resolveCurrent();
55
+ const current = resolveCurrent?.();
55
56
  return current && typeof current === "object" ? current : source;
56
57
  };
57
58
  markRaw(wrapper);
@@ -94,13 +95,12 @@ function mergeComponentRefValue(wrapper, exposed, resolveCurrent) {
94
95
  return markNoSetData(merged);
95
96
  }
96
97
  function resolveComponentPublicInstance(value) {
97
- var _instance$WEVU_PUBLIC;
98
- if (!value || typeof value !== "object") return value !== null && value !== void 0 ? value : null;
98
+ if (!value || typeof value !== "object") return value ?? null;
99
99
  const instance = value;
100
100
  if (instance.__wevu && !instance[WEVU_READY_CALLED_KEY]) return null;
101
101
  const exposed = instance[WEVU_EXPOSED_KEY];
102
102
  if (exposed && typeof exposed === "object") return getExposeProxy(instance, exposed);
103
- if ((_instance$WEVU_PUBLIC = instance[WEVU_PUBLIC_RUNTIME_KEY]) === null || _instance$WEVU_PUBLIC === void 0 ? void 0 : _instance$WEVU_PUBLIC.proxy) return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy;
103
+ if (instance[WEVU_PUBLIC_RUNTIME_KEY]?.proxy) return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy;
104
104
  return value;
105
105
  }
106
106
  function getTemplateRefMap(target) {
@@ -112,17 +112,15 @@ function updateTemplateRefMapValue(refMap, name, value) {
112
112
  if (entry) entry.value = value;
113
113
  }
114
114
  function resolveTemplateRefTarget(target, binding, evaluationTarget = target) {
115
- var _evaluationTarget$__w, _evaluationTarget$__w2;
116
- const proxy = (_evaluationTarget$__w = (_evaluationTarget$__w2 = evaluationTarget.__wevu) === null || _evaluationTarget$__w2 === void 0 ? void 0 : _evaluationTarget$__w2.proxy) !== null && _evaluationTarget$__w !== void 0 ? _evaluationTarget$__w : evaluationTarget;
115
+ const proxy = evaluationTarget.__wevu?.proxy ?? evaluationTarget;
117
116
  let resolved;
118
117
  if (binding.get) try {
119
118
  resolved = binding.get.call(proxy);
120
- } catch (_unused2) {
119
+ } catch {
121
120
  resolved = void 0;
122
121
  }
123
122
  if (resolved == null && binding.name) {
124
- var _target$__wevu;
125
- const setupBinding = (_target$__wevu = target.__wevu) === null || _target$__wevu === void 0 || (_target$__wevu = _target$__wevu.setupState) === null || _target$__wevu === void 0 ? void 0 : _target$__wevu[binding.name];
123
+ const setupBinding = target.__wevu?.setupState?.[binding.name];
126
124
  if (isRef(setupBinding) || typeof setupBinding === "function") resolved = setupBinding;
127
125
  }
128
126
  if (resolved == null && binding.name) resolved = binding.name;
@@ -145,8 +143,7 @@ function resolveTemplateRefTarget(target, binding, evaluationTarget = target) {
145
143
  return { type: "skip" };
146
144
  }
147
145
  function ensureRefsContainer(target) {
148
- var _target$__wevu$state, _target$__wevu2;
149
- const runtimeState = (_target$__wevu$state = (_target$__wevu2 = target.__wevu) === null || _target$__wevu2 === void 0 ? void 0 : _target$__wevu2.state) !== null && _target$__wevu$state !== void 0 ? _target$__wevu$state : target;
146
+ const runtimeState = target.__wevu?.state ?? target;
150
147
  const existing = runtimeState.$refs;
151
148
  if (existing && typeof existing === "object") return existing;
152
149
  const refs = markNoSetData(Object.create(null));
@@ -162,7 +159,7 @@ function createSelectorQuery(target) {
162
159
  const instance = target;
163
160
  if (instance && typeof instance.createSelectorQuery === "function") return instance.createSelectorQuery();
164
161
  if (!supportsCurrentMiniProgramRuntimeCapability("globalCreateSelectorQuery")) return null;
165
- const miniProgramGlobal = getMiniProgramGlobalObject();
162
+ const miniProgramGlobal = getCurrentMiniProgramGlobalObject();
166
163
  if (miniProgramGlobal && typeof miniProgramGlobal.createSelectorQuery === "function") {
167
164
  const query = miniProgramGlobal.createSelectorQuery();
168
165
  if (!query) return null;
@@ -181,17 +178,10 @@ function runQuery(target, selector, options, apply, cb) {
181
178
  apply(options.multiple ? query.selectAll(selector) : query.select(selector));
182
179
  return new Promise((resolve) => {
183
180
  query.exec((res) => {
184
- var _result2;
185
181
  let result = Array.isArray(res) ? res[0] : null;
186
- if (options.index != null && Array.isArray(result)) {
187
- var _result$options$index;
188
- result = (_result$options$index = result[options.index]) !== null && _result$options$index !== void 0 ? _result$options$index : null;
189
- }
190
- if (cb) {
191
- var _result;
192
- cb((_result = result) !== null && _result !== void 0 ? _result : null);
193
- }
194
- resolve((_result2 = result) !== null && _result2 !== void 0 ? _result2 : null);
182
+ if (options.index != null && Array.isArray(result)) result = result[options.index] ?? null;
183
+ if (cb) cb(result ?? null);
184
+ resolve(result ?? null);
195
185
  });
196
186
  });
197
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/runtime/templateRefs/helpers.ts"],"sourcesContent":["import type { Ref } from '../../reactivity'\nimport type { TemplateRefBinding } from '../capabilities'\nimport type {\n InternalRuntimeState,\n MiniProgramNodesRef,\n MiniProgramNodesRefFields,\n MiniProgramSelectorQuery,\n} from '../types'\nimport {\n WEVU_EXPOSED_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REF_MAP_KEY,\n} from '@weapp-core/constants'\nimport { isRef, markRaw } from '../../reactivity'\nimport { ReactiveFlags } from '../../reactivity/reactive'\nimport { markNoSetData } from '../noSetData'\nimport { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from '../platform'\n\ntype TemplateRefTarget\n = | { type: 'function', fn: (value: any) => void }\n | { type: 'ref', ref: Ref<any> }\n | { type: 'name', name: string }\n | { type: 'skip' }\n\nexport type TemplateRefMap = Map<string, Ref<any>>\n\nexport function isComponentRef(binding: TemplateRefBinding) {\n return binding.kind === 'component'\n}\n\nfunction proxyRefs<T extends Record<string, any>>(target: T): T {\n return new Proxy(target, {\n get(obj, key, receiver) {\n const value = Reflect.get(obj, key, receiver) as unknown\n return isRef(value) ? value.value : value\n },\n set(obj, key, value, receiver) {\n const current = (obj as any)[key]\n if (isRef(current) && !isRef(value)) {\n current.value = value\n return true\n }\n return Reflect.set(obj, key, value, receiver)\n },\n })\n}\n\nfunction getExposeProxy(target: any, exposed: Record<string, any>) {\n const existing = target.__wevuExposeProxy\n if (existing && target.__wevuExposeRaw === exposed) {\n return existing\n }\n const proxy = proxyRefs(exposed)\n try {\n Object.defineProperty(target, '__wevuExposeProxy', {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(target, '__wevuExposeRaw', {\n value: exposed,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n target.__wevuExposeProxy = proxy\n target.__wevuExposeRaw = exposed\n }\n return proxy\n}\n\nfunction mergeComponentRefValue(\n wrapper: Record<string, any>,\n exposed: unknown,\n resolveCurrent?: () => unknown,\n) {\n if ((!exposed || typeof exposed !== 'object') && !resolveCurrent) {\n return wrapper\n }\n const source = exposed && typeof exposed === 'object'\n ? exposed as Record<string, any>\n : Object.create(null) as Record<string, any>\n const getSource = () => {\n const current = resolveCurrent?.()\n return current && typeof current === 'object'\n ? current as Record<string, any>\n : source\n }\n markRaw(wrapper)\n const merged = new Proxy(wrapper, {\n get(target, key, receiver) {\n if (key === ReactiveFlags.RAW) {\n return target\n }\n if (key === ReactiveFlags.IS_REACTIVE || key === ReactiveFlags.IS_READONLY) {\n return false\n }\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key, receiver)\n }\n const currentSource = getSource()\n const value = currentSource[key as keyof typeof currentSource]\n if (typeof value === 'function') {\n return value.bind(currentSource)\n }\n return value\n },\n set(target, key, value, receiver) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value, receiver)\n }\n const currentSource = getSource()\n if (key in currentSource) {\n currentSource[key as keyof typeof currentSource] = value\n return true\n }\n currentSource[key as keyof typeof currentSource] = value\n return true\n },\n has(target, key) {\n return Reflect.has(target, key) || key in getSource()\n },\n ownKeys(target) {\n return [...new Set([...Reflect.ownKeys(target), ...Reflect.ownKeys(getSource())])]\n },\n getOwnPropertyDescriptor(target, key) {\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n const descriptor = Object.getOwnPropertyDescriptor(getSource(), key)\n if (!descriptor) {\n return descriptor\n }\n return {\n ...descriptor,\n configurable: true,\n }\n },\n })\n return markNoSetData(merged)\n}\n\nfunction resolveComponentPublicInstance(value: any) {\n if (!value || typeof value !== 'object') {\n return value ?? null\n }\n const instance = value as any\n if (instance.__wevu && !instance[WEVU_READY_CALLED_KEY]) {\n return null\n }\n const exposed = instance[WEVU_EXPOSED_KEY]\n if (exposed && typeof exposed === 'object') {\n return getExposeProxy(instance, exposed as Record<string, any>)\n }\n if (instance[WEVU_PUBLIC_RUNTIME_KEY]?.proxy) {\n return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy\n }\n return value\n}\n\nexport function getTemplateRefMap(target: InternalRuntimeState): TemplateRefMap | undefined {\n return (target as any)[WEVU_TEMPLATE_REF_MAP_KEY] as TemplateRefMap | undefined\n}\n\nexport function updateTemplateRefMapValue(\n refMap: TemplateRefMap | undefined,\n name: string,\n value: any,\n) {\n if (!refMap) {\n return\n }\n const entry = refMap.get(name)\n if (entry) {\n entry.value = value\n }\n}\n\nexport function resolveTemplateRefTarget(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n evaluationTarget: InternalRuntimeState = target,\n): TemplateRefTarget {\n const proxy = evaluationTarget.__wevu?.proxy ?? evaluationTarget\n let resolved: unknown\n if (binding.get) {\n try {\n resolved = binding.get.call(proxy)\n }\n catch {\n resolved = undefined\n }\n }\n if (resolved == null && binding.name) {\n const setupBinding = target.__wevu?.setupState?.[binding.name]\n if (isRef(setupBinding) || typeof setupBinding === 'function') {\n resolved = setupBinding\n }\n }\n if (resolved == null && binding.name) {\n resolved = binding.name\n }\n if (typeof resolved === 'function') {\n return { type: 'function', fn: resolved as (value: any) => void }\n }\n if (isRef(resolved)) {\n return { type: 'ref', ref: resolved as Ref<any> }\n }\n if (typeof resolved === 'string' && resolved) {\n return { type: 'name', name: resolved }\n }\n if (binding.name) {\n return { type: 'name', name: binding.name }\n }\n return { type: 'skip' }\n}\n\nexport function ensureRefsContainer(target: InternalRuntimeState): Record<string, any> {\n const runtimeState = (target.__wevu?.state ?? target) as Record<string, any>\n const existing = runtimeState.$refs\n if (existing && typeof existing === 'object') {\n return existing as Record<string, any>\n }\n const refs = markNoSetData(Object.create(null))\n Object.defineProperty(runtimeState, '$refs', {\n value: refs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return refs\n}\n\nexport function createSelectorQuery(target: InternalRuntimeState): MiniProgramSelectorQuery | null {\n const instance = target as any\n if (instance && typeof instance.createSelectorQuery === 'function') {\n return instance.createSelectorQuery()\n }\n if (!supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')) {\n return null\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (miniProgramGlobal && typeof miniProgramGlobal.createSelectorQuery === 'function') {\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return null\n }\n if (getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn && typeof (query as any).in === 'function') {\n return (query as any).in(instance)\n }\n return query\n }\n return null\n}\n\nfunction runQuery<T>(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n apply: (nodesRef: MiniProgramNodesRef) => void,\n cb?: (value: T | null) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(target)\n if (!query) {\n const fallback = null\n if (cb) {\n cb(fallback)\n }\n return Promise.resolve(fallback)\n }\n const nodesRef = options.multiple ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n return new Promise((resolve) => {\n query.exec((res) => {\n let result: any = Array.isArray(res) ? res[0] : null\n if (options.index != null && Array.isArray(result)) {\n result = result[options.index] ?? null\n }\n if (cb) {\n cb(result ?? null)\n }\n resolve(result ?? null)\n })\n })\n}\n\nfunction createTemplateRefWrapper(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n) {\n const wrapper = {\n selector,\n boundingClientRect: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.boundingClientRect(), cb)\n },\n scrollOffset: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.scrollOffset(), cb)\n },\n fields: (fields: MiniProgramNodesRefFields, cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.fields(fields as any), cb)\n },\n node: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.node(), cb)\n },\n }\n return markNoSetData(wrapper)\n}\n\nexport function resolveComponentRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n) {\n const instance = target as any\n if (!instance) {\n return binding.inFor ? markNoSetData([]) : null\n }\n if (binding.inFor) {\n if (typeof instance.selectAllComponents === 'function') {\n const result = instance.selectAllComponents(binding.selector)\n const items = Array.isArray(result) ? result : []\n const merged = items.map((item, index) => {\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: true, index })\n const resolveCurrent = () => {\n const current = instance.selectAllComponents(binding.selector)\n return resolveComponentPublicInstance(Array.isArray(current) ? current[index] : null)\n }\n return mergeComponentRefValue(wrapper as Record<string, any>, resolveComponentPublicInstance(item), resolveCurrent)\n })\n return markNoSetData(merged)\n }\n return markNoSetData([])\n }\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: false })\n if (typeof instance.selectComponent !== 'function') {\n return wrapper\n }\n const result = instance.selectComponent(binding.selector)\n if (!result) {\n return null\n }\n const publicInstance = resolveComponentPublicInstance(result)\n if (!publicInstance) {\n return null\n }\n const resolveCurrent = () => resolveComponentPublicInstance(instance.selectComponent(binding.selector))\n return mergeComponentRefValue(wrapper as Record<string, any>, publicInstance, resolveCurrent)\n}\n\nexport function buildTemplateRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n result: unknown,\n) {\n if (binding.inFor) {\n const items = Array.isArray(result) ? result : []\n const wrappers = items.map((_, index) => createTemplateRefWrapper(target, binding.selector, { multiple: true, index }))\n return markNoSetData(wrappers)\n }\n if (!result) {\n return null\n }\n return createTemplateRefWrapper(target, binding.selector, { multiple: false })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/runtime/templateRefs/helpers.ts"],"sourcesContent":["import type { Ref } from '../../reactivity'\nimport type { TemplateRefBinding } from '../capabilities'\nimport type {\n InternalRuntimeState,\n MiniProgramNodesRef,\n MiniProgramNodesRefFields,\n MiniProgramSelectorQuery,\n} from '../types'\nimport {\n WEVU_EXPOSED_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REF_MAP_KEY,\n} from '@weapp-core/constants'\nimport { isRef, markRaw } from '../../reactivity'\nimport { ReactiveFlags } from '../../reactivity/reactive'\nimport { markNoSetData } from '../noSetData'\nimport { getCurrentMiniProgramGlobalObject, getCurrentMiniProgramRuntimeCapabilities, supportsCurrentMiniProgramRuntimeCapability } from '../platform'\n\ntype TemplateRefTarget\n = | { type: 'function', fn: (value: any) => void }\n | { type: 'ref', ref: Ref<any> }\n | { type: 'name', name: string }\n | { type: 'skip' }\n\nexport type TemplateRefMap = Map<string, Ref<any>>\n\nexport function isComponentRef(binding: TemplateRefBinding) {\n return binding.kind === 'component'\n}\n\nfunction proxyRefs<T extends Record<string, any>>(target: T): T {\n return new Proxy(target, {\n get(obj, key, receiver) {\n const value = Reflect.get(obj, key, receiver) as unknown\n return isRef(value) ? value.value : value\n },\n set(obj, key, value, receiver) {\n const current = (obj as any)[key]\n if (isRef(current) && !isRef(value)) {\n current.value = value\n return true\n }\n return Reflect.set(obj, key, value, receiver)\n },\n })\n}\n\nfunction getExposeProxy(target: any, exposed: Record<string, any>) {\n const existing = target.__wevuExposeProxy\n if (existing && target.__wevuExposeRaw === exposed) {\n return existing\n }\n const proxy = proxyRefs(exposed)\n try {\n Object.defineProperty(target, '__wevuExposeProxy', {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(target, '__wevuExposeRaw', {\n value: exposed,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n target.__wevuExposeProxy = proxy\n target.__wevuExposeRaw = exposed\n }\n return proxy\n}\n\nfunction mergeComponentRefValue(\n wrapper: Record<string, any>,\n exposed: unknown,\n resolveCurrent?: () => unknown,\n) {\n if ((!exposed || typeof exposed !== 'object') && !resolveCurrent) {\n return wrapper\n }\n const source = exposed && typeof exposed === 'object'\n ? exposed as Record<string, any>\n : Object.create(null) as Record<string, any>\n const getSource = () => {\n const current = resolveCurrent?.()\n return current && typeof current === 'object'\n ? current as Record<string, any>\n : source\n }\n markRaw(wrapper)\n const merged = new Proxy(wrapper, {\n get(target, key, receiver) {\n if (key === ReactiveFlags.RAW) {\n return target\n }\n if (key === ReactiveFlags.IS_REACTIVE || key === ReactiveFlags.IS_READONLY) {\n return false\n }\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key, receiver)\n }\n const currentSource = getSource()\n const value = currentSource[key as keyof typeof currentSource]\n if (typeof value === 'function') {\n return value.bind(currentSource)\n }\n return value\n },\n set(target, key, value, receiver) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value, receiver)\n }\n const currentSource = getSource()\n if (key in currentSource) {\n currentSource[key as keyof typeof currentSource] = value\n return true\n }\n currentSource[key as keyof typeof currentSource] = value\n return true\n },\n has(target, key) {\n return Reflect.has(target, key) || key in getSource()\n },\n ownKeys(target) {\n return [...new Set([...Reflect.ownKeys(target), ...Reflect.ownKeys(getSource())])]\n },\n getOwnPropertyDescriptor(target, key) {\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n const descriptor = Object.getOwnPropertyDescriptor(getSource(), key)\n if (!descriptor) {\n return descriptor\n }\n return {\n ...descriptor,\n configurable: true,\n }\n },\n })\n return markNoSetData(merged)\n}\n\nfunction resolveComponentPublicInstance(value: any) {\n if (!value || typeof value !== 'object') {\n return value ?? null\n }\n const instance = value as any\n if (instance.__wevu && !instance[WEVU_READY_CALLED_KEY]) {\n return null\n }\n const exposed = instance[WEVU_EXPOSED_KEY]\n if (exposed && typeof exposed === 'object') {\n return getExposeProxy(instance, exposed as Record<string, any>)\n }\n if (instance[WEVU_PUBLIC_RUNTIME_KEY]?.proxy) {\n return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy\n }\n return value\n}\n\nexport function getTemplateRefMap(target: InternalRuntimeState): TemplateRefMap | undefined {\n return (target as any)[WEVU_TEMPLATE_REF_MAP_KEY] as TemplateRefMap | undefined\n}\n\nexport function updateTemplateRefMapValue(\n refMap: TemplateRefMap | undefined,\n name: string,\n value: any,\n) {\n if (!refMap) {\n return\n }\n const entry = refMap.get(name)\n if (entry) {\n entry.value = value\n }\n}\n\nexport function resolveTemplateRefTarget(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n evaluationTarget: InternalRuntimeState = target,\n): TemplateRefTarget {\n const proxy = evaluationTarget.__wevu?.proxy ?? evaluationTarget\n let resolved: unknown\n if (binding.get) {\n try {\n resolved = binding.get.call(proxy)\n }\n catch {\n resolved = undefined\n }\n }\n if (resolved == null && binding.name) {\n const setupBinding = target.__wevu?.setupState?.[binding.name]\n if (isRef(setupBinding) || typeof setupBinding === 'function') {\n resolved = setupBinding\n }\n }\n if (resolved == null && binding.name) {\n resolved = binding.name\n }\n if (typeof resolved === 'function') {\n return { type: 'function', fn: resolved as (value: any) => void }\n }\n if (isRef(resolved)) {\n return { type: 'ref', ref: resolved as Ref<any> }\n }\n if (typeof resolved === 'string' && resolved) {\n return { type: 'name', name: resolved }\n }\n if (binding.name) {\n return { type: 'name', name: binding.name }\n }\n return { type: 'skip' }\n}\n\nexport function ensureRefsContainer(target: InternalRuntimeState): Record<string, any> {\n const runtimeState = (target.__wevu?.state ?? target) as Record<string, any>\n const existing = runtimeState.$refs\n if (existing && typeof existing === 'object') {\n return existing as Record<string, any>\n }\n const refs = markNoSetData(Object.create(null))\n Object.defineProperty(runtimeState, '$refs', {\n value: refs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return refs\n}\n\nexport function createSelectorQuery(target: InternalRuntimeState): MiniProgramSelectorQuery | null {\n const instance = target as any\n if (instance && typeof instance.createSelectorQuery === 'function') {\n return instance.createSelectorQuery()\n }\n if (!supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')) {\n return null\n }\n const miniProgramGlobal = getCurrentMiniProgramGlobalObject()\n if (miniProgramGlobal && typeof miniProgramGlobal.createSelectorQuery === 'function') {\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return null\n }\n if (getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn && typeof (query as any).in === 'function') {\n return (query as any).in(instance)\n }\n return query\n }\n return null\n}\n\nfunction runQuery<T>(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n apply: (nodesRef: MiniProgramNodesRef) => void,\n cb?: (value: T | null) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(target)\n if (!query) {\n const fallback = null\n if (cb) {\n cb(fallback)\n }\n return Promise.resolve(fallback)\n }\n const nodesRef = options.multiple ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n return new Promise((resolve) => {\n query.exec((res) => {\n let result: any = Array.isArray(res) ? res[0] : null\n if (options.index != null && Array.isArray(result)) {\n result = result[options.index] ?? null\n }\n if (cb) {\n cb(result ?? null)\n }\n resolve(result ?? null)\n })\n })\n}\n\nfunction createTemplateRefWrapper(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n) {\n const wrapper = {\n selector,\n boundingClientRect: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.boundingClientRect(), cb)\n },\n scrollOffset: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.scrollOffset(), cb)\n },\n fields: (fields: MiniProgramNodesRefFields, cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.fields(fields as any), cb)\n },\n node: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.node(), cb)\n },\n }\n return markNoSetData(wrapper)\n}\n\nexport function resolveComponentRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n) {\n const instance = target as any\n if (!instance) {\n return binding.inFor ? markNoSetData([]) : null\n }\n if (binding.inFor) {\n if (typeof instance.selectAllComponents === 'function') {\n const result = instance.selectAllComponents(binding.selector)\n const items = Array.isArray(result) ? result : []\n const merged = items.map((item, index) => {\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: true, index })\n const resolveCurrent = () => {\n const current = instance.selectAllComponents(binding.selector)\n return resolveComponentPublicInstance(Array.isArray(current) ? current[index] : null)\n }\n return mergeComponentRefValue(wrapper as Record<string, any>, resolveComponentPublicInstance(item), resolveCurrent)\n })\n return markNoSetData(merged)\n }\n return markNoSetData([])\n }\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: false })\n if (typeof instance.selectComponent !== 'function') {\n return wrapper\n }\n const result = instance.selectComponent(binding.selector)\n if (!result) {\n return null\n }\n const publicInstance = resolveComponentPublicInstance(result)\n if (!publicInstance) {\n return null\n }\n const resolveCurrent = () => resolveComponentPublicInstance(instance.selectComponent(binding.selector))\n return mergeComponentRefValue(wrapper as Record<string, any>, publicInstance, resolveCurrent)\n}\n\nexport function buildTemplateRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n result: unknown,\n) {\n if (binding.inFor) {\n const items = Array.isArray(result) ? result : []\n const wrappers = items.map((_, index) => createTemplateRefWrapper(target, binding.selector, { multiple: true, index }))\n return markNoSetData(wrappers)\n }\n if (!result) {\n return null\n }\n return createTemplateRefWrapper(target, binding.selector, { multiple: false })\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,eAAe,SAA6B;CAC1D,OAAO,QAAQ,SAAS;AAC1B;AAEA,SAAS,UAAyC,QAAc;CAC9D,OAAO,IAAI,MAAM,QAAQ;EACvB,IAAI,KAAK,KAAK,UAAU;GACtB,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAAK,QAAQ;GAC5C,OAAO,MAAM,KAAK,IAAI,MAAM,QAAQ;EACtC;EACA,IAAI,KAAK,KAAK,OAAO,UAAU;GAC7B,MAAM,UAAW,IAAY;GAC7B,IAAI,MAAM,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG;IACnC,QAAQ,QAAQ;IAChB,OAAO;GACT;GACA,OAAO,QAAQ,IAAI,KAAK,KAAK,OAAO,QAAQ;EAC9C;CACF,CAAC;AACH;AAEA,SAAS,eAAe,QAAa,SAA8B;CACjE,MAAM,WAAW,OAAO;CACxB,IAAI,YAAY,OAAO,oBAAoB,SACzC,OAAO;CAET,MAAM,QAAQ,UAAU,OAAO;CAC/B,IAAI;EACF,OAAO,eAAe,QAAQ,qBAAqB;GACjD,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;EACD,OAAO,eAAe,QAAQ,mBAAmB;GAC/C,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,QACM;EACJ,OAAO,oBAAoB;EAC3B,OAAO,kBAAkB;CAC3B;CACA,OAAO;AACT;AAEA,SAAS,uBACP,SACA,SACA,gBACA;CACA,KAAK,CAAC,WAAW,OAAO,YAAY,aAAa,CAAC,gBAChD,OAAO;CAET,MAAM,SAAS,WAAW,OAAO,YAAY,WACzC,UACA,OAAO,OAAO,IAAI;CACtB,MAAM,kBAAkB;EACtB,MAAM,UAAU,iBAAiB;EACjC,OAAO,WAAW,OAAO,YAAY,WACjC,UACA;CACN;CACA,QAAQ,OAAO;CACf,MAAM,SAAS,IAAI,MAAM,SAAS;EAChC,IAAI,QAAQ,KAAK,UAAU;GACzB,IAAI,mBACF,OAAO;GAET,IAAI,4BAAqC,0BACvC,OAAO;GAET,IAAI,QAAQ,IAAI,QAAQ,GAAG,GACzB,OAAO,QAAQ,IAAI,QAAQ,KAAK,QAAQ;GAE1C,MAAM,gBAAgB,UAAU;GAChC,MAAM,QAAQ,cAAc;GAC5B,IAAI,OAAO,UAAU,YACnB,OAAO,MAAM,KAAK,aAAa;GAEjC,OAAO;EACT;EACA,IAAI,QAAQ,KAAK,OAAO,UAAU;GAChC,IAAI,QAAQ,IAAI,QAAQ,GAAG,GACzB,OAAO,QAAQ,IAAI,QAAQ,KAAK,OAAO,QAAQ;GAEjD,MAAM,gBAAgB,UAAU;GAChC,IAAI,OAAO,eAAe;IACxB,cAAc,OAAqC;IACnD,OAAO;GACT;GACA,cAAc,OAAqC;GACnD,OAAO;EACT;EACA,IAAI,QAAQ,KAAK;GACf,OAAO,QAAQ,IAAI,QAAQ,GAAG,KAAK,OAAO,UAAU;EACtD;EACA,QAAQ,QAAQ;GACd,OAAO,CAAC,mBAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,QAAQ,MAAM,GAAG,GAAG,QAAQ,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC;EACnF;EACA,yBAAyB,QAAQ,KAAK;GACpC,IAAI,QAAQ,IAAI,QAAQ,GAAG,GACzB,OAAO,OAAO,yBAAyB,QAAQ,GAAG;GAEpD,MAAM,aAAa,OAAO,yBAAyB,UAAU,GAAG,GAAG;GACnE,IAAI,CAAC,YACH,OAAO;GAET,OAAO;IACL,GAAG;IACH,cAAc;GAChB;EACF;CACF,CAAC;CACD,OAAO,cAAc,MAAM;AAC7B;AAEA,SAAS,+BAA+B,OAAY;CAClD,IAAI,CAAC,SAAS,OAAO,UAAU,UAC7B,OAAO,SAAS;CAElB,MAAM,WAAW;CACjB,IAAI,SAAS,UAAU,CAAC,SAAS,wBAC/B,OAAO;CAET,MAAM,UAAU,SAAS;CACzB,IAAI,WAAW,OAAO,YAAY,UAChC,OAAO,eAAe,UAAU,OAA8B;CAEhE,IAAI,SAAS,wBAAwB,EAAE,OACrC,OAAO,SAAS,wBAAwB,CAAC;CAE3C,OAAO;AACT;AAEA,SAAgB,kBAAkB,QAA0D;CAC1F,OAAQ,OAAe;AACzB;AAEA,SAAgB,0BACd,QACA,MACA,OACA;CACA,IAAI,CAAC,QACH;CAEF,MAAM,QAAQ,OAAO,IAAI,IAAI;CAC7B,IAAI,OACF,MAAM,QAAQ;AAElB;AAEA,SAAgB,yBACd,QACA,SACA,mBAAyC,QACtB;CACnB,MAAM,QAAQ,iBAAiB,QAAQ,SAAS;CAChD,IAAI;CACJ,IAAI,QAAQ,KACV,IAAI;EACF,WAAW,QAAQ,IAAI,KAAK,KAAK;CACnC,QACM;EACJ,WAAW;CACb;CAEF,IAAI,YAAY,QAAQ,QAAQ,MAAM;EACpC,MAAM,eAAe,OAAO,QAAQ,aAAa,QAAQ;EACzD,IAAI,MAAM,YAAY,KAAK,OAAO,iBAAiB,YACjD,WAAW;CAEf;CACA,IAAI,YAAY,QAAQ,QAAQ,MAC9B,WAAW,QAAQ;CAErB,IAAI,OAAO,aAAa,YACtB,OAAO;EAAE,MAAM;EAAY,IAAI;CAAiC;CAElE,IAAI,MAAM,QAAQ,GAChB,OAAO;EAAE,MAAM;EAAO,KAAK;CAAqB;CAElD,IAAI,OAAO,aAAa,YAAY,UAClC,OAAO;EAAE,MAAM;EAAQ,MAAM;CAAS;CAExC,IAAI,QAAQ,MACV,OAAO;EAAE,MAAM;EAAQ,MAAM,QAAQ;CAAK;CAE5C,OAAO,EAAE,MAAM,OAAO;AACxB;AAEA,SAAgB,oBAAoB,QAAmD;CACrF,MAAM,eAAgB,OAAO,QAAQ,SAAS;CAC9C,MAAM,WAAW,aAAa;CAC9B,IAAI,YAAY,OAAO,aAAa,UAClC,OAAO;CAET,MAAM,OAAO,cAAc,OAAO,OAAO,IAAI,CAAC;CAC9C,OAAO,eAAe,cAAc,SAAS;EAC3C,OAAO;EACP,cAAc;EACd,YAAY;EACZ,UAAU;CACZ,CAAC;CACD,OAAO;AACT;AAEA,SAAgB,oBAAoB,QAA+D;CACjG,MAAM,WAAW;CACjB,IAAI,YAAY,OAAO,SAAS,wBAAwB,YACtD,OAAO,SAAS,oBAAoB;CAEtC,IAAI,CAAC,4CAA4C,2BAA2B,GAC1E,OAAO;CAET,MAAM,oBAAoB,kCAAkC;CAC5D,IAAI,qBAAqB,OAAO,kBAAkB,wBAAwB,YAAY;EACpF,MAAM,QAAQ,kBAAkB,oBAAoB;EACpD,IAAI,CAAC,OACH,OAAO;EAET,IAAI,yCAAyC,CAAC,CAAC,0BAA0B,OAAQ,MAAc,OAAO,YACpG,OAAQ,MAAc,GAAG,QAAQ;EAEnC,OAAO;CACT;CACA,OAAO;AACT;AAEA,SAAS,SACP,QACA,UACA,SACA,OACA,IACmB;CACnB,MAAM,QAAQ,oBAAoB,MAAM;CACxC,IAAI,CAAC,OAAO;EACV,MAAM,WAAW;EACjB,IAAI,IACF,GAAG,QAAQ;EAEb,OAAO,QAAQ,QAAQ,QAAQ;CACjC;CAEA,MADiB,QAAQ,WAAW,MAAM,UAAU,QAAQ,IAAI,MAAM,OAAO,QAAQ,CACvE;CACd,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,MAAM,QAAQ;GAClB,IAAI,SAAc,MAAM,QAAQ,GAAG,IAAI,IAAI,KAAK;GAChD,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ,MAAM,GAC/C,SAAS,OAAO,QAAQ,UAAU;GAEpC,IAAI,IACF,GAAG,UAAU,IAAI;GAEnB,QAAQ,UAAU,IAAI;EACxB,CAAC;CACH,CAAC;AACH;AAEA,SAAS,yBACP,QACA,UACA,SACA;CAgBA,OAAO,cAAc;EAdnB;EACA,qBAAqB,OAA8B;GACjD,OAAO,SAAS,QAAQ,UAAU,UAAS,QAAO,IAAI,mBAAmB,GAAG,EAAE;EAChF;EACA,eAAe,OAA8B;GAC3C,OAAO,SAAS,QAAQ,UAAU,UAAS,QAAO,IAAI,aAAa,GAAG,EAAE;EAC1E;EACA,SAAS,QAAmC,OAA8B;GACxE,OAAO,SAAS,QAAQ,UAAU,UAAS,QAAO,IAAI,OAAO,MAAa,GAAG,EAAE;EACjF;EACA,OAAO,OAA8B;GACnC,OAAO,SAAS,QAAQ,UAAU,UAAS,QAAO,IAAI,KAAK,GAAG,EAAE;EAClE;CAEyB,CAAC;AAC9B;AAEA,SAAgB,yBACd,QACA,SACA;CACA,MAAM,WAAW;CACjB,IAAI,CAAC,UACH,OAAO,QAAQ,QAAQ,cAAc,CAAC,CAAC,IAAI;CAE7C,IAAI,QAAQ,OAAO;EACjB,IAAI,OAAO,SAAS,wBAAwB,YAAY;GACtD,MAAM,SAAS,SAAS,oBAAoB,QAAQ,QAAQ;GAE5D,MAAM,UADQ,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,EAC5B,CAAC,KAAK,MAAM,UAAU;IACxC,MAAM,UAAU,yBAAyB,QAAQ,QAAQ,UAAU;KAAE,UAAU;KAAM;IAAM,CAAC;IAC5F,MAAM,uBAAuB;KAC3B,MAAM,UAAU,SAAS,oBAAoB,QAAQ,QAAQ;KAC7D,OAAO,+BAA+B,MAAM,QAAQ,OAAO,IAAI,QAAQ,SAAS,IAAI;IACtF;IACA,OAAO,uBAAuB,SAAgC,+BAA+B,IAAI,GAAG,cAAc;GACpH,CAAC;GACD,OAAO,cAAc,MAAM;EAC7B;EACA,OAAO,cAAc,CAAC,CAAC;CACzB;CACA,MAAM,UAAU,yBAAyB,QAAQ,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC;CACtF,IAAI,OAAO,SAAS,oBAAoB,YACtC,OAAO;CAET,MAAM,SAAS,SAAS,gBAAgB,QAAQ,QAAQ;CACxD,IAAI,CAAC,QACH,OAAO;CAET,MAAM,iBAAiB,+BAA+B,MAAM;CAC5D,IAAI,CAAC,gBACH,OAAO;CAET,MAAM,uBAAuB,+BAA+B,SAAS,gBAAgB,QAAQ,QAAQ,CAAC;CACtG,OAAO,uBAAuB,SAAgC,gBAAgB,cAAc;AAC9F;AAEA,SAAgB,sBACd,QACA,SACA,QACA;CACA,IAAI,QAAQ,OAAO;EAEjB,MAAM,YADQ,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,EAC1B,CAAC,KAAK,GAAG,UAAU,yBAAyB,QAAQ,QAAQ,UAAU;GAAE,UAAU;GAAM;EAAM,CAAC,CAAC;EACtH,OAAO,cAAc,QAAQ;CAC/B;CACA,IAAI,CAAC,QACH,OAAO;CAET,OAAO,yBAAyB,QAAQ,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC;AAC/E"}
@@ -47,10 +47,7 @@ function settleTemplateRefBatch(batch, failed = false, cause) {
47
47
  hasError = true;
48
48
  firstError = cause;
49
49
  }
50
- } else {
51
- var _completion$onResolve;
52
- (_completion$onResolve = completion.onResolved) === null || _completion$onResolve === void 0 || _completion$onResolve.call(completion);
53
- }
50
+ } else completion.onResolved?.();
54
51
  } catch (error) {
55
52
  if (!hasError) {
56
53
  hasError = true;
@@ -64,7 +61,7 @@ function runTemplateRefBatch(batch) {
64
61
  const { target, assignmentTarget } = batch;
65
62
  try {
66
63
  const bindings = target[WEVU_TEMPLATE_REFS_KEY];
67
- if (!ownsTemplateRefAssignment(batch) || !(bindings === null || bindings === void 0 ? void 0 : bindings.length) || !target[WEVU_READY_CALLED_KEY] || !target.__wevu) {
64
+ if (!ownsTemplateRefAssignment(batch) || !bindings?.length || !target[WEVU_READY_CALLED_KEY] || !target.__wevu) {
68
65
  settleTemplateRefBatch(batch);
69
66
  return;
70
67
  }
@@ -75,12 +72,11 @@ function runTemplateRefBatch(batch) {
75
72
  value: resolveComponentRefValue(target, binding)
76
73
  }));
77
74
  const applyEntries = (entries) => {
78
- var _batch$runtime$proxy, _batch$runtime;
79
75
  if (!ownsTemplateRefAssignment(batch)) return;
80
76
  const refsContainer = ensureRefsContainer(assignmentTarget);
81
77
  const nameEntries = /* @__PURE__ */ new Map();
82
78
  const nextNames = /* @__PURE__ */ new Set();
83
- const proxy = (_batch$runtime$proxy = (_batch$runtime = batch.runtime) === null || _batch$runtime === void 0 ? void 0 : _batch$runtime.proxy) !== null && _batch$runtime$proxy !== void 0 ? _batch$runtime$proxy : target;
79
+ const proxy = batch.runtime?.proxy ?? target;
84
80
  for (const { binding, value } of entries) {
85
81
  if (!ownsTemplateRefAssignment(batch)) return;
86
82
  const resolved = resolveTemplateRefTarget(assignmentTarget, binding, target);
@@ -90,7 +86,7 @@ function runTemplateRefBatch(batch) {
90
86
  if (!ownsTemplateRefAssignment(batch)) return;
91
87
  resolved.fn.call(proxy, item);
92
88
  }
93
- else resolved.fn.call(proxy, binding.inFor && Array.isArray(value) ? null : value !== null && value !== void 0 ? value : null);
89
+ else resolved.fn.call(proxy, binding.inFor && Array.isArray(value) ? null : value ?? null);
94
90
  continue;
95
91
  }
96
92
  if (resolved.type === "ref") {
@@ -98,9 +94,8 @@ function runTemplateRefBatch(batch) {
98
94
  continue;
99
95
  }
100
96
  if (resolved.type === "name") {
101
- var _nameEntries$get;
102
97
  nextNames.add(resolved.name);
103
- const entry = (_nameEntries$get = nameEntries.get(resolved.name)) !== null && _nameEntries$get !== void 0 ? _nameEntries$get : {
98
+ const entry = nameEntries.get(resolved.name) ?? {
104
99
  values: [],
105
100
  count: 0,
106
101
  hasFor: false
@@ -159,11 +154,10 @@ function runTemplateRefBatch(batch) {
159
154
  function completeEmptyTemplateRefs(target, onResolved) {
160
155
  const owner = templateRefOwners.get(target);
161
156
  if (owner) owner.current = void 0;
162
- onResolved === null || onResolved === void 0 || onResolved();
157
+ onResolved?.();
163
158
  }
164
159
  function scheduleTemplateRefUpdate(target, onResolved, assignmentTarget = target, onRejected) {
165
- const bindings = target[WEVU_TEMPLATE_REFS_KEY];
166
- if (!(bindings === null || bindings === void 0 ? void 0 : bindings.length)) {
160
+ if (!target[WEVU_TEMPLATE_REFS_KEY]?.length) {
167
161
  completeEmptyTemplateRefs(target, onResolved);
168
162
  return;
169
163
  }
@@ -192,7 +186,6 @@ function scheduleTemplateRefUpdate(target, onResolved, assignmentTarget = target
192
186
  });
193
187
  }
194
188
  function clearTemplateRefs(target, assignmentTarget = target) {
195
- var _target$__wevu$proxy, _target$__wevu;
196
189
  const owner = templateRefOwners.get(target);
197
190
  if (owner) {
198
191
  owner.generation += 1;
@@ -203,7 +196,7 @@ function clearTemplateRefs(target, assignmentTarget = target) {
203
196
  const bindings = target[WEVU_TEMPLATE_REFS_KEY];
204
197
  if (!bindings || !bindings.length) return;
205
198
  const refsContainer = ensureRefsContainer(assignmentTarget);
206
- const proxy = (_target$__wevu$proxy = (_target$__wevu = target.__wevu) === null || _target$__wevu === void 0 ? void 0 : _target$__wevu.proxy) !== null && _target$__wevu$proxy !== void 0 ? _target$__wevu$proxy : target;
199
+ const proxy = target.__wevu?.proxy ?? target;
207
200
  const nextNames = /* @__PURE__ */ new Set();
208
201
  const templateRefMap = getTemplateRefMap(assignmentTarget);
209
202
  runTeardownSteps([...bindings.map((binding) => () => {
@@ -1 +1 @@
1
- {"version":3,"file":"templateRefs.mjs","names":[],"sources":["../../../src/runtime/templateRefs.ts"],"sourcesContent":["import type { TemplateRefBinding } from './capabilities'\nimport type { InternalRuntimeState } from './types'\nimport {\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n WEVU_TEMPLATE_REFS_PENDING_KEY,\n} from '@weapp-core/constants'\nimport { nextTick } from '../scheduler'\nimport { markNoSetData } from './noSetData'\nimport { runTeardownSteps } from './teardown'\nimport {\n buildTemplateRefValue,\n createSelectorQuery,\n ensureRefsContainer,\n getTemplateRefMap,\n isComponentRef,\n resolveComponentRefValue,\n resolveTemplateRefTarget,\n updateTemplateRefMapValue,\n} from './templateRefs/helpers'\n\nexport type { TemplateRefBinding } from './capabilities'\n\ntype TemplateRefUpdateCallback = () => void\ntype TemplateRefUpdateRejection = (cause: unknown) => void\n\ninterface TemplateRefCompletion {\n onResolved?: TemplateRefUpdateCallback\n onRejected?: TemplateRefUpdateRejection\n}\n\ninterface TemplateRefOwner {\n generation: number\n current?: TemplateRefBatch\n pending?: TemplateRefBatch\n}\n\ninterface TemplateRefBatch {\n target: InternalRuntimeState\n assignmentTarget: InternalRuntimeState\n runtime: InternalRuntimeState['__wevu']\n assignmentRuntime: InternalRuntimeState['__wevu']\n owner: TemplateRefOwner\n assignmentOwner: TemplateRefOwner\n assignmentGeneration: number\n completions: TemplateRefCompletion[]\n settled: boolean\n}\n\nconst templateRefOwners = new WeakMap<InternalRuntimeState, TemplateRefOwner>()\n\nfunction getTemplateRefOwner(target: InternalRuntimeState) {\n let owner = templateRefOwners.get(target)\n if (!owner) {\n owner = { generation: 0 }\n templateRefOwners.set(target, owner)\n }\n return owner\n}\n\nfunction createTemplateRefBatch(target: InternalRuntimeState, assignmentTarget: InternalRuntimeState) {\n const owner = getTemplateRefOwner(target)\n const assignmentOwner = getTemplateRefOwner(assignmentTarget)\n const batch: TemplateRefBatch = {\n target,\n assignmentTarget,\n runtime: target.__wevu,\n assignmentRuntime: assignmentTarget.__wevu,\n owner,\n assignmentOwner,\n assignmentGeneration: assignmentOwner.generation,\n completions: [],\n settled: false,\n }\n owner.current = batch\n return batch\n}\n\nfunction ownsTemplateRefAssignment(batch: TemplateRefBatch) {\n return !batch.settled\n && batch.owner.current === batch\n && batch.target.__wevu === batch.runtime\n && batch.assignmentTarget.__wevu === batch.assignmentRuntime\n && batch.assignmentOwner.generation === batch.assignmentGeneration\n}\n\nfunction settleTemplateRefBatch(batch: TemplateRefBatch, failed = false, cause?: unknown) {\n if (batch.settled) {\n return\n }\n batch.settled = true\n if (batch.owner.current === batch) {\n batch.owner.current = undefined\n }\n let hasError = failed && !batch.completions.length\n let firstError = cause\n for (const completion of batch.completions) {\n try {\n if (failed) {\n if (completion.onRejected) {\n completion.onRejected(cause)\n }\n else if (!hasError) {\n hasError = true\n firstError = cause\n }\n }\n else {\n completion.onResolved?.()\n }\n }\n catch (error) {\n if (!hasError) {\n hasError = true\n firstError = error\n }\n }\n }\n batch.completions.length = 0\n if (hasError) {\n throw firstError\n }\n}\n\nfunction runTemplateRefBatch(batch: TemplateRefBatch) {\n const { target, assignmentTarget } = batch\n try {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!ownsTemplateRefAssignment(batch) || !bindings?.length || !target[WEVU_READY_CALLED_KEY] || !target.__wevu) {\n settleTemplateRefBatch(batch)\n return\n }\n const templateRefMap = getTemplateRefMap(assignmentTarget)\n const nodeBindings = bindings.filter(binding => !isComponentRef(binding))\n const componentEntries = bindings\n .filter(binding => isComponentRef(binding))\n .map(binding => ({\n binding,\n value: resolveComponentRefValue(target, binding),\n }))\n\n const applyEntries = (entries: Array<{ binding: TemplateRefBinding, value: unknown }>) => {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n const refsContainer = ensureRefsContainer(assignmentTarget)\n const nameEntries = new Map<string, { values: unknown[], count: number, hasFor: boolean }>()\n const nextNames = new Set<string>()\n const proxy = batch.runtime?.proxy ?? target\n for (const { binding, value } of entries) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n const resolved = resolveTemplateRefTarget(assignmentTarget, binding, target)\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n\n if (resolved.type === 'function') {\n if (binding.inFor && Array.isArray(value) && value.length) {\n for (const item of value) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n resolved.fn.call(proxy, item)\n }\n }\n else {\n resolved.fn.call(proxy, binding.inFor && Array.isArray(value) ? null : value ?? null)\n }\n continue\n }\n\n if (resolved.type === 'ref') {\n resolved.ref.value = value\n continue\n }\n\n if (resolved.type === 'name') {\n nextNames.add(resolved.name)\n const entry = nameEntries.get(resolved.name) ?? { values: [], count: 0, hasFor: false }\n entry.count += 1\n entry.hasFor = entry.hasFor || binding.inFor\n if (binding.inFor) {\n if (Array.isArray(value)) {\n entry.values.push(...value)\n }\n }\n else if (value != null) {\n entry.values.push(value)\n }\n nameEntries.set(resolved.name, entry)\n }\n }\n\n for (const [name, entry] of nameEntries) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n let nextValue: unknown\n if (!entry.values.length) {\n nextValue = entry.hasFor ? markNoSetData([]) : null\n }\n else if (entry.hasFor || entry.values.length > 1 || entry.count > 1) {\n nextValue = markNoSetData(entry.values)\n }\n else {\n nextValue = entry.values[0]\n }\n refsContainer[name] = nextValue\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n updateTemplateRefMapValue(templateRefMap, name, nextValue)\n }\n\n for (const key of Object.keys(refsContainer)) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n if (!nextNames.has(key)) {\n delete refsContainer[key]\n }\n }\n }\n\n const query = nodeBindings.length ? createSelectorQuery(target) : null\n if (!query) {\n applyEntries(componentEntries)\n settleTemplateRefBatch(batch)\n return\n }\n\n for (const binding of nodeBindings) {\n const nodesRef = binding.inFor ? query.selectAll(binding.selector) : query.select(binding.selector)\n nodesRef.boundingClientRect()\n }\n\n query.exec((res) => {\n if (batch.settled) {\n return\n }\n try {\n // 过期查询仍释放自己的完成通知,但不能向新一代 runtime 或 slot owner 回写。\n if (ownsTemplateRefAssignment(batch)) {\n const entries = nodeBindings.map((binding, index) => ({\n binding,\n value: buildTemplateRefValue(target, binding, Array.isArray(res) ? res[index] : null),\n }))\n applyEntries([...componentEntries, ...entries])\n }\n }\n catch (cause) {\n settleTemplateRefBatch(batch, true, cause)\n return\n }\n settleTemplateRefBatch(batch)\n })\n }\n catch (cause) {\n // 完成通知本身抛错时不能再次结算,也不能吞掉用户回调错误。\n if (batch.settled) {\n throw cause\n }\n settleTemplateRefBatch(batch, true, cause)\n }\n}\n\nfunction completeEmptyTemplateRefs(target: InternalRuntimeState, onResolved?: TemplateRefUpdateCallback) {\n const owner = templateRefOwners.get(target)\n if (owner) {\n owner.current = undefined\n }\n onResolved?.()\n}\n\nexport function updateTemplateRefs(\n target: InternalRuntimeState,\n onResolved?: TemplateRefUpdateCallback,\n assignmentTarget: InternalRuntimeState = target,\n onRejected?: TemplateRefUpdateRejection,\n) {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings?.length) {\n completeEmptyTemplateRefs(target, onResolved)\n return\n }\n const batch = createTemplateRefBatch(target, assignmentTarget)\n if (onResolved || onRejected) {\n batch.completions.push({ onResolved, onRejected })\n }\n runTemplateRefBatch(batch)\n}\n\nexport function scheduleTemplateRefUpdate(\n target: InternalRuntimeState,\n onResolved?: TemplateRefUpdateCallback,\n assignmentTarget: InternalRuntimeState = target,\n onRejected?: TemplateRefUpdateRejection,\n) {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings?.length) {\n completeEmptyTemplateRefs(target, onResolved)\n return\n }\n const owner = getTemplateRefOwner(target)\n const pending = owner.pending\n if (pending && pending.assignmentTarget === assignmentTarget && ownsTemplateRefAssignment(pending)) {\n if (onResolved || onRejected) {\n pending.completions.push({ onResolved, onRejected })\n }\n return\n }\n const batch = createTemplateRefBatch(target, assignmentTarget)\n if (onResolved || onRejected) {\n batch.completions.push({ onResolved, onRejected })\n }\n owner.pending = batch\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = true\n nextTick(() => {\n if (owner.pending === batch) {\n owner.pending = undefined\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = false\n }\n runTemplateRefBatch(batch)\n })\n}\n\nexport function clearTemplateRefs(\n target: InternalRuntimeState,\n assignmentTarget: InternalRuntimeState = target,\n) {\n const owner = templateRefOwners.get(target)\n if (owner) {\n owner.generation += 1\n owner.current = undefined\n owner.pending = undefined\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = false\n }\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings || !bindings.length) {\n return\n }\n const refsContainer = ensureRefsContainer(assignmentTarget)\n const proxy = target.__wevu?.proxy ?? target\n const nextNames = new Set<string>()\n const templateRefMap = getTemplateRefMap(assignmentTarget)\n\n runTeardownSteps([\n ...bindings.map(binding => () => {\n const resolved = resolveTemplateRefTarget(assignmentTarget, binding, target)\n const emptyValue = binding.inFor ? markNoSetData([]) : null\n if (resolved.type === 'function') {\n resolved.fn.call(proxy, null)\n return\n }\n if (resolved.type === 'ref') {\n resolved.ref.value = emptyValue\n return\n }\n if (resolved.type === 'name') {\n nextNames.add(resolved.name)\n refsContainer[resolved.name] = emptyValue\n updateTemplateRefMapValue(templateRefMap, resolved.name, emptyValue)\n }\n }),\n () => {\n for (const key of Object.keys(refsContainer)) {\n if (!nextNames.has(key)) {\n delete refsContainer[key]\n }\n }\n },\n ])\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"templateRefs.mjs","names":[],"sources":["../../../src/runtime/templateRefs.ts"],"sourcesContent":["import type { TemplateRefBinding } from './capabilities'\nimport type { InternalRuntimeState } from './types'\nimport {\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n WEVU_TEMPLATE_REFS_PENDING_KEY,\n} from '@weapp-core/constants'\nimport { nextTick } from '../scheduler'\nimport { markNoSetData } from './noSetData'\nimport { runTeardownSteps } from './teardown'\nimport {\n buildTemplateRefValue,\n createSelectorQuery,\n ensureRefsContainer,\n getTemplateRefMap,\n isComponentRef,\n resolveComponentRefValue,\n resolveTemplateRefTarget,\n updateTemplateRefMapValue,\n} from './templateRefs/helpers'\n\nexport type { TemplateRefBinding } from './capabilities'\n\ntype TemplateRefUpdateCallback = () => void\ntype TemplateRefUpdateRejection = (cause: unknown) => void\n\ninterface TemplateRefCompletion {\n onResolved?: TemplateRefUpdateCallback\n onRejected?: TemplateRefUpdateRejection\n}\n\ninterface TemplateRefOwner {\n generation: number\n current?: TemplateRefBatch\n pending?: TemplateRefBatch\n}\n\ninterface TemplateRefBatch {\n target: InternalRuntimeState\n assignmentTarget: InternalRuntimeState\n runtime: InternalRuntimeState['__wevu']\n assignmentRuntime: InternalRuntimeState['__wevu']\n owner: TemplateRefOwner\n assignmentOwner: TemplateRefOwner\n assignmentGeneration: number\n completions: TemplateRefCompletion[]\n settled: boolean\n}\n\nconst templateRefOwners = new WeakMap<InternalRuntimeState, TemplateRefOwner>()\n\nfunction getTemplateRefOwner(target: InternalRuntimeState) {\n let owner = templateRefOwners.get(target)\n if (!owner) {\n owner = { generation: 0 }\n templateRefOwners.set(target, owner)\n }\n return owner\n}\n\nfunction createTemplateRefBatch(target: InternalRuntimeState, assignmentTarget: InternalRuntimeState) {\n const owner = getTemplateRefOwner(target)\n const assignmentOwner = getTemplateRefOwner(assignmentTarget)\n const batch: TemplateRefBatch = {\n target,\n assignmentTarget,\n runtime: target.__wevu,\n assignmentRuntime: assignmentTarget.__wevu,\n owner,\n assignmentOwner,\n assignmentGeneration: assignmentOwner.generation,\n completions: [],\n settled: false,\n }\n owner.current = batch\n return batch\n}\n\nfunction ownsTemplateRefAssignment(batch: TemplateRefBatch) {\n return !batch.settled\n && batch.owner.current === batch\n && batch.target.__wevu === batch.runtime\n && batch.assignmentTarget.__wevu === batch.assignmentRuntime\n && batch.assignmentOwner.generation === batch.assignmentGeneration\n}\n\nfunction settleTemplateRefBatch(batch: TemplateRefBatch, failed = false, cause?: unknown) {\n if (batch.settled) {\n return\n }\n batch.settled = true\n if (batch.owner.current === batch) {\n batch.owner.current = undefined\n }\n let hasError = failed && !batch.completions.length\n let firstError = cause\n for (const completion of batch.completions) {\n try {\n if (failed) {\n if (completion.onRejected) {\n completion.onRejected(cause)\n }\n else if (!hasError) {\n hasError = true\n firstError = cause\n }\n }\n else {\n completion.onResolved?.()\n }\n }\n catch (error) {\n if (!hasError) {\n hasError = true\n firstError = error\n }\n }\n }\n batch.completions.length = 0\n if (hasError) {\n throw firstError\n }\n}\n\nfunction runTemplateRefBatch(batch: TemplateRefBatch) {\n const { target, assignmentTarget } = batch\n try {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!ownsTemplateRefAssignment(batch) || !bindings?.length || !target[WEVU_READY_CALLED_KEY] || !target.__wevu) {\n settleTemplateRefBatch(batch)\n return\n }\n const templateRefMap = getTemplateRefMap(assignmentTarget)\n const nodeBindings = bindings.filter(binding => !isComponentRef(binding))\n const componentEntries = bindings\n .filter(binding => isComponentRef(binding))\n .map(binding => ({\n binding,\n value: resolveComponentRefValue(target, binding),\n }))\n\n const applyEntries = (entries: Array<{ binding: TemplateRefBinding, value: unknown }>) => {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n const refsContainer = ensureRefsContainer(assignmentTarget)\n const nameEntries = new Map<string, { values: unknown[], count: number, hasFor: boolean }>()\n const nextNames = new Set<string>()\n const proxy = batch.runtime?.proxy ?? target\n for (const { binding, value } of entries) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n const resolved = resolveTemplateRefTarget(assignmentTarget, binding, target)\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n\n if (resolved.type === 'function') {\n if (binding.inFor && Array.isArray(value) && value.length) {\n for (const item of value) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n resolved.fn.call(proxy, item)\n }\n }\n else {\n resolved.fn.call(proxy, binding.inFor && Array.isArray(value) ? null : value ?? null)\n }\n continue\n }\n\n if (resolved.type === 'ref') {\n resolved.ref.value = value\n continue\n }\n\n if (resolved.type === 'name') {\n nextNames.add(resolved.name)\n const entry = nameEntries.get(resolved.name) ?? { values: [], count: 0, hasFor: false }\n entry.count += 1\n entry.hasFor = entry.hasFor || binding.inFor\n if (binding.inFor) {\n if (Array.isArray(value)) {\n entry.values.push(...value)\n }\n }\n else if (value != null) {\n entry.values.push(value)\n }\n nameEntries.set(resolved.name, entry)\n }\n }\n\n for (const [name, entry] of nameEntries) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n let nextValue: unknown\n if (!entry.values.length) {\n nextValue = entry.hasFor ? markNoSetData([]) : null\n }\n else if (entry.hasFor || entry.values.length > 1 || entry.count > 1) {\n nextValue = markNoSetData(entry.values)\n }\n else {\n nextValue = entry.values[0]\n }\n refsContainer[name] = nextValue\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n updateTemplateRefMapValue(templateRefMap, name, nextValue)\n }\n\n for (const key of Object.keys(refsContainer)) {\n if (!ownsTemplateRefAssignment(batch)) {\n return\n }\n if (!nextNames.has(key)) {\n delete refsContainer[key]\n }\n }\n }\n\n const query = nodeBindings.length ? createSelectorQuery(target) : null\n if (!query) {\n applyEntries(componentEntries)\n settleTemplateRefBatch(batch)\n return\n }\n\n for (const binding of nodeBindings) {\n const nodesRef = binding.inFor ? query.selectAll(binding.selector) : query.select(binding.selector)\n nodesRef.boundingClientRect()\n }\n\n query.exec((res) => {\n if (batch.settled) {\n return\n }\n try {\n // 过期查询仍释放自己的完成通知,但不能向新一代 runtime 或 slot owner 回写。\n if (ownsTemplateRefAssignment(batch)) {\n const entries = nodeBindings.map((binding, index) => ({\n binding,\n value: buildTemplateRefValue(target, binding, Array.isArray(res) ? res[index] : null),\n }))\n applyEntries([...componentEntries, ...entries])\n }\n }\n catch (cause) {\n settleTemplateRefBatch(batch, true, cause)\n return\n }\n settleTemplateRefBatch(batch)\n })\n }\n catch (cause) {\n // 完成通知本身抛错时不能再次结算,也不能吞掉用户回调错误。\n if (batch.settled) {\n throw cause\n }\n settleTemplateRefBatch(batch, true, cause)\n }\n}\n\nfunction completeEmptyTemplateRefs(target: InternalRuntimeState, onResolved?: TemplateRefUpdateCallback) {\n const owner = templateRefOwners.get(target)\n if (owner) {\n owner.current = undefined\n }\n onResolved?.()\n}\n\nexport function updateTemplateRefs(\n target: InternalRuntimeState,\n onResolved?: TemplateRefUpdateCallback,\n assignmentTarget: InternalRuntimeState = target,\n onRejected?: TemplateRefUpdateRejection,\n) {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings?.length) {\n completeEmptyTemplateRefs(target, onResolved)\n return\n }\n const batch = createTemplateRefBatch(target, assignmentTarget)\n if (onResolved || onRejected) {\n batch.completions.push({ onResolved, onRejected })\n }\n runTemplateRefBatch(batch)\n}\n\nexport function scheduleTemplateRefUpdate(\n target: InternalRuntimeState,\n onResolved?: TemplateRefUpdateCallback,\n assignmentTarget: InternalRuntimeState = target,\n onRejected?: TemplateRefUpdateRejection,\n) {\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings?.length) {\n completeEmptyTemplateRefs(target, onResolved)\n return\n }\n const owner = getTemplateRefOwner(target)\n const pending = owner.pending\n if (pending && pending.assignmentTarget === assignmentTarget && ownsTemplateRefAssignment(pending)) {\n if (onResolved || onRejected) {\n pending.completions.push({ onResolved, onRejected })\n }\n return\n }\n const batch = createTemplateRefBatch(target, assignmentTarget)\n if (onResolved || onRejected) {\n batch.completions.push({ onResolved, onRejected })\n }\n owner.pending = batch\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = true\n nextTick(() => {\n if (owner.pending === batch) {\n owner.pending = undefined\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = false\n }\n runTemplateRefBatch(batch)\n })\n}\n\nexport function clearTemplateRefs(\n target: InternalRuntimeState,\n assignmentTarget: InternalRuntimeState = target,\n) {\n const owner = templateRefOwners.get(target)\n if (owner) {\n owner.generation += 1\n owner.current = undefined\n owner.pending = undefined\n target[WEVU_TEMPLATE_REFS_PENDING_KEY] = false\n }\n const bindings = target[WEVU_TEMPLATE_REFS_KEY] as TemplateRefBinding[] | undefined\n if (!bindings || !bindings.length) {\n return\n }\n const refsContainer = ensureRefsContainer(assignmentTarget)\n const proxy = target.__wevu?.proxy ?? target\n const nextNames = new Set<string>()\n const templateRefMap = getTemplateRefMap(assignmentTarget)\n\n runTeardownSteps([\n ...bindings.map(binding => () => {\n const resolved = resolveTemplateRefTarget(assignmentTarget, binding, target)\n const emptyValue = binding.inFor ? markNoSetData([]) : null\n if (resolved.type === 'function') {\n resolved.fn.call(proxy, null)\n return\n }\n if (resolved.type === 'ref') {\n resolved.ref.value = emptyValue\n return\n }\n if (resolved.type === 'name') {\n nextNames.add(resolved.name)\n refsContainer[resolved.name] = emptyValue\n updateTemplateRefMapValue(templateRefMap, resolved.name, emptyValue)\n }\n }),\n () => {\n for (const key of Object.keys(refsContainer)) {\n if (!nextNames.has(key)) {\n delete refsContainer[key]\n }\n }\n },\n ])\n}\n"],"mappings":"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"}