@weapp-vite/web 1.3.37 → 1.4.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 (321) hide show
  1. package/README.md +144 -5
  2. package/dist/_virtual/_rolldown/runtime.mjs +19 -1
  3. package/dist/compiler/wxml/attributes.mjs +1 -1
  4. package/dist/compiler/wxml/attributes.mjs.map +1 -1
  5. package/dist/compiler/wxml/compile.mjs +6 -3
  6. package/dist/compiler/wxml/compile.mjs.map +1 -1
  7. package/dist/compiler/wxml/interpolation.mjs +1 -2
  8. package/dist/compiler/wxml/interpolation.mjs.map +1 -1
  9. package/dist/compiler/wxml/navigation.mjs +5 -7
  10. package/dist/compiler/wxml/navigation.mjs.map +1 -1
  11. package/dist/compiler/wxml/parser.mjs +5 -5
  12. package/dist/compiler/wxml/parser.mjs.map +1 -1
  13. package/dist/compiler/wxml/renderer.mjs +13 -12
  14. package/dist/compiler/wxml/renderer.mjs.map +1 -1
  15. package/dist/compiler/wxml/specialNodes.mjs +6 -1
  16. package/dist/compiler/wxml/specialNodes.mjs.map +1 -1
  17. package/dist/compiler/wxml/types.d.mts +12 -0
  18. package/dist/compiler/wxs.mjs +5 -5
  19. package/dist/compiler/wxs.mjs.map +1 -1
  20. package/dist/css/wxss.d.mts +1 -0
  21. package/dist/css/wxss.mjs +110 -9
  22. package/dist/css/wxss.mjs.map +1 -1
  23. package/dist/index.d.mts +29 -6
  24. package/dist/index.mjs +197 -4
  25. package/dist/index.mjs.map +1 -0
  26. package/dist/plugin/assets.d.mts +7 -0
  27. package/dist/plugin/assets.mjs +122 -0
  28. package/dist/plugin/assets.mjs.map +1 -0
  29. package/dist/plugin/constants.mjs +10 -1
  30. package/dist/plugin/constants.mjs.map +1 -1
  31. package/dist/plugin/dependencyScan.mjs +41 -0
  32. package/dist/plugin/dependencyScan.mjs.map +1 -0
  33. package/dist/plugin/entry.mjs +55 -6
  34. package/dist/plugin/entry.mjs.map +1 -1
  35. package/dist/plugin/files.mjs +1 -1
  36. package/dist/plugin/files.mjs.map +1 -1
  37. package/dist/plugin/index.d.mts +37 -3
  38. package/dist/plugin/index.mjs +240 -73
  39. package/dist/plugin/index.mjs.map +1 -1
  40. package/dist/plugin/layout.mjs +24 -0
  41. package/dist/plugin/layout.mjs.map +1 -0
  42. package/dist/plugin/path.mjs +4 -1
  43. package/dist/plugin/path.mjs.map +1 -1
  44. package/dist/plugin/register.mjs +45 -33
  45. package/dist/plugin/register.mjs.map +1 -1
  46. package/dist/plugin/scan.mjs +206 -94
  47. package/dist/plugin/scan.mjs.map +1 -1
  48. package/dist/plugin/scanSfc.mjs +65 -0
  49. package/dist/plugin/scanSfc.mjs.map +1 -0
  50. package/dist/plugin/state.mjs +3 -2
  51. package/dist/plugin/state.mjs.map +1 -1
  52. package/dist/plugin/styleModule.mjs +52 -0
  53. package/dist/plugin/styleModule.mjs.map +1 -0
  54. package/dist/plugin/types.d.mts +37 -1
  55. package/dist/plugin/vueSfc.mjs +149 -0
  56. package/dist/plugin/vueSfc.mjs.map +1 -0
  57. package/dist/runtime/appShell/container.mjs +25 -0
  58. package/dist/runtime/appShell/container.mjs.map +1 -0
  59. package/dist/runtime/appShell/tabBar/index.mjs +192 -0
  60. package/dist/runtime/appShell/tabBar/index.mjs.map +1 -0
  61. package/dist/runtime/appShell/tabBar/style.mjs +127 -0
  62. package/dist/runtime/appShell/tabBar/style.mjs.map +1 -0
  63. package/dist/runtime/button/helpers.mjs +1 -58
  64. package/dist/runtime/button/helpers.mjs.map +1 -1
  65. package/dist/runtime/button/index.d.mts +4 -5
  66. package/dist/runtime/button/index.mjs +6 -28
  67. package/dist/runtime/button/index.mjs.map +1 -1
  68. package/dist/runtime/button/style.mjs +53 -28
  69. package/dist/runtime/button/style.mjs.map +1 -1
  70. package/dist/runtime/component/behavior.mjs +26 -2
  71. package/dist/runtime/component/behavior.mjs.map +1 -1
  72. package/dist/runtime/component/element.mjs +107 -31
  73. package/dist/runtime/component/element.mjs.map +1 -1
  74. package/dist/runtime/component/observers.mjs +36 -0
  75. package/dist/runtime/component/observers.mjs.map +1 -0
  76. package/dist/runtime/component/publicInstance.mjs +48 -0
  77. package/dist/runtime/component/publicInstance.mjs.map +1 -0
  78. package/dist/runtime/component/relations.mjs +35 -0
  79. package/dist/runtime/component/relations.mjs.map +1 -0
  80. package/dist/runtime/component/slots.mjs +24 -0
  81. package/dist/runtime/component/slots.mjs.map +1 -0
  82. package/dist/runtime/component/state.mjs +13 -3
  83. package/dist/runtime/component/state.mjs.map +1 -1
  84. package/dist/runtime/component/types.d.mts +29 -4
  85. package/dist/runtime/component/virtualHost.mjs +83 -0
  86. package/dist/runtime/component/virtualHost.mjs.map +1 -0
  87. package/dist/runtime/host/index.d.mts +13 -0
  88. package/dist/runtime/host/index.mjs +47 -0
  89. package/dist/runtime/host/index.mjs.map +1 -0
  90. package/dist/runtime/host/types.d.mts +28 -0
  91. package/dist/runtime/hostGlobals.d.mts +9 -0
  92. package/dist/runtime/hostGlobals.mjs +39 -0
  93. package/dist/runtime/hostGlobals.mjs.map +1 -0
  94. package/dist/runtime/index.d.mts +21 -3
  95. package/dist/runtime/index.mjs +26 -4
  96. package/dist/runtime/index.mjs.map +1 -0
  97. package/dist/runtime/legacyTemplate/dom.mjs +3 -3
  98. package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
  99. package/dist/runtime/legacyTemplate/expression.mjs +9 -9
  100. package/dist/runtime/legacyTemplate/expression.mjs.map +1 -1
  101. package/dist/runtime/legacyTemplate/index.mjs +6 -6
  102. package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
  103. package/dist/runtime/nativeComponents/canvas/index.mjs +53 -0
  104. package/dist/runtime/nativeComponents/canvas/index.mjs.map +1 -0
  105. package/dist/runtime/nativeComponents/checkbox.mjs +137 -0
  106. package/dist/runtime/nativeComponents/checkbox.mjs.map +1 -0
  107. package/dist/runtime/nativeComponents/cover/index.mjs +23 -0
  108. package/dist/runtime/nativeComponents/cover/index.mjs.map +1 -0
  109. package/dist/runtime/nativeComponents/form.d.mts +7 -0
  110. package/dist/runtime/nativeComponents/form.mjs +50 -0
  111. package/dist/runtime/nativeComponents/form.mjs.map +1 -0
  112. package/dist/runtime/nativeComponents/formControl.mjs +61 -0
  113. package/dist/runtime/nativeComponents/formControl.mjs.map +1 -0
  114. package/dist/runtime/nativeComponents/helpers.mjs +25 -0
  115. package/dist/runtime/nativeComponents/helpers.mjs.map +1 -0
  116. package/dist/runtime/nativeComponents/icon/helpers.mjs +42 -0
  117. package/dist/runtime/nativeComponents/icon/helpers.mjs.map +1 -0
  118. package/dist/runtime/nativeComponents/icon/index.mjs +45 -0
  119. package/dist/runtime/nativeComponents/icon/index.mjs.map +1 -0
  120. package/dist/runtime/nativeComponents/icon/style.mjs +176 -0
  121. package/dist/runtime/nativeComponents/icon/style.mjs.map +1 -0
  122. package/dist/runtime/nativeComponents/image.d.mts +8 -0
  123. package/dist/runtime/nativeComponents/image.mjs +121 -0
  124. package/dist/runtime/nativeComponents/image.mjs.map +1 -0
  125. package/dist/runtime/nativeComponents/index.d.mts +11 -0
  126. package/dist/runtime/nativeComponents/index.mjs +83 -0
  127. package/dist/runtime/nativeComponents/index.mjs.map +1 -0
  128. package/dist/runtime/nativeComponents/input.d.mts +8 -0
  129. package/dist/runtime/nativeComponents/input.mjs +131 -0
  130. package/dist/runtime/nativeComponents/input.mjs.map +1 -0
  131. package/dist/runtime/nativeComponents/label.mjs +36 -0
  132. package/dist/runtime/nativeComponents/label.mjs.map +1 -0
  133. package/dist/runtime/nativeComponents/mediaRegistry.mjs +47 -0
  134. package/dist/runtime/nativeComponents/mediaRegistry.mjs.map +1 -0
  135. package/dist/runtime/nativeComponents/movable/helpers.mjs +23 -0
  136. package/dist/runtime/nativeComponents/movable/helpers.mjs.map +1 -0
  137. package/dist/runtime/nativeComponents/movable/index.mjs +117 -0
  138. package/dist/runtime/nativeComponents/movable/index.mjs.map +1 -0
  139. package/dist/runtime/nativeComponents/navigator.mjs +200 -0
  140. package/dist/runtime/nativeComponents/navigator.mjs.map +1 -0
  141. package/dist/runtime/nativeComponents/picker/editors.mjs +74 -0
  142. package/dist/runtime/nativeComponents/picker/editors.mjs.map +1 -0
  143. package/dist/runtime/nativeComponents/picker/helpers.mjs +57 -0
  144. package/dist/runtime/nativeComponents/picker/helpers.mjs.map +1 -0
  145. package/dist/runtime/nativeComponents/picker/index.mjs +210 -0
  146. package/dist/runtime/nativeComponents/picker/index.mjs.map +1 -0
  147. package/dist/runtime/nativeComponents/picker/style.mjs +71 -0
  148. package/dist/runtime/nativeComponents/picker/style.mjs.map +1 -0
  149. package/dist/runtime/nativeComponents/pickerView/column.mjs +134 -0
  150. package/dist/runtime/nativeComponents/pickerView/column.mjs.map +1 -0
  151. package/dist/runtime/nativeComponents/pickerView/helpers.mjs +17 -0
  152. package/dist/runtime/nativeComponents/pickerView/helpers.mjs.map +1 -0
  153. package/dist/runtime/nativeComponents/pickerView/index.mjs +128 -0
  154. package/dist/runtime/nativeComponents/pickerView/index.mjs.map +1 -0
  155. package/dist/runtime/nativeComponents/pickerView/style.mjs +58 -0
  156. package/dist/runtime/nativeComponents/pickerView/style.mjs.map +1 -0
  157. package/dist/runtime/nativeComponents/primitives.mjs +16 -0
  158. package/dist/runtime/nativeComponents/primitives.mjs.map +1 -0
  159. package/dist/runtime/nativeComponents/progress/helpers.mjs +29 -0
  160. package/dist/runtime/nativeComponents/progress/helpers.mjs.map +1 -0
  161. package/dist/runtime/nativeComponents/progress/index.mjs +130 -0
  162. package/dist/runtime/nativeComponents/progress/index.mjs.map +1 -0
  163. package/dist/runtime/nativeComponents/progress/style.mjs +40 -0
  164. package/dist/runtime/nativeComponents/progress/style.mjs.map +1 -0
  165. package/dist/runtime/nativeComponents/radio.mjs +147 -0
  166. package/dist/runtime/nativeComponents/radio.mjs.map +1 -0
  167. package/dist/runtime/nativeComponents/richText/helpers.mjs +230 -0
  168. package/dist/runtime/nativeComponents/richText/helpers.mjs.map +1 -0
  169. package/dist/runtime/nativeComponents/richText/index.mjs +74 -0
  170. package/dist/runtime/nativeComponents/richText/index.mjs.map +1 -0
  171. package/dist/runtime/nativeComponents/scrollView.d.mts +15 -0
  172. package/dist/runtime/nativeComponents/scrollView.mjs +79 -0
  173. package/dist/runtime/nativeComponents/scrollView.mjs.map +1 -0
  174. package/dist/runtime/nativeComponents/slider/helpers.mjs +28 -0
  175. package/dist/runtime/nativeComponents/slider/helpers.mjs.map +1 -0
  176. package/dist/runtime/nativeComponents/slider/index.mjs +120 -0
  177. package/dist/runtime/nativeComponents/slider/index.mjs.map +1 -0
  178. package/dist/runtime/nativeComponents/slider/style.mjs +60 -0
  179. package/dist/runtime/nativeComponents/slider/style.mjs.map +1 -0
  180. package/dist/runtime/nativeComponents/style.mjs +41 -0
  181. package/dist/runtime/nativeComponents/style.mjs.map +1 -0
  182. package/dist/runtime/nativeComponents/swiper/helpers.mjs +52 -0
  183. package/dist/runtime/nativeComponents/swiper/helpers.mjs.map +1 -0
  184. package/dist/runtime/nativeComponents/swiper/index.mjs +235 -0
  185. package/dist/runtime/nativeComponents/swiper/index.mjs.map +1 -0
  186. package/dist/runtime/nativeComponents/swiper/item.mjs +14 -0
  187. package/dist/runtime/nativeComponents/swiper/item.mjs.map +1 -0
  188. package/dist/runtime/nativeComponents/swiper/style.mjs +20 -0
  189. package/dist/runtime/nativeComponents/swiper/style.mjs.map +1 -0
  190. package/dist/runtime/nativeComponents/switch.d.mts +7 -0
  191. package/dist/runtime/nativeComponents/switch.mjs +132 -0
  192. package/dist/runtime/nativeComponents/switch.mjs.map +1 -0
  193. package/dist/runtime/nativeComponents/textarea.d.mts +9 -0
  194. package/dist/runtime/nativeComponents/textarea.mjs +144 -0
  195. package/dist/runtime/nativeComponents/textarea.mjs.map +1 -0
  196. package/dist/runtime/nativeComponents/video/helpers.d.mts +12 -0
  197. package/dist/runtime/nativeComponents/video/helpers.mjs +21 -0
  198. package/dist/runtime/nativeComponents/video/helpers.mjs.map +1 -0
  199. package/dist/runtime/nativeComponents/video/index.mjs +124 -0
  200. package/dist/runtime/nativeComponents/video/index.mjs.map +1 -0
  201. package/dist/runtime/nativeComponents/video/style.mjs +14 -0
  202. package/dist/runtime/nativeComponents/video/style.mjs.map +1 -0
  203. package/dist/runtime/navigationBar/index.mjs +1 -3
  204. package/dist/runtime/navigationBar/index.mjs.map +1 -1
  205. package/dist/runtime/pageLayout.d.mts +9 -0
  206. package/dist/runtime/pageLayout.mjs +16 -0
  207. package/dist/runtime/pageLayout.mjs.map +1 -0
  208. package/dist/runtime/polyfill/animation.mjs +120 -0
  209. package/dist/runtime/polyfill/animation.mjs.map +1 -0
  210. package/dist/runtime/polyfill/appState.mjs +1 -1
  211. package/dist/runtime/polyfill/appState.mjs.map +1 -1
  212. package/dist/runtime/polyfill/async.d.mts +7 -0
  213. package/dist/runtime/polyfill/async.mjs.map +1 -1
  214. package/dist/runtime/polyfill/canvasContext.mjs +41 -0
  215. package/dist/runtime/polyfill/canvasContext.mjs.map +1 -1
  216. package/dist/runtime/polyfill/device.mjs +1 -1
  217. package/dist/runtime/polyfill/device.mjs.map +1 -1
  218. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +8 -2
  219. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs.map +1 -1
  220. package/dist/runtime/polyfill/eventBus.mjs +56 -0
  221. package/dist/runtime/polyfill/eventBus.mjs.map +1 -0
  222. package/dist/runtime/polyfill/fileSystemManager.mjs +5 -2
  223. package/dist/runtime/polyfill/fileSystemManager.mjs.map +1 -1
  224. package/dist/runtime/polyfill/files.mjs +10 -10
  225. package/dist/runtime/polyfill/files.mjs.map +1 -1
  226. package/dist/runtime/polyfill/font.mjs +32 -0
  227. package/dist/runtime/polyfill/font.mjs.map +1 -0
  228. package/dist/runtime/polyfill/index.d.mts +2 -2
  229. package/dist/runtime/polyfill/index.mjs +49 -45
  230. package/dist/runtime/polyfill/index.mjs.map +1 -1
  231. package/dist/runtime/polyfill/interaction.mjs +7 -6
  232. package/dist/runtime/polyfill/interaction.mjs.map +1 -1
  233. package/dist/runtime/polyfill/interactionApi.mjs +3 -2
  234. package/dist/runtime/polyfill/interactionApi.mjs.map +1 -1
  235. package/dist/runtime/polyfill/intersectionObserver.mjs +106 -0
  236. package/dist/runtime/polyfill/intersectionObserver.mjs.map +1 -0
  237. package/dist/runtime/polyfill/locale.mjs +14 -0
  238. package/dist/runtime/polyfill/locale.mjs.map +1 -0
  239. package/dist/runtime/polyfill/locationApi.mjs +7 -4
  240. package/dist/runtime/polyfill/locationApi.mjs.map +1 -1
  241. package/dist/runtime/polyfill/mediaActions.mjs +2 -2
  242. package/dist/runtime/polyfill/mediaActions.mjs.map +1 -1
  243. package/dist/runtime/polyfill/mediaApi/file.mjs +1 -1
  244. package/dist/runtime/polyfill/mediaApi/info.mjs +6 -4
  245. package/dist/runtime/polyfill/mediaApi/info.mjs.map +1 -1
  246. package/dist/runtime/polyfill/menuApi.mjs +38 -4
  247. package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
  248. package/dist/runtime/polyfill/navigationBarRuntime.mjs +6 -1
  249. package/dist/runtime/polyfill/navigationBarRuntime.mjs.map +1 -1
  250. package/dist/runtime/polyfill/network/request.mjs +2 -2
  251. package/dist/runtime/polyfill/network/request.mjs.map +1 -1
  252. package/dist/runtime/polyfill/platformApi.mjs +1 -1
  253. package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs +88 -0
  254. package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs.map +1 -0
  255. package/dist/runtime/polyfill/routeRuntime/dom.mjs +44 -15
  256. package/dist/runtime/polyfill/routeRuntime/dom.mjs.map +1 -1
  257. package/dist/runtime/polyfill/routeRuntime/history.d.mts +30 -0
  258. package/dist/runtime/polyfill/routeRuntime/history.mjs +148 -0
  259. package/dist/runtime/polyfill/routeRuntime/history.mjs.map +1 -0
  260. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +39 -8
  261. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs.map +1 -1
  262. package/dist/runtime/polyfill/routeRuntime/options.d.mts +11 -1
  263. package/dist/runtime/polyfill/routeRuntime/options.mjs +0 -1
  264. package/dist/runtime/polyfill/routeRuntime/options.mjs.map +1 -1
  265. package/dist/runtime/polyfill/routeRuntime/result.mjs +12 -0
  266. package/dist/runtime/polyfill/routeRuntime/result.mjs.map +1 -0
  267. package/dist/runtime/polyfill/routeRuntime/scroll.mjs +39 -0
  268. package/dist/runtime/polyfill/routeRuntime/scroll.mjs.map +1 -0
  269. package/dist/runtime/polyfill/routeRuntime/stack.mjs +122 -0
  270. package/dist/runtime/polyfill/routeRuntime/stack.mjs.map +1 -0
  271. package/dist/runtime/polyfill/routeRuntime.d.mts +26 -17
  272. package/dist/runtime/polyfill/routeRuntime.mjs +121 -96
  273. package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
  274. package/dist/runtime/polyfill/runtimeDataApi.mjs +8 -3
  275. package/dist/runtime/polyfill/runtimeDataApi.mjs.map +1 -1
  276. package/dist/runtime/polyfill/runtimeOps.mjs +10 -6
  277. package/dist/runtime/polyfill/runtimeOps.mjs.map +1 -1
  278. package/dist/runtime/polyfill/selectorQuery.mjs +70 -14
  279. package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
  280. package/dist/runtime/polyfill/storage.mjs +5 -2
  281. package/dist/runtime/polyfill/storage.mjs.map +1 -1
  282. package/dist/runtime/polyfill/system.mjs +30 -3
  283. package/dist/runtime/polyfill/system.mjs.map +1 -1
  284. package/dist/runtime/polyfill/types/locationRuntime.d.mts +1 -4
  285. package/dist/runtime/polyfill/types/platformRuntime.d.mts +9 -0
  286. package/dist/runtime/polyfill/types/systemAuth.d.mts +20 -9
  287. package/dist/runtime/polyfill/types/tabBarRuntime.d.mts +25 -0
  288. package/dist/runtime/polyfill/ui.mjs +2 -6
  289. package/dist/runtime/polyfill/ui.mjs.map +1 -1
  290. package/dist/runtime/polyfill/uiMediaApi.d.mts +11 -10
  291. package/dist/runtime/polyfill/uiMediaApi.mjs +26 -2
  292. package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
  293. package/dist/runtime/polyfill/videoContext.mjs +4 -0
  294. package/dist/runtime/polyfill/videoContext.mjs.map +1 -1
  295. package/dist/runtime/polyfill/vkSession.mjs +4 -14
  296. package/dist/runtime/polyfill/vkSession.mjs.map +1 -1
  297. package/dist/runtime/polyfill.d.mts +2 -2
  298. package/dist/runtime/renderContext.mjs +1 -1
  299. package/dist/runtime/renderContext.mjs.map +1 -1
  300. package/dist/runtime/rpx.mjs +17 -8
  301. package/dist/runtime/rpx.mjs.map +1 -1
  302. package/dist/runtime/seo/index.d.mts +31 -0
  303. package/dist/runtime/seo/index.mjs +94 -0
  304. package/dist/runtime/seo/index.mjs.map +1 -0
  305. package/dist/runtime/viewport/index.d.mts +12 -0
  306. package/dist/runtime/viewport/index.mjs +44 -0
  307. package/dist/runtime/viewport/index.mjs.map +1 -0
  308. package/dist/runtime/viewport/style.mjs +62 -0
  309. package/dist/runtime/viewport/style.mjs.map +1 -0
  310. package/dist/runtime/viewport/types.d.mts +14 -0
  311. package/dist/runtime/wevu.d.mts +20 -0
  312. package/dist/runtime/wevu.mjs +73 -0
  313. package/dist/runtime/wevu.mjs.map +1 -0
  314. package/dist/shared/nativeComponents.mjs +401 -0
  315. package/dist/shared/nativeComponents.mjs.map +1 -0
  316. package/dist/shared/tabBar.d.mts +19 -0
  317. package/dist/shared/tabBar.mjs +37 -0
  318. package/dist/shared/tabBar.mjs.map +1 -0
  319. package/dist/shared/wxml.mjs +3 -20
  320. package/dist/shared/wxml.mjs.map +1 -1
  321. package/package.json +13 -5
