@weapp-vite/web 1.5.6 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -29,6 +29,7 @@ import { authorize, checkSession, getAccountInfoSync, getAppAuthorizeSetting, ge
29
29
  import { ResolvedWebViewportConfig, WebViewportConfig } from "./runtime/viewport/types.mjs";
30
30
  import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./runtime/viewport/index.mjs";
31
31
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./runtime/polyfill/routeRuntime.mjs";
32
+ import { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent, offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./runtime/polyfill/routeRuntime/events.mjs";
32
33
  import { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./runtime/polyfill/runtimeDataApi.mjs";
33
34
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
34
35
  import { canIUse, createInterstitialAd, createRewardedVideoAd, getExtConfig, getExtConfigSync, getLogManager, getUpdateManager, hideNavigationBarLoading, reportAnalytics, setBackgroundColor, setBackgroundTextStyle, setNavigationBarColor, setNavigationBarTitle, showNavigationBarLoading } from "./runtime/polyfill/index.mjs";
@@ -38,4 +39,4 @@ import { RuntimeWarningLevel, RuntimeWarningOptions, setRuntimeWarningOptions }
38
39
  import { installWebModuleRegistration, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory } from "./runtime/wevu.mjs";
39
40
  import "./runtime/index.mjs";
40
41
  export * from "wevu/internal-runtime";
41
- export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppShowCallback, type ButtonFormConfig, type NavigationBarMetrics, type RenderContext, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type WeappWebPluginOptions, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
42
+ export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppRouteCallback, type AppRouteEvent, type AppRouteOpenType, type AppShowCallback, type BeforePageUnloadCallback, type BeforePageUnloadEvent, type ButtonFormConfig, type NavigationBarMetrics, type RenderContext, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type WeappWebPluginOptions, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
package/dist/index.mjs CHANGED
@@ -22,6 +22,7 @@ import { ensureNativeComponentsDefined } from "./runtime/nativeComponents/index.
22
22
  import { setNavigationBarMetrics } from "./runtime/navigationBar/index.mjs";
23
23
  import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./runtime/viewport/index.mjs";
24
24
  import { setupRpx } from "./runtime/rpx.mjs";
25
+ import { offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./runtime/polyfill/routeRuntime/events.mjs";
25
26
  import { disposeWebRouting, getWebRoutingConfig, resolveWebRoutingConfig } from "./runtime/polyfill/routeRuntime/history.mjs";
26
27
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./runtime/polyfill/routeRuntime.mjs";
27
28
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
@@ -33,4 +34,4 @@ import { installWebModuleRegistration, registerWebWevuApp, registerWebWevuCompon
33
34
 
34
35
  export * from "wevu/internal-runtime"
35
36
 
36
- export { authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
37
+ export { authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
@@ -25,6 +25,7 @@ import { authorize, checkSession, getAccountInfoSync, getAppAuthorizeSetting, ge
25
25
  import { ResolvedWebViewportConfig, WebViewportConfig } from "./viewport/types.mjs";
26
26
  import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./viewport/index.mjs";
27
27
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./polyfill/routeRuntime.mjs";
28
+ import { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent, offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./polyfill/routeRuntime/events.mjs";
28
29
  import { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./polyfill/runtimeDataApi.mjs";
29
30
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./polyfill/uiMediaApi.mjs";
30
31
  import { canIUse, createInterstitialAd, createRewardedVideoAd, getExtConfig, getExtConfigSync, getLogManager, getUpdateManager, hideNavigationBarLoading, reportAnalytics, setBackgroundColor, setBackgroundTextStyle, setNavigationBarColor, setNavigationBarTitle, showNavigationBarLoading } from "./polyfill/index.mjs";
@@ -34,4 +35,4 @@ import { injectStyle, removeStyle } from "./style.mjs";
34
35
  import { RuntimeWarningLevel, RuntimeWarningOptions, setRuntimeWarningOptions } from "./warning.mjs";
35
36
  import { installWebModuleRegistration, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory } from "./wevu.mjs";
36
37
  export * from "wevu/internal-runtime";
37
- export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppShowCallback, type ButtonFormConfig, type NavigationBarMetrics, type RenderContext, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort };
38
+ export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppRouteCallback, type AppRouteEvent, type AppRouteOpenType, type AppShowCallback, type BeforePageUnloadCallback, type BeforePageUnloadEvent, type ButtonFormConfig, type NavigationBarMetrics, type RenderContext, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort };
@@ -20,6 +20,7 @@ import { ensureNativeComponentsDefined } from "./nativeComponents/index.mjs";
20
20
  import { setNavigationBarMetrics } from "./navigationBar/index.mjs";
21
21
  import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./viewport/index.mjs";
22
22
  import { setupRpx } from "./rpx.mjs";
23
+ import { offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./polyfill/routeRuntime/events.mjs";
23
24
  import { disposeWebRouting, getWebRoutingConfig, resolveWebRoutingConfig } from "./polyfill/routeRuntime/history.mjs";
24
25
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./polyfill/routeRuntime.mjs";
25
26
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./polyfill/uiMediaApi.mjs";
@@ -36,5 +37,5 @@ installWebHostGlobals();
36
37
  installMiniProgramGlobals();
37
38
 
38
39
  //#endregion
39
- export { authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort };
40
+ export { authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort };
40
41
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/runtime/index.ts"],"sourcesContent":["import { installWebHostGlobals } from './hostGlobals'\nimport { installMiniProgramGlobals } from './polyfill'\n\ninstallWebHostGlobals()\ninstallMiniProgramGlobals()\n\nexport type { WebTabBarConfig, WebTabBarItem } from './appShell/tabBar'\nexport { ensureButtonDefined, setButtonFormConfig } from './button'\nexport type { ButtonFormConfig } from './button'\nexport { defineComponent } from './component'\nexport { bindRuntimeEvent } from './eventBinding'\nexport { getRuntimeExecutionMode, setRuntimeExecutionMode } from './execution'\nexport {\n getRuntimeClipboard,\n getRuntimeDialogs,\n getRuntimeFetch,\n getRuntimeStorage,\n getWebRuntimeHost,\n openRuntimeUrl,\n resetWebRuntimeHost,\n setWebRuntimeHost,\n} from './host'\nexport type { WebRuntimeClipboard, WebRuntimeDialogs, WebRuntimeHost, WebRuntimeStorage } from './host'\nexport { installWebHostGlobals } from './hostGlobals'\nexport {\n createInputEventDetail,\n createScrollEventDetail,\n createSwitchEventDetail,\n createTextareaLineChangeDetail,\n createVideoProgressDetail,\n createVideoTimeUpdateDetail,\n ensureNativeComponentsDefined,\n resolveImageModeStyle,\n resolveVideoObjectFit,\n} from './nativeComponents'\nexport { setNavigationBarMetrics } from './navigationBar'\nexport type { NavigationBarMetrics } from './navigationBar'\nexport { setPageLayout } from './pageLayout'\nexport {\n authorize,\n canIUse,\n checkSession,\n chooseAddress,\n chooseFile,\n chooseImage,\n chooseLocation,\n chooseMedia,\n chooseMessageFile,\n chooseVideo,\n clearStorage,\n clearStorageSync,\n compressImage,\n compressVideo,\n createCanvasContext,\n createInterstitialAd,\n createRewardedVideoAd,\n createSelectorQuery,\n createVideoContext,\n createVKSession,\n createWorker,\n downloadFile,\n exitMiniProgram,\n getAccountInfoSync,\n getAppAuthorizeSetting,\n getAppBaseInfo,\n getBatteryInfo,\n getBatteryInfoSync,\n getClipboardData,\n getDeviceInfo,\n getEnterOptionsSync,\n getExtConfig,\n getExtConfigSync,\n getFileSystemManager,\n getFuzzyLocation,\n getImageInfo,\n getLaunchOptionsSync,\n getLocation,\n getLogManager,\n getMenuButtonBoundingClientRect,\n getNetworkType,\n getSetting,\n getStorage,\n getStorageInfo,\n getStorageInfoSync,\n getStorageSync,\n getSystemInfo,\n getSystemInfoSync,\n getSystemSetting,\n getUpdateManager,\n getUserInfo,\n getUserProfile,\n getVideoInfo,\n getWindowInfo,\n hideKeyboard,\n hideLoading,\n hideNavigationBarLoading,\n hideTabBar,\n hideTabBarRedDot,\n initializePageRoutes,\n loadSubPackage,\n login,\n makePhoneCall,\n navigateBack,\n navigateTo,\n navigateToMiniProgram,\n nextTick,\n offAppHide,\n offAppShow,\n offNetworkStatusChange,\n offWindowResize,\n onAppHide,\n onAppShow,\n onNetworkStatusChange,\n onWindowResize,\n openAppAuthorizeSetting,\n openCustomerServiceChat,\n openDocument,\n openLocation,\n openSetting,\n openVideoEditor,\n pageScrollTo,\n preloadSubpackage,\n previewImage,\n previewMedia,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n removeStorage,\n removeStorageSync,\n removeTabBarBadge,\n reportAnalytics,\n request,\n requestPayment,\n requestSubscribeMessage,\n saveFile,\n saveFileToDisk,\n saveImageToPhotosAlbum,\n saveVideoToPhotosAlbum,\n scanCode,\n setBackgroundColor,\n setBackgroundTextStyle,\n setClipboardData,\n setNavigationBarColor,\n setNavigationBarTitle,\n setStorage,\n setStorageSync,\n setTabBarBadge,\n setTabBarItem,\n setTabBarStyle,\n showActionSheet,\n showLoading,\n showModal,\n showNavigationBarLoading,\n showShareMenu,\n showTabBar,\n showTabBarRedDot,\n showToast,\n startPullDownRefresh,\n stopPullDownRefresh,\n switchTab,\n updateShareMenu,\n uploadFile,\n vibrateShort,\n} from './polyfill'\nexport type { AppHideCallback, AppHideOptions, AppLaunchOptions, AppShowCallback } from './polyfill'\nexport {\n disposeWebRouting,\n getWebRoutingConfig,\n resolveWebRoutingConfig,\n} from './polyfill/routeRuntime/history'\nexport type {\n ResolvedWebRoutingConfig,\n WebRouteHistoryState,\n WebRouteTarget,\n WebRoutingConfig,\n WebRoutingMode,\n} from './polyfill/routeRuntime/history'\nexport { createRenderContext } from './renderContext'\nexport type { RenderContext } from './renderContext'\nexport { setupRpx } from './rpx'\nexport type { RpxConfig } from './rpx'\nexport {\n configureWebSeo,\n resetWebDocumentHead,\n setupWebResourceHints,\n syncWebDocumentHead,\n updateWebDocumentTitle,\n} from './seo'\nexport type { WebPageHead, WebResourceHint, WebResourceHintRelation, WebResourceHintsConfig, WebSeoConfig } from './seo'\nexport { injectStyle, removeStyle } from './style'\nexport { createTemplate, renderTemplate } from './template'\nexport type { TemplateRenderer, TemplateScope } from './template'\nexport { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from './viewport'\nexport type { ResolvedWebViewportConfig, WebViewportConfig } from './viewport'\nexport { setRuntimeWarningOptions } from './warning'\nexport type { RuntimeWarningLevel, RuntimeWarningOptions } from './warning'\nexport {\n installWebModuleRegistration,\n registerWebWevuApp,\n registerWebWevuComponent,\n registerWebWevuComponentFactory,\n} from './wevu'\nexport * from 'wevu/internal-runtime'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sBAAsB;AACtB,0BAA0B"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/runtime/index.ts"],"sourcesContent":["import { installWebHostGlobals } from './hostGlobals'\nimport { installMiniProgramGlobals } from './polyfill'\n\ninstallWebHostGlobals()\ninstallMiniProgramGlobals()\n\nexport type { WebTabBarConfig, WebTabBarItem } from './appShell/tabBar'\nexport { ensureButtonDefined, setButtonFormConfig } from './button'\nexport type { ButtonFormConfig } from './button'\nexport { defineComponent } from './component'\nexport { bindRuntimeEvent } from './eventBinding'\nexport { getRuntimeExecutionMode, setRuntimeExecutionMode } from './execution'\nexport {\n getRuntimeClipboard,\n getRuntimeDialogs,\n getRuntimeFetch,\n getRuntimeStorage,\n getWebRuntimeHost,\n openRuntimeUrl,\n resetWebRuntimeHost,\n setWebRuntimeHost,\n} from './host'\nexport type { WebRuntimeClipboard, WebRuntimeDialogs, WebRuntimeHost, WebRuntimeStorage } from './host'\nexport { installWebHostGlobals } from './hostGlobals'\nexport {\n createInputEventDetail,\n createScrollEventDetail,\n createSwitchEventDetail,\n createTextareaLineChangeDetail,\n createVideoProgressDetail,\n createVideoTimeUpdateDetail,\n ensureNativeComponentsDefined,\n resolveImageModeStyle,\n resolveVideoObjectFit,\n} from './nativeComponents'\nexport { setNavigationBarMetrics } from './navigationBar'\nexport type { NavigationBarMetrics } from './navigationBar'\nexport { setPageLayout } from './pageLayout'\nexport {\n authorize,\n canIUse,\n checkSession,\n chooseAddress,\n chooseFile,\n chooseImage,\n chooseLocation,\n chooseMedia,\n chooseMessageFile,\n chooseVideo,\n clearStorage,\n clearStorageSync,\n compressImage,\n compressVideo,\n createCanvasContext,\n createInterstitialAd,\n createRewardedVideoAd,\n createSelectorQuery,\n createVideoContext,\n createVKSession,\n createWorker,\n downloadFile,\n exitMiniProgram,\n getAccountInfoSync,\n getAppAuthorizeSetting,\n getAppBaseInfo,\n getBatteryInfo,\n getBatteryInfoSync,\n getClipboardData,\n getDeviceInfo,\n getEnterOptionsSync,\n getExtConfig,\n getExtConfigSync,\n getFileSystemManager,\n getFuzzyLocation,\n getImageInfo,\n getLaunchOptionsSync,\n getLocation,\n getLogManager,\n getMenuButtonBoundingClientRect,\n getNetworkType,\n getSetting,\n getStorage,\n getStorageInfo,\n getStorageInfoSync,\n getStorageSync,\n getSystemInfo,\n getSystemInfoSync,\n getSystemSetting,\n getUpdateManager,\n getUserInfo,\n getUserProfile,\n getVideoInfo,\n getWindowInfo,\n hideKeyboard,\n hideLoading,\n hideNavigationBarLoading,\n hideTabBar,\n hideTabBarRedDot,\n initializePageRoutes,\n loadSubPackage,\n login,\n makePhoneCall,\n navigateBack,\n navigateTo,\n navigateToMiniProgram,\n nextTick,\n offAppHide,\n offAppRoute,\n offAppRouteDone,\n offAppShow,\n offBeforeAppRoute,\n offBeforePageUnload,\n offNetworkStatusChange,\n offWindowResize,\n onAppHide,\n onAppRoute,\n onAppRouteDone,\n onAppShow,\n onBeforeAppRoute,\n onBeforePageUnload,\n onNetworkStatusChange,\n onWindowResize,\n openAppAuthorizeSetting,\n openCustomerServiceChat,\n openDocument,\n openLocation,\n openSetting,\n openVideoEditor,\n pageScrollTo,\n preloadSubpackage,\n previewImage,\n previewMedia,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n removeStorage,\n removeStorageSync,\n removeTabBarBadge,\n reportAnalytics,\n request,\n requestPayment,\n requestSubscribeMessage,\n saveFile,\n saveFileToDisk,\n saveImageToPhotosAlbum,\n saveVideoToPhotosAlbum,\n scanCode,\n setBackgroundColor,\n setBackgroundTextStyle,\n setClipboardData,\n setNavigationBarColor,\n setNavigationBarTitle,\n setStorage,\n setStorageSync,\n setTabBarBadge,\n setTabBarItem,\n setTabBarStyle,\n showActionSheet,\n showLoading,\n showModal,\n showNavigationBarLoading,\n showShareMenu,\n showTabBar,\n showTabBarRedDot,\n showToast,\n startPullDownRefresh,\n stopPullDownRefresh,\n switchTab,\n updateShareMenu,\n uploadFile,\n vibrateShort,\n} from './polyfill'\nexport type { AppHideCallback, AppHideOptions, AppLaunchOptions, AppShowCallback } from './polyfill'\nexport type { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent } from './polyfill'\nexport {\n disposeWebRouting,\n getWebRoutingConfig,\n resolveWebRoutingConfig,\n} from './polyfill/routeRuntime/history'\nexport type {\n ResolvedWebRoutingConfig,\n WebRouteHistoryState,\n WebRouteTarget,\n WebRoutingConfig,\n WebRoutingMode,\n} from './polyfill/routeRuntime/history'\nexport { createRenderContext } from './renderContext'\nexport type { RenderContext } from './renderContext'\nexport { setupRpx } from './rpx'\nexport type { RpxConfig } from './rpx'\nexport {\n configureWebSeo,\n resetWebDocumentHead,\n setupWebResourceHints,\n syncWebDocumentHead,\n updateWebDocumentTitle,\n} from './seo'\nexport type { WebPageHead, WebResourceHint, WebResourceHintRelation, WebResourceHintsConfig, WebSeoConfig } from './seo'\nexport { injectStyle, removeStyle } from './style'\nexport { createTemplate, renderTemplate } from './template'\nexport type { TemplateRenderer, TemplateScope } from './template'\nexport { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from './viewport'\nexport type { ResolvedWebViewportConfig, WebViewportConfig } from './viewport'\nexport { setRuntimeWarningOptions } from './warning'\nexport type { RuntimeWarningLevel, RuntimeWarningOptions } from './warning'\nexport {\n installWebModuleRegistration,\n registerWebWevuApp,\n registerWebWevuComponent,\n registerWebWevuComponentFactory,\n} from './wevu'\nexport * from 'wevu/internal-runtime'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sBAAsB;AACtB,0BAA0B"}
@@ -3,6 +3,7 @@ import { AdBaseOptions, GetExtConfigOptions, InterstitialAd, RewardedVideoAd } f
3
3
  import { AppHideCallback, AppHideOptions, AppLaunchOptions, AppShowCallback } from "./routeRuntime/options.mjs";
4
4
  import { authorize, checkSession, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getDeviceInfo, getFuzzyLocation, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getWindowInfo, login, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openSetting, vibrateShort } from "./deviceAuthSystemApi.mjs";
5
5
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./routeRuntime.mjs";
6
+ import { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent, offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./routeRuntime/events.mjs";
6
7
  import { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./runtimeDataApi.mjs";
7
8
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./uiMediaApi.mjs";
8
9
  //#region src/runtime/polyfill/index.d.ts
@@ -36,5 +37,5 @@ export declare function getUpdateManager(): UpdateManager;
36
37
  export declare function getLogManager(options?: LogManagerOptions): LogManager;
37
38
  export declare function reportAnalytics(eventName: string, data?: Record<string, unknown>): void;
38
39
  //#endregion
39
- export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppShowCallback, authorize, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, removeTabBarBadge, request, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, vibrateShort };
40
+ export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppRouteCallback, type AppRouteEvent, type AppRouteOpenType, type AppShowCallback, type BeforePageUnloadCallback, type BeforePageUnloadEvent, authorize, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, removeTabBarBadge, request, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, vibrateShort };
40
41
  //# sourceMappingURL=index.d.mts.map
@@ -11,10 +11,13 @@ import { loadFontFace } from "./font.mjs";
11
11
  import { getLocale } from "./locale.mjs";
12
12
  import { createNavigationBarRuntimeBridge } from "./navigationBarRuntime.mjs";
13
13
  import { createInterstitialAdBridge, createRewardedVideoAdBridge, getExtConfigBridge, getExtConfigSyncBridge, getLogManagerBridge, getUpdateManagerBridge, reportAnalyticsBridge } from "./platformApi.mjs";
14
+ import { claimPageScrollRestoration } from "./routeRuntime/scroll.mjs";
14
15
  import { 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 } from "./runtimeDataApi.mjs";
16
+ import { offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./routeRuntime/events.mjs";
15
17
  import { getAppInstance, getCurrentPagesInternal, getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./routeRuntime.mjs";
16
18
  import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, uiMediaApi_exports, updateShareMenu } from "./uiMediaApi.mjs";
17
19
  import { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from "@weapp-core/shared/platforms/runtime";
20
+ import { WEVU_PAGE_SCROLL_EVENT_CONTRACT_KEY, WEVU_PAGE_SCROLL_RESTORATION_OWNER_KEY, WEVU_ROUTE_EVENT_CONTRACT_KEY } from "@weapp-core/constants";
18
21
 
19
22
  //#region src/runtime/polyfill/index.ts
20
23
  const MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys();
@@ -85,6 +88,17 @@ function installMiniProgramGlobals() {
85
88
  offAppShow,
86
89
  onAppHide,
87
90
  onAppShow,
91
+ offAppRoute,
92
+ offAppRouteDone,
93
+ offBeforeAppRoute,
94
+ offBeforePageUnload,
95
+ onAppRoute,
96
+ onAppRouteDone,
97
+ onBeforeAppRoute,
98
+ onBeforePageUnload,
99
+ [WEVU_PAGE_SCROLL_RESTORATION_OWNER_KEY]: claimPageScrollRestoration,
100
+ [WEVU_ROUTE_EVENT_CONTRACT_KEY]: 1,
101
+ [WEVU_PAGE_SCROLL_EVENT_CONTRACT_KEY]: 1,
88
102
  ...runtimeDataApi_exports,
89
103
  setNavigationBarTitle,
90
104
  setNavigationBarColor,
@@ -117,5 +131,5 @@ function installMiniProgramGlobals() {
117
131
  }
118
132
 
119
133
  //#endregion
120
- export { $emit, $off, $on, $once, authorize, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createIntersectionObserver, createInterstitialAd, createRewardedVideoAd, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, installMiniProgramGlobals, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppShow, offNetworkStatusChange, offWindowResize, onAppHide, onAppShow, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, removeTabBarBadge, reportAnalytics, request, requestPayment, requestSubscribeMessage, rpx2px, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setClipboardData, setNavigationBarColor, setNavigationBarTitle, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, upx2px, vibrateShort };
134
+ export { $emit, $off, $on, $once, authorize, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, createCanvasContext, createIntersectionObserver, createInterstitialAd, createRewardedVideoAd, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, installMiniProgramGlobals, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, removeStorage, removeStorageSync, removeTabBarBadge, reportAnalytics, request, requestPayment, requestSubscribeMessage, rpx2px, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setClipboardData, setNavigationBarColor, setNavigationBarTitle, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, updateShareMenu, uploadFile, upx2px, vibrateShort };
121
135
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["runtimeDataApi","uiMediaApi","deviceAuthSystemApi","eventBusApi"],"sources":["../../../src/runtime/polyfill/index.ts"],"sourcesContent":["import type {\n AdBaseOptions,\n CloudBridge,\n GetExtConfigOptions,\n InterstitialAd,\n LogManager,\n LogManagerOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n RewardedVideoAd,\n SetBackgroundColorOptions,\n SetBackgroundTextStyleOptions,\n UpdateManager,\n} from './types'\nimport { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from '@weapp-core/shared/platforms/runtime'\nimport { emitRuntimeWarning } from '../warning'\nimport { createAnimation } from './animation'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n setBackgroundColorBridge,\n setBackgroundTextStyleBridge,\n} from './background'\nimport { createCloudBridge } from './cloud'\nimport * as deviceAuthSystemApi from './deviceAuthSystemApi'\nimport * as eventBusApi from './eventBus'\nimport { WEB_USER_DATA_PATH } from './files'\nimport { loadFontFace } from './font'\nimport { getLocale } from './locale'\nimport { createNavigationBarRuntimeBridge } from './navigationBarRuntime'\nimport {\n createInterstitialAdBridge,\n createRewardedVideoAdBridge,\n getExtConfigBridge,\n getExtConfigSyncBridge,\n getLogManagerBridge,\n getUpdateManagerBridge,\n reportAnalyticsBridge,\n} from './platformApi'\nimport {\n getAppInstance,\n getCurrentPagesInternal,\n getEnterOptionsSync,\n getLaunchOptionsSync,\n navigateBack,\n navigateTo,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n redirectTo,\n reLaunch,\n switchTab,\n} from './routeRuntime'\nimport {\n canIUseBridge,\n} from './runtimeCapabilityApi'\nimport * as runtimeDataApi from './runtimeDataApi'\nimport * as uiMediaApi from './uiMediaApi'\n\nexport { createAnimation } from './animation'\nexport * from './deviceAuthSystemApi'\nexport * from './eventBus'\nexport { loadFontFace } from './font'\nexport { getLocale } from './locale'\n\nexport {\n getEnterOptionsSync,\n getLaunchOptionsSync,\n initializePageRoutes,\n navigateBack,\n navigateTo,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n switchTab,\n} from './routeRuntime'\n\nexport type { AppHideCallback, AppHideOptions, AppLaunchOptions, AppShowCallback } from './routeRuntime/options'\n\nexport * from './runtimeDataApi'\nexport * from './uiMediaApi'\n\nconst MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys()\nconst DEFAULT_MINI_PROGRAM_GLOBAL_KEY = getDefaultMiniProgramRuntimeGlobalKey()\nconst globalTarget = globalThis as Record<string, unknown>\n\nfunction resolveMiniProgramBridge() {\n for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n const candidate = globalTarget[runtimeGlobalKey]\n if (candidate && typeof candidate === 'object') {\n return candidate as Record<string, unknown>\n }\n }\n return undefined\n}\n\nconst navigationBarRuntimeBridge = createNavigationBarRuntimeBridge(\n () => getCurrentPagesInternal() as Array<HTMLElement & { renderRoot?: ShadowRoot | HTMLElement }>,\n emitRuntimeWarning,\n)\n\nexport function setNavigationBarTitle(options: { title: string }) {\n return navigationBarRuntimeBridge.setNavigationBarTitle(options)\n}\n\nexport function setNavigationBarColor(options: {\n frontColor?: string\n backgroundColor?: string\n animation?: { duration?: number, timingFunction?: string }\n}) {\n return navigationBarRuntimeBridge.setNavigationBarColor(options)\n}\n\nexport function showNavigationBarLoading() {\n return navigationBarRuntimeBridge.showNavigationBarLoading()\n}\n\nexport function hideNavigationBarLoading() {\n return navigationBarRuntimeBridge.hideNavigationBarLoading()\n}\n\nexport function setBackgroundColor(options?: SetBackgroundColorOptions) {\n return setBackgroundColorBridge(options)\n}\n\nexport function setBackgroundTextStyle(options?: SetBackgroundTextStyleOptions) {\n return setBackgroundTextStyleBridge(options)\n}\n\nexport function canIUse(schema: string) {\n return canIUseBridge(resolveMiniProgramBridge(), schema)\n}\n\nconst cloudBridge: CloudBridge = createCloudBridge(\n (options, result) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options, errMsg) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as CloudBridge\n\nexport function createRewardedVideoAd(options?: AdBaseOptions): RewardedVideoAd {\n return createRewardedVideoAdBridge(options)\n}\n\nexport function createInterstitialAd(options?: AdBaseOptions): InterstitialAd {\n return createInterstitialAdBridge(options)\n}\n\nexport function getExtConfigSync() {\n return getExtConfigSyncBridge()\n}\n\nexport function getExtConfig(options?: GetExtConfigOptions) {\n return getExtConfigBridge(options)\n}\n\nexport function getUpdateManager(): UpdateManager {\n return getUpdateManagerBridge()\n}\n\nexport function getLogManager(options?: LogManagerOptions): LogManager {\n return getLogManagerBridge(options)\n}\n\nexport function reportAnalytics(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsBridge(eventName, data)\n}\n\n/** 由公开运行时入口显式安装,确保拆分发布后的子模块不被摇树优化移除。 */\nexport function installMiniProgramGlobals(): void {\n const miniProgramBridge = (globalTarget[DEFAULT_MINI_PROGRAM_GLOBAL_KEY] as Record<string, unknown> | undefined) ?? {}\n Object.assign(miniProgramBridge, {\n navigateTo,\n navigateBack,\n redirectTo,\n switchTab,\n reLaunch,\n getLaunchOptionsSync,\n getEnterOptionsSync,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n ...runtimeDataApi,\n setNavigationBarTitle,\n setNavigationBarColor,\n setBackgroundColor,\n setBackgroundTextStyle,\n showNavigationBarLoading,\n hideNavigationBarLoading,\n ...uiMediaApi,\n ...deviceAuthSystemApi,\n ...eventBusApi,\n loadFontFace,\n getLocale,\n createAnimation,\n createRewardedVideoAd,\n createInterstitialAd,\n getExtConfigSync,\n getExtConfig,\n getUpdateManager,\n getLogManager,\n reportAnalytics,\n canIUse,\n cloud: cloudBridge,\n })\n const miniProgramEnv = (miniProgramBridge.env as Record<string, unknown> | undefined) ?? {}\n if (typeof miniProgramEnv.USER_DATA_PATH !== 'string' || !miniProgramEnv.USER_DATA_PATH.trim()) {\n miniProgramEnv.USER_DATA_PATH = WEB_USER_DATA_PATH\n }\n miniProgramBridge.env = miniProgramEnv\n for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n globalTarget[runtimeGlobalKey] = miniProgramBridge\n }\n if (typeof globalTarget.getApp !== 'function') {\n globalTarget.getApp = getAppInstance\n }\n if (typeof globalTarget.getCurrentPages !== 'function') {\n globalTarget.getCurrentPages = getCurrentPagesInternal\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA2FA,MAAM,2BAA2B,gCAAgC;AACjE,MAAM,kCAAkC,sCAAsC;AAC9E,MAAM,eAAe;AAErB,SAAS,2BAA2B;CAClC,KAAK,MAAM,oBAAoB,0BAA0B;EACvD,MAAM,YAAY,aAAa;EAC/B,IAAI,aAAa,OAAO,cAAc,UACpC,OAAO;CAEX;AAEF;AAEA,MAAM,6BAA6B,uCAC3B,wBAAwB,GAC9B,kBACF;AAEA,SAAgB,sBAAsB,SAA4B;CAChE,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,sBAAsB,SAInC;CACD,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,mBAAmB,SAAqC;CACtE,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,uBAAuB,SAAyC;CAC9E,OAAO,6BAA6B,OAAO;AAC7C;AAEA,SAAgB,QAAQ,QAAgB;CACtC,OAAO,cAAc,yBAAyB,GAAG,MAAM;AACzD;AAEA,MAAM,cAA2B,mBAC9B,SAAS,WAAW,4BACnB,SACA,MACF,IACC,SAAS,WAAW,4BACnB,SACA,MACF,CACF;AAEA,SAAgB,sBAAsB,SAA0C;CAC9E,OAAO,4BAA4B,OAAO;AAC5C;AAEA,SAAgB,qBAAqB,SAAyC;CAC5E,OAAO,2BAA2B,OAAO;AAC3C;AAEA,SAAgB,mBAAmB;CACjC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,mBAAkC;CAChD,OAAO,uBAAuB;AAChC;AAEA,SAAgB,cAAc,SAAyC;CACrE,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,gBAAgB,WAAmB,MAAgC;CACjF,sBAAsB,WAAW,IAAI;AACvC;;AAGA,SAAgB,4BAAkC;CAChD,MAAM,oBAAqB,aAAa,oCAA4E,CAAC;CACrH,OAAO,OAAO,mBAAmB;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAGA;EACH;EACA;EACA;EACA;EACA;EACA;EACA,GAAGC;EACH,GAAGC;EACH,GAAGC;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;CACT,CAAC;CACD,MAAM,iBAAkB,kBAAkB,OAA+C,CAAC;CAC1F,IAAI,OAAO,eAAe,mBAAmB,YAAY,CAAC,eAAe,eAAe,KAAK,GAC3F,eAAe,iBAAiB;CAElC,kBAAkB,MAAM;CACxB,KAAK,MAAM,oBAAoB,0BAC7B,aAAa,oBAAoB;CAEnC,IAAI,OAAO,aAAa,WAAW,YACjC,aAAa,SAAS;CAExB,IAAI,OAAO,aAAa,oBAAoB,YAC1C,aAAa,kBAAkB;AAEnC"}
1
+ {"version":3,"file":"index.mjs","names":["runtimeDataApi","uiMediaApi","deviceAuthSystemApi","eventBusApi"],"sources":["../../../src/runtime/polyfill/index.ts"],"sourcesContent":["import type {\n AdBaseOptions,\n CloudBridge,\n GetExtConfigOptions,\n InterstitialAd,\n LogManager,\n LogManagerOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n RewardedVideoAd,\n SetBackgroundColorOptions,\n SetBackgroundTextStyleOptions,\n UpdateManager,\n} from './types'\nimport { WEVU_PAGE_SCROLL_EVENT_CONTRACT_KEY, WEVU_PAGE_SCROLL_RESTORATION_OWNER_KEY, WEVU_ROUTE_EVENT_CONTRACT_KEY } from '@weapp-core/constants'\nimport { getDefaultMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys } from '@weapp-core/shared/platforms/runtime'\nimport { emitRuntimeWarning } from '../warning'\nimport { createAnimation } from './animation'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n setBackgroundColorBridge,\n setBackgroundTextStyleBridge,\n} from './background'\nimport { createCloudBridge } from './cloud'\nimport * as deviceAuthSystemApi from './deviceAuthSystemApi'\nimport * as eventBusApi from './eventBus'\nimport { WEB_USER_DATA_PATH } from './files'\nimport { loadFontFace } from './font'\nimport { getLocale } from './locale'\nimport { createNavigationBarRuntimeBridge } from './navigationBarRuntime'\nimport {\n createInterstitialAdBridge,\n createRewardedVideoAdBridge,\n getExtConfigBridge,\n getExtConfigSyncBridge,\n getLogManagerBridge,\n getUpdateManagerBridge,\n reportAnalyticsBridge,\n} from './platformApi'\nimport {\n getAppInstance,\n getCurrentPagesInternal,\n getEnterOptionsSync,\n getLaunchOptionsSync,\n navigateBack,\n navigateTo,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n redirectTo,\n reLaunch,\n switchTab,\n} from './routeRuntime'\nimport {\n offAppRoute,\n offAppRouteDone,\n offBeforeAppRoute,\n offBeforePageUnload,\n onAppRoute,\n onAppRouteDone,\n onBeforeAppRoute,\n onBeforePageUnload,\n} from './routeRuntime/events'\nimport { claimPageScrollRestoration } from './routeRuntime/scroll'\nimport {\n canIUseBridge,\n} from './runtimeCapabilityApi'\nimport * as runtimeDataApi from './runtimeDataApi'\nimport * as uiMediaApi from './uiMediaApi'\n\nexport { createAnimation } from './animation'\nexport * from './deviceAuthSystemApi'\nexport * from './eventBus'\nexport { loadFontFace } from './font'\nexport { getLocale } from './locale'\n\nexport {\n getEnterOptionsSync,\n getLaunchOptionsSync,\n initializePageRoutes,\n navigateBack,\n navigateTo,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n redirectTo,\n registerApp,\n registerComponent,\n registerPage,\n reLaunch,\n switchTab,\n} from './routeRuntime'\n\nexport {\n offAppRoute,\n offAppRouteDone,\n offBeforeAppRoute,\n offBeforePageUnload,\n onAppRoute,\n onAppRouteDone,\n onBeforeAppRoute,\n onBeforePageUnload,\n} from './routeRuntime/events'\nexport type { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent } from './routeRuntime/events'\n\nexport type { AppHideCallback, AppHideOptions, AppLaunchOptions, AppShowCallback } from './routeRuntime/options'\n\nexport * from './runtimeDataApi'\nexport * from './uiMediaApi'\n\nconst MINI_PROGRAM_GLOBAL_KEYS = getMiniProgramRuntimeGlobalKeys()\nconst DEFAULT_MINI_PROGRAM_GLOBAL_KEY = getDefaultMiniProgramRuntimeGlobalKey()\nconst globalTarget = globalThis as Record<string, unknown>\n\nfunction resolveMiniProgramBridge() {\n for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n const candidate = globalTarget[runtimeGlobalKey]\n if (candidate && typeof candidate === 'object') {\n return candidate as Record<string, unknown>\n }\n }\n return undefined\n}\n\nconst navigationBarRuntimeBridge = createNavigationBarRuntimeBridge(\n () => getCurrentPagesInternal() as Array<HTMLElement & { renderRoot?: ShadowRoot | HTMLElement }>,\n emitRuntimeWarning,\n)\n\nexport function setNavigationBarTitle(options: { title: string }) {\n return navigationBarRuntimeBridge.setNavigationBarTitle(options)\n}\n\nexport function setNavigationBarColor(options: {\n frontColor?: string\n backgroundColor?: string\n animation?: { duration?: number, timingFunction?: string }\n}) {\n return navigationBarRuntimeBridge.setNavigationBarColor(options)\n}\n\nexport function showNavigationBarLoading() {\n return navigationBarRuntimeBridge.showNavigationBarLoading()\n}\n\nexport function hideNavigationBarLoading() {\n return navigationBarRuntimeBridge.hideNavigationBarLoading()\n}\n\nexport function setBackgroundColor(options?: SetBackgroundColorOptions) {\n return setBackgroundColorBridge(options)\n}\n\nexport function setBackgroundTextStyle(options?: SetBackgroundTextStyleOptions) {\n return setBackgroundTextStyleBridge(options)\n}\n\nexport function canIUse(schema: string) {\n return canIUseBridge(resolveMiniProgramBridge(), schema)\n}\n\nconst cloudBridge: CloudBridge = createCloudBridge(\n (options, result) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options, errMsg) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as CloudBridge\n\nexport function createRewardedVideoAd(options?: AdBaseOptions): RewardedVideoAd {\n return createRewardedVideoAdBridge(options)\n}\n\nexport function createInterstitialAd(options?: AdBaseOptions): InterstitialAd {\n return createInterstitialAdBridge(options)\n}\n\nexport function getExtConfigSync() {\n return getExtConfigSyncBridge()\n}\n\nexport function getExtConfig(options?: GetExtConfigOptions) {\n return getExtConfigBridge(options)\n}\n\nexport function getUpdateManager(): UpdateManager {\n return getUpdateManagerBridge()\n}\n\nexport function getLogManager(options?: LogManagerOptions): LogManager {\n return getLogManagerBridge(options)\n}\n\nexport function reportAnalytics(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsBridge(eventName, data)\n}\n\n/** 由公开运行时入口显式安装,确保拆分发布后的子模块不被摇树优化移除。 */\nexport function installMiniProgramGlobals(): void {\n const miniProgramBridge = (globalTarget[DEFAULT_MINI_PROGRAM_GLOBAL_KEY] as Record<string, unknown> | undefined) ?? {}\n Object.assign(miniProgramBridge, {\n navigateTo,\n navigateBack,\n redirectTo,\n switchTab,\n reLaunch,\n getLaunchOptionsSync,\n getEnterOptionsSync,\n offAppHide,\n offAppShow,\n onAppHide,\n onAppShow,\n offAppRoute,\n offAppRouteDone,\n offBeforeAppRoute,\n offBeforePageUnload,\n onAppRoute,\n onAppRouteDone,\n onBeforeAppRoute,\n onBeforePageUnload,\n [WEVU_PAGE_SCROLL_RESTORATION_OWNER_KEY]: claimPageScrollRestoration,\n [WEVU_ROUTE_EVENT_CONTRACT_KEY]: 1,\n [WEVU_PAGE_SCROLL_EVENT_CONTRACT_KEY]: 1,\n ...runtimeDataApi,\n setNavigationBarTitle,\n setNavigationBarColor,\n setBackgroundColor,\n setBackgroundTextStyle,\n showNavigationBarLoading,\n hideNavigationBarLoading,\n ...uiMediaApi,\n ...deviceAuthSystemApi,\n ...eventBusApi,\n loadFontFace,\n getLocale,\n createAnimation,\n createRewardedVideoAd,\n createInterstitialAd,\n getExtConfigSync,\n getExtConfig,\n getUpdateManager,\n getLogManager,\n reportAnalytics,\n canIUse,\n cloud: cloudBridge,\n })\n const miniProgramEnv = (miniProgramBridge.env as Record<string, unknown> | undefined) ?? {}\n if (typeof miniProgramEnv.USER_DATA_PATH !== 'string' || !miniProgramEnv.USER_DATA_PATH.trim()) {\n miniProgramEnv.USER_DATA_PATH = WEB_USER_DATA_PATH\n }\n miniProgramBridge.env = miniProgramEnv\n for (const runtimeGlobalKey of MINI_PROGRAM_GLOBAL_KEYS) {\n globalTarget[runtimeGlobalKey] = miniProgramBridge\n }\n if (typeof globalTarget.getApp !== 'function') {\n globalTarget.getApp = getAppInstance\n }\n if (typeof globalTarget.getCurrentPages !== 'function') {\n globalTarget.getCurrentPages = getCurrentPagesInternal\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmHA,MAAM,2BAA2B,gCAAgC;AACjE,MAAM,kCAAkC,sCAAsC;AAC9E,MAAM,eAAe;AAErB,SAAS,2BAA2B;CAClC,KAAK,MAAM,oBAAoB,0BAA0B;EACvD,MAAM,YAAY,aAAa;EAC/B,IAAI,aAAa,OAAO,cAAc,UACpC,OAAO;CAEX;AAEF;AAEA,MAAM,6BAA6B,uCAC3B,wBAAwB,GAC9B,kBACF;AAEA,SAAgB,sBAAsB,SAA4B;CAChE,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,sBAAsB,SAInC;CACD,OAAO,2BAA2B,sBAAsB,OAAO;AACjE;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,2BAA2B;CACzC,OAAO,2BAA2B,yBAAyB;AAC7D;AAEA,SAAgB,mBAAmB,SAAqC;CACtE,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,uBAAuB,SAAyC;CAC9E,OAAO,6BAA6B,OAAO;AAC7C;AAEA,SAAgB,QAAQ,QAAgB;CACtC,OAAO,cAAc,yBAAyB,GAAG,MAAM;AACzD;AAEA,MAAM,cAA2B,mBAC9B,SAAS,WAAW,4BACnB,SACA,MACF,IACC,SAAS,WAAW,4BACnB,SACA,MACF,CACF;AAEA,SAAgB,sBAAsB,SAA0C;CAC9E,OAAO,4BAA4B,OAAO;AAC5C;AAEA,SAAgB,qBAAqB,SAAyC;CAC5E,OAAO,2BAA2B,OAAO;AAC3C;AAEA,SAAgB,mBAAmB;CACjC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,mBAAkC;CAChD,OAAO,uBAAuB;AAChC;AAEA,SAAgB,cAAc,SAAyC;CACrE,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,gBAAgB,WAAmB,MAAgC;CACjF,sBAAsB,WAAW,IAAI;AACvC;;AAGA,SAAgB,4BAAkC;CAChD,MAAM,oBAAqB,aAAa,oCAA4E,CAAC;CACrH,OAAO,OAAO,mBAAmB;EAC/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC,yCAAyC;GACzC,gCAAgC;GAChC,sCAAsC;EACvC,GAAGA;EACH;EACA;EACA;EACA;EACA;EACA;EACA,GAAGC;EACH,GAAGC;EACH,GAAGC;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;CACT,CAAC;CACD,MAAM,iBAAkB,kBAAkB,OAA+C,CAAC;CAC1F,IAAI,OAAO,eAAe,mBAAmB,YAAY,CAAC,eAAe,eAAe,KAAK,GAC3F,eAAe,iBAAiB;CAElC,kBAAkB,MAAM;CACxB,KAAK,MAAM,oBAAoB,0BAC7B,aAAa,oBAAoB;CAEnC,IAAI,OAAO,aAAa,WAAW,YACjC,aAAa,SAAS;CAExB,IAAI,OAAO,aAAa,oBAAoB,YAC1C,aAAa,kBAAkB;AAEnC"}
@@ -1,5 +1,6 @@
1
1
  import { ensureAppContainer, onDocumentReady } from "../../appShell/container.mjs";
2
2
  import { bindPageScrollOwner, getPageContainer, restoreEntryScrollPosition, setEntryScrollOwner } from "./scroll.mjs";
3
+ import { cancelEntryRoute } from "./events.mjs";
3
4
  import { attachRouteMeta } from "./lifecycle.mjs";
4
5
 
5
6
  //#region src/runtime/polyfill/routeRuntime/dom.ts
@@ -27,6 +28,8 @@ function setEntryActiveInDom(entry, active) {
27
28
  applyEntryVisibility(entry);
28
29
  }
29
30
  function unmountEntryFromDom(entry) {
31
+ cancelEntryRoute(entry);
32
+ entry.destroyed = true;
30
33
  setEntryScrollOwner(entry, false);
31
34
  const element = entry.element;
32
35
  if (!element) {
@@ -41,6 +44,7 @@ function mountEntryToDom(entry, pageRegistry, onBeforeMount) {
41
44
  const record = pageRegistry.get(entry.id);
42
45
  if (!record || entry.element) return;
43
46
  onDocumentReady(() => {
47
+ if (entry.destroyed) return;
44
48
  const container = ensureAppContainer();
45
49
  if (!container) return;
46
50
  bindPageScrollOwner(container);
@@ -57,6 +61,7 @@ function mountEntryToDom(entry, pageRegistry, onBeforeMount) {
57
61
  });
58
62
  container.append(element);
59
63
  if (entry.active) restoreEntryScrollPosition(entry);
64
+ entry.onRouteMounted?.();
60
65
  });
61
66
  }
62
67
 
@@ -1 +1 @@
1
- {"version":3,"file":"dom.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/dom.ts"],"sourcesContent":["import type { ComponentPublicInstance } from '../../component'\nimport type { PageRecord, PageStackEntry } from './options'\nimport { ensureAppContainer, onDocumentReady } from '../../appShell/container'\nimport { attachRouteMeta } from './lifecycle'\nimport {\n bindPageScrollOwner,\n restoreEntryScrollPosition,\n setEntryScrollOwner,\n} from './scroll'\n\nfunction applyEntryVisibility(entry: PageStackEntry) {\n const element = entry.element\n if (!element) {\n return\n }\n const currentStyle = element.getAttribute('style') ?? ''\n const styleWithoutDisplay = currentStyle\n .replace(/(?:^|;)\\s*display\\s*:[^;]*/gi, '')\n .replace(/^;|;$/g, '')\n const setDisplay = (display: 'block' | 'none') => {\n element.setAttribute('style', `${styleWithoutDisplay}${styleWithoutDisplay ? ';' : ''}display:${display};`)\n }\n element.setAttribute('data-weapp-page-active', entry.active ? 'true' : 'false')\n setEntryScrollOwner(entry, entry.active)\n if (entry.active) {\n setDisplay('block')\n element.removeAttribute('hidden')\n element.removeAttribute('aria-hidden')\n return\n }\n // 自定义页面元素挂载时带有内联 display,必须同步清零才能真正隐藏。\n setDisplay('none')\n element.setAttribute('hidden', '')\n element.setAttribute('aria-hidden', 'true')\n}\n\nexport function setEntryActiveInDom(entry: PageStackEntry, active: boolean) {\n entry.active = active\n applyEntryVisibility(entry)\n}\n\nexport function unmountEntryFromDom(entry: PageStackEntry) {\n setEntryScrollOwner(entry, false)\n const element = entry.element\n if (!element) {\n entry.instance = undefined\n return\n }\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n entry.element = undefined\n entry.instance = undefined\n}\n\nexport function mountEntryToDom(\n entry: PageStackEntry,\n pageRegistry: Map<string, PageRecord>,\n onBeforeMount: (entry: PageStackEntry) => void,\n) {\n const record = pageRegistry.get(entry.id)\n if (!record || entry.element) {\n return\n }\n onDocumentReady(() => {\n const container = ensureAppContainer()\n if (!container) {\n return\n }\n bindPageScrollOwner(container)\n onBeforeMount(entry)\n const element = document.createElement(record.tag) as HTMLElement & ComponentPublicInstance\n element.setAttribute('data-weapp-page', entry.id)\n element.setAttribute('style', 'display:block;min-height:100%;box-sizing:border-box;padding-bottom:var(--weapp-tab-bar-inset, 0px);padding-top:var(--weapp-tab-bar-top-inset, 0px);')\n entry.element = element\n applyEntryVisibility(entry)\n attachRouteMeta(element, {\n id: entry.id,\n query: entry.query,\n entry,\n })\n container.append(element)\n if (entry.active) {\n restoreEntryScrollPosition(entry)\n }\n })\n}\n\nexport { getPageContainer } from './scroll'\n"],"mappings":";;;;;AAUA,SAAS,qBAAqB,OAAuB;CACnD,MAAM,UAAU,MAAM;CACtB,IAAI,CAAC,SACH;CAGF,MAAM,uBADe,QAAQ,aAAa,OAAO,KAAK,GACd,CACrC,QAAQ,gCAAgC,EAAE,CAAC,CAC3C,QAAQ,UAAU,EAAE;CACvB,MAAM,cAAc,YAA8B;EAChD,QAAQ,aAAa,SAAS,GAAG,sBAAsB,sBAAsB,MAAM,GAAG,UAAU,QAAQ,EAAE;CAC5G;CACA,QAAQ,aAAa,0BAA0B,MAAM,SAAS,SAAS,OAAO;CAC9E,oBAAoB,OAAO,MAAM,MAAM;CACvC,IAAI,MAAM,QAAQ;EAChB,WAAW,OAAO;EAClB,QAAQ,gBAAgB,QAAQ;EAChC,QAAQ,gBAAgB,aAAa;EACrC;CACF;CAEA,WAAW,MAAM;CACjB,QAAQ,aAAa,UAAU,EAAE;CACjC,QAAQ,aAAa,eAAe,MAAM;AAC5C;AAEA,SAAgB,oBAAoB,OAAuB,QAAiB;CAC1E,MAAM,SAAS;CACf,qBAAqB,KAAK;AAC5B;AAEA,SAAgB,oBAAoB,OAAuB;CACzD,oBAAoB,OAAO,KAAK;CAChC,MAAM,UAAU,MAAM;CACtB,IAAI,CAAC,SAAS;EACZ,MAAM,WAAW;EACjB;CACF;CACA,IAAI,QAAQ,YACV,QAAQ,WAAW,YAAY,OAAO;CAExC,MAAM,UAAU;CAChB,MAAM,WAAW;AACnB;AAEA,SAAgB,gBACd,OACA,cACA,eACA;CACA,MAAM,SAAS,aAAa,IAAI,MAAM,EAAE;CACxC,IAAI,CAAC,UAAU,MAAM,SACnB;CAEF,sBAAsB;EACpB,MAAM,YAAY,mBAAmB;EACrC,IAAI,CAAC,WACH;EAEF,oBAAoB,SAAS;EAC7B,cAAc,KAAK;EACnB,MAAM,UAAU,SAAS,cAAc,OAAO,GAAG;EACjD,QAAQ,aAAa,mBAAmB,MAAM,EAAE;EAChD,QAAQ,aAAa,SAAS,qJAAqJ;EACnL,MAAM,UAAU;EAChB,qBAAqB,KAAK;EAC1B,gBAAgB,SAAS;GACvB,IAAI,MAAM;GACV,OAAO,MAAM;GACb;EACF,CAAC;EACD,UAAU,OAAO,OAAO;EACxB,IAAI,MAAM,QACR,2BAA2B,KAAK;CAEpC,CAAC;AACH"}
1
+ {"version":3,"file":"dom.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/dom.ts"],"sourcesContent":["import type { ComponentPublicInstance } from '../../component'\nimport type { PageRecord, PageStackEntry } from './options'\nimport { ensureAppContainer, onDocumentReady } from '../../appShell/container'\nimport { cancelEntryRoute } from './events'\nimport { attachRouteMeta } from './lifecycle'\nimport {\n bindPageScrollOwner,\n restoreEntryScrollPosition,\n setEntryScrollOwner,\n} from './scroll'\n\nfunction applyEntryVisibility(entry: PageStackEntry) {\n const element = entry.element\n if (!element) {\n return\n }\n const currentStyle = element.getAttribute('style') ?? ''\n const styleWithoutDisplay = currentStyle\n .replace(/(?:^|;)\\s*display\\s*:[^;]*/gi, '')\n .replace(/^;|;$/g, '')\n const setDisplay = (display: 'block' | 'none') => {\n element.setAttribute('style', `${styleWithoutDisplay}${styleWithoutDisplay ? ';' : ''}display:${display};`)\n }\n element.setAttribute('data-weapp-page-active', entry.active ? 'true' : 'false')\n setEntryScrollOwner(entry, entry.active)\n if (entry.active) {\n setDisplay('block')\n element.removeAttribute('hidden')\n element.removeAttribute('aria-hidden')\n return\n }\n // 自定义页面元素挂载时带有内联 display,必须同步清零才能真正隐藏。\n setDisplay('none')\n element.setAttribute('hidden', '')\n element.setAttribute('aria-hidden', 'true')\n}\n\nexport function setEntryActiveInDom(entry: PageStackEntry, active: boolean) {\n entry.active = active\n applyEntryVisibility(entry)\n}\n\nexport function unmountEntryFromDom(entry: PageStackEntry) {\n cancelEntryRoute(entry)\n entry.destroyed = true\n setEntryScrollOwner(entry, false)\n const element = entry.element\n if (!element) {\n entry.instance = undefined\n return\n }\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n entry.element = undefined\n entry.instance = undefined\n}\n\nexport function mountEntryToDom(\n entry: PageStackEntry,\n pageRegistry: Map<string, PageRecord>,\n onBeforeMount: (entry: PageStackEntry) => void,\n) {\n const record = pageRegistry.get(entry.id)\n if (!record || entry.element) {\n return\n }\n onDocumentReady(() => {\n if (entry.destroyed) {\n return\n }\n const container = ensureAppContainer()\n if (!container) {\n return\n }\n bindPageScrollOwner(container)\n onBeforeMount(entry)\n const element = document.createElement(record.tag) as HTMLElement & ComponentPublicInstance\n element.setAttribute('data-weapp-page', entry.id)\n element.setAttribute('style', 'display:block;min-height:100%;box-sizing:border-box;padding-bottom:var(--weapp-tab-bar-inset, 0px);padding-top:var(--weapp-tab-bar-top-inset, 0px);')\n entry.element = element\n applyEntryVisibility(entry)\n attachRouteMeta(element, {\n id: entry.id,\n query: entry.query,\n entry,\n })\n container.append(element)\n if (entry.active) {\n restoreEntryScrollPosition(entry)\n }\n entry.onRouteMounted?.()\n })\n}\n\nexport { getPageContainer } from './scroll'\n"],"mappings":";;;;;;AAWA,SAAS,qBAAqB,OAAuB;CACnD,MAAM,UAAU,MAAM;CACtB,IAAI,CAAC,SACH;CAGF,MAAM,uBADe,QAAQ,aAAa,OAAO,KAAK,GACd,CACrC,QAAQ,gCAAgC,EAAE,CAAC,CAC3C,QAAQ,UAAU,EAAE;CACvB,MAAM,cAAc,YAA8B;EAChD,QAAQ,aAAa,SAAS,GAAG,sBAAsB,sBAAsB,MAAM,GAAG,UAAU,QAAQ,EAAE;CAC5G;CACA,QAAQ,aAAa,0BAA0B,MAAM,SAAS,SAAS,OAAO;CAC9E,oBAAoB,OAAO,MAAM,MAAM;CACvC,IAAI,MAAM,QAAQ;EAChB,WAAW,OAAO;EAClB,QAAQ,gBAAgB,QAAQ;EAChC,QAAQ,gBAAgB,aAAa;EACrC;CACF;CAEA,WAAW,MAAM;CACjB,QAAQ,aAAa,UAAU,EAAE;CACjC,QAAQ,aAAa,eAAe,MAAM;AAC5C;AAEA,SAAgB,oBAAoB,OAAuB,QAAiB;CAC1E,MAAM,SAAS;CACf,qBAAqB,KAAK;AAC5B;AAEA,SAAgB,oBAAoB,OAAuB;CACzD,iBAAiB,KAAK;CACtB,MAAM,YAAY;CAClB,oBAAoB,OAAO,KAAK;CAChC,MAAM,UAAU,MAAM;CACtB,IAAI,CAAC,SAAS;EACZ,MAAM,WAAW;EACjB;CACF;CACA,IAAI,QAAQ,YACV,QAAQ,WAAW,YAAY,OAAO;CAExC,MAAM,UAAU;CAChB,MAAM,WAAW;AACnB;AAEA,SAAgB,gBACd,OACA,cACA,eACA;CACA,MAAM,SAAS,aAAa,IAAI,MAAM,EAAE;CACxC,IAAI,CAAC,UAAU,MAAM,SACnB;CAEF,sBAAsB;EACpB,IAAI,MAAM,WACR;EAEF,MAAM,YAAY,mBAAmB;EACrC,IAAI,CAAC,WACH;EAEF,oBAAoB,SAAS;EAC7B,cAAc,KAAK;EACnB,MAAM,UAAU,SAAS,cAAc,OAAO,GAAG;EACjD,QAAQ,aAAa,mBAAmB,MAAM,EAAE;EAChD,QAAQ,aAAa,SAAS,qJAAqJ;EACnL,MAAM,UAAU;EAChB,qBAAqB,KAAK;EAC1B,gBAAgB,SAAS;GACvB,IAAI,MAAM;GACV,OAAO,MAAM;GACb;EACF,CAAC;EACD,UAAU,OAAO,OAAO;EACxB,IAAI,MAAM,QACR,2BAA2B,KAAK;EAElC,MAAM,iBAAiB;CACzB,CAAC;AACH"}
@@ -0,0 +1,29 @@
1
+ import { ComponentPublicInstance } from "../../component/types.mjs";
2
+ import "../../component/index.mjs";
3
+ import "./options.mjs";
4
+ //#region src/runtime/polyfill/routeRuntime/events.d.ts
5
+ export type AppRouteOpenType = 'appLaunch' | 'navigateTo' | 'redirectTo' | 'navigateBack' | 'switchTab' | 'reLaunch';
6
+ export interface AppRouteEvent {
7
+ routeEventId: string;
8
+ path: string;
9
+ query: Record<string, string>;
10
+ openType: AppRouteOpenType;
11
+ webviewId: number;
12
+ renderer: 'webview';
13
+ page?: ComponentPublicInstance;
14
+ }
15
+ export interface BeforePageUnloadEvent extends AppRouteEvent {
16
+ page: ComponentPublicInstance;
17
+ }
18
+ export type AppRouteCallback = (event: AppRouteEvent) => void;
19
+ export type BeforePageUnloadCallback = (event: BeforePageUnloadEvent) => void;
20
+ export declare function onBeforeAppRoute(callback: AppRouteCallback): void;
21
+ export declare function offBeforeAppRoute(callback?: AppRouteCallback): void;
22
+ export declare function onAppRoute(callback: AppRouteCallback): void;
23
+ export declare function offAppRoute(callback?: AppRouteCallback): void;
24
+ export declare function onAppRouteDone(callback: AppRouteCallback): void;
25
+ export declare function offAppRouteDone(callback?: AppRouteCallback): void;
26
+ export declare function onBeforePageUnload(callback: BeforePageUnloadCallback): void;
27
+ export declare function offBeforePageUnload(callback?: BeforePageUnloadCallback): void;
28
+ //#endregion
29
+ //# sourceMappingURL=events.d.mts.map
@@ -0,0 +1,123 @@
1
+ import { WEVU_HOST_COMMIT_PROMISE_KEY } from "@weapp-core/constants";
2
+
3
+ //#region src/runtime/polyfill/routeRuntime/events.ts
4
+ const beforeCallbacks = /* @__PURE__ */ new Set();
5
+ const routeCallbacks = /* @__PURE__ */ new Set();
6
+ const doneCallbacks = /* @__PURE__ */ new Set();
7
+ const unloadCallbacks = /* @__PURE__ */ new Set();
8
+ const webviewIds = /* @__PURE__ */ new WeakMap();
9
+ let nextWebviewId = 0;
10
+ let nextRouteEventId = 0;
11
+ function onBeforeAppRoute(callback) {
12
+ beforeCallbacks.add(callback);
13
+ }
14
+ function offBeforeAppRoute(callback) {
15
+ if (callback) beforeCallbacks.delete(callback);
16
+ else beforeCallbacks.clear();
17
+ }
18
+ function onAppRoute(callback) {
19
+ routeCallbacks.add(callback);
20
+ }
21
+ function offAppRoute(callback) {
22
+ if (callback) routeCallbacks.delete(callback);
23
+ else routeCallbacks.clear();
24
+ }
25
+ function onAppRouteDone(callback) {
26
+ doneCallbacks.add(callback);
27
+ }
28
+ function offAppRouteDone(callback) {
29
+ if (callback) doneCallbacks.delete(callback);
30
+ else doneCallbacks.clear();
31
+ }
32
+ function onBeforePageUnload(callback) {
33
+ unloadCallbacks.add(callback);
34
+ }
35
+ function offBeforePageUnload(callback) {
36
+ if (callback) unloadCallbacks.delete(callback);
37
+ else unloadCallbacks.clear();
38
+ }
39
+ function emit(callbacks, event) {
40
+ if (!callbacks.size) return;
41
+ for (const callback of [...callbacks]) try {
42
+ callback(event);
43
+ } catch (error) {
44
+ console.error(error);
45
+ }
46
+ }
47
+ function getEntryWebviewId(entry) {
48
+ let id = webviewIds.get(entry);
49
+ if (id === void 0) {
50
+ id = ++nextWebviewId;
51
+ webviewIds.set(entry, id);
52
+ }
53
+ return id;
54
+ }
55
+ function beginAppRoute(entry, openType) {
56
+ const event = {
57
+ routeEventId: `web-route-${++nextRouteEventId}`,
58
+ path: entry.id,
59
+ query: { ...entry.query },
60
+ openType,
61
+ webviewId: getEntryWebviewId(entry),
62
+ renderer: "webview"
63
+ };
64
+ entry.routeEventId = event.routeEventId;
65
+ emit(beforeCallbacks, event);
66
+ return event;
67
+ }
68
+ function emitBeforePageUnload(entry, event) {
69
+ if (entry.instance) emit(unloadCallbacks, {
70
+ ...event,
71
+ path: entry.id,
72
+ query: { ...entry.query },
73
+ webviewId: getEntryWebviewId(entry),
74
+ page: entry.instance
75
+ });
76
+ }
77
+ function cancelEntryRoute(entry) {
78
+ entry.routeEventId = void 0;
79
+ entry.onRouteMounted = void 0;
80
+ entry.onRouteReady = void 0;
81
+ }
82
+ /** 路由成功与页面提交分别由栈操作和真实生命周期确认,不依赖 API Promise 或定时器。 */
83
+ function finishAppRoute(entry, event) {
84
+ const isCurrent = () => entry.active && !entry.destroyed && entry.routeEventId === event.routeEventId;
85
+ const finishReady = async () => {
86
+ if (!isCurrent() || !entry.instance || !entry.ready) return;
87
+ entry.onRouteReady = void 0;
88
+ const page = entry.instance;
89
+ try {
90
+ let commit;
91
+ do {
92
+ commit = page[WEVU_HOST_COMMIT_PROMISE_KEY];
93
+ await commit;
94
+ if (!isCurrent() || entry.instance !== page) return;
95
+ } while (page[WEVU_HOST_COMMIT_PROMISE_KEY] !== commit);
96
+ emit(doneCallbacks, {
97
+ ...event,
98
+ page
99
+ });
100
+ } catch (error) {
101
+ console.error(error);
102
+ }
103
+ };
104
+ const finishMounted = () => {
105
+ if (!isCurrent() || !entry.instance) return;
106
+ entry.onRouteMounted = void 0;
107
+ emit(routeCallbacks, {
108
+ ...event,
109
+ page: entry.instance
110
+ });
111
+ if (!isCurrent()) return;
112
+ entry.onRouteReady = () => {
113
+ finishReady();
114
+ };
115
+ finishReady();
116
+ };
117
+ entry.onRouteMounted = finishMounted;
118
+ if (entry.instance) finishMounted();
119
+ }
120
+
121
+ //#endregion
122
+ export { beginAppRoute, cancelEntryRoute, emitBeforePageUnload, finishAppRoute, getEntryWebviewId, offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload };
123
+ //# sourceMappingURL=events.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/events.ts"],"sourcesContent":["import type { ComponentPublicInstance } from '../../component'\nimport type { PageStackEntry } from './options'\nimport { WEVU_HOST_COMMIT_PROMISE_KEY } from '@weapp-core/constants'\n\nexport type AppRouteOpenType = 'appLaunch' | 'navigateTo' | 'redirectTo' | 'navigateBack' | 'switchTab' | 'reLaunch'\n\nexport interface AppRouteEvent {\n routeEventId: string\n path: string\n query: Record<string, string>\n openType: AppRouteOpenType\n webviewId: number\n renderer: 'webview'\n page?: ComponentPublicInstance\n}\n\nexport interface BeforePageUnloadEvent extends AppRouteEvent {\n page: ComponentPublicInstance\n}\n\nexport type AppRouteCallback = (event: AppRouteEvent) => void\nexport type BeforePageUnloadCallback = (event: BeforePageUnloadEvent) => void\n\nconst beforeCallbacks = new Set<AppRouteCallback>()\nconst routeCallbacks = new Set<AppRouteCallback>()\nconst doneCallbacks = new Set<AppRouteCallback>()\nconst unloadCallbacks = new Set<BeforePageUnloadCallback>()\nconst webviewIds = new WeakMap<PageStackEntry, number>()\nlet nextWebviewId = 0\nlet nextRouteEventId = 0\n\nexport function onBeforeAppRoute(callback: AppRouteCallback) {\n beforeCallbacks.add(callback)\n}\n\nexport function offBeforeAppRoute(callback?: AppRouteCallback) {\n if (callback) {\n beforeCallbacks.delete(callback)\n }\n else {\n beforeCallbacks.clear()\n }\n}\n\nexport function onAppRoute(callback: AppRouteCallback) {\n routeCallbacks.add(callback)\n}\n\nexport function offAppRoute(callback?: AppRouteCallback) {\n if (callback) {\n routeCallbacks.delete(callback)\n }\n else {\n routeCallbacks.clear()\n }\n}\n\nexport function onAppRouteDone(callback: AppRouteCallback) {\n doneCallbacks.add(callback)\n}\n\nexport function offAppRouteDone(callback?: AppRouteCallback) {\n if (callback) {\n doneCallbacks.delete(callback)\n }\n else {\n doneCallbacks.clear()\n }\n}\n\nexport function onBeforePageUnload(callback: BeforePageUnloadCallback) {\n unloadCallbacks.add(callback)\n}\n\nexport function offBeforePageUnload(callback?: BeforePageUnloadCallback) {\n if (callback) {\n unloadCallbacks.delete(callback)\n }\n else {\n unloadCallbacks.clear()\n }\n}\n\nfunction emit<T>(callbacks: Set<(event: T) => void>, event: T) {\n if (!callbacks.size) {\n return\n }\n for (const callback of [...callbacks]) {\n try {\n callback(event)\n }\n catch (error) {\n // eslint-disable-next-line no-console -- 观察者异常仍需可见,但不能中断宿主路由。\n console.error(error)\n }\n }\n}\n\nexport function getEntryWebviewId(entry: PageStackEntry) {\n let id = webviewIds.get(entry)\n if (id === undefined) {\n id = ++nextWebviewId\n webviewIds.set(entry, id)\n }\n return id\n}\n\nexport function beginAppRoute(entry: PageStackEntry, openType: AppRouteOpenType): AppRouteEvent {\n const event: AppRouteEvent = {\n routeEventId: `web-route-${++nextRouteEventId}`,\n path: entry.id,\n query: { ...entry.query },\n openType,\n webviewId: getEntryWebviewId(entry),\n renderer: 'webview',\n }\n entry.routeEventId = event.routeEventId\n emit(beforeCallbacks, event)\n return event\n}\n\nexport function emitBeforePageUnload(entry: PageStackEntry, event: AppRouteEvent) {\n if (entry.instance) {\n emit(unloadCallbacks, {\n ...event,\n path: entry.id,\n query: { ...entry.query },\n webviewId: getEntryWebviewId(entry),\n page: entry.instance,\n })\n }\n}\n\nexport function cancelEntryRoute(entry: PageStackEntry) {\n entry.routeEventId = undefined\n entry.onRouteMounted = undefined\n entry.onRouteReady = undefined\n}\n\n/** 路由成功与页面提交分别由栈操作和真实生命周期确认,不依赖 API Promise 或定时器。 */\nexport function finishAppRoute(entry: PageStackEntry, event: AppRouteEvent) {\n const isCurrent = () => entry.active && !entry.destroyed && entry.routeEventId === event.routeEventId\n const finishReady = async () => {\n if (!isCurrent() || !entry.instance || !entry.ready) {\n return\n }\n entry.onRouteReady = undefined\n const page = entry.instance as ComponentPublicInstance & {\n [WEVU_HOST_COMMIT_PROMISE_KEY]?: Promise<unknown>\n }\n try {\n // onReady/setData 可在首个 Lit 更新期间再请求提交,必须等到当前提交链稳定。\n let commit: unknown\n do {\n commit = page[WEVU_HOST_COMMIT_PROMISE_KEY]\n await commit\n if (!isCurrent() || entry.instance !== page) {\n return\n }\n } while (page[WEVU_HOST_COMMIT_PROMISE_KEY] !== commit)\n emit(doneCallbacks, { ...event, page })\n }\n catch (error) {\n // eslint-disable-next-line no-console -- 渲染失败必须报告,且不能伪造 done。\n console.error(error)\n }\n }\n const finishMounted = () => {\n if (!isCurrent() || !entry.instance) {\n return\n }\n entry.onRouteMounted = undefined\n emit(routeCallbacks, { ...event, page: entry.instance })\n if (!isCurrent()) {\n return\n }\n entry.onRouteReady = () => {\n void finishReady()\n }\n void finishReady()\n }\n entry.onRouteMounted = finishMounted\n if (entry.instance) {\n finishMounted()\n }\n}\n"],"mappings":"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"}
@@ -16,7 +16,9 @@ export interface WebRouteTarget {
16
16
  }
17
17
  export interface WebRouteHistoryState {
18
18
  __weappWebRuntime?: {
19
- stack: WebRouteTarget[];
19
+ stack: Array<WebRouteTarget & {
20
+ webviewId?: number;
21
+ }>;
20
22
  };
21
23
  }
22
24
  export declare function resolveWebRoutingConfig(config?: WebRoutingConfig): ResolvedWebRoutingConfig;
@@ -1,3 +1,5 @@
1
+ import { getEntryWebviewId } from "./events.mjs";
2
+
1
3
  //#region src/runtime/polyfill/routeRuntime/history.ts
2
4
  const DEFAULT_CONFIG = {
3
5
  mode: "memory",
@@ -90,7 +92,8 @@ function formatRouteUrl(target) {
90
92
  function toHistoryState(entries) {
91
93
  return { __weappWebRuntime: { stack: entries.map((entry) => ({
92
94
  id: entry.id,
93
- query: { ...entry.query }
95
+ query: { ...entry.query },
96
+ webviewId: getEntryWebviewId(entry)
94
97
  })) } };
95
98
  }
96
99
  function disposeWebRouting() {
@@ -1 +1 @@
1
- {"version":3,"file":"history.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/history.ts"],"sourcesContent":["import type { PageStackEntry } from './options'\n\nexport type WebRoutingMode = 'memory' | 'history' | 'hash'\n\nexport interface WebRoutingConfig {\n mode?: WebRoutingMode\n /** 部署目录前缀,例如 /mini-program。 */\n base?: string\n}\n\nexport interface ResolvedWebRoutingConfig {\n mode: WebRoutingMode\n base: string\n}\n\nexport interface WebRouteTarget {\n id: string\n query: Record<string, string>\n}\n\nexport interface WebRouteHistoryState {\n __weappWebRuntime?: {\n stack: WebRouteTarget[]\n }\n}\n\nconst DEFAULT_CONFIG: ResolvedWebRoutingConfig = {\n mode: 'memory',\n base: '/',\n}\n\nlet resolvedConfig = { ...DEFAULT_CONFIG }\nlet knownPageIds = new Set<string>()\nlet popstateHandler: (() => void) | undefined\nlet hashchangeHandler: (() => void) | undefined\nlet scrollRestorationHistory: History | undefined\nlet previousScrollRestoration: ScrollRestoration | undefined\n\nfunction normalizeBase(base?: string) {\n if (!base?.trim()) {\n return '/'\n }\n const normalized = base.trim().replace(/\\\\/g, '/').replace(/^\\/*/, '/').replace(/\\/*$/, '')\n return normalized || '/'\n}\n\nexport function resolveWebRoutingConfig(config?: WebRoutingConfig): ResolvedWebRoutingConfig {\n return {\n mode: config?.mode === 'history' || config?.mode === 'hash' ? config.mode : 'memory',\n base: normalizeBase(config?.base),\n }\n}\n\nfunction isBrowserHistoryAvailable() {\n return typeof window !== 'undefined'\n && typeof window.history?.pushState === 'function'\n && typeof window.history?.replaceState === 'function'\n}\n\nfunction bindManualScrollRestoration() {\n if (typeof window === 'undefined' || !('scrollRestoration' in window.history)) {\n return\n }\n scrollRestorationHistory = window.history\n previousScrollRestoration = window.history.scrollRestoration\n window.history.scrollRestoration = 'manual'\n}\n\nfunction restoreBrowserScrollRestoration() {\n if (scrollRestorationHistory && previousScrollRestoration) {\n scrollRestorationHistory.scrollRestoration = previousScrollRestoration\n }\n scrollRestorationHistory = undefined\n previousScrollRestoration = undefined\n}\n\nfunction normalizePath(path: string) {\n const decoded = decodeURIComponent(path || '/')\n const withoutQuery = decoded.split('?')[0]!\n const withoutLeading = withoutQuery.replace(/^\\/+/, '').replace(/\\/+$/, '')\n return withoutLeading.replace(/\\.html$/, '')\n}\n\nfunction parseQuery(search: string) {\n const query: Record<string, string> = {}\n const params = new URLSearchParams(search.startsWith('?') ? search : `?${search}`)\n for (const [key, value] of params.entries()) {\n query[key] = value\n }\n return query\n}\n\nfunction toQueryString(query: Record<string, string>) {\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(query)) {\n params.set(key, value)\n }\n const search = params.toString()\n return search ? `?${search}` : ''\n}\n\nfunction resolvePageId(path: string) {\n const normalized = normalizePath(path)\n if (knownPageIds.has(normalized)) {\n return normalized\n }\n const indexId = `${normalized}/index`\n if (knownPageIds.has(indexId)) {\n return indexId\n }\n return undefined\n}\n\nfunction resolveTargetFromUrl(url: URL) {\n if (resolvedConfig.mode === 'hash') {\n const rawHash = url.hash.replace(/^#\\/?/, '')\n const [path, query = ''] = rawHash.split('?')\n const id = resolvePageId(path)\n return id ? { id, query: parseQuery(query) } : undefined\n }\n\n const base = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n const matchesBase = !base || url.pathname === base || url.pathname.startsWith(`${base}/`)\n const path = matchesBase ? url.pathname.slice(base.length) : url.pathname\n const id = resolvePageId(path)\n return id ? { id, query: parseQuery(url.search) } : undefined\n}\n\nexport function readWebRouteTarget(pageIds: string[], url?: string): WebRouteTarget | undefined {\n knownPageIds = new Set(pageIds)\n if (resolvedConfig.mode === 'memory' || typeof URL === 'undefined') {\n return undefined\n }\n const runtimeUrl = url ?? (typeof window !== 'undefined' ? window.location.href : undefined)\n if (!runtimeUrl) {\n return undefined\n }\n try {\n return resolveTargetFromUrl(new URL(runtimeUrl, 'http://weapp-vite.local'))\n }\n catch {\n return undefined\n }\n}\n\nfunction formatRouteUrl(target: WebRouteTarget) {\n const query = toQueryString(target.query)\n const path = `${target.id}${query}`\n if (resolvedConfig.mode === 'hash') {\n const prefix = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n return `${prefix}/#/${path}`\n }\n const prefix = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n return `${prefix}/${path}`\n}\n\nfunction toHistoryState(entries: PageStackEntry[]): WebRouteHistoryState {\n return {\n __weappWebRuntime: {\n stack: entries.map(entry => ({\n id: entry.id,\n query: { ...entry.query },\n })),\n },\n }\n}\n\nfunction resolveCurrentUrl() {\n if (typeof window === 'undefined') {\n return undefined\n }\n return `${window.location.pathname}${window.location.search}${window.location.hash}`\n}\n\nexport function disposeWebRouting() {\n if (typeof window !== 'undefined') {\n if (popstateHandler) {\n window.removeEventListener('popstate', popstateHandler)\n }\n if (hashchangeHandler) {\n window.removeEventListener('hashchange', hashchangeHandler)\n }\n }\n popstateHandler = undefined\n hashchangeHandler = undefined\n restoreBrowserScrollRestoration()\n resolvedConfig = { ...DEFAULT_CONFIG }\n knownPageIds = new Set()\n}\n\nexport function configureWebRouting(\n config: WebRoutingConfig | undefined,\n pageIds: string[],\n onPopState: (target: WebRouteTarget | undefined, state: WebRouteHistoryState | undefined) => void,\n) {\n disposeWebRouting()\n resolvedConfig = resolveWebRoutingConfig(config)\n knownPageIds = new Set(pageIds)\n if (resolvedConfig.mode === 'memory' || typeof window === 'undefined') {\n return resolvedConfig\n }\n\n bindManualScrollRestoration()\n\n popstateHandler = () => {\n const state = window.history.state as WebRouteHistoryState | undefined\n onPopState(readWebRouteTarget(pageIds), state)\n }\n window.addEventListener('popstate', popstateHandler)\n if (resolvedConfig.mode === 'hash') {\n hashchangeHandler = () => {\n const state = window.history.state as WebRouteHistoryState | undefined\n onPopState(readWebRouteTarget(pageIds), state)\n }\n window.addEventListener('hashchange', hashchangeHandler)\n }\n return resolvedConfig\n}\n\nexport function syncWebRouting(entries: PageStackEntry[], operation: 'push' | 'replace') {\n if (resolvedConfig.mode === 'memory' || !isBrowserHistoryAvailable() || !entries.length) {\n return\n }\n const target = entries[entries.length - 1]!\n const url = formatRouteUrl({ id: target.id, query: target.query })\n const state = toHistoryState(entries)\n if (operation === 'push') {\n window.history.pushState(state, '', url)\n }\n else {\n window.history.replaceState(state, '', url)\n }\n}\n\nexport function getWebHistoryStack(state: WebRouteHistoryState | undefined) {\n const stack = state?.__weappWebRuntime?.stack\n return Array.isArray(stack) ? stack : undefined\n}\n\nexport function getWebRoutingConfig() {\n return { ...resolvedConfig }\n}\n\nexport function getWebRoutingUrl() {\n return resolveCurrentUrl()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"history.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/history.ts"],"sourcesContent":["import type { PageStackEntry } from './options'\nimport { getEntryWebviewId } from './events'\n\nexport type WebRoutingMode = 'memory' | 'history' | 'hash'\n\nexport interface WebRoutingConfig {\n mode?: WebRoutingMode\n /** 部署目录前缀,例如 /mini-program。 */\n base?: string\n}\n\nexport interface ResolvedWebRoutingConfig {\n mode: WebRoutingMode\n base: string\n}\n\nexport interface WebRouteTarget {\n id: string\n query: Record<string, string>\n}\n\nexport interface WebRouteHistoryState {\n __weappWebRuntime?: {\n stack: Array<WebRouteTarget & { webviewId?: number }>\n }\n}\n\nconst DEFAULT_CONFIG: ResolvedWebRoutingConfig = {\n mode: 'memory',\n base: '/',\n}\n\nlet resolvedConfig = { ...DEFAULT_CONFIG }\nlet knownPageIds = new Set<string>()\nlet popstateHandler: (() => void) | undefined\nlet hashchangeHandler: (() => void) | undefined\nlet scrollRestorationHistory: History | undefined\nlet previousScrollRestoration: ScrollRestoration | undefined\n\nfunction normalizeBase(base?: string) {\n if (!base?.trim()) {\n return '/'\n }\n const normalized = base.trim().replace(/\\\\/g, '/').replace(/^\\/*/, '/').replace(/\\/*$/, '')\n return normalized || '/'\n}\n\nexport function resolveWebRoutingConfig(config?: WebRoutingConfig): ResolvedWebRoutingConfig {\n return {\n mode: config?.mode === 'history' || config?.mode === 'hash' ? config.mode : 'memory',\n base: normalizeBase(config?.base),\n }\n}\n\nfunction isBrowserHistoryAvailable() {\n return typeof window !== 'undefined'\n && typeof window.history?.pushState === 'function'\n && typeof window.history?.replaceState === 'function'\n}\n\nfunction bindManualScrollRestoration() {\n if (typeof window === 'undefined' || !('scrollRestoration' in window.history)) {\n return\n }\n scrollRestorationHistory = window.history\n previousScrollRestoration = window.history.scrollRestoration\n window.history.scrollRestoration = 'manual'\n}\n\nfunction restoreBrowserScrollRestoration() {\n if (scrollRestorationHistory && previousScrollRestoration) {\n scrollRestorationHistory.scrollRestoration = previousScrollRestoration\n }\n scrollRestorationHistory = undefined\n previousScrollRestoration = undefined\n}\n\nfunction normalizePath(path: string) {\n const decoded = decodeURIComponent(path || '/')\n const withoutQuery = decoded.split('?')[0]!\n const withoutLeading = withoutQuery.replace(/^\\/+/, '').replace(/\\/+$/, '')\n return withoutLeading.replace(/\\.html$/, '')\n}\n\nfunction parseQuery(search: string) {\n const query: Record<string, string> = {}\n const params = new URLSearchParams(search.startsWith('?') ? search : `?${search}`)\n for (const [key, value] of params.entries()) {\n query[key] = value\n }\n return query\n}\n\nfunction toQueryString(query: Record<string, string>) {\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(query)) {\n params.set(key, value)\n }\n const search = params.toString()\n return search ? `?${search}` : ''\n}\n\nfunction resolvePageId(path: string) {\n const normalized = normalizePath(path)\n if (knownPageIds.has(normalized)) {\n return normalized\n }\n const indexId = `${normalized}/index`\n if (knownPageIds.has(indexId)) {\n return indexId\n }\n return undefined\n}\n\nfunction resolveTargetFromUrl(url: URL) {\n if (resolvedConfig.mode === 'hash') {\n const rawHash = url.hash.replace(/^#\\/?/, '')\n const [path, query = ''] = rawHash.split('?')\n const id = resolvePageId(path)\n return id ? { id, query: parseQuery(query) } : undefined\n }\n\n const base = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n const matchesBase = !base || url.pathname === base || url.pathname.startsWith(`${base}/`)\n const path = matchesBase ? url.pathname.slice(base.length) : url.pathname\n const id = resolvePageId(path)\n return id ? { id, query: parseQuery(url.search) } : undefined\n}\n\nexport function readWebRouteTarget(pageIds: string[], url?: string): WebRouteTarget | undefined {\n knownPageIds = new Set(pageIds)\n if (resolvedConfig.mode === 'memory' || typeof URL === 'undefined') {\n return undefined\n }\n const runtimeUrl = url ?? (typeof window !== 'undefined' ? window.location.href : undefined)\n if (!runtimeUrl) {\n return undefined\n }\n try {\n return resolveTargetFromUrl(new URL(runtimeUrl, 'http://weapp-vite.local'))\n }\n catch {\n return undefined\n }\n}\n\nfunction formatRouteUrl(target: WebRouteTarget) {\n const query = toQueryString(target.query)\n const path = `${target.id}${query}`\n if (resolvedConfig.mode === 'hash') {\n const prefix = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n return `${prefix}/#/${path}`\n }\n const prefix = resolvedConfig.base === '/' ? '' : resolvedConfig.base\n return `${prefix}/${path}`\n}\n\nfunction toHistoryState(entries: PageStackEntry[]): WebRouteHistoryState {\n return {\n __weappWebRuntime: {\n stack: entries.map(entry => ({\n id: entry.id,\n query: { ...entry.query },\n webviewId: getEntryWebviewId(entry),\n })),\n },\n }\n}\n\nfunction resolveCurrentUrl() {\n if (typeof window === 'undefined') {\n return undefined\n }\n return `${window.location.pathname}${window.location.search}${window.location.hash}`\n}\n\nexport function disposeWebRouting() {\n if (typeof window !== 'undefined') {\n if (popstateHandler) {\n window.removeEventListener('popstate', popstateHandler)\n }\n if (hashchangeHandler) {\n window.removeEventListener('hashchange', hashchangeHandler)\n }\n }\n popstateHandler = undefined\n hashchangeHandler = undefined\n restoreBrowserScrollRestoration()\n resolvedConfig = { ...DEFAULT_CONFIG }\n knownPageIds = new Set()\n}\n\nexport function configureWebRouting(\n config: WebRoutingConfig | undefined,\n pageIds: string[],\n onPopState: (target: WebRouteTarget | undefined, state: WebRouteHistoryState | undefined) => void,\n) {\n disposeWebRouting()\n resolvedConfig = resolveWebRoutingConfig(config)\n knownPageIds = new Set(pageIds)\n if (resolvedConfig.mode === 'memory' || typeof window === 'undefined') {\n return resolvedConfig\n }\n\n bindManualScrollRestoration()\n\n popstateHandler = () => {\n const state = window.history.state as WebRouteHistoryState | undefined\n onPopState(readWebRouteTarget(pageIds), state)\n }\n window.addEventListener('popstate', popstateHandler)\n if (resolvedConfig.mode === 'hash') {\n hashchangeHandler = () => {\n const state = window.history.state as WebRouteHistoryState | undefined\n onPopState(readWebRouteTarget(pageIds), state)\n }\n window.addEventListener('hashchange', hashchangeHandler)\n }\n return resolvedConfig\n}\n\nexport function syncWebRouting(entries: PageStackEntry[], operation: 'push' | 'replace') {\n if (resolvedConfig.mode === 'memory' || !isBrowserHistoryAvailable() || !entries.length) {\n return\n }\n const target = entries[entries.length - 1]!\n const url = formatRouteUrl({ id: target.id, query: target.query })\n const state = toHistoryState(entries)\n if (operation === 'push') {\n window.history.pushState(state, '', url)\n }\n else {\n window.history.replaceState(state, '', url)\n }\n}\n\nexport function getWebHistoryStack(state: WebRouteHistoryState | undefined) {\n const stack = state?.__weappWebRuntime?.stack\n return Array.isArray(stack) ? stack : undefined\n}\n\nexport function getWebRoutingConfig() {\n return { ...resolvedConfig }\n}\n\nexport function getWebRoutingUrl() {\n return resolveCurrentUrl()\n}\n"],"mappings":"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"}