@@ -1,93 +1,114 @@
1
1
  import { slugify } from "../../shared/slugify.mjs";
2
- import { ensureButtonDefined, setButtonFormConfig } from "../button/index.mjs";
3
2
  import { setRuntimeWarningOptions } from "../warning.mjs";
3
+ import { setButtonFormConfig } from "../button/index.mjs";
4
4
  import { setRuntimeExecutionMode } from "../execution.mjs";
5
5
  import { defineComponent } from "../component/index.mjs";
6
+ import { configureTabBar, getTabBarPagePaths, syncTabBarRoute } from "../appShell/tabBar/index.mjs";
6
7
  import { ensureNavigationBarDefined, setNavigationBarMetrics } from "../navigationBar/index.mjs";
8
+ import { setupWebViewport } from "../viewport/index.mjs";
7
9
  import { setupRpx } from "../rpx.mjs";
8
- import { cloneLaunchOptions, resolveCurrentPages, resolveFallbackLaunchOptions } from "./appState.mjs";
10
+ import { configureWebSeo, setupWebResourceHints, syncWebDocumentHead } from "../seo/index.mjs";
11
+ import { resolveCurrentPages } from "./appState.mjs";
12
+ import { normalizeComponentOptions, normalizePageOptions } from "./routeRuntime/options.mjs";
13
+ import { AppLifecycleRuntime } from "./routeRuntime/appLifecycle.mjs";
14
+ import { configureWebRouting, getWebHistoryStack, readWebRouteTarget, syncWebRouting } from "./routeRuntime/history.mjs";
9
15
  import { augmentPageComponentOptions, dispatchPageLifetimeToComponents } from "./routeRuntime/lifecycle.mjs";
10
- import { mountEntryToDom } from "./routeRuntime/dom.mjs";
11
- import { isRecord, normalizeComponentOptions, normalizePageOptions } from "./routeRuntime/options.mjs";
16
+ import { resolveRouteAction } from "./routeRuntime/result.mjs";
17
+ import { PageStackRuntime } from "./routeRuntime/stack.mjs";
12
18
  import { parsePageUrl } from "./routeRuntime/url.mjs";
19
+ import { ensureNativeComponentsDefined } from "../nativeComponents/index.mjs";
13
20
 
14
21
  //#region src/runtime/polyfill/routeRuntime.ts
15
22
  const pageRegistry = /* @__PURE__ */ new Map();
16
23
  const componentRegistry = /* @__PURE__ */ new Map();
17
- const navigationHistory = [];
18
24
  let pageOrder = [];
19
- let appInstance;
20
- let appLaunched = false;
21
- let lastLaunchOptions;
22
25
  let pageResizeBridgeBound = false;
26
+ let pageStack;
27
+ const appLifecycle = new AppLifecycleRuntime(() => pageStack?.entries[pageStack.entries.length - 1]);
28
+ pageStack = new PageStackRuntime(pageRegistry, (entry) => appLifecycle.ensureLaunched(entry));
29
+ function syncCurrentWebDocument() {
30
+ const current = pageStack.entries[pageStack.entries.length - 1];
31
+ syncWebDocumentHead({
32
+ route: current?.id,
33
+ title: current ? pageRegistry.get(current.id)?.navigationBar?.title : void 0
34
+ });
35
+ }
36
+ function syncCurrentWebRoute(operation) {
37
+ syncWebRouting(pageStack.entries, operation);
38
+ syncCurrentWebDocument();
39
+ }
40
+ function reconcileWebRoute(target, state) {
41
+ const currentIds = pageStack.entries.map((entry) => entry.id);
42
+ const historyStack = getWebHistoryStack(state);
43
+ if (historyStack?.length) {
44
+ const desiredIds = historyStack.map((entry) => entry.id);
45
+ const sharedLength = Math.min(desiredIds.length, currentIds.length);
46
+ const samePrefix = desiredIds.slice(0, sharedLength).every((id, index) => currentIds[index] === id);
47
+ if (samePrefix && desiredIds.length < currentIds.length) pageStack.back(currentIds.length - desiredIds.length);
48
+ else if (samePrefix && desiredIds.length > currentIds.length) for (const entry of historyStack.slice(currentIds.length)) pageStack.push(entry.id, { ...entry.query });
49
+ else {
50
+ const last = historyStack[historyStack.length - 1];
51
+ pageStack.relaunch(last.id, { ...last.query });
52
+ }
53
+ syncTabBarRoute(pageStack.entries[pageStack.entries.length - 1]?.id ?? "");
54
+ syncCurrentWebDocument();
55
+ return;
56
+ }
57
+ if (target && pageRegistry.has(target.id)) {
58
+ pageStack.relaunch(target.id, { ...target.query });
59
+ syncTabBarRoute(target.id);
60
+ syncCurrentWebDocument();
61
+ }
62
+ }
63
+ function performSwitchTab(options) {
64
+ const { id, query } = parsePageUrl(options?.url ?? "");
65
+ const succeeded = pageStack.switchTab(id, query);
66
+ if (succeeded) {
67
+ syncTabBarRoute(id);
68
+ syncCurrentWebRoute("push");
69
+ }
70
+ return resolveRouteAction("switchTab", options, succeeded, "not a tabBar page");
71
+ }
23
72
  function bindPageResizeBridge() {
24
73
  if (pageResizeBridgeBound || typeof window === "undefined") return;
25
74
  if (typeof window.addEventListener !== "function") return;
26
75
  pageResizeBridgeBound = true;
27
76
  window.addEventListener("resize", () => {
28
- const pages = getCurrentPagesInternal();
77
+ const pages = resolveCurrentPages(pageStack.entries);
29
78
  const current = pages[pages.length - 1];
30
79
  if (!current) return;
31
80
  dispatchPageLifetimeToComponents(current, "resize");
32
81
  });
33
82
  }
34
- function ensureAppLaunched(entry) {
35
- if (!appInstance || appLaunched) return;
36
- const launchOptions = {
37
- path: entry.id,
38
- scene: 0,
39
- query: entry.query,
40
- referrerInfo: {}
41
- };
42
- lastLaunchOptions = {
43
- path: launchOptions.path,
44
- scene: launchOptions.scene,
45
- query: { ...launchOptions.query },
46
- referrerInfo: { ...launchOptions.referrerInfo }
47
- };
48
- if (typeof appInstance.onLaunch === "function") appInstance.onLaunch(launchOptions);
49
- if (typeof appInstance.onShow === "function") appInstance.onShow(launchOptions);
50
- appLaunched = true;
51
- }
52
- function mountEntry(entry) {
53
- mountEntryToDom(entry, pageRegistry, ensureAppLaunched);
54
- }
55
- function pushEntry(id, query) {
56
- if (!pageRegistry.has(id)) return;
57
- const entry = {
58
- id,
59
- query
60
- };
61
- navigationHistory.push(entry);
62
- mountEntry(entry);
63
- }
64
- function replaceEntry(id, query) {
65
- if (!pageRegistry.has(id)) return;
66
- const entry = {
67
- id,
68
- query
69
- };
70
- if (navigationHistory.length) navigationHistory[navigationHistory.length - 1] = entry;
71
- else navigationHistory.push(entry);
72
- mountEntry(entry);
73
- }
74
- function relaunchEntry(id, query) {
75
- navigationHistory.length = 0;
76
- pushEntry(id, query);
77
- }
78
83
  function initializePageRoutes(ids, options) {
79
84
  setRuntimeExecutionMode(options?.runtime?.executionMode);
80
85
  setRuntimeWarningOptions(options?.runtime?.warnings);
86
+ setupWebViewport(options?.runtime?.viewport);
87
+ configureWebSeo(options?.runtime?.seo);
88
+ setupWebResourceHints(options?.runtime?.resourceHints);
89
+ configureWebRouting(options?.runtime?.routing, ids, reconcileWebRoute);
90
+ appLifecycle.bindVisibility();
91
+ ensureNativeComponentsDefined();
81
92
  pageOrder = Array.from(new Set(ids));
93
+ configureTabBar(options?.tabBar, (url) => performSwitchTab({ url }));
94
+ pageStack.configureTabPages(getTabBarPagePaths());
82
95
  if (!pageOrder.length) return;
83
96
  bindPageResizeBridge();
84
97
  if (options?.rpx) setupRpx(options.rpx);
85
98
  if (options?.navigationBar) setNavigationBarMetrics(options.navigationBar);
86
99
  if (options?.form) setButtonFormConfig(options.form);
87
- if (!navigationHistory.length) pushEntry(pageOrder[0], {});
100
+ if (!pageStack.entries.length) {
101
+ const initialTarget = readWebRouteTarget(pageOrder);
102
+ const initialId = initialTarget?.id ?? pageOrder[0];
103
+ const initialQuery = initialTarget?.query ?? {};
104
+ if (pageStack.push(initialId, initialQuery)) {
105
+ syncTabBarRoute(initialId);
106
+ syncCurrentWebRoute("replace");
107
+ }
108
+ }
88
109
  }
89
110
  function registerPage(options, meta) {
90
- ensureButtonDefined();
111
+ ensureNativeComponentsDefined();
91
112
  ensureNavigationBarDefined();
92
113
  const tag = slugify(meta.id, "wv-page");
93
114
  const template = meta.template ?? (() => "");
@@ -95,8 +116,10 @@ function registerPage(options, meta) {
95
116
  const existing = pageRegistry.get(meta.id);
96
117
  if (existing) {
97
118
  existing.hooks = normalized.hooks;
119
+ existing.navigationBar = meta.navigationBar;
98
120
  const component = augmentPageComponentOptions(normalized.component, existing);
99
121
  defineComponent(tag, {
122
+ id: meta.id,
100
123
  template,
101
124
  style: meta.style,
102
125
  component
@@ -106,10 +129,12 @@ function registerPage(options, meta) {
106
129
  const record = {
107
130
  tag,
108
131
  hooks: normalized.hooks,
109
- instances: /* @__PURE__ */ new Set()
132
+ instances: /* @__PURE__ */ new Set(),
133
+ navigationBar: meta.navigationBar
110
134
  };
111
135
  const component = augmentPageComponentOptions(normalized.component, record);
112
136
  defineComponent(tag, {
137
+ id: meta.id,
113
138
  template,
114
139
  style: meta.style,
115
140
  component
@@ -117,13 +142,17 @@ function registerPage(options, meta) {
117
142
  pageRegistry.set(meta.id, record);
118
143
  return options;
119
144
  }
145
+ function getCurrentPageInstance() {
146
+ return pageStack.entries[pageStack.entries.length - 1]?.instance;
147
+ }
120
148
  function registerComponent(options, meta) {
121
- ensureButtonDefined();
149
+ ensureNativeComponentsDefined();
122
150
  const tag = slugify(meta.id, "wv-component");
123
151
  const template = meta.template ?? (() => "");
124
152
  const component = normalizeComponentOptions(options);
125
153
  if (componentRegistry.has(meta.id)) {
126
154
  defineComponent(tag, {
155
+ id: meta.id,
127
156
  template,
128
157
  style: meta.style,
129
158
  component
@@ -131,6 +160,7 @@ function registerComponent(options, meta) {
131
160
  return options;
132
161
  }
133
162
  defineComponent(tag, {
163
+ id: meta.id,
134
164
  template,
135
165
  style: meta.style,
136
166
  component
@@ -139,64 +169,59 @@ function registerComponent(options, meta) {
139
169
  return options;
140
170
  }
141
171
  function registerApp(options, _meta) {
142
- const resolved = options ?? {};
143
- if (appInstance) {
144
- const currentGlobal = appInstance.globalData;
145
- Object.assign(appInstance, resolved);
146
- if (isRecord(currentGlobal)) appInstance.globalData = currentGlobal;
147
- else if (!isRecord(appInstance.globalData)) appInstance.globalData = {};
148
- return options;
149
- }
150
- appInstance = resolved;
151
- appLaunched = false;
152
- lastLaunchOptions = void 0;
153
- if (!isRecord(appInstance.globalData)) appInstance.globalData = {};
154
- return options;
172
+ return appLifecycle.register(options);
155
173
  }
156
174
  function navigateTo(options) {
157
- if (!options?.url) return Promise.resolve();
158
- const { id, query } = parsePageUrl(options.url);
159
- pushEntry(id, query);
160
- return Promise.resolve();
175
+ const { id, query } = parsePageUrl(options?.url ?? "");
176
+ const succeeded = pageStack.push(id, query);
177
+ if (succeeded) {
178
+ syncTabBarRoute(id);
179
+ syncCurrentWebRoute("push");
180
+ }
181
+ return resolveRouteAction("navigateTo", options, succeeded);
161
182
  }
162
183
  function redirectTo(options) {
163
- if (!options?.url) return Promise.resolve();
164
- const { id, query } = parsePageUrl(options.url);
165
- replaceEntry(id, query);
166
- return Promise.resolve();
184
+ const { id, query } = parsePageUrl(options?.url ?? "");
185
+ const succeeded = pageStack.replace(id, query);
186
+ if (succeeded) {
187
+ syncTabBarRoute(id);
188
+ syncCurrentWebRoute("replace");
189
+ }
190
+ return resolveRouteAction("redirectTo", options, succeeded);
167
191
  }
168
192
  function reLaunch(options) {
169
- if (!options?.url) return Promise.resolve();
170
- const { id, query } = parsePageUrl(options.url);
171
- relaunchEntry(id, query);
172
- return Promise.resolve();
193
+ const { id, query } = parsePageUrl(options?.url ?? "");
194
+ const succeeded = pageStack.relaunch(id, query);
195
+ if (succeeded) {
196
+ syncTabBarRoute(id);
197
+ syncCurrentWebRoute("replace");
198
+ }
199
+ return resolveRouteAction("reLaunch", options, succeeded);
173
200
  }
174
201
  function switchTab(options) {
175
- return redirectTo(options);
202
+ return performSwitchTab(options);
176
203
  }
177
204
  function navigateBack(options) {
178
- if (navigationHistory.length <= 1) return Promise.resolve();
179
- const delta = Math.max(1, options?.delta ?? 1);
180
- const targetIndex = Math.max(0, navigationHistory.length - 1 - delta);
181
- const target = navigationHistory[targetIndex];
182
- navigationHistory.length = targetIndex;
183
- pushEntry(target.id, target.query);
184
- return Promise.resolve();
205
+ const succeeded = pageStack.back(options?.delta);
206
+ if (succeeded) {
207
+ syncTabBarRoute(pageStack.entries[pageStack.entries.length - 1]?.id ?? "");
208
+ syncCurrentWebRoute("replace");
209
+ }
210
+ return resolveRouteAction("navigateBack", options, succeeded);
185
211
  }
186
212
  function getCurrentPagesInternal() {
187
- return resolveCurrentPages(navigationHistory);
213
+ return resolveCurrentPages(pageStack.entries);
188
214
  }
189
215
  function getAppInstance() {
190
- return appInstance;
216
+ return appLifecycle.instance;
191
217
  }
192
218
  function getLaunchOptionsSync() {
193
- if (lastLaunchOptions) return cloneLaunchOptions(lastLaunchOptions);
194
- return resolveFallbackLaunchOptions(navigationHistory);
219
+ return appLifecycle.getLaunchOptions();
195
220
  }
196
221
  function getEnterOptionsSync() {
197
- return getLaunchOptionsSync();
222
+ return appLifecycle.getEnterOptions();
198
223
  }
199
224
 
200
225
  //#endregion
201
- export { getAppInstance, getCurrentPagesInternal, getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab };
226
+ export { getAppInstance, getCurrentPageInstance, getCurrentPagesInternal, getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab };
202
227
  //# sourceMappingURL=routeRuntime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"routeRuntime.mjs","names":[],"sources":["../../../src/runtime/polyfill/routeRuntime.ts"],"sourcesContent":["import type { ButtonFormConfig } from '../button'\nimport type { ComponentPublicInstance } from '../component'\nimport type { NavigationBarMetrics } from '../navigationBar'\nimport type { AppLaunchOptions, AppRuntime, ComponentRawOptions, ComponentRecord, PageRawOptions, PageRecord, PageStackEntry, RegisterMeta } from './routeRuntime/options'\nimport { slugify } from '../../shared/slugify'\nimport { ensureButtonDefined, setButtonFormConfig } from '../button'\nimport { defineComponent } from '../component'\nimport { setRuntimeExecutionMode } from '../execution'\nimport { ensureNavigationBarDefined, setNavigationBarMetrics } from '../navigationBar'\nimport { setupRpx } from '../rpx'\nimport { setRuntimeWarningOptions } from '../warning'\nimport {\n cloneLaunchOptions,\n resolveCurrentPages,\n resolveFallbackLaunchOptions,\n} from './appState'\nimport { mountEntryToDom } from './routeRuntime/dom'\nimport {\n augmentPageComponentOptions,\n dispatchPageLifetimeToComponents,\n} from './routeRuntime/lifecycle'\nimport {\n\n isRecord,\n normalizeComponentOptions,\n normalizePageOptions,\n} from './routeRuntime/options'\nimport { parsePageUrl } from './routeRuntime/url'\n\nconst pageRegistry = new Map<string, PageRecord>()\nconst componentRegistry = new Map<string, ComponentRecord>()\nconst navigationHistory: PageStackEntry[] = []\nlet pageOrder: string[] = []\nlet appInstance: AppRuntime | undefined\nlet appLaunched = false\nlet lastLaunchOptions: AppLaunchOptions | undefined\nlet pageResizeBridgeBound = false\n\nfunction bindPageResizeBridge() {\n if (pageResizeBridgeBound || typeof window === 'undefined') {\n return\n }\n if (typeof window.addEventListener !== 'function') {\n return\n }\n pageResizeBridgeBound = true\n window.addEventListener('resize', () => {\n const pages = getCurrentPagesInternal()\n const current = pages[pages.length - 1]\n if (!current) {\n return\n }\n dispatchPageLifetimeToComponents(current, 'resize')\n })\n}\n\nfunction ensureAppLaunched(entry: PageStackEntry) {\n if (!appInstance || appLaunched) {\n return\n }\n const launchOptions: AppLaunchOptions = {\n path: entry.id,\n scene: 0,\n query: entry.query,\n referrerInfo: {},\n }\n lastLaunchOptions = {\n path: launchOptions.path,\n scene: launchOptions.scene,\n query: { ...launchOptions.query },\n referrerInfo: { ...launchOptions.referrerInfo },\n }\n if (typeof appInstance.onLaunch === 'function') {\n appInstance.onLaunch(launchOptions)\n }\n if (typeof appInstance.onShow === 'function') {\n appInstance.onShow(launchOptions)\n }\n appLaunched = true\n}\n\nfunction mountEntry(entry: PageStackEntry) {\n mountEntryToDom(entry, pageRegistry, ensureAppLaunched)\n}\n\nfunction pushEntry(id: string, query: Record<string, string>) {\n if (!pageRegistry.has(id)) {\n return\n }\n const entry: PageStackEntry = { id, query }\n navigationHistory.push(entry)\n mountEntry(entry)\n}\n\nfunction replaceEntry(id: string, query: Record<string, string>) {\n if (!pageRegistry.has(id)) {\n return\n }\n const entry: PageStackEntry = { id, query }\n if (navigationHistory.length) {\n navigationHistory[navigationHistory.length - 1] = entry\n }\n else {\n navigationHistory.push(entry)\n }\n mountEntry(entry)\n}\n\nfunction relaunchEntry(id: string, query: Record<string, string>) {\n navigationHistory.length = 0\n pushEntry(id, query)\n}\n\nexport function initializePageRoutes(\n ids: string[],\n options?: {\n rpx?: { designWidth?: number, varName?: string }\n navigationBar?: NavigationBarMetrics\n form?: ButtonFormConfig\n runtime?: {\n executionMode?: 'compat' | 'safe' | 'strict'\n warnings?: {\n level?: 'off' | 'warn' | 'error'\n dedupe?: boolean\n }\n }\n },\n) {\n setRuntimeExecutionMode(options?.runtime?.executionMode)\n setRuntimeWarningOptions(options?.runtime?.warnings)\n pageOrder = Array.from(new Set(ids))\n if (!pageOrder.length) {\n return\n }\n bindPageResizeBridge()\n if (options?.rpx) {\n setupRpx(options.rpx)\n }\n if (options?.navigationBar) {\n setNavigationBarMetrics(options.navigationBar)\n }\n if (options?.form) {\n setButtonFormConfig(options.form)\n }\n if (!navigationHistory.length) {\n pushEntry(pageOrder[0], {})\n }\n}\n\nexport function registerPage<T extends PageRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureButtonDefined()\n ensureNavigationBarDefined()\n const tag = slugify(meta.id, 'wv-page')\n const template = meta.template ?? (() => '')\n const normalized = normalizePageOptions(options)\n const existing = pageRegistry.get(meta.id)\n if (existing) {\n existing.hooks = normalized.hooks\n const component = augmentPageComponentOptions(normalized.component, existing)\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n return options\n }\n const record: PageRecord = {\n tag,\n hooks: normalized.hooks,\n instances: new Set(),\n }\n const component = augmentPageComponentOptions(normalized.component, record)\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n pageRegistry.set(meta.id, record)\n return options\n}\n\nexport function registerComponent<T extends ComponentRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureButtonDefined()\n const tag = slugify(meta.id, 'wv-component')\n const template = meta.template ?? (() => '')\n const component = normalizeComponentOptions(options)\n if (componentRegistry.has(meta.id)) {\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n return options\n }\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n componentRegistry.set(meta.id, { tag })\n return options\n}\n\nexport function registerApp<T extends AppRuntime | undefined>(options: T, _meta?: RegisterMeta): T {\n const resolved = (options ?? {}) as AppRuntime\n if (appInstance) {\n const currentGlobal = appInstance.globalData\n Object.assign(appInstance, resolved)\n if (isRecord(currentGlobal)) {\n appInstance.globalData = currentGlobal\n }\n else if (!isRecord(appInstance.globalData)) {\n appInstance.globalData = {}\n }\n return options\n }\n appInstance = resolved\n appLaunched = false\n lastLaunchOptions = undefined\n if (!isRecord(appInstance.globalData)) {\n appInstance.globalData = {}\n }\n return options\n}\n\nexport function navigateTo(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n pushEntry(id, query)\n return Promise.resolve()\n}\n\nexport function redirectTo(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n replaceEntry(id, query)\n return Promise.resolve()\n}\n\nexport function reLaunch(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n relaunchEntry(id, query)\n return Promise.resolve()\n}\n\nexport function switchTab(options: { url: string }) {\n return redirectTo(options)\n}\n\nexport function navigateBack(options?: { delta?: number }) {\n if (navigationHistory.length <= 1) {\n return Promise.resolve()\n }\n const delta = Math.max(1, options?.delta ?? 1)\n const targetIndex = Math.max(0, navigationHistory.length - 1 - delta)\n const target = navigationHistory[targetIndex]\n navigationHistory.length = targetIndex\n pushEntry(target.id, target.query)\n return Promise.resolve()\n}\n\nexport function getCurrentPagesInternal() {\n return resolveCurrentPages<ComponentPublicInstance>(navigationHistory)\n}\n\nexport function getAppInstance() {\n return appInstance\n}\n\nexport function getLaunchOptionsSync(): AppLaunchOptions {\n if (lastLaunchOptions) {\n return cloneLaunchOptions(lastLaunchOptions)\n }\n return resolveFallbackLaunchOptions(navigationHistory)\n}\n\nexport function getEnterOptionsSync(): AppLaunchOptions {\n return getLaunchOptionsSync()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"routeRuntime.mjs","names":[],"sources":["../../../src/runtime/polyfill/routeRuntime.ts"],"sourcesContent":["import type { WebTabBarConfig } from '../../shared/tabBar'\nimport type { ButtonFormConfig } from '../button'\nimport type { ComponentPublicInstance } from '../component'\nimport type { NavigationBarMetrics } from '../navigationBar'\nimport type { WebResourceHintsConfig, WebSeoConfig } from '../seo'\nimport type { WebViewportConfig } from '../viewport'\nimport type { WebRouteHistoryState, WebRouteTarget, WebRoutingConfig } from './routeRuntime/history'\nimport type { AppRuntime, ComponentRawOptions, ComponentRecord, NavigateBackOptions, PageRawOptions, PageRecord, RegisterMeta, RouteOptions } from './routeRuntime/options'\nimport { slugify } from '../../shared/slugify'\nimport {\n configureTabBar,\n getTabBarPagePaths,\n syncTabBarRoute,\n} from '../appShell/tabBar'\nimport { setButtonFormConfig } from '../button'\nimport { defineComponent } from '../component'\nimport { setRuntimeExecutionMode } from '../execution'\nimport { ensureNativeComponentsDefined } from '../nativeComponents'\nimport { ensureNavigationBarDefined, setNavigationBarMetrics } from '../navigationBar'\nimport { setupRpx } from '../rpx'\nimport { configureWebSeo, setupWebResourceHints, syncWebDocumentHead } from '../seo'\nimport { setupWebViewport } from '../viewport'\nimport { setRuntimeWarningOptions } from '../warning'\nimport { resolveCurrentPages } from './appState'\nimport { AppLifecycleRuntime } from './routeRuntime/appLifecycle'\nimport {\n configureWebRouting,\n getWebHistoryStack,\n readWebRouteTarget,\n syncWebRouting,\n} from './routeRuntime/history'\nimport {\n augmentPageComponentOptions,\n dispatchPageLifetimeToComponents,\n} from './routeRuntime/lifecycle'\nimport {\n normalizeComponentOptions,\n normalizePageOptions,\n} from './routeRuntime/options'\nimport { resolveRouteAction } from './routeRuntime/result'\nimport { PageStackRuntime } from './routeRuntime/stack'\nimport { parsePageUrl } from './routeRuntime/url'\n\nconst pageRegistry = new Map<string, PageRecord>()\nconst componentRegistry = new Map<string, ComponentRecord>()\nlet pageOrder: string[] = []\nlet pageResizeBridgeBound = false\n\nlet pageStack: PageStackRuntime\nconst appLifecycle = new AppLifecycleRuntime(\n () => pageStack?.entries[pageStack.entries.length - 1],\n)\npageStack = new PageStackRuntime(pageRegistry, entry => appLifecycle.ensureLaunched(entry))\n\nfunction syncCurrentWebDocument() {\n const current = pageStack.entries[pageStack.entries.length - 1]\n syncWebDocumentHead({\n route: current?.id,\n title: current ? pageRegistry.get(current.id)?.navigationBar?.title : undefined,\n })\n}\n\nfunction syncCurrentWebRoute(operation: 'push' | 'replace') {\n syncWebRouting(pageStack.entries, operation)\n syncCurrentWebDocument()\n}\n\nfunction reconcileWebRoute(target: WebRouteTarget | undefined, state: WebRouteHistoryState | undefined) {\n const currentIds = pageStack.entries.map(entry => entry.id)\n const historyStack = getWebHistoryStack(state)\n if (historyStack?.length) {\n const desiredIds = historyStack.map(entry => entry.id)\n const sharedLength = Math.min(desiredIds.length, currentIds.length)\n const samePrefix = desiredIds\n .slice(0, sharedLength)\n .every((id, index) => currentIds[index] === id)\n if (samePrefix && desiredIds.length < currentIds.length) {\n pageStack.back(currentIds.length - desiredIds.length)\n }\n else if (samePrefix && desiredIds.length > currentIds.length) {\n for (const entry of historyStack.slice(currentIds.length)) {\n pageStack.push(entry.id, { ...entry.query })\n }\n }\n else {\n const last = historyStack[historyStack.length - 1]!\n pageStack.relaunch(last.id, { ...last.query })\n }\n syncTabBarRoute(pageStack.entries[pageStack.entries.length - 1]?.id ?? '')\n syncCurrentWebDocument()\n return\n }\n if (target && pageRegistry.has(target.id)) {\n pageStack.relaunch(target.id, { ...target.query })\n syncTabBarRoute(target.id)\n syncCurrentWebDocument()\n }\n}\n\nfunction performSwitchTab(options: RouteOptions) {\n const { id, query } = parsePageUrl(options?.url ?? '')\n const succeeded = pageStack.switchTab(id, query)\n if (succeeded) {\n syncTabBarRoute(id)\n syncCurrentWebRoute('push')\n }\n return resolveRouteAction('switchTab', options, succeeded, 'not a tabBar page')\n}\n\nfunction bindPageResizeBridge() {\n if (pageResizeBridgeBound || typeof window === 'undefined') {\n return\n }\n if (typeof window.addEventListener !== 'function') {\n return\n }\n pageResizeBridgeBound = true\n window.addEventListener('resize', () => {\n const pages = resolveCurrentPages<ComponentPublicInstance>(pageStack.entries)\n const current = pages[pages.length - 1]\n if (!current) {\n return\n }\n dispatchPageLifetimeToComponents(current, 'resize')\n })\n}\n\nexport function initializePageRoutes(\n ids: string[],\n options?: {\n rpx?: { designWidth?: number, varName?: string }\n navigationBar?: NavigationBarMetrics\n form?: ButtonFormConfig\n tabBar?: WebTabBarConfig\n runtime?: {\n executionMode?: 'compat' | 'safe' | 'strict'\n warnings?: {\n level?: 'off' | 'warn' | 'error'\n dedupe?: boolean\n }\n viewport?: WebViewportConfig\n routing?: WebRoutingConfig\n seo?: WebSeoConfig\n resourceHints?: WebResourceHintsConfig\n }\n },\n) {\n setRuntimeExecutionMode(options?.runtime?.executionMode)\n setRuntimeWarningOptions(options?.runtime?.warnings)\n setupWebViewport(options?.runtime?.viewport)\n configureWebSeo(options?.runtime?.seo)\n setupWebResourceHints(options?.runtime?.resourceHints)\n configureWebRouting(options?.runtime?.routing, ids, reconcileWebRoute)\n appLifecycle.bindVisibility()\n ensureNativeComponentsDefined()\n pageOrder = Array.from(new Set(ids))\n configureTabBar(options?.tabBar, url => performSwitchTab({ url }))\n pageStack.configureTabPages(getTabBarPagePaths())\n if (!pageOrder.length) {\n return\n }\n bindPageResizeBridge()\n if (options?.rpx) {\n setupRpx(options.rpx)\n }\n if (options?.navigationBar) {\n setNavigationBarMetrics(options.navigationBar)\n }\n if (options?.form) {\n setButtonFormConfig(options.form)\n }\n if (!pageStack.entries.length) {\n const initialTarget = readWebRouteTarget(pageOrder)\n const initialId = initialTarget?.id ?? pageOrder[0]\n const initialQuery = initialTarget?.query ?? {}\n if (pageStack.push(initialId, initialQuery)) {\n syncTabBarRoute(initialId)\n syncCurrentWebRoute('replace')\n }\n }\n}\n\nexport function registerPage<T extends PageRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureNativeComponentsDefined()\n ensureNavigationBarDefined()\n const tag = slugify(meta.id, 'wv-page')\n const template = meta.template ?? (() => '')\n const normalized = normalizePageOptions(options)\n const existing = pageRegistry.get(meta.id)\n if (existing) {\n existing.hooks = normalized.hooks\n existing.navigationBar = meta.navigationBar\n const component = augmentPageComponentOptions(normalized.component, existing)\n defineComponent(tag, {\n id: meta.id,\n template,\n style: meta.style,\n component,\n })\n return options\n }\n const record: PageRecord = {\n tag,\n hooks: normalized.hooks,\n instances: new Set(),\n navigationBar: meta.navigationBar,\n }\n const component = augmentPageComponentOptions(normalized.component, record)\n defineComponent(tag, {\n id: meta.id,\n template,\n style: meta.style,\n component,\n })\n pageRegistry.set(meta.id, record)\n return options\n}\n\nexport function getCurrentPageInstance(): ComponentPublicInstance | undefined {\n return pageStack.entries[pageStack.entries.length - 1]?.instance\n}\n\nexport function registerComponent<T extends ComponentRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureNativeComponentsDefined()\n const tag = slugify(meta.id, 'wv-component')\n const template = meta.template ?? (() => '')\n const component = normalizeComponentOptions(options)\n if (componentRegistry.has(meta.id)) {\n defineComponent(tag, {\n id: meta.id,\n template,\n style: meta.style,\n component,\n })\n return options\n }\n defineComponent(tag, {\n id: meta.id,\n template,\n style: meta.style,\n component,\n })\n componentRegistry.set(meta.id, { tag })\n return options\n}\n\nexport function registerApp<T extends AppRuntime | undefined>(options: T, _meta?: RegisterMeta): T {\n return appLifecycle.register(options)\n}\n\nexport function navigateTo(options: RouteOptions) {\n const { id, query } = parsePageUrl(options?.url ?? '')\n const succeeded = pageStack.push(id, query)\n if (succeeded) {\n syncTabBarRoute(id)\n syncCurrentWebRoute('push')\n }\n return resolveRouteAction('navigateTo', options, succeeded)\n}\n\nexport function redirectTo(options: RouteOptions) {\n const { id, query } = parsePageUrl(options?.url ?? '')\n const succeeded = pageStack.replace(id, query)\n if (succeeded) {\n syncTabBarRoute(id)\n syncCurrentWebRoute('replace')\n }\n return resolveRouteAction('redirectTo', options, succeeded)\n}\n\nexport function reLaunch(options: RouteOptions) {\n const { id, query } = parsePageUrl(options?.url ?? '')\n const succeeded = pageStack.relaunch(id, query)\n if (succeeded) {\n syncTabBarRoute(id)\n syncCurrentWebRoute('replace')\n }\n return resolveRouteAction('reLaunch', options, succeeded)\n}\n\nexport function switchTab(options: RouteOptions) {\n return performSwitchTab(options)\n}\n\nexport function navigateBack(options?: NavigateBackOptions) {\n const succeeded = pageStack.back(options?.delta)\n if (succeeded) {\n syncTabBarRoute(pageStack.entries[pageStack.entries.length - 1]?.id ?? '')\n syncCurrentWebRoute('replace')\n }\n return resolveRouteAction('navigateBack', options, succeeded)\n}\n\nexport function getCurrentPagesInternal() {\n return resolveCurrentPages<ComponentPublicInstance>(pageStack.entries)\n}\n\nexport function getAppInstance() {\n return appLifecycle.instance\n}\n\nexport function getLaunchOptionsSync() {\n return appLifecycle.getLaunchOptions()\n}\n\nexport function getEnterOptionsSync() {\n return appLifecycle.getEnterOptions()\n}\n"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
2
2
  import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess } from "./async.mjs";
3
- import { downloadFileByFetchBridge, requestByFetchBridge, uploadFileByFetchBridge } from "./network/requestBridge.mjs";
4
3
  import { createCanvasContextBridge } from "./canvasContext.mjs";
4
+ import { createSelectorQueryBridge } from "./selectorQuery.mjs";
5
+ import { createIntersectionObserverBridge } from "./intersectionObserver.mjs";
6
+ import { downloadFileByFetchBridge, requestByFetchBridge, uploadFileByFetchBridge } from "./network/requestBridge.mjs";
5
7
  import { clearStorageSyncBridge, createFileSystemManagerBridgeApi, createVKSessionBridgeApi, createWorkerBridgeApi, getStorageInfoSyncBridge, getStorageSyncBridge, removeStorageSyncBridge, setStorageSyncBridge } from "./runtimeInfra.mjs";
6
8
  import { hideKeyboardBridge, loadSubPackageBridge, nextTickBridge, pageScrollToBridge, preloadSubpackageBridge, startPullDownRefreshBridge, stopPullDownRefreshBridge } from "./runtimeOps.mjs";
7
- import { createSelectorQueryBridge } from "./selectorQuery.mjs";
8
9
  import { clearStorageBridge, getStorageBridge, getStorageInfoBridge, removeStorageBridge, setStorageBridge } from "./storageAsync.mjs";
9
10
  import { createVideoContextBridge } from "./videoContext.mjs";
10
11
 
@@ -13,6 +14,7 @@ var runtimeDataApi_exports = /* @__PURE__ */ __exportAll({
13
14
  clearStorage: () => clearStorage,
14
15
  clearStorageSync: () => clearStorageSync,
15
16
  createCanvasContext: () => createCanvasContext,
17
+ createIntersectionObserver: () => createIntersectionObserver,
16
18
  createSelectorQuery: () => createSelectorQuery,
17
19
  createVKSession: () => createVKSession,
18
20
  createVideoContext: () => createVideoContext,
@@ -74,6 +76,9 @@ function pageScrollTo(options) {
74
76
  function createSelectorQuery() {
75
77
  return createSelectorQueryBridge();
76
78
  }
79
+ function createIntersectionObserver(component, options) {
80
+ return createIntersectionObserverBridge(component, options);
81
+ }
77
82
  function createCanvasContext(canvasId) {
78
83
  return createCanvasContextBridge(canvasId);
79
84
  }
@@ -130,5 +135,5 @@ async function uploadFile(options) {
130
135
  }
131
136
 
132
137
  //#endregion
133
- export { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, runtimeDataApi_exports, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile };
138
+ export { clearStorage, clearStorageSync, createCanvasContext, createIntersectionObserver, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, runtimeDataApi_exports, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile };
134
139
  //# sourceMappingURL=runtimeDataApi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeDataApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeDataApi.ts"],"sourcesContent":["import type {\n CanvasContext,\n DownloadFileOptions,\n FileSystemManager,\n GetStorageOptions,\n LoadSubPackageOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n NavigateToMiniProgramOptions,\n PageScrollToOptions,\n PreloadSubpackageOptions,\n RemoveStorageOptions,\n RequestOptions,\n SelectorQuery,\n SetStorageOptions,\n StorageInfoResult,\n UploadFileOptions,\n VideoContext,\n VkSession,\n WorkerBridge,\n} from './types'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { createCanvasContextBridge } from './canvasContext'\nimport {\n downloadFileByFetchBridge,\n requestByFetchBridge,\n uploadFileByFetchBridge,\n} from './network'\nimport {\n clearStorageSyncBridge,\n createFileSystemManagerBridgeApi,\n createVKSessionBridgeApi,\n createWorkerBridgeApi,\n getStorageInfoSyncBridge,\n getStorageSyncBridge,\n removeStorageSyncBridge,\n setStorageSyncBridge,\n} from './runtimeInfra'\nimport {\n hideKeyboardBridge,\n loadSubPackageBridge,\n nextTickBridge,\n pageScrollToBridge,\n preloadSubpackageBridge,\n startPullDownRefreshBridge,\n stopPullDownRefreshBridge,\n} from './runtimeOps'\nimport { createSelectorQueryBridge } from './selectorQuery'\nimport {\n clearStorageBridge,\n getStorageBridge,\n getStorageInfoBridge,\n removeStorageBridge,\n setStorageBridge,\n} from './storageAsync'\nimport { createVideoContextBridge } from './videoContext'\n\nconst fileSystemManagerBridge: FileSystemManager = createFileSystemManagerBridgeApi(\n (options: any, result: any) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options: any, errMsg: any) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as FileSystemManager\n\nexport function navigateToMiniProgram(options?: NavigateToMiniProgramOptions) {\n const appId = options?.appId?.trim() ?? ''\n if (!appId) {\n const failure = callMiniProgramAsyncFailure(options, 'navigateToMiniProgram:fail invalid appId')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'navigateToMiniProgram:ok' }))\n}\n\nexport function exitMiniProgram(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'exitMiniProgram:ok' }))\n}\n\nexport function nextTick(callback?: () => void) {\n return nextTickBridge(callback)\n}\n\nexport function startPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return startPullDownRefreshBridge(options)\n}\n\nexport function stopPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return stopPullDownRefreshBridge(options)\n}\n\nexport function hideKeyboard(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideKeyboardBridge(options)\n}\n\nexport function loadSubPackage(options?: LoadSubPackageOptions) {\n return loadSubPackageBridge(options)\n}\n\nexport function preloadSubpackage(options?: PreloadSubpackageOptions) {\n return preloadSubpackageBridge(options)\n}\n\nexport function pageScrollTo(options?: PageScrollToOptions) {\n return pageScrollToBridge(options)\n}\n\nexport function createSelectorQuery(): SelectorQuery {\n return createSelectorQueryBridge()\n}\n\nexport function createCanvasContext(canvasId: string): CanvasContext {\n return createCanvasContextBridge(canvasId)\n}\n\nexport function createVideoContext(videoId: string): VideoContext {\n return createVideoContextBridge(videoId)\n}\n\nexport function setStorageSync(key: string, data: any) {\n return setStorageSyncBridge(key, data)\n}\n\nexport function getStorageSync(key: string) {\n return getStorageSyncBridge(key)\n}\n\nexport function removeStorageSync(key: string) {\n return removeStorageSyncBridge(key)\n}\n\nexport function clearStorageSync() {\n return clearStorageSyncBridge()\n}\n\nexport function getStorageInfoSync(): StorageInfoResult {\n return getStorageInfoSyncBridge() as StorageInfoResult\n}\n\nexport function setStorage(options?: SetStorageOptions) {\n return setStorageBridge(options)\n}\n\nexport function getStorage(options?: GetStorageOptions) {\n return getStorageBridge(options)\n}\n\nexport function removeStorage(options?: RemoveStorageOptions) {\n return removeStorageBridge(options)\n}\n\nexport function clearStorage(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return clearStorageBridge(options)\n}\n\nexport function getStorageInfo(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return getStorageInfoBridge(options)\n}\n\nexport function getFileSystemManager() {\n return fileSystemManagerBridge\n}\n\nexport function createWorker(path: string): WorkerBridge {\n return createWorkerBridgeApi(path) as WorkerBridge\n}\n\nexport function createVKSession(_options?: Record<string, unknown>): VkSession {\n return createVKSessionBridgeApi() as VkSession\n}\n\nexport async function request(options?: RequestOptions) {\n return requestByFetchBridge(options)\n}\n\nexport async function downloadFile(options?: DownloadFileOptions) {\n return downloadFileByFetchBridge(options)\n}\n\nexport async function uploadFile(options?: UploadFileOptions) {\n return uploadFileByFetchBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAM,0BAA6C,kCAChD,SAAc,WAAgB,4BAC7B,SACA,MACF,IACC,SAAc,WAAgB,4BAC7B,SACA,MACF,CACF;AAEA,SAAgB,sBAAsB,SAAwC;CAE5E,IAAI,EADU,SAAS,OAAO,KAAK,KAAK,KAC5B;EACV,MAAM,UAAU,4BAA4B,SAAS,0CAA0C;EAC/F,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,2BAA2B,CAAC,CAAC;AACrG;AAEA,SAAgB,gBAAgB,SAA0D;CACxF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,qBAAqB,CAAC,CAAC;AAC/F;AAEA,SAAgB,SAAS,UAAuB;CAC9C,OAAO,eAAe,QAAQ;AAChC;AAEA,SAAgB,qBAAqB,SAA0D;CAC7F,OAAO,2BAA2B,OAAO;AAC3C;AAEA,SAAgB,oBAAoB,SAA0D;CAC5F,OAAO,0BAA0B,OAAO;AAC1C;AAEA,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,kBAAkB,SAAoC;CACpE,OAAO,wBAAwB,OAAO;AACxC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,sBAAqC;CACnD,OAAO,0BAA0B;AACnC;AAEA,SAAgB,oBAAoB,UAAiC;CACnE,OAAO,0BAA0B,QAAQ;AAC3C;AAEA,SAAgB,mBAAmB,SAA+B;CAChE,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,eAAe,KAAa,MAAW;CACrD,OAAO,qBAAqB,KAAK,IAAI;AACvC;AAEA,SAAgB,eAAe,KAAa;CAC1C,OAAO,qBAAqB,GAAG;AACjC;AAEA,SAAgB,kBAAkB,KAAa;CAC7C,OAAO,wBAAwB,GAAG;AACpC;AAEA,SAAgB,mBAAmB;CACjC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,qBAAwC;CACtD,OAAO,yBAAyB;AAClC;AAEA,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,eAAe,SAAsD;CACnF,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,uBAAuB;CACrC,OAAO;AACT;AAEA,SAAgB,aAAa,MAA4B;CACvD,OAAO,sBAAsB,IAAI;AACnC;AAEA,SAAgB,gBAAgB,UAA+C;CAC7E,OAAO,yBAAyB;AAClC;AAEA,eAAsB,QAAQ,SAA0B;CACtD,OAAO,qBAAqB,OAAO;AACrC;AAEA,eAAsB,aAAa,SAA+B;CAChE,OAAO,0BAA0B,OAAO;AAC1C;AAEA,eAAsB,WAAW,SAA6B;CAC5D,OAAO,wBAAwB,OAAO;AACxC"}
1
+ {"version":3,"file":"runtimeDataApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeDataApi.ts"],"sourcesContent":["import type {\n CanvasContext,\n DownloadFileOptions,\n FileSystemManager,\n GetStorageOptions,\n LoadSubPackageOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n NavigateToMiniProgramOptions,\n PageScrollToOptions,\n PreloadSubpackageOptions,\n RemoveStorageOptions,\n RequestOptions,\n SelectorQuery,\n SetStorageOptions,\n StorageInfoResult,\n UploadFileOptions,\n VideoContext,\n VkSession,\n WorkerBridge,\n} from './types'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { createCanvasContextBridge } from './canvasContext'\nimport { createIntersectionObserverBridge } from './intersectionObserver'\nimport {\n downloadFileByFetchBridge,\n requestByFetchBridge,\n uploadFileByFetchBridge,\n} from './network'\nimport {\n clearStorageSyncBridge,\n createFileSystemManagerBridgeApi,\n createVKSessionBridgeApi,\n createWorkerBridgeApi,\n getStorageInfoSyncBridge,\n getStorageSyncBridge,\n removeStorageSyncBridge,\n setStorageSyncBridge,\n} from './runtimeInfra'\nimport {\n hideKeyboardBridge,\n loadSubPackageBridge,\n nextTickBridge,\n pageScrollToBridge,\n preloadSubpackageBridge,\n startPullDownRefreshBridge,\n stopPullDownRefreshBridge,\n} from './runtimeOps'\nimport { createSelectorQueryBridge } from './selectorQuery'\nimport {\n clearStorageBridge,\n getStorageBridge,\n getStorageInfoBridge,\n removeStorageBridge,\n setStorageBridge,\n} from './storageAsync'\nimport { createVideoContextBridge } from './videoContext'\n\nconst fileSystemManagerBridge: FileSystemManager = createFileSystemManagerBridgeApi(\n (options: any, result: any) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options: any, errMsg: any) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as FileSystemManager\n\nexport function navigateToMiniProgram(options?: NavigateToMiniProgramOptions) {\n const appId = options?.appId?.trim() ?? ''\n if (!appId) {\n const failure = callMiniProgramAsyncFailure(options, 'navigateToMiniProgram:fail invalid appId')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'navigateToMiniProgram:ok' }))\n}\n\nexport function exitMiniProgram(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'exitMiniProgram:ok' }))\n}\n\nexport function nextTick(callback?: () => void) {\n return nextTickBridge(callback)\n}\n\nexport function startPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return startPullDownRefreshBridge(options)\n}\n\nexport function stopPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return stopPullDownRefreshBridge(options)\n}\n\nexport function hideKeyboard(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideKeyboardBridge(options)\n}\n\nexport function loadSubPackage(options?: LoadSubPackageOptions) {\n return loadSubPackageBridge(options)\n}\n\nexport function preloadSubpackage(options?: PreloadSubpackageOptions) {\n return preloadSubpackageBridge(options)\n}\n\nexport function pageScrollTo(options?: PageScrollToOptions) {\n return pageScrollToBridge(options)\n}\n\nexport function createSelectorQuery(): SelectorQuery {\n return createSelectorQueryBridge()\n}\n\nexport function createIntersectionObserver(\n component?: unknown,\n options?: {\n initialRatio?: number\n observeAll?: boolean\n thresholds?: number[]\n },\n) {\n return createIntersectionObserverBridge(component, options)\n}\n\nexport function createCanvasContext(canvasId: string): CanvasContext {\n return createCanvasContextBridge(canvasId)\n}\n\nexport function createVideoContext(videoId: string): VideoContext {\n return createVideoContextBridge(videoId)\n}\n\nexport function setStorageSync(key: string, data: any) {\n return setStorageSyncBridge(key, data)\n}\n\nexport function getStorageSync(key: string) {\n return getStorageSyncBridge(key)\n}\n\nexport function removeStorageSync(key: string) {\n return removeStorageSyncBridge(key)\n}\n\nexport function clearStorageSync() {\n return clearStorageSyncBridge()\n}\n\nexport function getStorageInfoSync(): StorageInfoResult {\n return getStorageInfoSyncBridge() as StorageInfoResult\n}\n\nexport function setStorage(options?: SetStorageOptions) {\n return setStorageBridge(options)\n}\n\nexport function getStorage(options?: GetStorageOptions) {\n return getStorageBridge(options)\n}\n\nexport function removeStorage(options?: RemoveStorageOptions) {\n return removeStorageBridge(options)\n}\n\nexport function clearStorage(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return clearStorageBridge(options)\n}\n\nexport function getStorageInfo(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return getStorageInfoBridge(options)\n}\n\nexport function getFileSystemManager() {\n return fileSystemManagerBridge\n}\n\nexport function createWorker(path: string): WorkerBridge {\n return createWorkerBridgeApi(path) as WorkerBridge\n}\n\nexport function createVKSession(_options?: Record<string, unknown>): VkSession {\n return createVKSessionBridgeApi() as VkSession\n}\n\nexport async function request(options?: RequestOptions) {\n return requestByFetchBridge(options)\n}\n\nexport async function downloadFile(options?: DownloadFileOptions) {\n return downloadFileByFetchBridge(options)\n}\n\nexport async function uploadFile(options?: UploadFileOptions) {\n return uploadFileByFetchBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAM,0BAA6C,kCAChD,SAAc,WAAgB,4BAC7B,SACA,MACF,IACC,SAAc,WAAgB,4BAC7B,SACA,MACF,CACF;AAEA,SAAgB,sBAAsB,SAAwC;CAE5E,IAAI,EADU,SAAS,OAAO,KAAK,KAAK,KAC5B;EACV,MAAM,UAAU,4BAA4B,SAAS,0CAA0C;EAC/F,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,2BAA2B,CAAC,CAAC;AACrG;AAEA,SAAgB,gBAAgB,SAA0D;CACxF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,qBAAqB,CAAC,CAAC;AAC/F;AAEA,SAAgB,SAAS,UAAuB;CAC9C,OAAO,eAAe,QAAQ;AAChC;AAEA,SAAgB,qBAAqB,SAA0D;CAC7F,OAAO,2BAA2B,OAAO;AAC3C;AAEA,SAAgB,oBAAoB,SAA0D;CAC5F,OAAO,0BAA0B,OAAO;AAC1C;AAEA,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,kBAAkB,SAAoC;CACpE,OAAO,wBAAwB,OAAO;AACxC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,sBAAqC;CACnD,OAAO,0BAA0B;AACnC;AAEA,SAAgB,2BACd,WACA,SAKA;CACA,OAAO,iCAAiC,WAAW,OAAO;AAC5D;AAEA,SAAgB,oBAAoB,UAAiC;CACnE,OAAO,0BAA0B,QAAQ;AAC3C;AAEA,SAAgB,mBAAmB,SAA+B;CAChE,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,eAAe,KAAa,MAAW;CACrD,OAAO,qBAAqB,KAAK,IAAI;AACvC;AAEA,SAAgB,eAAe,KAAa;CAC1C,OAAO,qBAAqB,GAAG;AACjC;AAEA,SAAgB,kBAAkB,KAAa;CAC7C,OAAO,wBAAwB,GAAG;AACpC;AAEA,SAAgB,mBAAmB;CACjC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,qBAAwC;CACtD,OAAO,yBAAyB;AAClC;AAEA,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,eAAe,SAAsD;CACnF,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,uBAAuB;CACrC,OAAO;AACT;AAEA,SAAgB,aAAa,MAA4B;CACvD,OAAO,sBAAsB,IAAI;AACnC;AAEA,SAAgB,gBAAgB,UAA+C;CAC7E,OAAO,yBAAyB;AAClC;AAEA,eAAsB,QAAQ,SAA0B;CACtD,OAAO,qBAAqB,OAAO;AACrC;AAEA,eAAsB,aAAa,SAA+B;CAChE,OAAO,0BAA0B,OAAO;AAC1C;AAEA,eAAsB,WAAW,SAA6B;CAC5D,OAAO,wBAAwB,OAAO;AACxC"}
@@ -1,4 +1,5 @@
1
1
  import { callMiniProgramAsyncFailure, callMiniProgramAsyncSuccess, normalizeDuration, scheduleMicrotask } from "./async.mjs";
2
+ import { getPageContainer, recordActiveEntryScrollPosition } from "./routeRuntime/scroll.mjs";
2
3
  import { resolveSubPackageName } from "./platformRuntime.mjs";
3
4
 
4
5
  //#region src/runtime/polyfill/runtimeOps.ts
@@ -6,11 +7,14 @@ function resolveScrollTop(value) {
6
7
  if (typeof value !== "number" || Number.isNaN(value)) return 0;
7
8
  return Math.max(0, value);
8
9
  }
9
- function setWindowScrollTop(top) {
10
- if (typeof window === "undefined") return;
11
- const runtimeWindow = window;
12
- if (typeof runtimeWindow.scrollTo !== "function") return;
13
- runtimeWindow.scrollTo(0, top);
10
+ function setPageScrollTop(top) {
11
+ const container = getPageContainer();
12
+ if (container) {
13
+ container.scrollTop = top;
14
+ recordActiveEntryScrollPosition();
15
+ return;
16
+ }
17
+ if (typeof window !== "undefined") window.scrollTo?.(0, top);
14
18
  }
15
19
  function nextTickBridge(callback) {
16
20
  if (typeof callback !== "function") return;
@@ -44,7 +48,7 @@ function preloadSubpackageBridge(options) {
44
48
  function pageScrollToBridge(options) {
45
49
  const targetTop = resolveScrollTop(options?.scrollTop);
46
50
  const duration = normalizeDuration(options?.duration, 300);
47
- const run = () => setWindowScrollTop(targetTop);
51
+ const run = () => setPageScrollTop(targetTop);
48
52
  if (duration <= 0) {
49
53
  run();
50
54
  return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "pageScrollTo:ok" }));
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeOps.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeOps.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n scheduleMicrotask,\n} from './async'\nimport { resolveSubPackageName } from './platformRuntime'\n\nfunction resolveScrollTop(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return Math.max(0, value)\n}\n\nfunction setWindowScrollTop(top: number) {\n if (typeof window === 'undefined') {\n return\n }\n const runtimeWindow = window as Window & {\n scrollTo?: (x: number, y: number) => void\n }\n if (typeof runtimeWindow.scrollTo !== 'function') {\n return\n }\n runtimeWindow.scrollTo(0, top)\n}\n\nexport function nextTickBridge(callback?: () => void) {\n if (typeof callback !== 'function') {\n return\n }\n scheduleMicrotask(() => callback())\n}\n\nexport function startPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'startPullDownRefresh:ok' }))\n}\n\nexport function stopPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'stopPullDownRefresh:ok' }))\n}\n\nexport function hideKeyboardBridge(options?: any) {\n const activeElement = (typeof document !== 'undefined'\n ? (document as { activeElement?: { blur?: () => void } }).activeElement\n : undefined)\n if (activeElement && typeof activeElement.blur === 'function') {\n activeElement.blur()\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideKeyboard:ok' }))\n}\n\nexport function loadSubPackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'loadSubPackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'loadSubPackage:ok' }))\n}\n\nexport function preloadSubpackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'preloadSubpackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'preloadSubpackage:ok' }))\n}\n\nexport function pageScrollToBridge(options?: any) {\n const targetTop = resolveScrollTop(options?.scrollTop)\n const duration = normalizeDuration(options?.duration, 300)\n const run = () => setWindowScrollTop(targetTop)\n\n if (duration <= 0) {\n run()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n run()\n resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }, duration)\n })\n}\n"],"mappings":";;;;AAQA,SAAS,iBAAiB,OAAgB;CACxC,IAAI,OAAO,UAAU,YAAY,OAAO,MAAM,KAAK,GACjD,OAAO;CAET,OAAO,KAAK,IAAI,GAAG,KAAK;AAC1B;AAEA,SAAS,mBAAmB,KAAa;CACvC,IAAI,OAAO,WAAW,aACpB;CAEF,MAAM,gBAAgB;CAGtB,IAAI,OAAO,cAAc,aAAa,YACpC;CAEF,cAAc,SAAS,GAAG,GAAG;AAC/B;AAEA,SAAgB,eAAe,UAAuB;CACpD,IAAI,OAAO,aAAa,YACtB;CAEF,wBAAwB,SAAS,CAAC;AACpC;AAEA,SAAgB,2BAA2B,SAAe;CACxD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,0BAA0B,CAAC,CAAC;AACpG;AAEA,SAAgB,0BAA0B,SAAe;CACvD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,yBAAyB,CAAC,CAAC;AACnG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,gBAAiB,OAAO,aAAa,cACtC,SAAuD,gBACxD;CACJ,IAAI,iBAAiB,OAAO,cAAc,SAAS,YACjD,cAAc,KAAK;CAErB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,qBAAqB,SAAe;CAElD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,kCAAkC;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC;AAC9F;AAEA,SAAgB,wBAAwB,SAAe;CAErD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,qCAAqC;EAC1F,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,uBAAuB,CAAC,CAAC;AACjG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,YAAY,iBAAiB,SAAS,SAAS;CACrD,MAAM,WAAW,kBAAkB,SAAS,UAAU,GAAG;CACzD,MAAM,YAAY,mBAAmB,SAAS;CAE9C,IAAI,YAAY,GAAG;EACjB,IAAI;EACJ,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;CAC5F;CAEA,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB;GACf,IAAI;GACJ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;EAC7E,GAAG,QAAQ;CACb,CAAC;AACH"}
1
+ {"version":3,"file":"runtimeOps.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeOps.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n scheduleMicrotask,\n} from './async'\nimport { resolveSubPackageName } from './platformRuntime'\nimport { getPageContainer, recordActiveEntryScrollPosition } from './routeRuntime/scroll'\n\nfunction resolveScrollTop(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return Math.max(0, value)\n}\n\nfunction setPageScrollTop(top: number) {\n const container = getPageContainer()\n if (container) {\n container.scrollTop = top\n recordActiveEntryScrollPosition()\n return\n }\n if (typeof window !== 'undefined') {\n window.scrollTo?.(0, top)\n }\n}\n\nexport function nextTickBridge(callback?: () => void) {\n if (typeof callback !== 'function') {\n return\n }\n scheduleMicrotask(() => callback())\n}\n\nexport function startPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'startPullDownRefresh:ok' }))\n}\n\nexport function stopPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'stopPullDownRefresh:ok' }))\n}\n\nexport function hideKeyboardBridge(options?: any) {\n const activeElement = (typeof document !== 'undefined'\n ? (document as { activeElement?: { blur?: () => void } }).activeElement\n : undefined)\n if (activeElement && typeof activeElement.blur === 'function') {\n activeElement.blur()\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideKeyboard:ok' }))\n}\n\nexport function loadSubPackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'loadSubPackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'loadSubPackage:ok' }))\n}\n\nexport function preloadSubpackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'preloadSubpackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'preloadSubpackage:ok' }))\n}\n\nexport function pageScrollToBridge(options?: any) {\n const targetTop = resolveScrollTop(options?.scrollTop)\n const duration = normalizeDuration(options?.duration, 300)\n const run = () => setPageScrollTop(targetTop)\n\n if (duration <= 0) {\n run()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n run()\n resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }, duration)\n })\n}\n"],"mappings":";;;;;AASA,SAAS,iBAAiB,OAAgB;CACxC,IAAI,OAAO,UAAU,YAAY,OAAO,MAAM,KAAK,GACjD,OAAO;CAET,OAAO,KAAK,IAAI,GAAG,KAAK;AAC1B;AAEA,SAAS,iBAAiB,KAAa;CACrC,MAAM,YAAY,iBAAiB;CACnC,IAAI,WAAW;EACb,UAAU,YAAY;EACtB,gCAAgC;EAChC;CACF;CACA,IAAI,OAAO,WAAW,aACpB,OAAO,WAAW,GAAG,GAAG;AAE5B;AAEA,SAAgB,eAAe,UAAuB;CACpD,IAAI,OAAO,aAAa,YACtB;CAEF,wBAAwB,SAAS,CAAC;AACpC;AAEA,SAAgB,2BAA2B,SAAe;CACxD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,0BAA0B,CAAC,CAAC;AACpG;AAEA,SAAgB,0BAA0B,SAAe;CACvD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,yBAAyB,CAAC,CAAC;AACnG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,gBAAiB,OAAO,aAAa,cACtC,SAAuD,gBACxD;CACJ,IAAI,iBAAiB,OAAO,cAAc,SAAS,YACjD,cAAc,KAAK;CAErB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,qBAAqB,SAAe;CAElD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,kCAAkC;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC;AAC9F;AAEA,SAAgB,wBAAwB,SAAe;CAErD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,qCAAqC;EAC1F,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,uBAAuB,CAAC,CAAC;AACjG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,YAAY,iBAAiB,SAAS,SAAS;CACrD,MAAM,WAAW,kBAAkB,SAAS,UAAU,GAAG;CACzD,MAAM,YAAY,iBAAiB,SAAS;CAE5C,IAAI,YAAY,GAAG;EACjB,IAAI;EACJ,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;CAC5F;CAEA,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB;GACf,IAAI;GACJ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;EAC7E,GAAG,QAAQ;CACb,CAAC;AACH"}
@@ -1,20 +1,44 @@
1
+ import { resolveComponentPublicInstanceTarget } from "../component/publicInstance.mjs";
2
+
1
3
  //#region src/runtime/polyfill/selectorQuery.ts
2
4
  function isQueryRoot(value) {
3
5
  if (!value || typeof value !== "object") return false;
4
6
  const target = value;
5
7
  return typeof target.querySelector === "function" && typeof target.querySelectorAll === "function";
6
8
  }
7
- function resolveQueryRoot(scope) {
8
- const scoped = scope;
9
+ function resolveScopedQueryRoot(scope) {
10
+ const normalizedScope = resolveComponentPublicInstanceTarget(scope) ?? scope;
11
+ const scoped = normalizedScope;
9
12
  if (isQueryRoot(scoped?.renderRoot)) return scoped?.renderRoot;
10
13
  if (isQueryRoot(scoped?.shadowRoot)) return scoped?.shadowRoot;
14
+ const publicElement = resolveComponentPublicInstanceTarget(scoped?.$el) ?? scoped?.$el;
15
+ if (isQueryRoot(publicElement?.renderRoot)) return publicElement.renderRoot;
16
+ if (isQueryRoot(publicElement?.shadowRoot)) return publicElement.shadowRoot;
11
17
  if (isQueryRoot(scoped?.$el)) return scoped?.$el;
12
- if (isQueryRoot(scope)) return scope;
18
+ if (isQueryRoot(normalizedScope)) return normalizedScope;
19
+ }
20
+ function resolveCurrentPageQueryRoot() {
21
+ const getCurrentPages = globalThis.getCurrentPages;
22
+ const pages = typeof getCurrentPages === "function" ? getCurrentPages() : [];
23
+ return resolveScopedQueryRoot(pages[pages.length - 1]);
24
+ }
25
+ function resolveQueryRoot(scope) {
26
+ const scopedRoot = resolveScopedQueryRoot(scope);
27
+ if (scopedRoot) return scopedRoot;
28
+ if (scope == null) {
29
+ const currentPageRoot = resolveCurrentPageQueryRoot();
30
+ if (currentPageRoot) return currentPageRoot;
31
+ }
13
32
  if (typeof document !== "undefined" && isQueryRoot(document)) return document;
14
33
  }
15
34
  function resolveViewportTarget() {
16
35
  if (typeof window !== "undefined") return window;
17
36
  }
37
+ function resolveUpdateComplete(scope) {
38
+ const scoped = resolveComponentPublicInstanceTarget(scope) ?? scope;
39
+ const candidate = (resolveComponentPublicInstanceTarget(scoped?.$el) ?? scoped?.$el)?.updateComplete ?? scoped?.updateComplete;
40
+ if (candidate && typeof candidate === "object" && typeof candidate.then === "function") return candidate;
41
+ }
18
42
  function resolveQueryTargets(scope, target) {
19
43
  if (target.type === "viewport") {
20
44
  const viewport = resolveViewportTarget();
@@ -22,9 +46,36 @@ function resolveQueryTargets(scope, target) {
22
46
  }
23
47
  const root = resolveQueryRoot(scope);
24
48
  if (!root || !target.selector) return [];
25
- if (target.multiple) return Array.from(root.querySelectorAll(target.selector));
26
- const node = root.querySelector(target.selector);
27
- return node ? [node] : [];
49
+ const query = (queryRoot) => {
50
+ if (target.multiple) return Array.from(queryRoot.querySelectorAll(target.selector));
51
+ const node = queryRoot.querySelector(target.selector);
52
+ return node ? [node] : [];
53
+ };
54
+ const scopedTargets = query(root);
55
+ if (scopedTargets.length > 0) return scopedTargets;
56
+ const scopedPublicElement = scope?.$el;
57
+ const publicElement = resolveComponentPublicInstanceTarget(scopedPublicElement) ?? scopedPublicElement;
58
+ if (!(scope && typeof scope === "object" && "$" in scope)) return [];
59
+ if (typeof publicElement?.getRootNode === "function") {
60
+ let ancestorRoot = publicElement.getRootNode();
61
+ const visited = /* @__PURE__ */ new Set();
62
+ while (isQueryRoot(ancestorRoot) && !visited.has(ancestorRoot)) {
63
+ visited.add(ancestorRoot);
64
+ const ancestorTargets = query(ancestorRoot);
65
+ if (ancestorTargets.length > 0) return ancestorTargets;
66
+ ancestorRoot = ancestorRoot.host?.getRootNode?.();
67
+ }
68
+ }
69
+ const currentPageRoot = resolveCurrentPageQueryRoot();
70
+ if (currentPageRoot && currentPageRoot !== root) return query(currentPageRoot);
71
+ return [];
72
+ }
73
+ function resolveSelectorTargets(scope, selector, multiple = false) {
74
+ return resolveQueryTargets(scope, {
75
+ type: "node",
76
+ selector,
77
+ multiple
78
+ });
28
79
  }
29
80
  function normalizeRectValue(value) {
30
81
  if (typeof value !== "number" || Number.isNaN(value)) return 0;
@@ -186,13 +237,18 @@ function createSelectorQueryBridge() {
186
237
  return createNodesRef(tasks, queryApi, { type: "viewport" });
187
238
  },
188
239
  exec(callback) {
189
- const result = tasks.map((task) => {
190
- const value = runQueryTask(scope, task);
191
- task.callback?.(value);
192
- return value;
193
- });
194
- callback?.(result);
195
- tasks.length = 0;
240
+ const pendingTasks = tasks.splice(0);
241
+ const run = () => {
242
+ const result = pendingTasks.map((task) => {
243
+ const value = runQueryTask(scope, task);
244
+ task.callback?.(value);
245
+ return value;
246
+ });
247
+ callback?.(result);
248
+ };
249
+ const updateComplete = resolveUpdateComplete(scope);
250
+ if (updateComplete) Promise.resolve(updateComplete).then(run);
251
+ else run();
196
252
  return queryApi;
197
253
  }
198
254
  };
@@ -200,5 +256,5 @@ function createSelectorQueryBridge() {
200
256
  }
201
257
 
202
258
  //#endregion
203
- export { createSelectorQueryBridge };
259
+ export { createSelectorQueryBridge, resolveSelectorTargets };
204
260
  //# sourceMappingURL=selectorQuery.mjs.map